Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20355200 | 45 days ago | IN | 0 ETH | 0.0001518 | ||||
Approve | 20354640 | 45 days ago | IN | 0 ETH | 0.00012665 | ||||
Approve | 17675136 | 421 days ago | IN | 0 ETH | 0.00074379 | ||||
Approve | 17674921 | 421 days ago | IN | 0 ETH | 0.00055406 | ||||
Approve | 17591901 | 432 days ago | IN | 0 ETH | 0.00139966 | ||||
Approve | 17591721 | 432 days ago | IN | 0 ETH | 0.00083216 | ||||
Approve | 17482214 | 448 days ago | IN | 0 ETH | 0.00088182 | ||||
Approve | 16672559 | 562 days ago | IN | 0 ETH | 0.00147845 | ||||
Approve | 15949954 | 663 days ago | IN | 0 ETH | 0.00087249 | ||||
Approve | 15949887 | 663 days ago | IN | 0 ETH | 0.0007355 | ||||
Approve | 15569838 | 716 days ago | IN | 0 ETH | 0.00059783 | ||||
Approve | 14339991 | 912 days ago | IN | 0 ETH | 0.00122057 | ||||
Approve | 13594026 | 1029 days ago | IN | 0 ETH | 0.00601273 | ||||
Approve | 13553131 | 1035 days ago | IN | 0 ETH | 0.00529096 | ||||
Approve | 13506488 | 1042 days ago | IN | 0 ETH | 0.00613809 | ||||
Approve | 13441072 | 1053 days ago | IN | 0 ETH | 0.00247604 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13440160 | 1053 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DToken
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-18 */ // SPDX-License-Identifier: MIT pragma solidity 0.6.12; // Part: OpenZeppelin/[email protected]/IERC20 /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: DToken.sol contract DToken { /// @dev EIP-20 token name for this token string public name; /// @dev EIP-20 token symbol for this token string public symbol; /// @dev EIP-20 token decimals for this token uint8 public decimals; /// @dev Total number of tokens in circulation uint256 public totalSupply; /// @dev Allowance amounts on behalf of others mapping (address => mapping (address => uint256)) internal allowances; /// @dev Official record of token balances for each account mapping (address => uint256) internal balances; address public governance; address public pendingGovernance; address public convController; address public vault; /// @dev A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint256 votes; } /// @dev A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @dev The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @dev An event thats emitted when a delegate account's vote balance changes event AccountVotesChanged(address indexed account, uint256 previousBalance, uint256 newBalance); /// @dev The standard EIP-20 transfer event event Transfer(address indexed from, address indexed to, uint256 amount); /// @dev The standard EIP-20 approval event event Approval(address indexed owner, address indexed spender, uint256 amount); event Mint(address indexed account, uint256 amount); event Burn(address indexed account, uint256 amount); function initialize(address _governance, uint8 _decimals, bytes calldata _name, bytes calldata _symbol) external { require(governance == address(0), 'initialize: can only initialize once'); require(_governance != address(0), 'initialize: invalid governance address'); governance = _governance; convController = msg.sender; name = string(_name); symbol = string(_symbol); decimals = _decimals; } function allowance(address account, address spender) external view returns (uint256) { return allowances[account][spender]; } function approve(address spender, uint256 amount) external returns (bool) { allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function balanceOf(address account) external view returns (uint256) { return balances[account]; } function transfer(address dst, uint256 amount) external returns (bool) { _transferTokens(msg.sender, dst, amount); return true; } function transferFrom(address src, address dst, uint256 amount) external returns (bool) { address spender = msg.sender; uint256 spenderAllowance = allowances[src][spender]; if (spender != src && spenderAllowance != uint256(-1)) { uint256 newAllowance = sub256(spenderAllowance, amount, "transferFrom: transfer amount exceeds spender allowance"); allowances[src][spender] = newAllowance; emit Approval(src, spender, newAllowance); } _transferTokens(src, dst, amount); return true; } /** * @dev Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint256) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @dev Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint256 blockNumber) public view returns (uint256) { require(blockNumber < block.number, "getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _transferTokens(address src, address dst, uint256 amount) internal { require(src != address(0), "_transferTokens: cannot transfer from the zero address"); require(dst != address(0), "_transferTokens: cannot transfer to the zero address"); balances[src] = sub256(balances[src], amount, "_transferTokens: transfer amount exceeds balance"); balances[dst] = add256(balances[dst], amount, "_transferTokens: transfer amount overflows"); emit Transfer(src, dst, amount); _moveVotes(src); _moveVotes(dst); } function _moveVotes(address account) internal { uint32 repNum = numCheckpoints[account]; uint256 oldBalance = repNum > 0 ? checkpoints[account][repNum - 1].votes : 0; _writeCheckpoint(account, repNum, oldBalance, balances[account]); } function _writeCheckpoint(address account, uint32 nCheckpoints, uint256 oldVotes, uint256 newVotes) internal { uint32 blockNumber = safe32(block.number, "_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[account][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[account][nCheckpoints - 1].votes = newVotes; } else { checkpoints[account][nCheckpoints] = Checkpoint(blockNumber, newVotes); numCheckpoints[account] = nCheckpoints + 1; } emit AccountVotesChanged(account, oldVotes, newVotes); } function acceptGovernance() external { require(msg.sender == pendingGovernance, "!pendingGovernance"); governance = msg.sender; pendingGovernance = address(0); } function setPendingGovernance(address _pendingGovernance) external { require(msg.sender == governance, "!governance"); pendingGovernance = _pendingGovernance; } function setConvController(address _convController) external { require(msg.sender == governance, "!governance"); convController = _convController; } function setVault(address _vault) external { require(msg.sender == governance, "!governance"); vault = _vault; } function mint(address account, uint256 amount) external { require(msg.sender == convController || msg.sender == vault, "NOT OPERATOR"); _mint(account,amount); emit Mint(account, amount); } function burn(address account, uint256 amount) external { require(msg.sender == convController || msg.sender == vault, "NOT OPERATOR"); _burn(account,amount); emit Burn(account, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); totalSupply = add256(totalSupply, amount, "ERC20: mint amount overflows"); balances[account] = add256(balances[account], amount, "ERC20: mint amount overflows"); emit Transfer(address(0), account, amount); _moveVotes(account); } function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); balances[account] = sub256(balances[account], amount, "ERC20: burn amount exceeds balance"); totalSupply = sub256(totalSupply, amount, "ERC20: burn amount exceeds balance"); emit Transfer(account, address(0), amount); _moveVotes(account); } function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function add256(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } function sub256(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function sweep(address _token) external { require(msg.sender == governance, "!governance"); uint256 _balance = IERC20(_token).balanceOf(address(this)); IERC20(_token).transfer(governance, _balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"AccountVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"convController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"bytes","name":"_name","type":"bytes"},{"internalType":"bytes","name":"_symbol","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","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":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_convController","type":"address"}],"name":"setConvController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pendingGovernance","type":"address"}],"name":"setPendingGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"sweep","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":"dst","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50611b1c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635ba28624116100de5780639dc29fac11610097578063dd62ed3e11610071578063dd62ed3e1461058e578063f1127ed8146105bc578063f39c38a01461060e578063fbfa77cf1461061657610173565b80639dc29fac14610510578063a9059cbb1461053c578063b4b5ea571461056857610173565b80635ba286241461042b5780636817031b146104515780636fcfff451461047757806370a08231146104b6578063782d6fe1146104dc57806395d89b411461050857610173565b806320ba92f81161013057806320ba92f814610377578063238efcbc1461039b57806323b872dd146103a3578063313ce567146103d957806340c10f19146103f75780635aa6e6751461042357610173565b806301681a6214610178578063020181d7146101a057806306fdde031461027a578063095ea7b3146102f75780630abb60351461033757806318160ddd1461035d575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b031661061e565b005b61019e600480360360808110156101b657600080fd5b6001600160a01b038235169160ff602082013516918101906060810160408201356401000000008111156101e957600080fd5b8201836020820111156101fb57600080fd5b8035906020019184600183028401116401000000008311171561021d57600080fd5b91939092909160208101903564010000000081111561023b57600080fd5b82018360208201111561024d57600080fd5b8035906020019184600183028401116401000000008311171561026f57600080fd5b50909250905061076f565b61028261085b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bc5781810151838201526020016102a4565b50505050905090810190601f1680156102e95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103236004803603604081101561030d57600080fd5b506001600160a01b0381351690602001356108e9565b604080519115158252519081900360200190f35b61019e6004803603602081101561034d57600080fd5b50356001600160a01b0316610950565b6103656109bf565b60408051918252519081900360200190f35b61037f6109c5565b604080516001600160a01b039092168252519081900360200190f35b61019e6109d4565b610323600480360360608110156103b957600080fd5b506001600160a01b03813581169160208101359091169060400135610a48565b6103e1610b28565b6040805160ff9092168252519081900360200190f35b61019e6004803603604081101561040d57600080fd5b506001600160a01b038135169060200135610b31565b61037f610be1565b61019e6004803603602081101561044157600080fd5b50356001600160a01b0316610bf0565b61019e6004803603602081101561046757600080fd5b50356001600160a01b0316610c5f565b61049d6004803603602081101561048d57600080fd5b50356001600160a01b0316610cce565b6040805163ffffffff9092168252519081900360200190f35b610365600480360360208110156104cc57600080fd5b50356001600160a01b0316610ce6565b610365600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610d01565b610282610f09565b61019e6004803603604081101561052657600080fd5b506001600160a01b038135169060200135610f63565b6103236004803603604081101561055257600080fd5b506001600160a01b038135169060200135611013565b6103656004803603602081101561057e57600080fd5b50356001600160a01b0316611029565b610365600480360360408110156105a457600080fd5b506001600160a01b038135811691602001351661108d565b6105ee600480360360408110156105d257600080fd5b5080356001600160a01b0316906020013563ffffffff166110b8565b6040805163ffffffff909316835260208301919091528051918290030190f35b61037f6110e5565b61037f6110f4565b6006546001600160a01b0316331461066b576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50516006546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561073f57600080fd5b505af1158015610753573d6000803e3d6000fd5b505050506040513d602081101561076957600080fd5b50505050565b6006546001600160a01b0316156107b75760405162461bcd60e51b8152600401808060200182810382526024815260200180611ac36024913960400191505060405180910390fd5b6001600160a01b0386166107fc5760405162461bcd60e51b81526004018080602001828103825260268152602001806119b46026913960400191505060405180910390fd5b600680546001600160a01b0388166001600160a01b031991821617909155600880549091163317905561083160008585611865565b5061083e60018383611865565b50506002805460ff191660ff959095169490941790935550505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108e15780601f106108b6576101008083540402835291602001916108e1565b820191906000526020600020905b8154815290600101906020018083116108c457829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6006546001600160a01b0316331461099d576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b6008546001600160a01b031681565b6007546001600160a01b03163314610a28576040805162461bcd60e51b81526020600482015260126024820152712170656e64696e67476f7665726e616e636560701b604482015290519081900360640190fd5b600680546001600160a01b03199081163317909155600780549091169055565b6001600160a01b038316600081815260046020908152604080832033808552925282205491929091908214801590610a8257506000198114155b15610b11576000610aac828660405180606001604052806037815260200161197d60379139611103565b6001600160a01b0380891660008181526004602090815260408083209489168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a3505b610b1c86868661119a565b50600195945050505050565b60025460ff1681565b6008546001600160a01b0316331480610b5457506009546001600160a01b031633145b610b94576040805162461bcd60e51b815260206004820152600c60248201526b2727aa1027a822a920aa27a960a11b604482015290519081900360640190fd5b610b9e8282611327565b6040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b6006546001600160a01b031681565b6006546001600160a01b03163314610c3d576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610cac576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600b6020526000908152604090205463ffffffff1681565b6001600160a01b031660009081526005602052604090205490565b6000438210610d415760405162461bcd60e51b81526004018080602001828103825260218152602001806119106021913960400191505060405180910390fd5b6001600160a01b0383166000908152600b602052604090205463ffffffff1680610d6f57600091505061094a565b6001600160a01b0384166000908152600a6020908152604080832063ffffffff600019860181168552925290912054168310610dde576001600160a01b0384166000908152600a602090815260408083206000199490940163ffffffff1683529290522060010154905061094a565b6001600160a01b0384166000908152600a6020908152604080832083805290915290205463ffffffff16831015610e1957600091505061094a565b600060001982015b8163ffffffff168163ffffffff161115610ed257600282820363ffffffff16048103610e4b6118e3565b506001600160a01b0387166000908152600a6020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415610ead5760200151945061094a9350505050565b805163ffffffff16871115610ec457819350610ecb565b6001820392505b5050610e21565b506001600160a01b0385166000908152600a6020908152604080832063ffffffff9094168352929052206001015491505092915050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108e15780601f106108b6576101008083540402835291602001916108e1565b6008546001600160a01b0316331480610f8657506009546001600160a01b031633145b610fc6576040805162461bcd60e51b815260206004820152600c60248201526b2727aa1027a822a920aa27a960a11b604482015290519081900360640190fd5b610fd08282611490565b6040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600061102033848461119a565b50600192915050565b6001600160a01b0381166000908152600b602052604081205463ffffffff1680611054576000611086565b6001600160a01b0383166000908152600a6020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600a6020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6007546001600160a01b031681565b6009546001600160a01b031681565b600081848411156111925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561115757818101518382015260200161113f565b50505050905090810190601f1680156111845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166111df5760405162461bcd60e51b81526004018080602001828103825260368152602001806119da6036913960400191505060405180910390fd5b6001600160a01b0382166112245760405162461bcd60e51b8152600401808060200182810382526034815260200180611a406034913960400191505060405180910390fd5b61126c60056000856001600160a01b03166001600160a01b031681526020019081526020016000205482604051806060016040528060308152602001611a1060309139611103565b6001600160a01b03808516600090815260056020908152604080832094909455918516815282902054825160608101909352602a8084526112b993919285929190611931908301396115b8565b6001600160a01b0380841660008181526005602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a361131983611616565b61132282611616565b505050565b6001600160a01b038216611382576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6113c4600354826040518060400160405280601c81526020017f45524332303a206d696e7420616d6f756e74206f766572666c6f7773000000008152506115b8565b60038190555061142f60056000846001600160a01b03166001600160a01b0316815260200190815260200160002054826040518060400160405280601c81526020017f45524332303a206d696e7420616d6f756e74206f766572666c6f7773000000008152506115b8565b6001600160a01b03831660008181526005602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361148c82611616565b5050565b6001600160a01b0382166114d55760405162461bcd60e51b8152600401808060200182810382526021815260200180611aa26021913960400191505060405180910390fd5b61151d60056000846001600160a01b03166001600160a01b03168152602001908152602001600020548260405180606001604052806022815260200161195b60229139611103565b60056000846001600160a01b03166001600160a01b031681526020019081526020016000208190555061156b6003548260405180606001604052806022815260200161195b60229139611103565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a361148c82611616565b6000838301828582101561160d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561115757818101518382015260200161113f565b50949350505050565b6001600160a01b0381166000908152600b602052604081205463ffffffff169081611642576000611674565b6001600160a01b0383166000908152600a6020908152604080832063ffffffff60001987011684529091529020600101545b905061132283838360056000886001600160a01b03166001600160a01b031681526020019081526020016000205460006116c6436040518060600160405280602e8152602001611a74602e9139611807565b905060008463ffffffff1611801561170f57506001600160a01b0385166000908152600a6020908152604080832063ffffffff6000198901811685529252909120548282169116145b1561174c576001600160a01b0385166000908152600a6020908152604080832063ffffffff600019890116845290915290206001018290556117bd565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600a84528681208b8616825284528681209551865490861663ffffffff199182161787559251600196870155908152600b9092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927f85f7ecb80f73cfa8b5a325558efa64c1a3e0a8cedb0b8700095584d527c40b1e928290030190a25050505050565b600081640100000000841061185d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561115757818101518382015260200161113f565b509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118a65782800160ff198235161785556118d3565b828001600101855582156118d3579182015b828111156118d35782358255916020019190600101906118b8565b506118df9291506118fa565b5090565b604080518082019091526000808252602082015290565b5b808211156118df57600081556001016118fb56fe6765745072696f72566f7465733a206e6f74207965742064657465726d696e65645f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f777345524332303a206275726e20616d6f756e7420657863656564732062616c616e63657472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365696e697469616c697a653a20696e76616c696420676f7665726e616e636520616464726573735f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f20616464726573735f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573735f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a206275726e2066726f6d20746865207a65726f2061646472657373696e697469616c697a653a2063616e206f6e6c7920696e697469616c697a65206f6e6365a2646970667358221220af4bb88b33ed1286020c981820590019339c605ff4d99f98e29e05d5d3b8ed7e64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80635ba28624116100de5780639dc29fac11610097578063dd62ed3e11610071578063dd62ed3e1461058e578063f1127ed8146105bc578063f39c38a01461060e578063fbfa77cf1461061657610173565b80639dc29fac14610510578063a9059cbb1461053c578063b4b5ea571461056857610173565b80635ba286241461042b5780636817031b146104515780636fcfff451461047757806370a08231146104b6578063782d6fe1146104dc57806395d89b411461050857610173565b806320ba92f81161013057806320ba92f814610377578063238efcbc1461039b57806323b872dd146103a3578063313ce567146103d957806340c10f19146103f75780635aa6e6751461042357610173565b806301681a6214610178578063020181d7146101a057806306fdde031461027a578063095ea7b3146102f75780630abb60351461033757806318160ddd1461035d575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b031661061e565b005b61019e600480360360808110156101b657600080fd5b6001600160a01b038235169160ff602082013516918101906060810160408201356401000000008111156101e957600080fd5b8201836020820111156101fb57600080fd5b8035906020019184600183028401116401000000008311171561021d57600080fd5b91939092909160208101903564010000000081111561023b57600080fd5b82018360208201111561024d57600080fd5b8035906020019184600183028401116401000000008311171561026f57600080fd5b50909250905061076f565b61028261085b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bc5781810151838201526020016102a4565b50505050905090810190601f1680156102e95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103236004803603604081101561030d57600080fd5b506001600160a01b0381351690602001356108e9565b604080519115158252519081900360200190f35b61019e6004803603602081101561034d57600080fd5b50356001600160a01b0316610950565b6103656109bf565b60408051918252519081900360200190f35b61037f6109c5565b604080516001600160a01b039092168252519081900360200190f35b61019e6109d4565b610323600480360360608110156103b957600080fd5b506001600160a01b03813581169160208101359091169060400135610a48565b6103e1610b28565b6040805160ff9092168252519081900360200190f35b61019e6004803603604081101561040d57600080fd5b506001600160a01b038135169060200135610b31565b61037f610be1565b61019e6004803603602081101561044157600080fd5b50356001600160a01b0316610bf0565b61019e6004803603602081101561046757600080fd5b50356001600160a01b0316610c5f565b61049d6004803603602081101561048d57600080fd5b50356001600160a01b0316610cce565b6040805163ffffffff9092168252519081900360200190f35b610365600480360360208110156104cc57600080fd5b50356001600160a01b0316610ce6565b610365600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610d01565b610282610f09565b61019e6004803603604081101561052657600080fd5b506001600160a01b038135169060200135610f63565b6103236004803603604081101561055257600080fd5b506001600160a01b038135169060200135611013565b6103656004803603602081101561057e57600080fd5b50356001600160a01b0316611029565b610365600480360360408110156105a457600080fd5b506001600160a01b038135811691602001351661108d565b6105ee600480360360408110156105d257600080fd5b5080356001600160a01b0316906020013563ffffffff166110b8565b6040805163ffffffff909316835260208301919091528051918290030190f35b61037f6110e5565b61037f6110f4565b6006546001600160a01b0316331461066b576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50516006546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810184905290519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561073f57600080fd5b505af1158015610753573d6000803e3d6000fd5b505050506040513d602081101561076957600080fd5b50505050565b6006546001600160a01b0316156107b75760405162461bcd60e51b8152600401808060200182810382526024815260200180611ac36024913960400191505060405180910390fd5b6001600160a01b0386166107fc5760405162461bcd60e51b81526004018080602001828103825260268152602001806119b46026913960400191505060405180910390fd5b600680546001600160a01b0388166001600160a01b031991821617909155600880549091163317905561083160008585611865565b5061083e60018383611865565b50506002805460ff191660ff959095169490941790935550505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108e15780601f106108b6576101008083540402835291602001916108e1565b820191906000526020600020905b8154815290600101906020018083116108c457829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6006546001600160a01b0316331461099d576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b6008546001600160a01b031681565b6007546001600160a01b03163314610a28576040805162461bcd60e51b81526020600482015260126024820152712170656e64696e67476f7665726e616e636560701b604482015290519081900360640190fd5b600680546001600160a01b03199081163317909155600780549091169055565b6001600160a01b038316600081815260046020908152604080832033808552925282205491929091908214801590610a8257506000198114155b15610b11576000610aac828660405180606001604052806037815260200161197d60379139611103565b6001600160a01b0380891660008181526004602090815260408083209489168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a3505b610b1c86868661119a565b50600195945050505050565b60025460ff1681565b6008546001600160a01b0316331480610b5457506009546001600160a01b031633145b610b94576040805162461bcd60e51b815260206004820152600c60248201526b2727aa1027a822a920aa27a960a11b604482015290519081900360640190fd5b610b9e8282611327565b6040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b6006546001600160a01b031681565b6006546001600160a01b03163314610c3d576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610cac576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600b6020526000908152604090205463ffffffff1681565b6001600160a01b031660009081526005602052604090205490565b6000438210610d415760405162461bcd60e51b81526004018080602001828103825260218152602001806119106021913960400191505060405180910390fd5b6001600160a01b0383166000908152600b602052604090205463ffffffff1680610d6f57600091505061094a565b6001600160a01b0384166000908152600a6020908152604080832063ffffffff600019860181168552925290912054168310610dde576001600160a01b0384166000908152600a602090815260408083206000199490940163ffffffff1683529290522060010154905061094a565b6001600160a01b0384166000908152600a6020908152604080832083805290915290205463ffffffff16831015610e1957600091505061094a565b600060001982015b8163ffffffff168163ffffffff161115610ed257600282820363ffffffff16048103610e4b6118e3565b506001600160a01b0387166000908152600a6020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415610ead5760200151945061094a9350505050565b805163ffffffff16871115610ec457819350610ecb565b6001820392505b5050610e21565b506001600160a01b0385166000908152600a6020908152604080832063ffffffff9094168352929052206001015491505092915050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108e15780601f106108b6576101008083540402835291602001916108e1565b6008546001600160a01b0316331480610f8657506009546001600160a01b031633145b610fc6576040805162461bcd60e51b815260206004820152600c60248201526b2727aa1027a822a920aa27a960a11b604482015290519081900360640190fd5b610fd08282611490565b6040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600061102033848461119a565b50600192915050565b6001600160a01b0381166000908152600b602052604081205463ffffffff1680611054576000611086565b6001600160a01b0383166000908152600a6020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600a6020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6007546001600160a01b031681565b6009546001600160a01b031681565b600081848411156111925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561115757818101518382015260200161113f565b50505050905090810190601f1680156111845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166111df5760405162461bcd60e51b81526004018080602001828103825260368152602001806119da6036913960400191505060405180910390fd5b6001600160a01b0382166112245760405162461bcd60e51b8152600401808060200182810382526034815260200180611a406034913960400191505060405180910390fd5b61126c60056000856001600160a01b03166001600160a01b031681526020019081526020016000205482604051806060016040528060308152602001611a1060309139611103565b6001600160a01b03808516600090815260056020908152604080832094909455918516815282902054825160608101909352602a8084526112b993919285929190611931908301396115b8565b6001600160a01b0380841660008181526005602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a361131983611616565b61132282611616565b505050565b6001600160a01b038216611382576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6113c4600354826040518060400160405280601c81526020017f45524332303a206d696e7420616d6f756e74206f766572666c6f7773000000008152506115b8565b60038190555061142f60056000846001600160a01b03166001600160a01b0316815260200190815260200160002054826040518060400160405280601c81526020017f45524332303a206d696e7420616d6f756e74206f766572666c6f7773000000008152506115b8565b6001600160a01b03831660008181526005602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361148c82611616565b5050565b6001600160a01b0382166114d55760405162461bcd60e51b8152600401808060200182810382526021815260200180611aa26021913960400191505060405180910390fd5b61151d60056000846001600160a01b03166001600160a01b03168152602001908152602001600020548260405180606001604052806022815260200161195b60229139611103565b60056000846001600160a01b03166001600160a01b031681526020019081526020016000208190555061156b6003548260405180606001604052806022815260200161195b60229139611103565b6003556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a361148c82611616565b6000838301828582101561160d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561115757818101518382015260200161113f565b50949350505050565b6001600160a01b0381166000908152600b602052604081205463ffffffff169081611642576000611674565b6001600160a01b0383166000908152600a6020908152604080832063ffffffff60001987011684529091529020600101545b905061132283838360056000886001600160a01b03166001600160a01b031681526020019081526020016000205460006116c6436040518060600160405280602e8152602001611a74602e9139611807565b905060008463ffffffff1611801561170f57506001600160a01b0385166000908152600a6020908152604080832063ffffffff6000198901811685529252909120548282169116145b1561174c576001600160a01b0385166000908152600a6020908152604080832063ffffffff600019890116845290915290206001018290556117bd565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600a84528681208b8616825284528681209551865490861663ffffffff199182161787559251600196870155908152600b9092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927f85f7ecb80f73cfa8b5a325558efa64c1a3e0a8cedb0b8700095584d527c40b1e928290030190a25050505050565b600081640100000000841061185d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561115757818101518382015260200161113f565b509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118a65782800160ff198235161785556118d3565b828001600101855582156118d3579182015b828111156118d35782358255916020019190600101906118b8565b506118df9291506118fa565b5090565b604080518082019091526000808252602082015290565b5b808211156118df57600081556001016118fb56fe6765745072696f72566f7465733a206e6f74207965742064657465726d696e65645f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f777345524332303a206275726e20616d6f756e7420657863656564732062616c616e63657472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365696e697469616c697a653a20696e76616c696420676f7665726e616e636520616464726573735f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f20616464726573735f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573735f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a206275726e2066726f6d20746865207a65726f2061646472657373696e697469616c697a653a2063616e206f6e6c7920696e697469616c697a65206f6e6365a2646970667358221220af4bb88b33ed1286020c981820590019339c605ff4d99f98e29e05d5d3b8ed7e64736f6c634300060c0033
Deployed Bytecode Sourcemap
2863:9799:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12425:234;;;;;;;;;;;;;;;;-1:-1:-1;12425:234:0;-1:-1:-1;;;;;12425:234:0;;:::i;:::-;;4588:463;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4588:463:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4588:463:0;;-1:-1:-1;4588:463:0;-1:-1:-1;4588:463:0;:::i;2933:18::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5206:210;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5206:210:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;10060:183;;;;;;;;;;;;;;;;-1:-1:-1;10060:183:0;-1:-1:-1;;;;;10060:183:0;;:::i;3171:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;3527:29;;;:::i;:::-;;;;-1:-1:-1;;;;;3527:29:0;;;;;;;;;;;;;;9859:193;;;:::i;5703:585::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5703:585:0;;;;;;;;;;;;;;;;;:::i;3089:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10573:220;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10573:220:0;;;;;;;;:::i;3456:25::-;;;:::i;10251:171::-;;;;;;;;;;;;;;;;-1:-1:-1;10251:171:0;-1:-1:-1;;;;;10251:171:0;;:::i;10430:135::-;;;;;;;;;;;;;;;;-1:-1:-1;10430:135:0;-1:-1:-1;;;;;10430:135:0;;:::i;3958:49::-;;;;;;;;;;;;;;;;-1:-1:-1;3958:49:0;-1:-1:-1;;;;;3958:49:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;5424:111;;;;;;;;;;;;;;;;-1:-1:-1;5424:111:0;-1:-1:-1;;;;;5424:111:0;;:::i;7137:1216::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7137:1216:0;;;;;;;;:::i;3009:20::-;;;:::i;10801:220::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10801:220:0;;;;;;;;:::i;5543:152::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5543:152:0;;;;;;;;:::i;6486:223::-;;;;;;;;;;;;;;;;-1:-1:-1;6486:223:0;-1:-1:-1;;;;;6486:223:0;;:::i;5059:139::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5059:139:0;;;;;;;;;;:::i;3822:70::-;;;;;;;;;;;;;;;;-1:-1:-1;3822:70:0;;-1:-1:-1;;;;;3822:70:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3488:32;;;:::i;3563:20::-;;;:::i;12425:234::-;12498:10;;-1:-1:-1;;;;;12498:10:0;12484;:24;12476:48;;;;;-1:-1:-1;;;12476:48:0;;;;;;;;;;;;-1:-1:-1;;;12476:48:0;;;;;;;;;;;;;;;12537:16;12563:6;-1:-1:-1;;;;;12556:24:0;;12589:4;12556:39;;;;;;;;;;;;;-1:-1:-1;;;;;12556:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12556:39:0;12630:10;;12606:45;;;-1:-1:-1;;;12606:45:0;;-1:-1:-1;;;;;12630:10:0;;;12606:45;;;;;;;;;;;;12556:39;;-1:-1:-1;12606:23:0;;;;;;:45;;;;;12556:39;;12606:45;;;;;;;;12630:10;12606:23;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12425:234:0:o;4588:463::-;4721:10;;-1:-1:-1;;;;;4721:10:0;:24;4713:73;;;;-1:-1:-1;;;4713:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4805:25:0;;4797:76;;;;-1:-1:-1;;;4797:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4884:10;:24;;-1:-1:-1;;;;;4884:24:0;;-1:-1:-1;;;;;;4884:24:0;;;;;;;4919:14;:27;;;;;4936:10;4919:27;;;4957:20;4884:10;4971:5;;4957:20;:::i;:::-;-1:-1:-1;4988:24:0;:6;5004:7;;4988:24;:::i;:::-;-1:-1:-1;;5023:8:0;:20;;-1:-1:-1;;5023:20:0;;;;;;;;;;;;;-1:-1:-1;;;;4588:463:0:o;2933:18::-;;;;;;;;;;;;;;;-1:-1:-1;;2933:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5206:210::-;5302:10;5274:4;5291:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;5291:31:0;;;;;;;;;;;:40;;;5349:37;;;;;;;5274:4;;5291:31;;5302:10;;5349:37;;;;;;;;-1:-1:-1;5404:4:0;5206:210;;;;;:::o;10060:183::-;10160:10;;-1:-1:-1;;;;;10160:10:0;10146;:24;10138:48;;;;;-1:-1:-1;;;10138:48:0;;;;;;;;;;;;-1:-1:-1;;;10138:48:0;;;;;;;;;;;;;;;10197:17;:38;;-1:-1:-1;;;;;;10197:38:0;-1:-1:-1;;;;;10197:38:0;;;;;;;;;;10060:183::o;3171:26::-;;;;:::o;3527:29::-;;;-1:-1:-1;;;;;3527:29:0;;:::o;9859:193::-;9929:17;;-1:-1:-1;;;;;9929:17:0;9915:10;:31;9907:62;;;;;-1:-1:-1;;;9907:62:0;;;;;;;;;;;;-1:-1:-1;;;9907:62:0;;;;;;;;;;;;;;;9980:10;:23;;-1:-1:-1;;;;;;9980:23:0;;;9993:10;9980:23;;;;10014:17;:30;;;;;;;9859:193::o;5703:585::-;-1:-1:-1;;;;;5868:15:0;;5785:4;5868:15;;;:10;:15;;;;;;;;5820:10;5868:24;;;;;;;;5785:4;;5820:10;;5868:24;5909:14;;;;;:49;;;-1:-1:-1;;5927:16:0;:31;;5909:49;5905:308;;;5975:20;5998:91;6005:16;6023:6;5998:91;;;;;;;;;;;;;;;;;:6;:91::i;:::-;-1:-1:-1;;;;;6104:15:0;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;:39;;;6165:36;;;;;;;5975:114;;-1:-1:-1;6104:24:0;;:15;;6165:36;;;;;;;;;5905:308;;6225:33;6241:3;6246;6251:6;6225:15;:33::i;:::-;-1:-1:-1;6276:4:0;;5703:585;-1:-1:-1;;;;;5703:585:0:o;3089:21::-;;;;;;:::o;10573:220::-;10662:14;;-1:-1:-1;;;;;10662:14:0;10648:10;:28;;:51;;-1:-1:-1;10694:5:0;;-1:-1:-1;;;;;10694:5:0;10680:10;:19;10648:51;10640:76;;;;;-1:-1:-1;;;10640:76:0;;;;;;;;;;;;-1:-1:-1;;;10640:76:0;;;;;;;;;;;;;;;10727:21;10733:7;10741:6;10727:5;:21::i;:::-;10764;;;;;;;;-1:-1:-1;;;;;10764:21:0;;;;;;;;;;;;;10573:220;;:::o;3456:25::-;;;-1:-1:-1;;;;;3456:25:0;;:::o;10251:171::-;10345:10;;-1:-1:-1;;;;;10345:10:0;10331;:24;10323:48;;;;;-1:-1:-1;;;10323:48:0;;;;;;;;;;;;-1:-1:-1;;;10323:48:0;;;;;;;;;;;;;;;10382:14;:32;;-1:-1:-1;;;;;;10382:32:0;-1:-1:-1;;;;;10382:32:0;;;;;;;;;;10251:171::o;10430:135::-;10506:10;;-1:-1:-1;;;;;10506:10:0;10492;:24;10484:48;;;;;-1:-1:-1;;;10484:48:0;;;;;;;;;;;;-1:-1:-1;;;10484:48:0;;;;;;;;;;;;;;;10543:5;:14;;-1:-1:-1;;;;;;10543:14:0;-1:-1:-1;;;;;10543:14:0;;;;;;;;;;10430:135::o;3958:49::-;;;;;;;;;;;;;;;:::o;5424:111::-;-1:-1:-1;;;;;5510:17:0;5483:7;5510:17;;;:8;:17;;;;;;;5424:111::o;7137:1216::-;7219:7;7261:12;7247:11;:26;7239:72;;;;-1:-1:-1;;;7239:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7346:23:0;;7324:19;7346:23;;;:14;:23;;;;;;;;7384:17;7380:58;;7425:1;7418:8;;;;;7380:58;-1:-1:-1;;;;;7498:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;7519:16:0;;7498:38;;;;;;;;;:48;;:63;-1:-1:-1;7494:147:0;;-1:-1:-1;;;;;7585:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;7606:16:0;;;;7585:38;;;;;;;;7621:1;7585:44;;;-1:-1:-1;7578:51:0;;7494:147;-1:-1:-1;;;;;7702:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;7698:88:0;;;7773:1;7766:8;;;;;7698:88;7798:12;-1:-1:-1;;7840:16:0;;7867:428;7882:5;7874:13;;:5;:13;;;7867:428;;;7946:1;7929:13;;;7928:19;;;7920:27;;7989:20;;:::i;:::-;-1:-1:-1;;;;;;8012:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;7989:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8059:27;;8055:229;;;8114:8;;;;-1:-1:-1;8107:15:0;;-1:-1:-1;;;;8107:15:0;8055:229;8148:12;;:26;;;-1:-1:-1;8144:140:0;;;8203:6;8195:14;;8144:140;;;8267:1;8258:6;:10;8250:18;;8144:140;7867:428;;;;;-1:-1:-1;;;;;;8312:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;-1:-1:-1;;7137:1216:0;;;;:::o;3009:20::-;;;;;;;;;;;;;;;-1:-1:-1;;3009:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10801:220;10890:14;;-1:-1:-1;;;;;10890:14:0;10876:10;:28;;:51;;-1:-1:-1;10922:5:0;;-1:-1:-1;;;;;10922:5:0;10908:10;:19;10876:51;10868:76;;;;;-1:-1:-1;;;10868:76:0;;;;;;;;;;;;-1:-1:-1;;;10868:76:0;;;;;;;;;;;;;;;10955:21;10961:7;10969:6;10955:5;:21::i;:::-;10992;;;;;;;;-1:-1:-1;;;;;10992:21:0;;;;;;;;;;;;;10801:220;;:::o;5543:152::-;5608:4;5625:40;5641:10;5653:3;5658:6;5625:15;:40::i;:::-;-1:-1:-1;5683:4:0;5543:152;;;;:::o;6486:223::-;-1:-1:-1;;;;;6593:23:0;;6551:7;6593:23;;;:14;:23;;;;;;;;6634:16;:67;;6700:1;6634:67;;;-1:-1:-1;;;;;6653:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;6674:16:0;;6653:38;;;;;;;;6689:1;6653:44;;6634:67;6627:74;6486:223;-1:-1:-1;;;6486:223:0:o;5059:139::-;-1:-1:-1;;;;;5162:19:0;;;5135:7;5162:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;5059:139::o;3822:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3488:32::-;;;-1:-1:-1;;;;;3488:32:0;;:::o;3563:20::-;;;-1:-1:-1;;;;;3563:20:0;;:::o;12248:169::-;12337:7;12373:12;12365:6;;;;12357:29;;;;-1:-1:-1;;;12357:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12404:5:0;;;12248:169::o;8361:580::-;-1:-1:-1;;;;;8456:17:0;;8448:84;;;;-1:-1:-1;;;8448:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8551:17:0;;8543:82;;;;-1:-1:-1;;;8543:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8654:81;8661:8;:13;8670:3;-1:-1:-1;;;;;8661:13:0;-1:-1:-1;;;;;8661:13:0;;;;;;;;;;;;;8676:6;8654:81;;;;;;;;;;;;;;;;;:6;:81::i;:::-;-1:-1:-1;;;;;8638:13:0;;;;;;;:8;:13;;;;;;;;:97;;;;8769:13;;;;;;;;;8762:75;;;;;;;;;;;;;;8769:13;;8784:6;;8762:75;;;;;;;:6;:75::i;:::-;-1:-1:-1;;;;;8746:13:0;;;;;;;:8;:13;;;;;;;;;:91;;;;8853:26;;;;;;;8746:13;;8853:26;;;;;;;;;;;;;8892:15;8903:3;8892:10;:15::i;:::-;8918;8929:3;8918:10;:15::i;:::-;8361:580;;;:::o;11029:408::-;-1:-1:-1;;;;;11105:21:0;;11097:65;;;;;-1:-1:-1;;;11097:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11189:59;11196:11;;11209:6;11189:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;11175:11;:73;;;;11279:65;11286:8;:17;11295:7;-1:-1:-1;;;;;11286:17:0;-1:-1:-1;;;;;11286:17:0;;;;;;;;;;;;;11305:6;11279:65;;;;;;;;;;;;;;;;;:6;:65::i;:::-;-1:-1:-1;;;;;11259:17:0;;;;;;:8;:17;;;;;;;;:85;;;;11362:37;;;;;;;11259:17;;;;11362:37;;;;;;;;;;11410:19;11421:7;11410:10;:19::i;:::-;11029:408;;:::o;11445:422::-;-1:-1:-1;;;;;11521:21:0;;11513:67;;;;-1:-1:-1;;;11513:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11613:71;11620:8;:17;11629:7;-1:-1:-1;;;;;11620:17:0;-1:-1:-1;;;;;11620:17:0;;;;;;;;;;;;;11639:6;11613:71;;;;;;;;;;;;;;;;;:6;:71::i;:::-;11593:8;:17;11602:7;-1:-1:-1;;;;;11593:17:0;-1:-1:-1;;;;;11593:17:0;;;;;;;;;;;;:91;;;;11709:65;11716:11;;11729:6;11709:65;;;;;;;;;;;;;;;;;:6;:65::i;:::-;11695:11;:79;11792:37;;;;;;;;11818:1;;-1:-1:-1;;;;;11792:37:0;;;;;;;;;;;;11840:19;11851:7;11840:10;:19::i;12047:193::-;12136:7;12168:5;;;12200:12;12192:6;;;;12184:29;;;;-1:-1:-1;;;12184:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12231:1:0;12047:193;-1:-1:-1;;;;12047:193:0:o;8949:266::-;-1:-1:-1;;;;;9022:23:0;;9006:13;9022:23;;;:14;:23;;;;;;;;;9077:10;:55;;9131:1;9077:55;;;-1:-1:-1;;;;;9090:20:0;;;;;;:11;:20;;;;;;;;:32;-1:-1:-1;;9111:10:0;;9090:32;;;;;;;;9120:1;9090:38;;9077:55;9056:76;;9143:64;9160:7;9169:6;9177:10;9189:8;:17;9198:7;-1:-1:-1;;;;;9189:17:0;-1:-1:-1;;;;;9189:17:0;;;;;;;;;;;;;9343:18;9364:70;9371:12;9364:70;;;;;;;;;;;;;;;;;:6;:70::i;:::-;9343:91;;9466:1;9451:12;:16;;;:83;;;;-1:-1:-1;;;;;;9471:20:0;;;;;;:11;:20;;;;;;;;:63;-1:-1:-1;;9492:16:0;;9471:38;;;;;;;;;:48;:63;;;:48;;:63;9451:83;9447:331;;;-1:-1:-1;;;;;9551:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;9572:16:0;;9551:38;;;;;;;;9587:1;9551:44;:55;;;9447:331;;;9676:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9639:20:0;;-1:-1:-1;9639:20:0;;;:11;:20;;;;;:34;;;;;;;;;;:70;;;;;;;-1:-1:-1;;9639:70:0;;;;;;;;;;;;;9724:23;;;:14;:23;;;;;;:42;;9750:16;;;9724:42;;;;;;;;;;9447:331;9795:48;;;;;;;;;;;;;;-1:-1:-1;;;;;9795:48:0;;;;;;;;;;;9223:628;;;;;:::o;11875:164::-;11953:6;11991:12;11984:5;11980:9;;11972:32;;;;-1:-1:-1;;;11972:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12029:1:0;;11875:164;-1:-1:-1;;11875:164:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;
Swarm Source
ipfs://af4bb88b33ed1286020c981820590019339c605ff4d99f98e29e05d5d3b8ed7e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.