51 lines
1.5 KiB
Solidity
51 lines
1.5 KiB
Solidity
// SPDX-License-Identifier: CC0-1.0
|
|
pragma solidity ^0.8.0;
|
|
|
|
import "./ERC20Charity.sol";
|
|
|
|
/**
|
|
*@title ERC720 charity Token
|
|
*@dev Extension of ERC720 Token that can be partially donated to a charity project
|
|
*
|
|
*This extensions keeps track of donations to charity addresses. The whitelisted adress are from a another contract (Reserve)
|
|
*/
|
|
|
|
contract CharityToken is ERC20Charity{
|
|
constructor() ERC20("TestToken", "TST") {
|
|
_mint(msg.sender, 10000 * 10 ** decimals());
|
|
}
|
|
|
|
/** @dev Creates `amount` tokens and assigns them to `to`, increasing
|
|
* the total supply.
|
|
*
|
|
* Requirements:
|
|
*
|
|
* - `to` cannot be the zero address.
|
|
*
|
|
* @param to The address to assign the amount to.
|
|
* @param amount The amount of token to mint.
|
|
*/
|
|
function mint(address to, uint256 amount) public onlyOwner {
|
|
_mint(to, amount);
|
|
}
|
|
|
|
function selfmint() public {
|
|
_mint(msg.sender, 100 * 10 ** decimals());
|
|
}
|
|
|
|
|
|
//Test support for ERC-Charity
|
|
bytes4 private constant _INTERFACE_ID_ERC_CHARITY = type(IERC20charity).interfaceId; // 0x557512b6
|
|
//bytes4 private constant _INTERFACE_ID_ERCcharity =type(IERC165).interfaceId; // ERC165S
|
|
function checkInterface(address testContract) external view returns (bool) {
|
|
(bool success) = IERC165(testContract).supportsInterface(_INTERFACE_ID_ERC_CHARITY);
|
|
return success;
|
|
}
|
|
|
|
/*function InterfaceId() external returns (bytes4) {
|
|
bytes4 _INTERFACE_ID = type(IERC20charity).interfaceId;
|
|
return _INTERFACE_ID ;
|
|
}*/
|
|
|
|
}
|