Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 165 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve And Exec... | 21978031 | 24 hrs ago | IN | 0 ETH | 0.00030814 | ||||
Approve And Exec... | 21978031 | 24 hrs ago | IN | 0 ETH | 0.00030814 | ||||
Approve And Exec... | 21978027 | 24 hrs ago | IN | 0 ETH | 0.00038403 | ||||
Approve And Exec... | 21978026 | 24 hrs ago | IN | 0 ETH | 0.00035907 | ||||
Approve And Exec... | 21978026 | 24 hrs ago | IN | 0 ETH | 0.00035907 | ||||
Approve And Exec... | 21978026 | 24 hrs ago | IN | 0 ETH | 0.00041286 | ||||
Approve And Exec... | 21978022 | 24 hrs ago | IN | 0 ETH | 0.00034697 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.00253782 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.00265243 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.00253776 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.00253776 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.0025377 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.0025377 | ||||
Proposal | 21970590 | 2 days ago | IN | 0 ETH | 0.00276704 | ||||
Approve And Exec... | 21965695 | 2 days ago | IN | 0 ETH | 0.00009792 | ||||
Proposal | 21935680 | 6 days ago | IN | 0 ETH | 0.00099469 | ||||
Approve And Exec... | 21927513 | 8 days ago | IN | 0 ETH | 0.00036834 | ||||
Proposal | 21921464 | 8 days ago | IN | 0 ETH | 0.00527333 | ||||
Approve And Exec... | 21376872 | 84 days ago | IN | 0 ETH | 0.00688969 | ||||
Approve And Exec... | 21376872 | 84 days ago | IN | 0 ETH | 0.00620947 | ||||
Approve And Exec... | 21376872 | 84 days ago | IN | 0 ETH | 0.0072522 | ||||
Approve And Exec... | 21376861 | 84 days ago | IN | 0 ETH | 0.00726687 | ||||
Approve And Exec... | 21376860 | 84 days ago | IN | 0 ETH | 0.00728526 | ||||
Approve And Exec... | 21376860 | 84 days ago | IN | 0 ETH | 0.00728509 | ||||
Approve And Exec... | 21376860 | 84 days ago | IN | 0 ETH | 0.00796986 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GroupApprove
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; import "./IMPC.sol"; import "./ICross.sol"; contract GroupApprove { struct Task { address to; bytes data; bool executed; } struct SigData { bytes32 sigHash; bytes32 smgID; bytes r; bytes32 s; } // slip-0044 standands chainId for local chain uint256 public chainId; uint256 public taskCount; address public foundation; address public signatureVerifier; address public oracle; // proposalId => task mapping(uint256 => Task) public tasks; enum GroupStatus { none, initial, curveSeted, failed, selected, ready, unregistered, dismissed } modifier onlyFoundation() { require(msg.sender == foundation, "not foundation"); _; } modifier onlySelf() { require(msg.sender == address(this), "not self"); _; } modifier onlySmg(uint proposalId, bytes32 smgID, bytes calldata r, bytes32 s) { bytes32 sigHash = keccak256(abi.encode(proposalId, chainId)); _verifyMpcSignature( SigData( sigHash, smgID, r, s ) ); _; } event Proposal( uint256 indexed proposalId, address indexed to, bytes data ); event ApprovedAndExecuted( uint256 indexed proposalId, address indexed to, bytes data, bytes32 smgID ); event TransferFoundation( address indexed oldFoundation, address indexed newFoundation ); error SignatureVerifyFailed( bytes32 smgID, bytes32 sigHash, bytes r, bytes32 s ); error StoremanGroupNotReady( bytes32 smgID, uint256 status, uint256 timestamp, uint256 startTime, uint256 endTime ); constructor(address _foundation, address _signatureVerifier, address _oracle, address _cross) { require(_foundation != address(0), "foundation is empty"); address _oracleCross; address _signatureVerifierCross; // cross check oracle and signatureVerifier address with cross contract (, _oracleCross, , , _signatureVerifierCross) = ICross(_cross).getPartners(); oracle = _oracle; signatureVerifier = _signatureVerifier; require(_oracle == _oracleCross, "oracle not match"); require(_signatureVerifier == _signatureVerifierCross, "signatureVerifier not match"); chainId = ICross(_cross).currentChainID(); // read from cross require(chainId != 0, "chainId is empty"); foundation = _foundation; } function proposal( uint256 _chainId, address _to, bytes memory _data ) external onlyFoundation { require(_data.length > 0, "data is empty"); require(_to != address(0), "to is empty"); require(_chainId == chainId, "chainId not match"); // save task tasks[taskCount] = Task(_to, _data, false); emit Proposal(taskCount, _to, _data); taskCount++; } function approveAndExecute( uint256 proposalId, bytes32 smgID, bytes calldata r, bytes32 s ) external onlySmg(proposalId, smgID, r, s) { Task storage task = tasks[proposalId]; require(task.to != address(0), "task not exists"); require(!task.executed, "task already executed"); (bool success, ) = task.to.call(task.data); require(success, "call failed"); task.executed = true; emit ApprovedAndExecuted(proposalId, task.to, task.data, smgID); } function halt(address _to, bool _halt) external onlyFoundation { ICross(_to).setHalt(_halt); } function transferFoundation(address _newFoundation) external onlySelf { require(_newFoundation != address(0), "new foundation is empty"); require(_newFoundation != foundation, "new foundation is same as old"); foundation = _newFoundation; emit TransferFoundation(foundation, _newFoundation); } // -------- internal functions -------- /// @notice check the storeman group is ready or not /// @param smgID ID of storeman group /// @return curveID ID of elliptic curve /// @return PK PK of storeman group function _acquireReadySmgInfo(bytes32 smgID) internal view returns (uint curveID, bytes memory PK) { uint8 status; uint startTime; uint endTime; (,status,,,,curveID,,PK,,startTime,endTime) = IMPC(oracle).getStoremanGroupConfig(smgID); if (!(status == uint8(GroupStatus.ready) && block.timestamp >= startTime && block.timestamp <= endTime)) { revert StoremanGroupNotReady({ smgID: smgID, status: uint256(status), timestamp: block.timestamp, startTime: startTime, endTime: endTime }); } return (curveID, PK); } /// @notice convert bytes to bytes32 /// @param b bytes array /// @param offset offset of array to begin convert function _bytesToBytes32(bytes memory b, uint offset) internal pure returns (bytes32 result) { assembly { result := mload(add(add(b, offset), 32)) } } /** * @dev Verifies an MPC signature for a given message and Storeman Group ID * @param sig The signature to verify */ function _verifyMpcSignature(SigData memory sig) internal { uint curveID; bytes memory PK; // Acquire the curve ID and group public key for the given Storeman Group ID (curveID, PK) = _acquireReadySmgInfo(sig.smgID); // Extract the X and Y components of the group public key bytes32 PKx = _bytesToBytes32(PK, 0); bytes32 PKy = _bytesToBytes32(PK, 32); // Extract the X and Y components of the signature bytes32 Rx = _bytesToBytes32(sig.r, 0); bytes32 Ry = _bytesToBytes32(sig.r, 32); // Verify the signature using the Wanchain MPC contract if (!IMPC(signatureVerifier).verify(curveID, sig.s, PKx, PKy, Rx, Ry, sig.sigHash)) { revert SignatureVerifyFailed({ smgID: sig.smgID, sigHash: sig.sigHash, r: sig.r, s: sig.s }); } } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface ICross { function setHalt(bool) external; function getPartners() external view returns(address tokenManager, address smgAdminProxy, address smgFeeProxy, address quota, address sigVerifier); function currentChainID() external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface IMPC { /** * @dev Retrieves the configuration of a Storeman Group by ID * @param id The ID of the Storeman Group to retrieve * @return groupId The group ID of the Storeman Group * @return status The status of the Storeman Group * @return deposit The deposit amount of the Storeman Group * @return chain1 The ID of the first chain supported by the Storeman Group * @return chain2 The ID of the second chain supported by the Storeman Group * @return curve1 The ID of the first elliptic curve supported by the Storeman Group * @return curve2 The ID of the second elliptic curve supported by the Storeman Group * @return gpk1 The Group Public Key for the first elliptic curve * @return gpk2 The Group Public Key for the second elliptic curve * @return startTime The start time of the Storeman Group * @return endTime The end time of the Storeman Group */ function getStoremanGroupConfig( bytes32 id ) external view returns ( bytes32 groupId, uint8 status, uint deposit, uint chain1, uint chain2, uint curve1, uint curve2, bytes memory gpk1, bytes memory gpk2, uint startTime, uint endTime ); /** * @dev Verifies a signature using the provided parameters * @param curveId The ID of the elliptic curve used for the signature * @param signature The signature to be verified * @param groupKeyX The X component of the group public key * @param groupKeyY The Y component of the group public key * @param randomPointX The X component of the random point * @param randomPointY The Y component of the random point * @param message The message that was signed * @return true if the signature is valid, false otherwise */ function verify( uint curveId, bytes32 signature, bytes32 groupKeyX, bytes32 groupKeyY, bytes32 randomPointX, bytes32 randomPointY, bytes32 message ) external returns (bool); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_foundation","type":"address"},{"internalType":"address","name":"_signatureVerifier","type":"address"},{"internalType":"address","name":"_oracle","type":"address"},{"internalType":"address","name":"_cross","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"smgID","type":"bytes32"},{"internalType":"bytes32","name":"sigHash","type":"bytes32"},{"internalType":"bytes","name":"r","type":"bytes"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"SignatureVerifyFailed","type":"error"},{"inputs":[{"internalType":"bytes32","name":"smgID","type":"bytes32"},{"internalType":"uint256","name":"status","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"StoremanGroupNotReady","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"smgID","type":"bytes32"}],"name":"ApprovedAndExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Proposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldFoundation","type":"address"},{"indexed":true,"internalType":"address","name":"newFoundation","type":"address"}],"name":"TransferFoundation","type":"event"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bytes32","name":"smgID","type":"bytes32"},{"internalType":"bytes","name":"r","type":"bytes"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"approveAndExecute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"foundation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bool","name":"_halt","type":"bool"}],"name":"halt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainId","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"proposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signatureVerifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taskCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tasks","outputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newFoundation","type":"address"}],"name":"transferFoundation","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200154a3803806200154a8339810160408190526200003491620002d1565b6001600160a01b038416620000905760405162461bcd60e51b815260206004820152601360248201527f666f756e646174696f6e20697320656d7074790000000000000000000000000060448201526064015b60405180910390fd5b600080826001600160a01b03166373e29b0d6040518163ffffffff1660e01b815260040160a060405180830381865afa158015620000d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f891906200032e565b600480546001600160a01b03199081166001600160a01b038c8116918217909355600380549092168d84161790915594975090955086169092149250620001789150505760405162461bcd60e51b815260206004820152601060248201526f0dee4c2c6d8ca40dcdee840dac2e8c6d60831b604482015260640162000087565b806001600160a01b0316856001600160a01b031614620001db5760405162461bcd60e51b815260206004820152601b60248201527f7369676e61747572655665726966696572206e6f74206d617463680000000000604482015260640162000087565b826001600160a01b031663b179e1e76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024091906200039e565b600081815503620002875760405162461bcd60e51b815260206004820152601060248201526f636861696e496420697320656d70747960801b604482015260640162000087565b5050600280546001600160a01b0319166001600160a01b03959095169490941790935550620003b8915050565b80516001600160a01b0381168114620002cc57600080fd5b919050565b60008060008060808587031215620002e857600080fd5b620002f385620002b4565b93506200030360208601620002b4565b92506200031360408601620002b4565b91506200032360608601620002b4565b905092959194509250565b600080600080600060a086880312156200034757600080fd5b6200035286620002b4565b94506200036260208701620002b4565b93506200037260408701620002b4565b92506200038260608701620002b4565b91506200039260808701620002b4565b90509295509295909350565b600060208284031215620003b157600080fd5b5051919050565b61118280620003c86000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638d977672116100665780638d97767214610121578063946951fb146101435780639a8a059214610156578063b6cb58a51461016d578063fde919f61461017657600080fd5b8063229bb7af146100a3578063320432d4146100b8578063413df8aa146100cb57806341fbb050146100de5780637dc0d1d01461010e575b600080fd5b6100b66100b1366004610b23565b610189565b005b6100b66100c6366004610bbd565b61037f565b6100b66100d9366004610bdf565b6104b9565b6002546100f1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6004546100f1906001600160a01b031681565b61013461012f366004610c67565b610723565b60405161010593929190610cd0565b6100b6610151366004610d17565b6107db565b61015f60005481565b604051908152602001610105565b61015f60015481565b6003546100f1906001600160a01b031681565b6002546001600160a01b031633146101d95760405162461bcd60e51b815260206004820152600e60248201526d3737ba103337bab73230ba34b7b760911b60448201526064015b60405180910390fd5b600081511161021a5760405162461bcd60e51b815260206004820152600d60248201526c6461746120697320656d70747960981b60448201526064016101d0565b6001600160a01b03821661025e5760405162461bcd60e51b815260206004820152600b60248201526a746f20697320656d70747960a81b60448201526064016101d0565b60005483146102a35760405162461bcd60e51b81526020600482015260116024820152700c6d0c2d2dc92c840dcdee840dac2e8c6d607b1b60448201526064016101d0565b604080516060810182526001600160a01b03848116825260208083018581526000848601819052600180548252600590935294909420835181546001600160a01b0319169316929092178255925191929091908201906103039082610dd3565b50604091820151600291909101805460ff191691151591909117905560015490516001600160a01b03841691907f4c589e53ce12231a0fbfdfff2a62db33943cd4b856b2bd59059f77d42a54c0399061035d908590610e93565b60405180910390a36001805490600061037583610ea6565b9190505550505050565b3330146103b95760405162461bcd60e51b81526020600482015260086024820152673737ba1039b2b63360c11b60448201526064016101d0565b6001600160a01b03811661040f5760405162461bcd60e51b815260206004820152601760248201527f6e657720666f756e646174696f6e20697320656d70747900000000000000000060448201526064016101d0565b6002546001600160a01b039081169082160361046d5760405162461bcd60e51b815260206004820152601d60248201527f6e657720666f756e646174696f6e2069732073616d65206173206f6c6400000060448201526064016101d0565b600280546001600160a01b0319166001600160a01b03831690811790915560405181907fc764c5bb0c90175b0736137bb096f668df98f6927dc0f46ac0326a96b446a49a90600090a350565b84848484846000856000546040516020016104de929190918252602082015260400190565b604051602081830303815290604052805190602001209050610554604051806080016040528083815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001849052610885565b60008b815260056020526040902080546001600160a01b03166105ab5760405162461bcd60e51b815260206004820152600f60248201526e7461736b206e6f742065786973747360881b60448201526064016101d0565b600281015460ff16156105f85760405162461bcd60e51b81526020600482015260156024820152741d185cdac8185b1c9958591e48195e1958dd5d1959605a1b60448201526064016101d0565b80546040516000916001600160a01b031690610618906001850190610ecd565b6000604051808303816000865af19150503d8060008114610655576040519150601f19603f3d011682016040523d82523d6000602084013e61065a565b606091505b50509050806106995760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101d0565b60018260020160006101000a81548160ff0219169083151502179055508160000160009054906101000a90046001600160a01b03166001600160a01b03168d7ff171265be1c5f8abad69597cc0df677443efea8c2e769e9709e08585f4ef58ac846001018f60405161070c929190610f43565b60405180910390a350505050505050505050505050565b600560205260009081526040902080546001820180546001600160a01b03909216929161074f90610d4e565b80601f016020809104026020016040519081016040528092919081815260200182805461077b90610d4e565b80156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b5050506002909301549192505060ff1683565b6002546001600160a01b031633146108265760405162461bcd60e51b815260206004820152600e60248201526d3737ba103337bab73230ba34b7b760911b60448201526064016101d0565b60405163f495438760e01b815281151560048201526001600160a01b0383169063f495438790602401600060405180830381600087803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b505050505050565b600060606108968360200151610994565b60208181015160408084015188820151808501519083015160035460608c01518c518651631161eded60e21b8152600481018c9052602481019290925260448201889052606482018690526084820185905260a4820184905260c48201529451989a509698509396919590946001600160a01b0390911692634587b7b49260e4808301939282900301816000875af1158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190610fd7565b61098b57602087015187516040808a015160608b01519151635d2d123b60e11b81526101d094939290600401610ff4565b50505050505050565b600480546040516344cefb6960e01b81526000926060928492839283926001600160a01b0316916344cefb69916109d1918a910190815260200190565b600060405180830381865afa1580156109ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a169190810190611082565b949e50919c50969a50985090965060059550610a33945050505050565b60ff168360ff16148015610a475750814210155b8015610a535750804211155b610a90576040516320b0fccf60e01b81526004810187905260ff84166024820152426044820152606481018390526084810182905260a4016101d0565b505050915091565b80356001600160a01b0381168114610aaf57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610af357610af3610ab4565b604052919050565b600067ffffffffffffffff821115610b1557610b15610ab4565b50601f01601f191660200190565b600080600060608486031215610b3857600080fd5b83359250610b4860208501610a98565b9150604084013567ffffffffffffffff811115610b6457600080fd5b8401601f81018613610b7557600080fd5b8035610b88610b8382610afb565b610aca565b818152876020838501011115610b9d57600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215610bcf57600080fd5b610bd882610a98565b9392505050565b600080600080600060808688031215610bf757600080fd5b8535945060208601359350604086013567ffffffffffffffff80821115610c1d57600080fd5b818801915088601f830112610c3157600080fd5b813581811115610c4057600080fd5b896020828501011115610c5257600080fd5b96999598505060200195606001359392505050565b600060208284031215610c7957600080fd5b5035919050565b60005b83811015610c9b578181015183820152602001610c83565b50506000910152565b60008151808452610cbc816020860160208601610c80565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201819052600090610cf490830185610ca4565b90508215156040830152949350505050565b8015158114610d1457600080fd5b50565b60008060408385031215610d2a57600080fd5b610d3383610a98565b91506020830135610d4381610d06565b809150509250929050565b600181811c90821680610d6257607f821691505b602082108103610d8257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610dce57600081815260208120601f850160051c81016020861015610daf5750805b601f850160051c820191505b8181101561087d57828155600101610dbb565b505050565b815167ffffffffffffffff811115610ded57610ded610ab4565b610e0181610dfb8454610d4e565b84610d88565b602080601f831160018114610e365760008415610e1e5750858301515b600019600386901b1c1916600185901b17855561087d565b600085815260208120601f198616915b82811015610e6557888601518255948401946001909101908401610e46565b5085821015610e835787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610bd86020830184610ca4565b600060018201610ec657634e487b7160e01b600052601160045260246000fd5b5060010190565b6000808354610edb81610d4e565b60018281168015610ef35760018114610f0857610f37565b60ff1984168752821515830287019450610f37565b8760005260208060002060005b85811015610f2e5781548a820152908401908201610f15565b50505082870194505b50929695505050505050565b604081526000808454610f5581610d4e565b8060408601526060600180841660008114610f775760018114610f9157610fc2565b60ff1985168884015283151560051b880183019550610fc2565b8960005260208060002060005b86811015610fb95781548b8201870152908401908201610f9e565b8a018501975050505b50505050506020929092019290925292915050565b600060208284031215610fe957600080fd5b8151610bd881610d06565b8481528360208201526080604082015260006110136080830185610ca4565b905082606083015295945050505050565b805160ff81168114610aaf57600080fd5b600082601f83011261104657600080fd5b8151611054610b8382610afb565b81815284602083860101111561106957600080fd5b61107a826020830160208701610c80565b949350505050565b60008060008060008060008060008060006101608c8e0312156110a457600080fd5b8b519a506110b460208d01611024565b995060408c0151985060608c0151975060808c0151965060a08c0151955060c08c0151945060e08c015167ffffffffffffffff8111156110f357600080fd5b6110ff8e828f01611035565b9450506101008c015167ffffffffffffffff81111561111d57600080fd5b6111298e828f01611035565b9350506101208c015191506101408c015190509295989b509295989b909396995056fea26469706673582212208aa41d784797fbe662af29227111c68a1c91aaa18fad12684e814e7fec327c1564736f6c634300081200330000000000000000000000004cf0a877e906dead748a41ae7da8c220e4247d9e0000000000000000000000009276ee38a5250e2f7fbe00a12ec17d09b5d28f3d000000000000000000000000bb38d10033b26f3836a8c1e41788206868b9f228000000000000000000000000fceaaaeb8d564a9d0e71ef36f027b9d162bc334e
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638d977672116100665780638d97767214610121578063946951fb146101435780639a8a059214610156578063b6cb58a51461016d578063fde919f61461017657600080fd5b8063229bb7af146100a3578063320432d4146100b8578063413df8aa146100cb57806341fbb050146100de5780637dc0d1d01461010e575b600080fd5b6100b66100b1366004610b23565b610189565b005b6100b66100c6366004610bbd565b61037f565b6100b66100d9366004610bdf565b6104b9565b6002546100f1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6004546100f1906001600160a01b031681565b61013461012f366004610c67565b610723565b60405161010593929190610cd0565b6100b6610151366004610d17565b6107db565b61015f60005481565b604051908152602001610105565b61015f60015481565b6003546100f1906001600160a01b031681565b6002546001600160a01b031633146101d95760405162461bcd60e51b815260206004820152600e60248201526d3737ba103337bab73230ba34b7b760911b60448201526064015b60405180910390fd5b600081511161021a5760405162461bcd60e51b815260206004820152600d60248201526c6461746120697320656d70747960981b60448201526064016101d0565b6001600160a01b03821661025e5760405162461bcd60e51b815260206004820152600b60248201526a746f20697320656d70747960a81b60448201526064016101d0565b60005483146102a35760405162461bcd60e51b81526020600482015260116024820152700c6d0c2d2dc92c840dcdee840dac2e8c6d607b1b60448201526064016101d0565b604080516060810182526001600160a01b03848116825260208083018581526000848601819052600180548252600590935294909420835181546001600160a01b0319169316929092178255925191929091908201906103039082610dd3565b50604091820151600291909101805460ff191691151591909117905560015490516001600160a01b03841691907f4c589e53ce12231a0fbfdfff2a62db33943cd4b856b2bd59059f77d42a54c0399061035d908590610e93565b60405180910390a36001805490600061037583610ea6565b9190505550505050565b3330146103b95760405162461bcd60e51b81526020600482015260086024820152673737ba1039b2b63360c11b60448201526064016101d0565b6001600160a01b03811661040f5760405162461bcd60e51b815260206004820152601760248201527f6e657720666f756e646174696f6e20697320656d70747900000000000000000060448201526064016101d0565b6002546001600160a01b039081169082160361046d5760405162461bcd60e51b815260206004820152601d60248201527f6e657720666f756e646174696f6e2069732073616d65206173206f6c6400000060448201526064016101d0565b600280546001600160a01b0319166001600160a01b03831690811790915560405181907fc764c5bb0c90175b0736137bb096f668df98f6927dc0f46ac0326a96b446a49a90600090a350565b84848484846000856000546040516020016104de929190918252602082015260400190565b604051602081830303815290604052805190602001209050610554604051806080016040528083815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001849052610885565b60008b815260056020526040902080546001600160a01b03166105ab5760405162461bcd60e51b815260206004820152600f60248201526e7461736b206e6f742065786973747360881b60448201526064016101d0565b600281015460ff16156105f85760405162461bcd60e51b81526020600482015260156024820152741d185cdac8185b1c9958591e48195e1958dd5d1959605a1b60448201526064016101d0565b80546040516000916001600160a01b031690610618906001850190610ecd565b6000604051808303816000865af19150503d8060008114610655576040519150601f19603f3d011682016040523d82523d6000602084013e61065a565b606091505b50509050806106995760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101d0565b60018260020160006101000a81548160ff0219169083151502179055508160000160009054906101000a90046001600160a01b03166001600160a01b03168d7ff171265be1c5f8abad69597cc0df677443efea8c2e769e9709e08585f4ef58ac846001018f60405161070c929190610f43565b60405180910390a350505050505050505050505050565b600560205260009081526040902080546001820180546001600160a01b03909216929161074f90610d4e565b80601f016020809104026020016040519081016040528092919081815260200182805461077b90610d4e565b80156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b5050506002909301549192505060ff1683565b6002546001600160a01b031633146108265760405162461bcd60e51b815260206004820152600e60248201526d3737ba103337bab73230ba34b7b760911b60448201526064016101d0565b60405163f495438760e01b815281151560048201526001600160a01b0383169063f495438790602401600060405180830381600087803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b505050505050565b600060606108968360200151610994565b60208181015160408084015188820151808501519083015160035460608c01518c518651631161eded60e21b8152600481018c9052602481019290925260448201889052606482018690526084820185905260a4820184905260c48201529451989a509698509396919590946001600160a01b0390911692634587b7b49260e4808301939282900301816000875af1158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190610fd7565b61098b57602087015187516040808a015160608b01519151635d2d123b60e11b81526101d094939290600401610ff4565b50505050505050565b600480546040516344cefb6960e01b81526000926060928492839283926001600160a01b0316916344cefb69916109d1918a910190815260200190565b600060405180830381865afa1580156109ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a169190810190611082565b949e50919c50969a50985090965060059550610a33945050505050565b60ff168360ff16148015610a475750814210155b8015610a535750804211155b610a90576040516320b0fccf60e01b81526004810187905260ff84166024820152426044820152606481018390526084810182905260a4016101d0565b505050915091565b80356001600160a01b0381168114610aaf57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610af357610af3610ab4565b604052919050565b600067ffffffffffffffff821115610b1557610b15610ab4565b50601f01601f191660200190565b600080600060608486031215610b3857600080fd5b83359250610b4860208501610a98565b9150604084013567ffffffffffffffff811115610b6457600080fd5b8401601f81018613610b7557600080fd5b8035610b88610b8382610afb565b610aca565b818152876020838501011115610b9d57600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215610bcf57600080fd5b610bd882610a98565b9392505050565b600080600080600060808688031215610bf757600080fd5b8535945060208601359350604086013567ffffffffffffffff80821115610c1d57600080fd5b818801915088601f830112610c3157600080fd5b813581811115610c4057600080fd5b896020828501011115610c5257600080fd5b96999598505060200195606001359392505050565b600060208284031215610c7957600080fd5b5035919050565b60005b83811015610c9b578181015183820152602001610c83565b50506000910152565b60008151808452610cbc816020860160208601610c80565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201819052600090610cf490830185610ca4565b90508215156040830152949350505050565b8015158114610d1457600080fd5b50565b60008060408385031215610d2a57600080fd5b610d3383610a98565b91506020830135610d4381610d06565b809150509250929050565b600181811c90821680610d6257607f821691505b602082108103610d8257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610dce57600081815260208120601f850160051c81016020861015610daf5750805b601f850160051c820191505b8181101561087d57828155600101610dbb565b505050565b815167ffffffffffffffff811115610ded57610ded610ab4565b610e0181610dfb8454610d4e565b84610d88565b602080601f831160018114610e365760008415610e1e5750858301515b600019600386901b1c1916600185901b17855561087d565b600085815260208120601f198616915b82811015610e6557888601518255948401946001909101908401610e46565b5085821015610e835787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610bd86020830184610ca4565b600060018201610ec657634e487b7160e01b600052601160045260246000fd5b5060010190565b6000808354610edb81610d4e565b60018281168015610ef35760018114610f0857610f37565b60ff1984168752821515830287019450610f37565b8760005260208060002060005b85811015610f2e5781548a820152908401908201610f15565b50505082870194505b50929695505050505050565b604081526000808454610f5581610d4e565b8060408601526060600180841660008114610f775760018114610f9157610fc2565b60ff1985168884015283151560051b880183019550610fc2565b8960005260208060002060005b86811015610fb95781548b8201870152908401908201610f9e565b8a018501975050505b50505050506020929092019290925292915050565b600060208284031215610fe957600080fd5b8151610bd881610d06565b8481528360208201526080604082015260006110136080830185610ca4565b905082606083015295945050505050565b805160ff81168114610aaf57600080fd5b600082601f83011261104657600080fd5b8151611054610b8382610afb565b81815284602083860101111561106957600080fd5b61107a826020830160208701610c80565b949350505050565b60008060008060008060008060008060006101608c8e0312156110a457600080fd5b8b519a506110b460208d01611024565b995060408c0151985060608c0151975060808c0151965060a08c0151955060c08c0151945060e08c015167ffffffffffffffff8111156110f357600080fd5b6110ff8e828f01611035565b9450506101008c015167ffffffffffffffff81111561111d57600080fd5b6111298e828f01611035565b9350506101208c015191506101408c015190509295989b509295989b909396995056fea26469706673582212208aa41d784797fbe662af29227111c68a1c91aaa18fad12684e814e7fec327c1564736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004cf0a877e906dead748a41ae7da8c220e4247d9e0000000000000000000000009276ee38a5250e2f7fbe00a12ec17d09b5d28f3d000000000000000000000000bb38d10033b26f3836a8c1e41788206868b9f228000000000000000000000000fceaaaeb8d564a9d0e71ef36f027b9d162bc334e
-----Decoded View---------------
Arg [0] : _foundation (address): 0x4Cf0A877E906DEaD748A41aE7DA8c220E4247D9e
Arg [1] : _signatureVerifier (address): 0x9276ee38A5250e2F7FbE00A12EC17d09b5d28F3d
Arg [2] : _oracle (address): 0xBb38d10033b26F3836A8c1E41788206868b9F228
Arg [3] : _cross (address): 0xfCeAAaEB8D564a9D0e71Ef36f027b9D162bC334e
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000004cf0a877e906dead748a41ae7da8c220e4247d9e
Arg [1] : 0000000000000000000000009276ee38a5250e2f7fbe00a12ec17d09b5d28f3d
Arg [2] : 000000000000000000000000bb38d10033b26f3836a8c1e41788206868b9f228
Arg [3] : 000000000000000000000000fceaaaeb8d564a9d0e71ef36f027b9d162bc334e
Deployed Bytecode Sourcemap
102:6443:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2676:435;;;;;;:::i;:::-;;:::i;:::-;;3774:329;;;;;;:::i;:::-;;:::i;3117:539::-;;;;;;:::i;:::-;;:::i;440:25::-;;;;;-1:-1:-1;;;;;440:25:0;;;;;;-1:-1:-1;;;;;2769:32:3;;;2751:51;;2739:2;2724:18;440:25:0;;;;;;;;509:21;;;;;-1:-1:-1;;;;;509:21:0;;;563:37;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;3662:106::-;;;;;;:::i;:::-;;:::i;382:22::-;;;;;;;;;4517:25:3;;;4505:2;4490:18;382:22:0;4371:177:3;410:24:0;;;;;;471:32;;;;;-1:-1:-1;;;;;471:32:0;;;2676:435;767:10;;-1:-1:-1;;;;;767:10:0;753;:24;745:51;;;;-1:-1:-1;;;745:51:0;;4755:2:3;745:51:0;;;4737:21:3;4794:2;4774:18;;;4767:30;-1:-1:-1;;;4813:18:3;;;4806:44;4867:18;;745:51:0;;;;;;;;;2833:1:::1;2818:5;:12;:16;2810:42;;;::::0;-1:-1:-1;;;2810:42:0;;5098:2:3;2810:42:0::1;::::0;::::1;5080:21:3::0;5137:2;5117:18;;;5110:30;-1:-1:-1;;;5156:18:3;;;5149:43;5209:18;;2810:42:0::1;4896:337:3::0;2810:42:0::1;-1:-1:-1::0;;;;;2870:17:0;::::1;2862:41;;;::::0;-1:-1:-1;;;2862:41:0;;5440:2:3;2862:41:0::1;::::0;::::1;5422:21:3::0;5479:2;5459:18;;;5452:30;-1:-1:-1;;;5498:18:3;;;5491:41;5549:18;;2862:41:0::1;5238:335:3::0;2862:41:0::1;2933:7;;2921:8;:19;2913:49;;;::::0;-1:-1:-1;;;2913:49:0;;5780:2:3;2913:49:0::1;::::0;::::1;5762:21:3::0;5819:2;5799:18;;;5792:30;-1:-1:-1;;;5838:18:3;;;5831:47;5895:18;;2913:49:0::1;5578:341:3::0;2913:49:0::1;3014:23;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;3014:23:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;3014:23:0;;;;;;;3001:9;;2995:16;;:5:::1;:16:::0;;;;;;;:42;;;;-1:-1:-1;;;;;;2995:42:0::1;::::0;::::1;::::0;;;::::1;::::0;;;;3014:23;;2995:16;;:42;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2995:42:0::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;2995:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;3061:9:0;3052:31;;-1:-1:-1;;;;;3052:31:0;::::1;::::0;3061:9;3052:31:::1;::::0;::::1;::::0;3077:5;;3052:31:::1;:::i;:::-;;;;;;;;3093:9;:11:::0;;;:9:::1;:11;::::0;::::1;:::i;:::-;;;;;;2676:435:::0;;;:::o;3774:329::-;858:10;880:4;858:27;850:48;;;;-1:-1:-1;;;850:48:0;;9168:2:3;850:48:0;;;9150:21:3;9207:1;9187:18;;;9180:29;-1:-1:-1;;;9225:18:3;;;9218:38;9273:18;;850:48:0;8966:331:3;850:48:0;-1:-1:-1;;;;;3862:28:0;::::1;3854:64;;;::::0;-1:-1:-1;;;3854:64:0;;9504:2:3;3854:64:0::1;::::0;::::1;9486:21:3::0;9543:2;9523:18;;;9516:30;9582:25;9562:18;;;9555:53;9625:18;;3854:64:0::1;9302:347:3::0;3854:64:0::1;3954:10;::::0;-1:-1:-1;;;;;3954:10:0;;::::1;3936:28:::0;;::::1;::::0;3928:70:::1;;;::::0;-1:-1:-1;;;3928:70:0;;9856:2:3;3928:70:0::1;::::0;::::1;9838:21:3::0;9895:2;9875:18;;;9868:30;9934:31;9914:18;;;9907:59;9983:18;;3928:70:0::1;9654:353:3::0;3928:70:0::1;4008:10;:27:::0;;-1:-1:-1;;;;;;4008:27:0::1;-1:-1:-1::0;;;;;4008:27:0;::::1;::::0;;::::1;::::0;;;4050:46:::1;::::0;4008:27;;4050:46:::1;::::0;-1:-1:-1;;4050:46:0::1;3774:329:::0;:::o;3117:539::-;3263:10;3275:5;3282:1;;3285;1010:15;1049:10;1061:7;;1038:31;;;;;;;;10186:25:3;;;10242:2;10227:18;;10220:34;10174:2;10159:18;;10012:248;1038:31:0;;;;;;;;;;;;;1028:42;;;;;;1010:60;;1080:102;1113:59;;;;;;;;1138:7;1113:59;;;;1147:5;1113:59;;;;1154:1;;1113:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1113:59:0;;;-1:-1:-1;1113:59:0;;;;;1080:19;:102::i;:::-;3298:17:::1;3318::::0;;;:5:::1;:17;::::0;;;;3353:7;;-1:-1:-1;;;;;3353:7:0::1;3345:49;;;::::0;-1:-1:-1;;;3345:49:0;;10467:2:3;3345:49:0::1;::::0;::::1;10449:21:3::0;10506:2;10486:18;;;10479:30;-1:-1:-1;;;10525:18:3;;;10518:45;10580:18;;3345:49:0::1;10265:339:3::0;3345:49:0::1;3413:13;::::0;::::1;::::0;::::1;;3412:14;3404:48;;;::::0;-1:-1:-1;;;3404:48:0;;10811:2:3;3404:48:0::1;::::0;::::1;10793:21:3::0;10850:2;10830:18;;;10823:30;-1:-1:-1;;;10869:18:3;;;10862:51;10930:18;;3404:48:0::1;10609:345:3::0;3404:48:0::1;3482:7:::0;;:23:::1;::::0;3464:12:::1;::::0;-1:-1:-1;;;;;3482:7:0::1;::::0;:23:::1;::::0;:7;3495:9;::::1;::::0;3482:23:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:42;;;3523:7;3515:31;;;::::0;-1:-1:-1;;;3515:31:0;;12006:2:3;3515:31:0::1;::::0;::::1;11988:21:3::0;12045:2;12025:18;;;12018:30;-1:-1:-1;;;12064:18:3;;;12057:41;12115:18;;3515:31:0::1;11804:335:3::0;3515:31:0::1;3572:4;3556;:13;;;:20;;;;;;;;;;;;;;;;;;3623:4;:7;;;;;;;;;;-1:-1:-1::0;;;;;3623:7:0::1;-1:-1:-1::0;;;;;3591:58:0::1;3611:10;3591:58;3632:4;:9;;3643:5;3591:58;;;;;;;:::i;:::-;;;;;;;;3288:368;;1000:200:::0;3117:539;;;;;;;;;;:::o;563:37::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;563:37:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;563:37:0;;;;;;;-1:-1:-1;;563:37:0;;;:::o;3662:106::-;767:10;;-1:-1:-1;;;;;767:10:0;753;:24;745:51;;;;-1:-1:-1;;;745:51:0;;4755:2:3;745:51:0;;;4737:21:3;4794:2;4774:18;;;4767:30;-1:-1:-1;;;4813:18:3;;;4806:44;4867:18;;745:51:0;4553:338:3;745:51:0;3735:26:::1;::::0;-1:-1:-1;;;3735:26:0;;13354:14:3;;13347:22;3735:26:0::1;::::0;::::1;13329:41:3::0;-1:-1:-1;;;;;3735:19:0;::::1;::::0;::::1;::::0;13302:18:3;;3735:26:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3662:106:::0;;:::o;5620:923::-;5688:12;5710:15;5837:31;5858:3;:9;;;5837:20;:31::i;:::-;5456:2;5436:23;;;5430:30;5436:23;;;;5430:30;6127:5;;;;5436:23;;;5430:30;5436:23;;;5430:30;6270:17;;6305:5;;;;6330:11;;6265:77;;-1:-1:-1;;;6265:77:0;;;;;13696:25:3;;;13737:18;;;13730:34;;;;13780:18;;;13773:34;;;13823:18;;;13816:34;;;13866:19;;;13859:35;;;13910:19;;;13903:35;;;13954:19;;;13947:35;6265:77:0;;5821:47;;-1:-1:-1;5436:23:0;;-1:-1:-1;5430:30:0;;;;;;-1:-1:-1;;;;;6270:17:0;;;;6265:30;;13668:19:3;;;;;5456:2:0;6265:77;;;;;5945:11;6270:17;6265:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6260:277;;6412:9;;;;6448:11;;6480:5;;;;;6506;;;;6365:161;;-1:-1:-1;;;6365:161:0;;;;6412:9;6448:11;6506:5;6365:161;;;:::i;6260:277::-;5678:865;;;;;;5620:923;:::o;4450:702::-;4706:6;;;4701:42;;-1:-1:-1;;;4701:42:0;;4542:12;;4556:15;;4542:12;;;;;;-1:-1:-1;;;;;4706:6:0;;4701:35;;:42;;4737:5;;4701:42;4517:25:3;;;4505:2;4490:18;;4371:177;4701:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4701:42:0;;;;;;;;;;;;:::i;:::-;4655:88;;-1:-1:-1;4655:88:0;;-1:-1:-1;4655:88:0;;-1:-1:-1;4655:88:0;-1:-1:-1;4655:88:0;;-1:-1:-1;4776:17:0;;-1:-1:-1;4770:24:0;;-1:-1:-1;;;;;4770:24:0;;4760:34;;:6;:34;;;:66;;;;;4817:9;4798:15;:28;;4760:66;:96;;;;;4849:7;4830:15;:26;;4760:96;4754:361;;4880:224;;-1:-1:-1;;;4880:224:0;;;;;17001:25:3;;;4958:15:0;;;17042:18:3;;;17035:34;5002:15:0;17085:18:3;;;17078:34;17128:18;;;17121:34;;;17171:19;;;17164:35;;;16973:19;;4880:224:0;16742:463:3;4754:361:0;5125:20;;;4450:702;;;:::o;14:173:3:-;82:20;;-1:-1:-1;;;;;131:31:3;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:127::-;253:10;248:3;244:20;241:1;234:31;284:4;281:1;274:15;308:4;305:1;298:15;324:275;395:2;389:9;460:2;441:13;;-1:-1:-1;;437:27:3;425:40;;495:18;480:34;;516:22;;;477:62;474:88;;;542:18;;:::i;:::-;578:2;571:22;324:275;;-1:-1:-1;324:275:3:o;604:186::-;652:4;685:18;677:6;674:30;671:56;;;707:18;;:::i;:::-;-1:-1:-1;773:2:3;752:15;-1:-1:-1;;748:29:3;779:4;744:40;;604:186::o;795:813::-;881:6;889;897;950:2;938:9;929:7;925:23;921:32;918:52;;;966:1;963;956:12;918:52;1002:9;989:23;979:33;;1031:38;1065:2;1054:9;1050:18;1031:38;:::i;:::-;1021:48;;1120:2;1109:9;1105:18;1092:32;1147:18;1139:6;1136:30;1133:50;;;1179:1;1176;1169:12;1133:50;1202:22;;1255:4;1247:13;;1243:27;-1:-1:-1;1233:55:3;;1284:1;1281;1274:12;1233:55;1320:2;1307:16;1345:48;1361:31;1389:2;1361:31;:::i;:::-;1345:48;:::i;:::-;1416:2;1409:5;1402:17;1456:7;1451:2;1446;1442;1438:11;1434:20;1431:33;1428:53;;;1477:1;1474;1467:12;1428:53;1532:2;1527;1523;1519:11;1514:2;1507:5;1503:14;1490:45;1576:1;1571:2;1566;1559:5;1555:14;1551:23;1544:34;1597:5;1587:15;;;;;795:813;;;;;:::o;1613:186::-;1672:6;1725:2;1713:9;1704:7;1700:23;1696:32;1693:52;;;1741:1;1738;1731:12;1693:52;1764:29;1783:9;1764:29;:::i;:::-;1754:39;1613:186;-1:-1:-1;;;1613:186:3:o;1804:796::-;1901:6;1909;1917;1925;1933;1986:3;1974:9;1965:7;1961:23;1957:33;1954:53;;;2003:1;2000;1993:12;1954:53;2039:9;2026:23;2016:33;;2096:2;2085:9;2081:18;2068:32;2058:42;;2151:2;2140:9;2136:18;2123:32;2174:18;2215:2;2207:6;2204:14;2201:34;;;2231:1;2228;2221:12;2201:34;2269:6;2258:9;2254:22;2244:32;;2314:7;2307:4;2303:2;2299:13;2295:27;2285:55;;2336:1;2333;2326:12;2285:55;2376:2;2363:16;2402:2;2394:6;2391:14;2388:34;;;2418:1;2415;2408:12;2388:34;2463:7;2458:2;2449:6;2445:2;2441:15;2437:24;2434:37;2431:57;;;2484:1;2481;2474:12;2431:57;1804:796;;;;-1:-1:-1;;2515:2:3;2507:11;;2590:2;2575:18;2562:32;;1804:796;-1:-1:-1;;;1804:796:3:o;2813:180::-;2872:6;2925:2;2913:9;2904:7;2900:23;2896:32;2893:52;;;2941:1;2938;2931:12;2893:52;-1:-1:-1;2964:23:3;;2813:180;-1:-1:-1;2813:180:3:o;2998:250::-;3083:1;3093:113;3107:6;3104:1;3101:13;3093:113;;;3183:11;;;3177:18;3164:11;;;3157:39;3129:2;3122:10;3093:113;;;-1:-1:-1;;3240:1:3;3222:16;;3215:27;2998:250::o;3253:270::-;3294:3;3332:5;3326:12;3359:6;3354:3;3347:19;3375:76;3444:6;3437:4;3432:3;3428:14;3421:4;3414:5;3410:16;3375:76;:::i;:::-;3505:2;3484:15;-1:-1:-1;;3480:29:3;3471:39;;;;3512:4;3467:50;;3253:270;-1:-1:-1;;3253:270:3:o;3528:395::-;-1:-1:-1;;;;;3725:32:3;;3707:51;;3794:2;3789;3774:18;;3767:30;;;-1:-1:-1;;3814:44:3;;3839:18;;3831:6;3814:44;:::i;:::-;3806:52;;3908:6;3901:14;3894:22;3889:2;3878:9;3874:18;3867:50;3528:395;;;;;;:::o;3928:118::-;4014:5;4007:13;4000:21;3993:5;3990:32;3980:60;;4036:1;4033;4026:12;3980:60;3928:118;:::o;4051:315::-;4116:6;4124;4177:2;4165:9;4156:7;4152:23;4148:32;4145:52;;;4193:1;4190;4183:12;4145:52;4216:29;4235:9;4216:29;:::i;:::-;4206:39;;4295:2;4284:9;4280:18;4267:32;4308:28;4330:5;4308:28;:::i;:::-;4355:5;4345:15;;;4051:315;;;;;:::o;5924:380::-;6003:1;5999:12;;;;6046;;;6067:61;;6121:4;6113:6;6109:17;6099:27;;6067:61;6174:2;6166:6;6163:14;6143:18;6140:38;6137:161;;6220:10;6215:3;6211:20;6208:1;6201:31;6255:4;6252:1;6245:15;6283:4;6280:1;6273:15;6137:161;;5924:380;;;:::o;6434:544::-;6535:2;6530:3;6527:11;6524:448;;;6571:1;6596:5;6592:2;6585:17;6641:4;6637:2;6627:19;6711:2;6699:10;6695:19;6692:1;6688:27;6682:4;6678:38;6747:4;6735:10;6732:20;6729:47;;;-1:-1:-1;6770:4:3;6729:47;6825:2;6820:3;6816:12;6813:1;6809:20;6803:4;6799:31;6789:41;;6880:82;6898:2;6891:5;6888:13;6880:82;;;6943:17;;;6924:1;6913:13;6880:82;;6524:448;6434:544;;;:::o;7154:1348::-;7278:3;7272:10;7305:18;7297:6;7294:30;7291:56;;;7327:18;;:::i;:::-;7356:96;7445:6;7405:38;7437:4;7431:11;7405:38;:::i;:::-;7399:4;7356:96;:::i;:::-;7507:4;;7571:2;7560:14;;7588:1;7583:662;;;;8289:1;8306:6;8303:89;;;-1:-1:-1;8358:19:3;;;8352:26;8303:89;-1:-1:-1;;7111:1:3;7107:11;;;7103:24;7099:29;7089:40;7135:1;7131:11;;;7086:57;8405:81;;7553:943;;7583:662;6381:1;6374:14;;;6418:4;6405:18;;-1:-1:-1;;7619:20:3;;;7736:236;7750:7;7747:1;7744:14;7736:236;;;7839:19;;;7833:26;7818:42;;7931:27;;;;7899:1;7887:14;;;;7766:19;;7736:236;;;7740:3;8000:6;7991:7;7988:19;7985:201;;;8061:19;;;8055:26;-1:-1:-1;;8144:1:3;8140:14;;;8156:3;8136:24;8132:37;8128:42;8113:58;8098:74;;7985:201;-1:-1:-1;;;;;8232:1:3;8216:14;;;8212:22;8199:36;;-1:-1:-1;7154:1348:3:o;8507:217::-;8654:2;8643:9;8636:21;8617:4;8674:44;8714:2;8703:9;8699:18;8691:6;8674:44;:::i;8729:232::-;8768:3;8789:17;;;8786:140;;8848:10;8843:3;8839:20;8836:1;8829:31;8883:4;8880:1;8873:15;8911:4;8908:1;8901:15;8786:140;-1:-1:-1;8953:1:3;8942:13;;8729:232::o;10959:840::-;11085:3;11114:1;11147:6;11141:13;11177:36;11203:9;11177:36;:::i;:::-;11232:1;11249:18;;;11276:133;;;;11423:1;11418:356;;;;11242:532;;11276:133;-1:-1:-1;;11309:24:3;;11297:37;;11382:14;;11375:22;11363:35;;11354:45;;;-1:-1:-1;11276:133:3;;11418:356;11449:6;11446:1;11439:17;11479:4;11524:2;11521:1;11511:16;11549:1;11563:165;11577:6;11574:1;11571:13;11563:165;;;11655:14;;11642:11;;;11635:35;11698:16;;;;11592:10;;11563:165;;;11567:3;;;11757:6;11752:3;11748:16;11741:23;;11242:532;-1:-1:-1;11790:3:3;;10959:840;-1:-1:-1;;;;;;10959:840:3:o;12144:1040::-;12316:2;12305:9;12298:21;12279:4;12339:1;12372:6;12366:13;12402:36;12428:9;12402:36;:::i;:::-;12474:6;12469:2;12458:9;12454:18;12447:34;12500:2;12521:1;12553:2;12542:9;12538:18;12570:1;12565:158;;;;12737:1;12732:381;;;;12531:582;;12565:158;-1:-1:-1;;12613:24:3;;12593:18;;;12586:52;12691:14;;12684:22;12681:1;12677:30;12662:46;;12658:55;;;-1:-1:-1;12565:158:3;;12732:381;12763:6;12760:1;12753:17;12793:4;12838:2;12835:1;12825:16;12863:1;12877:180;12891:6;12888:1;12885:13;12877:180;;;12984:14;;12960:17;;;12956:26;;12949:50;13027:16;;;;12906:10;;12877:180;;;13081:17;;13077:26;;;-1:-1:-1;;;12531:582:3;-1:-1:-1;;;;;13164:4:3;13149:20;;;;13142:36;;;;13130:3;12144:1040;-1:-1:-1;;12144:1040:3:o;13993:245::-;14060:6;14113:2;14101:9;14092:7;14088:23;14084:32;14081:52;;;14129:1;14126;14119:12;14081:52;14161:9;14155:16;14180:28;14202:5;14180:28;:::i;14243:432::-;14474:6;14463:9;14456:25;14517:6;14512:2;14501:9;14497:18;14490:34;14560:3;14555:2;14544:9;14540:18;14533:31;14437:4;14581:45;14621:3;14610:9;14606:19;14598:6;14581:45;:::i;:::-;14573:53;;14662:6;14657:2;14646:9;14642:18;14635:34;14243:432;;;;;;;:::o;14862:160::-;14939:13;;14992:4;14981:16;;14971:27;;14961:55;;15012:1;15009;15002:12;15027:441;15080:5;15133:3;15126:4;15118:6;15114:17;15110:27;15100:55;;15151:1;15148;15141:12;15100:55;15180:6;15174:13;15211:48;15227:31;15255:2;15227:31;:::i;15211:48::-;15284:2;15275:7;15268:19;15330:3;15323:4;15318:2;15310:6;15306:15;15302:26;15299:35;15296:55;;;15347:1;15344;15337:12;15296:55;15360:77;15434:2;15427:4;15418:7;15414:18;15407:4;15399:6;15395:17;15360:77;:::i;:::-;15455:7;15027:441;-1:-1:-1;;;;15027:441:3:o;15473:1132::-;15649:6;15657;15665;15673;15681;15689;15697;15705;15713;15721;15729:7;15783:3;15771:9;15762:7;15758:23;15754:33;15751:53;;;15800:1;15797;15790:12;15751:53;15829:9;15823:16;15813:26;;15858:47;15901:2;15890:9;15886:18;15858:47;:::i;:::-;15848:57;;15945:2;15934:9;15930:18;15924:25;15914:35;;15989:2;15978:9;15974:18;15968:25;15958:35;;16033:3;16022:9;16018:19;16012:26;16002:36;;16078:3;16067:9;16063:19;16057:26;16047:36;;16123:3;16112:9;16108:19;16102:26;16092:36;;16172:3;16161:9;16157:19;16151:26;16200:18;16192:6;16189:30;16186:50;;;16232:1;16229;16222:12;16186:50;16255:60;16307:7;16298:6;16287:9;16283:22;16255:60;:::i;:::-;16245:70;;;16361:3;16350:9;16346:19;16340:26;16391:18;16381:8;16378:32;16375:52;;;16423:1;16420;16413:12;16375:52;16446:62;16500:7;16489:8;16478:9;16474:24;16446:62;:::i;:::-;16436:72;;;16548:3;16537:9;16533:19;16527:26;16517:36;;16594:3;16583:9;16579:19;16573:26;16562:37;;15473:1132;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://8aa41d784797fbe662af29227111c68a1c91aaa18fad12684e814e7fec327c15
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.