The wallet that deployed this token contract was compromised on July 17, 2024. This existing L2 DAI contract on Arbinova is safe to use. Read more here.
ERC-20
Stablecoin
Overview
Max Total Supply
105,189.819915566473731239 DAI
Holders
76,253 ( -0.012%)
Market
Price
$1.00 @ 0.000435 ETH (+0.03%)
Onchain Market Cap
$105,175.09
Circulating Supply Market Cap
$5,133,825,800.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.285879727230395425 DAIValue
$0.29 ( ~0.000126145904137016 ETH) [0.0003%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Dai
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity)
/** *Submitted for verification at Nova.Arbiscan.io on 2022-10-28 */ // SPDX-License-Identifier: AGPL-3.0-or-later // Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico // Copyright (C) 2022 Dai Foundation // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. pragma solidity ^0.6.11; // Improved Dai token contract Dai { // --- Auth --- mapping (address => uint256) public wards; function rely(address usr) external auth { wards[usr] = 1; emit Rely(usr); } function deny(address usr) external auth { wards[usr] = 0; emit Deny(usr); } modifier auth { require(wards[msg.sender] == 1, "Dai/not-authorized"); _; } // --- ERC20 Data --- string public constant name = "Dai Stablecoin"; string public constant symbol = "DAI"; string public constant version = "2"; uint8 public constant decimals = 18; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; mapping (address => uint256) public nonces; event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); event Rely(address indexed usr); event Deny(address indexed usr); // --- Math --- function _add(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x + y) >= x); } function _sub(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x - y) <= x); } // --- EIP712 niceties --- uint256 public immutable deploymentChainId; bytes32 private immutable _DOMAIN_SEPARATOR; bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); constructor() public { wards[msg.sender] = 1; emit Rely(msg.sender); uint256 chainId; assembly {chainId := chainid()} deploymentChainId = chainId; _DOMAIN_SEPARATOR = _calculateDomainSeparator(chainId); } function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256(bytes(version)), chainId, address(this) ) ); } function DOMAIN_SEPARATOR() external view returns (bytes32) { uint256 chainId; assembly {chainId := chainid()} return chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId); } // --- ERC20 Mutations --- function transfer(address to, uint256 value) external returns (bool) { require(to != address(0) && to != address(this), "Dai/invalid-address"); uint256 balance = balanceOf[msg.sender]; require(balance >= value, "Dai/insufficient-balance"); balanceOf[msg.sender] = balance - value; balanceOf[to] += value; emit Transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint256 value) external returns (bool) { require(to != address(0) && to != address(this), "Dai/invalid-address"); uint256 balance = balanceOf[from]; require(balance >= value, "Dai/insufficient-balance"); if (from != msg.sender) { uint256 allowed = allowance[from][msg.sender]; if (allowed != type(uint256).max) { require(allowed >= value, "Dai/insufficient-allowance"); allowance[from][msg.sender] = allowed - value; } } balanceOf[from] = balance - value; balanceOf[to] += value; emit Transfer(from, to, value); return true; } function approve(address spender, uint256 value) external returns (bool) { allowance[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { uint256 newValue = _add(allowance[msg.sender][spender], addedValue); allowance[msg.sender][spender] = newValue; emit Approval(msg.sender, spender, newValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 allowed = allowance[msg.sender][spender]; require(allowed >= subtractedValue, "Dai/insufficient-allowance"); allowed = allowed - subtractedValue; allowance[msg.sender][spender] = allowed; emit Approval(msg.sender, spender, allowed); return true; } // --- Mint/Burn --- function mint(address to, uint256 value) external auth { require(to != address(0) && to != address(this), "Dai/invalid-address"); balanceOf[to] = balanceOf[to] + value; // note: we don't need an overflow check here b/c balanceOf[to] <= totalSupply and there is an overflow check below totalSupply = _add(totalSupply, value); emit Transfer(address(0), to, value); } function burn(address from, uint256 value) external { uint256 balance = balanceOf[from]; require(balance >= value, "Dai/insufficient-balance"); if (from != msg.sender && wards[msg.sender] != 1) { uint256 allowed = allowance[from][msg.sender]; if (allowed != type(uint256).max) { require(allowed >= value, "Dai/insufficient-allowance"); allowance[from][msg.sender] = allowed - value; } } balanceOf[from] = balance - value; // note: we don't need overflow checks b/c require(balance >= value) and balance <= totalSupply totalSupply = totalSupply - value; emit Transfer(from, address(0), value); } // --- Approve by signature --- function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external { require(block.timestamp <= deadline, "Dai/permit-expired"); uint256 chainId; assembly {chainId := chainid()} bytes32 digest = keccak256(abi.encodePacked( "\x19\x01", chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId), keccak256(abi.encode( PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline )) )); require(owner != address(0) && owner == ecrecover(digest, v, r, s), "Dai/invalid-permit"); allowance[owner][spender] = value; emit Approval(owner, spender, value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","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":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"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":"value","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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deploymentChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b503360008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a2466080819052610062816001600160e01b0361006b16565b60a0525061013f565b600060405180806114af60529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b60805160a05161133e6101716000398061077f5280610f2b52508061074a5280610e855280610ef6525061133e6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610740565b6040805160ff9092168252519081900360200190f35b61020c610745565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107a5565b6102da600480360360408110156102c457600080fd5b506001600160a01b03813516906020013561082c565b005b61014f61094e565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b031661096b565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a09565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a1b565b61014f610a2d565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a4c565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610ae9565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c7b565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d4c565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e71565b61020c610e83565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610ea7565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611123565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390926000805160206112e9833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526002602090815260408083208887039055938816808352918490208054880190558351878152935191936000805160206112c9833981519152929081900390910190a3506001949350505050565b60405180605261122582396052019050604051809103902081565b601281565b6000467f0000000000000000000000000000000000000000000000000000000000000000811461077d5761077881611140565b61079f565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107d59084611214565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112e98339815191529281900390910190a35060019392505050565b33600090815260208190526040902054600114610885576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108a657506001600160a01b0382163014155b6108ed576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109189082611214565b6001556040805182815290516001600160a01b038416916000916000805160206112c98339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109c4576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aa5576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b52576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b7b575033600090815260208190526040902054600114155b15610c2a576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c285782811015610bff576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526002602090815260408083208686039055600180548790039055805186815290519293926000805160206112c9833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cf1576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b038916808552908352928190209487900394859055805185815290519293926000805160206112e9833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d6f57506001600160a01b0383163014155b610db6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e16576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b03881680845292819020805488019055805187815290519293926000805160206112c9833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b83421115610ef1576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f00000000000000000000000000000000000000000000000000000000000000008214610f2957610f2482611140565b610f4b565b7f00000000000000000000000000000000000000000000000000000000000000005b6040518060526112258239604080519182900360520182206001600160a01b03808f166000818152600460209081529085902080546001810190915581870194909452858501829052918f166060860152608085018e905260a085019290925260c08085018d90528351808603909101815260e08501845280519082012061190160f01b6101008601526101028501969096526101228085019690965282518085039096018652610142909301909152835193909101929092209250501580159061108757506040805160008152602080820180845284905260ff8816828401526060820187905260808201869052915160019260a0808401939192601f1981019281900390910190855afa158015611068573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112e98339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b6000604051808061127760529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b8082018281101561052e57600080fdfe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db5264736f6c634300060b0033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610740565b6040805160ff9092168252519081900360200190f35b61020c610745565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107a5565b6102da600480360360408110156102c457600080fd5b506001600160a01b03813516906020013561082c565b005b61014f61094e565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b031661096b565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a09565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a1b565b61014f610a2d565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a4c565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610ae9565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c7b565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d4c565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e71565b61020c610e83565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610ea7565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611123565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390926000805160206112e9833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526002602090815260408083208887039055938816808352918490208054880190558351878152935191936000805160206112c9833981519152929081900390910190a3506001949350505050565b60405180605261122582396052019050604051809103902081565b601281565b6000467f000000000000000000000000000000000000000000000000000000000000a4ba811461077d5761077881611140565b61079f565b7f0ae683d31980dfc7ea418b48aaaa6811348e3e2118d7c8614bb7456ec780f6605b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107d59084611214565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112e98339815191529281900390910190a35060019392505050565b33600090815260208190526040902054600114610885576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108a657506001600160a01b0382163014155b6108ed576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109189082611214565b6001556040805182815290516001600160a01b038416916000916000805160206112c98339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109c4576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aa5576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b52576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b7b575033600090815260208190526040902054600114155b15610c2a576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c285782811015610bff576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526002602090815260408083208686039055600180548790039055805186815290519293926000805160206112c9833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cf1576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b038916808552908352928190209487900394859055805185815290519293926000805160206112e9833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d6f57506001600160a01b0383163014155b610db6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e16576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b03881680845292819020805488019055805187815290519293926000805160206112c9833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000a4ba81565b83421115610ef1576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f000000000000000000000000000000000000000000000000000000000000a4ba8214610f2957610f2482611140565b610f4b565b7f0ae683d31980dfc7ea418b48aaaa6811348e3e2118d7c8614bb7456ec780f6605b6040518060526112258239604080519182900360520182206001600160a01b03808f166000818152600460209081529085902080546001810190915581870194909452858501829052918f166060860152608085018e905260a085019290925260c08085018d90528351808603909101815260e08501845280519082012061190160f01b6101008601526101028501969096526101228085019690965282518085039096018652610142909301909152835193909101929092209250501580159061108757506040805160008152602080820180845284905260ff8816828401526060820187905260808201869052915160019260a0808401939192601f1981019281900390910190855afa158015611068573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112e98339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b6000604051808061127760529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b8082018281101561052e57600080fdfe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db5264736f6c634300060b0033
Deployed Bytecode Sourcemap
881:6368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4401:194;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4401:194:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1457:26;;;:::i;:::-;;;;;;;;;;;;;;;;3726:671;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3726:671:0;;;;;;;;;;;;;;;;;:::i;2304:137::-;;;:::i;1415:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3061:224;;;:::i;4599:289::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4599:289:0;;;;;;;;:::i;5309:391::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5309:391:0;;;;;;;;:::i;:::-;;1372:38;;;:::i;966:89::-;;;;;;;;;;;;;;;;-1:-1:-1;966:89:0;-1:-1:-1;;;;;966:89:0;;:::i;1490:66::-;;;;;;;;;;;;;;;;-1:-1:-1;1490:66:0;-1:-1:-1;;;;;1490:66:0;;:::i;1632:63::-;;;;;;;;;;;;;;;;-1:-1:-1;1632:63:0;-1:-1:-1;;;;;1632:63:0;;:::i;1327:40::-;;;:::i;1059:89::-;;;;;;;;;;;;;;;;-1:-1:-1;1059:89:0;-1:-1:-1;;;;;1059:89:0;;:::i;5704:683::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5704:683:0;;;;;;;;:::i;4892:387::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4892:387:0;;;;;;;;:::i;3321:401::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3321:401:0;;;;;;;;:::i;920:41::-;;;;;;;;;;;;;;;;-1:-1:-1;920:41:0;-1:-1:-1;;;;;920:41:0;;:::i;2209:42::-;;;:::i;6428:818::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6428:818:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1561:66::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1561:66:0;;;;;;;;;;:::i;1271:51::-;;;;;;;;;;;;;;-1:-1:-1;;;1271:51:0;;;;:::o;4401:194::-;4491:10;4468:4;4481:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4481:30:0;;;;;;;;;;;:38;;;4533:36;;;;;;;4468:4;;4481:30;;4491:10;;-1:-1:-1;;;;;;;;;;;4533:36:0;;;;;;;-1:-1:-1;4585:4:0;4401:194;;;;;:::o;1457:26::-;;;;:::o;3726:671::-;3807:4;-1:-1:-1;;;;;3828:16:0;;;;;;:39;;-1:-1:-1;;;;;;3848:19:0;;3862:4;3848:19;;3828:39;3820:71;;;;;-1:-1:-1;;;3820:71:0;;;;;;;;;;;;-1:-1:-1;;;3820:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3916:15:0;;3898;3916;;;:9;:15;;;;;;3946:16;;;;3938:53;;;;;-1:-1:-1;;;3938:53:0;;;;;;;;;;;;-1:-1:-1;;;3938:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4004:18:0;;4012:10;4004:18;4000:262;;-1:-1:-1;;;;;4051:15:0;;4033;4051;;;:9;:15;;;;;;;;4067:10;4051:27;;;;;;;;-1:-1:-1;;4091:28:0;;4087:168;;4151:5;4140:7;:16;;4132:55;;;;;-1:-1:-1;;;4132:55:0;;;;;;;;;;;;-1:-1:-1;;;4132:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4200:15:0;;;;;;:9;:15;;;;;;;;4216:10;4200:27;;;;;;;4230:15;;;4200:45;;4087:168;4000:262;;-1:-1:-1;;;;;4270:15:0;;;;;;;:9;:15;;;;;;;;4288;;;4270:33;;4310:13;;;;;;;;;;:22;;;;;;4346:25;;;;;;;4310:13;;-1:-1:-1;;;;;;;;;;;4346:25:0;;;;;;;;;;-1:-1:-1;4387:4:0;;3726:671;-1:-1:-1;;;;3726:671:0:o;2304:137::-;2346:95;;;;;;;;;;;;;;;;;;2304:137;:::o;1415:37::-;1450:2;1415:37;:::o;3061:224::-;3112:7;3171:9;3205:17;3194:28;;:85;;3245:34;3271:7;3245:25;:34::i;:::-;3194:85;;;3225:17;3194:85;3187:92;;;3061:224;:::o;4599:289::-;4728:10;4681:4;4718:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4718:30:0;;;;;;;;;;4681:4;;4713:48;;4750:10;4713:4;:48::i;:::-;4778:10;4768:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4768:30:0;;;;;;;;;;;;:41;;;4823:39;;;;;;;4694:67;;-1:-1:-1;4768:30:0;;-1:-1:-1;;;;;;;;;;;4823:39:0;;;;;;;;;-1:-1:-1;4878:4:0;;4599:289;-1:-1:-1;;;4599:289:0:o;5309:391::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5379:16:0;::::1;::::0;;::::1;::::0;:39:::1;;-1:-1:-1::0;;;;;;5399:19:0;::::1;5413:4;5399:19;;5379:39;5371:71;;;::::0;;-1:-1:-1;;;5371:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5371:71:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5465:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;;:21;::::1;5449:37:::0;;-1:-1:-1;5630:11:0;5625:24:::1;::::0;5481:5;5625:4:::1;:24::i;:::-;5609:11;:40:::0;5663:31:::1;::::0;;;;;;;-1:-1:-1;;;;;5663:31:0;::::1;::::0;5680:1:::1;::::0;-1:-1:-1;;;;;;;;;;;5663:31:0;;;;::::1;::::0;;::::1;5309:391:::0;;:::o;1372:38::-;;;;;;;;;;;;;;-1:-1:-1;;;1372:38:0;;;;:::o;966:89::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1014:10:0;::::1;:5;:10:::0;;;::::1;::::0;;;;;;;1027:1:::1;1014:14:::0;;1040:9;::::1;::::0;1014:5;1040:9:::1;966:89:::0;:::o;1490:66::-;;;;;;;;;;;;;:::o;1632:63::-;;;;;;;;;;;;;:::o;1327:40::-;;;;;;;;;;;;;;-1:-1:-1;;;1327:40:0;;;;:::o;1059:89::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1107:10:0;::::1;1120:1;1107:10:::0;;;::::1;::::0;;;;;;;:14;;;1133:9;::::1;::::0;1120:1;1133:9:::1;1059:89:::0;:::o;5704:683::-;-1:-1:-1;;;;;5781:15:0;;5763;5781;;;:9;:15;;;;;;5811:16;;;;5803:53;;;;;-1:-1:-1;;;5803:53:0;;;;;;;;;;;;-1:-1:-1;;;5803:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5869:18:0;;5877:10;5869:18;;;;:44;;-1:-1:-1;5897:10:0;5891:5;:17;;;;;;;;;;;5912:1;5891:22;;5869:44;5865:288;;;-1:-1:-1;;;;;5942:15:0;;5924;5942;;;:9;:15;;;;;;;;5958:10;5942:27;;;;;;;;-1:-1:-1;;5982:28:0;;5978:168;;6042:5;6031:7;:16;;6023:55;;;;;-1:-1:-1;;;6023:55:0;;;;;;;;;;;;-1:-1:-1;;;6023:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6091:15:0;;;;;;:9;:15;;;;;;;;6107:10;6091:27;;;;;;;6121:15;;;6091:45;;5978:168;5865:288;;-1:-1:-1;;;;;6161:15:0;;;;;;:9;:15;;;;;;;;6179;;;6161:33;;6315:11;;;:19;;;6297:37;;6348:33;;;;;;;6161:15;;;-1:-1:-1;;;;;;;;;;;6348:33:0;;;;;;;;;;5704:683;;;:::o;4892:387::-;5020:10;4979:4;5010:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5010:30:0;;;;;;;;;;5055:26;;;;5047:65;;;;;-1:-1:-1;;;5047:65:0;;;;;;;;;;;;-1:-1:-1;;;5047:65:0;;;;;;;;;;;;;;;5171:10;5161:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5161:30:0;;;;;;;;;;;;5129:25;;;;5161:40;;;;5215:38;;;;;;;5161:30;;5171:10;-1:-1:-1;;;;;;;;;;;5215:38:0;;;;;;;;;;-1:-1:-1;5269:4:0;;4892:387;-1:-1:-1;;;4892:387:0:o;3321:401::-;3384:4;-1:-1:-1;;;;;3405:16:0;;;;;;:39;;-1:-1:-1;;;;;;3425:19:0;;3439:4;3425:19;;3405:39;3397:71;;;;;-1:-1:-1;;;3397:71:0;;;;;;;;;;;;-1:-1:-1;;;3397:71:0;;;;;;;;;;;;;;;3503:10;3475:15;3493:21;;;:9;:21;;;;;;3529:16;;;;3521:53;;;;;-1:-1:-1;;;3521:53:0;;;;;;;;;;;;-1:-1:-1;;;3521:53:0;;;;;;;;;;;;;;;3593:10;3583:21;;;;:9;:21;;;;;;;;3607:15;;;3583:39;;-1:-1:-1;;;;;3629:13:0;;;;;;;;;:22;;;;;;3665:31;;;;;;;3629:13;;3593:10;-1:-1:-1;;;;;;;;;;;3665:31:0;;;;;;;;;;-1:-1:-1;3712:4:0;;3321:401;-1:-1:-1;;;3321:401:0:o;920:41::-;;;;;;;;;;;;;;:::o;2209:42::-;;;:::o;6428:818::-;6583:8;6564:15;:27;;6556:58;;;;;-1:-1:-1;;;6556:58:0;;;;;;;;;;;;-1:-1:-1;;;6556:58:0;;;;;;;;;;;;;;;6666:9;6623:15;6781:17;6770:28;;:85;;6821:34;6847:7;6821:25;:34::i;:::-;6770:85;;;6801:17;6770:85;2346:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6995:13:0;;;;;;;:6;:13;;;;;;;;:15;;;;;;;;6878:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6868:179;;;;;;-1:-1:-1;;;6718:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:349;;;;;;;;;;;-1:-1:-1;;7074:19:0;;;;:58;;-1:-1:-1;7106:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7106:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7097:35:0;:5;-1:-1:-1;;;;;7097:35:0;;7074:58;7066:89;;;;;-1:-1:-1;;;7066:89:0;;;;;;;;;;;;-1:-1:-1;;;7066:89:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7164:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;7209:31;;;;;;;-1:-1:-1;;;;;;;;;;;7209:31:0;;;;;;;;;6428:818;;;;;;;;;:::o;1561:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2693:364::-;2767:7;2829:95;;;;;;;;;;;;;;;;;;;2951:4;;;;;;;;-1:-1:-1;;;2951:4:0;;;;;2984:7;;;;;;;;;;-1:-1:-1;;;2984:7:0;;;;2808:236;;;;;;;;;2935:22;2808:236;;;;2968:25;2808:236;;;;;;;;;;3030:4;2808:236;;;;;;;;;;;;;;;;;;;;;;;;;2790:261;;;;;;-1:-1:-1;;2693:364:0;;;:::o;1953:108::-;2043:5;;;2038:16;;;;2030:25;;;;
Swarm Source
ipfs://c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db52
[ 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.