Contract 0x1Bf68A9d1EaEe7826b3593C20a0ca93293cb489a 6

Bridge 
 

Contract Overview

Orbit Chain: Bridge
Balance:
37,794.11335873310283214 Ether

EtherValue:
$152,623,590.04 (@ $4,038.29/ETH)

Token:
Txn Hash Method
Block
From
To
Value
0x64a83d037f2e38409f961ce7784fc06594fc9a11a1ec1babfbfad886df9c8f5fDeposit Token(pending)2021-10-24 10:26:014 hrs 14 mins ago0x2e9d7eab15b053bce7cc2476f4d491d5efe5d5f3 IN Orbit Chain: Bridge0 Ether(Pending)(Pending)
0xc58afcc9bb49ca53054389bf14071202351f24893dc8cb36293552aa6e7ac624Deposit Token(pending)2021-10-24 3:24:2811 hrs 16 mins ago0xb3443e41204d880c92ee928a9ac1876645f110ac IN Orbit Chain: Bridge0 Ether(Pending)(Pending)
0xa98ad457b1fa21fc753d2563e3ea28e04902dfc6bdc94412a42e0b407a487de0Deposit Token(pending)2021-10-24 1:50:1312 hrs 50 mins ago0x2e9d7eab15b053bce7cc2476f4d491d5efe5d5f3 IN Orbit Chain: Bridge0 Ether(Pending)(Pending)
0xc6441765172ebfffe597edbc6ad9927b29a133ee1488003622b24676178a66c9Deposit Token(pending)2021-10-24 1:50:1312 hrs 50 mins ago0x2e9d7eab15b053bce7cc2476f4d491d5efe5d5f3 IN Orbit Chain: Bridge0 Ether(Pending)(Pending)
0x28515bd38a17be8f4942dcc8604ab32c6af058353d1eab881d7d6abfb435088fDeposit Token(pending)2021-10-22 23:50:111 day 14 hrs ago0x2e9d7eab15b053bce7cc2476f4d491d5efe5d5f3 IN Orbit Chain: Bridge0 Ether(Pending)(Pending)
0x7747aec8ac1452010d50e86b77344ee464359cd59ce228334f1e9f75844196faDeposit Token134807172021-10-24 14:27:1813 mins ago0x946852bc2f077e6eee2f71f15da64a5b7b9b40aa IN  Orbit Chain: Bridge0 Ether0.005782051707 61.985974564
0x08fbf36eee832a5a2d58f1ab2f642d5b893216abd9834a09b4345273dc82ff84Withdraw134807042021-10-24 14:24:1316 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.009777614853 57.375991585
0xe040f6c8debfe2acbfe9c1ca9871e94b6f10e3d87c1dffa863fb2b0cc51f3bddWithdraw134806492021-10-24 14:13:3526 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.014981460054 80.986118313
0x76bdbda2056e466062cc6959a246211aae08d61c758597626c9a8f6ae340ab9fDeposit Token134806422021-10-24 14:11:4828 mins ago0x734903fe57df21c6df0c2638aa20db98a614ba15 IN  Orbit Chain: Bridge0 Ether0.008005485937 81.683630978
0xf17108ce2de9480c605ef2328dc0d695ce23df052ac31b5f0ff3b8e096bb4decDeposit134805552021-10-24 13:49:5950 mins ago0x4e8ddde79730b39965d54f42a8b66dec063821ec IN  Orbit Chain: Bridge0.13 Ether0.004045136096 64.892455353
0x64f17e9fa8c8a559569b707ad55150538b0ee49f0c036844d115866c0cf40bf3Withdraw134805432021-10-24 13:46:5753 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.0114784209 62.053568576
0x3f010171eaf242d6ae18c148c377d553cccff1c5cf4cc349f49aea5c4f5e5c18Deposit134805312021-10-24 13:43:5656 mins ago0x734903fe57df21c6df0c2638aa20db98a614ba15 IN  Orbit Chain: Bridge34.8 Ether0.003294818114 52.85578341
0xc160489d14763848b88d8c1bcb9b569b92bdcc32922df537a38345c688830d05Withdraw134805172021-10-24 13:41:4158 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.010319415289 70.55672747
0xe3ef49b3bf890d0453d73ac669c3ce398bdc3266c027e9714b7aedff6a68f6f3Deposit Token134805062021-10-24 13:38:241 hr 2 mins ago0x4444844fcb040aae55a1a23d442448384f225a44 IN  Orbit Chain: Bridge0 Ether0.00577545183 58.93679032
0x64bdd07de7752c6e7c21bf4dc4ef59055874aea850e0914694b66f4d40a450d2Withdraw134804942021-10-24 13:35:381 hr 4 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.017736878286 54.038614512
0x7165de1298015dae10b8b0e0325f9adcbdee5876e7648a2bade108be5fa3d60dDeposit Token134804672021-10-24 13:30:371 hr 9 mins ago0x0e274455110a233bb7577c73aa58d75a0939f56e IN  Orbit Chain: Bridge0 Ether0.00970140699
0x6b2e1c8fbd7595ae16314eccc8baac96d042daf3eb0fc097f81440a23788063cWithdraw134804632021-10-24 13:29:271 hr 11 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.022647795715 68.802733284
0xa4eb3036281628963c1c65efcff81360a622cf0f22037bfa7d41261414e17f6dDeposit Token134804542021-10-24 13:27:311 hr 12 mins ago0xe3063366671017e9d479e3c0b3a75d98246ef91b IN  Orbit Chain: Bridge0 Ether0.007244091181 79.773711368
0x13a10c6d37261730b8c0f3204f4ff7519a5ba7cf5c4e2f50639148e10ab8997aDeposit Token134804492021-10-24 13:25:511 hr 14 mins ago0x57b7e415f63a0fb2b1121afd7844d8fc8150489d IN  Orbit Chain: Bridge0 Ether0.006266771955 60.95725887
0x1555e4119090b72a0826c0408dc78e3a4e07128bd6646be04f58b4732060b490Withdraw134804062021-10-24 13:14:271 hr 26 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.008369580809 49.862860194
0xeda559c20fce54d3f4d69b22c1c519354e6189a2e9e2c7a46b3836e7511d6d7cDeposit Token134803652021-10-24 13:04:311 hr 35 mins ago0xd424effba18e5f4291a78ccc2d4db905a7296468 IN  Orbit Chain: Bridge0 Ether0.004728659455 48.2486731
0xcbbe01d2fe21f175d2e77fa89d19dc855dc62612e277a789e5abae11ff55353cDeposit Token134803432021-10-24 12:59:551 hr 40 mins ago0xd424effba18e5f4291a78ccc2d4db905a7296468 IN  Orbit Chain: Bridge0 Ether0.005070911492 49.330812039
0x109e52c6519864d24009f1ac4b0d578fee13e4bd1604c3f3345ec17df8af5d94Deposit Token134803152021-10-24 12:54:071 hr 46 mins ago0xd424effba18e5f4291a78ccc2d4db905a7296468 IN  Orbit Chain: Bridge0 Ether0.005729523542 55.737917996
0x731d0a62f40bfbb473a0aac407c12dff657e821953e92aab148940129d84bef3Withdraw134802752021-10-24 12:43:381 hr 56 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.008310708966 44.925665267
0x3ade7d9ae459f3e80ee738f5e4da7823c1bdbba665f75b720e698dcb64cedb98Withdraw134802752021-10-24 12:43:381 hr 56 mins ago0xdc5432c573a1d4874d305a5cd7e62aed2b0bc522 IN  Orbit Chain: Bridge0 Ether0.007330475875 44.925665267
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xc160489d14763848b88d8c1bcb9b569b92bdcc32922df537a38345c688830d05134805172021-10-24 13:41:4158 mins ago Orbit Chain: Bridge0x5783dfcad7a3d64d3f3ddadcaf4eb568d30050780.052060604858716032 Ether
0xa6fe06f684f6fd3a973b4fe157eb81d7545858c9d2346ca87cb6f3868490c6ca134802462021-10-24 12:37:022 hrs 3 mins ago Orbit Chain: Bridge0x2058a7ab9c498062efeda870ecb7af657be88a070.038980802364795501 Ether
0x55e7d5551057e4ec81565c09f17c5a7342817f2929c535f26499b91fca97b500134797542021-10-24 10:54:033 hrs 46 mins ago Orbit Chain: Bridge0x03d44d02b5ec022b467f0f4616da3d5909988aee0.390183138269630045 Ether
0x4f077e38417c8b7cdc8343d0cdb775648d02321a674e2a1cf09258cdf29407cb134796132021-10-24 10:21:444 hrs 18 mins ago Orbit Chain: Bridge0xb8db4093d3f9885e1954eecc9f2ece5f349849c60.04995 Ether
0x41a31aff4b5a587f9bc231b8c3df262543b6e08c5b378d2eb167db418503af7c134795902021-10-24 10:16:004 hrs 24 mins ago Orbit Chain: Bridge0x901fa97f5ccb20f1dd833e53f598e0b7ab7f592032.004721020216869014 Ether
0x904406966f69e2849455c9525383c6b905f870c115f5b0042e669f69b25dc250134793282021-10-24 9:15:555 hrs 24 mins ago Orbit Chain: Bridge0xdd5bd8f175c4312bda079569a5fe36142b2aa5980.209736137367425565 Ether
0x0f9d90f4125c8622fb2842cfaf9d5e862c5f6122606f5e616a46b682cea74faa134792712021-10-24 9:03:285 hrs 37 mins ago Orbit Chain: Bridge0x30c59a8b2bba609b649610b072b226abdfbc69ed4.065140114427342639 Ether
0xb097f7de1468aca40e60ebda48b03958d92ebc349385f169d89c43358d9b8934134792512021-10-24 8:59:315 hrs 40 mins ago Orbit Chain: Bridge0x30c59a8b2bba609b649610b072b226abdfbc69ed0.000999 Ether
0x91ef248d2388433a91fe9f7d37d7bc9d54a12567ac3b1b0118ea7cc2fc1caa81134791892021-10-24 8:45:025 hrs 55 mins ago Orbit Chain: Bridge0xaa1aad6a380a26ab483b8b4e25fbfc6e6a753b040.01692306 Ether
0x05f95006ec6eeb43fb35a201b1959f2459f8563cd6e6f7779ba33bcbe4d222ea134789592021-10-24 7:54:446 hrs 45 mins ago Orbit Chain: Bridge0x695398997b4edb1d07df7bf9e0031e013ead7c560.092914992 Ether
0xcef6df1525b8b6b54bb7cba70a555f677068f45b00267a362dffe21e73aacb66134788812021-10-24 7:36:587 hrs 3 mins ago Orbit Chain: Bridge0xa5f249f037ca3d5c8b08c7658c20e6875de4826b0.999 Ether
0x36467e14624e59201ecc4b5c2963ad67eab02803a11f7840f2c4029f47c69464134785842021-10-24 6:25:258 hrs 15 mins ago Orbit Chain: Bridge0x0c0a7b5ff9dfd6e206e1b16a32dcdc718b6f77b715.29469 Ether
0xf23d8eaf37a6c1e5adcd5d110f26d1f5b00cd2ed94efb490253d154a93cc3f54134780622021-10-24 4:27:0910 hrs 13 mins ago Orbit Chain: Bridge0x9986bdcdd359645831f5879149b91761e315e50a0.53428518 Ether
0xdbf13b8e8b365190f5bd84639109d6d4ab32ee17563e3d5708becfcfa409f7ad134780162021-10-24 4:18:3410 hrs 21 mins ago Orbit Chain: Bridge0x7a76b3115e4f7420c55bc341f4f247c46f5495372.221776 Ether
0xdf695233d529f76618d9bef5ffb1097824aff6ff79f2b4bbedb145ef13987dad134773412021-10-24 1:45:2812 hrs 55 mins ago Orbit Chain: Bridge0x0b9c8c9bb3c36990fbda936dfddb40bfe504c2414.019651414196212824 Ether
0x957df5ed6e3a74f51ba42f8000e7b4e64f821f596649b26943162c81705c39f3134772632021-10-24 1:28:4813 hrs 11 mins ago Orbit Chain: Bridge0x34962b97ffd14a2e8d78aa921c40142d4272878825.475107058248905645 Ether
0xdfd1591e85a0e5e645b94b649c51970affb81603d7f373a4b28acb03a4ab43a5134769732021-10-24 0:20:5014 hrs 19 mins ago Orbit Chain: Bridge0x1ec0c42936fe2a391cd04932ffebe4c28f090a170.465564275986778401 Ether
0xec040d85b281997a76219e67c8754bf696eb878f3c9b3575aa3ca2205f07b4ce134768802021-10-23 23:59:3814 hrs 40 mins ago Orbit Chain: Bridge0x57299296589102d41f2739f597861a9264a6d31b0.35964 Ether
0x74a693a4dcedb585c7de6d9265df5d2a471aae7730fc456314546f6e1b810519134765562021-10-23 22:37:4416 hrs 2 mins ago Orbit Chain: Bridge0xf0f468c19a01c5992e5769982b6ff1406be874c00.0999 Ether
0x21d909f721d1e1b1d8388a51e7fc79e8cacbe7958ddeab817dbc88187aabf63a134763852021-10-23 22:02:1416 hrs 38 mins ago Orbit Chain: BridgeENS Name 117million.eth0.128477394 Ether
0x64761f53f014deeed715d4958eeb6de5ae87ce081834eb648ef4c28a0b068289134759942021-10-23 20:31:1918 hrs 9 mins ago Orbit Chain: Bridge0xb93c7b8a52a3007eea63d9d6a0d064b0debf14010.167840691378514943 Ether
0x572a2e75fb5922c82bbc23d059cac1376b72ede352610df1012474e49e612493134751812021-10-23 17:36:4221 hrs 3 mins ago Orbit Chain: Bridge0x5ef9448ce06b1f2c5a1978c3b54bdb3a48d9c70b1.998 Ether
0xec1a119aa4a1a7d8a28ea281a6d28f2ee79f5cada10213b203c085be984aa1bd134748222021-10-23 16:20:2322 hrs 20 mins ago Orbit Chain: Bridge0x47373dcd1de5b390c2824ffaabb862b5d477ce050.039461499 Ether
0x1d4c97f4207c0e3395b8c568b82f75f42babb0f5e5a1b6fe9331714aacac816d134744692021-10-23 15:05:4923 hrs 34 mins ago Orbit Chain: Bridge0x3460e0b7d06cc74f0ed13038c622ee1d53f819eb0.143775313420695016 Ether
0xebf6fe3963081feb1bf7ca2d7c1418a89bb24b139a17bdea5c449b0024cf811b134744002021-10-23 14:49:2523 hrs 51 mins ago Orbit Chain: Bridge0x72ca3ff83c3f36133be837d975db1675c083ed5e0.027377595 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthVault

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity Multiple files format)

File 2 of 4: EthVault.sol
pragma solidity ^0.5.0;

import "./MultiSigWallet.sol";

contract EthVault is MultiSigWallet{
    string public constant chain = "ETH";

    bool public isActivated = true;

    address payable public implementation;
    address public tetherAddress;

    uint public depositCount = 0;

    mapping(bytes32 => bool) public isUsedWithdrawal;

    mapping(bytes32 => address) public tokenAddr;
    mapping(address => bytes32) public tokenSummaries;

    mapping(bytes32 => bool) public isValidChain;

    constructor(address[] memory _owners, uint _required, address payable _implementation, address _tetherAddress) MultiSigWallet(_owners, _required) public {
        implementation = _implementation;
        tetherAddress = _tetherAddress;

        // klaytn valid chain default setting
        isValidChain[sha256(abi.encodePacked(address(this), "KLAYTN"))] = true;
    }

    function _setImplementation(address payable _newImp) public onlyWallet {
        require(implementation != _newImp);
        implementation = _newImp;

    }

    function () payable external {
        address impl = implementation;
        require(impl != address(0));
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize)
            let result := delegatecall(gas, impl, ptr, calldatasize, 0, 0)
            let size := returndatasize
            returndatacopy(ptr, 0, size)

            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }
}

File 1 of 4: EthVault.impl.sol
pragma solidity ^0.5.0;

import "./SafeMath.sol";
import "./EthVault.sol";

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function decimals() external view returns (uint8);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract TIERC20 {
    function transfer(address to, uint value) public;
    function transferFrom(address from, address to, uint value) public;

    function balanceOf(address who) public view returns (uint);
    function allowance(address owner, address spender) public view returns (uint256);

    function decimals() external view returns (uint8);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract EthVaultImpl is EthVault, SafeMath{
    event Deposit(string fromChain, string toChain, address fromAddr, bytes toAddr, address token, uint8 decimal, uint amount, uint depositId, uint block);
    event Withdraw(address hubContract, string fromChain, string toChain, bytes fromAddr, bytes toAddr, bytes token, bytes32[] bytes32s, uint[] uints);

    modifier onlyActivated {
        require(isActivated);
        _;
    }

    constructor(address[] memory _owner) public EthVault(_owner, _owner.length, address(0), address(0)) {
    }

    function getVersion() public pure returns(string memory){
        return "1028";
    }

    function changeActivate(bool activate) public onlyWallet {
        isActivated = activate;
    }

    function setTetherAddress(address tether) public onlyWallet {
        tetherAddress = tether;
    }

    function getChainId(string memory _chain) public view returns(bytes32){
        return sha256(abi.encodePacked(address(this), _chain));
    }

    function setValidChain(string memory _chain, bool valid) public onlyWallet {
        isValidChain[getChainId(_chain)] = valid;
    }

    function deposit(string memory toChain, bytes memory toAddr) payable public onlyActivated {
        require(isValidChain[getChainId(toChain)]);
        require(msg.value > 0);

        depositCount = depositCount + 1;
        emit Deposit(chain, toChain, msg.sender, toAddr, address(0), 18, msg.value, depositCount, block.number);
    }

    function depositToken(address token, string memory toChain, bytes memory toAddr, uint amount) public onlyActivated{
        require(isValidChain[getChainId(toChain)]);
        require(token != address(0));
        require(amount > 0);

        uint8 decimal = 0;
        if(token == tetherAddress){
            TIERC20(token).transferFrom(msg.sender, address(this), amount);
            decimal = TIERC20(token).decimals();
        }else{
            if(!IERC20(token).transferFrom(msg.sender, address(this), amount)) revert();
            decimal = IERC20(token).decimals();
        }
        
        require(decimal > 0);

        depositCount = depositCount + 1;
        emit Deposit(chain, toChain, msg.sender, toAddr, token, decimal, amount, depositCount, block.number);
    }

    // Fix Data Info
    ///@param bytes32s [0]:govId, [1]:txHash
    ///@param uints [0]:amount, [1]:decimals
    function withdraw(
        address hubContract,
        string memory fromChain,
        bytes memory fromAddr,
        bytes memory toAddr,
        bytes memory token,
        bytes32[] memory bytes32s,
        uint[] memory uints,
        uint8[] memory v,
        bytes32[] memory r,
        bytes32[] memory s
    ) public onlyActivated {
        require(bytes32s.length >= 1);
        require(bytes32s[0] == sha256(abi.encodePacked(hubContract, chain, address(this))));
        require(uints.length >= 2);
        require(isValidChain[getChainId(fromChain)]);

        bytes32 whash = sha256(abi.encodePacked(hubContract, fromChain, chain, fromAddr, toAddr, token, bytes32s, uints));

        require(!isUsedWithdrawal[whash]);
        isUsedWithdrawal[whash] = true;

        uint validatorCount = _validate(whash, v, r, s);
        require(validatorCount >= required);

        address payable _toAddr = bytesToAddress(toAddr);
        address tokenAddress = bytesToAddress(token);
        if(tokenAddress == address(0)){
            if(!_toAddr.send(uints[0])) revert();
        }else{
            if(tokenAddress == tetherAddress){
                TIERC20(tokenAddress).transfer(_toAddr, uints[0]);
            }
            else{
                if(!IERC20(tokenAddress).transfer(_toAddr, uints[0])) revert();
            }
        }

        emit Withdraw(hubContract, fromChain, chain, fromAddr, toAddr, token, bytes32s, uints);
    }

    function _validate(bytes32 whash, uint8[] memory v, bytes32[] memory r, bytes32[] memory s) private view returns(uint){
        uint validatorCount = 0;
        address[] memory vaList = new address[](owners.length);

        uint i=0;
        uint j=0;

        for(i; i<v.length; i++){
            address va = ecrecover(whash,v[i],r[i],s[i]);
            if(isOwner[va]){
                for(j=0; j<validatorCount; j++){
                    require(vaList[j] != va);
                }

                vaList[validatorCount] = va;
                validatorCount += 1;
            }
        }

        return validatorCount;
    }

    function bytesToAddress(bytes memory bys) private pure returns (address payable addr) {
        assembly {
            addr := mload(add(bys,20))
        }
    }

    function () payable external{
    }
}

File 3 of 4: MultiSigWallet.sol
pragma solidity ^0.5.0;

/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            revert("Unauthorized.");
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            revert("Unauthorized.");
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            revert("Unauthorized.");
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == address(0))
            revert("Existed transaction id.");
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            revert("Not confirmed transaction.");
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            revert("Confirmed transaction.");
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            revert("Executed transaction.");
        _;
    }

    modifier notNull(address _address) {
        if (_address == address(0))
            revert("Address is null");
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            revert("Invalid requirement");
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        external
        payable
    {
        if (msg.value > 0)
            emit Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    constructor(address[] memory _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == address(0))
                revert("Invalid owner");
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        emit OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        emit OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        emit OwnerRemoval(owner);
        emit OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        emit RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes memory data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        emit Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        emit Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction storage txn = transactions[transactionId];
            txn.executed = true;
            (bool result, ) = txn.destination.call.value(txn.value)(txn.data);
            if (result)
                emit Execution(transactionId);
            else {
                emit ExecutionFailure(transactionId);
                txn.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        view
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes memory data)
        public
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        emit Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        view
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        view
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        view
        returns (address[] memory)
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        view
        returns (address[] memory _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        view
        returns (uint[] memory _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }
}

File 4 of 4: SafeMath.sol
pragma solidity ^0.5.0;

contract SafeMath {
    function safeMul(uint a, uint b) internal pure returns(uint) {
        uint c = a * b;
        assertion(a == 0 || c / a == b);
        return c;
    }

    function safeSub(uint a, uint b) internal pure returns(uint) {
        assertion(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b) internal pure returns(uint) {
        uint c = a + b;
        assertion(c >= a && c >= b);
        return c;
    }

    function safeDiv(uint a, uint b) internal pure returns(uint) {
        require(b != 0, 'Divide by zero');

        return a / b;
    }

    function safeCeil(uint a, uint b) internal pure returns (uint) {
        require(b > 0);

        uint v = a / b;

        if(v * b == a) return v;

        return v + 1;  // b cannot be 1, so v <= a / 2
    }

    function assertion(bool flag) internal pure {
        if (!flag) revert('Assertion fail.');
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"depositCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tetherAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isActivated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"tokenAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"isUsedWithdrawal","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newImp","type":"address"}],"name":"_setImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"chain","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenSummaries","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"addTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"isValidChain","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_implementation","type":"address"},{"name":"_tetherAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]

60806040526006805460ff1916600117905560006008553480156200002357600080fd5b50604051620023b2380380620023b2833981018060405260808110156200004957600080fd5b8101908080516401000000008111156200006257600080fd5b820160208101848111156200007657600080fd5b81518560208202830111640100000000821117156200009457600080fd5b50506020820151604083015160609093015182519295509093509084908490816032821180620000c357508181115b80620000cd575080155b80620000d7575081155b156200014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b60005b845181101562000275576002600086838151811015156200016457fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff1680620001b857508451600090869083908110620001a357fe5b90602001906020020151600160a060020a0316145b156200022557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c6964206f776e657200000000000000000000000000000000000000604482015290519081900360640190fd5b60016002600087848151811015156200023a57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560010162000147565b5083516200028b906003906020870190620003e4565b505050600455506006805461010060a860020a031916610100600160a060020a03858116919091029190911790915560078054600160a060020a03191691831691909117905560408051306c01000000000000000000000000026020808301919091527f4b4c4159544e000000000000000000000000000000000000000000000000000060348301528251808303601a018152603a909201928390528151600193600c9360009360029391929182918401908083835b60208310620003625780518252601f19909201916020918201910162000341565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015620003a2573d6000803e3d6000fd5b5050506040513d6020811015620003b857600080fd5b505181526020810191909152604001600020805460ff1916911515919091179055506200047892505050565b8280548282559060005260206000209081019282156200043c579160200282015b828111156200043c5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000405565b506200044a9291506200044e565b5090565b6200047591905b808211156200044a578054600160a060020a031916815560010162000455565b90565b611f2a80620004886000396000f3fe6080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c2781146101d7578063173825d91461021d57806320ea8d86146102525780632dfdf0b51461027c5780632f54bf6e146102a35780633411c81c146102ea5780633a8105ec146103235780634a8c1fb414610338578063547415251461034d5780635c60da1b146103815780635ed7a8fc146103965780637065cb48146103c0578063784547a7146103f35780638b51d13f1461041d5780639ace38c2146104475780639d188c1614610514578063a0e67e2b1461053e578063a8abe69a146105a3578063b5dc40c3146105e3578063b77bf6001461060d578063ba51a6df14610622578063bb913f411461064c578063c01a8c841461067f578063c6427474146106a9578063c763e5a114610771578063d74f8edd146107fb578063dc8452cd14610810578063e1d703a114610825578063e20056e614610858578063ec096f8d14610893578063ee22610b1461095b578063f01b246714610985575b6006546101009004600160a060020a03168015156101b257600080fd5b60405136600082376000803683855af43d806000843e8180156101d3578184f35b8184fd5b3480156101e357600080fd5b50610201600480360360208110156101fa57600080fd5b50356109af565b60408051600160a060020a039092168252519081900360200190f35b34801561022957600080fd5b506102506004803603602081101561024057600080fd5b5035600160a060020a03166109d7565b005b34801561025e57600080fd5b506102506004803603602081101561027557600080fd5b5035610bb9565b34801561028857600080fd5b50610291610d42565b60408051918252519081900360200190f35b3480156102af57600080fd5b506102d6600480360360208110156102c657600080fd5b5035600160a060020a0316610d48565b604080519115158252519081900360200190f35b3480156102f657600080fd5b506102d66004803603604081101561030d57600080fd5b5080359060200135600160a060020a0316610d5d565b34801561032f57600080fd5b50610201610d7d565b34801561034457600080fd5b506102d6610d8c565b34801561035957600080fd5b506102916004803603604081101561037057600080fd5b508035151590602001351515610d95565b34801561038d57600080fd5b50610201610e01565b3480156103a257600080fd5b50610201600480360360208110156103b957600080fd5b5035610e15565b3480156103cc57600080fd5b50610250600480360360208110156103e357600080fd5b5035600160a060020a0316610e30565b3480156103ff57600080fd5b506102d66004803603602081101561041657600080fd5b5035611055565b34801561042957600080fd5b506102916004803603602081101561044057600080fd5b50356110dc565b34801561045357600080fd5b506104716004803603602081101561046a57600080fd5b503561114b565b6040518085600160a060020a0316600160a060020a031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b838110156104d65781810151838201526020016104be565b50505050905090810190601f1680156105035780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561052057600080fd5b506102d66004803603602081101561053757600080fd5b5035611209565b34801561054a57600080fd5b5061055361121e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561058f578181015183820152602001610577565b505050509050019250505060405180910390f35b3480156105af57600080fd5b50610553600480360360808110156105c657600080fd5b508035906020810135906040810135151590606001351515611281565b3480156105ef57600080fd5b506105536004803603602081101561060657600080fd5b50356113b2565b34801561061957600080fd5b50610291611523565b34801561062e57600080fd5b506102506004803603602081101561064557600080fd5b5035611529565b34801561065857600080fd5b506102506004803603602081101561066f57600080fd5b5035600160a060020a0316611624565b34801561068b57600080fd5b50610250600480360360208110156106a257600080fd5b50356116be565b3480156106b557600080fd5b50610291600480360360608110156106cc57600080fd5b600160a060020a03823516916020810135918101906060810160408201356401000000008111156106fc57600080fd5b82018360208201111561070e57600080fd5b8035906020019184600183028401116401000000008311171561073057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611858945050505050565b34801561077d57600080fd5b50610786611877565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107c05781810151838201526020016107a8565b50505050905090810190601f1680156107ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080757600080fd5b506102916118ae565b34801561081c57600080fd5b506102916118b3565b34801561083157600080fd5b506102916004803603602081101561084857600080fd5b5035600160a060020a03166118b9565b34801561086457600080fd5b506102506004803603604081101561087b57600080fd5b50600160a060020a03813581169160200135166118cb565b34801561089f57600080fd5b50610291600480360360608110156108b657600080fd5b600160a060020a03823516916020810135918101906060810160408201356401000000008111156108e657600080fd5b8201836020820111156108f857600080fd5b8035906020019184600183028401116401000000008311171561091a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611af9945050505050565b34801561096757600080fd5b506102506004803603602081101561097e57600080fd5b5035611c34565b34801561099157600080fd5b506102d6600480360360208110156109a857600080fd5b5035611e08565b60038054829081106109bd57fe5b600091825260209091200154600160a060020a0316905081565b333014610a1c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff161515610a7e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600260205260408120805460ff191690555b60035460001901811015610b545782600160a060020a0316600382815481101515610ac657fe5b600091825260209091200154600160a060020a03161415610b4c57600380546000198101908110610af357fe5b60009182526020909120015460038054600160a060020a039092169183908110610b1957fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610b54565b600101610a9f565b50600380546000190190610b689082611e1d565b506003546004541115610b8157600354610b8190611529565b604051600160a060020a038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff161515610c10576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60008281526001602090815260408083203380855292529091205483919060ff161515610c87576040805160e560020a62461bcd02815260206004820152601a60248201527f4e6f7420636f6e6669726d6564207472616e73616374696f6e2e000000000000604482015290519081900360640190fd5b600084815260208190526040902060030154849060ff1615610cf3576040805160e560020a62461bcd02815260206004820152601560248201527f4578656375746564207472616e73616374696f6e2e0000000000000000000000604482015290519081900360640190fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60085481565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b600754600160a060020a031681565b60065460ff1681565b6000805b600554811015610dfa57838015610dc2575060008181526020819052604090206003015460ff16155b80610de65750828015610de6575060008181526020819052604090206003015460ff165b15610df2576001820191505b600101610d99565b5092915050565b6006546101009004600160a060020a031681565b600a60205260009081526040902054600160a060020a031681565b333014610e75576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff1615610ed6576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b81600160a060020a0381161515610f37576040805160e560020a62461bcd02815260206004820152600f60248201527f41646472657373206973206e756c6c0000000000000000000000000000000000604482015290519081900360640190fd5b6003805490506001016004546032821180610f5157508181115b80610f5a575080155b80610f63575081155b15610fb8576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b6003548110156110d4576000848152600160205260408120600380549192918490811061108357fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156110b7576001820191505b6004548214156110cc576001925050506110d7565b60010161105a565b50505b919050565b6000805b600354811015611145576000838152600160205260408120600380549192918490811061110957fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561113d576001820191505b6001016110e0565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f8101889004880284018801909652858352600160a060020a03909316959094919291908301828280156111f65780601f106111cb576101008083540402835291602001916111f6565b820191906000526020600020905b8154815290600101906020018083116111d957829003601f168201915b5050506003909301549192505060ff1684565b60096020526000908152604090205460ff1681565b6060600380548060200260200160405190810160405280929190818152602001828054801561127657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611258575b505050505090505b90565b6060806005546040519080825280602002602001820160405280156112b0578160200160208202803883390190505b5090506000805b600554811015611332578580156112e0575060008181526020819052604090206003015460ff16155b806113045750848015611304575060008181526020819052604090206003015460ff165b1561132a5780838381518110151561131857fe5b60209081029091010152600191909101905b6001016112b7565b87870360405190808252806020026020018201604052801561135e578160200160208202803883390190505b5093508790505b868110156113a757828181518110151561137b57fe5b906020019060200201518489830381518110151561139557fe5b60209081029091010152600101611365565b505050949350505050565b6060806003805490506040519080825280602002602001820160405280156113e4578160200160208202803883390190505b5090506000805b60035481101561149c576000858152600160205260408120600380549192918490811061141457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561149457600380548290811061144f57fe5b6000918252602090912001548351600160a060020a039091169084908490811061147557fe5b600160a060020a03909216602092830290910190910152600191909101905b6001016113eb565b816040519080825280602002602001820160405280156114c6578160200160208202803883390190505b509350600090505b8181101561151b5782818151811015156114e457fe5b9060200190602002015184828151811015156114fc57fe5b600160a060020a039092166020928302909101909101526001016114ce565b505050919050565b60055481565b33301461156e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60035481603282118061158057508181115b80611589575080155b80611592575081155b156115e7576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b333014611669576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600654600160a060020a0382811661010090920416141561168957600080fd5b60068054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b3360008181526002602052604090205460ff161515611715576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b6000828152602081905260409020548290600160a060020a03161515611785576040805160e560020a62461bcd02815260206004820152601760248201527f45786973746564207472616e73616374696f6e2069642e000000000000000000604482015290519081900360640190fd5b60008381526001602090815260408083203380855292529091205484919060ff16156117fb576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e6669726d6564207472616e73616374696f6e2e00000000000000000000604482015290519081900360640190fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361185185611c34565b5050505050565b6000611865848484611af9565b9050611870816116be565b9392505050565b60408051808201909152600381527f4554480000000000000000000000000000000000000000000000000000000000602082015281565b603281565b60045481565b600b6020526000908152604090205481565b333014611910576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260026020526040902054829060ff161515611972576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260026020526040902054829060ff16156119d3576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60005b600354811015611a5f5784600160a060020a03166003828154811015156119f957fe5b600091825260209091200154600160a060020a03161415611a575783600382815481101515611a2457fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550611a5f565b6001016119d6565b50600160a060020a03808516600081815260026020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b600083600160a060020a0381161515611b5c576040805160e560020a62461bcd02815260206004820152600f60248201527f41646472657373206973206e756c6c0000000000000000000000000000000000604482015290519081900360640190fd5b60055460408051608081018252600160a060020a0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff191694169390931783555160018301559251805194965091939092611bdc926002850192910190611e46565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b600081815260208190526040902060030154819060ff1615611ca0576040805160e560020a62461bcd02815260206004820152601560248201527f4578656375746564207472616e73616374696f6e2e0000000000000000000000604482015290519081900360640190fd5b611ca982611055565b15611e045760008281526020819052604080822060038101805460ff19166001908117909155815481830154935160028085018054959796600160a060020a03909416959394909383928592600019908316156101000201909116048015611d485780601f10611d26576101008083540402835291820191611d48565b820191906000526020600020905b815481529060010190602001808311611d34575b505091505060006040518083038185875af1925050503d8060008114611d8a576040519150601f19603f3d011682016040523d82523d6000602084013e611d8f565b606091505b505090508015611dc95760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611e01565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038201805460ff191690555b50505b5050565b600c6020526000908152604090205460ff1681565b815481835581811115611e4157600083815260209020611e41918101908301611ec4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e8757805160ff1916838001178555611eb4565b82800160010185558215611eb4579182015b82811115611eb4578251825591602001919060010190611e99565b50611ec0929150611ec4565b5090565b61127e91905b80821115611ec05760008155600101611eca56fe556e617574686f72697a65642e00000000000000000000000000000000000000a165627a7a72305820620a304d1f4c0cf3ced6c4561eded58216eafb3de08d3b63fc721313a44776de0029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000040000000000000000000000004ff16c8ee6f5fed268cf764689451bf67795fbe8000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000060000000000000000000000008a3f117ef3b40f1661dedf7f28fc33e7b6fae4f800000000000000000000000067c3c784c49d9ab8757adb71491df1a1b38fbfa800000000000000000000000034ebf4f74a881eb63f666e63ce1ff2f287ca5a8b00000000000000000000000031df9d7ee1a61b362277022eae46435782d66cff0000000000000000000000003924ac70075078a7713f543b72e3f8817ecec646000000000000000000000000d1176f2f576c102f6516d386de53ec7a72cc1491

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000040000000000000000000000004ff16c8ee6f5fed268cf764689451bf67795fbe8000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000060000000000000000000000008a3f117ef3b40f1661dedf7f28fc33e7b6fae4f800000000000000000000000067c3c784c49d9ab8757adb71491df1a1b38fbfa800000000000000000000000034ebf4f74a881eb63f666e63ce1ff2f287ca5a8b00000000000000000000000031df9d7ee1a61b362277022eae46435782d66cff0000000000000000000000003924ac70075078a7713f543b72e3f8817ecec646000000000000000000000000d1176f2f576c102f6516d386de53ec7a72cc1491

-----Decoded View---------------
Arg [0] : _owners (address[]): 0x8a3f117ef3b40f1661dedf7f28fc33e7b6fae4f8,0x67c3c784c49d9ab8757adb71491df1a1b38fbfa8,0x34ebf4f74a881eb63f666e63ce1ff2f287ca5a8b,0x31df9d7ee1a61b362277022eae46435782d66cff,0x3924ac70075078a7713f543b72e3f8817ecec646,0xd1176f2f576c102f6516d386de53ec7a72cc1491
Arg [1] : _required (uint256): 4
Arg [2] : _implementation (address): 0x4ff16c8ee6f5fed268cf764689451bf67795fbe8
Arg [3] : _tetherAddress (address): 0xdac17f958d2ee523a2206206994597c13d831ec7

-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [2] : 0000000000000000000000004ff16c8ee6f5fed268cf764689451bf67795fbe8
Arg [3] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 0000000000000000000000008a3f117ef3b40f1661dedf7f28fc33e7b6fae4f8
Arg [6] : 00000000000000000000000067c3c784c49d9ab8757adb71491df1a1b38fbfa8
Arg [7] : 00000000000000000000000034ebf4f74a881eb63f666e63ce1ff2f287ca5a8b
Arg [8] : 00000000000000000000000031df9d7ee1a61b362277022eae46435782d66cff
Arg [9] : 0000000000000000000000003924ac70075078a7713f543b72e3f8817ecec646
Arg [10] : 000000000000000000000000d1176f2f576c102f6516d386de53ec7a72cc1491


Deployed ByteCode Sourcemap

57:1474:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1095:14;;;;;-1:-1:-1;;;;;1095:14:1;1127:18;;;1119:27;;;;;;1196:4;1190:11;1235:12;1232:1;1227:3;1214:34;1321:1;1318;1304:12;1299:3;1293:4;1288:3;1275:48;1348:14;1398:4;1395:1;1390:3;1375:28;1424:6;1443:28;;;;1506:4;1501:3;1494:17;1443:28;1464:4;1459:3;1452:17;935:23:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;935:23:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;935:23:2;;;;;;;-1:-1:-1;;;;;935:23:2;;;;;;;;;;;;;;3987:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3987:465:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3987:465:2;-1:-1:-1;;;;;3987:465:2;;;;;6582:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6582:296:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6582:296:2;;;256:28:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:28:1;;;;;;;;;;;;;;;;;;;;889:40:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:40:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;889:40:2;-1:-1:-1;;;;;889:40:2;;;;;;;;;;;;;;;;;;;;;819:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;819:64:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;819:64:2;;;;;;-1:-1:-1;;;;;819:64:2;;;221:28:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;221:28:1;;;;141:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;141:30:1;;;;9513:315:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9513:315:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9513:315:2;;;;;;;;;;;;178:37:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;178:37:1;;;;346:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;346:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;346:44:1;;;3582:282:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3582:282:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3582:282:2;-1:-1:-1;;;;;3582:282:2;;;7679:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7679:333:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7679:333:2;;;9003:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9003:248:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9003:248:2;;;764:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;764:49:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;764:49:2;;;;;;;;-1:-1:-1;;;;;764:49:2;-1:-1:-1;;;;;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:48:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;291:48:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;291:48:1;;;9912:118:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9912:118:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9912:118:2;;;;;;;;;;;;;;;;;11136:679;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11136:679:2;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11136:679:2;;;;;;;;;;;;;;;;;;;;;;10209:578;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10209:578:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10209:578:2;;;990:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;990:28:2;;;;5281:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5281:212:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5281:212:2;;;878:157:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;878:157:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;878:157:1;-1:-1:-1;;;;;878:157:1;;;6109:349:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6109:349:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6109:349:2;;;5752:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5752:251:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;5752:251:2;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5752:251:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5752:251:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5752:251:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5752:251:2;;-1:-1:-1;5752:251:2;;-1:-1:-1;;;;;5752:251:2;98:36:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:36:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;98:36:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:41:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:41:2;;;;964:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;964:20:2;;;;396:49:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;396:49:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:49:1;-1:-1:-1;;;;;396:49:1;;;4651:459:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4651:459:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4651:459:2;;;;;;;;;;;8345:461;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8345:461:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;8345:461:2;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8345:461:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8345:461:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8345:461:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8345:461:2;;-1:-1:-1;8345:461:2;;-1:-1:-1;;;;;8345:461:2;6992:536;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6992:536:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6992:536:2;;;452:44:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;452:44:1;;;935:23:2;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;935:23:2;;-1:-1:-1;935:23:2;:::o;3987:465::-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;-1:-1:-1;;;;;1455:14:2;;;;;;:7;:14;;;;;;4077:5;;1455:14;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;-1:-1:-1;;;;;4098:14:2;;4115:5;4098:14;;;:7;:14;;;;;:22;;-1:-1:-1;;4098:22:2;;;4130:170;4147:6;:13;-1:-1:-1;;4147:17:2;4145:19;;4130:170;;;4200:5;-1:-1:-1;;;;;4187:18:2;:6;4194:1;4187:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4187:9:2;:18;4183:117;;;4237:6;4244:13;;-1:-1:-1;;4244:17:2;;;4237:25;;;;;;;;;;;;;;;;4225:6;:9;;-1:-1:-1;;;;;4237:25:2;;;;4232:1;;4225:9;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;4225:37:2;;;;;-1:-1:-1;;;;;4225:37:2;;;;;;4280:5;;4183:117;4166:3;;4130:170;;;-1:-1:-1;4309:6:2;:18;;-1:-1:-1;;4309:18:2;;;;;;:::i;:::-;-1:-1:-1;4352:6:2;:13;4341:8;;:24;4337:74;;;4397:6;:13;4379:32;;:17;:32::i;:::-;4426:19;;-1:-1:-1;;;;;4426:19:2;;;;;;;;1259:1;3987:465;:::o;6582:296::-;6665:10;1455:14;;;;:7;:14;;;;;;;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;1784:28;;;;:13;:28;;;;;;;;6710:10;1784:35;;;;;;;;;6695:13;;6710:10;1784:35;;1783:36;1779:90;;;1833:36;;;-1:-1:-1;;;;;1833:36:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:90;2124:12;:27;;;;;;;;;;:36;;;6742:13;;2124:36;;2120:85;;;2174:31;;;-1:-1:-1;;;;;2174:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2120:85;6814:5;6771:28;;;:13;:28;;;;;;;;6800:10;6771:40;;;;;;;;:48;;-1:-1:-1;;6771:48:2;;;6834:37;6785:13;;6834:37;;;1879:1;1516;;6582:296;;:::o;256:28:1:-;;;;:::o;889:40:2:-;;;;;;;;;;;;;;;:::o;819:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;221:28:1:-;;;-1:-1:-1;;;;;221:28:1;;:::o;141:30::-;;;;;;:::o;9513:315:2:-;9616:10;;9642:179;9659:16;;9657:1;:18;9642:179;;;9701:7;:36;;;;-1:-1:-1;9713:12:2;:15;;;;;;;;;;:24;;;;;9712:25;9701:36;:92;;;;9757:8;:36;;;;-1:-1:-1;9769:12:2;:15;;;;;;;;;;:24;;;;;9757:36;9694:127;;;9820:1;9811:10;;;;9694:127;9677:3;;9642:179;;;;9513:315;;;;:::o;178:37:1:-;;;;;;-1:-1:-1;;;;;178:37:1;;:::o;346:44::-;;;;;;;;;;;;-1:-1:-1;;;;;346:44:1;;:::o;3582:282:2:-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;-1:-1:-1;;;;;1329:14:2;;;;;;:7;:14;;;;;;3675:5;;1329:14;;1325:55;;;1357:23;;;-1:-1:-1;;;;;1357:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1357:23:2;;;;;;;;;;;;;;1325:55;3698:5;-1:-1:-1;;;;;2278:22:2;;;2274:65;;;2314:25;;;-1:-1:-1;;;;;2314:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:65;3730:6;:13;;;;3746:1;3730:17;3749:8;;255:2;2439:10;:28;:66;;;;2495:10;2483:9;:22;2439:66;:96;;;-1:-1:-1;2521:14:2;;2439:96;:127;;;-1:-1:-1;2551:15:2;;2439:127;2432:177;;;2580:29;;;-1:-1:-1;;;;;2580:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2432:177;-1:-1:-1;;;;;3773:14:2;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;3773:21:2;3790:4;3773:21;;;;;;3804:6;27:10:-1;;23:18;;;45:23;;3804:18:2;;;;;;-1:-1:-1;;3804:18:2;;;;;3837:20;;;3773:14;3837:20;2349:1;;1390;1259;3582:282;:::o;7679:333::-;7765:4;;;7809:197;7826:6;:13;7824:15;;7809:197;;;7864:28;;;;:13;:28;;;;;7893:6;:9;;7864:28;;;7900:1;;7893:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7893:9:2;7864:39;;;;;;;;;;;;;;;7860:71;;;7930:1;7921:10;;;;7860:71;7958:8;;7949:5;:17;7945:50;;;7991:4;7984:11;;;;;;7945:50;7841:3;;7809:197;;;;7679:333;;;;;:::o;9003:248::-;9098:10;;9124:120;9141:6;:13;9139:15;;9124:120;;;9177:28;;;;:13;:28;;;;;9206:6;:9;;9177:28;;;9213:1;;9206:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9206:9:2;9177:39;;;;;;;;;;;;;;;9173:71;;;9243:1;9234:10;;;;9173:71;9156:3;;9124:120;;;;9003:248;;;:::o;764:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;764:49:2;;;;;;;-1:-1:-1;;764:49:2;;;:::o;291:48:1:-;;;;;;;;;;;;;;;:::o;9912:118:2:-;9978:16;10017:6;10010:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10010:13:2;;;;;;;;;;;;;;;;;;;;;;;9912:118;;:::o;11136:679::-;11257:29;11302:32;11348:16;;11337:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11337:28:2;-1:-1:-1;11302:63:2;-1:-1:-1;11375:10:2;;11415:250;11427:16;;11425:1;:18;11415:250;;;11469:7;:36;;;;-1:-1:-1;11481:12:2;:15;;;;;;;;;;:24;;;;;11480:25;11469:36;:92;;;;11525:8;:36;;;;-1:-1:-1;11537:12:2;:15;;;;;;;;;;:24;;;;;11525:36;11462:203;;;11621:1;11593:18;11612:5;11593:25;;;;;;;;;;;;;;;;;;:29;11649:1;11640:10;;;;;11462:203;11445:3;;11415:250;;;11708:4;11703:2;:9;11692:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11692:21:2;;11674:39;;11730:4;11728:6;;11723:85;11738:2;11736:1;:4;11723:85;;;11787:18;11806:1;11787:21;;;;;;;;;;;;;;;;;;11759:15;11779:4;11775:1;:8;11759:25;;;;;;;;;;;;;;;;;;:49;11742:3;;11723:85;;;11136:679;;;;;;;;;:::o;10209:578::-;10300:31;10347:34;10398:6;:13;;;;10384:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;10384:28:2;-1:-1:-1;10347:65:2;-1:-1:-1;10422:10:2;;10462:186;10474:6;:13;10472:15;;10462:186;;;10510:28;;;;:13;:28;;;;;10539:6;:9;;10510:28;;;10546:1;;10539:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10539:9:2;10510:39;;;;;;;;;;;;;;;10506:142;;;10596:6;:9;;10603:1;;10596:9;;;;;;;;;;;;;;;;10569:24;;-1:-1:-1;;;;;10596:9:2;;;;10569:17;;10587:5;;10569:24;;;;;;-1:-1:-1;;;;;10569:36:2;;;:24;;;;;;;;;;:36;10632:1;10623:10;;;;;10506:142;10489:3;;10462:186;;;10688:5;10674:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;10674:20:2;;10657:37;;10711:1;10709:3;;10704:76;10716:5;10714:1;:7;10704:76;;;10760:17;10778:1;10760:20;;;;;;;;;;;;;;;;;;10740:14;10755:1;10740:17;;;;;;;;;;-1:-1:-1;;;;;10740:40:2;;;:17;;;;;;;;;;:40;10723:3;;10704:76;;;10209:578;;;;;;:::o;990:28::-;;;;:::o;5281:212::-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;5383:6;:13;5398:9;255:2;2439:28;;;:66;;;2495:10;2483:9;:22;2439:66;:96;;;-1:-1:-1;2521:14:2;;2439:96;:127;;;-1:-1:-1;2551:15:2;;2439:127;2432:177;;;2580:29;;;-1:-1:-1;;;;;2580:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2432:177;5423:8;:20;;;5458:28;;;;;;;;;;;;;;;;;1259:1;;5281:212;:::o;878:157:1:-;1185:10:2;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;967:14:1;;-1:-1:-1;;;;;967:25:1;;;:14;;;;;:25;;959:34;;;;;;1003:14;:24;;-1:-1:-1;;;;;1003:24:1;;;;;-1:-1:-1;;1003:24:1;;;;;;;;;878:157::o;6109:349:2:-;6192:10;1455:14;;;;:7;:14;;;;;;;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;1642:1;1591:27;;;;;;;;;;:39;6230:13;;-1:-1:-1;;;;;1591:39:2;:53;1587:104;;;1658:33;;;-1:-1:-1;;;;;1658:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1587:104;1964:28;;;;:13;:28;;;;;;;;6281:10;1964:35;;;;;;;;;6266:13;;6281:10;1964:35;;1960:85;;;2013:32;;;-1:-1:-1;;;;;2013:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1960:85;6307:28;;;;6350:4;6307:28;;;;;;;;6336:10;6307:40;;;;;;;;:47;;-1:-1:-1;;6307:47:2;;;;;;;6369:39;;6321:13;;6369:39;;;6418:33;6437:13;6418:18;:33::i;:::-;1701:1;;1516;6109:349;;:::o;5752:251::-;5863:18;5913:40;5928:11;5941:5;5948:4;5913:14;:40::i;:::-;5897:56;;5963:33;5982:13;5963:18;:33::i;:::-;5752:251;;;;;:::o;98:36:1:-;;;;;;;;;;;;;;;;;;;:::o;216:41:2:-;255:2;216:41;:::o;964:20::-;;;;:::o;396:49:1:-;;;;;;;;;;;;;:::o;4651:459:2:-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;-1:-1:-1;;;;;1455:14:2;;;;;;:7;:14;;;;;;4760:5;;1455:14;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;-1:-1:-1;;;;;1329:14:2;;;;;;:7;:14;;;;;;4793:8;;1329:14;;1325:55;;;1357:23;;;-1:-1:-1;;;;;1357:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1357:23:2;;;;;;;;;;;;;;1325:55;4822:6;4817:149;4834:6;:13;4832:15;;4817:149;;;4883:5;-1:-1:-1;;;;;4870:18:2;:6;4877:1;4870:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4870:9:2;:18;4866:100;;;4920:8;4908:6;4915:1;4908:9;;;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1;;;;;4908:20:2;;;;;-1:-1:-1;;;;;4908:20:2;;;;;;4946:5;;4866:100;4849:3;;4817:149;;;-1:-1:-1;;;;;;4975:14:2;;;4992:5;4975:14;;;:7;:14;;;;;;:22;;-1:-1:-1;;4975:22:2;;;;;;5007:17;;;;;;;;:24;;;;;4975:22;5007:24;;;;5046:19;;4975:14;;5046:19;;;5080:23;;-1:-1:-1;;;;;5080:23:2;;;;;;;;1516:1;1259;4651:459;;:::o;8345:461::-;8482:18;8452:11;-1:-1:-1;;;;;2278:22:2;;;2274:65;;;2314:25;;;-1:-1:-1;;;;;2314:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:65;8532:16;;8588:140;;;;;;;;-1:-1:-1;;;;;8588:140:2;;;;;;;;;;;;;;;;;;-1:-1:-1;8588:140:2;;;;;;8558:27;;;;;;;;;;:170;;;;-1:-1:-1;;8558:170:2;;;;;;;;;;-1:-1:-1;8558:170:2;;;;;;;8532:16;;-1:-1:-1;8588:140:2;;8558:27;;:170;;;;;;;;;;:::i;:::-;-1:-1:-1;8558:170:2;;;;;;;;;;;;-1:-1:-1;;8558:170:2;;;;;;;;;;8738:16;:21;;-1:-1:-1;8738:21:2;;;8774:25;;8785:13;;8774:25;;-1:-1:-1;;8774:25:2;8345:461;;;;;;:::o;6992:536::-;2124:12;:27;;;;;;;;;;:36;;;7075:13;;2124:36;;2120:85;;;2174:31;;;-1:-1:-1;;;;;2174:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2120:85;7108:26;7120:13;7108:11;:26::i;:::-;7104:418;;;7150:23;7176:27;;;;;;;;;;;7217:12;;;:19;;-1:-1:-1;;7217:19:2;7232:4;7217:19;;;;;;7268:15;;7295:9;;;;7268:47;;7306:8;;;;7268:47;;7176:27;;7150:23;-1:-1:-1;;;;;7268:15:2;;;;7295:9;;7306:8;;7268:47;;7306:8;;-1:-1:-1;;7268:47:2;;;;7217:19;7268:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7250:65:2;;;7333:6;7329:183;;;7362:24;;7372:13;;7362:24;;;;;7329:183;;;7428:31;;7445:13;;7428:31;;;;;7477:12;;;:20;;-1:-1:-1;;7477:20:2;;;7329:183;7104:418;;;6992:536;;:::o;452:44:1:-;;;;;;;;;;;;;;;:::o;57:1474::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:1474:1;;;-1:-1:-1;57:1474:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://620a304d1f4c0cf3ced6c4561eded58216eafb3de08d3b63fc721313a44776de
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.