ETH Price: $2,017.46 (+0.86%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw All118836802021-02-18 23:06:111494 days ago1613689571IN
0x5ed4a410...97fF8C8be
0 ETH0.01385487148
Withdraw All118836802021-02-18 23:06:111494 days ago1613689571IN
0x5ed4a410...97fF8C8be
0 ETH0.01477313136
Swap118836322021-02-18 22:56:201494 days ago1613688980IN
0x5ed4a410...97fF8C8be
0 ETH0.04643128140
Add Synth118832092021-02-18 21:25:001494 days ago1613683500IN
0x5ed4a410...97fF8C8be
0 ETH0.0094744215
Add Synth118832022021-02-18 21:23:071494 days ago1613683387IN
0x5ed4a410...97fF8C8be
0 ETH0.00991237225
Add Synth118832012021-02-18 21:23:001494 days ago1613683380IN
0x5ed4a410...97fF8C8be
0 ETH0.00991507225

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SynthetixAMM

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-18
*/

// SPDX-License-Identifier: bsl-1.1

pragma solidity ^0.8.1;
pragma experimental ABIEncoderV2;

interface IKeep3rV1Quote {
    struct LiquidityParams {
        uint sReserveA;
        uint sReserveB;
        uint uReserveA;
        uint uReserveB;
        uint sLiquidity;
        uint uLiquidity;
    }
    
    struct QuoteParams {
        uint quoteOut;
        uint amountOut;
        uint currentOut;
        uint sTWAP;
        uint uTWAP;
        uint sCUR;
        uint uCUR;
    }
    
    function assetToUsd(address tokenIn, uint amountIn, uint granularity) external returns (QuoteParams memory q, LiquidityParams memory l);
    function assetToEth(address tokenIn, uint amountIn, uint granularity) external view returns (QuoteParams memory q, LiquidityParams memory l);
    function ethToUsd(uint amountIn, uint granularity) external view returns (QuoteParams memory q, LiquidityParams memory l);
    function pairFor(address tokenA, address tokenB) external pure returns (address sPair, address uPair);
    function sPairFor(address tokenA, address tokenB) external pure returns (address sPair);
    function uPairFor(address tokenA, address tokenB) external pure returns (address uPair);
    function getLiquidity(address tokenA, address tokenB) external view returns (LiquidityParams memory l);
    function assetToAsset(address tokenIn, uint amountIn, address tokenOut, uint granularity) external view returns (QuoteParams memory q, LiquidityParams memory l);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
}
library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract SynthetixAMM  {
    using SafeERC20 for IERC20;
    
    address public governance;
    address public pendingGovernance;
    
    mapping(address => address) synths;
    
    IKeep3rV1Quote public constant exchange = IKeep3rV1Quote(0xDd6eb7F03F8cd9b5C9565172E37C0Bb98D67E078);
    
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    constructor() {
        governance = msg.sender;
    }
    
    function setGovernance(address _gov) external {
        require(msg.sender == governance);
        pendingGovernance = _gov;
    } 
    
    function acceptGovernance() external {
        require(msg.sender == pendingGovernance);
        governance = pendingGovernance;
    }
    
    function withdraw(address token, uint amount) external {
        require(msg.sender == governance);
        IERC20(token).safeTransfer(governance, amount);
    }
    
    function withdrawAll(address token) external {
        require(msg.sender == governance);
        IERC20(token).safeTransfer(governance, IERC20(token).balanceOf(address(this)));
    }
    
    function addSynth(address synth, address token) external {
        require(msg.sender == governance);
        synths[synth] = token;
    }
    
    function quote(address synthIn, uint amountIn, address synthOut) public view returns (uint) {
        address _tokenOut = synths[synthOut];
        address _tokenIn = synths[synthIn];
        (IKeep3rV1Quote.QuoteParams memory q,) = exchange.assetToAsset(_tokenIn, amountIn * 10 ** IERC20(_tokenIn).decimals() / 10 ** 18, _tokenOut, 2);
        return q.quoteOut * 10 ** 18 / 10 ** IERC20(_tokenOut).decimals();
    }
    
    function swap(address synthIn, uint amountIn, address synthOut, address recipient) external returns (uint) {
        uint quoteOut = quote(synthIn, amountIn, synthOut);
        IERC20(synthIn).safeTransferFrom(msg.sender, address(this), amountIn);
        IERC20(synthOut).safeTransfer(recipient, quoteOut);
        emit Swap(msg.sender, amountIn, 0, 0, quoteOut, recipient);
        return quoteOut;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"inputs":[],"name":"acceptGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"synth","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"addSynth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchange","outputs":[{"internalType":"contract IKeep3rV1Quote","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"synthIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"synthOut","type":"address"}],"name":"quote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"synthIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"synthOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610d21806100326000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063d2f7265a11610066578063d2f7265a14610111578063f39c38a014610119578063f3fef3a314610121578063fa09e63014610134578063ff11b5c0146101475761009e565b8063238efcbc146100a35780635a837efd146100ad5780635aa6e675146100d6578063ab033ea9146100eb578063ad18ad0c146100fe575b600080fd5b6100ab61015a565b005b6100c06100bb366004610890565b610195565b6040516100cd9190610b1c565b60405180910390f35b6100de610229565b6040516100cd91906109eb565b6100ab6100f93660046107e0565b610238565b6100c061010c366004610855565b610271565b6100de61046f565b6100de610487565b6100ab61012f36600461082c565b610496565b6100ab6101423660046107e0565b6104cb565b6100ab6101553660046107fa565b61057e565b6001546001600160a01b0316331461017157600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000806101a3868686610271565b90506101ba6001600160a01b0387163330886105c3565b6101ce6001600160a01b0385168483610621565b826001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82287600080866040516102189493929190610b25565b60405180910390a395945050505050565b6000546001600160a01b031681565b6000546001600160a01b0316331461024f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808216600090815260026020908152604080832054878516845281842054825163313ce56760e01b81529251949591821694911692859273dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07892637c661949928692670de0b6b3a764000092849263313ce5679260048082019391829003018186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103339190610991565b61033e90600a610be5565b610348908b610cb6565b6103529190610b7f565b8660026040518563ffffffff1660e01b81526004016103749493929190610a3c565b6101a06040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c591906108fc565b509050826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104399190610991565b61044490600a610be5565b815161045890670de0b6b3a7640000610cb6565b6104629190610b7f565b93505050505b9392505050565b73dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07881565b6001546001600160a01b031681565b6000546001600160a01b031633146104ad57600080fd5b6000546104c7906001600160a01b03848116911683610621565b5050565b6000546001600160a01b031633146104e257600080fd5b6000546040516370a0823160e01b815261057b916001600160a01b0390811691908416906370a082319061051a9030906004016109eb565b60206040518083038186803b15801561053257600080fd5b505afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a9190610979565b6001600160a01b0384169190610621565b50565b6000546001600160a01b0316331461059557600080fd5b6001600160a01b03918216600090815260026020526040902080546001600160a01b03191691909216179055565b61061b846323b872dd60e01b8585856040516024016105e4939291906109ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610645565b50505050565b6106408363a9059cbb60e01b84846040516024016105e4929190610a23565b505050565b610657826001600160a01b0316610732565b61067c5760405162461bcd60e51b815260040161067390610ae5565b60405180910390fd5b600080836001600160a01b03168360405161069791906109b2565b6000604051808303816000865af19150503d80600081146106d4576040519150601f19603f3d011682016040523d82523d6000602084013e6106d9565b606091505b5091509150816106fb5760405162461bcd60e51b815260040161067390610a66565b80511561061b578080602001905181019061071691906108dc565b61061b5760405162461bcd60e51b815260040161067390610a9b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906107665750808214155b925050505b919050565b80356001600160a01b038116811461076b57600080fd5b600060c08284031215610798578081fd5b6107a260c0610b40565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015292915050565b6000602082840312156107f1578081fd5b61046882610770565b6000806040838503121561080c578081fd5b61081583610770565b915061082360208401610770565b90509250929050565b6000806040838503121561083e578182fd5b61084783610770565b946020939093013593505050565b600080600060608486031215610869578081fd5b61087284610770565b92506020840135915061088760408501610770565b90509250925092565b600080600080608085870312156108a5578081fd5b6108ae85610770565b9350602085013592506108c360408601610770565b91506108d160608601610770565b905092959194509250565b6000602082840312156108ed578081fd5b81518015158114610468578182fd5b6000808284036101a0811215610910578283fd5b60e081121561091d578283fd5b5061092860e0610b40565b835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c0820152809250506108238460e08501610787565b60006020828403121561098a578081fd5b5051919050565b6000602082840312156109a2578081fd5b815160ff81168114610468578182fd5b60008251815b818110156109d257602081860181015185830152016109b8565b818111156109e05782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b93845260208401929092526040830152606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b7757634e487b7160e01b600052604160045260246000fd5b604052919050565b600082610b9a57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610bb15750610bdc565b818704821115610bc357610bc3610cd5565b80861615610bd057918102915b9490941c938002610ba2565b94509492505050565b600061046860001960ff851684600082610c0157506001610468565b81610c0e57506000610468565b8160018114610c245760028114610c2e57610c5b565b6001915050610468565b60ff841115610c3f57610c3f610cd5565b6001841b915084821115610c5557610c55610cd5565b50610468565b5060208310610133831016604e8410600b8410161715610c8e575081810a83811115610c8957610c89610cd5565b610468565b610c9b8484846001610b9f565b808604821115610cad57610cad610cd5565b02949350505050565b6000816000190483118215151615610cd057610cd0610cd5565b500290565b634e487b7160e01b600052601160045260246000fdfea264697066735822122078b530288f1cffe879bb7d9062e904deb3aa9b9c8d27ea4ecafa987583c18a6e64736f6c63430008010033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063d2f7265a11610066578063d2f7265a14610111578063f39c38a014610119578063f3fef3a314610121578063fa09e63014610134578063ff11b5c0146101475761009e565b8063238efcbc146100a35780635a837efd146100ad5780635aa6e675146100d6578063ab033ea9146100eb578063ad18ad0c146100fe575b600080fd5b6100ab61015a565b005b6100c06100bb366004610890565b610195565b6040516100cd9190610b1c565b60405180910390f35b6100de610229565b6040516100cd91906109eb565b6100ab6100f93660046107e0565b610238565b6100c061010c366004610855565b610271565b6100de61046f565b6100de610487565b6100ab61012f36600461082c565b610496565b6100ab6101423660046107e0565b6104cb565b6100ab6101553660046107fa565b61057e565b6001546001600160a01b0316331461017157600080fd5b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000806101a3868686610271565b90506101ba6001600160a01b0387163330886105c3565b6101ce6001600160a01b0385168483610621565b826001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82287600080866040516102189493929190610b25565b60405180910390a395945050505050565b6000546001600160a01b031681565b6000546001600160a01b0316331461024f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808216600090815260026020908152604080832054878516845281842054825163313ce56760e01b81529251949591821694911692859273dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07892637c661949928692670de0b6b3a764000092849263313ce5679260048082019391829003018186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103339190610991565b61033e90600a610be5565b610348908b610cb6565b6103529190610b7f565b8660026040518563ffffffff1660e01b81526004016103749493929190610a3c565b6101a06040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c591906108fc565b509050826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104399190610991565b61044490600a610be5565b815161045890670de0b6b3a7640000610cb6565b6104629190610b7f565b93505050505b9392505050565b73dd6eb7f03f8cd9b5c9565172e37c0bb98d67e07881565b6001546001600160a01b031681565b6000546001600160a01b031633146104ad57600080fd5b6000546104c7906001600160a01b03848116911683610621565b5050565b6000546001600160a01b031633146104e257600080fd5b6000546040516370a0823160e01b815261057b916001600160a01b0390811691908416906370a082319061051a9030906004016109eb565b60206040518083038186803b15801561053257600080fd5b505afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a9190610979565b6001600160a01b0384169190610621565b50565b6000546001600160a01b0316331461059557600080fd5b6001600160a01b03918216600090815260026020526040902080546001600160a01b03191691909216179055565b61061b846323b872dd60e01b8585856040516024016105e4939291906109ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610645565b50505050565b6106408363a9059cbb60e01b84846040516024016105e4929190610a23565b505050565b610657826001600160a01b0316610732565b61067c5760405162461bcd60e51b815260040161067390610ae5565b60405180910390fd5b600080836001600160a01b03168360405161069791906109b2565b6000604051808303816000865af19150503d80600081146106d4576040519150601f19603f3d011682016040523d82523d6000602084013e6106d9565b606091505b5091509150816106fb5760405162461bcd60e51b815260040161067390610a66565b80511561061b578080602001905181019061071691906108dc565b61061b5760405162461bcd60e51b815260040161067390610a9b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906107665750808214155b925050505b919050565b80356001600160a01b038116811461076b57600080fd5b600060c08284031215610798578081fd5b6107a260c0610b40565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015292915050565b6000602082840312156107f1578081fd5b61046882610770565b6000806040838503121561080c578081fd5b61081583610770565b915061082360208401610770565b90509250929050565b6000806040838503121561083e578182fd5b61084783610770565b946020939093013593505050565b600080600060608486031215610869578081fd5b61087284610770565b92506020840135915061088760408501610770565b90509250925092565b600080600080608085870312156108a5578081fd5b6108ae85610770565b9350602085013592506108c360408601610770565b91506108d160608601610770565b905092959194509250565b6000602082840312156108ed578081fd5b81518015158114610468578182fd5b6000808284036101a0811215610910578283fd5b60e081121561091d578283fd5b5061092860e0610b40565b835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c0820152809250506108238460e08501610787565b60006020828403121561098a578081fd5b5051919050565b6000602082840312156109a2578081fd5b815160ff81168114610468578182fd5b60008251815b818110156109d257602081860181015185830152016109b8565b818111156109e05782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b93845260208401929092526040830152606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b7757634e487b7160e01b600052604160045260246000fd5b604052919050565b600082610b9a57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611610bb15750610bdc565b818704821115610bc357610bc3610cd5565b80861615610bd057918102915b9490941c938002610ba2565b94509492505050565b600061046860001960ff851684600082610c0157506001610468565b81610c0e57506000610468565b8160018114610c245760028114610c2e57610c5b565b6001915050610468565b60ff841115610c3f57610c3f610cd5565b6001841b915084821115610c5557610c55610cd5565b50610468565b5060208310610133831016604e8410600b8410161715610c8e575081810a83811115610c8957610c89610cd5565b610468565b610c9b8484846001610b9f565b808604821115610cad57610cad610cd5565b02949350505050565b6000816000190483118215151615610cd057610cd0610cd5565b500290565b634e487b7160e01b600052601160045260246000fdfea264697066735822122078b530288f1cffe879bb7d9062e904deb3aa9b9c8d27ea4ecafa987583c18a6e64736f6c63430008010033

Deployed Bytecode Sourcemap

4013:2239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:137;;;:::i;:::-;;5837:412;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4082:25;;;:::i;:::-;;;;;;;:::i;4581:133::-;;;;;;:::i;:::-;;:::i;5403:422::-;;;;;;:::i;:::-;;:::i;4206:100::-;;;:::i;4114:32::-;;;:::i;4876:164::-;;;;;;:::i;:::-;;:::i;5052:186::-;;;;;;:::i;:::-;;:::i;5250:141::-;;;;;;:::i;:::-;;:::i;4727:137::-;4797:17;;-1:-1:-1;;;;;4797:17:0;4783:10;:31;4775:40;;;;;;4839:17;;;4826:30;;-1:-1:-1;;;;;;4826:30:0;-1:-1:-1;;;;;4839:17:0;;;4826:30;;;;;;4727:137::o;5837:412::-;5938:4;5955:13;5971:34;5977:7;5986:8;5996;5971:5;:34::i;:::-;5955:50;-1:-1:-1;6016:69:0;-1:-1:-1;;;;;6016:32:0;;6049:10;6069:4;6076:8;6016:32;:69::i;:::-;6096:50;-1:-1:-1;;;;;6096:29:0;;6126:9;6137:8;6096:29;:50::i;:::-;6205:9;-1:-1:-1;;;;;6162:53:0;6167:10;-1:-1:-1;;;;;6162:53:0;;6179:8;6189:1;6192;6195:8;6162:53;;;;;;;;;:::i;:::-;;;;;;;;6233:8;5837:412;-1:-1:-1;;;;;5837:412:0:o;4082:25::-;;;-1:-1:-1;;;;;4082:25:0;;:::o;4581:133::-;4660:10;;-1:-1:-1;;;;;4660:10:0;4646;:24;4638:33;;;;;;4682:17;:24;;-1:-1:-1;;;;;;4682:24:0;-1:-1:-1;;;;;4682:24:0;;;;;;;;;;4581:133::o;5403:422::-;-1:-1:-1;;;;;5526:16:0;;;5489:4;5526:16;;;:6;:16;;;;;;;;;5572:15;;;;;;;;;5688:27;;-1:-1:-1;;;5688:27:0;;;;5489:4;;5526:16;;;;5572:15;;;5489:4;;4263:42;;5639:21;;5572:15;;5718:8;;5572:15;;5688:25;;:27;;;;;;;;;;;5572:15;5688:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5682:33;;:2;:33;:::i;:::-;5671:44;;:8;:44;:::i;:::-;:55;;;;:::i;:::-;5728:9;5739:1;5639:102;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5598:143;;;5796:9;-1:-1:-1;;;;;5789:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5783:34;;:2;:34;:::i;:::-;5759:10;;:21;;5772:8;5759:21;:::i;:::-;:58;;;;:::i;:::-;5752:65;;;;;5403:422;;;;;;:::o;4206:100::-;4263:42;4206:100;:::o;4114:32::-;;;-1:-1:-1;;;;;4114:32:0;;:::o;4876:164::-;4964:10;;-1:-1:-1;;;;;4964:10:0;4950;:24;4942:33;;;;;;5013:10;;4986:46;;-1:-1:-1;;;;;4986:26:0;;;;5013:10;5025:6;4986:26;:46::i;:::-;4876:164;;:::o;5052:186::-;5130:10;;-1:-1:-1;;;;;5130:10:0;5116;:24;5108:33;;;;;;5179:10;;5191:38;;-1:-1:-1;;;5191:38:0;;5152:78;;-1:-1:-1;;;;;5179:10:0;;;;5191:23;;;;;;:38;;5223:4;;5191:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5152:26:0;;;:78;:26;:78::i;:::-;5052:186;:::o;5250:141::-;5340:10;;-1:-1:-1;;;;;5340:10:0;5326;:24;5318:33;;;;;;-1:-1:-1;;;;;5362:13:0;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;;;;;5362:21:0;;;;;;;;5250:141::o;2849:201::-;2947:95;2966:5;2996:27;;;3025:4;3031:2;3035:5;2973:68;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2973:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;2973:68:0;-1:-1:-1;;;;;;2973:68:0;;;;;;;;;;2947:18;:95::i;:::-;2849:201;;;;:::o;2668:173::-;2748:85;2767:5;2797:23;;;2822:2;2826:5;2774:58;;;;;;;;;:::i;2748:85::-;2668:173;;;:::o;3408:598::-;3496:27;3504:5;-1:-1:-1;;;;;3496:25:0;;:27::i;:::-;3488:71;;;;-1:-1:-1;;;3488:71:0;;;;;;;:::i;:::-;;;;;;;;;3633:12;3647:23;3682:5;-1:-1:-1;;;;;3674:19:0;3694:4;3674:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:67;;;;3718:7;3710:52;;;;-1:-1:-1;;;3710:52:0;;;;;;;:::i;:::-;3779:17;;:21;3775:224;;3921:10;3910:30;;;;;;;;;;;;:::i;:::-;3902:85;;;;-1:-1:-1;;;3902:85:0;;;;;;;:::i;2228:374::-;2288:4;2511:20;;2354:66;2551:15;;;;;:42;;;2582:11;2570:8;:23;;2551:42;2543:51;;;;2228:374;;;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:533;;318:4;306:9;301:3;297:19;293:30;290:2;;;340:5;333;326:20;290:2;366:21;382:4;366:21;:::i;:::-;357:30;;416:9;410:16;403:5;396:31;480:2;469:9;465:18;459:25;454:2;447:5;443:14;436:49;538:2;527:9;523:18;517:25;512:2;505:5;501:14;494:49;596:2;585:9;581:18;575:25;570:2;563:5;559:14;552:49;655:3;644:9;640:19;634:26;628:3;621:5;617:15;610:51;715:3;704:9;700:19;694:26;688:3;681:5;677:15;670:51;280:447;;;;:::o;732:198::-;;844:2;832:9;823:7;819:23;815:32;812:2;;;865:6;857;850:22;812:2;893:31;914:9;893:31;:::i;935:274::-;;;1064:2;1052:9;1043:7;1039:23;1035:32;1032:2;;;1085:6;1077;1070:22;1032:2;1113:31;1134:9;1113:31;:::i;:::-;1103:41;;1163:40;1199:2;1188:9;1184:18;1163:40;:::i;:::-;1153:50;;1022:187;;;;;:::o;1214:266::-;;;1343:2;1331:9;1322:7;1318:23;1314:32;1311:2;;;1364:6;1356;1349:22;1311:2;1392:31;1413:9;1392:31;:::i;:::-;1382:41;1470:2;1455:18;;;;1442:32;;-1:-1:-1;;;1301:179:1:o;1485:342::-;;;;1631:2;1619:9;1610:7;1606:23;1602:32;1599:2;;;1652:6;1644;1637:22;1599:2;1680:31;1701:9;1680:31;:::i;:::-;1670:41;;1758:2;1747:9;1743:18;1730:32;1720:42;;1781:40;1817:2;1806:9;1802:18;1781:40;:::i;:::-;1771:50;;1589:238;;;;;:::o;1832:419::-;;;;;1995:3;1983:9;1974:7;1970:23;1966:33;1963:2;;;2017:6;2009;2002:22;1963:2;2045:31;2066:9;2045:31;:::i;:::-;2035:41;;2123:2;2112:9;2108:18;2095:32;2085:42;;2146:40;2182:2;2171:9;2167:18;2146:40;:::i;:::-;2136:50;;2205:40;2241:2;2230:9;2226:18;2205:40;:::i;:::-;2195:50;;1953:298;;;;;;;:::o;2256:297::-;;2376:2;2364:9;2355:7;2351:23;2347:32;2344:2;;;2397:6;2389;2382:22;2344:2;2434:9;2428:16;2487:5;2480:13;2473:21;2466:5;2463:32;2453:2;;2514:6;2506;2499:22;2558:866;;;2747:9;2738:7;2734:23;2777:3;2773:2;2769:12;2766:2;;;2799:6;2791;2784:22;2766:2;2828:4;2824:2;2820:13;2817:2;;;2851:6;2843;2836:22;2817:2;;2882:21;2898:4;2882:21;:::i;:::-;2932:9;2926:16;2919:5;2912:31;2996:2;2985:9;2981:18;2975:25;2970:2;2963:5;2959:14;2952:49;3054:2;3043:9;3039:18;3033:25;3028:2;3021:5;3017:14;3010:49;3112:2;3101:9;3097:18;3091:25;3086:2;3079:5;3075:14;3068:49;3171:3;3160:9;3156:19;3150:26;3144:3;3137:5;3133:15;3126:51;3231:3;3220:9;3216:19;3210:26;3204:3;3197:5;3193:15;3186:51;3291:3;3280:9;3276:19;3270:26;3264:3;3257:5;3253:15;3246:51;3316:5;3306:15;;;3340:78;3410:7;3403:4;3392:9;3388:20;3340:78;:::i;3429:194::-;;3552:2;3540:9;3531:7;3527:23;3523:32;3520:2;;;3573:6;3565;3558:22;3520:2;-1:-1:-1;3601:16:1;;3510:113;-1:-1:-1;3510:113:1:o;3628:293::-;;3749:2;3737:9;3728:7;3724:23;3720:32;3717:2;;;3770:6;3762;3755:22;3717:2;3807:9;3801:16;3857:4;3850:5;3846:16;3839:5;3836:27;3826:2;;3882:6;3874;3867:22;3926:430;;4093:6;4087:13;4118:3;4130:129;4144:6;4141:1;4138:13;4130:129;;;4242:4;4226:14;;;4222:25;;4216:32;4203:11;;;4196:53;4159:12;4130:129;;;4277:6;4274:1;4271:13;4268:2;;;4312:3;4303:6;4298:3;4294:16;4287:29;4268:2;-1:-1:-1;4334:16:1;;;;;4063:293;-1:-1:-1;;4063:293:1:o;4361:203::-;-1:-1:-1;;;;;4525:32:1;;;;4507:51;;4495:2;4480:18;;4462:102::o;4569:375::-;-1:-1:-1;;;;;4827:15:1;;;4809:34;;4879:15;;;;4874:2;4859:18;;4852:43;4926:2;4911:18;;4904:34;;;;4759:2;4744:18;;4726:218::o;4949:274::-;-1:-1:-1;;;;;5141:32:1;;;;5123:51;;5205:2;5190:18;;5183:34;5111:2;5096:18;;5078:145::o;5228:455::-;-1:-1:-1;;;;;5523:15:1;;;5505:34;;5570:2;5555:18;;5548:34;;;;5618:15;;5613:2;5598:18;;5591:43;5665:2;5650:18;;5643:34;;;;5454:3;5439:19;;5421:262::o;5918:356::-;6120:2;6102:21;;;6139:18;;;6132:30;6198:34;6193:2;6178:18;;6171:62;6265:2;6250:18;;6092:182::o;6279:406::-;6481:2;6463:21;;;6520:2;6500:18;;;6493:30;6559:34;6554:2;6539:18;;6532:62;-1:-1:-1;;;6625:2:1;6610:18;;6603:40;6675:3;6660:19;;6453:232::o;6690:355::-;6892:2;6874:21;;;6931:2;6911:18;;;6904:30;6970:33;6965:2;6950:18;;6943:61;7036:2;7021:18;;6864:181::o;7050:177::-;7196:25;;;7184:2;7169:18;;7151:76::o;7232:407::-;7479:25;;;7535:2;7520:18;;7513:34;;;;7578:2;7563:18;;7556:34;7621:2;7606:18;;7599:34;7466:3;7451:19;;7433:206::o;7644:372::-;7715:2;7709:9;7780:2;7761:13;;-1:-1:-1;;7757:27:1;7745:40;;7815:18;7800:34;;7836:22;;;7797:62;7794:2;;;7901:10;7896:3;7892:20;7889:1;7882:31;7936:4;7933:1;7926:15;7964:4;7961:1;7954:15;7794:2;7995;7988:22;7689:327;;-1:-1:-1;7689:327:1:o;8021:217::-;;8087:1;8077:2;;-1:-1:-1;;;8112:31:1;;8166:4;8163:1;8156:15;8194:4;8119:1;8184:15;8077:2;-1:-1:-1;8223:9:1;;8067:171::o;8243:453::-;8339:6;8362:5;8376:314;8425:1;8462:2;8452:8;8449:16;8439:2;;8469:5;;;8439:2;8510:4;8505:3;8501:14;8495:4;8492:24;8489:2;;;8519:18;;:::i;:::-;8569:2;8559:8;8555:17;8552:2;;;8584:16;;;;8552:2;8663:17;;;;;8623:15;;8376:314;;;8320:376;;;;;;;:::o;8701:148::-;;8788:55;-1:-1:-1;;8829:4:1;8815:19;;8809:4;8854:922;8938:8;8928:2;;-1:-1:-1;8979:1:1;8993:5;;8928:2;9027:4;9017:2;;-1:-1:-1;9064:1:1;9078:5;;9017:2;9109:4;9127:1;9122:59;;;;9195:1;9190:183;;;;9102:271;;9122:59;9152:1;9143:10;;9166:5;;;9190:183;9227:3;9217:8;9214:17;9211:2;;;9234:18;;:::i;:::-;9290:1;9280:8;9276:16;9267:25;;9318:3;9311:5;9308:14;9305:2;;;9325:18;;:::i;:::-;9358:5;;;9102:271;;9457:2;9447:8;9444:16;9438:3;9432:4;9429:13;9425:36;9419:2;9409:8;9406:16;9401:2;9395:4;9392:12;9388:35;9385:77;9382:2;;;-1:-1:-1;9494:19:1;;;9529:14;;;9526:2;;;9546:18;;:::i;:::-;9579:5;;9382:2;9626:42;9664:3;9654:8;9648:4;9645:1;9626:42;:::i;:::-;9701:6;9696:3;9692:16;9683:7;9680:29;9677:2;;;9712:18;;:::i;:::-;9750:20;;8918:858;-1:-1:-1;;;;8918:858:1:o;9781:168::-;;9887:1;9883;9879:6;9875:14;9872:1;9869:21;9864:1;9857:9;9850:17;9846:45;9843:2;;;9894:18;;:::i;:::-;-1:-1:-1;9934:9:1;;9833:116::o;9954:127::-;10015:10;10010:3;10006:20;10003:1;9996:31;10046:4;10043:1;10036:15;10070:4;10067:1;10060:15

Swarm Source

ipfs://78b530288f1cffe879bb7d9062e904deb3aa9b9c8d27ea4ecafa987583c18a6e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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