¡El código fuente de este contrato está verificado! Compilador
0.5.16+commit.9c3226ce
Código Fuente del Contrato
Archivo 1 de 6: IMaidCoin.sol
pragma solidity >=0.5.0;
interface IMaidCoin {
event Approval (address indexed owner, address indexed spender, uint256 value ) ;
event Transfer (address indexed from , address indexed to, uint256 value ) ;
function name ( ) external pure returns (string memory ) ;
function symbol ( ) external pure returns (string memory ) ;
function decimals ( ) external pure returns (uint8 ) ;
function totalSupply ( ) external view returns (uint256 ) ;
function INITIAL_SUPPLY ( ) external pure returns (uint256 ) ;
function balanceOf (address owner ) external view returns (uint256 ) ;
function allowance (address owner, address spender ) external view returns (uint256 ) ;
function approve (address spender, uint256 value ) external returns (bool ) ;
function transfer (address to, uint256 value ) external returns (bool ) ;
function transferFrom (
address from ,
address to,
uint256 value
) external returns (bool ) ;
function DOMAIN_SEPARATOR ( ) external view returns (bytes32 ) ;
function PERMIT_TYPEHASH ( ) external pure returns (bytes32 ) ;
function nonces (address owner ) external view returns (uint256 ) ;
function permit (
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external ;
function mint (address to, uint256 amount ) external ;
function burn (uint256 amount ) external ;
}
Código Fuente del Contrato
Archivo 2 de 6: IUniswapV2ERC20.sol
pragma solidity >=0.5.0;
interface IUniswapV2ERC20 {
event Approval (address indexed owner, address indexed spender, uint value ) ;
event Transfer (address indexed from , address indexed to, uint value ) ;
function name ( ) external pure returns (string memory ) ;
function symbol ( ) external pure returns (string memory ) ;
function decimals ( ) external pure returns (uint8 ) ;
function totalSupply ( ) external view returns (uint ) ;
function balanceOf (address owner ) external view returns (uint ) ;
function allowance (address owner, address spender ) external view returns (uint ) ;
function approve (address spender, uint value ) external returns (bool ) ;
function transfer (address to, uint value ) external returns (bool ) ;
function transferFrom (address from , address to, uint value ) external returns (bool ) ;
function DOMAIN_SEPARATOR ( ) external view returns (bytes32 ) ;
function PERMIT_TYPEHASH ( ) external pure returns (bytes32 ) ;
function nonces (address owner ) external view returns (uint ) ;
function permit (address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external ;
}
Código Fuente del Contrato
Archivo 3 de 6: MaidCoin.sol
pragma solidity =0.5.16;
import "./interfaces/IMaidCoin.sol" ;
import "./uniswapv2/UniswapV2ERC20.sol" ;
import "./libraries/Ownable.sol" ;
contract MaidCoin is IMaidCoin , Ownable , UniswapV2ERC20 ("MaidCoin" , "$MAID" ) {
uint256 public constant INITIAL_SUPPLY = 66000 * 1e18 ;
constructor ( ) public {
_mint(msg .sender , INITIAL_SUPPLY);
}
function mint (address to, uint256 amount ) external onlyOwner {
_mint(to, amount);
}
function burn (uint256 amount ) external {
_burn(msg .sender , amount);
}
}
Código Fuente del Contrato
Archivo 4 de 6: Ownable.sol
pragma solidity ^0.5.0;
contract Ownable {
address private _owner;
event OwnershipTransferred (address indexed previousOwner, address indexed newOwner ) ;
constructor ( ) internal {
_owner = msg .sender ;
emit OwnershipTransferred(address (0 ), _owner);
}
function owner ( ) public view returns (address ) {
return _owner;
}
modifier onlyOwner ( ) {
require (isOwner(), "Ownable: caller is not the owner" );
_ ;
}
function isOwner ( ) public view returns (bool ) {
return msg .sender = = _owner;
}
function renounceOwnership ( ) public onlyOwner {
emit OwnershipTransferred(_owner, address (0 ));
_owner = address (0 );
}
function transferOwnership (address newOwner ) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership (address newOwner ) internal {
require (newOwner ! = address (0 ), "Ownable: new owner is the zero address" );
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
} Código Fuente del Contrato
Archivo 5 de 6: SafeMath.sol
pragma solidity =0.5.16;
library SafeMath {
function add (uint x, uint y ) internal pure returns (uint z ) {
require ((z = x + y) > = x, 'ds-math-add-overflow' );
}
function sub (uint x, uint y ) internal pure returns (uint z ) {
require ((z = x - y) < = x, 'ds-math-sub-underflow' );
}
function mul (uint x, uint y ) internal pure returns (uint z ) {
require (y = = 0 | | (z = x * y) / y = = x, 'ds-math-mul-overflow' );
}
} Código Fuente del Contrato
Archivo 6 de 6: UniswapV2ERC20.sol
pragma solidity =0.5.16;
import './interfaces/IUniswapV2ERC20.sol' ;
import './libraries/SafeMath.sol' ;
contract UniswapV2ERC20 is IUniswapV2ERC20 {
using SafeMath for uint ;
string public name;
string public symbol;
uint8 public constant decimals = 18 ;
uint public totalSupply;
mapping (address = > uint ) public balanceOf;
mapping (address = > mapping (address = > uint )) public allowance;
bytes32 public DOMAIN_SEPARATOR;
bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 ;
mapping (address = > uint ) public nonces;
event Approval (address indexed owner, address indexed spender, uint value ) ;
event Transfer (address indexed from , address indexed to, uint value ) ;
constructor (string memory _name, string memory _symbol ) public {
name = _name;
symbol = _symbol;
uint chainId;
assembly {
chainId := chainid
}
DOMAIN_SEPARATOR = keccak256 (
abi .encode (
keccak256 ('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)' ),
keccak256 (bytes (name)),
keccak256 (bytes ('1' )),
chainId,
address (this )
)
);
}
function _mint (address to, uint value ) internal {
totalSupply = totalSupply.add(value);
balanceOf[to] = balanceOf[to].add(value);
emit Transfer(address (0 ), to, value);
}
function _burn (address from , uint value ) internal {
balanceOf[from ] = balanceOf[from ].sub(value);
totalSupply = totalSupply.sub(value);
emit Transfer(from , address (0 ), value);
}
function _approve (address owner, address spender, uint value ) private {
allowance[owner][spender] = value;
emit Approval(owner, spender, value);
}
function _transfer (address from , address to, uint value ) private {
balanceOf[from ] = balanceOf[from ].sub(value);
balanceOf[to] = balanceOf[to].add(value);
emit Transfer(from , to, value);
}
function approve (address spender, uint value ) external returns (bool ) {
_approve(msg .sender , spender, value);
return true ;
}
function transfer (address to, uint value ) external returns (bool ) {
_transfer(msg .sender , to, value);
return true ;
}
function transferFrom (address from , address to, uint value ) external returns (bool ) {
if (allowance[from ][msg .sender ] ! = uint (-1 )) {
allowance[from ][msg .sender ] = allowance[from ][msg .sender ].sub(value);
}
_transfer(from , to, value);
return true ;
}
function permit (address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external {
require (deadline > = block .timestamp , 'UniswapV2: EXPIRED' );
bytes32 digest = keccak256 (
abi .encodePacked (
'\x19\x01' ,
DOMAIN_SEPARATOR,
keccak256 (abi .encode (PERMIT_TYPEHASH, owner, spender, value, nonces[owner]+ + , deadline))
)
);
address recoveredAddress = ecrecover (digest, v, r, s);
require (recoveredAddress ! = address (0 ) & & recoveredAddress = = owner, 'UniswapV2: INVALID_SIGNATURE' );
_approve(owner, spender, value);
}
}
{
"compilationTarget" : {
"contracts/MaidCoin.sol" : "MaidCoin"
} ,
"evmVersion" : "istanbul" ,
"libraries" : { } ,
"metadata" : {
"useLiteralContent" : true
} ,
"optimizer" : {
"enabled" : true ,
"runs" : 200
} ,
"remappings" : [ ]
} [{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]