ETH Price: $3,863.08 (+7.05%)

Contract

0xD37BbE5744D730a1d98d8DC97c42F0Ca46aD7146
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
0x37b06b51b8807f939135626d879fdd5069ba1a8f5e2ee5cb05906843b0648d69 Transfer Out(pending)2024-12-04 20:47:5213 secs ago1733345272IN
THORChain: THORChain Router v4.1.1
0.02164813 ETH(Pending)(Pending)
Transfer Out213316212024-12-04 20:47:4718 secs ago1733345267IN
THORChain: THORChain Router v4.1.1
0 ETH0.0040403550
Transfer Out213316202024-12-04 20:47:3530 secs ago1733345255IN
THORChain: THORChain Router v4.1.1
0.03746872 ETH0.001991850
Deposit With Exp...213316162024-12-04 20:46:471 min ago1733345207IN
THORChain: THORChain Router v4.1.1
0.031 ETH0.001652142.09077189
Transfer Out213316112024-12-04 20:45:472 mins ago1733345147IN
THORChain: THORChain Router v4.1.1
0.00904032 ETH0.0015934440
Transfer Out213316102024-12-04 20:45:352 mins ago1733345135IN
THORChain: THORChain Router v4.1.1
0.04000922 ETH0.0025934440
Deposit With Exp...213316082024-12-04 20:45:112 mins ago1733345111IN
THORChain: THORChain Router v4.1.1
0 ETH0.0024501437.3736722
Transfer Out213316032024-12-04 20:44:113 mins ago1733345051IN
THORChain: THORChain Router v4.1.1
0.01728333 ETH0.0025929640
Transfer Out213316012024-12-04 20:43:474 mins ago1733345027IN
THORChain: THORChain Router v4.1.1
51.700336 ETH0.0015934440
Transfer Out213315992024-12-04 20:43:234 mins ago1733345003IN
THORChain: THORChain Router v4.1.1
0.00570344 ETH0.0025934440
Transfer Out213315932024-12-04 20:42:115 mins ago1733344931IN
THORChain: THORChain Router v4.1.1
0 ETH0.00220540
Deposit With Exp...213315912024-12-04 20:41:476 mins ago1733344907IN
THORChain: THORChain Router v4.1.1
10 ETH0.0013394634.12564534
Deposit With Exp...213315782024-12-04 20:39:118 mins ago1733344751IN
THORChain: THORChain Router v4.1.1
0.21 ETH0.0013690634.87970618
Transfer Out213315732024-12-04 20:38:119 mins ago1733344691IN
THORChain: THORChain Router v4.1.1
0 ETH0.0025194440
Transfer Out213315722024-12-04 20:37:5910 mins ago1733344679IN
THORChain: THORChain Router v4.1.1
2.25633368 ETH0.0015939240
Deposit With Exp...213315712024-12-04 20:37:4710 mins ago1733344667IN
THORChain: THORChain Router v4.1.1
12.699 ETH0.0013544534.49706657
Deposit With Exp...213315692024-12-04 20:37:2310 mins ago1733344643IN
THORChain: THORChain Router v4.1.1
50.39511254 ETH0.001480137.83015448
Deposit With Exp...213315662024-12-04 20:36:4711 mins ago1733344607IN
THORChain: THORChain Router v4.1.1
0 ETH0.0025786436.7302148
Transfer Out213315662024-12-04 20:36:4711 mins ago1733344607IN
THORChain: THORChain Router v4.1.1
0.00326097 ETH0.0015934440
Transfer Out213315662024-12-04 20:36:4711 mins ago1733344607IN
THORChain: THORChain Router v4.1.1
0.009122 ETH0.0025934440
Transfer Out213315652024-12-04 20:36:3511 mins ago1733344595IN
THORChain: THORChain Router v4.1.1
0 ETH0.0025482840
Transfer Out And...213315552024-12-04 20:34:3513 mins ago1733344475IN
THORChain: THORChain Router v4.1.1
2.38956022 ETH0.0072330244.14793487
Transfer Out213315542024-12-04 20:34:2313 mins ago1733344463IN
THORChain: THORChain Router v4.1.1
0 ETH0.0028203944.2630175
Transfer Out213315532024-12-04 20:34:1113 mins ago1733344451IN
THORChain: THORChain Router v4.1.1
0 ETH0.0029236545.88352026
Transfer Out213315482024-12-04 20:33:1114 mins ago1733344391IN
THORChain: THORChain Router v4.1.1
0.01886287 ETH0.001876947.11588439
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
21331622-
THORChain: THORChain Router v4.1.1
0.02164813 ETH
213316202024-12-04 20:47:3530 secs ago1733345255
THORChain: THORChain Router v4.1.1
0.03746872 ETH
213316162024-12-04 20:46:471 min ago1733345207
THORChain: THORChain Router v4.1.1
0.031 ETH
213316112024-12-04 20:45:472 mins ago1733345147
THORChain: THORChain Router v4.1.1
0.00904032 ETH
213316102024-12-04 20:45:352 mins ago1733345135
THORChain: THORChain Router v4.1.1
0.04000922 ETH
213316032024-12-04 20:44:113 mins ago1733345051
THORChain: THORChain Router v4.1.1
0.01728333 ETH
213316012024-12-04 20:43:474 mins ago1733345027
THORChain: THORChain Router v4.1.1
51.700336 ETH
213315992024-12-04 20:43:234 mins ago1733345003
THORChain: THORChain Router v4.1.1
0.00570344 ETH
213315912024-12-04 20:41:476 mins ago1733344907
THORChain: THORChain Router v4.1.1
10 ETH
213315782024-12-04 20:39:118 mins ago1733344751
THORChain: THORChain Router v4.1.1
0.21 ETH
213315722024-12-04 20:37:5910 mins ago1733344679
THORChain: THORChain Router v4.1.1
2.25633368 ETH
213315712024-12-04 20:37:4710 mins ago1733344667
THORChain: THORChain Router v4.1.1
12.699 ETH
213315692024-12-04 20:37:2310 mins ago1733344643
THORChain: THORChain Router v4.1.1
50.39511254 ETH
213315662024-12-04 20:36:4711 mins ago1733344607
THORChain: THORChain Router v4.1.1
0.00326097 ETH
213315662024-12-04 20:36:4711 mins ago1733344607
THORChain: THORChain Router v4.1.1
0.009122 ETH
213315652024-12-04 20:36:3511 mins ago1733344595
THORChain: THORChain Router v4.1.1
0.069825 ETH
213315652024-12-04 20:36:3511 mins ago1733344595
THORChain: THORChain Router v4.1.1
0.069825 ETH
213315552024-12-04 20:34:3513 mins ago1733344475
THORChain: THORChain Router v4.1.1
2.38956022 ETH
213315482024-12-04 20:33:1114 mins ago1733344391
THORChain: THORChain Router v4.1.1
0.01886287 ETH
213315402024-12-04 20:31:3516 mins ago1733344295
THORChain: THORChain Router v4.1.1
0.01026557 ETH
213315392024-12-04 20:31:2316 mins ago1733344283
THORChain: THORChain Router v4.1.1
0.27 ETH
213315392024-12-04 20:31:2316 mins ago1733344283
THORChain: THORChain Router v4.1.1
0.03548939 ETH
213315382024-12-04 20:31:1116 mins ago1733344271
THORChain: THORChain Router v4.1.1
0.3 ETH
213315382024-12-04 20:31:1116 mins ago1733344271
THORChain: THORChain Router v4.1.1
0.07672571 ETH
213315362024-12-04 20:30:4717 mins ago1733344247
THORChain: THORChain Router v4.1.1
0.13001204 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
ETH32.17%$113,467,217.8722$13,467,217.87
ETH28.35%$0.99923411,876,103.6304$11,867,006.53
ETH18.45%$97,94178.8585$7,723,483.64
ETH10.97%$0.19477823,578,501.3209$4,592,573.33
ETH3.16%$0.012717104,132,209.987$1,324,246.75
ETH1.74%$1726,519.2485$726,519.25
ETH1.01%$1.01416,607.847$420,944.67
ETH0.82%$0.999363344,706.44$344,486.86
ETH0.81%$1337,774.336$339,125.43
ETH0.50%$24.88,504.4589$210,910.58
ETH0.48%$268.22756.2445$202,839.9
ETH0.48%$0.0766642,636,520.4698$202,125.86
ETH0.29%$157.64775.0248$122,174.92
ETH0.25%$3.1433,014.3991$103,665.21
ETH0.24%$0.0178335,635,072.0958$100,487.65
ETH0.12%$9,855.725.0767$50,034.9
ETH0.04%$0.093221163,612.1409$15,252.09
ETH0.02%$0.0011915,363,525.6525$6,390.62
ETH<0.01%$0.021192145,036.0744$3,073.64
ETH<0.01%$1.541,570.9163$2,419.21
ETH<0.01%$1.121,463.0852$1,638.66
ETH<0.01%$0.12941411,291.838$1,461.32
ETH<0.01%$0.13173610,146.1669$1,336.62
ETH<0.01%$22.5350.719$1,142.7
ETH<0.01%$0.003736239,928.6596$896.36
ETH<0.01%$1.53469.6023$718.49
ETH<0.01%$25.522.4846$573.36
ETH<0.01%$0.00002116,865,765.9216$361.26
ETH<0.01%$0.330421500$165.21
ETH<0.01%$0.00174150,000$87.07
ETH<0.01%$0.0039682,000$7.94
ETH<0.01%$1.135$5.63
ETH<0.01%$0.0010811,000$1.08
ARB0.03%$3,867.773.2695$12,645.82
BSC0.01%$733.436.4749$4,748.88
BSC<0.01%$13,000$3,000
AVAX0.01%$54.42103.4623$5,630.82
AVAX<0.01%$1150.019$150.27
SCROLL<0.01%$3,863.080.05$193.15
POL<0.01%$0.7186821.9346$1.39
FTM<0.01%$1.220.3$0.365153
GNO<0.01%$10.0885$0.088563
MANTLE<0.01%$1.110.000213$0.000236
BASE<0.01%$3,869.680.000000000000084$0.325053
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.