ETH Price: $1,877.41 (+3.35%)
Gas: 26 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multi Chain

Multichain Addresses

0 address found via
Transaction Hash
Method
Block
From
To
Value
Batch Checkpoint126828102021-06-22 7:53:56715 days 59 mins ago1624348436IN
0x1a5Ff5...01eC650c
0 ETH0.0257109820
Batch Checkpoint126828032021-06-22 7:50:58715 days 1 hr ago1624348258IN
0x1a5Ff5...01eC650c
0 ETH0.0568159220
0x60c06040121935612021-04-07 15:45:26790 days 17 hrs ago1617810326IN
 Create: CDPRegistry
0 ETH0.14009638143

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CDPRegistry

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-07
*/

// File: localhost/contracts/interfaces/ICollateralRegistry.sol

// SPDX-License-Identifier: bsl-1.1

interface ICollateralRegistry {
    function addCollateral ( address asset ) external;
    function collateralId ( address ) external view returns ( uint256 );
    function collaterals (  ) external view returns ( address[] memory );
    function removeCollateral ( address asset ) external;
    function vaultParameters (  ) external view returns ( address );
    function isCollateral ( address asset ) external view returns ( bool );
    function collateralList ( uint id ) external view returns ( address );
    function collateralsCount (  ) external view returns ( uint );
}

// File: localhost/contracts/interfaces/IVault.sol

interface IVault {
    function DENOMINATOR_1E2 (  ) external view returns ( uint256 );
    function DENOMINATOR_1E5 (  ) external view returns ( uint256 );
    function borrow ( address asset, address user, uint256 amount ) external returns ( uint256 );
    function calculateFee ( address asset, address user, uint256 amount ) external view returns ( uint256 );
    function changeOracleType ( address asset, address user, uint256 newOracleType ) external;
    function chargeFee ( address asset, address user, uint256 amount ) external;
    function col (  ) external view returns ( address );
    function colToken ( address, address ) external view returns ( uint256 );
    function collaterals ( address, address ) external view returns ( uint256 );
    function debts ( address, address ) external view returns ( uint256 );
    function depositCol ( address asset, address user, uint256 amount ) external;
    function depositEth ( address user ) external payable;
    function depositMain ( address asset, address user, uint256 amount ) external;
    function destroy ( address asset, address user ) external;
    function getTotalDebt ( address asset, address user ) external view returns ( uint256 );
    function lastUpdate ( address, address ) external view returns ( uint256 );
    function liquidate ( address asset, address positionOwner, uint256 mainAssetToLiquidator, uint256 colToLiquidator, uint256 mainAssetToPositionOwner, uint256 colToPositionOwner, uint256 repayment, uint256 penalty, address liquidator ) external;
    function liquidationBlock ( address, address ) external view returns ( uint256 );
    function liquidationFee ( address, address ) external view returns ( uint256 );
    function liquidationPrice ( address, address ) external view returns ( uint256 );
    function oracleType ( address, address ) external view returns ( uint256 );
    function repay ( address asset, address user, uint256 amount ) external returns ( uint256 );
    function spawn ( address asset, address user, uint256 _oracleType ) external;
    function stabilityFee ( address, address ) external view returns ( uint256 );
    function tokenDebts ( address ) external view returns ( uint256 );
    function triggerLiquidation ( address asset, address positionOwner, uint256 initialPrice ) external;
    function update ( address asset, address user ) external;
    function usdp (  ) external view returns ( address );
    function vaultParameters (  ) external view returns ( address );
    function weth (  ) external view returns ( address payable );
    function withdrawCol ( address asset, address user, uint256 amount ) external;
    function withdrawEth ( address user, uint256 amount ) external;
    function withdrawMain ( address asset, address user, uint256 amount ) external;
}

// File: localhost/contracts/CDPRegistry.sol

/*
  Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]).
*/
pragma solidity ^0.7.1;
pragma experimental ABIEncoderV2;



contract CDPRegistry {

    struct CDP {
        address asset;
        address owner;
    }

    mapping (address => address[]) cdpList;
    mapping (address => mapping (address => uint)) cdpIndex;

    IVault public immutable vault;
    ICollateralRegistry public immutable cr;

    event Added(address indexed asset, address indexed owner);
    event Removed(address indexed asset, address indexed owner);

    constructor (address _vault, address _collateralRegistry) {
        require(_vault != address(0) && _collateralRegistry != address(0), "Unit Protocol: ZERO_ADDRESS");
        vault = IVault(_vault);
        cr = ICollateralRegistry(_collateralRegistry);
    }

    function checkpoint(address asset, address owner) public {
        require(asset != address(0) && owner != address(0), "Unit Protocol: ZERO_ADDRESS");

        bool listed = isListed(asset, owner);
        bool alive = isAlive(asset, owner);

        if (alive && !listed) {
            _addCdp(asset, owner);
        } else if (listed && !alive) {
            _removeCdp(asset, owner);
        }
    }

    function batchCheckpointForAsset(address asset, address[] calldata owners) external {
        for (uint i = 0; i < owners.length; i++) {
            checkpoint(asset, owners[i]);
        }
    }

    function batchCheckpoint(address[] calldata assets, address[] calldata owners) external {
        require(assets.length == owners.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH");
        for (uint i = 0; i < owners.length; i++) {
            checkpoint(assets[i], owners[i]);
        }
    }

    function isAlive(address asset, address owner) public view returns (bool) {
        return vault.debts(asset, owner) != 0;
    }

    function isListed(address asset, address owner) public view returns (bool) {
        if (cdpList[asset].length == 0) { return false; }
        return cdpIndex[asset][owner] != 0 || cdpList[asset][0] == owner;
    }

    function _removeCdp(address asset, address owner) internal {
        uint id = cdpIndex[asset][owner];

        delete cdpIndex[asset][owner];

        uint lastId = cdpList[asset].length - 1;

        if (id != lastId) {
            address lastOwner = cdpList[asset][lastId];
            cdpList[asset][id] = lastOwner;
            cdpIndex[asset][lastOwner] = id;
        }

        cdpList[asset].pop();

        emit Removed(asset, owner);
    }

    function _addCdp(address asset, address owner) internal {
        cdpIndex[asset][owner] = cdpList[asset].length;
        cdpList[asset].push(owner);

        emit Added(asset, owner);
    }

    function getCdpsByCollateral(address asset) external view returns (CDP[] memory cdps) {
        address[] memory owners = cdpList[asset];
        cdps = new CDP[](owners.length);
        for (uint i = 0; i < owners.length; i++) {
            cdps[i] = CDP(asset, owners[i]);
        }
    }

    function getCdpsByOwner(address owner) external view returns (CDP[] memory r) {
        address[] memory assets = cr.collaterals();
        CDP[] memory cdps = new CDP[](assets.length);
        uint actualCdpsCount;

        for (uint i = 0; i < assets.length; i++) {
            if (isListed(assets[i], owner)) {
                cdps[actualCdpsCount++] = CDP(assets[i], owner);
            }
        }

        r = new CDP[](actualCdpsCount);

        for (uint i = 0; i < actualCdpsCount; i++) {
            r[i] = cdps[i];
        }

    }

    function getAllCdps() external view returns (CDP[] memory r) {
        uint totalCdpCount = getCdpsCount();
        
        uint cdpCount;

        r = new CDP[](totalCdpCount);

        address[] memory assets = cr.collaterals();
        for (uint i = 0; i < assets.length; i++) {
            address[] memory owners = cdpList[assets[i]];
            for (uint j = 0; j < owners.length; j++) {
                r[cdpCount++] = CDP(assets[i], owners[j]);
            }
        }
    }

    function getCdpsCount() public view returns (uint totalCdpCount) {
        address[] memory assets = cr.collaterals();
        for (uint i = 0; i < assets.length; i++) {
            totalCdpCount += cdpList[assets[i]].length;
        }
    }

    function getCdpsCountForCollateral(address asset) public view returns (uint) {
        return cdpList[asset].length;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_collateralRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"Added","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"Removed","type":"event"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"address[]","name":"owners","type":"address[]"}],"name":"batchCheckpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address[]","name":"owners","type":"address[]"}],"name":"batchCheckpointForAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"checkpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cr","outputs":[{"internalType":"contract ICollateralRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllCdps","outputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct CDPRegistry.CDP[]","name":"r","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getCdpsByCollateral","outputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct CDPRegistry.CDP[]","name":"cdps","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getCdpsByOwner","outputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct CDPRegistry.CDP[]","name":"r","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCdpsCount","outputs":[{"internalType":"uint256","name":"totalCdpCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getCdpsCountForCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"isAlive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"isListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract IVault","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b506040516200120838038062001208833981016040819052610031916100b0565b6001600160a01b0382161580159061005157506001600160a01b03811615155b6100765760405162461bcd60e51b815260040161006d906100e2565b60405180910390fd5b6001600160601b0319606092831b8116608052911b1660a052610119565b80516001600160a01b03811681146100ab57600080fd5b919050565b600080604083850312156100c2578182fd5b6100cb83610094565b91506100d960208401610094565b90509250929050565b6020808252601b908201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604082015260600190565b60805160601c60a05160601c6110b162000157600039806103ce528061059452806106945280610780525080610a5e5280610af052506110b16000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063bb55b7fc11610071578063bb55b7fc14610147578063bce092c41461015a578063e5011ac614610162578063f45a432014610175578063f8aa43f714610195578063fbfa77cf146101a8576100b4565b80633e18638f146100b957806348e3da3c146100e25780635a5fdfe5146100f757806362eb33e3146100ff578063a04a7c6914610114578063b0113e6b14610127575b600080fd5b6100cc6100c7366004610d62565b6101b0565b6040516100d99190610f60565b60405180910390f35b6100f56100f0366004610e10565b6102df565b005b6100cc610366565b610107610592565b6040516100d99190610fc7565b6100f5610122366004610dbd565b6105b6565b61013a610135366004610d62565b6105df565b6040516100d9919061105a565b6100f5610155366004610d85565b6105fe565b61013a61068f565b6100cc610170366004610d62565b61077a565b610188610183366004610d85565b610997565b6040516100d99190610fbc565b6101886101a3366004610d85565b610a44565b610107610aee565b6001600160a01b03811660009081526020818152604080832080548251818502810185019093528083526060949383018282801561021757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116101f9575b50505050509050805167ffffffffffffffff8111801561023657600080fd5b5060405190808252806020026020018201604052801561027057816020015b61025d610cf7565b8152602001906001900390816102555790505b50915060005b81518110156102d8576040518060400160405280856001600160a01b031681526020018383815181106102a557fe5b60200260200101516001600160a01b03168152508382815181106102c557fe5b6020908102919091010152600101610276565b5050919050565b8281146103075760405162461bcd60e51b81526004016102fe90610fdb565b60405180910390fd5b60005b8181101561035f5761035785858381811061032157fe5b90506020020160208101906103369190610d62565b84848481811061034257fe5b90506020020160208101906101559190610d62565b60010161030a565b5050505050565b6060600061037261068f565b905060008167ffffffffffffffff8111801561038d57600080fd5b506040519080825280602002602001820160405280156103c757816020015b6103b4610cf7565b8152602001906001900390816103ac5790505b50925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634113e5ca6040518163ffffffff1660e01b815260040160006040518083038186803b15801561042557600080fd5b505afa158015610439573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104619190810190610e79565b905060005b815181101561058b57600080600084848151811061048057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104fc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104de575b5050505050905060005b815181101561058157604051806040016040528085858151811061052657fe5b60200260200101516001600160a01b0316815260200183838151811061054857fe5b60200260200101516001600160a01b031681525087868060010197508151811061056e57fe5b6020908102919091010152600101610506565b5050600101610466565b5050505090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b818110156105d9576105d18484848481811061034257fe5b6001016105b9565b50505050565b6001600160a01b0381166000908152602081905260409020545b919050565b6001600160a01b0382161580159061061e57506001600160a01b03811615155b61063a5760405162461bcd60e51b81526004016102fe90611023565b60006106468383610997565b905060006106548484610a44565b9050808015610661575081155b15610675576106708484610b12565b6105d9565b818015610680575080155b156105d9576105d98484610b8e565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634113e5ca6040518163ffffffff1660e01b815260040160006040518083038186803b1580156106eb57600080fd5b505afa1580156106ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107279190810190610e79565b905060005b81518110156107755760008083838151811061074457fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002054929092019160010161072c565b505090565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634113e5ca6040518163ffffffff1660e01b815260040160006040518083038186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108139190810190610e79565b90506000815167ffffffffffffffff8111801561082f57600080fd5b5060405190808252806020026020018201604052801561086957816020015b610856610cf7565b81526020019060019003908161084e5790505b5090506000805b83518110156108fb5761089684828151811061088857fe5b602002602001015187610997565b156108f35760405180604001604052808583815181106108b257fe5b60200260200101516001600160a01b03168152602001876001600160a01b03168152508383806001019450815181106108e757fe5b60200260200101819052505b600101610870565b508067ffffffffffffffff8111801561091357600080fd5b5060405190808252806020026020018201604052801561094d57816020015b61093a610cf7565b8152602001906001900390816109325790505b50935060005b8181101561098e5782818151811061096757fe5b602002602001015185828151811061097b57fe5b6020908102919091010152600101610953565b50505050919050565b6001600160a01b0382166000908152602081905260408120546109bc57506000610a3e565b6001600160a01b03808416600090815260016020908152604080832093861683529290522054151580610a3b5750816001600160a01b0316600080856001600160a01b03166001600160a01b03168152602001908152602001600020600081548110610a2457fe5b6000918252602090912001546001600160a01b0316145b90505b92915050565b604051634ac1c33d60e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634ac1c33d90610a959086908690600401610f46565b60206040518083038186803b158015610aad57600080fd5b505afa158015610ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae59190610f2e565b15159392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03808316600081815260208181526040808320805460018085528386209789168087529785528386208290558585528101825590845291832090910180546001600160a01b03191685179055517f938c63ac3d228b23f6bee7618fefc6790522e338ac202c958a2ea9eb9706c5d19190a35050565b6001600160a01b0380831660008181526001602090815260408083209486168352938152838220805490839055928252819052919091205460001901808214610c74576001600160a01b0384166000908152602081905260408120805483908110610bf557fe5b60009182526020808320909101546001600160a01b038881168452918390526040909220805491909216925082919085908110610c2e57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905587831682526001815260408083209490931682529290925290208290555b6001600160a01b0384166000908152602081905260409020805480610c9557fe5b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0385811692908716917f40e634d0e26d9ec2e860e4dd9b7b2cfbb569b6058362a1a54d3a94718bc495879190a350505050565b604080518082019091526000808252602082015290565b80516105f981611063565b60008083601f840112610d2a578081fd5b50813567ffffffffffffffff811115610d41578182fd5b6020830191508360208083028501011115610d5b57600080fd5b9250929050565b600060208284031215610d73578081fd5b8135610d7e81611063565b9392505050565b60008060408385031215610d97578081fd5b8235610da281611063565b91506020830135610db281611063565b809150509250929050565b600080600060408486031215610dd1578081fd5b8335610ddc81611063565b9250602084013567ffffffffffffffff811115610df7578182fd5b610e0386828701610d19565b9497909650939450505050565b60008060008060408587031215610e25578081fd5b843567ffffffffffffffff80821115610e3c578283fd5b610e4888838901610d19565b90965094506020870135915080821115610e60578283fd5b50610e6d87828801610d19565b95989497509550505050565b60006020808385031215610e8b578182fd5b825167ffffffffffffffff80821115610ea2578384fd5b818501915085601f830112610eb5578384fd5b815181811115610ec157fe5b83810260405185828201018181108582111715610eda57fe5b604052828152858101935084860182860187018a1015610ef8578788fd5b8795505b83861015610f2157610f0d81610d0e565b855260019590950194938601938601610efc565b5098975050505050505050565b600060208284031215610f3f578081fd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b602080825282518282018190526000919060409081850190868401855b82811015610faf57815180516001600160a01b0390811686529087015116868501529284019290850190600101610f7d565b5091979650505050505050565b901515815260200190565b6001600160a01b0391909116815260200190565b60208082526028908201527f556e69742050726f746f636f6c3a20415247554d454e54535f4c454e4754485f60408201526709a92a69a82a886960c31b606082015260800190565b6020808252601b908201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604082015260600190565b90815260200190565b6001600160a01b038116811461107857600080fd5b5056fea264697066735822122075da99575f0f07e069c790e5b01c3ceb08720423c5f635362ea8d635b1e858c764736f6c63430007060033000000000000000000000000b1cff81b9305166ff1efc49a129ad2afcd7bcf190000000000000000000000003db39b538db1123389c77f888a213f1a6dd22ef3

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

000000000000000000000000b1cff81b9305166ff1efc49a129ad2afcd7bcf190000000000000000000000003db39b538db1123389c77f888a213f1a6dd22ef3

-----Decoded View---------------
Arg [0] : _vault (address): 0xb1cFF81b9305166ff1EFc49A129ad2AfCd7BCf19
Arg [1] : _collateralRegistry (address): 0x3DB39B538Db1123389c77F888a213F1A6dd22EF3

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b1cff81b9305166ff1efc49a129ad2afcd7bcf19
Arg [1] : 0000000000000000000000003db39b538db1123389c77f888a213f1a6dd22ef3


Deployed ByteCode Sourcemap

3779:4434:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6455:296;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5107:300;;;;;;:::i;:::-;;:::i;:::-;;7326:498;;;:::i;4029:39::-;;;:::i;:::-;;;;;;;:::i;4901:198::-;;;;;;:::i;:::-;;:::i;8086:124::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4480:413::-;;;;;;:::i;:::-;;:::i;7832:246::-;;;:::i;6759:559::-;;;;;;:::i;:::-;;:::i;5553:217::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5415:130::-;;;;;;:::i;:::-;;:::i;3993:29::-;;;:::i;6455:296::-;-1:-1:-1;;;;;6578:14:0;;6552:23;6578:14;;;;;;;;;;;6552:40;;;;;;;;;;;;;;;;;6522:17;;6552:23;:40;;6578:14;6552:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6552:40:0;;;;;;;;;;;;;;;;;;;;;;;6620:6;:13;6610:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6603:31;;6650:6;6645:99;6666:6;:13;6662:1;:17;6645:99;;;6711:21;;;;;;;;6715:5;-1:-1:-1;;;;;6711:21:0;;;;;6722:6;6729:1;6722:9;;;;;;;;;;;;;;-1:-1:-1;;;;;6711:21:0;;;;6701:4;6706:1;6701:7;;;;;;;;;;;;;;;;;:31;6681:3;;6645:99;;;;6455:296;;;;:::o;5107:300::-;5214:30;;;5206:83;;;;-1:-1:-1;;;5206:83:0;;;;;;;:::i;:::-;;;;;;;;;5305:6;5300:100;5317:17;;;5300:100;;;5356:32;5367:6;;5374:1;5367:9;;;;;;;;;;;;;;;;;;;;:::i;:::-;5378:6;;5385:1;5378:9;;;;;;;;;;;;;;;;;;;;:::i;5356:32::-;5336:3;;5300:100;;;;5107:300;;;;:::o;7326:498::-;7371:14;7398:18;7419:14;:12;:14::i;:::-;7398:35;;7454:13;7494;7484:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7480:28;;7521:23;7547:2;-1:-1:-1;;;;;7547:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7547:16:0;;;;;;;;;;;;:::i;:::-;7521:42;;7579:6;7574:243;7595:6;:13;7591:1;:17;7574:243;;;7630:23;7656:7;:18;7664:6;7671:1;7664:9;;;;;;;;;;;;;;-1:-1:-1;;;;;7656:18:0;-1:-1:-1;;;;;7656:18:0;;;;;;;;;;;;7630:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7630:44:0;;;;;;;;;;;;;;;;;;;;;;;7694:6;7689:117;7710:6;:13;7706:1;:17;7689:117;;;7765:25;;;;;;;;7769:6;7776:1;7769:9;;;;;;;;;;;;;;-1:-1:-1;;;;;7765:25:0;;;;;7780:6;7787:1;7780:9;;;;;;;;;;;;;;-1:-1:-1;;;;;7765:25:0;;;;7749:1;7751:10;;;;;;7749:13;;;;;;;;;;;;;;;;;:41;7725:3;;7689:117;;;-1:-1:-1;;7610:3:0;;7574:243;;;;7326:498;;;;:::o;4029:39::-;;;:::o;4901:198::-;5001:6;4996:96;5013:17;;;4996:96;;;5052:28;5063:5;5070:6;;5077:1;5070:9;;;;;;5052:28;5032:3;;4996:96;;;;4901:198;;;:::o;8086:124::-;-1:-1:-1;;;;;8181:14:0;;8157:4;8181:14;;;;;;;;;;:21;8086:124;;;;:::o;4480:413::-;-1:-1:-1;;;;;4556:19:0;;;;;;:42;;-1:-1:-1;;;;;;4579:19:0;;;;4556:42;4548:82;;;;-1:-1:-1;;;4548:82:0;;;;;;;:::i;:::-;4643:11;4657:22;4666:5;4673;4657:8;:22::i;:::-;4643:36;;4690:10;4703:21;4711:5;4718;4703:7;:21::i;:::-;4690:34;;4741:5;:16;;;;;4751:6;4750:7;4741:16;4737:149;;;4774:21;4782:5;4789;4774:7;:21::i;:::-;4737:149;;;4817:6;:16;;;;;4828:5;4827:6;4817:16;4813:73;;;4850:24;4861:5;4868;4850:10;:24::i;7832:246::-;7877:18;7908:23;7934:2;-1:-1:-1;;;;;7934:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7934:16:0;;;;;;;;;;;;:::i;:::-;7908:42;;7966:6;7961:110;7982:6;:13;7978:1;:17;7961:110;;;8034:7;:18;8042:6;8049:1;8042:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8034:18:0;;;;;;;;;;;-1:-1:-1;8034:18:0;:25;8017:42;;;;;7997:3;;7961:110;;;;7832:246;;:::o;6759:559::-;6821:14;6848:23;6874:2;-1:-1:-1;;;;;6874:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6874:16:0;;;;;;;;;;;;:::i;:::-;6848:42;;6901:17;6931:6;:13;6921:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;6901:44:0;-1:-1:-1;6956:20:0;;6989:181;7010:6;:13;7006:1;:17;6989:181;;;7049:26;7058:6;7065:1;7058:9;;;;;;;;;;;;;;7069:5;7049:8;:26::i;:::-;7045:114;;;7122:21;;;;;;;;7126:6;7133:1;7126:9;;;;;;;;;;;;;;-1:-1:-1;;;;;7122:21:0;;;;;7137:5;-1:-1:-1;;;;;7122:21:0;;;;7096:4;7101:17;;;;;;7096:23;;;;;;;;;;;;;:47;;;;7045:114;7025:3;;6989:181;;;;7196:15;7186:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7182:30;;7230:6;7225:84;7246:15;7242:1;:19;7225:84;;;7290:4;7295:1;7290:7;;;;;;;;;;;;;;7283:1;7285;7283:4;;;;;;;;;;;;;;;;;:14;7263:3;;7225:84;;;;6759:559;;;;;;:::o;5553:217::-;-1:-1:-1;;;;;5643:14:0;;5622:4;5643:14;;;;;;;;;;:21;5639:49;;-1:-1:-1;5680:5:0;5673:12;;5639:49;-1:-1:-1;;;;;5705:15:0;;;;;;;:8;:15;;;;;;;;:22;;;;;;;;;;:27;;;:57;;;5757:5;-1:-1:-1;;;;;5736:26:0;:7;:14;5744:5;-1:-1:-1;;;;;5736:14:0;-1:-1:-1;;;;;5736:14:0;;;;;;;;;;;;5751:1;5736:17;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5736:17:0;:26;5705:57;5698:64;;5553:217;;;;;:::o;5415:130::-;5507:25;;-1:-1:-1;;;5507:25:0;;5483:4;;-1:-1:-1;;;;;5507:5:0;:11;;;;:25;;5519:5;;5526;;5507:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;;;5415:130;-1:-1:-1;;;5415:130:0:o;3993:29::-;;;:::o;6252:195::-;-1:-1:-1;;;;;6344:14:0;;;:7;:14;;;;;;;;;;;:21;;6319:8;:15;;;;;;:22;;;;;;;;;;;;:46;;;6376:14;;;:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6376:26:0;;;;;6420:19;;;6344:7;6420:19;6252:195;;:::o;5778:466::-;-1:-1:-1;;;;;5858:15:0;;;5848:7;5858:15;;;:8;:15;;;;;;;;:22;;;;;;;;;;;;;5893:29;;;;5949:14;;;;;;;;;;:21;-1:-1:-1;;5949:25:0;5991:12;;;5987:178;;-1:-1:-1;;;;;6040:14:0;;6020:17;6040:14;;;;;;;;;;:22;;6055:6;;6040:22;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6077:14:0;;;;;;;;;;;;;:18;;6040:22;;;;;-1:-1:-1;6040:22:0;;6077:14;6092:2;;6077:18;;;;;;;;;;;;;;;;;;:30;;-1:-1:-1;;;;;;6077:30:0;-1:-1:-1;;;;;6077:30:0;;;;;;6122:15;;;;;-1:-1:-1;6122:15:0;;;;;;:26;;;;;;;;;;;;:31;;;5987:178;-1:-1:-1;;;;;6177:14:0;;:7;:14;;;;;;;;;;:20;;;;;;;;;;;;;;;;-1:-1:-1;;6177:20:0;;;;;-1:-1:-1;;;;;;6177:20:0;;;;;;;;;6215:21;;-1:-1:-1;;;;;6215:21:0;;;;;;;;;;6177:20;6215:21;5778:466;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;14:142:1:-;95:13;;117:33;95:13;117:33;:::i;161:400::-;;;294:3;287:4;279:6;275:17;271:27;261:2;;317:6;309;302:22;261:2;-1:-1:-1;345:20:1;;388:18;377:30;;374:2;;;427:8;417;410:26;374:2;471:4;463:6;459:17;447:29;;534:3;527:4;519;511:6;507:17;499:6;495:30;491:41;488:50;485:2;;;551:1;548;541:12;485:2;251:310;;;;;:::o;566:259::-;;678:2;666:9;657:7;653:23;649:32;646:2;;;699:6;691;684:22;646:2;743:9;730:23;762:33;789:5;762:33;:::i;:::-;814:5;636:189;-1:-1:-1;;;636:189:1:o;830:402::-;;;959:2;947:9;938:7;934:23;930:32;927:2;;;980:6;972;965:22;927:2;1024:9;1011:23;1043:33;1070:5;1043:33;:::i;:::-;1095:5;-1:-1:-1;1152:2:1;1137:18;;1124:32;1165:35;1124:32;1165:35;:::i;:::-;1219:7;1209:17;;;917:315;;;;;:::o;1237:600::-;;;;1401:2;1389:9;1380:7;1376:23;1372:32;1369:2;;;1422:6;1414;1407:22;1369:2;1466:9;1453:23;1485:33;1512:5;1485:33;:::i;:::-;1537:5;-1:-1:-1;1593:2:1;1578:18;;1565:32;1620:18;1609:30;;1606:2;;;1657:6;1649;1642:22;1606:2;1701:76;1769:7;1760:6;1749:9;1745:22;1701:76;:::i;:::-;1359:478;;1796:8;;-1:-1:-1;1675:102:1;;-1:-1:-1;;;;1359:478:1:o;1842:815::-;;;;;2041:2;2029:9;2020:7;2016:23;2012:32;2009:2;;;2062:6;2054;2047:22;2009:2;2107:9;2094:23;2136:18;2177:2;2169:6;2166:14;2163:2;;;2198:6;2190;2183:22;2163:2;2242:76;2310:7;2301:6;2290:9;2286:22;2242:76;:::i;:::-;2337:8;;-1:-1:-1;2216:102:1;-1:-1:-1;2425:2:1;2410:18;;2397:32;;-1:-1:-1;2441:16:1;;;2438:2;;;2475:6;2467;2460:22;2438:2;;2519:78;2589:7;2578:8;2567:9;2563:24;2519:78;:::i;:::-;1999:658;;;;-1:-1:-1;2616:8:1;-1:-1:-1;;;;1999:658:1:o;2662:1156::-;;2788:2;2831;2819:9;2810:7;2806:23;2802:32;2799:2;;;2852:6;2844;2837:22;2799:2;2890:9;2884:16;2919:18;2960:2;2952:6;2949:14;2946:2;;;2981:6;2973;2966:22;2946:2;3024:6;3013:9;3009:22;2999:32;;3069:7;3062:4;3058:2;3054:13;3050:27;3040:2;;3096:6;3088;3081:22;3040:2;3130;3124:9;3152:2;3148;3145:10;3142:2;;;3158:9;3142:2;3196;3192;3188:11;3228:2;3222:9;3279:2;3274;3266:6;3262:15;3258:24;3332:6;3320:10;3317:22;3312:2;3300:10;3297:18;3294:46;3291:2;;;3343:9;3291:2;3370;3363:22;3420:18;;;3454:15;;;;-1:-1:-1;3489:11:1;;;3519;;;3515:20;;3512:33;-1:-1:-1;3509:2:1;;;3563:6;3555;3548:22;3509:2;3590:6;3581:15;;3605:182;3619:2;3616:1;3613:9;3605:182;;;3676:36;3708:3;3676:36;:::i;:::-;3664:49;;3637:1;3630:9;;;;;3733:12;;;;3765;;3605:182;;;-1:-1:-1;3806:6:1;2768:1050;-1:-1:-1;;;;;;;;2768:1050:1:o;3823:194::-;;3946:2;3934:9;3925:7;3921:23;3917:32;3914:2;;;3967:6;3959;3952:22;3914:2;-1:-1:-1;3995:16:1;;3904:113;-1:-1:-1;3904:113:1:o;4022:304::-;-1:-1:-1;;;;;4252:15:1;;;4234:34;;4304:15;;4299:2;4284:18;;4277:43;4184:2;4169:18;;4151:175::o;4331:841::-;4542:2;4594:21;;;4664:13;;4567:18;;;4686:22;;;4331:841;;4542:2;4727;;4745:18;;;;4786:15;;;4331:841;4832:314;4846:6;4843:1;4840:13;4832:314;;;4905:13;;4989:9;;-1:-1:-1;;;;;4985:18:1;;;4973:31;;5048:11;;;5042:18;5038:27;5024:12;;;5017:49;5086:12;;;;5121:15;;;;4958:1;4861:9;4832:314;;;-1:-1:-1;5163:3:1;;4522:650;-1:-1:-1;;;;;;;4522:650:1:o;5177:187::-;5342:14;;5335:22;5317:41;;5305:2;5290:18;;5272:92::o;5369:229::-;-1:-1:-1;;;;;5559:32:1;;;;5541:51;;5529:2;5514:18;;5496:102::o;5825:404::-;6027:2;6009:21;;;6066:2;6046:18;;;6039:30;6105:34;6100:2;6085:18;;6078:62;-1:-1:-1;;;6171:2:1;6156:18;;6149:38;6219:3;6204:19;;5999:230::o;6234:351::-;6436:2;6418:21;;;6475:2;6455:18;;;6448:30;6514:29;6509:2;6494:18;;6487:57;6576:2;6561:18;;6408:177::o;6590:::-;6736:25;;;6724:2;6709:18;;6691:76::o;6772:133::-;-1:-1:-1;;;;;6849:31:1;;6839:42;;6829:2;;6895:1;6892;6885:12;6829:2;6819:86;:::o

Swarm Source

ipfs://75da99575f0f07e069c790e5b01c3ceb08720423c5f635362ea8d635b1e858c7

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

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