More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 150 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create | 130813359 | 94 days ago | IN | 0 ETH | 0.000002118979 | ||||
Create | 130064463 | 111 days ago | IN | 0 ETH | 0.000000202322 | ||||
Create | 129111526 | 133 days ago | IN | 0 ETH | 0.000000328538 | ||||
Create | 128851679 | 139 days ago | IN | 0 ETH | 0.000002143473 | ||||
Create | 128842149 | 140 days ago | IN | 0 ETH | 0.000001419768 | ||||
Create | 128457963 | 149 days ago | IN | 0 ETH | 0.000002973142 | ||||
Create | 128381810 | 150 days ago | IN | 0 ETH | 0.000000233481 | ||||
Create | 128323835 | 152 days ago | IN | 0 ETH | 0.000000470815 | ||||
Create | 128323633 | 152 days ago | IN | 0 ETH | 0.000000416121 | ||||
Create | 127927126 | 161 days ago | IN | 0 ETH | 0.000000514458 | ||||
Create | 127822229 | 163 days ago | IN | 0 ETH | 0.000000435803 | ||||
Create | 126691174 | 189 days ago | IN | 0 ETH | 0.000000736272 | ||||
Create | 126481749 | 194 days ago | IN | 0 ETH | 0.000001649693 | ||||
Create | 123455360 | 264 days ago | IN | 0 ETH | 0.00000071933 | ||||
Create | 123039802 | 274 days ago | IN | 0 ETH | 0.000078454092 | ||||
Create | 123027287 | 274 days ago | IN | 0 ETH | 0.00007913328 | ||||
Create | 122344338 | 290 days ago | IN | 0 ETH | 0.000078240544 | ||||
Create | 122256382 | 292 days ago | IN | 0 ETH | 0.000078436391 | ||||
Create | 122151334 | 295 days ago | IN | 0 ETH | 0.000001853278 | ||||
Create | 121842362 | 302 days ago | IN | 0 ETH | 0.00009800106 | ||||
Create | 121842313 | 302 days ago | IN | 0 ETH | 0.000099265456 | ||||
Create | 121795319 | 303 days ago | IN | 0 ETH | 0.000079430849 | ||||
Create | 121739527 | 304 days ago | IN | 0 ETH | 0.000078397945 | ||||
Create | 121681594 | 305 days ago | IN | 0 ETH | 0.000079825379 | ||||
Create | 121342027 | 313 days ago | IN | 0 ETH | 0.000007782801 |
Latest 25 internal transactions (View All)
Advanced mode:
Loading...
Loading
Contract Name:
SpaceFactory
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; import "./Space.sol"; contract SpaceFactory { event Create(uint256 spaceId, address indexed spaceAddress, uint256 indexed assetId, address creator, string spaceName); uint256 public spaceIndex = 0; mapping(uint256 => address) public spaces; function create(uint256 assetId, string calldata spaceName) public { Space newSpace = new Space(assetId, spaceName, msg.sender); spaces[spaceIndex] = address(newSpace); emit Create(spaceIndex, address(newSpace), assetId, msg.sender, spaceName); spaceIndex++; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; // Interface for the Bodhi contract interface IBodhi { // ERC1155 function balanceOf(address, uint256) external view returns (uint256); function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external; function safeBatchTransferFrom(address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data) external; // Bodhi - read function assets(uint256 assetId) external view returns (uint256 id, string memory arTxId, address creator); function assetIndex() external view returns (uint256); function totalSupply(uint256) external view returns (uint256); function getPrice(uint256 supply, uint256 amount) external pure returns (uint256); function getBuyPrice(uint256 assetId, uint256 amount) external view returns (uint256); function getBuyPriceAfterFee(uint256 assetId, uint256 amount) external view returns (uint256); function getSellPrice(uint256 assetId, uint256 amount) external view returns (uint256); function getSellPriceAfterFee(uint256 assetId, uint256 amount) external view returns (uint256); // Bodhi - write function create(string calldata arTxId) external; function remove(uint256 assetId) external; function buy(uint256 assetId, uint256 amount) external payable; function sell(uint256 assetId, uint256 amount) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; import {ERC1155TokenReceiver} from "solmate/src/tokens/ERC1155.sol"; import "../interface/IBodhi.sol"; contract Space is ERC1155TokenReceiver { event Create(uint256 indexed parentId, uint256 indexed assetId, address indexed sender); event Remove(uint256 indexed assetId); IBodhi public constant bodhi = IBodhi(0x2AD82A4E39Bac43A54DdfE6f94980AAf0D1409eF); uint256 public immutable spaceAssetId; address public immutable owner; string public name; constructor(uint256 _assetId, string memory _name, address _owner) { (,, address creator) = bodhi.assets(_assetId); require(_owner == creator, "Only creator can create its Space"); // also revert if asset not exist or creator is zero spaceAssetId = _assetId; name = _name; owner = _owner; } mapping(uint256 => uint256) public assetToParent; mapping(uint256 => address) public assetToCreator; // create('...', 0) for new post // create('...', parentId) for reply to a post function create(string calldata arTxId, uint256 parentId) external { require(parentId == 0 || assetToParent[parentId] != 0, "Parent not exists"); uint256 assetId = bodhi.assetIndex(); uint256 _parentId = parentId != 0 ? parentId : assetId; assetToParent[assetId] = _parentId; assetToCreator[assetId] = msg.sender; emit Create(_parentId, assetId, msg.sender); bodhi.create(arTxId); bodhi.safeTransferFrom(address(this), msg.sender, assetId, 1 ether, ""); } function removeFromSpace(uint256[] calldata assetIds) external { require(msg.sender == owner, "Only owner can remove"); for(uint256 i = 0; i < assetIds.length; i++) { delete assetToParent[assetIds[i]]; emit Remove(assetIds[i]); } } function removeFromBodhi(uint256 assetId) external { require(assetToCreator[assetId] == msg.sender, "Only creator can remove"); bodhi.remove(assetId); } function buyback(uint256 amount, uint256 maxPrice) external { require(msg.sender == owner, "Only owner can buyback"); uint256 price = bodhi.getBuyPriceAfterFee(spaceAssetId, amount); require(price <= maxPrice, "Price too high"); // prevent potential MEV in the future bodhi.buy{value: price}(spaceAssetId, amount); } receive () external payable {} }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Minimalist and gas efficient standard ERC1155 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount ); event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts ); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); event URI(string value, uint256 indexed id); /*////////////////////////////////////////////////////////////// ERC1155 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; /*////////////////////////////////////////////////////////////// METADATA LOGIC //////////////////////////////////////////////////////////////*/ function uri(uint256 id) public view virtual returns (string memory); /*////////////////////////////////////////////////////////////// ERC1155 LOGIC //////////////////////////////////////////////////////////////*/ function setApprovalForAll(address operator, bool approved) public virtual { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) public virtual { require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) public virtual { require(ids.length == amounts.length, "LENGTH_MISMATCH"); require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); // Storing these outside the loop saves ~15 gas per iteration. uint256 id; uint256 amount; for (uint256 i = 0; i < ids.length; ) { id = ids[i]; amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function balanceOfBatch(address[] calldata owners, uint256[] calldata ids) public view virtual returns (uint256[] memory balances) { require(owners.length == ids.length, "LENGTH_MISMATCH"); balances = new uint256[](owners.length); // Unchecked because the only math done is incrementing // the array index counter which cannot possibly overflow. unchecked { for (uint256 i = 0; i < owners.length; ++i) { balances[i] = balanceOf[owners[i]][ids[i]]; } } } /*////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155 interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint( address to, uint256 id, uint256 amount, bytes memory data ) internal virtual { balanceOf[to][id] += amount; emit TransferSingle(msg.sender, address(0), to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function _batchMint( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[to][ids[i]] += amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, address(0), to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function _batchBurn( address from, uint256[] memory ids, uint256[] memory amounts ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[from][ids[i]] -= amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, address(0), ids, amounts); } function _burn( address from, uint256 id, uint256 amount ) internal virtual { balanceOf[from][id] -= amount; emit TransferSingle(msg.sender, from, address(0), id, amount); } } /// @notice A generic interface for a contract which properly accepts ERC1155 tokens. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155TokenReceiver { function onERC1155Received( address, address, uint256, uint256, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] calldata, uint256[] calldata, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155BatchReceived.selector; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"spaceId","type":"uint256"},{"indexed":true,"internalType":"address","name":"spaceAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"assetId","type":"uint256"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"string","name":"spaceName","type":"string"}],"name":"Create","type":"event"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"},{"internalType":"string","name":"spaceName","type":"string"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spaceIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"spaces","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526000805534801561001457600080fd5b506124c3806100246000396000f3fe60806040523480156200001157600080fd5b5060043610620000465760003560e01c80630118fa49146200004b5780634eb68762146200006b5780637586353b146200008d575b600080fd5b620000696004803603810190620000639190620002cb565b620000c3565b005b62000075620001d1565b60405162000084919062000346565b60405180910390f35b620000ab6004803603810190620000a5919062000363565b620001d7565b604051620000ba9190620003da565b60405180910390f35b600083838333604051620000d7906200020a565b620000e694939291906200045b565b604051809103906000f08015801562000103573d6000803e3d6000fd5b50905080600160008054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838173ffffffffffffffffffffffffffffffffffffffff167f7301c17e7eed2f35b0b4384269e319c245be1e379fbfe6f0872f8cff3f5f21d8600054338787604051620001aa9493929190620004a1565b60405180910390a3600080815480929190620001c69062000516565b919050555050505050565b60005481565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f2a806200056483390190565b600080fd5b600080fd5b6000819050919050565b620002378162000222565b81146200024357600080fd5b50565b60008135905062000257816200022c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126200028557620002846200025d565b5b8235905067ffffffffffffffff811115620002a557620002a462000262565b5b602083019150836001820283011115620002c457620002c362000267565b5b9250929050565b600080600060408486031215620002e757620002e662000218565b5b6000620002f78682870162000246565b935050602084013567ffffffffffffffff8111156200031b576200031a6200021d565b5b62000329868287016200026c565b92509250509250925092565b620003408162000222565b82525050565b60006020820190506200035d600083018462000335565b92915050565b6000602082840312156200037c576200037b62000218565b5b60006200038c8482850162000246565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003c28262000395565b9050919050565b620003d481620003b5565b82525050565b6000602082019050620003f16000830184620003c9565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000620004368385620003f7565b93506200044583858462000408565b620004508362000417565b840190509392505050565b600060608201905062000472600083018762000335565b81810360208301526200048781858762000428565b9050620004986040830184620003c9565b95945050505050565b6000606082019050620004b8600083018762000335565b620004c76020830186620003c9565b8181036040830152620004dc81848662000428565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005238262000222565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620005585762000557620004e7565b5b60018201905091905056fe60c06040523480156200001157600080fd5b5060405162001f2a38038062001f2a8339818101604052810190620000379190620003d1565b6000732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663cf35bdd0856040518263ffffffff1660e01b81526004016200008891906200045d565b600060405180830381865afa158015620000a6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620000d19190620003d1565b925050508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013d9062000501565b60405180910390fd5b836080818152505082600090816200015f919062000764565b508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505050506200084b565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001c781620001b2565b8114620001d357600080fd5b50565b600081519050620001e781620001bc565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200024282620001f7565b810181811067ffffffffffffffff8211171562000264576200026362000208565b5b80604052505050565b6000620002796200019e565b905062000287828262000237565b919050565b600067ffffffffffffffff821115620002aa57620002a962000208565b5b620002b582620001f7565b9050602081019050919050565b60005b83811015620002e2578082015181840152602081019050620002c5565b60008484015250505050565b600062000305620002ff846200028c565b6200026d565b905082815260208101848484011115620003245762000323620001f2565b5b62000331848285620002c2565b509392505050565b600082601f830112620003515762000350620001ed565b5b815162000363848260208601620002ee565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000399826200036c565b9050919050565b620003ab816200038c565b8114620003b757600080fd5b50565b600081519050620003cb81620003a0565b92915050565b600080600060608486031215620003ed57620003ec620001a8565b5b6000620003fd86828701620001d6565b935050602084015167ffffffffffffffff811115620004215762000420620001ad565b5b6200042f8682870162000339565b92505060406200044286828701620003ba565b9150509250925092565b6200045781620001b2565b82525050565b60006020820190506200047460008301846200044c565b92915050565b600082825260208201905092915050565b7f4f6e6c792063726561746f722063616e2063726561746520697473205370616360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000620004e96021836200047a565b9150620004f6826200048b565b604082019050919050565b600060208201905081810360008301526200051c81620004da565b9050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200057657607f821691505b6020821081036200058c576200058b6200052e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005b7565b620006028683620005b7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620006456200063f6200063984620001b2565b6200061a565b620001b2565b9050919050565b6000819050919050565b620006618362000624565b6200067962000670826200064c565b848454620005c4565b825550505050565b600090565b6200069062000681565b6200069d81848462000656565b505050565b5b81811015620006c557620006b960008262000686565b600181019050620006a3565b5050565b601f8211156200071457620006de8162000592565b620006e984620005a7565b81016020851015620006f9578190505b620007116200070885620005a7565b830182620006a2565b50505b505050565b600082821c905092915050565b6000620007396000198460080262000719565b1980831691505092915050565b600062000754838362000726565b9150826002028217905092915050565b6200076f8262000523565b67ffffffffffffffff8111156200078b576200078a62000208565b5b6200079782546200055d565b620007a4828285620006c9565b600060209050601f831160018114620007dc5760008415620007c7578287015190505b620007d3858262000746565b86555062000843565b601f198416620007ec8662000592565b60005b828110156200081657848901518255600182019150602085019450602081019050620007ef565b8683101562000836578489015162000832601f89168262000726565b8355505b6001600288020188555050505b505050505050565b60805160a05161169d6200088d600039600081816103c7015281816108e60152610a1001526000818161038b01528181610487015261057d015261169d6000f3fe6080604052600436106100ab5760003560e01c80638cd06722116100645780638cd06722146101d95780638da5cb5b14610202578063bc197c811461022d578063e80624661461026a578063ed2b6dc714610293578063f23a6e61146102be576100b2565b806306fdde03146100b75780631c9930a0146100e257806335a029351461010d578063460ddf8d1461014a57806346f81a87146101735780636c961cdb1461019c576100b2565b366100b257005b600080fd5b3480156100c357600080fd5b506100cc6102fb565b6040516100d99190610c2b565b60405180910390f35b3480156100ee57600080fd5b506100f7610389565b6040516101049190610c66565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190610cb7565b6103ad565b6040516101419190610c66565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c9190610ce4565b6103c5565b005b34801561017f57600080fd5b5061019a60048036038101906101959190610d89565b6105f1565b005b3480156101a857600080fd5b506101c360048036038101906101be9190610cb7565b6108b1565b6040516101d09190610e2a565b60405180910390f35b3480156101e557600080fd5b5061020060048036038101906101fb9190610e9b565b6108e4565b005b34801561020e57600080fd5b50610217610a0e565b6040516102249190610e2a565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190610f6a565b610a32565b6040516102619190611081565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190610cb7565b610a4a565b005b34801561029f57600080fd5b506102a8610b6d565b6040516102b591906110fb565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190611116565b610b85565b6040516102f29190611081565b60405180910390f35b60008054610308906111df565b80601f0160208091040260200160405190810160405280929190818152602001828054610334906111df565b80156103815780601f1061035657610100808354040283529160200191610381565b820191906000526020600020905b81548152906001019060200180831161036457829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915090505481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044a9061125c565b60405180910390fd5b6000732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663063a741f7f0000000000000000000000000000000000000000000000000000000000000000856040518363ffffffff1660e01b81526004016104c492919061127c565b602060405180830381865afa1580156104e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050591906112ba565b90508181111561054a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054190611333565b60405180910390fd5b732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663d6febde8827f0000000000000000000000000000000000000000000000000000000000000000866040518463ffffffff1660e01b81526004016105ba92919061127c565b6000604051808303818588803b1580156105d357600080fd5b505af11580156105e7573d6000803e3d6000fd5b5050505050505050565b600081148061061457506000600160008381526020019081526020016000205414155b610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a9061139f565b60405180910390fd5b6000732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663e07b098a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d891906112ba565b905060008083036106e957816106eb565b825b9050806001600084815260200190815260200160002081905550336002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff1682827f445b8581f76aa0de52d44cd380e09371c172bb5b457f347937befae5053fc7d460405160405180910390a4732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663b6a46b3b86866040518363ffffffff1660e01b81526004016107eb9291906113fb565b600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b50505050732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663f242432a303385670de0b6b3a76400006040518563ffffffff1660e01b81526004016108789493929190611491565b600060405180830381600087803b15801561089257600080fd5b505af11580156108a6573d6000803e3d6000fd5b505050505050505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096990611535565b60405180910390fd5b60005b82829050811015610a09576001600084848481811061099757610996611555565b5b905060200201358152602001908152602001600020600090558282828181106109c3576109c2611555565b5b905060200201357f476e4aa4bb19dbdea8700b4db99d81ad2fefcf51924ba5d493b7be6393f8220160405160405180910390a28080610a01906115b3565b915050610975565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600063bc197c8160e01b905098975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae290611647565b60405180910390fd5b732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff16634cc82215826040518263ffffffff1660e01b8152600401610b389190610c66565b600060405180830381600087803b158015610b5257600080fd5b505af1158015610b66573d6000803e3d6000fd5b5050505050565b732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef81565b600063f23a6e6160e01b90509695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bd5578082015181840152602081019050610bba565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bfd82610b9b565b610c078185610ba6565b9350610c17818560208601610bb7565b610c2081610be1565b840191505092915050565b60006020820190508181036000830152610c458184610bf2565b905092915050565b6000819050919050565b610c6081610c4d565b82525050565b6000602082019050610c7b6000830184610c57565b92915050565b600080fd5b600080fd5b610c9481610c4d565b8114610c9f57600080fd5b50565b600081359050610cb181610c8b565b92915050565b600060208284031215610ccd57610ccc610c81565b5b6000610cdb84828501610ca2565b91505092915050565b60008060408385031215610cfb57610cfa610c81565b5b6000610d0985828601610ca2565b9250506020610d1a85828601610ca2565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610d4957610d48610d24565b5b8235905067ffffffffffffffff811115610d6657610d65610d29565b5b602083019150836001820283011115610d8257610d81610d2e565b5b9250929050565b600080600060408486031215610da257610da1610c81565b5b600084013567ffffffffffffffff811115610dc057610dbf610c86565b5b610dcc86828701610d33565b93509350506020610ddf86828701610ca2565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e1482610de9565b9050919050565b610e2481610e09565b82525050565b6000602082019050610e3f6000830184610e1b565b92915050565b60008083601f840112610e5b57610e5a610d24565b5b8235905067ffffffffffffffff811115610e7857610e77610d29565b5b602083019150836020820283011115610e9457610e93610d2e565b5b9250929050565b60008060208385031215610eb257610eb1610c81565b5b600083013567ffffffffffffffff811115610ed057610ecf610c86565b5b610edc85828601610e45565b92509250509250929050565b610ef181610e09565b8114610efc57600080fd5b50565b600081359050610f0e81610ee8565b92915050565b60008083601f840112610f2a57610f29610d24565b5b8235905067ffffffffffffffff811115610f4757610f46610d29565b5b602083019150836001820283011115610f6357610f62610d2e565b5b9250929050565b60008060008060008060008060a0898b031215610f8a57610f89610c81565b5b6000610f988b828c01610eff565b9850506020610fa98b828c01610eff565b975050604089013567ffffffffffffffff811115610fca57610fc9610c86565b5b610fd68b828c01610e45565b9650965050606089013567ffffffffffffffff811115610ff957610ff8610c86565b5b6110058b828c01610e45565b9450945050608089013567ffffffffffffffff81111561102857611027610c86565b5b6110348b828c01610f14565b92509250509295985092959890939650565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61107b81611046565b82525050565b60006020820190506110966000830184611072565b92915050565b6000819050919050565b60006110c16110bc6110b784610de9565b61109c565b610de9565b9050919050565b60006110d3826110a6565b9050919050565b60006110e5826110c8565b9050919050565b6110f5816110da565b82525050565b600060208201905061111060008301846110ec565b92915050565b60008060008060008060a0878903121561113357611132610c81565b5b600061114189828a01610eff565b965050602061115289828a01610eff565b955050604061116389828a01610ca2565b945050606061117489828a01610ca2565b935050608087013567ffffffffffffffff81111561119557611194610c86565b5b6111a189828a01610f14565b92509250509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806111f757607f821691505b60208210810361120a576112096111b0565b5b50919050565b7f4f6e6c79206f776e65722063616e206275796261636b00000000000000000000600082015250565b6000611246601683610ba6565b915061125182611210565b602082019050919050565b6000602082019050818103600083015261127581611239565b9050919050565b60006040820190506112916000830185610c57565b61129e6020830184610c57565b9392505050565b6000815190506112b481610c8b565b92915050565b6000602082840312156112d0576112cf610c81565b5b60006112de848285016112a5565b91505092915050565b7f507269636520746f6f2068696768000000000000000000000000000000000000600082015250565b600061131d600e83610ba6565b9150611328826112e7565b602082019050919050565b6000602082019050818103600083015261134c81611310565b9050919050565b7f506172656e74206e6f7420657869737473000000000000000000000000000000600082015250565b6000611389601183610ba6565b915061139482611353565b602082019050919050565b600060208201905081810360008301526113b88161137c565b9050919050565b82818337600083830152505050565b60006113da8385610ba6565b93506113e78385846113bf565b6113f083610be1565b840190509392505050565b600060208201905081810360008301526114168184866113ce565b90509392505050565b6000819050919050565b600061144461143f61143a8461141f565b61109c565b610c4d565b9050919050565b61145481611429565b82525050565b600082825260208201905092915050565b50565b600061147b60008361145a565b91506114868261146b565b600082019050919050565b600060a0820190506114a66000830187610e1b565b6114b36020830186610e1b565b6114c06040830185610c57565b6114cd606083018461144b565b81810360808301526114de8161146e565b905095945050505050565b7f4f6e6c79206f776e65722063616e2072656d6f76650000000000000000000000600082015250565b600061151f601583610ba6565b915061152a826114e9565b602082019050919050565b6000602082019050818103600083015261154e81611512565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115be82610c4d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036115f0576115ef611584565b5b600182019050919050565b7f4f6e6c792063726561746f722063616e2072656d6f7665000000000000000000600082015250565b6000611631601783610ba6565b915061163c826115fb565b602082019050919050565b6000602082019050818103600083015261166081611624565b905091905056fea2646970667358221220a09a910fcfcdec1dd3ef0a0515df3605c82f10367c68899de9083d622e0d3ef664736f6c63430008120033a2646970667358221220da9f90e268bf107360bf94ac536361601f1bf82e9a6463c7452468789aea334864736f6c63430008120033
Deployed Bytecode
0x60806040523480156200001157600080fd5b5060043610620000465760003560e01c80630118fa49146200004b5780634eb68762146200006b5780637586353b146200008d575b600080fd5b620000696004803603810190620000639190620002cb565b620000c3565b005b62000075620001d1565b60405162000084919062000346565b60405180910390f35b620000ab6004803603810190620000a5919062000363565b620001d7565b604051620000ba9190620003da565b60405180910390f35b600083838333604051620000d7906200020a565b620000e694939291906200045b565b604051809103906000f08015801562000103573d6000803e3d6000fd5b50905080600160008054815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838173ffffffffffffffffffffffffffffffffffffffff167f7301c17e7eed2f35b0b4384269e319c245be1e379fbfe6f0872f8cff3f5f21d8600054338787604051620001aa9493929190620004a1565b60405180910390a3600080815480929190620001c69062000516565b919050555050505050565b60005481565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f2a806200056483390190565b600080fd5b600080fd5b6000819050919050565b620002378162000222565b81146200024357600080fd5b50565b60008135905062000257816200022c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126200028557620002846200025d565b5b8235905067ffffffffffffffff811115620002a557620002a462000262565b5b602083019150836001820283011115620002c457620002c362000267565b5b9250929050565b600080600060408486031215620002e757620002e662000218565b5b6000620002f78682870162000246565b935050602084013567ffffffffffffffff8111156200031b576200031a6200021d565b5b62000329868287016200026c565b92509250509250925092565b620003408162000222565b82525050565b60006020820190506200035d600083018462000335565b92915050565b6000602082840312156200037c576200037b62000218565b5b60006200038c8482850162000246565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003c28262000395565b9050919050565b620003d481620003b5565b82525050565b6000602082019050620003f16000830184620003c9565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000620004368385620003f7565b93506200044583858462000408565b620004508362000417565b840190509392505050565b600060608201905062000472600083018762000335565b81810360208301526200048781858762000428565b9050620004986040830184620003c9565b95945050505050565b6000606082019050620004b8600083018762000335565b620004c76020830186620003c9565b8181036040830152620004dc81848662000428565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005238262000222565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620005585762000557620004e7565b5b60018201905091905056fe60c06040523480156200001157600080fd5b5060405162001f2a38038062001f2a8339818101604052810190620000379190620003d1565b6000732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663cf35bdd0856040518263ffffffff1660e01b81526004016200008891906200045d565b600060405180830381865afa158015620000a6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190620000d19190620003d1565b925050508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013d9062000501565b60405180910390fd5b836080818152505082600090816200015f919062000764565b508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505050506200084b565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001c781620001b2565b8114620001d357600080fd5b50565b600081519050620001e781620001bc565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200024282620001f7565b810181811067ffffffffffffffff8211171562000264576200026362000208565b5b80604052505050565b6000620002796200019e565b905062000287828262000237565b919050565b600067ffffffffffffffff821115620002aa57620002a962000208565b5b620002b582620001f7565b9050602081019050919050565b60005b83811015620002e2578082015181840152602081019050620002c5565b60008484015250505050565b600062000305620002ff846200028c565b6200026d565b905082815260208101848484011115620003245762000323620001f2565b5b62000331848285620002c2565b509392505050565b600082601f830112620003515762000350620001ed565b5b815162000363848260208601620002ee565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000399826200036c565b9050919050565b620003ab816200038c565b8114620003b757600080fd5b50565b600081519050620003cb81620003a0565b92915050565b600080600060608486031215620003ed57620003ec620001a8565b5b6000620003fd86828701620001d6565b935050602084015167ffffffffffffffff811115620004215762000420620001ad565b5b6200042f8682870162000339565b92505060406200044286828701620003ba565b9150509250925092565b6200045781620001b2565b82525050565b60006020820190506200047460008301846200044c565b92915050565b600082825260208201905092915050565b7f4f6e6c792063726561746f722063616e2063726561746520697473205370616360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000620004e96021836200047a565b9150620004f6826200048b565b604082019050919050565b600060208201905081810360008301526200051c81620004da565b9050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200057657607f821691505b6020821081036200058c576200058b6200052e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005b7565b620006028683620005b7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620006456200063f6200063984620001b2565b6200061a565b620001b2565b9050919050565b6000819050919050565b620006618362000624565b6200067962000670826200064c565b848454620005c4565b825550505050565b600090565b6200069062000681565b6200069d81848462000656565b505050565b5b81811015620006c557620006b960008262000686565b600181019050620006a3565b5050565b601f8211156200071457620006de8162000592565b620006e984620005a7565b81016020851015620006f9578190505b620007116200070885620005a7565b830182620006a2565b50505b505050565b600082821c905092915050565b6000620007396000198460080262000719565b1980831691505092915050565b600062000754838362000726565b9150826002028217905092915050565b6200076f8262000523565b67ffffffffffffffff8111156200078b576200078a62000208565b5b6200079782546200055d565b620007a4828285620006c9565b600060209050601f831160018114620007dc5760008415620007c7578287015190505b620007d3858262000746565b86555062000843565b601f198416620007ec8662000592565b60005b828110156200081657848901518255600182019150602085019450602081019050620007ef565b8683101562000836578489015162000832601f89168262000726565b8355505b6001600288020188555050505b505050505050565b60805160a05161169d6200088d600039600081816103c7015281816108e60152610a1001526000818161038b01528181610487015261057d015261169d6000f3fe6080604052600436106100ab5760003560e01c80638cd06722116100645780638cd06722146101d95780638da5cb5b14610202578063bc197c811461022d578063e80624661461026a578063ed2b6dc714610293578063f23a6e61146102be576100b2565b806306fdde03146100b75780631c9930a0146100e257806335a029351461010d578063460ddf8d1461014a57806346f81a87146101735780636c961cdb1461019c576100b2565b366100b257005b600080fd5b3480156100c357600080fd5b506100cc6102fb565b6040516100d99190610c2b565b60405180910390f35b3480156100ee57600080fd5b506100f7610389565b6040516101049190610c66565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190610cb7565b6103ad565b6040516101419190610c66565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c9190610ce4565b6103c5565b005b34801561017f57600080fd5b5061019a60048036038101906101959190610d89565b6105f1565b005b3480156101a857600080fd5b506101c360048036038101906101be9190610cb7565b6108b1565b6040516101d09190610e2a565b60405180910390f35b3480156101e557600080fd5b5061020060048036038101906101fb9190610e9b565b6108e4565b005b34801561020e57600080fd5b50610217610a0e565b6040516102249190610e2a565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190610f6a565b610a32565b6040516102619190611081565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190610cb7565b610a4a565b005b34801561029f57600080fd5b506102a8610b6d565b6040516102b591906110fb565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190611116565b610b85565b6040516102f29190611081565b60405180910390f35b60008054610308906111df565b80601f0160208091040260200160405190810160405280929190818152602001828054610334906111df565b80156103815780601f1061035657610100808354040283529160200191610381565b820191906000526020600020905b81548152906001019060200180831161036457829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915090505481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044a9061125c565b60405180910390fd5b6000732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663063a741f7f0000000000000000000000000000000000000000000000000000000000000000856040518363ffffffff1660e01b81526004016104c492919061127c565b602060405180830381865afa1580156104e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050591906112ba565b90508181111561054a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054190611333565b60405180910390fd5b732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663d6febde8827f0000000000000000000000000000000000000000000000000000000000000000866040518463ffffffff1660e01b81526004016105ba92919061127c565b6000604051808303818588803b1580156105d357600080fd5b505af11580156105e7573d6000803e3d6000fd5b5050505050505050565b600081148061061457506000600160008381526020019081526020016000205414155b610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a9061139f565b60405180910390fd5b6000732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663e07b098a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d891906112ba565b905060008083036106e957816106eb565b825b9050806001600084815260200190815260200160002081905550336002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff1682827f445b8581f76aa0de52d44cd380e09371c172bb5b457f347937befae5053fc7d460405160405180910390a4732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663b6a46b3b86866040518363ffffffff1660e01b81526004016107eb9291906113fb565b600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b50505050732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff1663f242432a303385670de0b6b3a76400006040518563ffffffff1660e01b81526004016108789493929190611491565b600060405180830381600087803b15801561089257600080fd5b505af11580156108a6573d6000803e3d6000fd5b505050505050505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096990611535565b60405180910390fd5b60005b82829050811015610a09576001600084848481811061099757610996611555565b5b905060200201358152602001908152602001600020600090558282828181106109c3576109c2611555565b5b905060200201357f476e4aa4bb19dbdea8700b4db99d81ad2fefcf51924ba5d493b7be6393f8220160405160405180910390a28080610a01906115b3565b915050610975565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600063bc197c8160e01b905098975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae290611647565b60405180910390fd5b732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef73ffffffffffffffffffffffffffffffffffffffff16634cc82215826040518263ffffffff1660e01b8152600401610b389190610c66565b600060405180830381600087803b158015610b5257600080fd5b505af1158015610b66573d6000803e3d6000fd5b5050505050565b732ad82a4e39bac43a54ddfe6f94980aaf0d1409ef81565b600063f23a6e6160e01b90509695505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bd5578082015181840152602081019050610bba565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bfd82610b9b565b610c078185610ba6565b9350610c17818560208601610bb7565b610c2081610be1565b840191505092915050565b60006020820190508181036000830152610c458184610bf2565b905092915050565b6000819050919050565b610c6081610c4d565b82525050565b6000602082019050610c7b6000830184610c57565b92915050565b600080fd5b600080fd5b610c9481610c4d565b8114610c9f57600080fd5b50565b600081359050610cb181610c8b565b92915050565b600060208284031215610ccd57610ccc610c81565b5b6000610cdb84828501610ca2565b91505092915050565b60008060408385031215610cfb57610cfa610c81565b5b6000610d0985828601610ca2565b9250506020610d1a85828601610ca2565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610d4957610d48610d24565b5b8235905067ffffffffffffffff811115610d6657610d65610d29565b5b602083019150836001820283011115610d8257610d81610d2e565b5b9250929050565b600080600060408486031215610da257610da1610c81565b5b600084013567ffffffffffffffff811115610dc057610dbf610c86565b5b610dcc86828701610d33565b93509350506020610ddf86828701610ca2565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e1482610de9565b9050919050565b610e2481610e09565b82525050565b6000602082019050610e3f6000830184610e1b565b92915050565b60008083601f840112610e5b57610e5a610d24565b5b8235905067ffffffffffffffff811115610e7857610e77610d29565b5b602083019150836020820283011115610e9457610e93610d2e565b5b9250929050565b60008060208385031215610eb257610eb1610c81565b5b600083013567ffffffffffffffff811115610ed057610ecf610c86565b5b610edc85828601610e45565b92509250509250929050565b610ef181610e09565b8114610efc57600080fd5b50565b600081359050610f0e81610ee8565b92915050565b60008083601f840112610f2a57610f29610d24565b5b8235905067ffffffffffffffff811115610f4757610f46610d29565b5b602083019150836001820283011115610f6357610f62610d2e565b5b9250929050565b60008060008060008060008060a0898b031215610f8a57610f89610c81565b5b6000610f988b828c01610eff565b9850506020610fa98b828c01610eff565b975050604089013567ffffffffffffffff811115610fca57610fc9610c86565b5b610fd68b828c01610e45565b9650965050606089013567ffffffffffffffff811115610ff957610ff8610c86565b5b6110058b828c01610e45565b9450945050608089013567ffffffffffffffff81111561102857611027610c86565b5b6110348b828c01610f14565b92509250509295985092959890939650565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61107b81611046565b82525050565b60006020820190506110966000830184611072565b92915050565b6000819050919050565b60006110c16110bc6110b784610de9565b61109c565b610de9565b9050919050565b60006110d3826110a6565b9050919050565b60006110e5826110c8565b9050919050565b6110f5816110da565b82525050565b600060208201905061111060008301846110ec565b92915050565b60008060008060008060a0878903121561113357611132610c81565b5b600061114189828a01610eff565b965050602061115289828a01610eff565b955050604061116389828a01610ca2565b945050606061117489828a01610ca2565b935050608087013567ffffffffffffffff81111561119557611194610c86565b5b6111a189828a01610f14565b92509250509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806111f757607f821691505b60208210810361120a576112096111b0565b5b50919050565b7f4f6e6c79206f776e65722063616e206275796261636b00000000000000000000600082015250565b6000611246601683610ba6565b915061125182611210565b602082019050919050565b6000602082019050818103600083015261127581611239565b9050919050565b60006040820190506112916000830185610c57565b61129e6020830184610c57565b9392505050565b6000815190506112b481610c8b565b92915050565b6000602082840312156112d0576112cf610c81565b5b60006112de848285016112a5565b91505092915050565b7f507269636520746f6f2068696768000000000000000000000000000000000000600082015250565b600061131d600e83610ba6565b9150611328826112e7565b602082019050919050565b6000602082019050818103600083015261134c81611310565b9050919050565b7f506172656e74206e6f7420657869737473000000000000000000000000000000600082015250565b6000611389601183610ba6565b915061139482611353565b602082019050919050565b600060208201905081810360008301526113b88161137c565b9050919050565b82818337600083830152505050565b60006113da8385610ba6565b93506113e78385846113bf565b6113f083610be1565b840190509392505050565b600060208201905081810360008301526114168184866113ce565b90509392505050565b6000819050919050565b600061144461143f61143a8461141f565b61109c565b610c4d565b9050919050565b61145481611429565b82525050565b600082825260208201905092915050565b50565b600061147b60008361145a565b91506114868261146b565b600082019050919050565b600060a0820190506114a66000830187610e1b565b6114b36020830186610e1b565b6114c06040830185610c57565b6114cd606083018461144b565b81810360808301526114de8161146e565b905095945050505050565b7f4f6e6c79206f776e65722063616e2072656d6f76650000000000000000000000600082015250565b600061151f601583610ba6565b915061152a826114e9565b602082019050919050565b6000602082019050818103600083015261154e81611512565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115be82610c4d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036115f0576115ef611584565b5b600182019050919050565b7f4f6e6c792063726561746f722063616e2072656d6f7665000000000000000000600082015250565b6000611631601783610ba6565b915061163c826115fb565b602082019050919050565b6000602082019050818103600083015261166081611624565b905091905056fea2646970667358221220a09a910fcfcdec1dd3ef0a0515df3605c82f10367c68899de9083d622e0d3ef664736f6c63430008120033a2646970667358221220da9f90e268bf107360bf94ac536361601f1bf82e9a6463c7452468789aea334864736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.