ETH Price: $3,279.71 (-1.52%)

Contract

0xD37BbE5744D730a1d98d8DC97c42F0Ca46aD7146
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
0xccf527c32dfd62e9a0618a60430d81ff27823873d19a48fba9dc7f992e70e200 Deposit With Exp...(pending)2024-12-21 6:02:242 days ago1734760944IN
THORChain: THORChain Router v4.1.1
0.003 ETH(Pending)(Pending)
Deposit With Exp...214635652024-12-23 7:01:3544 secs ago1734937295IN
THORChain: THORChain Router v4.1.1
0 ETH0.000321435.49578914
Deposit With Exp...214635642024-12-23 7:01:2356 secs ago1734937283IN
THORChain: THORChain Router v4.1.1
0 ETH0.000257453.75169832
Transfer Out214635592024-12-23 7:00:231 min ago1734937223IN
THORChain: THORChain Router v4.1.1
0.00619735 ETH0.00024256.08758085
Deposit With Exp...214635572024-12-23 6:59:592 mins ago1734937199IN
THORChain: THORChain Router v4.1.1
0 ETH0.00034085.82699213
Transfer Out214635562024-12-23 6:59:472 mins ago1734937187IN
THORChain: THORChain Router v4.1.1
0.00138967 ETH0.00038325.91031434
Deposit With Exp...214635492024-12-23 6:58:233 mins ago1734937103IN
THORChain: THORChain Router v4.1.1
0 ETH0.000335125.72994243
Transfer Out214635482024-12-23 6:58:114 mins ago1734937091IN
THORChain: THORChain Router v4.1.1
0.00825398 ETH0.000407326.28239634
Transfer Out214635472024-12-23 6:57:594 mins ago1734937079IN
THORChain: THORChain Router v4.1.1
0.00416241 ETH0.000238535.98802255
Transfer Out214635452024-12-23 6:57:354 mins ago1734937055IN
THORChain: THORChain Router v4.1.1
0 ETH0.00047695.95489458
Transfer Out214635412024-12-23 6:56:475 mins ago1734937007IN
THORChain: THORChain Router v4.1.1
0.01470494 ETH0.000221275.55470526
Transfer Out214635382024-12-23 6:56:116 mins ago1734936971IN
THORChain: THORChain Router v4.1.1
0 ETH0.000462715.72612972
Transfer Out214635382024-12-23 6:56:116 mins ago1734936971IN
THORChain: THORChain Router v4.1.1
0 ETH0.000462715.72612972
Transfer Out214635372024-12-23 6:55:596 mins ago1734936959IN
THORChain: THORChain Router v4.1.1
0 ETH0.000442145.47166015
Transfer Out214635372024-12-23 6:55:596 mins ago1734936959IN
THORChain: THORChain Router v4.1.1
0 ETH0.000442215.47166015
Transfer Out214635322024-12-23 6:54:597 mins ago1734936899IN
THORChain: THORChain Router v4.1.1
0.02879999 ETH0.000214155.37579797
Transfer Out214635312024-12-23 6:54:477 mins ago1734936887IN
THORChain: THORChain Router v4.1.1
0.00819117 ETH0.000226185.67779599
Transfer Out214635302024-12-23 6:54:357 mins ago1734936875IN
THORChain: THORChain Router v4.1.1
0.00564501 ETH0.00037565.79314069
Transfer Out214635302024-12-23 6:54:357 mins ago1734936875IN
THORChain: THORChain Router v4.1.1
0 ETH0.000369065.79314069
Transfer Out214635292024-12-23 6:54:237 mins ago1734936863IN
THORChain: THORChain Router v4.1.1
0 ETH0.000460135.69426324
Transfer Out214635292024-12-23 6:54:237 mins ago1734936863IN
THORChain: THORChain Router v4.1.1
0.06224513 ETH0.000226835.69426324
Transfer Out214635162024-12-23 6:51:4710 mins ago1734936707IN
THORChain: THORChain Router v4.1.1
0 ETH0.000356455.66029024
Transfer Out214635092024-12-23 6:50:2311 mins ago1734936623IN
THORChain: THORChain Router v4.1.1
0.00157126 ETH0.000223875.6198268
Transfer Out214635032024-12-23 6:49:1113 mins ago1734936551IN
THORChain: THORChain Router v4.1.1
0.13207728 ETH0.00023725.95268258
Transfer Out214635022024-12-23 6:48:5913 mins ago1734936539IN
THORChain: THORChain Router v4.1.1
0.13885432 ETH0.000391266.03353358
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
214635592024-12-23 7:00:231 min ago1734937223
THORChain: THORChain Router v4.1.1
0.00619735 ETH
214635562024-12-23 6:59:472 mins ago1734937187
THORChain: THORChain Router v4.1.1
0.00138967 ETH
214635482024-12-23 6:58:114 mins ago1734937091
THORChain: THORChain Router v4.1.1
0.00825398 ETH
214635472024-12-23 6:57:594 mins ago1734937079
THORChain: THORChain Router v4.1.1
0.00416241 ETH
214635412024-12-23 6:56:475 mins ago1734937007
THORChain: THORChain Router v4.1.1
0.01470494 ETH
214635322024-12-23 6:54:597 mins ago1734936899
THORChain: THORChain Router v4.1.1
0.02879999 ETH
214635312024-12-23 6:54:477 mins ago1734936887
THORChain: THORChain Router v4.1.1
0.00819117 ETH
214635302024-12-23 6:54:357 mins ago1734936875
THORChain: THORChain Router v4.1.1
0.00564501 ETH
214635292024-12-23 6:54:237 mins ago1734936863
THORChain: THORChain Router v4.1.1
0.06224513 ETH
214635092024-12-23 6:50:2311 mins ago1734936623
THORChain: THORChain Router v4.1.1
0.00157126 ETH
214635032024-12-23 6:49:1113 mins ago1734936551
THORChain: THORChain Router v4.1.1
0.13207728 ETH
214635022024-12-23 6:48:5913 mins ago1734936539
THORChain: THORChain Router v4.1.1
0.13885432 ETH
214635012024-12-23 6:48:4713 mins ago1734936527
THORChain: THORChain Router v4.1.1
0.01949407 ETH
214635012024-12-23 6:48:4713 mins ago1734936527
THORChain: THORChain Router v4.1.1
0.00174669 ETH
214634932024-12-23 6:47:1115 mins ago1734936431
THORChain: THORChain Router v4.1.1
0.75 ETH
214634852024-12-23 6:45:3516 mins ago1734936335
THORChain: THORChain Router v4.1.1
0.00951887 ETH
214634802024-12-23 6:44:3517 mins ago1734936275
THORChain: THORChain Router v4.1.1
0.22637046 ETH
214634702024-12-23 6:42:3519 mins ago1734936155
THORChain: THORChain Router v4.1.1
0.00358043 ETH
214634682024-12-23 6:42:1120 mins ago1734936131
THORChain: THORChain Router v4.1.1
0.34030511 ETH
214634602024-12-23 6:40:3521 mins ago1734936035
THORChain: THORChain Router v4.1.1
0.01401105 ETH
214634602024-12-23 6:40:3521 mins ago1734936035
THORChain: THORChain Router v4.1.1
0.01401105 ETH
214634532024-12-23 6:39:1123 mins ago1734935951
THORChain: THORChain Router v4.1.1
0.01023572 ETH
214634312024-12-23 6:34:4727 mins ago1734935687
THORChain: THORChain Router v4.1.1
0.004171 ETH
214634302024-12-23 6:34:3527 mins ago1734935675
THORChain: THORChain Router v4.1.1
0.00639334 ETH
214634232024-12-23 6:33:1129 mins ago1734935591
THORChain: THORChain Router v4.1.1
0.0095342 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
THORChain_Router

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-04-24
*/

// SPDX-License-Identifier: MIT
// -------------------
// Router Version: 4.1
// -------------------
pragma solidity 0.8.13;

// ERC20 Interface
interface iERC20 {
    function balanceOf(address) external view returns (uint256);
    function burn(uint) external;
}
// RUNE Interface
interface iRUNE {
    function transferTo(address, uint) external returns (bool);
}
// ROUTER Interface
interface iROUTER {
    function depositWithExpiry(address, address, uint, string calldata, uint) external;
}

// THORChain_Router is managed by THORChain Vaults
contract THORChain_Router {
    address public RUNE;

    struct Coin {
        address asset;
        uint amount;
    }

    // Vault allowance for each asset
    mapping(address => mapping(address => uint)) private _vaultAllowance;

    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    // Emitted for all deposits, the memo distinguishes for swap, add, remove, donate etc
    event Deposit(address indexed to, address indexed asset, uint amount, string memo);

    // Emitted for all outgoing transfers, the vault dictates who sent it, memo used to track.
    event TransferOut(address indexed vault, address indexed to, address asset, uint amount, string memo);

    // Emitted for all outgoing transferAndCalls, the vault dictates who sent it, memo used to track.
    event TransferOutAndCall(address indexed vault, address target, uint amount, address finalAsset, address to, uint256 amountOutMin, string memo);

    // Changes the spend allowance between vaults
    event TransferAllowance(address indexed oldVault, address indexed newVault, address asset, uint amount, string memo);

    // Specifically used to batch send the entire vault assets
    event VaultTransfer(address indexed oldVault, address indexed newVault, Coin[] coins, string memo);

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }

    constructor(address rune) {
        RUNE = rune;
        _status = _NOT_ENTERED;
    }

    // Deposit with Expiry (preferred)
    function depositWithExpiry(address payable vault, address asset, uint amount, string memory memo, uint expiration) external payable {
        require(block.timestamp < expiration, "THORChain_Router: expired");
        deposit(vault, asset, amount, memo);
    }

    // Deposit an asset with a memo. ETH is forwarded, ERC-20 stays in ROUTER
    function deposit(address payable vault, address asset, uint amount, string memory memo) public payable nonReentrant{
        uint safeAmount;
        if(asset == address(0)){
            safeAmount = msg.value;
            bool success = vault.send(safeAmount);
            require(success);
        } else {
            require(msg.value == 0, "THORChain_Router: unexpected eth");  // protect user from accidentally locking up eth
            if(asset == RUNE) {
                safeAmount = amount;
                iRUNE(RUNE).transferTo(address(this), amount);
                iERC20(RUNE).burn(amount);
            } else {
                safeAmount = safeTransferFrom(asset, amount); // Transfer asset
                _vaultAllowance[vault][asset] += safeAmount; // Credit to chosen vault
            }
        }
        emit Deposit(vault, asset, safeAmount, memo);
    }

    //############################## ALLOWANCE TRANSFERS ##############################

    // Use for "moving" assets between vaults (asgard<>ygg), as well "churning" to a new Asgard
    function transferAllowance(address router, address newVault, address asset, uint amount, string memory memo) external nonReentrant {
        if (router == address(this)){
            _adjustAllowances(newVault, asset, amount);
            emit TransferAllowance(msg.sender, newVault, asset, amount, memo);
        } else {
            _routerDeposit(router, newVault, asset, amount, memo);
        }
    }

    //############################## ASSET TRANSFERS ##############################

    // Any vault calls to transfer any asset to any recipient.
    // Note: Contract recipients of ETH are only given 2300 Gas to complete execution.
    function transferOut(address payable to, address asset, uint amount, string memory memo) public payable nonReentrant {
        uint safeAmount;
        if(asset == address(0)){
            safeAmount = msg.value;
            bool success = to.send(safeAmount); // Send ETH. 
            if (!success) {
                payable(address(msg.sender)).transfer(safeAmount); // For failure, bounce back to vault & continue.
            }
        } else {
            _vaultAllowance[msg.sender][asset] -= amount; // Reduce allowance
            (bool success, bytes memory data) = asset.call(abi.encodeWithSignature("transfer(address,uint256)" , to, amount));
            require(success && (data.length == 0 || abi.decode(data, (bool))));
            safeAmount = amount;
        }
        emit TransferOut(msg.sender, to, asset, safeAmount, memo);
    }

    // Any vault calls to transferAndCall on a target contract that conforms with "swapOut(address,address,uint256)"
    // Example Memo: "~1b3:ETH.0xFinalToken:0xTo:"
    // Aggregator is matched to the last three digits of whitelisted aggregators
    // FinalToken, To, amountOutMin come from originating memo
    // Memo passed in here is the "OUT:HASH" type
    function transferOutAndCall(address payable aggregator, address finalToken, address to, uint256 amountOutMin, string memory memo) public payable nonReentrant {
        uint256 _safeAmount = msg.value;
        (bool erc20Success, ) = aggregator.call{value:_safeAmount}(abi.encodeWithSignature("swapOut(address,address,uint256)", finalToken, to, amountOutMin));
        if (!erc20Success) {
            bool ethSuccess = payable(to).send(_safeAmount); // If can't swap, just send the recipient the ETH
            if (!ethSuccess) {
                payable(address(msg.sender)).transfer(_safeAmount); // For failure, bounce back to vault & continue.
            }
        }
        emit TransferOutAndCall(msg.sender, aggregator, _safeAmount, finalToken, to, amountOutMin, memo);
    }


    //############################## VAULT MANAGEMENT ##############################

    // A vault can call to "return" all assets to an asgard, including ETH. 
    function returnVaultAssets(address router, address payable asgard, Coin[] memory coins, string memory memo) external payable nonReentrant {
        if (router == address(this)){
            for(uint i = 0; i < coins.length; i++){
                _adjustAllowances(asgard, coins[i].asset, coins[i].amount);
            }
            emit VaultTransfer(msg.sender, asgard, coins, memo); // Does not include ETH.           
        } else {
            for(uint i = 0; i < coins.length; i++){
                _routerDeposit(router, asgard, coins[i].asset, coins[i].amount, memo);
            }
        }
        bool success = asgard.send(msg.value);
        require(success);
    }

    //############################## HELPERS ##############################

    function vaultAllowance(address vault, address token) public view returns(uint amount){
        return _vaultAllowance[vault][token];
    }

    // Safe transferFrom in case asset charges transfer fees
    function safeTransferFrom(address _asset, uint _amount) internal returns(uint amount) {
        uint _startBal = iERC20(_asset).balanceOf(address(this));
        (bool success, bytes memory data) = _asset.call(abi.encodeWithSignature("transferFrom(address,address,uint256)", msg.sender, address(this), _amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))));
        return (iERC20(_asset).balanceOf(address(this)) - _startBal);
    }

    // Decrements and Increments Allowances between two vaults
    function _adjustAllowances(address _newVault, address _asset, uint _amount) internal {
        _vaultAllowance[msg.sender][_asset] -= _amount;
        _vaultAllowance[_newVault][_asset] += _amount;
    }

    // Adjust allowance and forwards funds to new router, credits allowance to desired vault
    function _routerDeposit(address _router, address _vault, address _asset, uint _amount, string memory _memo) internal {
        _vaultAllowance[msg.sender][_asset] -= _amount;
        (bool success,) = _asset.call(abi.encodeWithSignature("approve(address,uint256)", _router, _amount)); // Approve to transfer
        require(success);
        iROUTER(_router).depositWithExpiry(_vault, _asset, _amount, _memo, type(uint).max); // Transfer by depositing
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"rune","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferAllowance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"finalAsset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferOutAndCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct THORChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"VaultTransfer","type":"event"},{"inputs":[],"name":"RUNE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"depositWithExpiry","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address payable","name":"asgard","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct THORChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"}],"name":"returnVaultAssets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"newVault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferOut","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"aggregator","type":"address"},{"internalType":"address","name":"finalToken","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferOutAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"vaultAllowance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x60806040526004361061007b5760003560e01c80634039fd4b1161004e5780634039fd4b1461012157806344bc937b14610134578063574da7171461014757806393e4eaa91461015a57600080fd5b806303b6a673146100805780631b738b32146100d95780631fece7b4146100fb5780632923e82e1461010e575b600080fd5b34801561008c57600080fd5b506100c661009b366004610da0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6040519081526020015b60405180910390f35b3480156100e557600080fd5b506100f96100f4366004610eb9565b610192565b005b6100f9610109366004610f38565b610248565b6100f961011c366004610fa4565b61049c565b6100f961012f366004610eb9565b610620565b6100f96101423660046110b7565b6107ac565b6100f9610155366004610f38565b61080e565b34801561016657600080fd5b5060005461017a906001600160a01b031681565b6040516001600160a01b0390911681526020016100d0565b60028054036101bc5760405162461bcd60e51b81526004016101b39061112b565b60405180910390fd5b60028055306001600160a01b0386160361022f576101db8484846109fd565b836001600160a01b0316336001600160a01b03167f05b90458f953d3fcb2d7fb25616a2fddeca749d0c47cc5c9832d0266b5346eea858585604051610222939291906111be565b60405180910390a361023c565b61023c8585858585610a76565b50506001600255505050565b60028054036102695760405162461bcd60e51b81526004016101b39061112b565b6002805560006001600160a01b0384166102b9575060405134906000906001600160a01b0387169083156108fc0290849084818181858888f193505050509050806102b357600080fd5b50610443565b34156103075760405162461bcd60e51b815260206004820181905260248201527f54484f52436861696e5f526f757465723a20756e65787065637465642065746860448201526064016101b3565b6000546001600160a01b03908116908516036103f757506000546040516302ccb1b360e41b81523060048201526024810184905283916001600160a01b031690632ccb1b30906044016020604051808303816000875af115801561036f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039391906111ee565b50600054604051630852cd8d60e31b8152600481018590526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156103da57600080fd5b505af11580156103ee573d6000803e3d6000fd5b50505050610443565b6104018484610bc7565b6001600160a01b03808716600090815260016020908152604080832093891683529290529081208054929350839290919061043d90849061122d565b90915550505b836001600160a01b0316856001600160a01b03167fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb3958385604051610488929190611245565b60405180910390a350506001600255505050565b60028054036104bd5760405162461bcd60e51b81526004016101b39061112b565b60028055306001600160a01b038516036105875760005b825181101561053457610522848483815181106104f3576104f3611266565b60200260200101516000015185848151811061051157610511611266565b6020026020010151602001516109fd565b8061052c8161127c565b9150506104d4565b50826001600160a01b0316336001600160a01b03167f281daef48d91e5cd3d32db0784f6af69cd8d8d2e8c612a3568dca51ded51e08f848460405161057a929190611295565b60405180910390a36105ee565b60005b82518110156105ec576105da85858584815181106105aa576105aa611266565b6020026020010151600001518685815181106105c8576105c8611266565b60200260200101516020015186610a76565b806105e48161127c565b91505061058a565b505b6040516000906001600160a01b038516903480156108fc029184818181858888f1935050505090508061023c57600080fd5b60028054036106415760405162461bcd60e51b81526004016101b39061112b565b600280556040516001600160a01b0385811660248301528481166044830152606482018490523491600091881690839060840160408051601f198184030181529181526020820180516001600160e01b0316631230c53d60e21b179052516106a99190611300565b60006040518083038185875af1925050503d80600081146106e6576040519150601f19603f3d011682016040523d82523d6000602084013e6106eb565b606091505b5050905080610753576040516000906001600160a01b0387169084156108fc0290859084818181858888f1935050505090508061075157604051339084156108fc029085906000818181858888f1935050505015801561074f573d6000803e3d6000fd5b505b505b336001600160a01b03167f8e5841bcd195b858d53b38bcf91b38d47f3bc800469b6812d35451ab619c6f6c8884898989896040516107969695949392919061131c565b60405180910390a2505060016002555050505050565b8042106107fb5760405162461bcd60e51b815260206004820152601960248201527f54484f52436861696e5f526f757465723a20657870697265640000000000000060448201526064016101b3565b61080785858585610248565b5050505050565b600280540361082f5760405162461bcd60e51b81526004016101b39061112b565b6002805560006001600160a01b0384166108a9575060405134906000906001600160a01b0387169083156108fc0290849084818181858888f193505050509050806108a357604051339083156108fc029084906000818181858888f193505050501580156108a1573d6000803e3d6000fd5b505b506109b6565b3360009081526001602090815260408083206001600160a01b0388168452909152812080548592906108dc90849061136a565b90915550506040516001600160a01b03868116602483015260448201859052600091829187169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161093b9190611300565b6000604051808303816000865af19150503d8060008114610978576040519150601f19603f3d011682016040523d82523d6000602084013e61097d565b606091505b50915091508180156109a75750805115806109a75750808060200190518101906109a791906111ee565b6109b057600080fd5b84925050505b846001600160a01b0316336001600160a01b03167fa9cd03aa3c1b4515114539cd53d22085129d495cb9e9f9af77864526240f1bf7868486604051610488939291906111be565b3360009081526001602090815260408083206001600160a01b038616845290915281208054839290610a3090849061136a565b90915550506001600160a01b03808416600090815260016020908152604080832093861683529290529081208054839290610a6c90849061122d565b9091555050505050565b3360009081526001602090815260408083206001600160a01b038716845290915281208054849290610aa990849061136a565b90915550506040516001600160a01b038681166024830152604482018490526000919085169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251610b079190611300565b6000604051808303816000865af19150503d8060008114610b44576040519150601f19603f3d011682016040523d82523d6000602084013e610b49565b606091505b5050905080610b5757600080fd5b6040516344bc937b60e01b81526001600160a01b038716906344bc937b90610b8d90889088908890889060001990600401611381565b600060405180830381600087803b158015610ba757600080fd5b505af1158015610bbb573d6000803e3d6000fd5b50505050505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3491906113c6565b6040513360248201523060448201526064810185905290915060009081906001600160a01b0387169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251610c959190611300565b6000604051808303816000865af19150503d8060008114610cd2576040519150601f19603f3d011682016040523d82523d6000602084013e610cd7565b606091505b5091509150818015610d01575080511580610d01575080806020019051810190610d0191906111ee565b610d0a57600080fd5b6040516370a0823160e01b815230600482015283906001600160a01b038816906370a0823190602401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906113c6565b610d7e919061136a565b9695505050505050565b6001600160a01b0381168114610d9d57600080fd5b50565b60008060408385031215610db357600080fd5b8235610dbe81610d88565b91506020830135610dce81610d88565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610e1257610e12610dd9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e4157610e41610dd9565b604052919050565b600082601f830112610e5a57600080fd5b813567ffffffffffffffff811115610e7457610e74610dd9565b610e87601f8201601f1916602001610e18565b818152846020838601011115610e9c57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215610ed157600080fd5b8535610edc81610d88565b94506020860135610eec81610d88565b93506040860135610efc81610d88565b925060608601359150608086013567ffffffffffffffff811115610f1f57600080fd5b610f2b88828901610e49565b9150509295509295909350565b60008060008060808587031215610f4e57600080fd5b8435610f5981610d88565b93506020850135610f6981610d88565b925060408501359150606085013567ffffffffffffffff811115610f8c57600080fd5b610f9887828801610e49565b91505092959194509250565b60008060008060808587031215610fba57600080fd5b8435610fc581610d88565b9350602085810135610fd681610d88565b935060408681013567ffffffffffffffff80821115610ff457600080fd5b818901915089601f83011261100857600080fd5b81358181111561101a5761101a610dd9565b611028858260051b01610e18565b81815260069190911b8301850190858101908c83111561104757600080fd5b938601935b828510156110905785858e0312156110645760008081fd5b61106c610def565b853561107781610d88565b815285880135888201528252938501939086019061104c565b9750505060608901359350808411156110a857600080fd5b505050610f9887828801610e49565b600080600080600060a086880312156110cf57600080fd5b85356110da81610d88565b945060208601356110ea81610d88565b935060408601359250606086013567ffffffffffffffff81111561110d57600080fd5b61111988828901610e49565b95989497509295608001359392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60005b8381101561117d578181015183820152602001611165565b8381111561118c576000848401525b50505050565b600081518084526111aa816020860160208601611162565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006111e56060830184611192565b95945050505050565b60006020828403121561120057600080fd5b8151801515811461121057600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561124057611240611217565b500190565b82815260406020820152600061125e6040830184611192565b949350505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161128e5761128e611217565b5060010190565b60408082528351828201819052600091906020906060850190828801855b828110156112e157815180516001600160a01b031685528501518585015292850192908401906001016112b3565b505050848103828601526112f58187611192565b979650505050505050565b60008251611312818460208701611162565b9190910192915050565b6001600160a01b038781168252602082018790528581166040830152841660608201526080810183905260c060a0820181905260009061135e90830184611192565b98975050505050505050565b60008282101561137c5761137c611217565b500390565b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906113b490830185611192565b90508260808301529695505050505050565b6000602082840312156113d857600080fd5b505191905056fea26469706673582212202cfe991af8d38fa2ac1704297d010d8644417c5713ec84f255506fc12400514d64736f6c634300080d0033

Deployed Bytecode Sourcemap

570:8304:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7349:141;;;;;;;;;;-1:-1:-1;7349:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;7453:22:0;;;7423:11;7453:22;;;:15;:22;;;;;;;;:29;;;;;;;;;;;;;7349:141;;;;689:25:1;;;677:2;662:18;7349:141:0;;;;;;;;3702:412;;;;;;;;;;-1:-1:-1;3702:412:0;;;;;:::i;:::-;;:::i;:::-;;2610:896;;;;;;:::i;:::-;;:::i;6570:692::-;;;;;;:::i;:::-;;:::i;5601:793::-;;;;;;:::i;:::-;;:::i;2260:263::-;;;;;;:::i;:::-;;:::i;4361:865::-;;;;;;:::i;:::-;;:::i;603:19::-;;;;;;;;;;-1:-1:-1;603:19:0;;;;-1:-1:-1;;;;;603:19:0;;;;;;-1:-1:-1;;;;;6984:32:1;;;6966:51;;6954:2;6939:18;603:19:0;6820:203:1;3702:412:0;905:1;1978:7;;:19;1970:63;;;;-1:-1:-1;;;1970:63:0;;;;;;;:::i;:::-;;;;;;;;;905:1;2044:18;;3866:4:::1;-1:-1:-1::0;;;;;3848:23:0;::::1;::::0;3844:263:::1;;3887:42;3905:8;3915:5;3922:6;3887:17;:42::i;:::-;3979:8;-1:-1:-1::0;;;;;3949:60:0::1;3967:10;-1:-1:-1::0;;;;;3949:60:0::1;;3989:5;3996:6;4004:4;3949:60;;;;;;;;:::i;:::-;;;;;;;;3844:263;;;4042:53;4057:6;4065:8;4075:5;4082:6;4090:4;4042:14;:53::i;:::-;-1:-1:-1::0;;861:1:0;2085:7;:22;-1:-1:-1;;;3702:412:0:o;2610:896::-;905:1;1978:7;;:19;1970:63;;;;-1:-1:-1;;;1970:63:0;;;;;;;:::i;:::-;905:1;2044:18;;2736:15:::1;-1:-1:-1::0;;;;;2765:19:0;::::1;2762:682;;-1:-1:-1::0;2852:22:0::1;::::0;2813:9:::1;::::0;2837:12:::1;::::0;-1:-1:-1;;;;;2852:10:0;::::1;::::0;:22;::::1;;;::::0;2813:9;;2837:12;2852:22;2837:12;2852:22;2813:9;2852:10;:22;::::1;;;;;;2837:37;;2897:7;2889:16;;;::::0;::::1;;2785:132;2762:682;;;2946:9;:14:::0;2938:59:::1;;;::::0;-1:-1:-1;;;2938:59:0;;8509:2:1;2938:59:0::1;::::0;::::1;8491:21:1::0;;;8528:18;;;8521:30;8587:34;8567:18;;;8560:62;8639:18;;2938:59:0::1;8307:356:1::0;2938:59:0::1;3074:4;::::0;-1:-1:-1;;;;;3074:4:0;;::::1;3065:13:::0;;::::1;::::0;3062:371:::1;;-1:-1:-1::0;3143:4:0::1;::::0;3137:45:::1;::::0;-1:-1:-1;;;3137:45:0;;3168:4:::1;3137:45;::::0;::::1;8842:51:1::0;8909:18;;;8902:34;;;3112:6:0;;-1:-1:-1;;;;;3143:4:0::1;::::0;3137:22:::1;::::0;8815:18:1;;3137:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;3208:4:0::1;::::0;3201:25:::1;::::0;-1:-1:-1;;;3201:25:0;;::::1;::::0;::::1;689::1::0;;;-1:-1:-1;;;;;3208:4:0;;::::1;::::0;3201:17:::1;::::0;662:18:1;;3201:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3062:371;;;3280:31;3297:5;3304:6;3280:16;:31::i;:::-;-1:-1:-1::0;;;;;3348:22:0;;::::1;;::::0;;;:15:::1;:22;::::0;;;;;;;:29;;::::1;::::0;;;;;;;;:43;;3267:44;;-1:-1:-1;3267:44:0;;3348:29;;:22;:43:::1;::::0;3267:44;;3348:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;3062:371:0::1;3474:5;-1:-1:-1::0;;;;;3459:39:0::1;3467:5;-1:-1:-1::0;;;;;3459:39:0::1;;3481:10;3493:4;3459:39;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;861:1:0;2085:7;:22;-1:-1:-1;;;2610:896:0:o;6570:692::-;905:1;1978:7;;:19;1970:63;;;;-1:-1:-1;;;1970:63:0;;;;;;;:::i;:::-;905:1;2044:18;;6741:4:::1;-1:-1:-1::0;;;;;6723:23:0;::::1;::::0;6719:461:::1;;6766:6;6762:131;6782:5;:12;6778:1;:16;6762:131;;;6819:58;6837:6;6845:5;6851:1;6845:8;;;;;;;;:::i;:::-;;;;;;;:14;;;6861:5;6867:1;6861:8;;;;;;;;:::i;:::-;;;;;;;:15;;;6819:17;:58::i;:::-;6796:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6762:131;;;;6938:6;-1:-1:-1::0;;;;;6912:46:0::1;6926:10;-1:-1:-1::0;;;;;6912:46:0::1;;6946:5;6953:4;6912:46;;;;;;;:::i;:::-;;;;;;;;6719:461;;;7031:6;7027:142;7047:5;:12;7043:1;:16;7027:142;;;7084:69;7099:6;7107;7115:5;7121:1;7115:8;;;;;;;;:::i;:::-;;;;;;;:14;;;7131:5;7137:1;7131:8;;;;;;;;:::i;:::-;;;;;;;:15;;;7148:4;7084:14;:69::i;:::-;7061:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7027:142;;;;6719:461;7205:22;::::0;7190:12:::1;::::0;-1:-1:-1;;;;;7205:11:0;::::1;::::0;7217:9:::1;7205:22:::0;::::1;;;::::0;7190:12;7205:22;7190:12;7205:22;7217:9;7205:11;:22;::::1;;;;;;7190:37;;7246:7;7238:16;;;::::0;::::1;5601:793:::0;905:1;1978:7;;:19;1970:63;;;;-1:-1:-1;;;1970:63:0;;;;;;;:::i;:::-;905:1;2044:18;;5871:89:::1;::::0;-1:-1:-1;;;;;11262:15:1;;;5871:89:0::1;::::0;::::1;11244:34:1::0;11314:15;;;11294:18;;;11287:43;11346:18;;;11339:34;;;5792:9:0::1;::::0;5770:19:::1;::::0;5836:15;::::1;::::0;5792:9;;11179:18:1;;5871:89:0::1;::::0;;-1:-1:-1;;5871:89:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5871:89:0::1;-1:-1:-1::0;;;5871:89:0::1;::::0;;5836:125;::::1;::::0;5871:89;5836:125:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5812:149;;;5977:12;5972:308;;6024:29;::::0;6006:15:::1;::::0;-1:-1:-1;;;;;6024:16:0;::::1;::::0;:29;::::1;;;::::0;6041:11;;6006:15;6024:29;6006:15;6024:29;6041:11;6024:16;:29;::::1;;;;;;6006:47;;6123:10;6118:151;;6154:50;::::0;6170:10:::1;::::0;6154:50;::::1;;;::::0;6192:11;;6154:50:::1;::::0;;;6192:11;6170:10;6154:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;6118:151;5991:289;5972:308;6314:10;-1:-1:-1::0;;;;;6295:91:0::1;;6326:10;6338:11;6351:10;6363:2;6367:12;6381:4;6295:91;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;861:1:0;2085:7;:22;-1:-1:-1;;;;;5601:793:0:o;2260:263::-;2429:10;2411:15;:28;2403:66;;;;-1:-1:-1;;;2403:66:0;;12522:2:1;2403:66:0;;;12504:21:1;12561:2;12541:18;;;12534:30;12600:27;12580:18;;;12573:55;12645:18;;2403:66:0;12320:349:1;2403:66:0;2480:35;2488:5;2495;2502:6;2510:4;2480:7;:35::i;:::-;2260:263;;;;;:::o;4361:865::-;905:1;1978:7;;:19;1970:63;;;;-1:-1:-1;;;1970:63:0;;;;;;;:::i;:::-;905:1;2044:18;;4489:15:::1;-1:-1:-1::0;;;;;4518:19:0;::::1;4515:636;;-1:-1:-1::0;4605:19:0::1;::::0;4566:9:::1;::::0;4590:12:::1;::::0;-1:-1:-1;;;;;4605:7:0;::::1;::::0;:19;::::1;;;::::0;4566:9;;4590:12;4605:19;4590:12;4605:19;4566:9;4605:7;:19;::::1;;;;;;4590:34;;4658:7;4653:147;;4686:49;::::0;4702:10:::1;::::0;4686:49;::::1;;;::::0;4724:10;;4686:49:::1;::::0;;;4724:10;4702;4686:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4653:147;4538:273;4515:636;;;4848:10;4832:27;::::0;;;:15:::1;:27;::::0;;;;;;;-1:-1:-1;;;;;4832:34:0;::::1;::::0;;;;;;;:44;;4870:6;;4832:27;:44:::1;::::0;4870:6;;4832:44:::1;:::i;:::-;::::0;;;-1:-1:-1;;4958:65:0::1;::::0;-1:-1:-1;;;;;8860:32:1;;;4958:65:0::1;::::0;::::1;8842:51:1::0;8909:18;;;8902:34;;;4912:12:0::1;::::0;;;4947:10;::::1;::::0;8815:18:1;;4958:65:0::1;::::0;;-1:-1:-1;;4958:65:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;4958:65:0::1;-1:-1:-1::0;;;4958:65:0::1;::::0;;4947:77;::::1;::::0;4958:65;4947:77:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4911:113;;;;5047:7;:57;;;;-1:-1:-1::0;5059:11:0;;:16;;:44:::1;;;5090:4;5079:24;;;;;;;;;;;;:::i;:::-;5039:66;;;::::0;::::1;;5133:6;5120:19;;4817:334;;4515:636;5190:2;-1:-1:-1::0;;;;;5166:52:0::1;5178:10;-1:-1:-1::0;;;;;5166:52:0::1;;5194:5;5201:10;5213:4;5166:52;;;;;;;;:::i;8101:206::-:0;8213:10;8197:27;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8197:35:0;;;;;;;;;:46;;8236:7;;8197:27;:46;;8236:7;;8197:46;:::i;:::-;;;;-1:-1:-1;;;;;;;8254:26:0;;;;;;;:15;:26;;;;;;;;:34;;;;;;;;;;;:45;;8292:7;;8254:26;:45;;8292:7;;8254:45;:::i;:::-;;;;-1:-1:-1;;;;;8101:206:0:o;8409:462::-;8553:10;8537:27;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8537:35:0;;;;;;;;;:46;;8576:7;;8537:27;:46;;8576:7;;8537:46;:::i;:::-;;;;-1:-1:-1;;8624:69:0;;-1:-1:-1;;;;;8860:32:1;;;8624:69:0;;;8842:51:1;8909:18;;;8902:34;;;8595:12:0;;8612:11;;;;8815:18:1;;8624:69:0;;;-1:-1:-1;;8624:69:0;;;;;;;;;;;;;;-1:-1:-1;;;;;8624:69:0;-1:-1:-1;;;8624:69:0;;;8612:82;;;8624:69;8612:82;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8594:100;;;8736:7;8728:16;;;;;;8755:82;;-1:-1:-1;;;8755:82:0;;-1:-1:-1;;;;;8755:34:0;;;;;:82;;8790:6;;8798;;8806:7;;8815:5;;-1:-1:-1;;8822:14:0;8755:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8526:345;8409:462;;;;;:::o;7560:469::-;7674:39;;-1:-1:-1;;;7674:39:0;;7707:4;7674:39;;;6966:51:1;7633:11:0;;;;-1:-1:-1;;;;;7674:24:0;;;;;6939:18:1;;7674:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7772:100;;7837:10;7772:100;;;11244:34:1;7857:4:0;11294:18:1;;;11287:43;11346:18;;;11339:34;;;7657:56:0;;-1:-1:-1;7725:12:0;;;;-1:-1:-1;;;;;7760:11:0;;;11179:18:1;;7772:100:0;;;-1:-1:-1;;7772:100:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7772:100:0;-1:-1:-1;;;7772:100:0;;;7760:113;;;7772:100;7760:113;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:149;;;;7892:7;:57;;;;-1:-1:-1;7904:11:0;;:16;;:44;;;7935:4;7924:24;;;;;;;;;;;;:::i;:::-;7884:66;;;;;;7969:39;;-1:-1:-1;;;7969:39:0;;8002:4;7969:39;;;6966:51:1;8011:9:0;;-1:-1:-1;;;;;7969:24:0;;;;;6939:18:1;;7969:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;;;:::i;:::-;7961:60;7560:469;-1:-1:-1;;;;;;7560:469:0:o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:388::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;-1:-1:-1;460:2:1;445:18;;432:32;473:33;432:32;473:33;:::i;:::-;525:7;515:17;;;150:388;;;;;:::o;725:127::-;786:10;781:3;777:20;774:1;767:31;817:4;814:1;807:15;841:4;838:1;831:15;857:251;929:2;923:9;;;959:15;;1004:18;989:34;;1025:22;;;986:62;983:88;;;1051:18;;:::i;:::-;1087:2;1080:22;857:251;:::o;1113:275::-;1184:2;1178:9;1249:2;1230:13;;-1:-1:-1;;1226:27:1;1214:40;;1284:18;1269:34;;1305:22;;;1266:62;1263:88;;;1331:18;;:::i;:::-;1367:2;1360:22;1113:275;;-1:-1:-1;1113:275:1:o;1393:531::-;1436:5;1489:3;1482:4;1474:6;1470:17;1466:27;1456:55;;1507:1;1504;1497:12;1456:55;1543:6;1530:20;1569:18;1565:2;1562:26;1559:52;;;1591:18;;:::i;:::-;1635:55;1678:2;1659:13;;-1:-1:-1;;1655:27:1;1684:4;1651:38;1635:55;:::i;:::-;1715:2;1706:7;1699:19;1761:3;1754:4;1749:2;1741:6;1737:15;1733:26;1730:35;1727:55;;;1778:1;1775;1768:12;1727:55;1843:2;1836:4;1828:6;1824:17;1817:4;1808:7;1804:18;1791:55;1891:1;1866:16;;;1884:4;1862:27;1855:38;;;;1870:7;1393:531;-1:-1:-1;;;1393:531:1:o;1929:809::-;2034:6;2042;2050;2058;2066;2119:3;2107:9;2098:7;2094:23;2090:33;2087:53;;;2136:1;2133;2126:12;2087:53;2175:9;2162:23;2194:31;2219:5;2194:31;:::i;:::-;2244:5;-1:-1:-1;2301:2:1;2286:18;;2273:32;2314:33;2273:32;2314:33;:::i;:::-;2366:7;-1:-1:-1;2425:2:1;2410:18;;2397:32;2438:33;2397:32;2438:33;:::i;:::-;2490:7;-1:-1:-1;2544:2:1;2529:18;;2516:32;;-1:-1:-1;2599:3:1;2584:19;;2571:33;2627:18;2616:30;;2613:50;;;2659:1;2656;2649:12;2613:50;2682;2724:7;2715:6;2704:9;2700:22;2682:50;:::i;:::-;2672:60;;;1929:809;;;;;;;;:::o;2743:675::-;2847:6;2855;2863;2871;2924:3;2912:9;2903:7;2899:23;2895:33;2892:53;;;2941:1;2938;2931:12;2892:53;2980:9;2967:23;2999:31;3024:5;2999:31;:::i;:::-;3049:5;-1:-1:-1;3106:2:1;3091:18;;3078:32;3119:33;3078:32;3119:33;:::i;:::-;3171:7;-1:-1:-1;3225:2:1;3210:18;;3197:32;;-1:-1:-1;3280:2:1;3265:18;;3252:32;3307:18;3296:30;;3293:50;;;3339:1;3336;3329:12;3293:50;3362;3404:7;3395:6;3384:9;3380:22;3362:50;:::i;:::-;3352:60;;;2743:675;;;;;;;:::o;3423:1821::-;3572:6;3580;3588;3596;3649:3;3637:9;3628:7;3624:23;3620:33;3617:53;;;3666:1;3663;3656:12;3617:53;3705:9;3692:23;3724:31;3749:5;3724:31;:::i;:::-;3774:5;-1:-1:-1;3798:2:1;3837:18;;;3824:32;3865:33;3824:32;3865:33;:::i;:::-;3917:7;-1:-1:-1;3943:2:1;3981:18;;;3968:32;4019:18;4049:14;;;4046:34;;;4076:1;4073;4066:12;4046:34;4114:6;4103:9;4099:22;4089:32;;4159:7;4152:4;4148:2;4144:13;4140:27;4130:55;;4181:1;4178;4171:12;4130:55;4217:2;4204:16;4239:2;4235;4232:10;4229:36;;;4245:18;;:::i;:::-;4285:36;4317:2;4312;4309:1;4305:10;4301:19;4285:36;:::i;:::-;4355:15;;;4437:1;4433:10;;;;4425:19;;4421:28;;;4386:12;;;;4461:19;;;4458:39;;;4493:1;4490;4483:12;4458:39;4517:11;;;;4537:504;4553:6;4548:3;4545:15;4537:504;;;4633:2;4627:3;4618:7;4614:17;4610:26;4607:116;;;4677:1;4706:2;4702;4695:14;4607:116;4751:22;;:::i;:::-;4814:3;4801:17;4831:33;4856:7;4831:33;:::i;:::-;4877:24;;4952:12;;;4939:26;4921:16;;;4914:52;4979:20;;4570:12;;;;5019;;;;4537:504;;;5060:5;-1:-1:-1;;;5118:2:1;5103:18;;5090:32;;-1:-1:-1;5134:16:1;;;5131:36;;;5163:1;5160;5153:12;5131:36;;;;5186:52;5230:7;5219:8;5208:9;5204:24;5186:52;:::i;6071:744::-;6184:6;6192;6200;6208;6216;6269:3;6257:9;6248:7;6244:23;6240:33;6237:53;;;6286:1;6283;6276:12;6237:53;6325:9;6312:23;6344:31;6369:5;6344:31;:::i;:::-;6394:5;-1:-1:-1;6451:2:1;6436:18;;6423:32;6464:33;6423:32;6464:33;:::i;:::-;6516:7;-1:-1:-1;6570:2:1;6555:18;;6542:32;;-1:-1:-1;6625:2:1;6610:18;;6597:32;6652:18;6641:30;;6638:50;;;6684:1;6681;6674:12;6638:50;6707;6749:7;6740:6;6729:9;6725:22;6707:50;:::i;:::-;6071:744;;;;-1:-1:-1;6071:744:1;;6804:3;6789:19;6776:33;;6071:744;-1:-1:-1;;;6071:744:1:o;7028:355::-;7230:2;7212:21;;;7269:2;7249:18;;;7242:30;7308:33;7303:2;7288:18;;7281:61;7374:2;7359:18;;7028:355::o;7388:258::-;7460:1;7470:113;7484:6;7481:1;7478:13;7470:113;;;7560:11;;;7554:18;7541:11;;;7534:39;7506:2;7499:10;7470:113;;;7601:6;7598:1;7595:13;7592:48;;;7636:1;7627:6;7622:3;7618:16;7611:27;7592:48;;7388:258;;;:::o;7651:::-;7693:3;7731:5;7725:12;7758:6;7753:3;7746:19;7774:63;7830:6;7823:4;7818:3;7814:14;7807:4;7800:5;7796:16;7774:63;:::i;:::-;7891:2;7870:15;-1:-1:-1;;7866:29:1;7857:39;;;;7898:4;7853:50;;7651:258;-1:-1:-1;;7651:258:1:o;7914:388::-;8148:1;8144;8139:3;8135:11;8131:19;8123:6;8119:32;8108:9;8101:51;8188:6;8183:2;8172:9;8168:18;8161:34;8231:2;8226;8215:9;8211:18;8204:30;8082:4;8251:45;8292:2;8281:9;8277:18;8269:6;8251:45;:::i;:::-;8243:53;7914:388;-1:-1:-1;;;;;7914:388:1:o;8947:277::-;9014:6;9067:2;9055:9;9046:7;9042:23;9038:32;9035:52;;;9083:1;9080;9073:12;9035:52;9115:9;9109:16;9168:5;9161:13;9154:21;9147:5;9144:32;9134:60;;9190:1;9187;9180:12;9134:60;9213:5;8947:277;-1:-1:-1;;;8947:277:1:o;9229:127::-;9290:10;9285:3;9281:20;9278:1;9271:31;9321:4;9318:1;9311:15;9345:4;9342:1;9335:15;9361:128;9401:3;9432:1;9428:6;9425:1;9422:13;9419:39;;;9438:18;;:::i;:::-;-1:-1:-1;9474:9:1;;9361:128::o;9494:291::-;9671:6;9660:9;9653:25;9714:2;9709;9698:9;9694:18;9687:30;9634:4;9734:45;9775:2;9764:9;9760:18;9752:6;9734:45;:::i;:::-;9726:53;9494:291;-1:-1:-1;;;;9494:291:1:o;9790:127::-;9851:10;9846:3;9842:20;9839:1;9832:31;9882:4;9879:1;9872:15;9906:4;9903:1;9896:15;9922:135;9961:3;9982:17;;;9979:43;;10002:18;;:::i;:::-;-1:-1:-1;10049:1:1;10038:13;;9922:135::o;10062:937::-;10321:2;10373:21;;;10443:13;;10346:18;;;10465:22;;;10292:4;;10321:2;10540:4;;10518:2;10503:18;;;10567:15;;;10292:4;10610:280;10624:6;10621:1;10618:13;10610:280;;;10683:13;;10725:9;;-1:-1:-1;;;;;10721:35:1;10709:48;;10797:11;;10791:18;10777:12;;;10770:40;10830:12;;;;10865:15;;;;10753:1;10639:9;10610:280;;;10614:3;;;10935:9;10930:3;10926:19;10921:2;10910:9;10906:18;10899:47;10963:30;10989:3;10981:6;10963:30;:::i;:::-;10955:38;10062:937;-1:-1:-1;;;;;;;10062:937:1:o;11384:274::-;11513:3;11551:6;11545:13;11567:53;11613:6;11608:3;11601:4;11593:6;11589:17;11567:53;:::i;:::-;11636:16;;;;;11384:274;-1:-1:-1;;11384:274:1:o;11663:652::-;-1:-1:-1;;;;;11998:15:1;;;11980:34;;12045:2;12030:18;;12023:34;;;12093:15;;;12088:2;12073:18;;12066:43;12145:15;;12140:2;12125:18;;12118:43;12192:3;12177:19;;12170:35;;;12242:3;11960;12221:19;;12214:32;;;11923:4;;12263:46;;12289:19;;12281:6;12263:46;:::i;:::-;12255:54;11663:652;-1:-1:-1;;;;;;;;11663:652:1:o;12674:125::-;12714:4;12742:1;12739;12736:8;12733:34;;;12747:18;;:::i;:::-;-1:-1:-1;12784:9:1;;12674:125::o;13099:563::-;-1:-1:-1;;;;;13398:15:1;;;13380:34;;13450:15;;13445:2;13430:18;;13423:43;13497:2;13482:18;;13475:34;;;13360:3;13540:2;13525:18;;13518:31;;;13323:4;;13566:46;;13592:19;;13584:6;13566:46;:::i;:::-;13558:54;;13649:6;13643:3;13632:9;13628:19;13621:35;13099:563;;;;;;;;:::o;13667:184::-;13737:6;13790:2;13778:9;13769:7;13765:23;13761:32;13758:52;;;13806:1;13803;13796:12;13758:52;-1:-1:-1;13829:16:1;;13667:184;-1:-1:-1;13667:184:1:o

Swarm Source

ipfs://2cfe991af8d38fa2ac1704297d010d8644417c5713ec84f255506fc12400514d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Chain Token Portfolio % Price Amount Value
ETH31.87%$0.9983311,355,930.3344$11,336,965.93
ETH30.68%$0.99894510,927,958.0674$10,916,429.07
ETH18.11%$94,53568.163$6,443,788.31
ETH9.38%$0.14829522,495,736.2851$3,336,005.21
ETH2.49%$0.008041110,267,769.5364$886,691.83
ETH1.91%$0.998889680,772.0623$680,015.72
ETH1.16%$0.992392417,529.5584$414,353.1
ETH0.97%$0.998946344,134.31$343,771.59
ETH0.83%$0.999173296,654.1484$296,408.82
ETH0.69%$321.51758.3792$243,826.48
ETH0.58%$22.369,221.6861$206,196.9
ETH0.46%$0.0609782,658,033.2448$162,080.55
ETH0.28%$144.49683.6272$98,777.29
ETH0.19%$0.01165,878,072.1219$68,182.82
ETH0.17%$1.9730,759.9527$60,597.11
ETH0.10%$8,552.594.2397$36,260.35
ETH0.03%$0.061045163,612.1409$9,987.7
ETH0.01%$0.0009795,363,525.6525$5,250.92
ETH<0.01%$0.017378145,036.0744$2,520.48
ETH<0.01%$1.151,570.9163$1,806.55
ETH<0.01%$0.7905451,463.0852$1,156.63
ETH<0.01%$0.07890310,146.1669$800.56
ETH<0.01%$14.8550.719$753.18
ETH<0.01%$1.42469.6023$666.84
ETH<0.01%$0.002363239,928.6596$567.05
ETH<0.01%$0.0906275,585.6373$506.21
ETH<0.01%$19.5422.4846$439.35
ETH<0.01%$0.00001816,865,765.9216$295.15
ETH<0.01%$0.205081500$102.54
ETH<0.01%$0.00098950,000$49.44
ETH<0.01%$0.0029182,000$5.84
ETH<0.01%$0.8159475$4.08
ETH<0.01%$0.0007611,000$0.761
ARB0.03%$3,278.753.2695$10,719.99
BSC0.01%$659.016.4749$4,266.98
BSC<0.01%$0.9994263,000$2,998.28
AVAX0.01%$36.05103.4623$3,730.25
AVAX<0.01%$0.999237150.019$149.9
SCROLL<0.01%$3,276.460.05$163.82
BASE<0.01%$0.031439100$3.14
BASE<0.01%$3,275.960.000000000000084$0.27518
POL<0.01%$0.471311.9346$0.911796
FTM<0.01%$0.9549550.3$0.286487
GNO<0.01%$0.9998870.0885$0.08848
MANTLE<0.01%$1.170.000213$0.000248
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.