ETH Price: $2,454.95 (-1.85%)

Contract

0xc697BB6625D9f7AdcF0fbf0cbd4DcF50D8716cd3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Stake194173332024-03-12 6:53:11236 days ago1710226391IN
0xc697BB66...0D8716cd3
0 ETH0.0077468754.22287495
Stake190439962024-01-19 22:48:59288 days ago1705704539IN
0xc697BB66...0D8716cd3
0 ETH0.0019495916.11
Stake189309392024-01-04 2:18:11304 days ago1704334691IN
0xc697BB66...0D8716cd3
0 ETH0.0019564824.67007058
Stake170985292023-04-22 1:11:47561 days ago1682125907IN
0xc697BB66...0D8716cd3
0 ETH0.0030713637.42783658
Stake169895722023-04-06 12:29:23576 days ago1680784163IN
0xc697BB66...0D8716cd3
0 ETH0.0023973924.18268256
Stake168829662023-03-22 11:54:35591 days ago1679486075IN
0xc697BB66...0D8716cd3
0 ETH0.0007865412.00122304
Stake168539162023-03-18 10:01:47596 days ago1679133707IN
0xc697BB66...0D8716cd3
0 ETH0.0021684816
Stake168383082023-03-16 5:22:59598 days ago1678944179IN
0xc697BB66...0D8716cd3
0 ETH0.0016088119.60511833
Stake168269422023-03-14 15:00:11599 days ago1678806011IN
0xc697BB66...0D8716cd3
0 ETH0.0055179655.64656841
Stake168250682023-03-14 8:42:23600 days ago1678783343IN
0xc697BB66...0D8716cd3
0 ETH0.0013723817.6390342
Stake168199152023-03-13 15:19:47600 days ago1678720787IN
0xc697BB66...0D8716cd3
0 ETH0.007146687.08890798
Stake168198922023-03-13 15:14:59600 days ago1678720499IN
0xc697BB66...0D8716cd3
0 ETH0.0068789483.86403749
Stake168198802023-03-13 15:12:23600 days ago1678720343IN
0xc697BB66...0D8716cd3
0 ETH0.0076623888.25085583
Stake168197562023-03-13 14:47:23600 days ago1678718843IN
0xc697BB66...0D8716cd3
0 ETH0.0048724259.39302955
Stake168194712023-03-13 13:49:35600 days ago1678715375IN
0xc697BB66...0D8716cd3
0 ETH0.0010875922.43611594
Stake168192922023-03-13 13:13:11600 days ago1678713191IN
0xc697BB66...0D8716cd3
0 ETH0.0027218327.45529962
Stake168188392023-03-13 11:41:35601 days ago1678707695IN
0xc697BB66...0D8716cd3
0 ETH0.0017387921.19531267
Stake168186132023-03-13 10:55:59601 days ago1678704959IN
0xc697BB66...0D8716cd3
0 ETH0.0016163119.71095343
Stake168185522023-03-13 10:43:35601 days ago1678704215IN
0xc697BB66...0D8716cd3
0 ETH0.0031237625.8486784
Stake168183252023-03-13 9:57:47601 days ago1678701467IN
0xc697BB66...0D8716cd3
0 ETH0.0022335427.22600893
Stake168182262023-03-13 9:37:47601 days ago1678700267IN
0xc697BB66...0D8716cd3
0 ETH0.0027341431.64047378
Stake168182092023-03-13 9:34:11601 days ago1678700051IN
0xc697BB66...0D8716cd3
0 ETH0.0019088129.11948996
Stake168084222023-03-12 0:33:59602 days ago1678581239IN
0xc697BB66...0D8716cd3
0 ETH0.0020785224.05338447
Stake167990362023-03-10 16:53:23603 days ago1678467203IN
0xc697BB66...0D8716cd3
0 ETH0.0036542133.8739225
Stake167956842023-03-10 5:29:47604 days ago1678426187IN
0xc697BB66...0D8716cd3
0 ETH0.0009752218.59589745
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EulStakes

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, GNU GPLv2 license
File 1 of 3 : EulStakes.sol
// SPDX-License-Identifier: GPL-2.0-or-later

pragma solidity ^0.8.0;

import "../Utils.sol";

contract EulStakes {
    address public immutable eul;
    string public constant name = "EUL Stakes";
    mapping(address => mapping(address => uint)) userStaked;

    event Stake(address indexed who, address indexed underlying, address sender, uint newAmount);

    constructor(address eul_) {
        eul = eul_;
    }

    /// @notice Retrieve current amount staked
    /// @param account User address
    /// @param underlying Token staked upon
    /// @return Amount of EUL token staked
    function staked(address account, address underlying) external view returns (uint) {
        return userStaked[account][underlying];
    }

    /// @notice Staking operation item. Positive amount means to increase stake on this underlying, negative to decrease.
    struct StakeOp {
        address underlying;
        int amount;
    }

    /// @notice Modify stake of a series of underlyings. If the sum of all amounts is positive, then this amount of EUL will be transferred in from the sender's wallet. If negative, EUL will be transferred out to the sender's wallet.
    /// @param ops Array of operations to perform
    function stake(StakeOp[] memory ops) public {
        int delta = 0;

        for (uint i = 0; i < ops.length; ++i) {
            StakeOp memory op = ops[i];
            if (op.amount == 0) continue;

            require(op.amount > -1e36 && op.amount < 1e36, "amount out of range");

            uint newAmount;

            {
                int newAmountSigned = int(userStaked[msg.sender][op.underlying]) + op.amount;
                require(newAmountSigned >= 0, "insufficient staked");
                newAmount = uint(newAmountSigned);
            }

            userStaked[msg.sender][op.underlying] = newAmount;
            emit Stake(msg.sender, op.underlying, msg.sender, newAmount);

            delta += op.amount;
        }

        if (delta > 0) {
            Utils.safeTransferFrom(eul, msg.sender, address(this), uint(delta));
        } else if (delta < 0) {
            Utils.safeTransfer(eul, msg.sender, uint(-delta));
        }
    }

    /// @notice Increase stake on an underlying, and transfer this stake to a beneficiary
    /// @param beneficiary Who is given credit for this staked EUL
    /// @param underlying The underlying token to be staked upon
    /// @param amount How much EUL to stake
    function stakeGift(address beneficiary, address underlying, uint amount) external {
        require(amount < 1e36, "amount out of range");
        if (amount == 0) return;

        uint newAmount = userStaked[beneficiary][underlying] + amount;

        userStaked[beneficiary][underlying] = newAmount;
        emit Stake(beneficiary, underlying, msg.sender, newAmount);

        Utils.safeTransferFrom(eul, msg.sender, address(this), amount);
    }

    /// @notice Applies a permit() signature to EUL and then applies a sequence of staking operations
    /// @param ops Array of operations to perform
    /// @param value The value field of the permit message
    /// @param deadline The deadline field of the permit message
    /// @param v Signature field
    /// @param r Signature field
    /// @param s Signature field
    function stakePermit(StakeOp[] memory ops, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        IERC20Permit(eul).permit(msg.sender, address(this), value, deadline, v, r, s);

        stake(ops);
    }
}

File 2 of 3 : Utils.sol
// SPDX-License-Identifier: GPL-2.0-or-later

pragma solidity ^0.8.0;

import "./Interfaces.sol";

library Utils {
    function safeTransferFrom(address token, address from, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), string(data));
    }

    function safeTransfer(address token, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), string(data));
    }

    function safeApprove(address token, address to, uint value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.approve.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), string(data));
    }
}

File 3 of 3 : Interfaces.sol
// SPDX-License-Identifier: GPL-2.0-or-later

pragma solidity ^0.8.0;


interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

interface IERC20Permit {
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    function permit(address holder, address spender, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s) external;
    function permit(address owner, address spender, uint value, uint deadline, bytes calldata signature) external;
}

interface IERC3156FlashBorrower {
    function onFlashLoan(address initiator, address token, uint256 amount, uint256 fee, bytes calldata data) external returns (bytes32);
}

interface IERC3156FlashLender {
    function maxFlashLoan(address token) external view returns (uint256);
    function flashFee(address token, uint256 amount) external view returns (uint256);
    function flashLoan(IERC3156FlashBorrower receiver, address token, uint256 amount, bytes calldata data) external returns (bool);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"eul_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"who","type":"address"},{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"Stake","type":"event"},{"inputs":[],"name":"eul","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"underlying","type":"address"},{"internalType":"int256","name":"amount","type":"int256"}],"internalType":"struct EulStakes.StakeOp[]","name":"ops","type":"tuple[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"underlying","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeGift","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"underlying","type":"address"},{"internalType":"int256","name":"amount","type":"int256"}],"internalType":"struct EulStakes.StakeOp[]","name":"ops","type":"tuple[]"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"stakePermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"underlying","type":"address"}],"name":"staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b50604051610eb4380380610eb483398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610e0d6100a76000396000818161015b015281816101fb015281816104c1015281816104fa01526106610152610e0d6000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806347a364451161005057806347a36445146100f1578063c6d3afc914610104578063d0bd90671461015657600080fd5b806306fdde031461007757806327808a86146100c95780633bb6a829146100de575b600080fd5b6100b36040518060400160405280600a81526020017f45554c205374616b65730000000000000000000000000000000000000000000081525081565b6040516100c09190610943565b60405180910390f35b6100dc6100d7366004610b0f565b6101a2565b005b6100dc6100ec366004610b8a565b61027d565b6100dc6100ff366004610bc7565b610528565b610148610112366004610c03565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526020818152604080832093909416825291909152205490565b6040519081526020016100c0565b61017d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c0565b6040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526064810185905260ff8416608482015260a4810183905260c481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d505accf9060e401600060405180830381600087803b15801561025457600080fd5b505af1158015610268573d6000803e3d6000fd5b505050506102758661027d565b505050505050565b6000805b82518110156104b257600083828151811061029e5761029e610c36565b602002602001015190508060200151600014156102bb57506104a2565b7fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f000000000816020015113801561030057506ec097ce7bc90715b34b9f10000000008160200151125b61036b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616d6f756e74206f7574206f662072616e67650000000000000000000000000060448201526064015b60405180910390fd5b6020808201513360009081528083526040808220855173ffffffffffffffffffffffffffffffffffffffff1683529093529182205482916103ab91610c94565b90506000811215610418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e73756666696369656e74207374616b6564000000000000000000000000006044820152606401610362565b33600081815260208181526040808320875173ffffffffffffffffffffffffffffffffffffffff9081168552908352928190208590558651815185815292830186905294955093909116927fc5017594d2723c038bb216e5bcef3ac65910ade839c0e63253bf5b59efbf0fd7910160405180910390a3602082015161049d9085610c94565b935050505b6104ab81610d08565b9050610281565b5060008113156104ec576104e87f000000000000000000000000000000000000000000000000000000000000000033308461068e565b5050565b60008112156104e8576104e87f00000000000000000000000000000000000000000000000000000000000000003361052384610d41565b6107db565b6ec097ce7bc90715b34b9f100000000081106105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616d6f756e74206f7574206f662072616e6765000000000000000000000000006044820152606401610362565b806105aa57505050565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152602081815260408083209386168352929052908120546105e8908390610d7a565b73ffffffffffffffffffffffffffffffffffffffff858116600081815260208181526040808320948916808452948252918290208590558151338152908101859052939450919290917fc5017594d2723c038bb216e5bcef3ac65910ade839c0e63253bf5b59efbf0fd7910160405180910390a36106887f000000000000000000000000000000000000000000000000000000000000000033308561068e565b50505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052915160009283929088169161072d9190610d92565b6000604051808303816000865af19150503d806000811461076a576040519150601f19603f3d011682016040523d82523d6000602084013e61076f565b606091505b50915091508180156107995750805115806107995750808060200190518101906107999190610dae565b81906107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103629190610943565b50505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916108729190610d92565b6000604051808303816000865af19150503d80600081146108af576040519150601f19603f3d011682016040523d82523d6000602084013e6108b4565b606091505b50915091508180156108de5750805115806108de5750808060200190518101906108de9190610dae565b8190610275576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103629190610943565b60005b8381101561093257818101518382015260200161091a565b838111156106885750506000910152565b6020815260008251806020840152610962816040850160208701610917565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156109e6576109e6610994565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a3357610a33610994565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a5f57600080fd5b919050565b600082601f830112610a7557600080fd5b8135602067ffffffffffffffff821115610a9157610a91610994565b610a9f818360051b016109ec565b82815260069290921b84018101918181019086841115610abe57600080fd5b8286015b84811015610b045760408189031215610adb5760008081fd5b610ae36109c3565b610aec82610a3b565b81528185013585820152835291830191604001610ac2565b509695505050505050565b60008060008060008060c08789031215610b2857600080fd5b863567ffffffffffffffff811115610b3f57600080fd5b610b4b89828a01610a64565b9650506020870135945060408701359350606087013560ff81168114610b7057600080fd5b9598949750929560808101359460a0909101359350915050565b600060208284031215610b9c57600080fd5b813567ffffffffffffffff811115610bb357600080fd5b610bbf84828501610a64565b949350505050565b600080600060608486031215610bdc57600080fd5b610be584610a3b565b9250610bf360208501610a3b565b9150604084013590509250925092565b60008060408385031215610c1657600080fd5b610c1f83610a3b565b9150610c2d60208401610a3b565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615610cce57610cce610c65565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615610d0257610d02610c65565b50500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d3a57610d3a610c65565b5060010190565b60007f8000000000000000000000000000000000000000000000000000000000000000821415610d7357610d73610c65565b5060000390565b60008219821115610d8d57610d8d610c65565b500190565b60008251610da4818460208701610917565b9190910192915050565b600060208284031215610dc057600080fd5b81518015158114610dd057600080fd5b939250505056fea2646970667358221220cea03225c91569b66802e8346b4b076ecd8b0aabf466e4797ce1f8d510fbaca464736f6c634300080a0033000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100725760003560e01c806347a364451161005057806347a36445146100f1578063c6d3afc914610104578063d0bd90671461015657600080fd5b806306fdde031461007757806327808a86146100c95780633bb6a829146100de575b600080fd5b6100b36040518060400160405280600a81526020017f45554c205374616b65730000000000000000000000000000000000000000000081525081565b6040516100c09190610943565b60405180910390f35b6100dc6100d7366004610b0f565b6101a2565b005b6100dc6100ec366004610b8a565b61027d565b6100dc6100ff366004610bc7565b610528565b610148610112366004610c03565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526020818152604080832093909416825291909152205490565b6040519081526020016100c0565b61017d7f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c0565b6040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526064810185905260ff8416608482015260a4810183905260c481018290527f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b73ffffffffffffffffffffffffffffffffffffffff169063d505accf9060e401600060405180830381600087803b15801561025457600080fd5b505af1158015610268573d6000803e3d6000fd5b505050506102758661027d565b505050505050565b6000805b82518110156104b257600083828151811061029e5761029e610c36565b602002602001015190508060200151600014156102bb57506104a2565b7fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f000000000816020015113801561030057506ec097ce7bc90715b34b9f10000000008160200151125b61036b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616d6f756e74206f7574206f662072616e67650000000000000000000000000060448201526064015b60405180910390fd5b6020808201513360009081528083526040808220855173ffffffffffffffffffffffffffffffffffffffff1683529093529182205482916103ab91610c94565b90506000811215610418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e73756666696369656e74207374616b6564000000000000000000000000006044820152606401610362565b33600081815260208181526040808320875173ffffffffffffffffffffffffffffffffffffffff9081168552908352928190208590558651815185815292830186905294955093909116927fc5017594d2723c038bb216e5bcef3ac65910ade839c0e63253bf5b59efbf0fd7910160405180910390a3602082015161049d9085610c94565b935050505b6104ab81610d08565b9050610281565b5060008113156104ec576104e87f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b33308461068e565b5050565b60008112156104e8576104e87f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b3361052384610d41565b6107db565b6ec097ce7bc90715b34b9f100000000081106105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616d6f756e74206f7574206f662072616e6765000000000000000000000000006044820152606401610362565b806105aa57505050565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152602081815260408083209386168352929052908120546105e8908390610d7a565b73ffffffffffffffffffffffffffffffffffffffff858116600081815260208181526040808320948916808452948252918290208590558151338152908101859052939450919290917fc5017594d2723c038bb216e5bcef3ac65910ade839c0e63253bf5b59efbf0fd7910160405180910390a36106887f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b33308561068e565b50505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052915160009283929088169161072d9190610d92565b6000604051808303816000865af19150503d806000811461076a576040519150601f19603f3d011682016040523d82523d6000602084013e61076f565b606091505b50915091508180156107995750805115806107995750808060200190518101906107999190610dae565b81906107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103629190610943565b50505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916108729190610d92565b6000604051808303816000865af19150503d80600081146108af576040519150601f19603f3d011682016040523d82523d6000602084013e6108b4565b606091505b50915091508180156108de5750805115806108de5750808060200190518101906108de9190610dae565b8190610275576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103629190610943565b60005b8381101561093257818101518382015260200161091a565b838111156106885750506000910152565b6020815260008251806020840152610962816040850160208701610917565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156109e6576109e6610994565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a3357610a33610994565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a5f57600080fd5b919050565b600082601f830112610a7557600080fd5b8135602067ffffffffffffffff821115610a9157610a91610994565b610a9f818360051b016109ec565b82815260069290921b84018101918181019086841115610abe57600080fd5b8286015b84811015610b045760408189031215610adb5760008081fd5b610ae36109c3565b610aec82610a3b565b81528185013585820152835291830191604001610ac2565b509695505050505050565b60008060008060008060c08789031215610b2857600080fd5b863567ffffffffffffffff811115610b3f57600080fd5b610b4b89828a01610a64565b9650506020870135945060408701359350606087013560ff81168114610b7057600080fd5b9598949750929560808101359460a0909101359350915050565b600060208284031215610b9c57600080fd5b813567ffffffffffffffff811115610bb357600080fd5b610bbf84828501610a64565b949350505050565b600080600060608486031215610bdc57600080fd5b610be584610a3b565b9250610bf360208501610a3b565b9150604084013590509250925092565b60008060408385031215610c1657600080fd5b610c1f83610a3b565b9150610c2d60208401610a3b565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615610cce57610cce610c65565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615610d0257610d02610c65565b50500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d3a57610d3a610c65565b5060010190565b60007f8000000000000000000000000000000000000000000000000000000000000000821415610d7357610d73610c65565b5060000390565b60008219821115610d8d57610d8d610c65565b500190565b60008251610da4818460208701610917565b9190910192915050565b600060208284031215610dc057600080fd5b81518015158114610dd057600080fd5b939250505056fea2646970667358221220cea03225c91569b66802e8346b4b076ecd8b0aabf466e4797ce1f8d510fbaca464736f6c634300080a0033

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

000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b

-----Decoded View---------------
Arg [0] : eul_ (address): 0xd9Fcd98c322942075A5C3860693e9f4f03AAE07b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b


Deployed Bytecode Sourcemap

95:3405:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3273:225;;;;;;:::i;:::-;;:::i;:::-;;1217:955;;;;;;:::i;:::-;;:::i;2444:448::-;;;;;;:::i;:::-;;:::i;592:137::-;;;;;;:::i;:::-;691:19;;;;668:4;691:19;;;;;;;;;;;:31;;;;;;;;;;;;;592:137;;;;4649:25:3;;;4637:2;4622:18;592:137:2;4503:177:3;120:28:2;;;;;;;;4861:42:3;4849:55;;;4831:74;;4819:2;4804:18;120:28:2;4685:226:3;3273:225:2;3393:77;;;;;3418:10;3393:77;;;5288:34:3;3438:4:2;5338:18:3;;;5331:43;5390:18;;;5383:34;;;5433:18;;;5426:34;;;5509:4;5497:17;;5476:19;;;5469:46;5531:19;;;5524:35;;;5575:19;;;5568:35;;;3406:3:2;3393:24;;;;;5199:19:3;;3393:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3481:10;3487:3;3481:5;:10::i;:::-;3273:225;;;;;;:::o;1217:955::-;1271:9;1300:6;1295:659;1316:3;:10;1312:1;:14;1295:659;;;1347:17;1367:3;1371:1;1367:6;;;;;;;;:::i;:::-;;;;;;;1347:26;;1391:2;:9;;;1404:1;1391:14;1387:28;;;1407:8;;;1387:28;1450:5;1438:2;:9;;;:17;:37;;;;;1471:4;1459:2;:9;;;:16;1438:37;1430:69;;;;;;;6005:2:3;1430:69:2;;;5987:21:3;6044:2;6024:18;;;6017:30;6083:21;6063:18;;;6056:49;6122:18;;1430:69:2;;;;;;;;;1628:9;;;;;1598:10;1514:14;1587:22;;;;;;;;;;1610:13;;1587:22;:37;;;;;;;;;;1514:14;;1583:54;;;:::i;:::-;1561:76;;1682:1;1663:15;:20;;1655:52;;;;;;;6914:2:3;1655:52:2;;;6896:21:3;6953:2;6933:18;;;6926:30;6992:21;6972:18;;;6965:49;7031:18;;1655:52:2;6712:343:3;1655:52:2;1798:10;1787;:22;;;;;;;;;;;1810:13;;1787:22;:37;;;;;;;;;;;;:49;;;1873:13;;1855:55;;7234:74:3;;;7324:18;;;7317:34;;;1787:49:2;;-1:-1:-1;1855:55:2;;;;;;;7207:18:3;1855:55:2;;;;;;;1934:9;;;;1925:18;;;;:::i;:::-;;;1333:621;;1295:659;1328:3;;;:::i;:::-;;;1295:659;;;;1976:1;1968:5;:9;1964:202;;;1993:67;2016:3;2021:10;2041:4;2053:5;1993:22;:67::i;:::-;1261:911;1217:955;:::o;1964:202::-;2089:1;2081:5;:9;2077:89;;;2106:49;2125:3;2130:10;2147:6;2148:5;2147:6;:::i;:::-;2106:18;:49::i;2444:448::-;2553:4;2544:6;:13;2536:45;;;;;;;6005:2:3;2536:45:2;;;5987:21:3;6044:2;6024:18;;;6017:30;6083:21;6063:18;;;6056:49;6122:18;;2536:45:2;5803:343:3;2536:45:2;2595:11;2591:24;;2444:448;;;:::o;2591:24::-;2642:23;;;;2625:14;2642:23;;;;;;;;;;;:35;;;;;;;;;;;;:44;;2680:6;;2642:44;:::i;:::-;2697:23;;;;:10;:23;;;;;;;;;;;:35;;;;;;;;;;;;;:47;;;2759:53;;2790:10;7234:74:3;;7324:18;;;7317:34;;;2697:47:2;;-1:-1:-1;2697:35:2;;:23;;2759:53;;7207:18:3;2759:53:2;;;;;;;2823:62;2846:3;2851:10;2871:4;2878:6;2823:22;:62::i;:::-;2526:366;2444:448;;;:::o;119:312:1:-;264:69;;;253:10;8172:15:3;;;264:69:1;;;8154:34:3;8224:15;;;8204:18;;;8197:43;8256:18;;;;8249:34;;;264:69:1;;;;;;;;;;8066:18:3;;;;264:69:1;;;;;;;;;287:28;264:69;;;253:81;;-1:-1:-1;;;;253:10:1;;;;:81;;264:69;253:81;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;217:117;;;;352:7;:57;;;;-1:-1:-1;364:11:1;;:16;;:44;;;395:4;384:24;;;;;;;;;;;;:::i;:::-;418:4;344:80;;;;;;;;;;;;;;:::i;:::-;;207:224;;119:312;;;;:::o;437:284::-;564:59;;;553:10;7252:55:3;;;564:59:1;;;7234:74:3;7324:18;;;;7317:34;;;564:59:1;;;;;;;;;;7207:18:3;;;;564:59:1;;;;;;;;;587:24;564:59;;;553:71;;-1:-1:-1;;;;553:10:1;;;;:71;;564:59;553:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:107;;;;642:7;:57;;;;-1:-1:-1;654:11:1;;:16;;:44;;;685:4;674:24;;;;;;;;;;;;:::i;:::-;708:4;634:80;;;;;;;;;;;;;;:::i;14:258:3:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;-1:-1:-1;;262:1:3;244:16;;237:27;14:258::o;277:442::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;635:2;623:15;640:66;619:88;604:104;;;;710:2;600:113;;277:442;-1:-1:-1;;277:442:3:o;724:184::-;776:77;773:1;766:88;873:4;870:1;863:15;897:4;894:1;887:15;913:257;985:4;979:11;;;1017:17;;1064:18;1049:34;;1085:22;;;1046:62;1043:88;;;1111:18;;:::i;:::-;1147:4;1140:24;913:257;:::o;1175:334::-;1246:2;1240:9;1302:2;1292:13;;1307:66;1288:86;1276:99;;1405:18;1390:34;;1426:22;;;1387:62;1384:88;;;1452:18;;:::i;:::-;1488:2;1481:22;1175:334;;-1:-1:-1;1175:334:3:o;1514:196::-;1582:20;;1642:42;1631:54;;1621:65;;1611:93;;1700:1;1697;1690:12;1611:93;1514:196;;;:::o;1715:985::-;1776:5;1829:3;1822:4;1814:6;1810:17;1806:27;1796:55;;1847:1;1844;1837:12;1796:55;1883:6;1870:20;1909:4;1932:18;1928:2;1925:26;1922:52;;;1954:18;;:::i;:::-;1994:36;2026:2;2021;2018:1;2014:10;2010:19;1994:36;:::i;:::-;2064:15;;;2150:1;2146:10;;;;2134:23;;2130:32;;;2095:12;;;;2174:15;;;2171:35;;;2202:1;2199;2192:12;2171:35;2238:2;2230:6;2226:15;2250:421;2266:6;2261:3;2258:15;2250:421;;;2344:4;2338:3;2333;2329:13;2325:24;2322:114;;;2390:1;2419:2;2415;2408:14;2322:114;2462:22;;:::i;:::-;2511:23;2530:3;2511:23;:::i;:::-;2497:38;;2584:12;;;2571:26;2555:14;;;2548:50;2611:18;;2649:12;;;;2292:4;2283:14;2250:421;;;-1:-1:-1;2689:5:3;1715:985;-1:-1:-1;;;;;;1715:985:3:o;2705:811::-;2856:6;2864;2872;2880;2888;2896;2949:3;2937:9;2928:7;2924:23;2920:33;2917:53;;;2966:1;2963;2956:12;2917:53;3006:9;2993:23;3039:18;3031:6;3028:30;3025:50;;;3071:1;3068;3061:12;3025:50;3094:68;3154:7;3145:6;3134:9;3130:22;3094:68;:::i;:::-;3084:78;;;3209:2;3198:9;3194:18;3181:32;3171:42;;3260:2;3249:9;3245:18;3232:32;3222:42;;3314:2;3303:9;3299:18;3286:32;3358:4;3351:5;3347:16;3340:5;3337:27;3327:55;;3378:1;3375;3368:12;3327:55;2705:811;;;;-1:-1:-1;2705:811:3;;3453:3;3438:19;;3425:33;;3505:3;3490:19;;;3477:33;;-1:-1:-1;2705:811:3;-1:-1:-1;;2705:811:3:o;3521:379::-;3629:6;3682:2;3670:9;3661:7;3657:23;3653:32;3650:52;;;3698:1;3695;3688:12;3650:52;3738:9;3725:23;3771:18;3763:6;3760:30;3757:50;;;3803:1;3800;3793:12;3757:50;3826:68;3886:7;3877:6;3866:9;3862:22;3826:68;:::i;:::-;3816:78;3521:379;-1:-1:-1;;;;3521:379:3:o;3905:328::-;3982:6;3990;3998;4051:2;4039:9;4030:7;4026:23;4022:32;4019:52;;;4067:1;4064;4057:12;4019:52;4090:29;4109:9;4090:29;:::i;:::-;4080:39;;4138:38;4172:2;4161:9;4157:18;4138:38;:::i;:::-;4128:48;;4223:2;4212:9;4208:18;4195:32;4185:42;;3905:328;;;;;:::o;4238:260::-;4306:6;4314;4367:2;4355:9;4346:7;4342:23;4338:32;4335:52;;;4383:1;4380;4373:12;4335:52;4406:29;4425:9;4406:29;:::i;:::-;4396:39;;4454:38;4488:2;4477:9;4473:18;4454:38;:::i;:::-;4444:48;;4238:260;;;;;:::o;5614:184::-;5666:77;5663:1;5656:88;5763:4;5760:1;5753:15;5787:4;5784:1;5777:15;6151:184;6203:77;6200:1;6193:88;6300:4;6297:1;6290:15;6324:4;6321:1;6314:15;6340:367;6379:3;6414:1;6411;6407:9;6523:1;6455:66;6451:74;6448:1;6444:82;6439:2;6432:10;6428:99;6425:125;;;6530:18;;:::i;:::-;6649:1;6581:66;6577:74;6574:1;6570:82;6566:2;6562:91;6559:117;;;6656:18;;:::i;:::-;-1:-1:-1;;6692:9:3;;6340:367::o;7362:195::-;7401:3;7432:66;7425:5;7422:77;7419:103;;;7502:18;;:::i;:::-;-1:-1:-1;7549:1:3;7538:13;;7362:195::o;7562:191::-;7597:3;7628:66;7621:5;7618:77;7615:103;;;7698:18;;:::i;:::-;-1:-1:-1;7738:1:3;7734:13;;7562:191::o;7758:128::-;7798:3;7829:1;7825:6;7822:1;7819:13;7816:39;;;7835:18;;:::i;:::-;-1:-1:-1;7871:9:3;;7758:128::o;8294:274::-;8423:3;8461:6;8455:13;8477:53;8523:6;8518:3;8511:4;8503:6;8499:17;8477:53;:::i;:::-;8546:16;;;;;8294:274;-1:-1:-1;;8294:274:3:o;8573:277::-;8640:6;8693:2;8681:9;8672:7;8668:23;8664:32;8661:52;;;8709:1;8706;8699:12;8661:52;8741:9;8735:16;8794:5;8787:13;8780:21;8773:5;8770:32;8760:60;;8816:1;8813;8806:12;8760:60;8839:5;8573:277;-1:-1:-1;;;8573:277:3:o

Swarm Source

ipfs://cea03225c91569b66802e8346b4b076ecd8b0aabf466e4797ce1f8d510fbaca4

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
[ 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.