Announcement (Nov-2-2023): ANT is redeemable for ETH until Saturday, Nov-2-2024. Read more here.
ERC-20
DAO
Overview
Max Total Supply
43,192,285.432201948816512798 ANT
Holders
10,282 ( 0.029%)
Market
Price
$1.75 @ 0.000528 ETH (+24.66%)
Onchain Market Cap
$75,586,499.51
Circulating Supply Market Cap
$70,055,210.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.045469141315607527 ANTValue
$0.08 ( ~2.41460779468211E-05 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ANTv2
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-15 */ // File: contracts/interfaces/IERC20.sol pragma solidity ^0.5.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); } // File: contracts/libraries/SafeMath.sol pragma solidity ^0.5.17; // A library for performing overflow-safe math, courtesy of DappHub: https://github.com/dapphub/ds-math/blob/d0ef6d6a5f/src/math.sol // Modified to include only the essentials library SafeMath { function add(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x + y) >= x, "MATH:ADD_OVERFLOW"); } function sub(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x - y) <= x, "MATH:SUB_UNDERFLOW"); } } // File: contracts/ANTv2.sol pragma solidity 0.5.17; // Lightweight token modelled after UNI-LP: https://github.com/Uniswap/uniswap-v2-core/blob/v1.0.1/contracts/UniswapV2ERC20.sol // Adds: // - An exposed `mint()` with minting role // - An exposed `burn()` // - ERC-3009 (`transferWithAuthorization()`) contract ANTv2 is IERC20 { using SafeMath for uint256; // bytes32 private constant EIP712DOMAIN_HASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)") bytes32 private constant EIP712DOMAIN_HASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f; // bytes32 private constant NAME_HASH = keccak256("Aragon Network Token") bytes32 private constant NAME_HASH = 0x711a8013284a3c0046af6c0d6ed33e8bbc2c7a11d615cf4fdc8b1ac753bda618; // bytes32 private constant VERSION_HASH = keccak256("1") bytes32 private constant VERSION_HASH = 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6; // bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; // bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH = // keccak256("TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)"); bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH = 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267; string public constant name = "Aragon Network Token"; string public constant symbol = "ANT"; uint8 public constant decimals = 18; address public minter; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; // ERC-2612, ERC-3009 state mapping (address => uint256) public nonces; mapping (address => mapping (bytes32 => bool)) public authorizationState; event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce); event ChangeMinter(address indexed minter); modifier onlyMinter { require(msg.sender == minter, "ANTV2:NOT_MINTER"); _; } constructor(address initialMinter) public { _changeMinter(initialMinter); } function _validateSignedData(address signer, bytes32 encodeData, uint8 v, bytes32 r, bytes32 s) internal view { bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", getDomainSeparator(), encodeData ) ); address recoveredAddress = ecrecover(digest, v, r, s); // Explicitly disallow authorizations for address(0) as ecrecover returns address(0) on malformed messages require(recoveredAddress != address(0) && recoveredAddress == signer, "ANTV2:INVALID_SIGNATURE"); } function _changeMinter(address newMinter) internal { minter = newMinter; emit ChangeMinter(newMinter); } function _mint(address to, uint256 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 { // Balance is implicitly checked with SafeMath's underflow protection balanceOf[from] = balanceOf[from].sub(value); totalSupply = totalSupply.sub(value); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint256 value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint256 value) private { require(to != address(this) && to != address(0), "ANTV2:RECEIVER_IS_TOKEN_OR_ZERO"); // Balance is implicitly checked with SafeMath's underflow protection balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function getChainId() public pure returns (uint256 chainId) { assembly { chainId := chainid() } } function getDomainSeparator() public view returns (bytes32) { return keccak256( abi.encode( EIP712DOMAIN_HASH, NAME_HASH, VERSION_HASH, getChainId(), address(this) ) ); } function mint(address to, uint256 value) external onlyMinter returns (bool) { _mint(to, value); return true; } function changeMinter(address newMinter) external onlyMinter { _changeMinter(newMinter); } function burn(uint256 value) external returns (bool) { _burn(msg.sender, value); return true; } function approve(address spender, uint256 value) external returns (bool) { _approve(msg.sender, spender, value); return true; } function transfer(address to, uint256 value) external returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint256 value) external returns (bool) { uint256 fromAllowance = allowance[from][msg.sender]; if (fromAllowance != uint256(-1)) { // Allowance is implicitly checked with SafeMath's underflow protection allowance[from][msg.sender] = fromAllowance.sub(value); } _transfer(from, to, value); return true; } function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, "ANTV2:AUTH_EXPIRED"); bytes32 encodeData = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)); _validateSignedData(owner, encodeData, v, r, s); _approve(owner, spender, value); } function transferWithAuthorization( address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s ) external { require(block.timestamp > validAfter, "ANTV2:AUTH_NOT_YET_VALID"); require(block.timestamp < validBefore, "ANTV2:AUTH_EXPIRED"); require(!authorizationState[from][nonce], "ANTV2:AUTH_ALREADY_USED"); bytes32 encodeData = keccak256(abi.encode(TRANSFER_WITH_AUTHORIZATION_TYPEHASH, from, to, value, validAfter, validBefore, nonce)); _validateSignedData(from, encodeData, v, r, s); authorizationState[from][nonce] = true; emit AuthorizationUsed(from, nonce); _transfer(from, to, value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"initialMinter","type":"address"}],"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":"authorizer","type":"address"},{"indexed":true,"internalType":"bytes32","name":"nonce","type":"bytes32"}],"name":"AuthorizationUsed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"ChangeMinter","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":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TRANSFER_WITH_AUTHORIZATION_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"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"authorizationState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newMinter","type":"address"}],"name":"changeMinter","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":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getDomainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":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":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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithAuthorization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516114993803806114998339818101604052602081101561003357600080fd5b5051610047816001600160e01b0361004d16565b50610095565b600080546001600160a01b0319166001600160a01b038316908117825560405190917fc87aeafc6e4ae6202adf4f08a76769119ae93cc129c0e0cbac08a118bc18e1ce91a250565b6113f5806100a46000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806342966c68116100d8578063a9059cbb1161008c578063e3ee160e11610066578063e3ee160e146104d5578063e94a010214610541578063ed24911d1461057a57610177565b8063a9059cbb14610403578063d505accf1461043c578063dd62ed3e1461049a57610177565b80637ecebe00116100bd5780637ecebe00146103c057806395d89b41146103f3578063a0cc6a68146103fb57610177565b806342966c681461037057806370a082311461038d57610177565b80632c4d4d181161012f578063313ce56711610114578063313ce567146103115780633408e4701461032f57806340c10f191461033757610177565b80632c4d4d18146102d457806330adf81f1461030957610177565b8063095ea7b311610160578063095ea7b31461022a57806318160ddd1461027757806323b872dd1461029157610177565b806306fdde031461017c57806307546172146101f9575b600080fd5b610184610582565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101be5781810151838201526020016101a6565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102016105bb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102636004803603604081101561024057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356105d7565b604080519115158252519081900360200190f35b61027f6105ee565b60408051918252519081900360200190f35b610263600480360360608110156102a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356105f4565b610307600480360360208110156102ea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106a4565b005b61027f610736565b61031961075a565b6040805160ff9092168252519081900360200190f35b61027f61075f565b6102636004803603604081101561034d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610763565b6102636004803603602081101561038657600080fd5b50356107f4565b61027f600480360360208110156103a357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610808565b61027f600480360360208110156103d657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661081a565b61018461082c565b61027f610865565b6102636004803603604081101561041957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610889565b610307600480360360e081101561045257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610896565b61027f600480360360408110156104b057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109bd565b61030760048036036101208110156104ec57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356109da565b6102636004803603604081101561055757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c81565b61027f610ca1565b6040518060400160405280601481526020017f417261676f6e204e6574776f726b20546f6b656e00000000000000000000000081525081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60006105e4338484610d54565b5060015b92915050565b60015481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461068e5761065c818463ffffffff610dc316565b73ffffffffffffffffffffffffffffffffffffffff861660009081526003602090815260408083203384529091529020555b610699858585610e35565b506001949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461072a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f414e5456323a4e4f545f4d494e54455200000000000000000000000000000000604482015290519081900360640190fd5b61073381610fbc565b50565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b4690565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146107ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f414e5456323a4e4f545f4d494e54455200000000000000000000000000000000604482015290519081900360640190fd5b6105e48383611029565b600061080033836110da565b506001919050565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020017f414e54000000000000000000000000000000000000000000000000000000000081525081565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60006105e4338484610e35565b4284101561090557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f414e5456323a415554485f455850495245440000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526004602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938a1660608401526080830189905260a083019390935260c08083018890528151808403909101815260e0909201905280519101206109a8888286868661119e565b6109b3888888610d54565b5050505050505050565b600360209081526000928352604080842090915290825290205481565b854211610a4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f414e5456323a415554485f4e4f545f5945545f56414c49440000000000000000604482015290519081900360640190fd5b844210610ab657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f414e5456323a415554485f455850495245440000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260056020908152604080832087845290915290205460ff1615610b5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f414e5456323a415554485f414c52454144595f55534544000000000000000000604482015290519081900360640190fd5b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808d16838501528b166060830152608082018a905260a0820189905260c0820188905260e0808301889052835180840390910181526101009092019092528051910120610be98a8286868661119e565b73ffffffffffffffffffffffffffffffffffffffff8a16600081815260056020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a3610c758a8a8a610e35565b50505050505050505050565b600560209081526000928352604080842090915290825290205460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f711a8013284a3c0046af6c0d6ed33e8bbc2c7a11d615cf4fdc8b1ac753bda6187fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610d0e61075f565b6040805160208082019690965280820194909452606084019290925260808301523060a0808401919091528151808403909101815260c090920190528051910120905090565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156105e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4d4154483a5355425f554e444552464c4f570000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82163014801590610e70575073ffffffffffffffffffffffffffffffffffffffff821615155b610edb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f414e5456323a52454345495645525f49535f544f4b454e5f4f525f5a45524f00604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054610f11908263ffffffff610dc316565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600260205260408082209390935590841681522054610f53908263ffffffff61134e16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917fc87aeafc6e4ae6202adf4f08a76769119ae93cc129c0e0cbac08a118bc18e1ce91a250565b60015461103c908263ffffffff61134e16565b60015573ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054611075908263ffffffff61134e16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054611110908263ffffffff610dc316565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902055600154611149908263ffffffff610dc316565b60015560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006111a8610ca1565b8560405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561125f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906112da57508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61134557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f414e5456323a494e56414c49445f5349474e4154555245000000000000000000604482015290519081900360640190fd5b50505050505050565b808201828110156105e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d4154483a4144445f4f564552464c4f57000000000000000000000000000000604482015290519081900360640190fdfea265627a7a723158208045888537205f30e94c6868aedb26f07bd80c2d4d51c5a72e33be27f95e8c1a64736f6c63430005110032000000000000000000000000078bebc744b819657e1927bf41ab8c74cbbf912d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101775760003560e01c806342966c68116100d8578063a9059cbb1161008c578063e3ee160e11610066578063e3ee160e146104d5578063e94a010214610541578063ed24911d1461057a57610177565b8063a9059cbb14610403578063d505accf1461043c578063dd62ed3e1461049a57610177565b80637ecebe00116100bd5780637ecebe00146103c057806395d89b41146103f3578063a0cc6a68146103fb57610177565b806342966c681461037057806370a082311461038d57610177565b80632c4d4d181161012f578063313ce56711610114578063313ce567146103115780633408e4701461032f57806340c10f191461033757610177565b80632c4d4d18146102d457806330adf81f1461030957610177565b8063095ea7b311610160578063095ea7b31461022a57806318160ddd1461027757806323b872dd1461029157610177565b806306fdde031461017c57806307546172146101f9575b600080fd5b610184610582565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101be5781810151838201526020016101a6565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102016105bb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102636004803603604081101561024057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356105d7565b604080519115158252519081900360200190f35b61027f6105ee565b60408051918252519081900360200190f35b610263600480360360608110156102a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356105f4565b610307600480360360208110156102ea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106a4565b005b61027f610736565b61031961075a565b6040805160ff9092168252519081900360200190f35b61027f61075f565b6102636004803603604081101561034d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610763565b6102636004803603602081101561038657600080fd5b50356107f4565b61027f600480360360208110156103a357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610808565b61027f600480360360208110156103d657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661081a565b61018461082c565b61027f610865565b6102636004803603604081101561041957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610889565b610307600480360360e081101561045257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610896565b61027f600480360360408110156104b057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109bd565b61030760048036036101208110156104ec57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356109da565b6102636004803603604081101561055757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c81565b61027f610ca1565b6040518060400160405280601481526020017f417261676f6e204e6574776f726b20546f6b656e00000000000000000000000081525081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60006105e4338484610d54565b5060015b92915050565b60015481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461068e5761065c818463ffffffff610dc316565b73ffffffffffffffffffffffffffffffffffffffff861660009081526003602090815260408083203384529091529020555b610699858585610e35565b506001949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461072a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f414e5456323a4e4f545f4d494e54455200000000000000000000000000000000604482015290519081900360640190fd5b61073381610fbc565b50565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b4690565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146107ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f414e5456323a4e4f545f4d494e54455200000000000000000000000000000000604482015290519081900360640190fd5b6105e48383611029565b600061080033836110da565b506001919050565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020017f414e54000000000000000000000000000000000000000000000000000000000081525081565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60006105e4338484610e35565b4284101561090557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f414e5456323a415554485f455850495245440000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80881660008181526004602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938a1660608401526080830189905260a083019390935260c08083018890528151808403909101815260e0909201905280519101206109a8888286868661119e565b6109b3888888610d54565b5050505050505050565b600360209081526000928352604080842090915290825290205481565b854211610a4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f414e5456323a415554485f4e4f545f5945545f56414c49440000000000000000604482015290519081900360640190fd5b844210610ab657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f414e5456323a415554485f455850495245440000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260056020908152604080832087845290915290205460ff1615610b5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f414e5456323a415554485f414c52454144595f55534544000000000000000000604482015290519081900360640190fd5b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808d16838501528b166060830152608082018a905260a0820189905260c0820188905260e0808301889052835180840390910181526101009092019092528051910120610be98a8286868661119e565b73ffffffffffffffffffffffffffffffffffffffff8a16600081815260056020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a3610c758a8a8a610e35565b50505050505050505050565b600560209081526000928352604080842090915290825290205460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f711a8013284a3c0046af6c0d6ed33e8bbc2c7a11d615cf4fdc8b1ac753bda6187fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610d0e61075f565b6040805160208082019690965280820194909452606084019290925260808301523060a0808401919091528151808403909101815260c090920190528051910120905090565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156105e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4d4154483a5355425f554e444552464c4f570000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82163014801590610e70575073ffffffffffffffffffffffffffffffffffffffff821615155b610edb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f414e5456323a52454345495645525f49535f544f4b454e5f4f525f5a45524f00604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054610f11908263ffffffff610dc316565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600260205260408082209390935590841681522054610f53908263ffffffff61134e16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917fc87aeafc6e4ae6202adf4f08a76769119ae93cc129c0e0cbac08a118bc18e1ce91a250565b60015461103c908263ffffffff61134e16565b60015573ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054611075908263ffffffff61134e16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054611110908263ffffffff610dc316565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902055600154611149908263ffffffff610dc316565b60015560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006111a8610ca1565b8560405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561125f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906112da57508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61134557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f414e5456323a494e56414c49445f5349474e4154555245000000000000000000604482015290519081900360640190fd5b50505050505050565b808201828110156105e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d4154483a4144445f4f564552464c4f57000000000000000000000000000000604482015290519081900360640190fdfea265627a7a723158208045888537205f30e94c6868aedb26f07bd80c2d4d51c5a72e33be27f95e8c1a64736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000078bebc744b819657e1927bf41ab8c74cbbf912d
-----Decoded View---------------
Arg [0] : initialMinter (address): 0x078BEbC744B819657e1927bF41aB8C74cBBF912D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000078bebc744b819657e1927bf41ab8c74cbbf912d
Deployed Bytecode Sourcemap
1477:6975:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1477:6975:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2793:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2793:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6433:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6433:150:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2968:26;;;:::i;:::-;;;;;;;;;;;;;;;;6741:426;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6741:426:0;;;;;;;;;;;;;;;;;;:::i;6195:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6195:104:0;;;;:::i;:::-;;2325:108;;;:::i;2896:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5623:111;;;:::i;6054:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6054:133:0;;;;;;;;;:::i;6307:118::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6307:118:0;;:::i;3001:45::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3001:45:0;;;;:::i;3161:42::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3161:42:0;;;;:::i;2852:37::-;;;:::i;2655:129::-;;;:::i;6591:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6591:142:0;;;;;;;;;:::i;7175:422::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7175:422:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3053:66::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3053:66:0;;;;;;;;;;;:::i;7605:844::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7605:844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3210:72::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3210:72:0;;;;;;;;;:::i;5742:304::-;;;:::i;2793:52::-;;;;;;;;;;;;;;;;;;;:::o;2940:21::-;;;;;;:::o;6433:150::-;6500:4;6517:36;6526:10;6538:7;6547:5;6517:8;:36::i;:::-;-1:-1:-1;6571:4:0;6433:150;;;;;:::o;2968:26::-;;;;:::o;6741:426::-;6863:15;;;6822:4;6863:15;;;:9;:15;;;;;;;;6879:10;6863:27;;;;;;;;6930:2;6905:28;;6901:200;;7065:24;:13;7083:5;7065:24;:17;:24;:::i;:::-;7035:15;;;;;;;:9;:15;;;;;;;;7051:10;7035:27;;;;;;;:54;6901:200;7111:26;7121:4;7127:2;7131:5;7111:9;:26::i;:::-;-1:-1:-1;7155:4:0;;6741:426;-1:-1:-1;;;;6741:426:0:o;6195:104::-;3638:6;;;;3624:10;:20;3616:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6267:24;6281:9;6267:13;:24::i;:::-;6195:104;:::o;2325:108::-;2367:66;2325:108;:::o;2896:35::-;2929:2;2896:35;:::o;5623:111::-;5716:9;;5703:24::o;6054:133::-;6124:4;3638:6;;;;3624:10;:20;3616:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6141:16;6147:2;6151:5;6141;:16::i;6307:118::-;6354:4;6371:24;6377:10;6389:5;6371;:24::i;:::-;-1:-1:-1;6413:4:0;6307:118;;;:::o;3001:45::-;;;;;;;;;;;;;:::o;3161:42::-;;;;;;;;;;;;;:::o;2852:37::-;;;;;;;;;;;;;;;;;;;:::o;2655:129::-;2718:66;2655:129;:::o;6591:142::-;6654:4;6671:32;6681:10;6693:2;6697:5;6671:9;:32::i;7175:422::-;7327:15;7315:8;:27;;7307:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7460:13;;;;7378:18;7460:13;;;:6;:13;;;;;;;;;:15;;;;;;;;7409:77;;2367:66;7409:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7409:77:0;;;;;;7399:88;;;;;7498:47;7437:5;7399:88;7537:1;7540;7543;7498:19;:47::i;:::-;7558:31;7567:5;7574:7;7583:5;7558:8;:31::i;:::-;7175:422;;;;;;;;:::o;3053:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7605:844::-;7916:10;7898:15;:28;7890:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7992:11;7974:15;:29;7966:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8046:24;;;;;;;:18;:24;;;;;;;;:31;;;;;;;;;;;8045:32;8037:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8150:97;;;2718:66;8150:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8150:97:0;;;;;;;8140:108;;;;;8259:46;8199:4;8140:108;8297:1;8300;8303;8259:19;:46::i;:::-;8318:24;;;;;;;:18;:24;;;;;;;;:31;;;;;;;;;:38;;;;8352:4;8318:38;;;8372:30;8343:5;;8318:24;8372:30;;;8415:26;8425:4;8431:2;8435:5;8415:9;:26::i;:::-;7605:844;;;;;;;;;;:::o;3210:72::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5742:304::-;5793:7;1738:66;1927;2103;5968:12;:10;:12::i;:::-;5844:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6007:4;5844:183;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5844:183:0;;;;;;5820:218;;;;;;-1:-1:-1;5742:304:0;:::o;5037:172::-;5121:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;5170:31;;;;;;;;;;;;;;;;;5037:172;;;:::o;1008:135::-;1101:5;;;1096:16;;;;1088:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5217:398;5304:19;;;5318:4;5304:19;;;;:39;;-1:-1:-1;5327:16:0;;;;;5304:39;5296:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5489:15;;;;;;;:9;:15;;;;;;:26;;5509:5;5489:26;:19;:26;:::i;:::-;5471:15;;;;;;;;:9;:15;;;;;;:44;;;;5542:13;;;;;;;:24;;5560:5;5542:24;:17;:24;:::i;:::-;5526:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;5582:25;;;;;;;5526:13;;5582:25;;;;;;;;;;;;;5217:398;;;:::o;4394:127::-;4456:6;:18;;;;;;;;;;;;4490:23;;4456:18;;4490:23;;;4394:127;:::o;4529:204::-;4605:11;;:22;;4621:5;4605:22;:15;:22;:::i;:::-;4591:11;:36;4654:13;;;;;;;:9;:13;;;;;;:24;;4672:5;4654:24;:17;:24;:::i;:::-;4638:13;;;;;;;:9;:13;;;;;;;;:40;;;;4694:31;;;;;;;4638:13;;;;4694:31;;;;;;;;;;4529:204;;:::o;4741:288::-;4899:15;;;;;;;:9;:15;;;;;;:26;;4919:5;4899:26;:19;:26;:::i;:::-;4881:15;;;;;;;:9;:15;;;;;:44;4950:11;;:22;;4966:5;4950:22;:15;:22;:::i;:::-;4936:11;:36;4988:33;;;;;;;;5011:1;;4988:33;;;;;;;;;;;;;4741:288;;:::o;3790:596::-;3911:14;4016:20;:18;:20::i;:::-;4055:10;3952:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3952:128:0;;;3928:163;;;;;;3911:180;;4102:24;4129:26;4139:6;4147:1;4150;4153;4129:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;4129:26:0;;;;;;-1:-1:-1;;4290:30:0;;;;;;;:60;;;4344:6;4324:26;;:16;:26;;;4290:60;4282:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:596;;;;;;;:::o;866:134::-;959:5;;;954:16;;;;946:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://8045888537205f30e94c6868aedb26f07bd80c2d4d51c5a72e33be27f95e8c1a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.