ETH Price: $2,649.54 (+0.50%)

Contract

0x25310873E310b270aEc5113A2d3037FA94166969
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Accept Invitatio...130280792021-08-15 6:11:321161 days ago1629007892IN
0x25310873...A94166969
0 ETH0.003629428.99649347
Accept Invitatio...130272132021-08-15 2:54:551161 days ago1628996095IN
0x25310873...A94166969
0 ETH0.0056906840
Accept Invitatio...130152932021-08-13 6:54:451163 days ago1628837685IN
0x25310873...A94166969
0 ETH0.0063308844.5
Invite Batch129965442021-08-10 9:19:591166 days ago1628587199IN
0x25310873...A94166969
0 ETH0.0009265634
Invite Batch129634252021-08-05 6:35:131171 days ago1628145313IN
0x25310873...A94166969
0 ETH0.0067765653.7
Invite Batch129502572021-08-03 4:36:471173 days ago1627965407IN
0x25310873...A94166969
0 ETH0.0032810126
Invite Batch129492522021-08-03 0:45:281173 days ago1627951528IN
0x25310873...A94166969
0 ETH0.005512929
Invite Batch128747372021-07-22 7:05:461185 days ago1626937546IN
0x25310873...A94166969
0 ETH0.0032810126
Invite Batch128676992021-07-21 4:35:511186 days ago1626842151IN
0x25310873...A94166969
0 ETH0.0023345718.5
Invite Batch128640662021-07-20 14:56:461187 days ago1626793006IN
0x25310873...A94166969
0 ETH0.0037857930
Invite Batch128632972021-07-20 12:04:151187 days ago1626782655IN
0x25310873...A94166969
0 ETH0.0025238620
Invite Batch128628852021-07-20 10:32:241187 days ago1626777144IN
0x25310873...A94166969
0 ETH0.0018928915
Invite Batch128626802021-07-20 9:46:001187 days ago1626774360IN
0x25310873...A94166969
0 ETH0.0029024323
Invite Batch128624842021-07-20 8:59:551187 days ago1626771595IN
0x25310873...A94166969
0 ETH0.0029024323
Invite Batch128624562021-07-20 8:54:091187 days ago1626771249IN
0x25310873...A94166969
0 ETH0.0045429436
Invite Batch128620682021-07-20 7:26:501187 days ago1626766010IN
0x25310873...A94166969
0 ETH0.0035330628
Invite Batch128620012021-07-20 7:10:411187 days ago1626765041IN
0x25310873...A94166969
0 ETH0.003533428
Invite Batch128619962021-07-20 7:10:171187 days ago1626765017IN
0x25310873...A94166969
0 ETH0.004012228
Invite Batch128619332021-07-20 6:55:041187 days ago1626764104IN
0x25310873...A94166969
0 ETH0.0031548225
Invite Batch128619212021-07-20 6:52:011187 days ago1626763921IN
0x25310873...A94166969
0 ETH0.0035823225
Accept Invitatio...128576952021-07-19 14:54:151188 days ago1626706455IN
0x25310873...A94166969
0 ETH0.0035566725
Accept Invitatio...128575732021-07-19 14:30:541188 days ago1626705054IN
0x25310873...A94166969
0 ETH0.003379527
Accept Invitatio...128566962021-07-19 11:20:041188 days ago1626693604IN
0x25310873...A94166969
0 ETH0.0022762716
Accept Invitatio...128560722021-07-19 8:52:011188 days ago1626684721IN
0x25310873...A94166969
0 ETH0.0022689312
Invite Batch127997152021-07-10 12:41:031197 days ago1625920863IN
0x25310873...A94166969
0 ETH0.000859756
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
143049392022-03-02 2:36:15962 days ago1646188575
0x25310873...A94166969
0 ETH
138818372021-12-26 16:15:561028 days ago1640535356
0x25310873...A94166969
0 ETH
138818322021-12-26 16:15:121028 days ago1640535312
0x25310873...A94166969
0 ETH
138818122021-12-26 16:12:091028 days ago1640535129
0x25310873...A94166969
0 ETH
138818082021-12-26 16:11:501028 days ago1640535110
0x25310873...A94166969
0 ETH
138813702021-12-26 14:30:031028 days ago1640529003
0x25310873...A94166969
0 ETH
138798292021-12-26 8:53:421028 days ago1640508822
0x25310873...A94166969
0 ETH
138200162021-12-17 2:45:591037 days ago1639709159
0x25310873...A94166969
0 ETH
137626532021-12-08 4:10:481046 days ago1638936648
0x25310873...A94166969
0 ETH
137626352021-12-08 4:06:121046 days ago1638936372
0x25310873...A94166969
0 ETH
137626312021-12-08 4:05:081046 days ago1638936308
0x25310873...A94166969
0 ETH
137271892021-12-02 11:49:051052 days ago1638445745
0x25310873...A94166969
0 ETH
137271322021-12-02 11:39:421052 days ago1638445182
0x25310873...A94166969
0 ETH
136887852021-11-26 8:49:211058 days ago1637916561
0x25310873...A94166969
0 ETH
136694752021-11-23 7:19:351061 days ago1637651975
0x25310873...A94166969
0 ETH
136694632021-11-23 7:17:241061 days ago1637651844
0x25310873...A94166969
0 ETH
136694542021-11-23 7:15:091061 days ago1637651709
0x25310873...A94166969
0 ETH
136694382021-11-23 7:12:341061 days ago1637651554
0x25310873...A94166969
0 ETH
136632642021-11-22 7:49:531062 days ago1637567393
0x25310873...A94166969
0 ETH
136632172021-11-22 7:38:401062 days ago1637566720
0x25310873...A94166969
0 ETH
136632102021-11-22 7:36:341062 days ago1637566594
0x25310873...A94166969
0 ETH
136631882021-11-22 7:31:471062 days ago1637566307
0x25310873...A94166969
0 ETH
136631742021-11-22 7:28:151062 days ago1637566095
0x25310873...A94166969
0 ETH
136628012021-11-22 6:06:111062 days ago1637561171
0x25310873...A94166969
0 ETH
136627922021-11-22 6:04:221062 days ago1637561062
0x25310873...A94166969
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
YouswapInviteV1

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-03-17
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.7.4;

library ErrorCode {

    string constant FORBIDDEN = 'YouSwap:FORBIDDEN';
    string constant IDENTICAL_ADDRESSES = 'YouSwap:IDENTICAL_ADDRESSES';
    string constant ZERO_ADDRESS = 'YouSwap:ZERO_ADDRESS';
    string constant INVALID_ADDRESSES = 'YouSwap:INVALID_ADDRESSES';
    string constant BALANCE_INSUFFICIENT = 'YouSwap:BALANCE_INSUFFICIENT';
    string constant REWARDTOTAL_LESS_THAN_REWARDPROVIDE = 'YouSwap:REWARDTOTAL_LESS_THAN_REWARDPROVIDE';
    string constant PARAMETER_TOO_LONG = 'YouSwap:PARAMETER_TOO_LONG';
    string constant REGISTERED = 'YouSwap:REGISTERED';

}

interface IYouswapInviteV1 {

    struct UserInfo {
        address upper;//上级
        address[] lowers;//下级
        uint256 startBlock;//邀请块高
    }

    event InviteV1(address indexed owner, address indexed upper, uint256 indexed height);//被邀请人的地址,邀请人的地址,邀请块高

    function inviteCount() external view returns (uint256);//邀请人数

    function inviteUpper1(address) external view returns (address);//上级邀请

    function inviteUpper2(address) external view returns (address, address);//上级邀请

    function inviteLower1(address) external view returns (address[] memory);//下级邀请

    function inviteLower2(address) external view returns (address[] memory, address[] memory);//下级邀请

    function inviteLower2Count(address) external view returns (uint256, uint256);//下级邀请
    
    function register() external returns (bool);//注册邀请关系

    function acceptInvitation(address) external returns (bool);//注册邀请关系
    
    function inviteBatch(address[] memory) external returns (uint, uint);//注册邀请关系:输入数量,成功数量

}

contract YouswapInviteV1 is IYouswapInviteV1 {

    address public constant ZERO = address(0);
    uint256 public startBlock;
    address[] public inviteUserInfoV1;
    mapping(address => UserInfo) public inviteUserInfoV2;

    constructor () {
        startBlock = block.number;
    }
    
    function inviteCount() override external view returns (uint256) {
        return inviteUserInfoV1.length;
    }

    function inviteUpper1(address _owner) override external view returns (address) {
        return inviteUserInfoV2[_owner].upper;
    }

    function inviteUpper2(address _owner) override external view returns (address, address) {
        address upper1 = inviteUserInfoV2[_owner].upper;
        address upper2 = address(0);
        if (address(0) != upper1) {
            upper2 = inviteUserInfoV2[upper1].upper;
        }

        return (upper1, upper2);
    }

    function inviteLower1(address _owner) override external view returns (address[] memory) {
        return inviteUserInfoV2[_owner].lowers;
    }

    function inviteLower2(address _owner) override external view returns (address[] memory, address[] memory) {
        address[] memory lowers1 = inviteUserInfoV2[_owner].lowers;
        uint256 count = 0;
        uint256 lowers1Len = lowers1.length;
        for (uint256 i = 0; i < lowers1Len; i++) {
            count += inviteUserInfoV2[lowers1[i]].lowers.length;
        }
        address[] memory lowers;
        address[] memory lowers2 = new address[](count);
        count = 0;
        for (uint256 i = 0; i < lowers1Len; i++) {
            lowers = inviteUserInfoV2[lowers1[i]].lowers;
            for (uint256 j = 0; j < lowers.length; j++) {
                lowers2[count] = lowers[j];
                count++;
            }
        }
        
        return (lowers1, lowers2);
    }

    function inviteLower2Count(address _owner) override external view returns (uint256, uint256) {
        address[] memory lowers1 = inviteUserInfoV2[_owner].lowers;
        uint256 lowers2Len = 0;
        uint256 len = lowers1.length;
        for (uint256 i = 0; i < len; i++) {
            lowers2Len += inviteUserInfoV2[lowers1[i]].lowers.length;
        }
        
        return (lowers1.length, lowers2Len);
    }

    function register() override external returns (bool) {
        UserInfo storage user = inviteUserInfoV2[tx.origin];
        require(0 == user.startBlock, ErrorCode.REGISTERED);
        user.upper = ZERO;
        user.startBlock = block.number;
        inviteUserInfoV1.push(tx.origin);
        
        emit InviteV1(tx.origin, user.upper, user.startBlock);
        
        return true;
    }

    function acceptInvitation(address _inviter) override external returns (bool) {
        require(msg.sender != _inviter, ErrorCode.FORBIDDEN);
        UserInfo storage user = inviteUserInfoV2[msg.sender];
        require(0 == user.startBlock, ErrorCode.REGISTERED);
        UserInfo storage upper = inviteUserInfoV2[_inviter];
        if (0 == upper.startBlock) {
            upper.upper = ZERO;
            upper.startBlock = block.number;
            inviteUserInfoV1.push(_inviter);
            
            emit InviteV1(_inviter, upper.upper, upper.startBlock);
        }
        user.upper = _inviter;
        upper.lowers.push(msg.sender);
        user.startBlock = block.number;
        inviteUserInfoV1.push(msg.sender);
        
        emit InviteV1(msg.sender, user.upper, user.startBlock);

        return true;
    }

    function inviteBatch(address[] memory _invitees) override external returns (uint, uint) {
        uint len = _invitees.length;
        require(len <= 100, ErrorCode.PARAMETER_TOO_LONG);
        UserInfo storage user = inviteUserInfoV2[msg.sender];
        if (0 == user.startBlock) {
            user.upper = ZERO;
            user.startBlock = block.number;
            inviteUserInfoV1.push(msg.sender);
                        
            emit InviteV1(msg.sender, user.upper, user.startBlock);
        }
        uint count = 0;
        for (uint i = 0; i < len; i++) {
            if ((address(0) != _invitees[i]) && (msg.sender != _invitees[i])) {
                UserInfo storage lower = inviteUserInfoV2[_invitees[i]];
                if (0 == lower.startBlock) {
                    lower.upper = msg.sender;
                    lower.startBlock = block.number;
                    user.lowers.push(_invitees[i]);
                    inviteUserInfoV1.push(_invitees[i]);
                    count++;

                    emit InviteV1(_invitees[i], msg.sender, lower.startBlock);
                }
            }
        }

        return (len, count);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"upper","type":"address"},{"indexed":true,"internalType":"uint256","name":"height","type":"uint256"}],"name":"InviteV1","type":"event"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_inviter","type":"address"}],"name":"acceptInvitation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_invitees","type":"address[]"}],"name":"inviteBatch","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inviteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"inviteLower1","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"inviteLower2","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"inviteLower2Count","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"inviteUpper1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"inviteUpper2","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"inviteUserInfoV1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inviteUserInfoV2","outputs":[{"internalType":"address","name":"upper","type":"address"},{"internalType":"uint256","name":"startBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5043600055610f5f806100246000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063904453e81161008c578063aaaf7eaf11610066578063aaaf7eaf14610373578063d69191f0146103bc578063e3ae102514610411578063edb766f414610437576100cf565b8063904453e814610218578063a15dff911461023e578063a424b7a3146102b4576100cf565b80631aa3a008146100d45780632d66f387146100f057806348cd4cb1146101ac57806358fa63ca146101c657806378925081146101ea5780639018c818146101f2575b600080fd5b6100dc610454565b604080519115158252519081900360200190f35b6101936004803603602081101561010657600080fd5b81019060208101813564010000000081111561012157600080fd5b82018360208201111561013357600080fd5b8035906020019184602083028401116401000000008311171561015557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061058e945050505050565b6040805192835260208301919091528051918290030190f35b6101b4610864565b60408051918252519081900360200190f35b6101ce61086a565b604080516001600160a01b039092168252519081900360200190f35b6101b461086f565b6100dc6004803603602081101561020857600080fd5b50356001600160a01b0316610875565b6101ce6004803603602081101561022e57600080fd5b50356001600160a01b0316610aa9565b6102646004803603602081101561025457600080fd5b50356001600160a01b0316610ac7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a0578181015183820152602001610288565b505050509050019250505060405180910390f35b6102da600480360360208110156102ca57600080fd5b50356001600160a01b0316610b40565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561031e578181015183820152602001610306565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561035d578181015183820152602001610345565b5050505090500194505050505060405180910390f35b6103996004803603602081101561038957600080fd5b50356001600160a01b0316610d73565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103e2600480360360208110156103d257600080fd5b50356001600160a01b0316610d98565b60405180836001600160a01b03168152602001826001600160a01b031681526020019250505060405180910390f35b6101936004803603602081101561042757600080fd5b50356001600160a01b0316610de5565b6101ce6004803603602081101561044d57600080fd5b5035610ebf565b3260009081526002602081815260408084209283015481518083019092526012825271165bdd54ddd85c0e949151d254d51154915160721b92820192909252901561051d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104e25781810151838201526020016104ca565b50505050905090810190601f16801561050f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080546001600160a01b0319908116825543600283019081556001805480820182556000918252600080516020610f0a833981519152018054329416841790559054835460405191936001600160a01b03909116929091600080516020610eea8339815191529190a4600191505090565b805160408051808201909152601a81527f596f75537761703a504152414d455445525f544f4f5f4c4f4e470000000000006020820152600091829160648211156106195760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156104e25781810151838201526020016104ca565b503360009081526002602081905260409091209081015461069d5780546001600160a01b0319908116825543600283019081556001805480820182556000918252600080516020610f0a833981519152018054339416841790559054835460405191936001600160a01b03909116929091600080516020610eea8339815191529190a45b6000805b83811015610857578681815181106106b557fe5b60200260200101516001600160a01b031660006001600160a01b03161415801561070457508681815181106106e657fe5b60200260200101516001600160a01b0316336001600160a01b031614155b1561084f5760006002600089848151811061071b57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020905080600201546000141561084d5780546001600160a01b031916331781554360028201558751600185019089908490811061077b57fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915588518990849081106107c857fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915560028201548951949091019333908a908590811061082157fe5b60200260200101516001600160a01b0316600080516020610eea83398151915260405160405180910390a45b505b6001016106a1565b5091935090915050915091565b60005481565b600081565b60015490565b6040805180820190915260118152702cb7baa9bbb0b81d2327a92124a22222a760791b6020820152600090336001600160a01b03841614156108f85760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156104e25781810151838201526020016104ca565b50336000908152600260208181526040928390209182015483518085019094526012845271165bdd54ddd85c0e949151d254d51154915160721b91840191909152909190156109885760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156104e25781810151838201526020016104ca565b506001600160a01b038316600090815260026020819052604090912090810154610a165780546001600160a01b0319908116825543600283019081556001805480820182556000918252600080516020610f0a8339815191520180546001600160a01b03898116919095168117909155915484546040519194169291600080516020610eea83398151915291a45b81546001600160a01b038086166001600160a01b0319928316178455600183810180548083018255600091825260208220018054851633908117909155436002880190815583548085018555938352600080516020610f0a8339815191529093018054909516811790945590548554604051919493169291600080516020610eea83398151915291a45060019392505050565b6001600160a01b039081166000908152600260205260409020541690565b6001600160a01b038116600090815260026020908152604091829020600101805483518184028101840190945280845260609392830182828015610b3457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b16575b50505050509050919050565b606080606060026000856001600160a01b03166001600160a01b03168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015610bc157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ba3575b505050505090506000808251905060005b81811015610c1e5760026000858381518110610bea57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020600190810154939093019201610bd2565b506060808367ffffffffffffffff81118015610c3957600080fd5b50604051908082528060200260200182016040528015610c63578160200160208202803683370190505b5090506000935060005b83811015610d645760026000878381518110610c8557fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015610d0457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ce6575b5050505050925060005b8351811015610d5b57838181518110610d2357fe5b6020026020010151838781518110610d3757fe5b6001600160a01b039092166020928302919091019091015260019586019501610d0e565b50600101610c6d565b50939550929350505050915091565b600260208190526000918252604090912080549101546001600160a01b039091169082565b6001600160a01b038082166000908152600260205260408120549091829116818115610ddb57506001600160a01b03808216600090815260026020526040902054165b9092509050915091565b6001600160a01b038116600090815260026020908152604080832060010180548251818502810185019093528083528493606093929190830182828015610e5557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e37575b505050505090506000808251905060005b81811015610eb25760026000858381518110610e7e57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020600190810154939093019201610e66565b5050905192509050915091565b60018181548110610ecf57600080fd5b6000918252602090912001546001600160a01b031690508156fe09eaeed4c048452d0089134abaf2d036f2db1ba99ae25e87081bc0a787fc0d93b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a26469706673582212209e51e3a3874a3e9b516d3123cb937cd02d4d86e18c65f325518cf236c1c5d71964736f6c63430007040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063904453e81161008c578063aaaf7eaf11610066578063aaaf7eaf14610373578063d69191f0146103bc578063e3ae102514610411578063edb766f414610437576100cf565b8063904453e814610218578063a15dff911461023e578063a424b7a3146102b4576100cf565b80631aa3a008146100d45780632d66f387146100f057806348cd4cb1146101ac57806358fa63ca146101c657806378925081146101ea5780639018c818146101f2575b600080fd5b6100dc610454565b604080519115158252519081900360200190f35b6101936004803603602081101561010657600080fd5b81019060208101813564010000000081111561012157600080fd5b82018360208201111561013357600080fd5b8035906020019184602083028401116401000000008311171561015557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061058e945050505050565b6040805192835260208301919091528051918290030190f35b6101b4610864565b60408051918252519081900360200190f35b6101ce61086a565b604080516001600160a01b039092168252519081900360200190f35b6101b461086f565b6100dc6004803603602081101561020857600080fd5b50356001600160a01b0316610875565b6101ce6004803603602081101561022e57600080fd5b50356001600160a01b0316610aa9565b6102646004803603602081101561025457600080fd5b50356001600160a01b0316610ac7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a0578181015183820152602001610288565b505050509050019250505060405180910390f35b6102da600480360360208110156102ca57600080fd5b50356001600160a01b0316610b40565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561031e578181015183820152602001610306565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561035d578181015183820152602001610345565b5050505090500194505050505060405180910390f35b6103996004803603602081101561038957600080fd5b50356001600160a01b0316610d73565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6103e2600480360360208110156103d257600080fd5b50356001600160a01b0316610d98565b60405180836001600160a01b03168152602001826001600160a01b031681526020019250505060405180910390f35b6101936004803603602081101561042757600080fd5b50356001600160a01b0316610de5565b6101ce6004803603602081101561044d57600080fd5b5035610ebf565b3260009081526002602081815260408084209283015481518083019092526012825271165bdd54ddd85c0e949151d254d51154915160721b92820192909252901561051d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104e25781810151838201526020016104ca565b50505050905090810190601f16801561050f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080546001600160a01b0319908116825543600283019081556001805480820182556000918252600080516020610f0a833981519152018054329416841790559054835460405191936001600160a01b03909116929091600080516020610eea8339815191529190a4600191505090565b805160408051808201909152601a81527f596f75537761703a504152414d455445525f544f4f5f4c4f4e470000000000006020820152600091829160648211156106195760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156104e25781810151838201526020016104ca565b503360009081526002602081905260409091209081015461069d5780546001600160a01b0319908116825543600283019081556001805480820182556000918252600080516020610f0a833981519152018054339416841790559054835460405191936001600160a01b03909116929091600080516020610eea8339815191529190a45b6000805b83811015610857578681815181106106b557fe5b60200260200101516001600160a01b031660006001600160a01b03161415801561070457508681815181106106e657fe5b60200260200101516001600160a01b0316336001600160a01b031614155b1561084f5760006002600089848151811061071b57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020905080600201546000141561084d5780546001600160a01b031916331781554360028201558751600185019089908490811061077b57fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915588518990849081106107c857fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915560028201548951949091019333908a908590811061082157fe5b60200260200101516001600160a01b0316600080516020610eea83398151915260405160405180910390a45b505b6001016106a1565b5091935090915050915091565b60005481565b600081565b60015490565b6040805180820190915260118152702cb7baa9bbb0b81d2327a92124a22222a760791b6020820152600090336001600160a01b03841614156108f85760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156104e25781810151838201526020016104ca565b50336000908152600260208181526040928390209182015483518085019094526012845271165bdd54ddd85c0e949151d254d51154915160721b91840191909152909190156109885760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156104e25781810151838201526020016104ca565b506001600160a01b038316600090815260026020819052604090912090810154610a165780546001600160a01b0319908116825543600283019081556001805480820182556000918252600080516020610f0a8339815191520180546001600160a01b03898116919095168117909155915484546040519194169291600080516020610eea83398151915291a45b81546001600160a01b038086166001600160a01b0319928316178455600183810180548083018255600091825260208220018054851633908117909155436002880190815583548085018555938352600080516020610f0a8339815191529093018054909516811790945590548554604051919493169291600080516020610eea83398151915291a45060019392505050565b6001600160a01b039081166000908152600260205260409020541690565b6001600160a01b038116600090815260026020908152604091829020600101805483518184028101840190945280845260609392830182828015610b3457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b16575b50505050509050919050565b606080606060026000856001600160a01b03166001600160a01b03168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015610bc157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ba3575b505050505090506000808251905060005b81811015610c1e5760026000858381518110610bea57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020600190810154939093019201610bd2565b506060808367ffffffffffffffff81118015610c3957600080fd5b50604051908082528060200260200182016040528015610c63578160200160208202803683370190505b5090506000935060005b83811015610d645760026000878381518110610c8557fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015610d0457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ce6575b5050505050925060005b8351811015610d5b57838181518110610d2357fe5b6020026020010151838781518110610d3757fe5b6001600160a01b039092166020928302919091019091015260019586019501610d0e565b50600101610c6d565b50939550929350505050915091565b600260208190526000918252604090912080549101546001600160a01b039091169082565b6001600160a01b038082166000908152600260205260408120549091829116818115610ddb57506001600160a01b03808216600090815260026020526040902054165b9092509050915091565b6001600160a01b038116600090815260026020908152604080832060010180548251818502810185019093528083528493606093929190830182828015610e5557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e37575b505050505090506000808251905060005b81811015610eb25760026000858381518110610e7e57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020600190810154939093019201610e66565b5050905192509050915091565b60018181548110610ecf57600080fd5b6000918252602090912001546001600160a01b031690508156fe09eaeed4c048452d0089134abaf2d036f2db1ba99ae25e87081bc0a787fc0d93b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a26469706673582212209e51e3a3874a3e9b516d3123cb937cd02d4d86e18c65f325518cf236c1c5d71964736f6c63430007040033

Deployed Bytecode Sourcemap

1845:4777:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4158:403;;;:::i;:::-;;;;;;;;;;;;;;;;;;5425:1194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5425:1194:0;;-1:-1:-1;5425:1194:0;;-1:-1:-1;;;;;5425:1194:0:i;:::-;;;;;;;;;;;;;;;;;;;;;;;1947:25;;;:::i;:::-;;;;;;;;;;;;;;;;1899:41;;;:::i;:::-;;;;-1:-1:-1;;;;;1899:41:0;;;;;;;;;;;;;;2151:113;;;:::i;4569:848::-;;;;;;;;;;;;;;;;-1:-1:-1;4569:848:0;-1:-1:-1;;;;;4569:848:0;;:::i;2272:135::-;;;;;;;;;;;;;;;;-1:-1:-1;2272:135:0;-1:-1:-1;;;;;2272:135:0;;:::i;2753:145::-;;;;;;;;;;;;;;;;-1:-1:-1;2753:145:0;-1:-1:-1;;;;;2753:145:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2906:811;;;;;;;;;;;;;;;;-1:-1:-1;2906:811:0;-1:-1:-1;;;;;2906:811:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2019:52;;;;;;;;;;;;;;;;-1:-1:-1;2019:52:0;-1:-1:-1;;;;;2019:52:0;;:::i;:::-;;;;-1:-1:-1;;;;;2019:52:0;;;;;;;;;;;;;;;;;;;;;2415:330;;;;;;;;;;;;;;;;-1:-1:-1;2415:330:0;-1:-1:-1;;;;;2415:330:0;;:::i;:::-;;;;;-1:-1:-1;;;;;2415:330:0;;;;;;-1:-1:-1;;;;;2415:330:0;;;;;;;;;;;;;;;;3725:425;;;;;;;;;;;;;;;;-1:-1:-1;3725:425:0;-1:-1:-1;;;;;3725:425:0;;:::i;1979:33::-;;;;;;;;;;;;;;;;-1:-1:-1;1979:33:0;;:::i;4158:403::-;4263:9;4205:4;4246:27;;;:16;:27;;;;;;;;4297:15;;;;4314:20;;;;;;;;;;;-1:-1:-1;;;4314:20:0;;;;;;;;4292;4284:51;;;;-1:-1:-1;;;4284:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4346:17:0;;-1:-1:-1;;;;;;4346:17:0;;;;;4392:12;4374:15;;;:30;;;-1:-1:-1;4415:32:0;;;;;;;-1:-1:-1;4415:32:0;;;-1:-1:-1;;;;;;;;;;;4415:32:0;;;4437:9;4415:32;;;;;;4505:15;;4493:10;;4473:48;;4505:15;;-1:-1:-1;;;;;4493:10:0;;;;4437:9;;-1:-1:-1;;;;;;;;;;;4473:48:0;-1:-1:-1;4473:48:0;4549:4;4542:11;;;4158:403;:::o;5425:1194::-;5535:16;;5582:28;;;;;;;;;;;;;;;;;5501:4;;;;5577:3;5570:10;;;5562:49;;;;-1:-1:-1;;;5562:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5663:10:0;5622:21;5646:28;;;:16;:28;;;;;;;;5694:15;;;;5685:258;;5726:17;;-1:-1:-1;;;;;;5726:17:0;;;;;5776:12;5758:15;;;:30;;;-1:-1:-1;5803:33:0;;;;;;;-1:-1:-1;5803:33:0;;;-1:-1:-1;;;;;;;;;;;5803:33:0;;;5825:10;5803:33;;;;;;5915:15;;5903:10;;5882:49;;5915:15;;-1:-1:-1;;;;;5903:10:0;;;;5825;;-1:-1:-1;;;;;;;;;;;5882:49:0;-1:-1:-1;5882:49:0;5685:258;5953:10;5983:6;5978:602;5999:3;5995:1;:7;5978:602;;;6043:9;6053:1;6043:12;;;;;;;;;;;;;;-1:-1:-1;;;;;6029:26:0;6037:1;-1:-1:-1;;;;;6029:26:0;;;6028:60;;;;;6075:9;6085:1;6075:12;;;;;;;;;;;;;;-1:-1:-1;;;;;6061:26:0;:10;-1:-1:-1;;;;;6061:26:0;;;6028:60;6024:545;;;6109:22;6134:16;:30;6151:9;6161:1;6151:12;;;;;;;;;;;;;;-1:-1:-1;;;;;6134:30:0;-1:-1:-1;;;;;6134:30:0;;;;;;;;;;;;6109:55;;6192:5;:16;;;6187:1;:21;6183:371;;;6233:24;;-1:-1:-1;;;;;;6233:24:0;6247:10;6233:24;;;6299:12;6280:16;;;:31;6351:12;;6233:24;6334:11;;;6351:9;;6361:1;;6351:12;;;;;;;;;;;;;;;;;6334:30;;;;;;;;-1:-1:-1;6334:30:0;;;;;;;;;;;;-1:-1:-1;;;;;;6334:30:0;-1:-1:-1;;;;;6334:30:0;;;;;;;;;;6409:12;;;;6419:1;;6409:12;;;;;;;;;;;;;;;;;6387:35;;;;;;;;-1:-1:-1;6387:35:0;;;;;;;;;;;;-1:-1:-1;;;;;;6387:35:0;-1:-1:-1;;;;;6387:35:0;;;;;;;;;;6517:16;;;;6491:12;;6445:7;;;;;6505:10;;6491:12;;6501:1;;6491:12;;;;;;;;;;;;-1:-1:-1;;;;;6482:52:0;-1:-1:-1;;;;;;;;;;;6482:52:0;;;;;;;;;6183:371;6024:545;;6004:3;;5978:602;;;-1:-1:-1;6600:3:0;;-1:-1:-1;6605:5:0;;-1:-1:-1;;5425:1194:0;;;:::o;1947:25::-;;;;:::o;1899:41::-;1938:1;1899:41;:::o;2151:113::-;2233:16;:23;2151:113;:::o;4569:848::-;4689:19;;;;;;;;;;;;-1:-1:-1;;;4689:19:0;;;;4640:4;;4665:10;-1:-1:-1;;;;;4665:22:0;;;;4657:52;;;;-1:-1:-1;;;4657:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4761:10:0;4720:21;4744:28;;;:16;:28;;;;;;;;;4796:15;;;;4813:20;;;;;;;;;;;-1:-1:-1;;;4813:20:0;;;;;;;4744:28;;4813:20;4791;4783:51;;;;-1:-1:-1;;;4783:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4870:26:0;;4845:22;4870:26;;;:16;:26;;;;;;;;4916:16;;;;4907:247;;4949:18;;-1:-1:-1;;;;;;4949:18:0;;;;;5001:12;4982:16;;;:31;;;4949:18;5028:31;;;;;;;1938:1;5028:31;;;-1:-1:-1;;;;;;;;;;;5028:31:0;;;-1:-1:-1;;;;;5028:31:0;;;;;;;;;;;;5125:16;;5112:11;;5093:49;;5125:16;;5112:11;;5028:31;-1:-1:-1;;;;;;;;;;;5093:49:0;;4907:247;5164:21;;-1:-1:-1;;;;;5164:21:0;;;-1:-1:-1;;;;;;5164:21:0;;;;;;;5196:12;;;:29;;;;;;;5164:10;5196:29;;;;;;;;;;;5214:10;5196:29;;;;;;5254:12;5236:15;;;:30;;;5277:33;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5277:33:0;;;;;;;;;;;;;5369:15;;5357:10;;5336:49;;5369:15;;5357:10;;;5214;-1:-1:-1;;;;;;;;;;;5336:49:0;;-1:-1:-1;5405:4:0;;4569:848;-1:-1:-1;;;4569:848:0:o;2272:135::-;-1:-1:-1;;;;;2369:24:0;;;2342:7;2369:24;;;:16;:24;;;;;:30;;;2272:135::o;2753:145::-;-1:-1:-1;;;;;2859:24:0;;;;;;:16;:24;;;;;;;;;:31;;2852:38;;;;;;;;;;;;;;;;;2823:16;;2852:38;;;2859:31;2852:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2852:38:0;;;;;;;;;;;;;;;;;;;;;;;2753:145;;;:::o;2906:811::-;2976:16;2994;3023:24;3050:16;:24;3067:6;-1:-1:-1;;;;;3050:24:0;-1:-1:-1;;;;;3050:24:0;;;;;;;;;;;;:31;;3023:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:58:0;;;;;;;;;;;;;;;;;;;;;;;3092:13;3120:18;3141:7;:14;3120:35;;3171:9;3166:119;3190:10;3186:1;:14;3166:119;;;3231:16;:28;3248:7;3256:1;3248:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3231:28:0;;;;;;;;;;;-1:-1:-1;3231:28:0;:35;;;;:42;3222:51;;;;;3202:3;3166:119;;;;3295:23;3329:24;3370:5;3356:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3356:20:0;;3329:47;;3395:1;3387:9;;3412;3407:257;3431:10;3427:1;:14;3407:257;;;3472:16;:28;3489:7;3497:1;3489:10;;;;;;;;;;;;;;-1:-1:-1;;;;;3472:28:0;-1:-1:-1;;;;;3472:28:0;;;;;;;;;;;;:35;;3463:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:44:0;;;;;;;;;;;;;;;;;;;;;;;3527:9;3522:131;3546:6;:13;3542:1;:17;3522:131;;;3602:6;3609:1;3602:9;;;;;;;;;;;;;;3585:7;3593:5;3585:14;;;;;;;;-1:-1:-1;;;;;3585:26:0;;;:14;;;;;;;;;;;:26;3630:7;;;;;3561:3;3522:131;;;-1:-1:-1;3443:3:0;;3407:257;;;-1:-1:-1;3692:7:0;;-1:-1:-1;3701:7:0;;-1:-1:-1;;;;2906:811:0;;;:::o;2019:52::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2019:52:0;;;;;:::o;2415:330::-;-1:-1:-1;;;;;2531:24:0;;;2485:7;2531:24;;;:16;:24;;;;;:30;2485:7;;;;2531:30;2485:7;2614:20;;2610:92;;-1:-1:-1;;;;;;2660:24:0;;;;;;;:16;:24;;;;;:30;;2610:92;2722:6;;-1:-1:-1;2730:6:0;-1:-1:-1;2415:330:0;;;:::o;3725:425::-;-1:-1:-1;;;;;3856:24:0;;3800:7;3856:24;;;:16;:24;;;;;;;;:31;;3829:58;;;;;;;;;;;;;;;;;3800:7;;3829:24;;:58;3856:31;3829:58;;;3856:31;3829:58;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3829:58:0;;;;;;;;;;;;;;;;;;;;;;;3898:18;3931:11;3945:7;:14;3931:28;;3975:9;3970:117;3994:3;3990:1;:7;3970:117;;;4033:16;:28;4050:7;4058:1;4050:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4033:28:0;;;;;;;;;;;-1:-1:-1;4033:28:0;:35;;;;:42;4019:56;;;;;3999:3;3970:117;;;-1:-1:-1;;4115:14:0;;;-1:-1:-1;4131:10:0;-1:-1:-1;3725:425:0;;;:::o;1979:33::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1979:33:0;;-1:-1:-1;1979:33:0;:::o

Swarm Source

ipfs://9e51e3a3874a3e9b516d3123cb937cd02d4d86e18c65f325518cf236c1c5d719

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.