Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
TokenTracker
Multichain Info
N/A
Latest 25 from a total of 26 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint | 18285359 | 26 days ago | IN | 0 ETH | 0.000000041568 | ||||
Approve | 11888094 | 174 days ago | IN | 0 ETH | 0.000935630077 | ||||
Approve | 11887130 | 174 days ago | IN | 0 ETH | 0.002092272708 | ||||
Approve | 11883919 | 174 days ago | IN | 0 ETH | 0.001112120517 | ||||
Approve | 8454805 | 254 days ago | IN | 0 ETH | 0.000072052068 | ||||
Transfer | 4996068 | 334 days ago | IN | 0 ETH | 0.000055094348 | ||||
Approve | 4930652 | 335 days ago | IN | 0 ETH | 0.00006975591 | ||||
Transfer | 4927142 | 335 days ago | IN | 0 ETH | 0.000077166797 | ||||
Approve | 4416831 | 347 days ago | IN | 0 ETH | 0.000057431214 | ||||
Approve | 4416466 | 347 days ago | IN | 0 ETH | 0.000054547832 | ||||
Approve | 4415611 | 347 days ago | IN | 0 ETH | 0.00005432276 | ||||
Approve | 4414850 | 347 days ago | IN | 0 ETH | 0.000079835022 | ||||
Transfer | 4377980 | 348 days ago | IN | 0 ETH | 0.000114600632 | ||||
Transfer | 4377606 | 348 days ago | IN | 0 ETH | 0.000082511285 | ||||
Approve | 4363942 | 348 days ago | IN | 0 ETH | 0.000043681501 | ||||
Approve | 4341227 | 349 days ago | IN | 0 ETH | 0.000043483501 | ||||
Approve | 4340018 | 349 days ago | IN | 0 ETH | 0.000043483501 | ||||
Approve | 4339371 | 349 days ago | IN | 0 ETH | 0.000043483501 | ||||
Approve | 4336335 | 349 days ago | IN | 0 ETH | 0.000069133502 | ||||
Transfer | 4335342 | 349 days ago | IN | 0 ETH | 0.000076956005 | ||||
Approve | 4329856 | 349 days ago | IN | 0 ETH | 0.000069491214 | ||||
Transfer | 3546031 | 367 days ago | IN | 0 ETH | 0.000076974002 | ||||
Approve | 3542637 | 367 days ago | IN | 0 ETH | 0.000069259502 | ||||
Approve | 3503539 | 368 days ago | IN | 0 ETH | 0.000069313502 | ||||
Mint | 3470890 | 369 days ago | IN | 0 ETH | 0.000105765003 |
Loading...
Loading
Contract Name:
Dai
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at sepolia-optimism.etherscan.io on 2023-10-31 */ // SPDX-License-Identifier: AGPL-3.0-or-later // Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico // Copyright (C) 2021 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.7.6; // 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); } }
[{"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
60c060405234801561001057600080fd5b503360008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a246608081905261005981610062565b60a05250610139565b604080518082018252600e81526d2230b49029ba30b13632b1b7b4b760911b6020918201528151808301835260018152601960f91b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818401527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b60805160a0516112ae61016b600039806107885280610f345250806107535280610e8e5280610eff52506112ae6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610749565b6040805160ff9092168252519081900360200190f35b61020c61074e565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107ae565b6102da600480360360408110156102c457600080fd5b506001600160a01b038135169060200135610835565b005b61014f610957565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b0316610974565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a12565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a24565b61014f610a36565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a55565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610af2565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c84565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d55565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e7a565b61020c610e8c565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610eb0565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611134565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b03871680855290835281842086905581518681529151939490939092600080516020611259833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b038086166000818152600260209081526040808320888703905593881680835291849020805488019055835187815293519193600080516020611239833981519152929081900390910190a3506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6000467f000000000000000000000000000000000000000000000000000000000000000081146107865761078181611151565b6107a8565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107de9084611228565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112598339815191529281900390910190a35060019392505050565b3360009081526020819052604090205460011461088e576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108af57506001600160a01b0382163014155b6108f6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109219082611228565b6001556040805182815290516001600160a01b038416916000916000805160206112398339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aae576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b5b576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b84575033600090815260208190526040902054600114155b15610c33576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c315782811015610c08576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b0383166000818152600260209081526040808320868603905560018054879003905580518681529051929392600080516020611239833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cfa576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b03891680855290835292819020948790039485905580518581529051929392600080516020611259833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d7857506001600160a01b0383163014155b610dbf576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e1f576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b0388168084529281902080548801905580518781529051929392600080516020611239833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b83421115610efa576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f00000000000000000000000000000000000000000000000000000000000000008214610f3257610f2d82611151565b610f54565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03808b1660008181526004602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981840152808401859052948e166060860152608085018d905260a085015260c08085018c90528251808603909101815260e08501835280519082012061190160f01b6101008601526101028501959095526101228085019590955281518085039095018552610142909301905282519290910191909120915015801590611098575060018186868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611079573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110de576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112598339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b604080518082018252600e81526d2230b49029ba30b13632b1b7b4b760911b6020918201528151808301835260018152601960f91b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818401527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b8082018281101561052e57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220b09ccd0de51fe32f12f2db5988b9cb335236e14775512598dd00dd5ce0af2c6564736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610749565b6040805160ff9092168252519081900360200190f35b61020c61074e565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107ae565b6102da600480360360408110156102c457600080fd5b506001600160a01b038135169060200135610835565b005b61014f610957565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b0316610974565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a12565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a24565b61014f610a36565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a55565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610af2565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c84565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d55565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e7a565b61020c610e8c565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610eb0565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611134565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b03871680855290835281842086905581518681529151939490939092600080516020611259833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b038086166000818152600260209081526040808320888703905593881680835291849020805488019055835187815293519193600080516020611239833981519152929081900390910190a3506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6000467f0000000000000000000000000000000000000000000000000000000000aa37dc81146107865761078181611151565b6107a8565b7f88fc4211f92c80fcb66006230c04554a36665886fb5322006e7cbf221af789725b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107de9084611228565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112598339815191529281900390910190a35060019392505050565b3360009081526020819052604090205460011461088e576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108af57506001600160a01b0382163014155b6108f6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109219082611228565b6001556040805182815290516001600160a01b038416916000916000805160206112398339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aae576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b5b576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b84575033600090815260208190526040902054600114155b15610c33576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c315782811015610c08576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b0383166000818152600260209081526040808320868603905560018054879003905580518681529051929392600080516020611239833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cfa576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b03891680855290835292819020948790039485905580518581529051929392600080516020611259833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d7857506001600160a01b0383163014155b610dbf576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e1f576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b0388168084529281902080548801905580518781529051929392600080516020611239833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f0000000000000000000000000000000000000000000000000000000000aa37dc81565b83421115610efa576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f0000000000000000000000000000000000000000000000000000000000aa37dc8214610f3257610f2d82611151565b610f54565b7f88fc4211f92c80fcb66006230c04554a36665886fb5322006e7cbf221af789725b6001600160a01b03808b1660008181526004602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981840152808401859052948e166060860152608085018d905260a085015260c08085018c90528251808603909101815260e08501835280519082012061190160f01b6101008601526101028501959095526101228085019590955281518085039095018552610142909301905282519290910191909120915015801590611098575060018186868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611079573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110de576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112598339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b604080518082018252600e81526d2230b49029ba30b13632b1b7b4b760911b6020918201528151808301835260018152601960f91b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818401527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b8082018281101561052e57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220b09ccd0de51fe32f12f2db5988b9cb335236e14775512598dd00dd5ce0af2c6564736f6c63430007060033
Deployed Bytecode Sourcemap
879:6368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1269:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4399:194;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4399:194:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1455:26;;;:::i;:::-;;;;;;;;;;;;;;;;3724:671;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3724:671:0;;;;;;;;;;;;;;;;;:::i;2302:137::-;;;:::i;1413:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3059:224;;;:::i;4597:289::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4597:289:0;;;;;;;;:::i;5307:391::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5307:391:0;;;;;;;;:::i;:::-;;1370:38;;;:::i;964:89::-;;;;;;;;;;;;;;;;-1:-1:-1;964:89:0;-1:-1:-1;;;;;964:89:0;;:::i;1488:66::-;;;;;;;;;;;;;;;;-1:-1:-1;1488:66:0;-1:-1:-1;;;;;1488:66:0;;:::i;1630:63::-;;;;;;;;;;;;;;;;-1:-1:-1;1630:63:0;-1:-1:-1;;;;;1630:63:0;;:::i;1325:40::-;;;:::i;1057:89::-;;;;;;;;;;;;;;;;-1:-1:-1;1057:89:0;-1:-1:-1;;;;;1057:89:0;;:::i;5702:683::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5702:683:0;;;;;;;;:::i;4890:387::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4890:387:0;;;;;;;;:::i;3319:401::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3319:401:0;;;;;;;;:::i;918:41::-;;;;;;;;;;;;;;;;-1:-1:-1;918:41:0;-1:-1:-1;;;;;918:41:0;;:::i;2207:42::-;;;:::i;6426:818::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6426:818:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:66::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1559:66:0;;;;;;;;;;:::i;1269:51::-;;;;;;;;;;;;;;-1:-1:-1;;;1269:51:0;;;;:::o;4399:194::-;4489:10;4466:4;4479:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4479:30:0;;;;;;;;;;;:38;;;4531:36;;;;;;;4466:4;;4479:30;;4489:10;;-1:-1:-1;;;;;;;;;;;4531:36:0;;;;;;;-1:-1:-1;4583:4:0;4399:194;;;;;:::o;1455:26::-;;;;:::o;3724:671::-;3805:4;-1:-1:-1;;;;;3826:16:0;;;;;;:39;;-1:-1:-1;;;;;;3846:19:0;;3860:4;3846:19;;3826:39;3818:71;;;;;-1:-1:-1;;;3818:71:0;;;;;;;;;;;;-1:-1:-1;;;3818:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3914:15:0;;3896;3914;;;:9;:15;;;;;;3944:16;;;;3936:53;;;;;-1:-1:-1;;;3936:53:0;;;;;;;;;;;;-1:-1:-1;;;3936:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4002:18:0;;4010:10;4002:18;3998:262;;-1:-1:-1;;;;;4049:15:0;;4031;4049;;;:9;:15;;;;;;;;4065:10;4049:27;;;;;;;;-1:-1:-1;;4089:28:0;;4085:168;;4149:5;4138:7;:16;;4130:55;;;;;-1:-1:-1;;;4130:55:0;;;;;;;;;;;;-1:-1:-1;;;4130:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4198:15:0;;;;;;:9;:15;;;;;;;;4214:10;4198:27;;;;;;;4228:15;;;4198:45;;4085:168;3998:262;;-1:-1:-1;;;;;4268:15:0;;;;;;;:9;:15;;;;;;;;4286;;;4268:33;;4308:13;;;;;;;;;;:22;;;;;;4344:25;;;;;;;4308:13;;-1:-1:-1;;;;;;;;;;;4344:25:0;;;;;;;;;;-1:-1:-1;4385:4:0;;3724:671;-1:-1:-1;;;;3724:671:0:o;2302:137::-;2344:95;2302:137;:::o;1413:37::-;1448:2;1413:37;:::o;3059:224::-;3110:7;3169:9;3203:17;3192:28;;:85;;3243:34;3269:7;3243:25;:34::i;:::-;3192:85;;;3223:17;3192:85;3185:92;;;3059:224;:::o;4597:289::-;4726:10;4679:4;4716:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4716:30:0;;;;;;;;;;4679:4;;4711:48;;4748:10;4711:4;:48::i;:::-;4776:10;4766:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4766:30:0;;;;;;;;;;;;:41;;;4821:39;;;;;;;4692:67;;-1:-1:-1;4766:30:0;;-1:-1:-1;;;;;;;;;;;4821:39:0;;;;;;;;;-1:-1:-1;4876:4:0;;4597:289;-1:-1:-1;;;4597:289:0:o;5307:391::-;1185:10;1179:5;:17;;;;;;;;;;;1200:1;1179:22;1171:53;;;;;-1:-1:-1;;;1171:53:0;;;;;;;;;;;;-1:-1:-1;;;1171:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5377:16:0;::::1;::::0;;::::1;::::0;:39:::1;;-1:-1:-1::0;;;;;;5397:19:0;::::1;5411:4;5397:19;;5377:39;5369:71;;;::::0;;-1:-1:-1;;;5369:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5369:71:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5463:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;;:21;::::1;5447:37:::0;;-1:-1:-1;5628:11:0;5623:24:::1;::::0;5479:5;5623:4:::1;:24::i;:::-;5607:11;:40:::0;5661:31:::1;::::0;;;;;;;-1:-1:-1;;;;;5661:31:0;::::1;::::0;5678:1:::1;::::0;-1:-1:-1;;;;;;;;;;;5661:31:0;;;;::::1;::::0;;::::1;5307:391:::0;;:::o;1370:38::-;;;;;;;;;;;;;;-1:-1:-1;;;1370:38:0;;;;:::o;964:89::-;1185:10;1179:5;:17;;;;;;;;;;;1200:1;1179:22;1171:53;;;;;-1:-1:-1;;;1171:53:0;;;;;;;;;;;;-1:-1:-1;;;1171:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1012:10:0;::::1;:5;:10:::0;;;::::1;::::0;;;;;;;1025:1:::1;1012:14:::0;;1038:9;::::1;::::0;1012:5;1038:9:::1;964:89:::0;:::o;1488:66::-;;;;;;;;;;;;;:::o;1630:63::-;;;;;;;;;;;;;:::o;1325:40::-;;;;;;;;;;;;;;-1:-1:-1;;;1325:40:0;;;;:::o;1057:89::-;1185:10;1179:5;:17;;;;;;;;;;;1200:1;1179:22;1171:53;;;;;-1:-1:-1;;;1171:53:0;;;;;;;;;;;;-1:-1:-1;;;1171:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1105:10:0;::::1;1118:1;1105:10:::0;;;::::1;::::0;;;;;;;:14;;;1131:9;::::1;::::0;1118:1;1131:9:::1;1057:89:::0;:::o;5702:683::-;-1:-1:-1;;;;;5779:15:0;;5761;5779;;;:9;:15;;;;;;5809:16;;;;5801:53;;;;;-1:-1:-1;;;5801:53:0;;;;;;;;;;;;-1:-1:-1;;;5801:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5867:18:0;;5875:10;5867:18;;;;:44;;-1:-1:-1;5895:10:0;5889:5;:17;;;;;;;;;;;5910:1;5889:22;;5867:44;5863:288;;;-1:-1:-1;;;;;5940:15:0;;5922;5940;;;:9;:15;;;;;;;;5956:10;5940:27;;;;;;;;-1:-1:-1;;5980:28:0;;5976:168;;6040:5;6029:7;:16;;6021:55;;;;;-1:-1:-1;;;6021:55:0;;;;;;;;;;;;-1:-1:-1;;;6021:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6089:15:0;;;;;;:9;:15;;;;;;;;6105:10;6089:27;;;;;;;6119:15;;;6089:45;;5976:168;5863:288;;-1:-1:-1;;;;;6159:15:0;;;;;;:9;:15;;;;;;;;6177;;;6159:33;;6313:11;;;:19;;;6295:37;;6346:33;;;;;;;6159:15;;;-1:-1:-1;;;;;;;;;;;6346:33:0;;;;;;;;;;5702:683;;;:::o;4890:387::-;5018:10;4977:4;5008:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5008:30:0;;;;;;;;;;5053:26;;;;5045:65;;;;;-1:-1:-1;;;5045:65:0;;;;;;;;;;;;-1:-1:-1;;;5045:65:0;;;;;;;;;;;;;;;5169:10;5159:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5159:30:0;;;;;;;;;;;;5127:25;;;;5159:40;;;;5213:38;;;;;;;5159:30;;5169:10;-1:-1:-1;;;;;;;;;;;5213:38:0;;;;;;;;;;-1:-1:-1;5267:4:0;;4890:387;-1:-1:-1;;;4890:387:0:o;3319:401::-;3382:4;-1:-1:-1;;;;;3403:16:0;;;;;;:39;;-1:-1:-1;;;;;;3423:19:0;;3437:4;3423:19;;3403:39;3395:71;;;;;-1:-1:-1;;;3395:71:0;;;;;;;;;;;;-1:-1:-1;;;3395:71:0;;;;;;;;;;;;;;;3501:10;3473:15;3491:21;;;:9;:21;;;;;;3527:16;;;;3519:53;;;;;-1:-1:-1;;;3519:53:0;;;;;;;;;;;;-1:-1:-1;;;3519:53:0;;;;;;;;;;;;;;;3591:10;3581:21;;;;:9;:21;;;;;;;;3605:15;;;3581:39;;-1:-1:-1;;;;;3627:13:0;;;;;;;;;:22;;;;;;3663:31;;;;;;;3627:13;;3591:10;-1:-1:-1;;;;;;;;;;;3663:31:0;;;;;;;;;;-1:-1:-1;3710:4:0;;3319:401;-1:-1:-1;;;3319:401:0:o;918:41::-;;;;;;;;;;;;;;:::o;2207:42::-;;;:::o;6426:818::-;6581:8;6562:15;:27;;6554:58;;;;;-1:-1:-1;;;6554:58:0;;;;;;;;;;;;-1:-1:-1;;;6554:58:0;;;;;;;;;;;;;;;6664:9;6621:15;6779:17;6768:28;;:85;;6819:34;6845:7;6819:25;:34::i;:::-;6768:85;;;6799:17;6768:85;-1:-1:-1;;;;;6993:13:0;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;6876:168;;2344:95;6876:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6866:179;;;;;;-1:-1:-1;;;6716:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6706:349;;;;;;;;;;;-1:-1:-1;7072:19:0;;;;:58;;;7104:26;7114:6;7122:1;7125;7128;7104:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7095:35:0;:5;-1:-1:-1;;;;;7095:35:0;;7072:58;7064:89;;;;;-1:-1:-1;;;7064:89:0;;;;;;;;;;;;-1:-1:-1;;;7064:89:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7162:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;7207:31;;;;;;;-1:-1:-1;;;;;;;;;;;7207:31:0;;;;;;;;;6426:818;;;;;;;;;:::o;1559:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2691:364::-;2949:4;;;;;;;;;;;-1:-1:-1;;;2949:4:0;;;;;2982:7;;;;;;;;;;-1:-1:-1;;;2982:7:0;;;;2806:236;;2827:95;2806:236;;;;2933:22;2806:236;;;;2966:25;2806:236;;;;;;;;;;;3028:4;2806:236;;;;;;;;;;;;;;;;;;;;;;;;;2788:261;;;;;;2691:364::o;1951:108::-;2041:5;;;2036:16;;;;2028:25;;;;
Swarm Source
ipfs://b09ccd0de51fe32f12f2db5988b9cb335236e14775512598dd00dd5ce0af2c65
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.