ETH Price: $3,270.44 (+1.03%)

Contract

0xd524E29E3BAF5BB085403Ca5665301E94387A7e2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim208863192024-10-03 16:56:59100 days ago1727974619IN
0xd524E29E...94387A7e2
0 ETH0.000967019.89687637
Claim203689602024-07-23 11:33:47172 days ago1721734427IN
0xd524E29E...94387A7e2
0 ETH0.000447653.97548498
Claim190388292024-01-19 5:30:23359 days ago1705642223IN
0xd524E29E...94387A7e2
0 ETH0.0024230421.21439146
Claim186352242023-11-23 15:07:35415 days ago1700752055IN
0xd524E29E...94387A7e2
0 ETH0.0044646845.67034153
Claim180536772023-09-03 4:46:59497 days ago1693716419IN
0xd524E29E...94387A7e2
0 ETH0.0013783314.11113183
Claim180021602023-08-26 23:35:11504 days ago1693092911IN
0xd524E29E...94387A7e2
0 ETH0.0015749410.84010656
Claim175351242023-06-22 12:21:23569 days ago1687436483IN
0xd524E29E...94387A7e2
0 ETH0.0013907214.22925966
Claim175162742023-06-19 20:51:47572 days ago1687207907IN
0xd524E29E...94387A7e2
0 ETH0.0005875415.24969404
Claim175161972023-06-19 20:35:47572 days ago1687206947IN
0xd524E29E...94387A7e2
0 ETH0.0006388616.58172172
Claim174713272023-06-13 13:19:23578 days ago1686662363IN
0xd524E29E...94387A7e2
0 ETH0.0006730617.46940808
Claim174712932023-06-13 13:12:35578 days ago1686661955IN
0xd524E29E...94387A7e2
0 ETH0.000695318.0467983
Claim174712822023-06-13 13:10:23578 days ago1686661823IN
0xd524E29E...94387A7e2
0 ETH0.0007089618.40120384
Claim174712752023-06-13 13:08:59578 days ago1686661739IN
0xd524E29E...94387A7e2
0 ETH0.0007006118.18452836
Claim174712712023-06-13 13:08:11578 days ago1686661691IN
0xd524E29E...94387A7e2
0 ETH0.0006581417.08237728
Claim174712642023-06-13 13:06:35578 days ago1686661595IN
0xd524E29E...94387A7e2
0 ETH0.0006413316.64603577
Claim173854842023-06-01 10:52:23590 days ago1685616743IN
0xd524E29E...94387A7e2
0 ETH0.0020666925.65447066
Claim171665452023-05-01 14:23:11621 days ago1682950991IN
0xd524E29E...94387A7e2
0 ETH0.0123618986
Claim171251612023-04-25 18:49:59627 days ago1682448599IN
0xd524E29E...94387A7e2
0 ETH0.0022419335.2777248
Claim170717782023-04-18 6:24:11635 days ago1681799051IN
0xd524E29E...94387A7e2
0 ETH0.0039883834.92240675
Claim170680122023-04-17 17:36:35635 days ago1681752995IN
0xd524E29E...94387A7e2
0 ETH0.0031775632.72977262
Claim170649572023-04-17 7:14:11635 days ago1681715651IN
0xd524E29E...94387A7e2
0 ETH0.0040574528.23698094
Claim170583742023-04-16 8:47:35636 days ago1681634855IN
0xd524E29E...94387A7e2
0 ETH0.0034725423.90624707
Claim170578212023-04-16 6:55:11636 days ago1681628111IN
0xd524E29E...94387A7e2
0 ETH0.0017331321.93207361
Claim170549192023-04-15 21:02:23637 days ago1681592543IN
0xd524E29E...94387A7e2
0 ETH0.0026952923.60508131
Claim170450852023-04-14 11:20:35638 days ago1681471235IN
0xd524E29E...94387A7e2
0 ETH0.0029907231.32405381
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:
EulDistributor

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 1000000 runs

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

pragma solidity ^0.8.0;

import "../vendor/MerkleProof.sol";
import "../Utils.sol";

interface IEulStakes {
    function stakeGift(address beneficiary, address underlying, uint amount) external;
}

contract EulDistributor {
    address public immutable eul;
    address public immutable eulStakes;
    string public constant name = "EUL Distributor";

    address public owner;
    bytes32 public currRoot;
    bytes32 public prevRoot;
    mapping(address => mapping(address => uint)) public claimed; // account -> token -> amount

    event OwnerChanged(address indexed newOwner);

    constructor(address eul_, address eulStakes_) {
        eul = eul_;
        eulStakes = eulStakes_;
        owner = msg.sender;
        Utils.safeApprove(eul_, eulStakes_, type(uint).max);
    }

    // Owner functions

    modifier onlyOwner {
        require(msg.sender == owner, "unauthorized");
        _;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        owner = newOwner;
        emit OwnerChanged(newOwner);
    }

    function updateRoot(bytes32 newRoot) external onlyOwner {
        prevRoot = currRoot;
        currRoot = newRoot;
    }

    // Claiming

    /// @notice Claim distributed tokens
    /// @param account Address that should receive tokens
    /// @param token Address of token being claimed (ie EUL)
    /// @param proof Merkle proof that validates this claim
    /// @param stake If non-zero, then the address of a token to auto-stake to, instead of claiming
    function claim(address account, address token, uint claimable, bytes32[] calldata proof, address stake) external {
        bytes32 candidateRoot = MerkleProof.processProof(proof, keccak256(abi.encodePacked(account, token, claimable))); // 72 byte leaf
        require(candidateRoot == currRoot || candidateRoot == prevRoot, "proof invalid/expired");

        uint alreadyClaimed = claimed[account][token];
        require(claimable > alreadyClaimed, "already claimed");

        uint amount;
        unchecked {
            amount = claimable - alreadyClaimed;
        }

        claimed[account][token] = claimable;

        if (stake == address(0)) {
            Utils.safeTransfer(token, account, amount);
        } else {
            require(msg.sender == account, "can only auto-stake for yourself");
            require(token == eul, "can only auto-stake EUL");
            IEulStakes(eulStakes).stakeGift(account, stake, amount);
        }
    }
}

File 2 of 4 : MerkleProof.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/MerkleProof.sol)

pragma solidity ^0.8.0;

/**
 * @dev These functions deal with verification of Merkle Trees proofs.
 *
 * The proofs can be generated using the JavaScript library
 * https://github.com/miguelmota/merkletreejs[merkletreejs].
 * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
 *
 * See `test/utils/cryptography/MerkleProof.test.js` for some examples.
 */
library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    /**
     * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up
     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt
     * hash matches the root of the tree. When processing the proof, the pairs
     * of leafs & pre-images are assumed to be sorted.
     *
     * _Available since v4.4._
     */
    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = _efficientHash(computedHash, proofElement);
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = _efficientHash(proofElement, computedHash);
            }
        }
        return computedHash;
    }

    function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {
        assembly {
            mstore(0x00, a)
            mstore(0x20, b)
            value := keccak256(0x00, 0x40)
        }
    }
}

File 3 of 4 : 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 4 of 4 : 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"},{"internalType":"address","name":"eulStakes_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"claimable","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"address","name":"stake","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eul","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eulStakes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newRoot","type":"bytes32"}],"name":"updateRoot","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b5060405162000f7c38038062000f7c83398101604081905262000034916200019e565b6001600160a01b03828116608052811660a05260008054336001600160a01b03199091161790556200007682826000196200007e602090811b6200079e17901c565b505062000287565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620000dc919062000209565b6000604051808303816000865af19150503d80600081146200011b576040519150601f19603f3d011682016040523d82523d6000602084013e62000120565b606091505b50915091508180156200014e5750805115806200014e5750808060200190518101906200014e919062000227565b8190620001795760405162461bcd60e51b815260040162000170919062000252565b60405180910390fd5b505050505050565b80516001600160a01b03811681146200019957600080fd5b919050565b60008060408385031215620001b257600080fd5b620001bd8362000181565b9150620001cd6020840162000181565b90509250929050565b60005b83811015620001f3578181015183820152602001620001d9565b8381111562000203576000848401525b50505050565b600082516200021d818460208701620001d6565b9190910192915050565b6000602082840312156200023a57600080fd5b815180151581146200024b57600080fd5b9392505050565b602081526000825180602084015262000273816040850160208701620001d6565b601f01601f19169190910160400192915050565b60805160a051610cc1620002bb6000396000818161016801526106480152600081816101e701526105410152610cc16000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80639011021811610076578063e3f5b1951161005b578063e3f5b19514610209578063f2fde38b14610212578063fdb4beda1461022557600080fd5b806390110218146101cf578063d0bd9067146101e257600080fd5b806321ff9970116100a757806321ff99701461014e57806367342d59146101635780638da5cb5b146101af57600080fd5b806306fdde03146100c35780630c9cbf0e14610115575b600080fd5b6100ff6040518060400160405280600f81526020017f45554c204469737472696275746f72000000000000000000000000000000000081525081565b60405161010c9190610a26565b60405180910390f35b610140610123366004610aa0565b600360209081526000928352604080842090915290825290205481565b60405190815260200161010c565b61016161015c366004610ad3565b61022e565b005b61018a7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b60005461018a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101616101dd366004610aec565b6102be565b61018a7f000000000000000000000000000000000000000000000000000000000000000081565b61014060015481565b610161610220366004610b9c565b6106b0565b61014060025481565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6001805460025555565b600061035b848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608d811b821660208401528c901b166034820152604881018a905260680191506103409050565b60405160208183030381529060405280519060200120610929565b905060015481148061036e575060025481145b6103d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f70726f6f6620696e76616c69642f65787069726564000000000000000000000060448201526064016102ab565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600360209081526040808320938a1683529290522054808611610470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f616c726561647920636c61696d6564000000000000000000000000000000000060448201526064016102ab565b73ffffffffffffffffffffffffffffffffffffffff80891660009081526003602090815260408083208b8516845290915290208790558187039084166104c0576104bb888a8361099d565b6106a5565b3373ffffffffffffffffffffffffffffffffffffffff8a161461053f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f63616e206f6e6c79206175746f2d7374616b6520666f7220796f757273656c6660448201526064016102ab565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e206f6e6c79206175746f2d7374616b652045554c00000000000000000060448201526064016102ab565b6040517f47a3644500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660048301528581166024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906347a3644590606401600060405180830381600087803b15801561068c57600080fd5b505af11580156106a0573d6000803e3d6000fd5b505050505b505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064016102ab565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3691a250565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905260009182918616907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161087c9190610bbe565b6000604051808303816000865af19150503d80600081146108b9576040519150601f19603f3d011682016040523d82523d6000602084013e6108be565b606091505b50915091508180156108e85750805115806108e85750808060200190518101906108e89190610bda565b8190610921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab9190610a26565b505050505050565b600081815b845181101561099557600085828151811061094b5761094b610bfc565b602002602001015190508083116109715760008381526020829052604090209250610982565b600081815260208490526040902092505b508061098d81610c2b565b91505061092e565b509392505050565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905260009182918616907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016107f3565b60005b83811015610a115781810151838201526020016109f9565b83811115610a20576000848401525b50505050565b6020815260008251806020840152610a458160408501602087016109f6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a9b57600080fd5b919050565b60008060408385031215610ab357600080fd5b610abc83610a77565b9150610aca60208401610a77565b90509250929050565b600060208284031215610ae557600080fd5b5035919050565b60008060008060008060a08789031215610b0557600080fd5b610b0e87610a77565b9550610b1c60208801610a77565b945060408701359350606087013567ffffffffffffffff80821115610b4057600080fd5b818901915089601f830112610b5457600080fd5b813581811115610b6357600080fd5b8a60208260051b8501011115610b7857600080fd5b602083019550809450505050610b9060808801610a77565b90509295509295509295565b600060208284031215610bae57600080fd5b610bb782610a77565b9392505050565b60008251610bd08184602087016109f6565b9190910192915050565b600060208284031215610bec57600080fd5b81518015158114610bb757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610c84577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220b492a3c5904efd0b668fa6b35a5fd63c7a96a69147fe90d54444ab02a427976364736f6c634300080a0033000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b000000000000000000000000c697bb6625d9f7adcf0fbf0cbd4dcf50d8716cd3

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80639011021811610076578063e3f5b1951161005b578063e3f5b19514610209578063f2fde38b14610212578063fdb4beda1461022557600080fd5b806390110218146101cf578063d0bd9067146101e257600080fd5b806321ff9970116100a757806321ff99701461014e57806367342d59146101635780638da5cb5b146101af57600080fd5b806306fdde03146100c35780630c9cbf0e14610115575b600080fd5b6100ff6040518060400160405280600f81526020017f45554c204469737472696275746f72000000000000000000000000000000000081525081565b60405161010c9190610a26565b60405180910390f35b610140610123366004610aa0565b600360209081526000928352604080842090915290825290205481565b60405190815260200161010c565b61016161015c366004610ad3565b61022e565b005b61018a7f000000000000000000000000c697bb6625d9f7adcf0fbf0cbd4dcf50d8716cd381565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b60005461018a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101616101dd366004610aec565b6102be565b61018a7f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b81565b61014060015481565b610161610220366004610b9c565b6106b0565b61014060025481565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6001805460025555565b600061035b848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608d811b821660208401528c901b166034820152604881018a905260680191506103409050565b60405160208183030381529060405280519060200120610929565b905060015481148061036e575060025481145b6103d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f70726f6f6620696e76616c69642f65787069726564000000000000000000000060448201526064016102ab565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600360209081526040808320938a1683529290522054808611610470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f616c726561647920636c61696d6564000000000000000000000000000000000060448201526064016102ab565b73ffffffffffffffffffffffffffffffffffffffff80891660009081526003602090815260408083208b8516845290915290208790558187039084166104c0576104bb888a8361099d565b6106a5565b3373ffffffffffffffffffffffffffffffffffffffff8a161461053f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f63616e206f6e6c79206175746f2d7374616b6520666f7220796f757273656c6660448201526064016102ab565b7f000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e206f6e6c79206175746f2d7374616b652045554c00000000000000000060448201526064016102ab565b6040517f47a3644500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660048301528581166024830152604482018390527f000000000000000000000000c697bb6625d9f7adcf0fbf0cbd4dcf50d8716cd316906347a3644590606401600060405180830381600087803b15801561068c57600080fd5b505af11580156106a0573d6000803e3d6000fd5b505050505b505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064016102ab565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117825560405190917fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3691a250565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905260009182918616907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161087c9190610bbe565b6000604051808303816000865af19150503d80600081146108b9576040519150601f19603f3d011682016040523d82523d6000602084013e6108be565b606091505b50915091508180156108e85750805115806108e85750808060200190518101906108e89190610bda565b8190610921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab9190610a26565b505050505050565b600081815b845181101561099557600085828151811061094b5761094b610bfc565b602002602001015190508083116109715760008381526020829052604090209250610982565b600081815260208490526040902092505b508061098d81610c2b565b91505061092e565b509392505050565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905260009182918616907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016107f3565b60005b83811015610a115781810151838201526020016109f9565b83811115610a20576000848401525b50505050565b6020815260008251806020840152610a458160408501602087016109f6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a9b57600080fd5b919050565b60008060408385031215610ab357600080fd5b610abc83610a77565b9150610aca60208401610a77565b90509250929050565b600060208284031215610ae557600080fd5b5035919050565b60008060008060008060a08789031215610b0557600080fd5b610b0e87610a77565b9550610b1c60208801610a77565b945060408701359350606087013567ffffffffffffffff80821115610b4057600080fd5b818901915089601f830112610b5457600080fd5b813581811115610b6357600080fd5b8a60208260051b8501011115610b7857600080fd5b602083019550809450505050610b9060808801610a77565b90509295509295509295565b600060208284031215610bae57600080fd5b610bb782610a77565b9392505050565b60008251610bd08184602087016109f6565b9190910192915050565b600060208284031215610bec57600080fd5b81518015158114610bb757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610c84577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220b492a3c5904efd0b668fa6b35a5fd63c7a96a69147fe90d54444ab02a427976364736f6c634300080a0033

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

000000000000000000000000d9fcd98c322942075a5c3860693e9f4f03aae07b000000000000000000000000c697bb6625d9f7adcf0fbf0cbd4dcf50d8716cd3

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

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


Deployed Bytecode Sourcemap

244:2267:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;348:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;486:59;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1336:25:4;;;1324:2;1309:18;486:59:2;1190:177:4;1094:120:2;;;;;;:::i;:::-;;:::i;:::-;;308:34;;;;;;;;1733:42:4;1721:55;;;1703:74;;1691:2;1676:18;308:34:2;1557:226:4;402:20:2;;;;;;;;;1557:952;;;;;;:::i;:::-;;:::i;274:28::-;;;;;428:23;;;;;;954:134;;;;;;:::i;:::-;;:::i;457:23::-;;;;;;1094:120;908:5;;;;894:10;:19;886:44;;;;;;;3275:2:4;886:44:2;;;3257:21:4;3314:2;3294:18;;;3287:30;3353:14;3333:18;;;3326:42;3385:18;;886:44:2;;;;;;;;;1171:8:::1;::::0;;1160::::1;:19:::0;1189:18;1094:120::o;1557:952::-;1680:21;1704:87;1729:5;;1704:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1746:43:2;;3609:66:4;3704:2;3700:15;;;3696:24;;1746:43:2;;;3684:37:4;3755:15;;;3751:24;3737:12;;;3730:46;3792:12;;;3785:28;;;3829:12;;;-1:-1:-1;1746:43:2;;-1:-1:-1;3414:433:4;1746:43:2;;;;;;;;;;;;;1736:54;;;;;;1704:24;:87::i;:::-;1680:111;;1842:8;;1825:13;:25;:54;;;;1871:8;;1854:13;:25;1825:54;1817:88;;;;;;;4054:2:4;1817:88:2;;;4036:21:4;4093:2;4073:18;;;4066:30;4132:23;4112:18;;;4105:51;4173:18;;1817:88:2;3852:345:4;1817:88:2;1938:16;;;;1916:19;1938:16;;;:7;:16;;;;;;;;:23;;;;;;;;;;1979:26;;;1971:54;;;;;;;4404:2:4;1971:54:2;;;4386:21:4;4443:2;4423:18;;;4416:30;4482:17;4462:18;;;4455:45;4517:18;;1971:54:2;4202:339:4;1971:54:2;2137:16;;;;2036:11;2137:16;;;:7;:16;;;;;;;;:23;;;;;;;;;;:35;;;2090:26;;;;2187:19;;2183:320;;2222:42;2241:5;2248:7;2257:6;2222:18;:42::i;:::-;2183:320;;;2303:10;:21;;;;2295:66;;;;;;;4748:2:4;2295:66:2;;;4730:21:4;;;4767:18;;;4760:30;4826:34;4806:18;;;4799:62;4878:18;;2295:66:2;4546:356:4;2295:66:2;2392:3;2383:12;;:5;:12;;;2375:48;;;;;;;5109:2:4;2375:48:2;;;5091:21:4;5148:2;5128:18;;;5121:30;5187:25;5167:18;;;5160:53;5230:18;;2375:48:2;4907:347:4;2375:48:2;2437:55;;;;;:31;5540:15:4;;;2437:55:2;;;5522:34:4;5592:15;;;5572:18;;;5565:43;5624:18;;;5617:34;;;2448:9:2;2437:31;;;;5434:18:4;;2437:55:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2183:320;1670:839;;;1557:952;;;;;;:::o;954:134::-;908:5;;;;894:10;:19;886:44;;;;;;;3275:2:4;886:44:2;;;3257:21:4;3314:2;3294:18;;;3287:30;3353:14;3333:18;;;3326:42;3385:18;;886:44:2;3073:336:4;886:44:2;1028:5:::1;:16:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;1059:22:::1;::::0;1028:16;;1059:22:::1;::::0;::::1;954:134:::0;:::o;727:282:1:-;853:58;;842:10;5854:55:4;;;853:58:1;;;5836:74:4;5926:18;;;5919:34;;;807:12:1;;;;842:10;;;876:23;;5809:18:4;;853:58:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:70;;;;853:58;842:70;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;806:106;;;;930:7;:57;;;;-1:-1:-1;942:11:1;;:16;;:44;;;973:4;962:24;;;;;;;;;;;;:::i;:::-;996:4;922:80;;;;;;;;;;;;;;:::i;:::-;;796:213;;727:282;;;:::o;1398:662:3:-;1481:7;1523:4;1481:7;1537:488;1561:5;:12;1557:1;:16;1537:488;;;1594:20;1617:5;1623:1;1617:8;;;;;;;;:::i;:::-;;;;;;;1594:31;;1659:12;1643;:28;1639:376;;2134:13;2182:15;;;2217:4;2210:15;;;2263:4;2247:21;;1769:57;;1639:376;;;2134:13;2182:15;;;2217:4;2210:15;;;2263:4;2247:21;;1943:57;;1639:376;-1:-1:-1;1575:3:3;;;;:::i;:::-;;;;1537:488;;;-1:-1:-1;2041:12:3;1398:662;-1:-1:-1;;;1398:662:3:o;437:284:1:-;564:59;;553:10;5854:55:4;;;564:59:1;;;5836:74:4;5926:18;;;5919:34;;;518:12:1;;;;553:10;;;587:24;;5809:18:4;;564:59:1;5662:297:4;14:258;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;;;262:1;253:6;248:3;244:16;237:27;218:48;;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:4:o;724:196::-;792:20;;852:42;841:54;;831:65;;821:93;;910:1;907;900:12;821:93;724:196;;;:::o;925:260::-;993:6;1001;1054:2;1042:9;1033:7;1029:23;1025:32;1022:52;;;1070:1;1067;1060:12;1022:52;1093:29;1112:9;1093:29;:::i;:::-;1083:39;;1141:38;1175:2;1164:9;1160:18;1141:38;:::i;:::-;1131:48;;925:260;;;;;:::o;1372:180::-;1431:6;1484:2;1472:9;1463:7;1459:23;1455:32;1452:52;;;1500:1;1497;1490:12;1452:52;-1:-1:-1;1523:23:4;;1372:180;-1:-1:-1;1372:180:4:o;1788:907::-;1910:6;1918;1926;1934;1942;1950;2003:3;1991:9;1982:7;1978:23;1974:33;1971:53;;;2020:1;2017;2010:12;1971:53;2043:29;2062:9;2043:29;:::i;:::-;2033:39;;2091:38;2125:2;2114:9;2110:18;2091:38;:::i;:::-;2081:48;;2176:2;2165:9;2161:18;2148:32;2138:42;;2231:2;2220:9;2216:18;2203:32;2254:18;2295:2;2287:6;2284:14;2281:34;;;2311:1;2308;2301:12;2281:34;2349:6;2338:9;2334:22;2324:32;;2394:7;2387:4;2383:2;2379:13;2375:27;2365:55;;2416:1;2413;2406:12;2365:55;2456:2;2443:16;2482:2;2474:6;2471:14;2468:34;;;2498:1;2495;2488:12;2468:34;2551:7;2546:2;2536:6;2533:1;2529:14;2525:2;2521:23;2517:32;2514:45;2511:65;;;2572:1;2569;2562:12;2511:65;2603:2;2599;2595:11;2585:21;;2625:6;2615:16;;;;;2650:39;2684:3;2673:9;2669:19;2650:39;:::i;:::-;2640:49;;1788:907;;;;;;;;:::o;2882:186::-;2941:6;2994:2;2982:9;2973:7;2969:23;2965:32;2962:52;;;3010:1;3007;3000:12;2962:52;3033:29;3052:9;3033:29;:::i;:::-;3023:39;2882:186;-1:-1:-1;;;2882:186:4:o;5964:274::-;6093:3;6131:6;6125:13;6147:53;6193:6;6188:3;6181:4;6173:6;6169:17;6147:53;:::i;:::-;6216:16;;;;;5964:274;-1:-1:-1;;5964:274:4:o;6243:277::-;6310:6;6363:2;6351:9;6342:7;6338:23;6334:32;6331:52;;;6379:1;6376;6369:12;6331:52;6411:9;6405:16;6464:5;6457:13;6450:21;6443:5;6440:32;6430:60;;6486:1;6483;6476:12;6525:184;6577:77;6574:1;6567:88;6674:4;6671:1;6664:15;6698:4;6695:1;6688:15;6714:349;6753:3;6784:66;6777:5;6774:77;6771:257;;;6884:77;6881:1;6874:88;6985:4;6982:1;6975:15;7013:4;7010:1;7003:15;6771:257;-1:-1:-1;7055:1:4;7044:13;;6714:349::o

Swarm Source

ipfs://b492a3c5904efd0b668fa6b35a5fd63c7a96a69147fe90d54444ab02a4279763

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.