ETH Price: $3,479.67 (-1.05%)
Gas: 5 Gwei

Contract

0x7Cd5E2d0056a7A7F09CBb86e540Ef4f6dCcc97dd
 
Transaction Hash
Method
Block
From
To
Swap Snx For Eth154048852022-08-24 20:04:18698 days ago1661371458IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0176595919.51604278
Vest154048782022-08-24 20:02:21698 days ago1661371341IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.002578218.75819014
Vest153919312022-08-22 18:41:03700 days ago1661193663IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.002424814.5445222
Swap Snx For Eth152697102022-08-03 13:23:31719 days ago1659533011IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0132818914.67422896
Vest152696902022-08-03 13:17:52719 days ago1659532672IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0021369712.44583272
Swap Snx For Eth151661902022-07-18 10:55:51735 days ago1658141751IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0108845312.02614239
Vest151661802022-07-18 10:54:19735 days ago1658141659IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0026741515.68907526
Swap Snx For Eth150386932022-06-28 8:02:10755 days ago1656403330IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0230044225.40442985
Vest150386892022-06-28 8:01:09755 days ago1656403269IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.00490427.01824925
Swap Snx For Eth146275522022-04-21 9:35:52823 days ago1650533752IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0325544542.68137752
Vest146275472022-04-21 9:34:20823 days ago1650533660IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0068301441.08581683
Swap Snx For Eth144229912022-03-20 11:29:28855 days ago1647775768IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0095528612.52136353
Vest144229832022-03-20 11:28:00855 days ago1647775680IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0019571712.04095366
Swap Snx For Eth142951762022-02-28 14:29:30875 days ago1646058570IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0425681155.7924291
Vest142951682022-02-28 14:27:42875 days ago1646058462IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0087367351.42158377
Swap Snx For Eth139568422022-01-07 7:01:01927 days ago1641538861IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.056902275
Vest139538452022-01-06 19:44:21928 days ago1641498261IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.02078952124.18922347
Swap Snx For Eth137276022021-12-02 13:28:24963 days ago1638451704IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0784386.8672477
Vest137275962021-12-02 13:26:55963 days ago1638451615IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.013731188.9055639
Swap Snx For Eth135940182021-11-11 9:08:22984 days ago1636621702IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.09022437118.28361308
Vest135939992021-11-11 9:04:59984 days ago1636621499IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.01954306147.88882712
Vest135498122021-11-04 10:56:40991 days ago1636023400IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.01798378117.59256808
Swap Snx For Eth134747432021-10-23 16:03:331003 days ago1635005013IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.048078753.22786558
Vest134747272021-10-23 15:59:561003 days ago1635004796IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.0077620150.75431869
Swap Snx For Eth133728342021-10-07 16:18:351019 days ago1633623515IN
0x7Cd5E2d0...6dCcc97dd
0 ETH0.08469988111
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
201006862024-06-16 0:11:5937 days ago1718496719
0x7Cd5E2d0...6dCcc97dd
0.14792354 ETH
195168892024-03-26 6:39:47118 days ago1711435187
0x7Cd5E2d0...6dCcc97dd
0.57481096 ETH
193573092024-03-03 21:25:47141 days ago1709501147
0x7Cd5E2d0...6dCcc97dd
1.66041781 ETH
190530602024-01-21 5:10:35183 days ago1705813835
0x7Cd5E2d0...6dCcc97dd
4.54860362 ETH
189989062024-01-13 15:36:59191 days ago1705160219
0x7Cd5E2d0...6dCcc97dd
3.27018518 ETH
189465972024-01-06 7:07:59198 days ago1704524879
0x7Cd5E2d0...6dCcc97dd
0.09986567 ETH
187332942023-12-07 8:42:11228 days ago1701938531
0x7Cd5E2d0...6dCcc97dd
0.06336813 ETH
184156712023-10-23 21:32:11273 days ago1698096731
0x7Cd5E2d0...6dCcc97dd
0.07479455 ETH
184156602023-10-23 21:29:59273 days ago1698096599
0x7Cd5E2d0...6dCcc97dd
1.04622263 ETH
183451042023-10-14 0:39:47283 days ago1697243987
0x7Cd5E2d0...6dCcc97dd
12.78977508 ETH
182244602023-09-27 3:36:23300 days ago1695785783
0x7Cd5E2d0...6dCcc97dd
2.0709461 ETH
181301302023-09-13 21:42:59313 days ago1694641379
0x7Cd5E2d0...6dCcc97dd
0.03968734 ETH
181279122023-09-13 14:15:11313 days ago1694614511
0x7Cd5E2d0...6dCcc97dd
0.76445904 ETH
181219262023-09-12 18:06:35314 days ago1694541995
0x7Cd5E2d0...6dCcc97dd
0.05541047 ETH
175250032023-06-21 2:15:59398 days ago1687313759
0x7Cd5E2d0...6dCcc97dd
2.335277 ETH
170134712023-04-09 21:48:23470 days ago1681076903
0x7Cd5E2d0...6dCcc97dd
0.54148679 ETH
169061312023-03-25 18:02:47485 days ago1679767367
0x7Cd5E2d0...6dCcc97dd
0.23802201 ETH
167090292023-02-26 1:04:59513 days ago1677373499
0x7Cd5E2d0...6dCcc97dd
0.05078462 ETH
165483752023-02-03 12:52:35535 days ago1675428755
0x7Cd5E2d0...6dCcc97dd
11.70893688 ETH
165483152023-02-03 12:40:35535 days ago1675428035
0x7Cd5E2d0...6dCcc97dd
42.81508207 ETH
164562712023-01-21 16:07:59548 days ago1674317279
0x7Cd5E2d0...6dCcc97dd
2.31430866 ETH
163070712022-12-31 20:15:47569 days ago1672517747
0x7Cd5E2d0...6dCcc97dd
0.58797642 ETH
162454242022-12-23 5:48:23577 days ago1671774503
0x7Cd5E2d0...6dCcc97dd
0.25016092 ETH
162342302022-12-21 16:20:23579 days ago1671639623
0x7Cd5E2d0...6dCcc97dd
0.25670067 ETH
162337862022-12-21 14:51:23579 days ago1671634283
0x7Cd5E2d0...6dCcc97dd
1.34136888 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xBDe69C75...e880E8314
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
xSNXAdminProxy

Compiler Version
v0.5.15+commit.6a57276f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-09-29
*/

// File: contracts/proxies/Proxy.sol

pragma solidity 0.5.15;

/**
 * @title Proxy - Generic proxy contract allows to execute all transactions
 */

contract Proxy {

    // storage position of the address of the current implementation
    bytes32 private constant IMPLEMENTATION_POSITION = keccak256("xsnx.implementationPosition");
    bytes32 private constant PROPOSED_IMPLEMENTATION_POSITION = keccak256("xsnx.proposedImplementationPosition");

    bytes32 private constant PROXY_ADMIN_POSITION = keccak256("xsnx.proxyAdmin");
    bytes32 private constant PROXY_COSIGNER1_POSITION = keccak256("xsnx.cosigner1");
    bytes32 private constant PROXY_COSIGNER2_POSITION = keccak256("xsnx.cosigner2");

    bytes32 private constant PROPOSED_NEW_ADMIN  = keccak256("xsnx.proposedNewAdmin");
    bytes32 private constant PROPOSED_NEW_ADMIN_TIMESTAMP  = keccak256("xsnx.proposedNewAdminTimestamp");

    modifier onlyProxyAdmin() {
        require(msg.sender == readAddressAtPosition(PROXY_ADMIN_POSITION));
        _;
    }

    modifier onlySigner() {
        address signer1 = readAddressAtPosition(PROXY_COSIGNER1_POSITION);
        address signer2 = readAddressAtPosition(PROXY_COSIGNER2_POSITION);
        require(msg.sender == signer1 || msg.sender == signer2);
        _;
    }

    /**
     * @dev Constructor function sets address of master copy contract.
     * @param implementation the address of the implementation contract that this proxy uses
     * @param proxyAdmin the address of the admin of this proxy
     * @param signer1 the first signer of this proxy
     * @param signer2 the second signer of this proxy
     */
    constructor(
        address implementation,
        address proxyAdmin,
        address signer1,
        address signer2
    ) public {
        require(
            implementation != address(0),
            "Invalid implementation address provided"
        );
        require(
            proxyAdmin != address(0),
            "Invalid proxyAdmin address provided"
        );
        require(signer1 != address(0), "Invalid signer1 address provided");
        require(signer2 != address(0), "Invalid signer2 address provided");
        require(signer1 != signer2, "Signers must have different addresses");
        setNewAddressAtPosition(IMPLEMENTATION_POSITION, implementation);
        setNewAddressAtPosition(PROXY_ADMIN_POSITION, proxyAdmin);
        setNewAddressAtPosition(PROXY_COSIGNER1_POSITION, signer1);
        setNewAddressAtPosition(PROXY_COSIGNER2_POSITION, signer2);
    }

    /**
     * @dev Proposes a new implementation contract for this proxy if sender is the Admin
     * @param newImplementation the address of the new implementation
     */
    function proposeNewImplementation(address newImplementation) public onlyProxyAdmin {
        require(newImplementation != address(0), "new proposed implementation cannot be address(0)");
        require(isContract(newImplementation), "new proposed implementation is not a contract");
        require(newImplementation != implementation(), "new proposed address cannot be the same as the current implementation address");
        setNewAddressAtPosition(PROPOSED_IMPLEMENTATION_POSITION, newImplementation);
    }

    /**
     * @dev Confirms a previously proposed implementation if the sender is one of the two cosigners
     * @param confirmedImplementation the address of previously proposed implementation (has to match the previously proposed implementation)
     */
    function confirmImplementation(address confirmedImplementation)
        public
        onlySigner
    {
        address proposedImplementation = readAddressAtPosition(
            PROPOSED_IMPLEMENTATION_POSITION
        );
        require(
            proposedImplementation != address(0),
            "proposed implementation cannot be address(0)"
        );
        require(
            confirmedImplementation == proposedImplementation,
            "proposed implementation doesn't match the confirmed implementation"
        );
        setNewAddressAtPosition(IMPLEMENTATION_POSITION, confirmedImplementation);
        setNewAddressAtPosition(PROPOSED_IMPLEMENTATION_POSITION, address(0));
    }

    /**
     * @dev Proposes a new admin address if the sender is the Admin
     * @param newAdminAddress address of the new admin role
     */
    function proposeAdminTransfer(address newAdminAddress) public onlyProxyAdmin {
        require(newAdminAddress != address(0), "new Admin address cannot be address(0)");
        setProposedAdmin(newAdminAddress);
    }


    /**
     * @dev Changes the admin address to the previously proposed admin address if 24 hours has past since it was proposed
     */
    function confirmAdminTransfer() public onlyProxyAdmin {
        address newAdminAddress = proposedNewAdmin();
        require(newAdminAddress != address(0), "new Admin address cannot be address(0)");
        require(proposedNewAdminTimestamp() <= block.timestamp, "admin change can only be submitted after 1 day");
        setProxyAdmin(newAdminAddress);
        setProposedAdmin(address(0));
    }

    /**
     * @dev Returns whether address is a contract
     */
    function isContract(address _addr) private view returns (bool){
        uint32 size;
        assembly {
            size := extcodesize(_addr)
        }
        return (size > 0);
    }

    /**
     * @dev Returns the address of the implementation contract of this proxy
     */
    function implementation() public view returns (address impl) {
        impl = readAddressAtPosition(IMPLEMENTATION_POSITION);
    }

    /**
     * @dev Returns the admin address of this proxy
     */
    function proxyAdmin() public view returns (address admin) {
        admin = readAddressAtPosition(PROXY_ADMIN_POSITION);
    }

    /**
     * @dev Returns the new proposed implementation address of this proxy (if there is no proposed implementations, returns address(0x0))
     */
    function proposedNewImplementation() public view returns (address impl) {
        impl = readAddressAtPosition(PROPOSED_IMPLEMENTATION_POSITION);
    }

    /**
     * @dev Returns the new proposed admin address of this proxy (if there is no proposed implementations, returns address(0x0))
     */
    function proposedNewAdmin() public view returns (address newAdmin) {
        newAdmin = readAddressAtPosition(PROPOSED_NEW_ADMIN);
    }

    /**
     * @dev Returns the timestamp that the proposed admin can be changed/confirmed
     */
    function proposedNewAdminTimestamp() public view returns (uint256 timestamp) {
        timestamp = readIntAtPosition(PROPOSED_NEW_ADMIN_TIMESTAMP);
    }

    /**
     * @dev Returns the address of the first cosigner if 'id' == 0, otherwise returns the address of the second cosigner
     */
    function proxySigner(uint256 id) public view returns (address signer) {
        if (id == 0) {
            signer = readAddressAtPosition(PROXY_COSIGNER1_POSITION);
        } else {
            signer = readAddressAtPosition(PROXY_COSIGNER2_POSITION);
        }
    }

    /**
     * @dev Returns the proxy type, specified by EIP-897
     * @return Always return 2
     **/
    function proxyType() public pure returns (uint256) {
        return 2; // type 2 is for upgradeable proxy as per EIP-897
    }


    function setProposedAdmin(address proposedAdmin) private {
        setNewAddressAtPosition(PROPOSED_NEW_ADMIN, proposedAdmin);
        setNewIntAtPosition(PROPOSED_NEW_ADMIN_TIMESTAMP, block.timestamp + 1 days);
    }

    function setProxyAdmin(address newAdmin) private {
        setNewAddressAtPosition(PROXY_ADMIN_POSITION, newAdmin);
    }

    function setNewAddressAtPosition(bytes32 position, address newAddr) private {
        assembly { sstore(position, newAddr) }
    }

    function readAddressAtPosition(bytes32 position) private view returns (address result) {
        assembly { result := sload(position) }
    }

    function setNewIntAtPosition(bytes32 position, uint256 newInt) private {
        assembly { sstore(position, newInt) }
    }

    function readIntAtPosition(bytes32 position) private view returns (uint256 result) {
        assembly { result := sload(position) }
    }

    /**
     * @dev Fallback function forwards all transactions and returns all received return data.
     */
    function() external payable {
        bytes32 position = IMPLEMENTATION_POSITION;
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            let masterCopy := and(
                sload(position),
                0xffffffffffffffffffffffffffffffffffffffff
            )
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let success := delegatecall(
                gas,
                masterCopy,
                ptr,
                calldatasize(),
                0,
                0
            )
            returndatacopy(ptr, 0, returndatasize())
            switch eq(success, 0)
                case 1 {
                    revert(ptr, returndatasize())
                }
            return(ptr, returndatasize())
        }
    }
}

// File: contracts/proxies/xSNXAdminProxy.sol

pragma solidity 0.5.15;


contract xSNXAdminProxy is Proxy {
    constructor(
        address implementation,
        address proxyAdmin,
        address signer1,
        address signer2
    ) public Proxy(
        implementation,
        proxyAdmin,
        signer1,
        signer2
    ) {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"address","name":"proxyAdmin","type":"address"},{"internalType":"address","name":"signer1","type":"address"},{"internalType":"address","name":"signer2","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"confirmAdminTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"confirmedImplementation","type":"address"}],"name":"confirmImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAdminAddress","type":"address"}],"name":"proposeAdminTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"proposeNewImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proposedNewAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedNewAdminTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedNewImplementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyAdmin","outputs":[{"internalType":"address","name":"admin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"proxySigner","outputs":[{"internalType":"address","name":"signer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}]

Deployed Bytecode

0x60806040526004361061009c5760003560e01c80635c60da1b116100645780635c60da1b146102c25780637e8aa69d146103195780637edae5101461036a5780638c01c3f714610381578063f7ea370d146103d2578063fe938dcb146104295761009c565b806320698c4f1461011d5780633e47158c146101745780634555d5c9146101cb57806347757fb6146101f65780634e6c564514610247575b600060405180807f78736e782e696d706c656d656e746174696f6e506f736974696f6e0000000000815250601b0190506040518091039020905073ffffffffffffffffffffffffffffffffffffffff81541660405136600082376000803683855af43d6000833e600081146001811461011457610118565b3d83fd5b503d82f35b34801561012957600080fd5b50610132610454565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018057600080fd5b5061018961047c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d757600080fd5b506101e06104c1565b6040518082815260200191505060405180910390f35b34801561020257600080fd5b506102456004803603602081101561021957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104ca565b005b34801561025357600080fd5b506102806004803603602081101561026a57600080fd5b81019080803590602001909291905050506106d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102ce57600080fd5b506102d7610769565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032557600080fd5b506103686004803603602081101561033c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ae565b005b34801561037657600080fd5b5061037f6108b5565b005b34801561038d57600080fd5b506103d0600480360360208110156103a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a32565b005b3480156103de57600080fd5b506103e7610cbb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043557600080fd5b5061043e610d00565b6040518082815260200191505060405180910390f35b60006104776040518080610eee6023913960230190506040518091039020610d45565b905090565b60006104bc60405180807f78736e782e70726f787941646d696e0000000000000000000000000000000000815250600f0190506040518091039020610d45565b905090565b60006002905090565b61050860405180807f78736e782e70726f787941646d696e0000000000000000000000000000000000815250600f0190506040518091039020610d45565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461053f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180610e4b6030913960400191505060405180910390fd5b6105ce81610d50565b610623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610f11602d913960400191505060405180910390fd5b61062b610769565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180610e7b604d913960600191505060405180910390fd5b6106d16040518080610eee602391396023019050604051809103902082610d69565b50565b6000808214156107235761071c60405180807f78736e782e636f7369676e657231000000000000000000000000000000000000815250600e0190506040518091039020610d45565b9050610764565b61076160405180807f78736e782e636f7369676e657232000000000000000000000000000000000000815250600e0190506040518091039020610d45565b90505b919050565b60006107a960405180807f78736e782e696d706c656d656e746174696f6e506f736974696f6e0000000000815250601b0190506040518091039020610d45565b905090565b6107ec60405180807f78736e782e70726f787941646d696e0000000000000000000000000000000000815250600f0190506040518091039020610d45565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ec86026913960400191505060405180910390fd5b6108b281610d70565b50565b6108f360405180807f78736e782e70726f787941646d696e0000000000000000000000000000000000815250600f0190506040518091039020610d45565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092a57600080fd5b6000610934610cbb565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ec86026913960400191505060405180910390fd5b426109c5610d00565b1115610a1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610fac602e913960400191505060405180910390fd5b610a2581610df6565b610a2f6000610d70565b50565b6000610a7260405180807f78736e782e636f7369676e657231000000000000000000000000000000000000815250600e0190506040518091039020610d45565b90506000610ab460405180807f78736e782e636f7369676e657232000000000000000000000000000000000000815250600e0190506040518091039020610d45565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b1b57508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b2457600080fd5b6000610b476040518080610eee6023913960230190506040518091039020610d45565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610f3e602c913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180610f6a6042913960600191505060405180910390fd5b610c9260405180807f78736e782e696d706c656d656e746174696f6e506f736974696f6e0000000000815250601b019050604051809103902085610d69565b610cb56040518080610eee60239139602301905060405180910390206000610d69565b50505050565b6000610cfb60405180807f78736e782e70726f706f7365644e657741646d696e000000000000000000000081525060150190506040518091039020610d45565b905090565b6000610d4060405180807f78736e782e70726f706f7365644e657741646d696e54696d657374616d700000815250601e0190506040518091039020610e38565b905090565b600081549050919050565b600080823b905060008163ffffffff1611915050919050565b8082555050565b610daf60405180807f78736e782e70726f706f7365644e657741646d696e00000000000000000000008152506015019050604051809103902082610d69565b610df360405180807f78736e782e70726f706f7365644e657741646d696e54696d657374616d700000815250601e0190506040518091039020620151804201610e43565b50565b610e3560405180807f78736e782e70726f787941646d696e0000000000000000000000000000000000815250600f019050604051809103902082610d69565b50565b600081549050919050565b808255505056fe6e65772070726f706f73656420696d706c656d656e746174696f6e2063616e6e6f7420626520616464726573732830296e65772070726f706f73656420616464726573732063616e6e6f74206265207468652073616d65206173207468652063757272656e7420696d706c656d656e746174696f6e20616464726573736e65772041646d696e20616464726573732063616e6e6f74206265206164647265737328302978736e782e70726f706f736564496d706c656d656e746174696f6e506f736974696f6e6e65772070726f706f73656420696d706c656d656e746174696f6e206973206e6f74206120636f6e747261637470726f706f73656420696d706c656d656e746174696f6e2063616e6e6f74206265206164647265737328302970726f706f73656420696d706c656d656e746174696f6e20646f65736e2774206d617463682074686520636f6e6669726d656420696d706c656d656e746174696f6e61646d696e206368616e67652063616e206f6e6c79206265207375626d6974746564206166746572203120646179a265627a7a72315820775c51a2892d5e9068f42416edec87663dcb85ac7c9e905774640eee5781be9764736f6c634300050f0032

Deployed Bytecode Sourcemap

9448:280:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8556:16;301:40;;;;;;;;;;;;;;;;;;;8556:42;;8772;8744:8;8738:15;8716:113;8860:4;8854:11;8900:14;8897:1;8892:3;8879:36;9101:1;9081;9048:14;9026:3;8997:10;8975:3;8944:173;9154:16;9151:1;9146:3;9131:40;9204:1;9195:7;9192:14;9229:1;9224:78;;;;9185:117;;9224:78;9266:16;9261:3;9254:29;9185:117;;9328:16;9323:3;9316:29;6085:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6085:153:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5792:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5792:128:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7335:128:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2773:517;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:517:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2773:517:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6945:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6945:273:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6945:273:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5580:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5580:133:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4433:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4433:220:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4433:220:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4804:404;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4804:404:0;;;:::i;:::-;;3560:717;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3560:717:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3560:717:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6394:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6394:138:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6642:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6642:155:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6085:153;6143:12;6175:55;408:48;;;;;;;;;;;;;;;;;;;6175:21;:55::i;:::-;6168:62;;6085:153;:::o;5792:128::-;5835:13;5869:43;513:28;;;;;;;;;;;;;;;;;;;5869:21;:43::i;:::-;5861:51;;5792:128;:::o;7335:::-;7377:7;7404:1;7397:8;;7335:128;:::o;2773:517::-;978:43;513:28;;;;;;;;;;;;;;;;;;;978:21;:43::i;:::-;964:57;;:10;:57;;;956:66;;;;;;2904:1;2875:31;;:17;:31;;;;2867:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2978:29;2989:17;2978:10;:29::i;:::-;2970:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3097:16;:14;:16::i;:::-;3076:37;;:17;:37;;;;3068:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3206:76;408:48;;;;;;;;;;;;;;;;;;;3264:17;3206:23;:76::i;:::-;2773:517;:::o;6945:273::-;6999:14;7036:1;7030:2;:7;7026:185;;;7063:47;600:27;;;;;;;;;;;;;;;;;;;7063:21;:47::i;:::-;7054:56;;7026:185;;;7152:47;686:27;;;;;;;;;;;;;;;;;;;7152:21;:47::i;:::-;7143:56;;7026:185;6945:273;;;:::o;5580:133::-;5627:12;5659:46;301:40;;;;;;;;;;;;;;;;;;;5659:21;:46::i;:::-;5652:53;;5580:133;:::o;4433:220::-;978:43;513:28;;;;;;;;;;;;;;;;;;;978:21;:43::i;:::-;964:57;;:10;:57;;;956:66;;;;;;4556:1;4529:29;;:15;:29;;;;4521:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4612:33;4629:15;4612:16;:33::i;:::-;4433:220;:::o;4804:404::-;978:43;513:28;;;;;;;;;;;;;;;;;;;978:21;:43::i;:::-;964:57;;:10;:57;;;956:66;;;;;;4869:23;4895:18;:16;:18::i;:::-;4869:44;;4959:1;4932:29;;:15;:29;;;;4924:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5054:15;5023:27;:25;:27::i;:::-;:46;;5015:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5131:30;5145:15;5131:13;:30::i;:::-;5172:28;5197:1;5172:16;:28::i;:::-;1033:1;4804:404::o;3560:717::-;1083:15;1101:47;600:27;;;;;;;;;;;;;;;;;;;1101:21;:47::i;:::-;1083:65;;1159:15;1177:47;686:27;;;;;;;;;;;;;;;;;;;1177:21;:47::i;:::-;1159:65;;1257:7;1243:21;;:10;:21;;;:46;;;;1282:7;1268:21;;:10;:21;;;1243:46;1235:55;;;;;;3676:30;3709:79;408:48;;;;;;;;;;;;;;;;;;;3709:21;:79::i;:::-;3676:112;;3855:1;3821:36;;:22;:36;;;;3799:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3989:22;3962:49;;:23;:49;;;3940:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4116:73;301:40;;;;;;;;;;;;;;;;;;;4165:23;4116;:73::i;:::-;4200:69;408:48;;;;;;;;;;;;;;;;;;;4266:1;4200:23;:69::i;:::-;1301:1;3560:717;;;:::o;6394:138::-;6443:16;6483:41;769:34;;;;;;;;;;;;;;;;;;;6483:21;:41::i;:::-;6472:52;;6394:138;:::o;6642:155::-;6700:17;6742:47;867:43;;;;;;;;;;;;;;;;;;;6742:17;:47::i;:::-;6730:59;;6642:155;:::o;7972:143::-;8043:14;8097:8;8091:15;8081:25;;8079:29;;;:::o;5285:191::-;5342:4;5358:11;5424:5;5412:18;5404:26;;5466:1;5459:4;:8;;;5451:17;;;5285:191;;;:::o;7832:132::-;7947:7;7937:8;7930:25;7928:29;;:::o;7473:220::-;7541:58;769:34;;;;;;;;;;;;;;;;;;;7585:13;7541:23;:58::i;:::-;7610:75;867:43;;;;;;;;;;;;;;;;;;;7678:6;7660:15;:24;7610:19;:75::i;:::-;7473:220;:::o;7701:123::-;7761:55;513:28;;;;;;;;;;;;;;;;;;;7807:8;7761:23;:55::i;:::-;7701:123;:::o;8257:139::-;8324:14;8378:8;8372:15;8362:25;;8360:29;;;:::o;8123:126::-;8233:6;8223:8;8216:24;8214:28;;:::o

Swarm Source

bzzr://775c51a2892d5e9068f42416edec87663dcb85ac7c9e905774640eee5781be97

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  ]
[ 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.