Feature Tip: Add private address tag to any address under My Name Tag !
This nametag was submitted by Kleros Curate.
More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x65723048a64fe226885ed59603e85d4e379e16c90f066a7e2fd79277371ed27f | Migrate Tokens | (pending) | 1 hr ago | IN | 0 ETH | (Pending) | |||
Migrate Tokens | 21248922 | 1 hr ago | IN | 0 ETH | 0.00359997 | ||||
Migrate Tokens | 21247030 | 7 hrs ago | IN | 0 ETH | 0.00442174 | ||||
Migrate Tokens | 21245682 | 12 hrs ago | IN | 0 ETH | 0.00357534 | ||||
Migrate Tokens | 21243151 | 20 hrs ago | IN | 0 ETH | 0.00348664 | ||||
Migrate Tokens | 21240138 | 30 hrs ago | IN | 0 ETH | 0.00350041 | ||||
Migrate Tokens | 21240126 | 30 hrs ago | IN | 0 ETH | 0.00323369 | ||||
Migrate Tokens | 21239799 | 31 hrs ago | IN | 0 ETH | 0.00425689 | ||||
Migrate Tokens | 21233969 | 2 days ago | IN | 0 ETH | 0.00428641 | ||||
Migrate Tokens | 21233770 | 2 days ago | IN | 0 ETH | 0.00405927 | ||||
Migrate Tokens | 21231239 | 2 days ago | IN | 0 ETH | 0.00576154 | ||||
Migrate Tokens | 21226325 | 3 days ago | IN | 0 ETH | 0.00408027 | ||||
Migrate Tokens | 21223417 | 3 days ago | IN | 0 ETH | 0.00683643 | ||||
Migrate Tokens | 21212328 | 5 days ago | IN | 0 ETH | 0.00351083 | ||||
Migrate Tokens | 21212319 | 5 days ago | IN | 0 ETH | 0.00358801 | ||||
Migrate Tokens | 21211479 | 5 days ago | IN | 0 ETH | 0.00389607 | ||||
Migrate Tokens | 21209583 | 5 days ago | IN | 0 ETH | 0.00301178 | ||||
Migrate Tokens | 21208157 | 5 days ago | IN | 0 ETH | 0.00339491 | ||||
Migrate Tokens | 21206924 | 5 days ago | IN | 0 ETH | 0.00312834 | ||||
Migrate Tokens | 21203088 | 6 days ago | IN | 0 ETH | 0.00317034 | ||||
Migrate Tokens | 21201690 | 6 days ago | IN | 0 ETH | 0.0043554 | ||||
Migrate Tokens | 21197322 | 7 days ago | IN | 0 ETH | 0.00470851 | ||||
Migrate Tokens | 21197089 | 7 days ago | IN | 0 ETH | 0.00423008 | ||||
Migrate Tokens | 21194330 | 7 days ago | IN | 0 ETH | 0.0075209 | ||||
Migrate Tokens | 21188965 | 8 days ago | IN | 0 ETH | 0.00867708 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
EverMigrate
Compiler Version
v0.8.8+commit.dddeac2f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-17 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.8; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external pure returns (uint8); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IEverMigrate { function migrateTokens(address sourceToken, address toAddress, uint256 amount) external; function returnTokens(address sourceToken, address toAddress, uint256 amount) external; function tokenMigrateDetails(address sourceToken) external view returns (address targetToken, uint256 ratio); function allSupportedTokens() external view returns (address[] memory); function allSupportedTokensLength() external view returns (uint256); function supportsToken(address sourceToken) external view returns(bool); event TokenAdded(address fromToken, address toToken, uint256 ratio); event TokensMigrated(address fromToken, address toToken, uint256 amountIn, uint256 amountOut); event TokensReturned(address token, address toAddress, uint256 amount); } contract EverMigrate is IEverMigrate, Context, Ownable { using SafeMath for uint256; struct TokenDetails { address sourceToken; address targetToken; address devAddress; uint256 ratio; bool isPresent; } struct Transaction { uint256 amount; uint256 timestamp; uint32 txnId; } mapping (address => TokenDetails) private _tokenList; address[] private _allTokens; uint32 private _txnId = 0; mapping (address => mapping (address => Transaction[])) private _userTxns; constructor() { } function addTokenDetails( address sourceToken, address targetToken, address devAddress, uint256 ratio) external onlyOwner { _tokenList[sourceToken] = TokenDetails(sourceToken, targetToken, devAddress, ratio, true); _allTokens.push(sourceToken); emit TokenAdded(sourceToken, targetToken, ratio); } function migrateTokens(address sourceToken, address toAddress, uint256 amount) external { require(amount > 0, "Amount should be greater than Zero"); require(toAddress != address(0), "ERC20: transfer to the zero address is not allowed"); require(supportsToken(sourceToken), "Unsupported sourceToken"); TokenDetails memory tokenDetails = _tokenList[sourceToken]; uint256 amountOut = amount .mul(10**IERC20(tokenDetails.targetToken).decimals()) .div(10**IERC20(tokenDetails.sourceToken).decimals()) .div(tokenDetails.ratio); IERC20(tokenDetails.sourceToken).transferFrom(_msgSender(), tokenDetails.devAddress, amount); IERC20(tokenDetails.targetToken).transfer(toAddress, amountOut); Transaction[] storage userTxns = _userTxns[sourceToken][_msgSender()]; userTxns.push( Transaction({ amount: amount, timestamp: block.timestamp, txnId: _txnId }) ); _userTxns[sourceToken][_msgSender()] = userTxns; _txnId = _txnId + 1; emit TokensMigrated(tokenDetails.sourceToken, tokenDetails.targetToken, amount, amountOut); } function userTransactionsLength(address sourceToken, address userAddress) external view returns (uint256) { return _userTxns[sourceToken][userAddress].length; } function userTransaction(address sourceToken, address userAddress, uint256 position) external view returns (uint256, uint256, uint32) { Transaction storage txn = _userTxns[sourceToken][userAddress][position]; return (txn.amount, txn.timestamp, txn.txnId); } function returnTokens(address sourceToken, address toAddress, uint256 amount) external onlyOwner { require(amount > 0, "Amount should be greater than Zero"); require(toAddress != address(0), "ERC20: transfer to the zero address is not allowed"); require(supportsToken(sourceToken), "Unsupported sourceToken"); TokenDetails memory tokenDetails = _tokenList[sourceToken]; IERC20(tokenDetails.targetToken).transfer(toAddress, amount); emit TokensReturned(tokenDetails.targetToken, toAddress, amount); } function tokenMigrateDetails(address sourceToken) external view returns (address targetToken, uint256 ratio) { require(supportsToken(sourceToken), "Unsupported sourceToken"); TokenDetails storage details = _tokenList[sourceToken]; targetToken = details.targetToken; ratio = details.ratio; } function allSupportedTokens() external view returns (address[] memory supportedTokens) { return _allTokens; } function allSupportedTokensLength() external view returns (uint256) { return _allTokens.length; } function supportsToken(address sourceToken) public view returns(bool) { if (_tokenList[sourceToken].isPresent) return true; return false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fromToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"ratio","type":"uint256"}],"name":"TokenAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fromToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"TokensMigrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensReturned","type":"event"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"},{"internalType":"address","name":"targetToken","type":"address"},{"internalType":"address","name":"devAddress","type":"address"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"name":"addTokenDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allSupportedTokens","outputs":[{"internalType":"address[]","name":"supportedTokens","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allSupportedTokensLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"migrateTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"returnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"}],"name":"supportsToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"}],"name":"tokenMigrateDetails","outputs":[{"internalType":"address","name":"targetToken","type":"address"},{"internalType":"uint256","name":"ratio","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"},{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"position","type":"uint256"}],"name":"userTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sourceToken","type":"address"},{"internalType":"address","name":"userAddress","type":"address"}],"name":"userTransactionsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526003805463ffffffff1916905534801561001d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506111cd8061006e6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957537f911610071578063957537f91461013c578063c8f6716b1461014f578063d3ff5c9214610162578063f2fde38b14610196578063f3474b16146101a9578063f6b9213f146101b157600080fd5b8063061f7650146100ae57806333eb44e1146100d657806340cbdcfd146100eb57806357fc39911461010c5780638da5cb5b14610121575b600080fd5b6100c16100bc366004610d53565b6101e3565b60405190151581526020015b60405180910390f35b6100de610217565b6040516100cd9190610d6e565b6100fe6100f9366004610dbb565b610279565b6040519081526020016100cd565b61011f61011a366004610dee565b6102a6565b005b6000546040516001600160a01b0390911681526020016100cd565b61011f61014a366004610dee565b610475565b61011f61015d366004610e2a565b61089f565b610175610170366004610dee565b6109e2565b60408051938452602084019290925263ffffffff16908201526060016100cd565b61011f6101a4366004610d53565b610a54565b6002546100fe565b6101c46101bf366004610d53565b610b3e565b604080516001600160a01b0390931683526020830191909152016100cd565b6001600160a01b03811660009081526001602052604081206004015460ff161561020f57506001919050565b506000919050565b6060600280548060200260200160405190810160405280929190818152602001828054801561026f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610251575b5050505050905090565b6001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b6000546001600160a01b031633146102d95760405162461bcd60e51b81526004016102d090610e75565b60405180910390fd5b600081116102f95760405162461bcd60e51b81526004016102d090610eaa565b6001600160a01b03821661031f5760405162461bcd60e51b81526004016102d090610eec565b610328836101e3565b6103445760405162461bcd60e51b81526004016102d090610f3e565b6001600160a01b03838116600090815260016020818152604092839020835160a08101855281548616815292810154851691830182905260028101548516838501526003810154606084015260049081015460ff1615156080840152925163a9059cbb60e01b815293861692840192909252602483018490529163a9059cbb90604401602060405180830381600087803b1580156103e157600080fd5b505af11580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610f75565b50602080820151604080516001600160a01b039283168152918616928201929092529081018390527fddf2304db0516295adef88670eca3feecde18f7574436044b6b61f405818baba906060015b60405180910390a150505050565b600081116104955760405162461bcd60e51b81526004016102d090610eaa565b6001600160a01b0382166104bb5760405162461bcd60e51b81526004016102d090610eec565b6104c4836101e3565b6104e05760405162461bcd60e51b81526004016102d090610f3e565b6001600160a01b038084166000908152600160208181526040808420815160a081018352815487168082529482015487168185015260028201549096168683015260038101546060870181905260049182015460ff1615156080880152825163313ce56760e01b8152925161064a95919461064494929363313ce56793808201939190829003018186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105af9190610f97565b6105ba90600a6110b4565b61064486602001516001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190610f97565b61063d90600a6110b4565b8890610b93565b90610c19565b82519091506001600160a01b03166323b872dd3360408086015190516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101869052606401602060405180830381600087803b1580156106b257600080fd5b505af11580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea9190610f75565b50602082015160405163a9059cbb60e01b81526001600160a01b038681166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561073b57600080fd5b505af115801561074f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107739190610f75565b506001600160a01b0385166000908152600460209081526040808320338085528184528285208351606081018552898152428187019081526003805463ffffffff908116978401978852845460018082018755868c528a8c2095519190930290940193845591519083015594516002909101805463ffffffff19169190951617909355909352919052805461080b9082908190610c8d565b506003546108209063ffffffff1660016110c3565b6003805463ffffffff191663ffffffff929092169190911790558251602080850151604080516001600160a01b03948516815293909116918301919091528101859052606081018390527f309ba1567d5f694c4ac63616e606d09f26f291ecf278fb744b5b2de1069405779060800160405180910390a1505050505050565b6000546001600160a01b031633146108c95760405162461bcd60e51b81526004016102d090610e75565b6040805160a0810182526001600160a01b03868116808352868216602080850182815288851686880190815260608088018a8152600160808a0181815260008981528288528c81209b518c546001600160a01b0319908116918d16919091178d5596518c840180548916918d1691909117905594516002808d018054891692909c1691909117909a55915160038b015590516004909901805460ff191699151599909917909855865497880187559590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909501805490951683179094558451918252928101929092529181018390527f7156d0b8d9ed8d1117b97d76a15a304bad2749fc23251c2c7ed65a06989528509101610467565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548291829182919086908110610a2257610a226110eb565b6000918252602090912060039091020180546001820154600290920154909991985063ffffffff169650945050505050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016102d090610e75565b6001600160a01b038116610ae35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610b4a836101e3565b610b665760405162461bcd60e51b81526004016102d090610f3e565b50506001600160a01b03908116600090815260016020819052604090912090810154600390910154911691565b600082610ba2575060006102a0565b6000610bae8385611101565b905082610bbb8583611120565b14610c125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016102d0565b9392505050565b6000610c1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183610c775760405162461bcd60e51b81526004016102d09190611142565b506000610c848486611120565b95945050505050565b828054828255906000526020600020906003028101928215610cfd5760005260206000209160030282015b82811115610cfd578254825560018084015490830155600280840154908301805463ffffffff191663ffffffff90921691909117905560039283019290910190610cb8565b50610d09929150610d0d565b5090565b5b80821115610d09576000808255600182015560028101805463ffffffff19169055600301610d0e565b80356001600160a01b0381168114610d4e57600080fd5b919050565b600060208284031215610d6557600080fd5b610c1282610d37565b6020808252825182820181905260009190848201906040850190845b81811015610daf5783516001600160a01b031683529284019291840191600101610d8a565b50909695505050505050565b60008060408385031215610dce57600080fd5b610dd783610d37565b9150610de560208401610d37565b90509250929050565b600080600060608486031215610e0357600080fd5b610e0c84610d37565b9250610e1a60208501610d37565b9150604084013590509250925092565b60008060008060808587031215610e4057600080fd5b610e4985610d37565b9350610e5760208601610d37565b9250610e6560408601610d37565b9396929550929360600135925050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e205a65604082015261726f60f01b606082015260800190565b60208082526032908201527f45524332303a207472616e7366657220746f20746865207a65726f2061646472604082015271195cdcc81a5cc81b9bdd08185b1b1bddd95960721b606082015260800190565b60208082526017908201527f556e737570706f7274656420736f75726365546f6b656e000000000000000000604082015260600190565b600060208284031215610f8757600080fd5b81518015158114610c1257600080fd5b600060208284031215610fa957600080fd5b815160ff81168114610c1257600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561100b578160001904821115610ff157610ff1610fba565b80851615610ffe57918102915b93841c9390800290610fd5565b509250929050565b600082611022575060016102a0565b8161102f575060006102a0565b8160018114611045576002811461104f5761106b565b60019150506102a0565b60ff84111561106057611060610fba565b50506001821b6102a0565b5060208310610133831016604e8410600b841016171561108e575081810a6102a0565b6110988383610fd0565b80600019048211156110ac576110ac610fba565b029392505050565b6000610c1260ff841683611013565b600063ffffffff8083168185168083038211156110e2576110e2610fba565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b600081600019048311821515161561111b5761111b610fba565b500290565b60008261113d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101561116f57858101830151858201604001528201611153565b81811115611181576000604083870101525b50601f01601f191692909201604001939250505056fea264697066735822122095c2d176479eb7054941cf1e554569d611a84a8eda86a8ff23c76bbdb3c8242864736f6c63430008080033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957537f911610071578063957537f91461013c578063c8f6716b1461014f578063d3ff5c9214610162578063f2fde38b14610196578063f3474b16146101a9578063f6b9213f146101b157600080fd5b8063061f7650146100ae57806333eb44e1146100d657806340cbdcfd146100eb57806357fc39911461010c5780638da5cb5b14610121575b600080fd5b6100c16100bc366004610d53565b6101e3565b60405190151581526020015b60405180910390f35b6100de610217565b6040516100cd9190610d6e565b6100fe6100f9366004610dbb565b610279565b6040519081526020016100cd565b61011f61011a366004610dee565b6102a6565b005b6000546040516001600160a01b0390911681526020016100cd565b61011f61014a366004610dee565b610475565b61011f61015d366004610e2a565b61089f565b610175610170366004610dee565b6109e2565b60408051938452602084019290925263ffffffff16908201526060016100cd565b61011f6101a4366004610d53565b610a54565b6002546100fe565b6101c46101bf366004610d53565b610b3e565b604080516001600160a01b0390931683526020830191909152016100cd565b6001600160a01b03811660009081526001602052604081206004015460ff161561020f57506001919050565b506000919050565b6060600280548060200260200160405190810160405280929190818152602001828054801561026f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610251575b5050505050905090565b6001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b6000546001600160a01b031633146102d95760405162461bcd60e51b81526004016102d090610e75565b60405180910390fd5b600081116102f95760405162461bcd60e51b81526004016102d090610eaa565b6001600160a01b03821661031f5760405162461bcd60e51b81526004016102d090610eec565b610328836101e3565b6103445760405162461bcd60e51b81526004016102d090610f3e565b6001600160a01b03838116600090815260016020818152604092839020835160a08101855281548616815292810154851691830182905260028101548516838501526003810154606084015260049081015460ff1615156080840152925163a9059cbb60e01b815293861692840192909252602483018490529163a9059cbb90604401602060405180830381600087803b1580156103e157600080fd5b505af11580156103f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104199190610f75565b50602080820151604080516001600160a01b039283168152918616928201929092529081018390527fddf2304db0516295adef88670eca3feecde18f7574436044b6b61f405818baba906060015b60405180910390a150505050565b600081116104955760405162461bcd60e51b81526004016102d090610eaa565b6001600160a01b0382166104bb5760405162461bcd60e51b81526004016102d090610eec565b6104c4836101e3565b6104e05760405162461bcd60e51b81526004016102d090610f3e565b6001600160a01b038084166000908152600160208181526040808420815160a081018352815487168082529482015487168185015260028201549096168683015260038101546060870181905260049182015460ff1615156080880152825163313ce56760e01b8152925161064a95919461064494929363313ce56793808201939190829003018186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105af9190610f97565b6105ba90600a6110b4565b61064486602001516001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190610f97565b61063d90600a6110b4565b8890610b93565b90610c19565b82519091506001600160a01b03166323b872dd3360408086015190516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101869052606401602060405180830381600087803b1580156106b257600080fd5b505af11580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea9190610f75565b50602082015160405163a9059cbb60e01b81526001600160a01b038681166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561073b57600080fd5b505af115801561074f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107739190610f75565b506001600160a01b0385166000908152600460209081526040808320338085528184528285208351606081018552898152428187019081526003805463ffffffff908116978401978852845460018082018755868c528a8c2095519190930290940193845591519083015594516002909101805463ffffffff19169190951617909355909352919052805461080b9082908190610c8d565b506003546108209063ffffffff1660016110c3565b6003805463ffffffff191663ffffffff929092169190911790558251602080850151604080516001600160a01b03948516815293909116918301919091528101859052606081018390527f309ba1567d5f694c4ac63616e606d09f26f291ecf278fb744b5b2de1069405779060800160405180910390a1505050505050565b6000546001600160a01b031633146108c95760405162461bcd60e51b81526004016102d090610e75565b6040805160a0810182526001600160a01b03868116808352868216602080850182815288851686880190815260608088018a8152600160808a0181815260008981528288528c81209b518c546001600160a01b0319908116918d16919091178d5596518c840180548916918d1691909117905594516002808d018054891692909c1691909117909a55915160038b015590516004909901805460ff191699151599909917909855865497880187559590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909501805490951683179094558451918252928101929092529181018390527f7156d0b8d9ed8d1117b97d76a15a304bad2749fc23251c2c7ed65a06989528509101610467565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812080548291829182919086908110610a2257610a226110eb565b6000918252602090912060039091020180546001820154600290920154909991985063ffffffff169650945050505050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016102d090610e75565b6001600160a01b038116610ae35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610b4a836101e3565b610b665760405162461bcd60e51b81526004016102d090610f3e565b50506001600160a01b03908116600090815260016020819052604090912090810154600390910154911691565b600082610ba2575060006102a0565b6000610bae8385611101565b905082610bbb8583611120565b14610c125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016102d0565b9392505050565b6000610c1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183610c775760405162461bcd60e51b81526004016102d09190611142565b506000610c848486611120565b95945050505050565b828054828255906000526020600020906003028101928215610cfd5760005260206000209160030282015b82811115610cfd578254825560018084015490830155600280840154908301805463ffffffff191663ffffffff90921691909117905560039283019290910190610cb8565b50610d09929150610d0d565b5090565b5b80821115610d09576000808255600182015560028101805463ffffffff19169055600301610d0e565b80356001600160a01b0381168114610d4e57600080fd5b919050565b600060208284031215610d6557600080fd5b610c1282610d37565b6020808252825182820181905260009190848201906040850190845b81811015610daf5783516001600160a01b031683529284019291840191600101610d8a565b50909695505050505050565b60008060408385031215610dce57600080fd5b610dd783610d37565b9150610de560208401610d37565b90509250929050565b600080600060608486031215610e0357600080fd5b610e0c84610d37565b9250610e1a60208501610d37565b9150604084013590509250925092565b60008060008060808587031215610e4057600080fd5b610e4985610d37565b9350610e5760208601610d37565b9250610e6560408601610d37565b9396929550929360600135925050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e205a65604082015261726f60f01b606082015260800190565b60208082526032908201527f45524332303a207472616e7366657220746f20746865207a65726f2061646472604082015271195cdcc81a5cc81b9bdd08185b1b1bddd95960721b606082015260800190565b60208082526017908201527f556e737570706f7274656420736f75726365546f6b656e000000000000000000604082015260600190565b600060208284031215610f8757600080fd5b81518015158114610c1257600080fd5b600060208284031215610fa957600080fd5b815160ff81168114610c1257600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561100b578160001904821115610ff157610ff1610fba565b80851615610ffe57918102915b93841c9390800290610fd5565b509250929050565b600082611022575060016102a0565b8161102f575060006102a0565b8160018114611045576002811461104f5761106b565b60019150506102a0565b60ff84111561106057611060610fba565b50506001821b6102a0565b5060208310610133831016604e8410600b841016171561108e575081810a6102a0565b6110988383610fd0565b80600019048211156110ac576110ac610fba565b029392505050565b6000610c1260ff841683611013565b600063ffffffff8083168185168083038211156110e2576110e2610fba565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b600081600019048311821515161561111b5761111b610fba565b500290565b60008261113d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101561116f57858101830151858201604001528201611153565b81811115611181576000604083870101525b50601f01601f191692909201604001939250505056fea264697066735822122095c2d176479eb7054941cf1e554569d611a84a8eda86a8ff23c76bbdb3c8242864736f6c63430008080033
Deployed Bytecode Sourcemap
4362:4158:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8353:164;;;;;;:::i;:::-;;:::i;:::-;;;548:14:1;;541:22;523:41;;511:2;496:18;8353:164:0;;;;;;;;8103:123;;;:::i;:::-;;;;;;;:::i;6640:184::-;;;;;;:::i;:::-;;:::i;:::-;;;1649:25:1;;;1637:2;1622:18;6640:184:0;1503:177:1;7143:571:0;;;;;;:::i;:::-;;:::i;:::-;;3071:79;3109:7;3136:6;3071:79;;-1:-1:-1;;;;;3136:6:0;;;2164:51:1;;2152:2;2137:18;3071:79:0;2018:203:1;5366:1266:0;;;;;;:::i;:::-;;:::i;4992:366::-;;;;;;:::i;:::-;;:::i;6832:299::-;;;;;;:::i;:::-;;:::i;:::-;;;;2834:25:1;;;2890:2;2875:18;;2868:34;;;;2950:10;2938:23;2918:18;;;2911:51;2822:2;2807:18;6832:299:0;2634:334:1;3292:244:0;;;;;;:::i;:::-;;:::i;8234:111::-;8320:10;:17;8234:111;;7726:369;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;3165:32:1;;;3147:51;;3229:2;3214:18;;3207:34;;;;3120:18;7726:369:0;2973:274:1;8353:164:0;-1:-1:-1;;;;;8438:23:0;;8417:4;8438:23;;;:10;:23;;;;;:33;;;;;8434:50;;;-1:-1:-1;8480:4:0;;8353:164;-1:-1:-1;8353:164:0:o;8434:50::-;-1:-1:-1;8504:5:0;;8353:164;-1:-1:-1;8353:164:0:o;8103:123::-;8156:32;8208:10;8201:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8201:17:0;;;;;;;;;;;;;;;;;;;;;;;8103:123;:::o;6640:184::-;-1:-1:-1;;;;;6774:22:0;;;6747:7;6774:22;;;:9;:22;;;;;;;;:35;;;;;;;;;:42;6640:184;;;;;:::o;7143:571::-;3201:6;;-1:-1:-1;;;;;3201:6:0;191:10;3201:22;3193:67;;;;-1:-1:-1;;;3193:67:0;;;;;;;:::i;:::-;;;;;;;;;7277:1:::1;7268:6;:10;7260:57;;;;-1:-1:-1::0;;;7260:57:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7336:23:0;::::1;7328:86;;;;-1:-1:-1::0;;;7328:86:0::1;;;;;;;:::i;:::-;7433:26;7447:11;7433:13;:26::i;:::-;7425:62;;;;-1:-1:-1::0;;;7425:62:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7535:23:0;;::::1;7500:32;7535:23:::0;;;:10:::1;:23;::::0;;;;;;;;7500:58;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;::::1;;;;::::0;;;;7569:60;;-1:-1:-1;;;7569:60:0;;3165:32:1;;;7569:60:0;;::::1;3147:51:1::0;;;;3214:18;;;3207:34;;;7500:58:0;7569:41:::1;::::0;3120:18:1;;7569:60:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7662:24:0::1;::::0;;::::1;::::0;7647:59:::1;::::0;;-1:-1:-1;;;;;5327:15:1;;;5309:34;;5379:15;;;5359:18;;;5352:43;;;;5411:18;;;5404:34;;;7647:59:0::1;::::0;5259:2:1;5244:18;7647:59:0::1;;;;;;;;7249:465;7143:571:::0;;;:::o;5366:1266::-;5492:1;5483:6;:10;5475:57;;;;-1:-1:-1;;;5475:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5551:23:0;;5543:86;;;;-1:-1:-1;;;5543:86:0;;;;;;;:::i;:::-;5648:26;5662:11;5648:13;:26::i;:::-;5640:62;;;;-1:-1:-1;;;5640:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5750:23:0;;;5715:32;5750:23;;;:10;:23;;;;;;;;5715:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:43;;-1:-1:-1;;;5900:43:0;;;;5804:178;;5715:58;;5804:140;;5715:58;;5900:41;;:43;;;;;;;;;;;5715:58;5900:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5896:47;;:2;:47;:::i;:::-;5804:73;5840:12;:24;;;-1:-1:-1;;;;;5833:41:0;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5829:47;;:2;:47;:::i;:::-;5804:6;;:24;:73::i;:::-;:91;;:140::i;:178::-;6002:24;;5784:198;;-1:-1:-1;;;;;;5995:45:0;;191:10;6055:23;;;;;5995:92;;-1:-1:-1;;;;;;5995:92:0;;;;;;;-1:-1:-1;;;;;5327:15:1;;;5995:92:0;;;5309:34:1;5379:15;;5359:18;;;5352:43;5411:18;;;5404:34;;;5244:18;;5995:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6105:24:0;;;;6098:63;;-1:-1:-1;;;6098:63:0;;-1:-1:-1;;;;;3165:32:1;;;6098:63:0;;;3147:51:1;3214:18;;;3207:34;;;6098:41:0;;;;;;3120:18:1;;6098:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6207:22:0;;6174:30;6207:22;;;:9;:22;;;;;;;;191:10;6207:36;;;;;;;;;6282:138;;;;;;;;;;6357:15;6282:138;;;;;;6398:6;;;;;;;6282:138;;;;;;6254:177;;6398:6;6254:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6254:177:0;;;;;;;;;6442:36;;;;;;:47;;;;6207:36;;;;6442:47;:::i;:::-;-1:-1:-1;6511:6:0;;:10;;:6;;;:10;:::i;:::-;6502:6;:19;;-1:-1:-1;;6502:19:0;;;;;;;;;;;;6554:24;;6580;;;;;6539:85;;;-1:-1:-1;;;;;8150:15:1;;;8132:34;;8202:15;;;;8182:18;;;8175:43;;;;8234:18;;8227:34;;;8292:2;8277:18;;8270:34;;;6539:85:0;;8081:3:1;8066:19;6539:85:0;;;;;;;5464:1168;;;5366:1266;;;:::o;4992:366::-;3201:6;;-1:-1:-1;;;;;3201:6:0;191:10;3201:22;3193:67;;;;-1:-1:-1;;;3193:67:0;;;;;;;:::i;:::-;5187:63:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5187:63:0;;::::1;::::0;;;;;::::1;;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;;;;;;;;5245:4:::1;5187:63:::0;;;;;;-1:-1:-1;5161:23:0;;;;;;;;;:89;;;;-1:-1:-1;;;;;;5161:89:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;5161:89:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;5261:28;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;5307:43;;5309:34:1;;;5359:18;;;5352:43;;;;5411:18;;;5404:34;;;5307:43:0::1;::::0;5244:18:1;5307:43:0::1;5069:375:1::0;6832:299:0;-1:-1:-1;;;;;7012:22:0;;;6949:7;7012:22;;;:9;:22;;;;;;;;:35;;;;;;;;;;;:45;;6949:7;;;;;;7012:35;7048:8;;7012:45;;;;;;:::i;:::-;;;;;;;;;;;;;;7086:10;;7098:13;;;;7113:9;;;;;7086:10;;7098:13;;-1:-1:-1;7113:9:0;;;-1:-1:-1;6832:299:0;-1:-1:-1;;;;;6832:299:0:o;3292:244::-;3201:6;;-1:-1:-1;;;;;3201:6:0;191:10;3201:22;3193:67;;;;-1:-1:-1;;;3193:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3381:22:0;::::1;3373:73;;;::::0;-1:-1:-1;;;3373:73:0;;8649:2:1;3373:73:0::1;::::0;::::1;8631:21:1::0;8688:2;8668:18;;;8661:30;8727:34;8707:18;;;8700:62;-1:-1:-1;;;8778:18:1;;;8771:36;8824:19;;3373:73:0::1;8447:402:1::0;3373:73:0::1;3483:6;::::0;;3462:38:::1;::::0;-1:-1:-1;;;;;3462:38:0;;::::1;::::0;3483:6;::::1;::::0;3462:38:::1;::::0;::::1;3511:6;:17:::0;;-1:-1:-1;;;;;;3511:17:0::1;-1:-1:-1::0;;;;;3511:17:0;;;::::1;::::0;;;::::1;::::0;;3292:244::o;7726:369::-;7825:19;7846:13;7880:26;7894:11;7880:13;:26::i;:::-;7872:62;;;;-1:-1:-1;;;7872:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;7986:23:0;;;7955:28;7986:23;;;:10;:23;;;;;;;;8036:19;;;;8074:13;;;;;8036:19;;;7726:369::o;1754:250::-;1812:7;1836:6;1832:47;;-1:-1:-1;1866:1:0;1859:8;;1832:47;1891:9;1903:5;1907:1;1903;:5;:::i;:::-;1891:17;-1:-1:-1;1936:1:0;1927:5;1931:1;1891:17;1927:5;:::i;:::-;:10;1919:56;;;;-1:-1:-1;;;1919:56:0;;9451:2:1;1919:56:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529:34;9509:18;;;9502:62;-1:-1:-1;;;9580:18:1;;;9573:31;9621:19;;1919:56:0;9249:397:1;1919:56:0;1995:1;1754:250;-1:-1:-1;;;1754:250:0:o;2014:132::-;2072:7;2099:39;2103:1;2106;2099:39;;;;;;;;;;;;;;;;;2240:7;2275:12;2268:5;2260:28;;;;-1:-1:-1;;;2260:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2299:9:0;2311:5;2315:1;2311;:5;:::i;:::-;2299:17;2154:278;-1:-1:-1;;;;;2154:278:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;575:658::-;746:2;798:21;;;868:13;;771:18;;;890:22;;;717:4;;746:2;969:15;;;;943:2;928:18;;;717:4;1012:195;1026:6;1023:1;1020:13;1012:195;;;1091:13;;-1:-1:-1;;;;;1087:39:1;1075:52;;1182:15;;;;1147:12;;;;1123:1;1041:9;1012:195;;;-1:-1:-1;1224:3:1;;575:658;-1:-1:-1;;;;;;575:658:1:o;1238:260::-;1306:6;1314;1367:2;1355:9;1346:7;1342:23;1338:32;1335:52;;;1383:1;1380;1373:12;1335:52;1406:29;1425:9;1406:29;:::i;:::-;1396:39;;1454:38;1488:2;1477:9;1473:18;1454:38;:::i;:::-;1444:48;;1238:260;;;;;:::o;1685:328::-;1762:6;1770;1778;1831:2;1819:9;1810:7;1806:23;1802:32;1799:52;;;1847:1;1844;1837:12;1799:52;1870:29;1889:9;1870:29;:::i;:::-;1860:39;;1918:38;1952:2;1941:9;1937:18;1918:38;:::i;:::-;1908:48;;2003:2;1992:9;1988:18;1975:32;1965:42;;1685:328;;;;;:::o;2226:403::-;2312:6;2320;2328;2336;2389:3;2377:9;2368:7;2364:23;2360:33;2357:53;;;2406:1;2403;2396:12;2357:53;2429:29;2448:9;2429:29;:::i;:::-;2419:39;;2477:38;2511:2;2500:9;2496:18;2477:38;:::i;:::-;2467:48;;2534:38;2568:2;2557:9;2553:18;2534:38;:::i;:::-;2226:403;;;;-1:-1:-1;2524:48:1;;2619:2;2604:18;2591:32;;-1:-1:-1;;2226:403:1:o;3252:356::-;3454:2;3436:21;;;3473:18;;;3466:30;3532:34;3527:2;3512:18;;3505:62;3599:2;3584:18;;3252:356::o;3613:398::-;3815:2;3797:21;;;3854:2;3834:18;;;3827:30;3893:34;3888:2;3873:18;;3866:62;-1:-1:-1;;;3959:2:1;3944:18;;3937:32;4001:3;3986:19;;3613:398::o;4016:414::-;4218:2;4200:21;;;4257:2;4237:18;;;4230:30;4296:34;4291:2;4276:18;;4269:62;-1:-1:-1;;;4362:2:1;4347:18;;4340:48;4420:3;4405:19;;4016:414::o;4435:347::-;4637:2;4619:21;;;4676:2;4656:18;;;4649:30;4715:25;4710:2;4695:18;;4688:53;4773:2;4758:18;;4435:347::o;4787:277::-;4854:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:52;;;4923:1;4920;4913:12;4875:52;4955:9;4949:16;5008:5;5001:13;4994:21;4987:5;4984:32;4974:60;;5030:1;5027;5020:12;5449:273;5517:6;5570:2;5558:9;5549:7;5545:23;5541:32;5538:52;;;5586:1;5583;5576:12;5538:52;5618:9;5612:16;5668:4;5661:5;5657:16;5650:5;5647:27;5637:55;;5688:1;5685;5678:12;5727:127;5788:10;5783:3;5779:20;5776:1;5769:31;5819:4;5816:1;5809:15;5843:4;5840:1;5833:15;5859:422;5948:1;5991:5;5948:1;6005:270;6026:7;6016:8;6013:21;6005:270;;;6085:4;6081:1;6077:6;6073:17;6067:4;6064:27;6061:53;;;6094:18;;:::i;:::-;6144:7;6134:8;6130:22;6127:55;;;6164:16;;;;6127:55;6243:22;;;;6203:15;;;;6005:270;;;6009:3;5859:422;;;;;:::o;6286:806::-;6335:5;6365:8;6355:80;;-1:-1:-1;6406:1:1;6420:5;;6355:80;6454:4;6444:76;;-1:-1:-1;6491:1:1;6505:5;;6444:76;6536:4;6554:1;6549:59;;;;6622:1;6617:130;;;;6529:218;;6549:59;6579:1;6570:10;;6593:5;;;6617:130;6654:3;6644:8;6641:17;6638:43;;;6661:18;;:::i;:::-;-1:-1:-1;;6717:1:1;6703:16;;6732:5;;6529:218;;6831:2;6821:8;6818:16;6812:3;6806:4;6803:13;6799:36;6793:2;6783:8;6780:16;6775:2;6769:4;6766:12;6762:35;6759:77;6756:159;;;-1:-1:-1;6868:19:1;;;6900:5;;6756:159;6947:34;6972:8;6966:4;6947:34;:::i;:::-;7017:6;7013:1;7009:6;7005:19;6996:7;6993:32;6990:58;;;7028:18;;:::i;:::-;7066:20;;6286:806;-1:-1:-1;;;6286:806:1:o;7097:140::-;7155:5;7184:47;7225:4;7215:8;7211:19;7205:4;7184:47;:::i;7630:228::-;7669:3;7697:10;7734:2;7731:1;7727:10;7764:2;7761:1;7757:10;7795:3;7791:2;7787:12;7782:3;7779:21;7776:47;;;7803:18;;:::i;:::-;7839:13;;7630:228;-1:-1:-1;;;;7630:228:1:o;8315:127::-;8376:10;8371:3;8367:20;8364:1;8357:31;8407:4;8404:1;8397:15;8431:4;8428:1;8421:15;8854:168;8894:7;8960:1;8956;8952:6;8948:14;8945:1;8942:21;8937:1;8930:9;8923:17;8919:45;8916:71;;;8967:18;;:::i;:::-;-1:-1:-1;9007:9:1;;8854:168::o;9027:217::-;9067:1;9093;9083:132;;9137:10;9132:3;9128:20;9125:1;9118:31;9172:4;9169:1;9162:15;9200:4;9197:1;9190:15;9083:132;-1:-1:-1;9229:9:1;;9027:217::o;9651:597::-;9763:4;9792:2;9821;9810:9;9803:21;9853:6;9847:13;9896:6;9891:2;9880:9;9876:18;9869:34;9921:1;9931:140;9945:6;9942:1;9939:13;9931:140;;;10040:14;;;10036:23;;10030:30;10006:17;;;10025:2;10002:26;9995:66;9960:10;;9931:140;;;10089:6;10086:1;10083:13;10080:91;;;10159:1;10154:2;10145:6;10134:9;10130:22;10126:31;10119:42;10080:91;-1:-1:-1;10232:2:1;10211:15;-1:-1:-1;;10207:29:1;10192:45;;;;10239:2;10188:54;;9651:597;-1:-1:-1;;;9651:597:1:o
Swarm Source
ipfs://95c2d176479eb7054941cf1e554569d611a84a8eda86a8ff23c76bbdb3c82428
Loading...
Loading
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.