Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 26 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Preapproved ... | 12066455 | 1395 days ago | IN | 0 ETH | 0.00603502 | ||||
Set Approvable C... | 12066123 | 1395 days ago | IN | 0 ETH | 0.00731702 | ||||
Set Preapproved ... | 12037310 | 1400 days ago | IN | 0 ETH | 0.00574764 | ||||
Set Approvable C... | 12037305 | 1400 days ago | IN | 0 ETH | 0.00557219 | ||||
Set Preapproved ... | 12036850 | 1400 days ago | IN | 0 ETH | 0.00584343 | ||||
Set Approvable C... | 12036826 | 1400 days ago | IN | 0 ETH | 0.00553467 | ||||
Set Preapproved ... | 12036813 | 1400 days ago | IN | 0 ETH | 0.0020902 | ||||
Set Preapproved ... | 12036773 | 1400 days ago | IN | 0 ETH | 0.00560394 | ||||
Set Approvable C... | 12036739 | 1400 days ago | IN | 0 ETH | 0.00515944 | ||||
Set Preapproved ... | 10292759 | 1668 days ago | IN | 0 ETH | 0.00112951 | ||||
Set Approvable C... | 10292754 | 1668 days ago | IN | 0 ETH | 0.00110655 | ||||
Set Preapproved ... | 10176750 | 1686 days ago | IN | 0 ETH | 0.00087412 | ||||
Set Approvable C... | 10176745 | 1686 days ago | IN | 0 ETH | 0.00085599 | ||||
Set Preapproved ... | 9374372 | 1810 days ago | IN | 0 ETH | 0.00004789 | ||||
Set Approvable C... | 9374361 | 1810 days ago | IN | 0 ETH | 0.00005675 | ||||
Set Preapproved ... | 9374301 | 1810 days ago | IN | 0 ETH | 0.00005268 | ||||
Set Approvable C... | 9374296 | 1810 days ago | IN | 0 ETH | 0.0000469 | ||||
Set Preapproved ... | 9374284 | 1810 days ago | IN | 0 ETH | 0.00005268 | ||||
Set Approvable C... | 9374278 | 1810 days ago | IN | 0 ETH | 0.0000469 | ||||
Set Preapproved ... | 9324773 | 1818 days ago | IN | 0 ETH | 0.00009579 | ||||
Set Approvable C... | 9324770 | 1818 days ago | IN | 0 ETH | 0.00006097 | ||||
Set Open Sea Pro... | 9297429 | 1822 days ago | IN | 0 ETH | 0.0002611 | ||||
Set Preapproved ... | 9297428 | 1822 days ago | IN | 0 ETH | 0.00033527 | ||||
Set Approvable C... | 9297421 | 1822 days ago | IN | 0 ETH | 0.00032832 | ||||
Add Operator | 9297414 | 1822 days ago | IN | 0 ETH | 0.00032055 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BFHApprovalProxyV1
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-01-29 */ // Copyright (c) 2018-2020 double jump.tokyo inc. pragma solidity ^0.5.0; library Roles { struct Role { mapping (address => bool) bearer; } function add(Role storage role, address account) internal { require(!has(role, account), "role already has the account"); role.bearer[account] = true; } function remove(Role storage role, address account) internal { require(has(role, account), "role dosen't have the account"); role.bearer[account] = false; } function has(Role storage role, address account) internal view returns (bool) { return role.bearer[account]; } } interface IERC165 { function supportsInterface(bytes4 interfaceID) external view returns (bool); } /// @title ERC-165 Standard Interface Detection /// @dev See https://eips.ethereum.org/EIPS/eip-165 contract ERC165 is IERC165 { bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; mapping(bytes4 => bool) private _supportedInterfaces; constructor () internal { _registerInterface(_INTERFACE_ID_ERC165); } function supportsInterface(bytes4 interfaceId) external view returns (bool) { return _supportedInterfaces[interfaceId]; } function _registerInterface(bytes4 interfaceId) internal { require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } function toHex(address account) internal pure returns (string memory) { bytes32 value = bytes32(uint256(account)); bytes memory alphabet = "0123456789abcdef"; bytes memory str = new bytes(42); str[0] = '0'; str[1] = 'x'; for (uint i = 0; i < 20; i++) { str[2+i*2] = alphabet[uint(uint8(value[i + 12] >> 4))]; str[3+i*2] = alphabet[uint(uint8(value[i + 12] & 0x0f))]; } return string(str); } } interface IApprovalProxy { function setApprovalForAll(address _owner, address _spender, bool _approved) external; function isApprovedForAll(address _owner, address _spender, bool _original) external view returns (bool); } interface IERC173 /* is ERC165 */ { /// @dev This emits when ownership of a contract changes. event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /// @notice Get the address of the owner /// @return The address of the owner. function owner() external view returns (address); /// @notice Set the address of the new owner of the contract /// @param _newOwner The address of the new owner of the contract function transferOwnership(address _newOwner) external; } contract ERC173 is IERC173, ERC165 { address private _owner; constructor() public { _registerInterface(0x7f5828d0); _transferOwnership(msg.sender); } modifier onlyOwner() { require(msg.sender == owner(), "Must be owner"); _; } function owner() public view returns (address) { return _owner; } function transferOwnership(address _newOwner) public onlyOwner() { _transferOwnership(_newOwner); } function _transferOwnership(address _newOwner) internal { address previousOwner = owner(); _owner = _newOwner; emit OwnershipTransferred(previousOwner, _newOwner); } } contract Operatable is ERC173 { using Roles for Roles.Role; event OperatorAdded(address indexed account); event OperatorRemoved(address indexed account); event Paused(address account); event Unpaused(address account); bool private _paused; Roles.Role private operators; constructor() public { operators.add(msg.sender); _paused = false; } modifier onlyOperator() { require(isOperator(msg.sender), "Must be operator"); _; } modifier whenNotPaused() { require(!_paused, "Pausable: paused"); _; } modifier whenPaused() { require(_paused, "Pausable: not paused"); _; } function transferOwnership(address _newOwner) public onlyOperator() { _transferOwnership(_newOwner); } function isOperator(address account) public view returns (bool) { return operators.has(account); } function addOperator(address account) public onlyOperator() { operators.add(account); emit OperatorAdded(account); } function removeOperator(address account) public onlyOperator() { operators.remove(account); emit OperatorRemoved(account); } function paused() public view returns (bool) { return _paused; } function pause() public onlyOperator() whenNotPaused() { _paused = true; emit Paused(msg.sender); } function unpause() public onlyOperator() whenPaused() { _paused = false; emit Unpaused(msg.sender); } function withdrawEther() public onlyOperator() { msg.sender.transfer(address(this).balance); } } contract OwnableDelegateProxy { } contract ProxyRegistry { mapping(address => OwnableDelegateProxy) public proxies; function set(address _owner, address _spender) external { proxies[_owner] = OwnableDelegateProxy(_spender); } } contract BFHApprovalProxyV1 is IApprovalProxy, Operatable { using Address for address; Roles.Role private approvableContracts; Roles.Role private preapprovedContracts; mapping (address => mapping (address => bool)) private _expresslyNotApprovalSpender; mapping (address => mapping (address => bool)) private _contractApprovals; ProxyRegistry public openSeaProxyRegistry; mapping (address => bool) private openSeaDisabled; event UpdateApprovableContracts (address spender, bool approved); event UpdatePreapprovedContracts (address spender, bool approved); modifier onlyContract(address _spender) { require(_spender.isContract(), "_spender must be contract"); _; } constructor() public {} function setApprovalForAll(address _owner, address _spender, bool _approved) public onlyContract(_spender) onlyOperator() { require(isApprovableContract(_spender), "_spender must belong to approvable role"); _expresslyNotApprovalSpender[_owner][_spender] = !_approved; } function isApprovedForAll(address _owner, address _spender, bool _original) public view returns (bool) { if (approvalToOpenSea(_owner, _spender)) { return true; } if (_spender.isContract()) { if (!isApprovableContract(_spender)) { return false; } if (isPreapprovedContract(_spender)) { return !_expresslyNotApprovalSpender[_owner][_spender]; } } return _original; } // OpenSea function setOpenSeaProxyRegistry(address _openSeaProxyRegistry) public onlyOperator() { openSeaProxyRegistry = ProxyRegistry(_openSeaProxyRegistry); } function enableOpenSea() public { openSeaDisabled[msg.sender] = false; } function disableOpenSea() public { openSeaDisabled[msg.sender] = true; } function getOpenSeaSpender(address _owner) public view returns (address) { return address(openSeaProxyRegistry.proxies(_owner)); } function approvalToOpenSea(address _owner, address _spender) public view returns (bool) { if (address(openSeaProxyRegistry) == address(0x0)) { return false; } if (openSeaDisabled[_owner]) { return false; } return (getOpenSeaSpender(_owner) == _spender); } // Approvable list function setApprovableContracts(address _spender, bool _approvable) public onlyOperator() onlyContract(_spender) { emit UpdateApprovableContracts(_spender, _approvable); if (_approvable) { approvableContracts.add(_spender); } else { require(!isPreapprovedContract(_spender), "_spender must not be preapproval"); approvableContracts.remove(_spender); } } function isApprovableContract(address _spender) public view returns (bool) { return approvableContracts.has(_spender); } function setPreapprovedContracts(address _spender, bool _approval) public onlyOperator() onlyContract(_spender) { require(isApprovableContract(_spender), "_spender must not be approvable"); emit UpdatePreapprovedContracts(_spender, _approval); if (_approval) { preapprovedContracts.add(_spender); } else { preapprovedContracts.remove(_spender); } } function isPreapprovedContract(address _spender) public view returns (bool) { return preapprovedContracts.has(_spender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorRemoved","type":"event"},{"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":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"UpdateApprovableContracts","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"UpdatePreapprovedContracts","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"approvalToOpenSea","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableOpenSea","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableOpenSea","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getOpenSeaSpender","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"isApprovableContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"bool","name":"_original","type":"bool"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"isPreapprovedContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"openSeaProxyRegistry","outputs":[{"internalType":"contract ProxyRegistry","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"bool","name":"_approvable","type":"bool"}],"name":"setApprovableContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_openSeaProxyRegistry","type":"address"}],"name":"setOpenSeaProxyRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"bool","name":"_approval","type":"bool"}],"name":"setPreapprovedContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50620000467f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03620000bc16565b6200007a7f7f5828d0000000000000000000000000000000000000000000000000000000006001600160e01b03620000bc16565b6200008e336001600160e01b036200018b16565b620000a9336002620001f460201b62000e9e1790919060201c565b6001805460ff60a01b19169055620002c9565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200014e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b6000620001a06001600160e01b036200029b16565b600180546001600160a01b0319166001600160a01b0385811691821790925560405192935091908316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200020982826001600160e01b03620002aa16565b156200027657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f726f6c6520616c72656164792068617320746865206163636f756e7400000000604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001546001600160a01b031690565b6001600160a01b03166000908152602091909152604090205460ff1690565b61107580620002d96000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638456cb59116100b8578063a4d925f11161007c578063a4d925f114610344578063ac8a584a1461036a578063cf10ef2d14610390578063d3b805d8146103b6578063f2fde38b146103dc578063f8c0c9161461040257610142565b80638456cb59146102a857806389f69dba146102b05780638da5cb5b146102de5780638dccfc52146102e65780639870d7fe1461031e57610142565b80635b620bd31161010a5780635b620bd3146102165780635c975abb1461023c5780635e6241b2146102445780636025b389146102725780636d70f7ae1461027a5780637362377b146102a057610142565b806301ffc9a714610147578063171b5b6a14610182578063367605ca146101b25780633f4ba83a146101ea5780635025b548146101f2575b600080fd5b61016e6004803603602081101561015d57600080fd5b50356001600160e01b03191661040a565b604080519115158252519081900360200190f35b6101b06004803603604081101561019857600080fd5b506001600160a01b0381351690602001351515610429565b005b6101b0600480360360608110156101c857600080fd5b506001600160a01b0381358116916020810135909116906040013515156105a7565b6101b06106d2565b6101fa6107b6565b604080516001600160a01b039092168252519081900360200190f35b61016e6004803603602081101561022c57600080fd5b50356001600160a01b03166107c5565b61016e6107de565b61016e6004803603604081101561025a57600080fd5b506001600160a01b03813581169160200135166107ee565b6101b0610856565b61016e6004803603602081101561029057600080fd5b50356001600160a01b031661086f565b6101b0610882565b6101b06108ff565b6101b0600480360360408110156102c657600080fd5b506001600160a01b03813516906020013515156109e6565b6101fa610b5b565b61016e600480360360608110156102fc57600080fd5b506001600160a01b038135811691602081013590911690604001351515610b6a565b6101b06004803603602081101561033457600080fd5b50356001600160a01b0316610bf7565b6101b06004803603602081101561035a57600080fd5b50356001600160a01b0316610c8c565b6101b06004803603602081101561038057600080fd5b50356001600160a01b0316610cfb565b61016e600480360360208110156103a657600080fd5b50356001600160a01b0316610d90565b6101fa600480360360208110156103cc57600080fd5b50356001600160a01b0316610da3565b6101b0600480360360208110156103f257600080fd5b50356001600160a01b0316610e26565b6101b0610e7c565b6001600160e01b03191660009081526020819052604090205460ff1690565b6104323361086f565b610476576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b81610489816001600160a01b0316610e98565b6104d6576040805162461bcd60e51b815260206004820152601960248201527817dcdc195b99195c881b5d5cdd0818994818dbdb9d1c9858dd603a1b604482015290519081900360640190fd5b6104df83610d90565b610530576040805162461bcd60e51b815260206004820152601f60248201527f5f7370656e646572206d757374206e6f7420626520617070726f7661626c6500604482015290519081900360640190fd5b604080516001600160a01b0385168152831515602082015281517f41243044fceb8e758713bc0c30e27030c46b1979b7e6936d996d00f840f03d8f929181900390910190a181156105915761058c60048463ffffffff610e9e16565b6105a2565b6105a260048463ffffffff610f1f16565b505050565b816105ba816001600160a01b0316610e98565b610607576040805162461bcd60e51b815260206004820152601960248201527817dcdc195b99195c881b5d5cdd0818994818dbdb9d1c9858dd603a1b604482015290519081900360640190fd5b6106103361086f565b610654576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b61065d83610d90565b6106985760405162461bcd60e51b815260040180806020018281038252602781526020018061101a6027913960400191505060405180910390fd5b506001600160a01b03928316600090815260056020908152604080832094909516825292909252919020805460ff19169115919091179055565b6106db3361086f565b61071f576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b600154600160a01b900460ff16610774576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff60a01b191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6007546001600160a01b031681565b60006107d860048363ffffffff610f9c16565b92915050565b600154600160a01b900460ff1690565b6007546000906001600160a01b0316610809575060006107d8565b6001600160a01b03831660009081526008602052604090205460ff1615610832575060006107d8565b816001600160a01b031661084584610da3565b6001600160a01b0316149392505050565b336000908152600860205260409020805460ff19169055565b60006107d860028363ffffffff610f9c16565b61088b3361086f565b6108cf576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b6040513390303180156108fc02916000818181858888f193505050501580156108fc573d6000803e3d6000fd5b50565b6109083361086f565b61094c576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b600154600160a01b900460ff161561099e576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6109ef3361086f565b610a33576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b81610a46816001600160a01b0316610e98565b610a93576040805162461bcd60e51b815260206004820152601960248201527817dcdc195b99195c881b5d5cdd0818994818dbdb9d1c9858dd603a1b604482015290519081900360640190fd5b604080516001600160a01b0385168152831515602082015281517fb27c82517d508b5ef74d0dee84509db8503c954c999cfb72a3a0bd5e002552e7929181900390910190a18115610aef5761058c60038463ffffffff610e9e16565b610af8836107c5565b15610b4a576040805162461bcd60e51b815260206004820181905260248201527f5f7370656e646572206d757374206e6f7420626520707265617070726f76616c604482015290519081900360640190fd5b6105a260038463ffffffff610f1f16565b6001546001600160a01b031690565b6000610b7684846107ee565b15610b8357506001610bf0565b610b95836001600160a01b0316610e98565b15610bed57610ba383610d90565b610baf57506000610bf0565b610bb8836107c5565b15610bed57506001600160a01b0380841660009081526005602090815260408083209386168352929052205460ff1615610bf0565b50805b9392505050565b610c003361086f565b610c44576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b610c5560028263ffffffff610e9e16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b610c953361086f565b610cd9576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610d043361086f565b610d48576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b610d5960028263ffffffff610f1f16565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b60006107d860038363ffffffff610f9c16565b6007546040805163c455279160e01b81526001600160a01b0384811660048301529151600093929092169163c455279191602480820192602092909190829003018186803b158015610df457600080fd5b505afa158015610e08573d6000803e3d6000fd5b505050506040513d6020811015610e1e57600080fd5b505192915050565b610e2f3361086f565b610e73576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b6108fc81610fbb565b336000908152600860205260409020805460ff19166001179055565b3b151590565b610ea88282610f9c565b15610efa576040805162461bcd60e51b815260206004820152601c60248201527f726f6c6520616c72656164792068617320746865206163636f756e7400000000604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f298282610f9c565b610f7a576040805162461bcd60e51b815260206004820152601d60248201527f726f6c6520646f73656e2774206861766520746865206163636f756e74000000604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b03166000908152602091909152604090205460ff1690565b6000610fc5610b5b565b600180546001600160a01b0319166001600160a01b0385811691821790925560405192935091908316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505056fe5f7370656e646572206d7573742062656c6f6e6720746f20617070726f7661626c6520726f6c65a265627a7a72315820bad9c0ff78bbf689813764515f0fe3e4a82f0101e385c139122cd5708eb356a864736f6c634300050c0032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638456cb59116100b8578063a4d925f11161007c578063a4d925f114610344578063ac8a584a1461036a578063cf10ef2d14610390578063d3b805d8146103b6578063f2fde38b146103dc578063f8c0c9161461040257610142565b80638456cb59146102a857806389f69dba146102b05780638da5cb5b146102de5780638dccfc52146102e65780639870d7fe1461031e57610142565b80635b620bd31161010a5780635b620bd3146102165780635c975abb1461023c5780635e6241b2146102445780636025b389146102725780636d70f7ae1461027a5780637362377b146102a057610142565b806301ffc9a714610147578063171b5b6a14610182578063367605ca146101b25780633f4ba83a146101ea5780635025b548146101f2575b600080fd5b61016e6004803603602081101561015d57600080fd5b50356001600160e01b03191661040a565b604080519115158252519081900360200190f35b6101b06004803603604081101561019857600080fd5b506001600160a01b0381351690602001351515610429565b005b6101b0600480360360608110156101c857600080fd5b506001600160a01b0381358116916020810135909116906040013515156105a7565b6101b06106d2565b6101fa6107b6565b604080516001600160a01b039092168252519081900360200190f35b61016e6004803603602081101561022c57600080fd5b50356001600160a01b03166107c5565b61016e6107de565b61016e6004803603604081101561025a57600080fd5b506001600160a01b03813581169160200135166107ee565b6101b0610856565b61016e6004803603602081101561029057600080fd5b50356001600160a01b031661086f565b6101b0610882565b6101b06108ff565b6101b0600480360360408110156102c657600080fd5b506001600160a01b03813516906020013515156109e6565b6101fa610b5b565b61016e600480360360608110156102fc57600080fd5b506001600160a01b038135811691602081013590911690604001351515610b6a565b6101b06004803603602081101561033457600080fd5b50356001600160a01b0316610bf7565b6101b06004803603602081101561035a57600080fd5b50356001600160a01b0316610c8c565b6101b06004803603602081101561038057600080fd5b50356001600160a01b0316610cfb565b61016e600480360360208110156103a657600080fd5b50356001600160a01b0316610d90565b6101fa600480360360208110156103cc57600080fd5b50356001600160a01b0316610da3565b6101b0600480360360208110156103f257600080fd5b50356001600160a01b0316610e26565b6101b0610e7c565b6001600160e01b03191660009081526020819052604090205460ff1690565b6104323361086f565b610476576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b81610489816001600160a01b0316610e98565b6104d6576040805162461bcd60e51b815260206004820152601960248201527817dcdc195b99195c881b5d5cdd0818994818dbdb9d1c9858dd603a1b604482015290519081900360640190fd5b6104df83610d90565b610530576040805162461bcd60e51b815260206004820152601f60248201527f5f7370656e646572206d757374206e6f7420626520617070726f7661626c6500604482015290519081900360640190fd5b604080516001600160a01b0385168152831515602082015281517f41243044fceb8e758713bc0c30e27030c46b1979b7e6936d996d00f840f03d8f929181900390910190a181156105915761058c60048463ffffffff610e9e16565b6105a2565b6105a260048463ffffffff610f1f16565b505050565b816105ba816001600160a01b0316610e98565b610607576040805162461bcd60e51b815260206004820152601960248201527817dcdc195b99195c881b5d5cdd0818994818dbdb9d1c9858dd603a1b604482015290519081900360640190fd5b6106103361086f565b610654576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b61065d83610d90565b6106985760405162461bcd60e51b815260040180806020018281038252602781526020018061101a6027913960400191505060405180910390fd5b506001600160a01b03928316600090815260056020908152604080832094909516825292909252919020805460ff19169115919091179055565b6106db3361086f565b61071f576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b600154600160a01b900460ff16610774576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6001805460ff60a01b191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6007546001600160a01b031681565b60006107d860048363ffffffff610f9c16565b92915050565b600154600160a01b900460ff1690565b6007546000906001600160a01b0316610809575060006107d8565b6001600160a01b03831660009081526008602052604090205460ff1615610832575060006107d8565b816001600160a01b031661084584610da3565b6001600160a01b0316149392505050565b336000908152600860205260409020805460ff19169055565b60006107d860028363ffffffff610f9c16565b61088b3361086f565b6108cf576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b6040513390303180156108fc02916000818181858888f193505050501580156108fc573d6000803e3d6000fd5b50565b6109083361086f565b61094c576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b600154600160a01b900460ff161561099e576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6109ef3361086f565b610a33576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b81610a46816001600160a01b0316610e98565b610a93576040805162461bcd60e51b815260206004820152601960248201527817dcdc195b99195c881b5d5cdd0818994818dbdb9d1c9858dd603a1b604482015290519081900360640190fd5b604080516001600160a01b0385168152831515602082015281517fb27c82517d508b5ef74d0dee84509db8503c954c999cfb72a3a0bd5e002552e7929181900390910190a18115610aef5761058c60038463ffffffff610e9e16565b610af8836107c5565b15610b4a576040805162461bcd60e51b815260206004820181905260248201527f5f7370656e646572206d757374206e6f7420626520707265617070726f76616c604482015290519081900360640190fd5b6105a260038463ffffffff610f1f16565b6001546001600160a01b031690565b6000610b7684846107ee565b15610b8357506001610bf0565b610b95836001600160a01b0316610e98565b15610bed57610ba383610d90565b610baf57506000610bf0565b610bb8836107c5565b15610bed57506001600160a01b0380841660009081526005602090815260408083209386168352929052205460ff1615610bf0565b50805b9392505050565b610c003361086f565b610c44576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b610c5560028263ffffffff610e9e16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b610c953361086f565b610cd9576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610d043361086f565b610d48576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b610d5960028263ffffffff610f1f16565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b60006107d860038363ffffffff610f9c16565b6007546040805163c455279160e01b81526001600160a01b0384811660048301529151600093929092169163c455279191602480820192602092909190829003018186803b158015610df457600080fd5b505afa158015610e08573d6000803e3d6000fd5b505050506040513d6020811015610e1e57600080fd5b505192915050565b610e2f3361086f565b610e73576040805162461bcd60e51b815260206004820152601060248201526f26bab9ba1031329037b832b930ba37b960811b604482015290519081900360640190fd5b6108fc81610fbb565b336000908152600860205260409020805460ff19166001179055565b3b151590565b610ea88282610f9c565b15610efa576040805162461bcd60e51b815260206004820152601c60248201527f726f6c6520616c72656164792068617320746865206163636f756e7400000000604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f298282610f9c565b610f7a576040805162461bcd60e51b815260206004820152601d60248201527f726f6c6520646f73656e2774206861766520746865206163636f756e74000000604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b03166000908152602091909152604090205460ff1690565b6000610fc5610b5b565b600180546001600160a01b0319166001600160a01b0385811691821790925560405192935091908316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505056fe5f7370656e646572206d7573742062656c6f6e6720746f20617070726f7661626c6520726f6c65a265627a7a72315820bad9c0ff78bbf689813764515f0fe3e4a82f0101e385c139122cd5708eb356a864736f6c634300050c0032
Deployed Bytecode Sourcemap
5793:3656:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5793:3656:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1131:135:0;-1:-1:-1;;;;;;1131:135:0;;:::i;:::-;;;;;;;;;;;;;;;;;;8876:424;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8876:424:0;;;;;;;;;;:::i;:::-;;6575:293;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6575:293:0;;;;;;;;;;;;;;;;;;;:::i;5287:124::-;;;:::i;6155:41::-;;;:::i;:::-;;;;-1:-1:-1;;;;;6155:41:0;;;;;;;;;;;;;;9308:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9308:136:0;-1:-1:-1;;;;;9308:136:0;;:::i;5071:78::-;;;:::i;7930:331::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7930:331:0;;;;;;;;;;:::i;7586:86::-;;;:::i;4649:112::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4649:112:0;-1:-1:-1;;;;;4649:112:0;;:::i;5419:108::-;;;:::i;5157:122::-;;;:::i;8293:433::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8293:433:0;;;;;;;;;;:::i;3387:79::-;;;:::i;6876:514::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6876:514:0;;;;;;;;;;;;;;;;;;;:::i;4769:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4769:139:0;-1:-1:-1;;;;;4769:139:0;;:::i;7414:164::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7414:164:0;-1:-1:-1;;;;;7414:164:0;;:::i;4916:147::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4916:147:0;-1:-1:-1;;;;;4916:147:0;;:::i;8734:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8734:134:0;-1:-1:-1;;;;;8734:134:0;;:::i;7778:144::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7778:144:0;-1:-1:-1;;;;;7778:144:0;;:::i;4525:116::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4525:116:0;-1:-1:-1;;;;;4525:116:0;;:::i;7680:86::-;;;:::i;1131:135::-;-1:-1:-1;;;;;;1225:33:0;1201:4;1225:33;;;;;;;;;;;;;;1131:135::o;8876:424::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;8978:8;6465:21;:8;-1:-1:-1;;;;;6465:19:0;;:21::i;:::-;6457:59;;;;;-1:-1:-1;;;6457:59:0;;;;;;;;;;;;-1:-1:-1;;;6457:59:0;;;;;;;;;;;;;;;9007:30;9028:8;9007:20;:30::i;:::-;8999:74;;;;;-1:-1:-1;;;8999:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9089:47;;;-1:-1:-1;;;;;9089:47:0;;;;;;;;;;;;;;;;;;;;;;;;9151:9;9147:146;;;9177:34;:20;9202:8;9177:34;:24;:34;:::i;:::-;9147:146;;;9244:37;:20;9272:8;9244:37;:27;:37;:::i;:::-;4306:1;8876:424;;:::o;6575:293::-;6672:8;6465:21;:8;-1:-1:-1;;;;;6465:19:0;;:21::i;:::-;6457:59;;;;;-1:-1:-1;;;6457:59:0;;;;;;;;;;;;-1:-1:-1;;;6457:59:0;;;;;;;;;;;;;;;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;6716:30;6737:8;6716:20;:30::i;:::-;6708:82;;;;-1:-1:-1;;;6708:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6801:36:0;;;;;;;:28;:36;;;;;;;;:46;;;;;;;;;;;;;:59;;-1:-1:-1;;6801:59:0;6850:10;;6801:59;;;;;;6575:293::o;5287:124::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;4465:7;;-1:-1:-1;;;4465:7:0;;;;4457:40;;;;;-1:-1:-1;;;4457:40:0;;;;;;;;;;;;-1:-1:-1;;;4457:40:0;;;;;;;;;;;;;;;5352:7;:15;;-1:-1:-1;;;;5352:15:0;;;5383:20;;;5392:10;5383:20;;;;;;;;;;;;;5287:124::o;6155:41::-;;;-1:-1:-1;;;;;6155:41:0;;:::o;9308:136::-;9378:4;9402:34;:20;9427:8;9402:34;:24;:34;:::i;:::-;9395:41;9308:136;-1:-1:-1;;9308:136:0:o;5071:78::-;5134:7;;-1:-1:-1;;;5134:7:0;;;;;5071:78::o;7930:331::-;8041:20;;8012:4;;-1:-1:-1;;;;;8041:20:0;8029:90;;-1:-1:-1;8102:5:0;8095:12;;8029:90;-1:-1:-1;;;;;8133:23:0;;;;;;:15;:23;;;;;;;;8129:68;;;-1:-1:-1;8180:5:0;8173:12;;8129:68;8244:8;-1:-1:-1;;;;;8215:37:0;:25;8233:6;8215:17;:25::i;:::-;-1:-1:-1;;;;;8215:37:0;;;7930:331;-1:-1:-1;;;7930:331:0:o;7586:86::-;7645:10;7659:5;7629:27;;;:15;:27;;;;;:35;;-1:-1:-1;;7629:35:0;;;7586:86::o;4649:112::-;4707:4;4731:22;:9;4745:7;4731:22;:13;:22;:::i;5419:108::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;5477:42;;:10;;5505:4;5497:21;5477:42;;;;;;;;;5497:21;5477:10;:42;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5477:42:0;5419:108::o;5157:122::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;4368:7;;-1:-1:-1;;;4368:7:0;;;;4367:8;4359:37;;;;;-1:-1:-1;;;4359:37:0;;;;;;;;;;;;-1:-1:-1;;;4359:37:0;;;;;;;;;;;;;;;5233:4;5223:14;;-1:-1:-1;;;;5223:14:0;-1:-1:-1;;;5223:14:0;;;5253:18;;;5260:10;5253:18;;;;;;;;;;;;;5157:122::o;8293:433::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;8396:8;6465:21;:8;-1:-1:-1;;;;;6465:19:0;;:21::i;:::-;6457:59;;;;;-1:-1:-1;;;6457:59:0;;;;;;;;;;;;-1:-1:-1;;;6457:59:0;;;;;;;;;;;;;;;8422:48;;;-1:-1:-1;;;;;8422:48:0;;;;;;;;;;;;;;;;;;;;;;;;8485:11;8481:238;;;8513:33;:19;8537:8;8513:33;:23;:33;:::i;8481:238::-;8588:31;8610:8;8588:21;:31::i;:::-;8587:32;8579:77;;;;;-1:-1:-1;;;8579:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8671:36;:19;8698:8;8671:36;:26;:36;:::i;3387:79::-;3452:6;;-1:-1:-1;;;;;3452:6:0;3387:79;:::o;6876:514::-;6973:4;6994:35;7012:6;7020:8;6994:17;:35::i;:::-;6990:79;;;-1:-1:-1;7053:4:0;7046:11;;6990:79;7083:21;:8;-1:-1:-1;;;;;7083:19:0;;:21::i;:::-;7079:277;;;7126:30;7147:8;7126:20;:30::i;:::-;7121:84;;-1:-1:-1;7184:5:0;7177:12;;7121:84;7223:31;7245:8;7223:21;:31::i;:::-;7219:126;;;-1:-1:-1;;;;;;7283:36:0;;;;;;;:28;:36;;;;;;;;:46;;;;;;;;;;;;7282:47;7275:54;;7219:126;-1:-1:-1;7373:9:0;6876:514;;;;;;:::o;4769:139::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;4840:22;:9;4854:7;4840:22;:13;:22;:::i;:::-;4878;;-1:-1:-1;;;;;4878:22:0;;;;;;;;4769:139;:::o;7414:164::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;7511:20;:59;;-1:-1:-1;;;;;;7511:59:0;-1:-1:-1;;;;;7511:59:0;;;;;;;;;;7414:164::o;4916:147::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;4990:25;:9;5007:7;4990:25;:16;:25;:::i;:::-;5031:24;;-1:-1:-1;;;;;5031:24:0;;;;;;;;4916:147;:::o;8734:134::-;8803:4;8827:33;:19;8851:8;8827:33;:23;:33;:::i;7778:144::-;7877:20;;:36;;;-1:-1:-1;;;7877:36:0;;-1:-1:-1;;;;;7877:36:0;;;;;;;;;7842:7;;7877:20;;;;;:28;;:36;;;;;;;;;;;;;;;:20;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7877:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7877:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7877:36:0;;7778:144;-1:-1:-1;;7778:144:0:o;4525:116::-;4252:22;4263:10;4252;:22::i;:::-;4244:51;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;-1:-1:-1;;;4244:51:0;;;;;;;;;;;;;;;4604:29;4623:9;4604:18;:29::i;7680:86::-;7740:10;7724:27;;;;:15;:27;;;;;:34;;-1:-1:-1;;7724:34:0;7754:4;7724:34;;;7680:86::o;1499:174::-;1618:20;1657:8;;;1499:174::o;170:175::-;248:18;252:4;258:7;248:3;:18::i;:::-;247:19;239:60;;;;;-1:-1:-1;;;239:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;310:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;310:27:0;333:4;310:27;;;170:175::o;353:179::-;433:18;437:4;443:7;433:3;:18::i;:::-;425:60;;;;;-1:-1:-1;;;425:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;496:20:0;519:5;496:20;;;;;;;;;;;:28;;-1:-1:-1;;496:28:0;;;353:179::o;540:124::-;-1:-1:-1;;;;;636:20:0;612:4;636:20;;;;;;;;;;;;;;;540:124::o;3595:190::-;3662:21;3686:7;:5;:7::i;:::-;3697:6;:18;;-1:-1:-1;;;;;;3697:18:0;-1:-1:-1;;;;;3697:18:0;;;;;;;;;3731:46;;3662:31;;-1:-1:-1;3697:18:0;3731:46;;;;;;-1:-1:-1;;3731:46:0;3595:190;;:::o
Swarm Source
bzzr://bad9c0ff78bbf689813764515f0fe3e4a82f0101e385c139122cd5708eb356a8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.