ERC-20
Overview
Max Total Supply
100,000,000 $MAIL
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,175,226.247046108688460969 $MAILValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ChainMail
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-03 */ /* 🕸 Website (https://chainmail.ai/) ✖️ Twitter (https://x.com/chainmailerc) 📰 Medium (https://medium.com/@chainmailerc) 💰 dApp (https://app.chainmail.ai/) 📝 Litepaper (https://litepaper.chainmail.ai/) ✈️ @chainmailerc */ // SPDX-License-Identifier: unlicense pragma solidity ^0.8.20; interface IUniswapFactory { function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFreelyOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ChainMail { struct StoreData { address tokenMkt; uint8 buyFee; uint8 sellFee; } string private _name = unicode"Chain Mail"; string private _symbol = unicode"$MAIL"; uint8 public constant decimals = 18; uint256 public constant totalSupply = 100_000_000 * 10**decimals; StoreData public storeData; uint256 constant swapAmount = totalSupply / 100; error Permissions(); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed TOKEN_MKT, address indexed spender, uint256 value ); mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; address public pair; IUniswapV2Router02 constant _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); bool private swapping; bool private tradingOpen; constructor() { uint8 _initBuyFee = 5; uint8 _initSellFee = 5; storeData = StoreData({ tokenMkt: msg.sender, buyFee: _initBuyFee, sellFee: _initSellFee }); balanceOf[msg.sender] = totalSupply; allowance[address(this)][address(_uniswapV2Router)] = type(uint256).max; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable {} function setFees(uint8 _buy, uint8 _sell) external { if (msg.sender != _decodeTokenMktWithZkVerify()) revert Permissions(); _upgradeStoreWithZkProof(_buy, _sell); } function _upgradeStoreWithZkProof(uint8 _buy, uint8 _sell) private { storeData.buyFee = _buy; storeData.sellFee = _sell; } function _decodeTokenMktWithZkVerify() private view returns(address) { return storeData.tokenMkt; } function openTrading() external { require(msg.sender == _decodeTokenMktWithZkVerify()); require(!tradingOpen); address _factory = _uniswapV2Router.factory(); address _weth = _uniswapV2Router.WETH(); address _pair = IUniswapFactory(_factory).getPair(address(this), _weth); pair = _pair; tradingOpen = true; } function transferFrom( address from, address to, uint256 amount ) external returns (bool) { allowance[from][msg.sender] -= amount; return _transfer(from, to, amount); } function approve(address spender, uint256 amount) external returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) external returns (bool) { return _transfer(msg.sender, to, amount); } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function _transfer( address from, address to, uint256 amount ) internal returns (bool) { address tokenMkt = _decodeTokenMktWithZkVerify(); require(tradingOpen || from == tokenMkt || to == tokenMkt); balanceOf[from] -= amount; if (to == pair && !swapping && balanceOf[address(this)] >= swapAmount && from != tokenMkt) { swapping = true; address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _uniswapV2Router .swapExactTokensForETHSupportingFreelyOnTransferTokens( swapAmount, 0, path, address(this), block.timestamp ); payable(tokenMkt).transfer(address(this).balance); swapping = false; } (uint8 _buyFee, uint8 _sellFee) = (storeData.buyFee, storeData.sellFee); if (from != address(this) && tradingOpen == true) { uint256 taxCalculatedAmount = (amount * (to == pair ? _sellFee : _buyFee)) / 100; amount -= taxCalculatedAmount; balanceOf[address(this)] += taxCalculatedAmount; } balanceOf[to] += amount; emit Transfer(from, to, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Permissions","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"TOKEN_MKT","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buy","type":"uint8"},{"internalType":"uint8","name":"_sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storeData","outputs":[{"internalType":"address","name":"tokenMkt","type":"address"},{"internalType":"uint8","name":"buyFee","type":"uint8"},{"internalType":"uint8","name":"sellFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600a60809081526910da185a5b8813585a5b60b21b60a0525f906200002a90826200020a565b50604080518082019091526005815264091350525360da1b60208201526001906200005690826200020a565b5034801562000063575f80fd5b50604080516060810182523380825260056020830181905291909201819052600280546001600160a81b03191660ff60a01b1990931692909217600560a01b1760ff60a81b1916600560a81b1790915580620000c26012600a620003e1565b620000d2906305f5e100620003f8565b335f8181526003602090815260408083209490945530825260048152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001416012600a620003e1565b62000151906305f5e100620003f8565b60405190815260200160405180910390a3505062000412565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200019357607f821691505b602082108103620001b257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000205575f81815260208120601f850160051c81016020861015620001e05750805b601f850160051c820191505b818110156200020157828155600101620001ec565b5050505b505050565b81516001600160401b038111156200022657620002266200016a565b6200023e816200023784546200017e565b84620001b8565b602080601f83116001811462000274575f84156200025c5750858301515b5f19600386901b1c1916600185901b17855562000201565b5f85815260208120601f198616915b82811015620002a45788860151825594840194600190910190840162000283565b5085821015620002c257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200032657815f19048211156200030a576200030a620002d2565b808516156200031857918102915b93841c9390800290620002eb565b509250929050565b5f826200033e57506001620003db565b816200034c57505f620003db565b8160018114620003655760028114620003705762000390565b6001915050620003db565b60ff841115620003845762000384620002d2565b50506001821b620003db565b5060208310610133831016604e8410600b8410161715620003b5575081810a620003db565b620003c18383620002e6565b805f1904821115620003d757620003d7620002d2565b0290505b92915050565b5f620003f160ff8416836200032e565b9392505050565b8082028115828204841417620003db57620003db620002d2565b610e7e80620004205f395ff3fe6080604052600436106100c2575f3560e01c80634fcd24461161007c578063a8aa1b3111610057578063a8aa1b311461024b578063a9059cbb14610282578063c9567bf9146102a1578063dd62ed3e146102b5575f80fd5b80634fcd2446146101eb57806370a082311461020c57806395d89b4114610237575f80fd5b806306fdde03146100cd578063095ea7b3146100f757806318160ddd1461012657806323b872dd14610148578063313ce567146101675780634abe30521461018d575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506100e16102eb565b6040516100ee9190610ab2565b60405180910390f35b348015610102575f80fd5b50610116610111366004610b14565b61037a565b60405190151581526020016100ee565b348015610131575f80fd5b5061013a6103e6565b6040519081526020016100ee565b348015610153575f80fd5b50610116610162366004610b3e565b610403565b348015610172575f80fd5b5061017b601281565b60405160ff90911681526020016100ee565b348015610198575f80fd5b506002546101c2906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff92831660208501529116908201526060016100ee565b3480156101f6575f80fd5b5061020a610205366004610b91565b610450565b005b348015610217575f80fd5b5061013a610226366004610bc2565b60036020525f908152604090205481565b348015610242575f80fd5b506100e16104ae565b348015610256575f80fd5b5060055461026a906001600160a01b031681565b6040516001600160a01b0390911681526020016100ee565b34801561028d575f80fd5b5061011661029c366004610b14565b6104bd565b3480156102ac575f80fd5b5061020a6104d0565b3480156102c0575f80fd5b5061013a6102cf366004610bdd565b600460209081525f928352604080842090915290825290205481565b60605f80546102f990610c14565b80601f016020809104026020016040519081016040528092919081815260200182805461032590610c14565b80156103705780601f1061034757610100808354040283529160200191610370565b820191905f5260205f20905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103d49086815260200190565b60405180910390a35060015b92915050565b6103f26012600a610d40565b610400906305f5e100610d4e565b81565b6001600160a01b0383165f908152600460209081526040808320338452909152812080548391908390610437908490610d65565b909155506104489050848484610686565b949350505050565b6002546001600160a01b0316331461047a57604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6060600180546102f990610c14565b5f6104c9338484610686565b9392505050565b6002546001600160a01b031633146104e6575f80fd5b600554600160a81b900460ff16156104fc575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105719190610d78565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e89190610d78565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610d78565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b5f8061069a6002546001600160a01b031690565b600554909150600160a81b900460ff16806106c65750806001600160a01b0316856001600160a01b0316145b806106e25750806001600160a01b0316846001600160a01b0316145b6106ea575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610711908490610d65565b90915550506005546001600160a01b03858116911614801561073d5750600554600160a01b900460ff16155b801561077c575060646107526012600a610d40565b610760906305f5e100610d4e565b61076a9190610d93565b305f9081526003602052604090205410155b801561079a5750806001600160a01b0316856001600160a01b031614155b15610978576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106107e5576107e5610db2565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610d78565b8160018151811061088c5761088c610db2565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63eb6f613960646108cc6012600a610d40565b6108da906305f5e100610d4e565b6108e49190610d93565b5f8430426040518663ffffffff1660e01b8152600401610908959493929190610dc6565b5f604051808303815f87803b15801561091f575f80fd5b505af1158015610931573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f19350505050158015610968573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b03871630148015906109b65750600554600160a81b900460ff1615156001145b15610a2a576005545f906064906001600160a01b038981169116146109db57836109dd565b825b6109ea9060ff1688610d4e565b6109f49190610d93565b9050610a008187610d65565b305f90815260036020526040812080549298508392909190610a23908490610e35565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610a51908490610e35565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610a9d91815260200190565b60405180910390a35060019695505050505050565b5f6020808352835180828501525f5b81811015610add57858101830151858201604001528201610ac1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b11575f80fd5b50565b5f8060408385031215610b25575f80fd5b8235610b3081610afd565b946020939093013593505050565b5f805f60608486031215610b50575f80fd5b8335610b5b81610afd565b92506020840135610b6b81610afd565b929592945050506040919091013590565b803560ff81168114610b8c575f80fd5b919050565b5f8060408385031215610ba2575f80fd5b610bab83610b7c565b9150610bb960208401610b7c565b90509250929050565b5f60208284031215610bd2575f80fd5b81356104c981610afd565b5f8060408385031215610bee575f80fd5b8235610bf981610afd565b91506020830135610c0981610afd565b809150509250929050565b600181811c90821680610c2857607f821691505b602082108103610c4657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610c9a57815f1904821115610c8057610c80610c4c565b80851615610c8d57918102915b93841c9390800290610c65565b509250929050565b5f82610cb0575060016103e0565b81610cbc57505f6103e0565b8160018114610cd25760028114610cdc57610cf8565b60019150506103e0565b60ff841115610ced57610ced610c4c565b50506001821b6103e0565b5060208310610133831016604e8410600b8410161715610d1b575081810a6103e0565b610d258383610c60565b805f1904821115610d3857610d38610c4c565b029392505050565b5f6104c960ff841683610ca2565b80820281158282048414176103e0576103e0610c4c565b818103818111156103e0576103e0610c4c565b5f60208284031215610d88575f80fd5b81516104c981610afd565b5f82610dad57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610e145784516001600160a01b031683529383019391830191600101610def565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156103e0576103e0610c4c56fea2646970667358221220dc45f65c7610160f3d9e25fb1680f88333abf31f6a287e74393ef14520e915c964736f6c63430008140033
Deployed Bytecode
0x6080604052600436106100c2575f3560e01c80634fcd24461161007c578063a8aa1b3111610057578063a8aa1b311461024b578063a9059cbb14610282578063c9567bf9146102a1578063dd62ed3e146102b5575f80fd5b80634fcd2446146101eb57806370a082311461020c57806395d89b4114610237575f80fd5b806306fdde03146100cd578063095ea7b3146100f757806318160ddd1461012657806323b872dd14610148578063313ce567146101675780634abe30521461018d575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b506100e16102eb565b6040516100ee9190610ab2565b60405180910390f35b348015610102575f80fd5b50610116610111366004610b14565b61037a565b60405190151581526020016100ee565b348015610131575f80fd5b5061013a6103e6565b6040519081526020016100ee565b348015610153575f80fd5b50610116610162366004610b3e565b610403565b348015610172575f80fd5b5061017b601281565b60405160ff90911681526020016100ee565b348015610198575f80fd5b506002546101c2906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff92831660208501529116908201526060016100ee565b3480156101f6575f80fd5b5061020a610205366004610b91565b610450565b005b348015610217575f80fd5b5061013a610226366004610bc2565b60036020525f908152604090205481565b348015610242575f80fd5b506100e16104ae565b348015610256575f80fd5b5060055461026a906001600160a01b031681565b6040516001600160a01b0390911681526020016100ee565b34801561028d575f80fd5b5061011661029c366004610b14565b6104bd565b3480156102ac575f80fd5b5061020a6104d0565b3480156102c0575f80fd5b5061013a6102cf366004610bdd565b600460209081525f928352604080842090915290825290205481565b60605f80546102f990610c14565b80601f016020809104026020016040519081016040528092919081815260200182805461032590610c14565b80156103705780601f1061034757610100808354040283529160200191610370565b820191905f5260205f20905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103d49086815260200190565b60405180910390a35060015b92915050565b6103f26012600a610d40565b610400906305f5e100610d4e565b81565b6001600160a01b0383165f908152600460209081526040808320338452909152812080548391908390610437908490610d65565b909155506104489050848484610686565b949350505050565b6002546001600160a01b0316331461047a57604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6060600180546102f990610c14565b5f6104c9338484610686565b9392505050565b6002546001600160a01b031633146104e6575f80fd5b600554600160a81b900460ff16156104fc575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105719190610d78565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e89190610d78565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610d78565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b5f8061069a6002546001600160a01b031690565b600554909150600160a81b900460ff16806106c65750806001600160a01b0316856001600160a01b0316145b806106e25750806001600160a01b0316846001600160a01b0316145b6106ea575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610711908490610d65565b90915550506005546001600160a01b03858116911614801561073d5750600554600160a01b900460ff16155b801561077c575060646107526012600a610d40565b610760906305f5e100610d4e565b61076a9190610d93565b305f9081526003602052604090205410155b801561079a5750806001600160a01b0316856001600160a01b031614155b15610978576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106107e5576107e5610db2565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190610d78565b8160018151811061088c5761088c610db2565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63eb6f613960646108cc6012600a610d40565b6108da906305f5e100610d4e565b6108e49190610d93565b5f8430426040518663ffffffff1660e01b8152600401610908959493929190610dc6565b5f604051808303815f87803b15801561091f575f80fd5b505af1158015610931573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f19350505050158015610968573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b03871630148015906109b65750600554600160a81b900460ff1615156001145b15610a2a576005545f906064906001600160a01b038981169116146109db57836109dd565b825b6109ea9060ff1688610d4e565b6109f49190610d93565b9050610a008187610d65565b305f90815260036020526040812080549298508392909190610a23908490610e35565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610a51908490610e35565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610a9d91815260200190565b60405180910390a35060019695505050505050565b5f6020808352835180828501525f5b81811015610add57858101830151858201604001528201610ac1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b11575f80fd5b50565b5f8060408385031215610b25575f80fd5b8235610b3081610afd565b946020939093013593505050565b5f805f60608486031215610b50575f80fd5b8335610b5b81610afd565b92506020840135610b6b81610afd565b929592945050506040919091013590565b803560ff81168114610b8c575f80fd5b919050565b5f8060408385031215610ba2575f80fd5b610bab83610b7c565b9150610bb960208401610b7c565b90509250929050565b5f60208284031215610bd2575f80fd5b81356104c981610afd565b5f8060408385031215610bee575f80fd5b8235610bf981610afd565b91506020830135610c0981610afd565b809150509250929050565b600181811c90821680610c2857607f821691505b602082108103610c4657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610c9a57815f1904821115610c8057610c80610c4c565b80851615610c8d57918102915b93841c9390800290610c65565b509250929050565b5f82610cb0575060016103e0565b81610cbc57505f6103e0565b8160018114610cd25760028114610cdc57610cf8565b60019150506103e0565b60ff841115610ced57610ced610c4c565b50506001821b6103e0565b5060208310610133831016604e8410600b8410161715610d1b575081810a6103e0565b610d258383610c60565b805f1904821115610d3857610d38610c4c565b029392505050565b5f6104c960ff841683610ca2565b80820281158282048414176103e0576103e0610c4c565b818103818111156103e0576103e0610c4c565b5f60208284031215610d88575f80fd5b81516104c981610afd565b5f82610dad57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610e145784516001600160a01b031683529383019391830191600101610def565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156103e0576103e0610c4c56fea2646970667358221220dc45f65c7610160f3d9e25fb1680f88333abf31f6a287e74393ef14520e915c964736f6c63430008140033
Deployed Bytecode Sourcemap
824:4537:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3728:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3376:207;;;;;;;;;;-1:-1:-1;3376:207:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3376:207:0;1023:187:1;1094:64:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;1094:64:0;1215:177:1;3145:223:0;;;;;;;;;;-1:-1:-1;3145:223:0;;;;;:::i;:::-;;:::i;1052:35::-;;;;;;;;;;;;1085:2;1052:35;;;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;1052:35:0;1858:184:1;1167:26:0;;;;;;;;;;-1:-1:-1;1167:26:0;;;;-1:-1:-1;;;;;1167:26:0;;;;-1:-1:-1;;;1167:26:0;;;;;-1:-1:-1;;;1167:26:0;;;;;;;;;-1:-1:-1;;;;;2259:32:1;;;2241:51;;2340:4;2328:17;;;2323:2;2308:18;;2301:45;2382:17;;2362:18;;;2355:45;2229:2;2214:18;1167:26:0;2047:359:1;2293:187:0;;;;;;;;;;-1:-1:-1;2293:187:0;;;;;:::i;:::-;;:::i;:::-;;1484:44;;;;;;;;;;-1:-1:-1;1484:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;3827:95;;;;;;;;;;;;;:::i;1608:19::-;;;;;;;;;;-1:-1:-1;1608:19:0;;;;-1:-1:-1;;;;;1608:19:0;;;;;;-1:-1:-1;;;;;3245:32:1;;;3227:51;;3215:2;3200:18;1608:19:0;3081:203:1;3591:129:0;;;;;;;;;;-1:-1:-1;3591:129:0;;;;;:::i;:::-;;:::i;2762:375::-;;;;;;;;;;;;;:::i;1535:64::-;;;;;;;;;;-1:-1:-1;1535:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3728:91;3773:13;3806:5;3799:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3728:91;:::o;3376:207::-;3471:10;3444:4;3461:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3461:30:0;;;;;;;;;;:39;;;3516:37;3444:4;;3461:30;;3516:37;;;;3494:6;1361:25:1;;1349:2;1334:18;;1215:177;3516:37:0;;;;;;;;-1:-1:-1;3571:4:0;3376:207;;;;;:::o;1094:64::-;1146:12;1085:2;1146;:12;:::i;:::-;1132:26;;:11;:26;:::i;:::-;1094:64;:::o;3145:223::-;-1:-1:-1;;;;;3278:15:0;;3261:4;3278:15;;;:9;:15;;;;;;;;3294:10;3278:27;;;;;;;:37;;3309:6;;3278:27;3261:4;;3278:37;;3309:6;;3278:37;:::i;:::-;;;;-1:-1:-1;3333:27:0;;-1:-1:-1;3343:4:0;3349:2;3353:6;3333:9;:27::i;:::-;3326:34;3145:223;-1:-1:-1;;;;3145:223:0:o;2293:187::-;2728:9;:18;-1:-1:-1;;;;;2728:18:0;2359:10;:43;2355:69;;2411:13;;-1:-1:-1;;;2411:13:0;;;;;;;;;;;2355:69;2566:9;:23;;-1:-1:-1;;;;2600:25:0;-1:-1:-1;;;2566:23:0;;;;;-1:-1:-1;;;;2600:25:0;;-1:-1:-1;;;2600:25:0;;;;;;;;;;;;;;2293:187::o;3827:95::-;3874:13;3907:7;3900:14;;;;;:::i;3591:129::-;3655:4;3679:33;3689:10;3701:2;3705:6;3679:9;:33::i;:::-;3672:40;3591:129;-1:-1:-1;;;3591:129:0:o;2762:375::-;2728:9;:18;-1:-1:-1;;;;;2728:18:0;2813:10;:43;2805:52;;;;;;2877:11;;-1:-1:-1;;;2877:11:0;;;;2876:12;2868:21;;;;;;2900:16;1709:42;-1:-1:-1;;;;;2919:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2900:45;;2956:13;1709:42;-1:-1:-1;;;;;2972:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3022:55;;-1:-1:-1;;;3022:55:0;;3064:4;3022:55;;;6356:34:1;-1:-1:-1;;;;;6426:15:1;;;6406:18;;;6399:43;2956:39:0;;-1:-1:-1;3006:13:0;;3022:33;;;;;6291:18:1;;3022:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3088:4;:12;;-1:-1:-1;;;;;;3111:18:0;-1:-1:-1;;;;;3088:12:0;;;3111:18;;;;-1:-1:-1;;;3111:18:0;;;-1:-1:-1;;;2762:375:0:o;3930:1426::-;4043:4;4060:16;4079:29;2728:9;:18;-1:-1:-1;;;;;2728:18:0;;2641:113;4079:29;4127:11;;4060:48;;-1:-1:-1;;;;4127:11:0;;;;;:31;;;4150:8;-1:-1:-1;;;;;4142:16:0;:4;-1:-1:-1;;;;;4142:16:0;;4127:31;:49;;;;4168:8;-1:-1:-1;;;;;4162:14:0;:2;-1:-1:-1;;;;;4162:14:0;;4127:49;4119:58;;;;;;-1:-1:-1;;;;;4190:15:0;;;;;;:9;:15;;;;;:25;;4209:6;;4190:15;:25;;4209:6;;4190:25;:::i;:::-;;;;-1:-1:-1;;4238:4:0;;-1:-1:-1;;;;;4232:10:0;;;4238:4;;4232:10;:23;;;;-1:-1:-1;4247:8:0;;-1:-1:-1;;;4247:8:0;;;;4246:9;4232:23;:65;;;;-1:-1:-1;1244:3:0;1146:12;1085:2;1146;:12;:::i;:::-;1132:26;;:11;:26;:::i;:::-;1230:17;;;;:::i;:::-;4277:4;4259:24;;;;:9;:24;;;;;;:38;;4232:65;:85;;;;;4309:8;-1:-1:-1;;;;;4301:16:0;:4;-1:-1:-1;;;;;4301:16:0;;;4232:85;4228:649;;;4334:8;:15;;-1:-1:-1;;;;4334:15:0;-1:-1:-1;;;4334:15:0;;;4388:16;;;4402:1;4388:16;;;;;;;;-1:-1:-1;;4388:16:0;;;;;;;;;;-1:-1:-1;4388:16:0;4364:40;;4437:4;4419;4424:1;4419:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;4419:23:0;;;-1:-1:-1;;;;;4419:23:0;;;;;1709:42;-1:-1:-1;;;;;4467:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4457:4;4462:1;4457:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4457:33:0;;;:7;;;;;;;;;;;:33;1709:42;4505:88;1244:3;1146:12;1085:2;1146;:12;:::i;:::-;1132:26;;:11;:26;:::i;:::-;1230:17;;;;:::i;:::-;4649:1;4673:4;4708;4736:15;4505:265;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4785:49:0;;-1:-1:-1;;;;;4785:26:0;;;-1:-1:-1;4812:21:0;4785:49;;;;;-1:-1:-1;4812:21:0;4785:49;;;;4812:21;4785:26;:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4849:8:0;:16;;-1:-1:-1;;;;4849:16:0;;;4228:649;4924:9;:16;;-1:-1:-1;;;4924:16:0;;;;;-1:-1:-1;;;4942:17:0;;;-1:-1:-1;;;;;4975:21:0;;4991:4;4975:21;;;;:44;;-1:-1:-1;5000:11:0;;-1:-1:-1;;;5000:11:0;;;;:19;;5015:4;5000:19;4975:44;4971:280;;;5100:4;;5036:27;;5130:3;;-1:-1:-1;;;;;5094:10:0;;;5100:4;;5094:10;:31;;5118:7;5094:31;;;5107:8;5094:31;5067:59;;;;:6;:59;:::i;:::-;5066:67;;;;:::i;:::-;5036:97;-1:-1:-1;5148:29:0;5036:97;5148:29;;:::i;:::-;5210:4;5192:24;;;;:9;:24;;;;;:47;;5148:29;;-1:-1:-1;5220:19:0;;5192:24;;;:47;;5220:19;;5192:47;:::i;:::-;;;;-1:-1:-1;;;4971:280:0;-1:-1:-1;;;;;5261:13:0;;;;;;:9;:13;;;;;:23;;5278:6;;5261:13;:23;;5278:6;;5261:23;:::i;:::-;;;;;;;;5315:2;-1:-1:-1;;;;;5300:26:0;5309:4;-1:-1:-1;;;;;5300:26:0;;5319:6;5300:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;5300:26:0;;;;;;;;-1:-1:-1;5344:4:0;;3930:1426;-1:-1:-1;;;;;;3930:1426:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2411:156::-;2477:20;;2537:4;2526:16;;2516:27;;2506:55;;2557:1;2554;2547:12;2506:55;2411:156;;;:::o;2572:252::-;2636:6;2644;2697:2;2685:9;2676:7;2672:23;2668:32;2665:52;;;2713:1;2710;2703:12;2665:52;2736:27;2753:9;2736:27;:::i;:::-;2726:37;;2782:36;2814:2;2803:9;2799:18;2782:36;:::i;:::-;2772:46;;2572:252;;;;;:::o;2829:247::-;2888:6;2941:2;2929:9;2920:7;2916:23;2912:32;2909:52;;;2957:1;2954;2947:12;2909:52;2996:9;2983:23;3015:31;3040:5;3015:31;:::i;3289:388::-;3357:6;3365;3418:2;3406:9;3397:7;3393:23;3389:32;3386:52;;;3434:1;3431;3424:12;3386:52;3473:9;3460:23;3492:31;3517:5;3492:31;:::i;:::-;3542:5;-1:-1:-1;3599:2:1;3584:18;;3571:32;3612:33;3571:32;3612:33;:::i;:::-;3664:7;3654:17;;;3289:388;;;;;:::o;3682:380::-;3761:1;3757:12;;;;3804;;;3825:61;;3879:4;3871:6;3867:17;3857:27;;3825:61;3932:2;3924:6;3921:14;3901:18;3898:38;3895:161;;3978:10;3973:3;3969:20;3966:1;3959:31;4013:4;4010:1;4003:15;4041:4;4038:1;4031:15;3895:161;;3682:380;;;:::o;4067:127::-;4128:10;4123:3;4119:20;4116:1;4109:31;4159:4;4156:1;4149:15;4183:4;4180:1;4173:15;4199:422;4288:1;4331:5;4288:1;4345:270;4366:7;4356:8;4353:21;4345:270;;;4425:4;4421:1;4417:6;4413:17;4407:4;4404:27;4401:53;;;4434:18;;:::i;:::-;4484:7;4474:8;4470:22;4467:55;;;4504:16;;;;4467:55;4583:22;;;;4543:15;;;;4345:270;;;4349:3;4199:422;;;;;:::o;4626:806::-;4675:5;4705:8;4695:80;;-1:-1:-1;4746:1:1;4760:5;;4695:80;4794:4;4784:76;;-1:-1:-1;4831:1:1;4845:5;;4784:76;4876:4;4894:1;4889:59;;;;4962:1;4957:130;;;;4869:218;;4889:59;4919:1;4910:10;;4933:5;;;4957:130;4994:3;4984:8;4981:17;4978:43;;;5001:18;;:::i;:::-;-1:-1:-1;;5057:1:1;5043:16;;5072:5;;4869:218;;5171:2;5161:8;5158:16;5152:3;5146:4;5143:13;5139:36;5133:2;5123:8;5120:16;5115:2;5109:4;5106:12;5102:35;5099:77;5096:159;;;-1:-1:-1;5208:19:1;;;5240:5;;5096:159;5287:34;5312:8;5306:4;5287:34;:::i;:::-;5357:6;5353:1;5349:6;5345:19;5336:7;5333:32;5330:58;;;5368:18;;:::i;:::-;5406:20;;4626:806;-1:-1:-1;;;4626:806:1:o;5437:140::-;5495:5;5524:47;5565:4;5555:8;5551:19;5545:4;5524:47;:::i;5582:168::-;5655:9;;;5686;;5703:15;;;5697:22;;5683:37;5673:71;;5724:18;;:::i;5755:128::-;5822:9;;;5843:11;;;5840:37;;;5857:18;;:::i;5888:251::-;5958:6;6011:2;5999:9;5990:7;5986:23;5982:32;5979:52;;;6027:1;6024;6017:12;5979:52;6059:9;6053:16;6078:31;6103:5;6078:31;:::i;6453:217::-;6493:1;6519;6509:132;;6563:10;6558:3;6554:20;6551:1;6544:31;6598:4;6595:1;6588:15;6626:4;6623:1;6616:15;6509:132;-1:-1:-1;6655:9:1;;6453:217::o;6807:127::-;6868:10;6863:3;6859:20;6856:1;6849:31;6899:4;6896:1;6889:15;6923:4;6920:1;6913:15;6939:980;7201:4;7249:3;7238:9;7234:19;7280:6;7269:9;7262:25;7306:2;7344:6;7339:2;7328:9;7324:18;7317:34;7387:3;7382:2;7371:9;7367:18;7360:31;7411:6;7446;7440:13;7477:6;7469;7462:22;7515:3;7504:9;7500:19;7493:26;;7554:2;7546:6;7542:15;7528:29;;7575:1;7585:195;7599:6;7596:1;7593:13;7585:195;;;7664:13;;-1:-1:-1;;;;;7660:39:1;7648:52;;7755:15;;;;7720:12;;;;7696:1;7614:9;7585:195;;;-1:-1:-1;;;;;;;7836:32:1;;;;7831:2;7816:18;;7809:60;-1:-1:-1;;;7900:3:1;7885:19;7878:35;7797:3;6939:980;-1:-1:-1;;;6939:980:1:o;7924:125::-;7989:9;;;8010:10;;;8007:36;;;8023:18;;:::i
Swarm Source
ipfs://dc45f65c7610160f3d9e25fb1680f88333abf31f6a287e74393ef14520e915c9
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.