ETH Price: $2,286.58 (+5.84%)

Contract

0xA1223a59a55eAad135BCe9F513181C388072cC71
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve And Exec...219780312025-03-05 3:34:1124 hrs ago1741145651IN
0xA1223a59...88072cC71
0 ETH0.000308140.63752166
Approve And Exec...219780312025-03-05 3:34:1124 hrs ago1741145651IN
0xA1223a59...88072cC71
0 ETH0.000308140.63748996
Approve And Exec...219780272025-03-05 3:33:2324 hrs ago1741145603IN
0xA1223a59...88072cC71
0 ETH0.000384030.72367092
Approve And Exec...219780262025-03-05 3:33:1124 hrs ago1741145591IN
0xA1223a59...88072cC71
0 ETH0.000359070.74286648
Approve And Exec...219780262025-03-05 3:33:1124 hrs ago1741145591IN
0xA1223a59...88072cC71
0 ETH0.000359070.74286648
Approve And Exec...219780262025-03-05 3:33:1124 hrs ago1741145591IN
0xA1223a59...88072cC71
0 ETH0.000412860.74286648
Approve And Exec...219780222025-03-05 3:32:2324 hrs ago1741145543IN
0xA1223a59...88072cC71
0 ETH0.000346970.71785592
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.002537825
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.002652435
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.002537765
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.002537765
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.00253775
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.00253775
Proposal219705902025-03-04 2:38:232 days ago1741055903IN
0xA1223a59...88072cC71
0 ETH0.002767045
Approve And Exec...219656952025-03-03 10:14:472 days ago1740996887IN
0xA1223a59...88072cC71
0 ETH0.000097920.66466621
Proposal219356802025-02-27 5:47:596 days ago1740635279IN
0xA1223a59...88072cC71
0 ETH0.000994697.81933755
Approve And Exec...219275132025-02-26 2:26:358 days ago1740536795IN
0xA1223a59...88072cC71
0 ETH0.000368340.73095731
Proposal219214642025-02-25 6:10:358 days ago1740463835IN
0xA1223a59...88072cC71
0 ETH0.0052733310
Approve And Exec...213768722024-12-11 4:25:5984 days ago1733891159IN
0xA1223a59...88072cC71
0 ETH0.0068896914.3896791
Approve And Exec...213768722024-12-11 4:25:5984 days ago1733891159IN
0xA1223a59...88072cC71
0 ETH0.0062094714.39158146
Approve And Exec...213768722024-12-11 4:25:5984 days ago1733891159IN
0xA1223a59...88072cC71
0 ETH0.007252214.39158146
Approve And Exec...213768612024-12-11 4:23:4784 days ago1733891027IN
0xA1223a59...88072cC71
0 ETH0.0072668714.4394125
Approve And Exec...213768602024-12-11 4:23:3584 days ago1733891015IN
0xA1223a59...88072cC71
0 ETH0.0072852614.47594621
Approve And Exec...213768602024-12-11 4:23:3584 days ago1733891015IN
0xA1223a59...88072cC71
0 ETH0.0072850914.47594621
Approve And Exec...213768602024-12-11 4:23:3584 days ago1733891015IN
0xA1223a59...88072cC71
0 ETH0.0079698614.47594621
View all transactions

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

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 3 : GroupApprove.sol
// 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
            });
        }
    }
}

File 2 of 3 : ICross.sol
// 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);
}

File 3 of 3 : IMPC.sol
// 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);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

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"}]

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.