ETH Price: $2,348.30 (-2.73%)

Contract

0xa38869c5021c75De6b4Aa143Ece7293EC0482488

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction and 2 Token Transfers found.

Latest 1 internal transaction

Parent Transaction Hash Block From To
10736912025-02-06 11:01:3621 days ago1738839696  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RewardsDistribution

Compiler Version
v0.8.24+commit.e11b9ed9

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
paris EvmVersion
File 1 of 5 : RewardsDistribution.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./Owned.sol";
import "./interfaces/IRewardsDistribution.sol";
import "./interfaces/IStakingRewards.sol";

// https://docs.synthetix.io/contracts/source/contracts/rewardsdistribution
contract RewardsDistribution is Owned, IRewardsDistribution {

    /**
     * @notice Authorised address able to call distributeRewards
     */
    address public authority;

    /**
     * @notice Address of the Token ERC20
     */
    address public rewardProxyToken;

    /**
     * @notice An array of addresses and amounts to send
     */
    DistributionData[] public distributions;

    /**
     * @dev _authority maybe the underlying Token contract.
     * Remember to set the authority on a Token upgrade
     */
    constructor(
        address _owner,
        address _authority,
        address _rewardProxyToken
    ) Owned(_owner) {
        authority = _authority;
        rewardProxyToken = _rewardProxyToken;
    }

    // ========== EXTERNAL SETTERS ==========

    function setRewardProxyToken(address _rewardProxyToken) external onlyOwner {
        rewardProxyToken = _rewardProxyToken;
    }

    /**
     * @notice Set the address of the contract authorised to call distributeRewards()
     * @param _authority Address of the authorised calling contract.
     */
    function setAuthority(address _authority) external onlyOwner {
        authority = _authority;
    }

    // ========== EXTERNAL FUNCTIONS ==========

    /**
     * @notice Adds a Rewards DistributionData struct to the distributions
     * array. Any entries here will be iterated and rewards distributed to
     * each address when tokens are sent to this contract and distributeRewards()
     * is called by the autority.
     * @param destination An address to send rewards tokens too
     * @param amount The amount of rewards tokens to send
     */
    function addRewardDistribution(address destination, uint amount) external onlyOwner returns (bool) {
        require(destination != address(0), "Cant add a zero address");
        require(amount != 0, "Cant add a zero amount");

        DistributionData memory rewardsDistribution = DistributionData(destination, amount);
        distributions.push(rewardsDistribution);

        emit RewardDistributionAdded(distributions.length - 1, destination, amount);
        return true;
    }

    /**
     * @notice Deletes a RewardDistribution from the distributions
     * so it will no longer be included in the call to distributeRewards()
     * @param index The index of the DistributionData to delete
     */
    function removeRewardDistribution(uint index) external onlyOwner {
        require(index <= distributions.length - 1, "index out of bounds");

        // shift distributions indexes across
        for (uint i = index; i < distributions.length - 1; i++) {
            distributions[i] = distributions[i + 1];
        }
        distributions.pop();

        // Since this function must shift all later entries down to fill the
        // gap from the one it removed, it could in principle consume an
        // unbounded amount of gas. However, the number of entries will
        // presumably always be very low.
    }

    /**
     * @notice Edits a RewardDistribution in the distributions array.
     * @param index The index of the DistributionData to edit
     * @param destination The destination address. Send the same address to keep or different address to change it.
     * @param amount The amount of tokens to edit. Send the same number to keep or change the amount of tokens to send.
     */
    function editRewardDistribution(
        uint index,
        address destination,
        uint amount
    ) external onlyOwner returns (bool) {
        require(index <= distributions.length - 1, "index out of bounds");

        distributions[index].destination = destination;
        distributions[index].amount = amount;

        return true;
    }

    function distributeRewards(uint amount) external returns (bool) {
        require(amount > 0, "Nothing to distribute");
        require(msg.sender == authority, "Caller is not authorised");
        require(rewardProxyToken != address(0), "TokenProxy is not set");
        require(
            IERC20(rewardProxyToken).balanceOf(address(this)) >= amount,
            "RewardsDistribution contract does not have enough tokens to distribute"
        );

        uint remainder = amount;

        // Iterate the array of distributions sending the configured amounts
        for (uint i = 0; i < distributions.length; i++) {
            if (distributions[i].destination != address(0) || distributions[i].amount != 0) {
                remainder = remainder - distributions[i].amount;

                // Transfer the Proxy Token
                IERC20(rewardProxyToken).transfer(distributions[i].destination, distributions[i].amount);

                IStakingRewards(distributions[i].destination).notifyRewardAmount(distributions[i].amount);
            }
        }

        uint256 rewardedAmount = amount - remainder;

        emit RewardsDistributed(rewardedAmount);
        return true;
    }

    /* ========== VIEWS ========== */

    /**
     * @notice Retrieve the length of the distributions array
     */
    function distributionsLength() external view returns (uint) {
        return distributions.length;
    }

    /* ========== Events ========== */

    event RewardDistributionAdded(uint index, address destination, uint amount);
    event RewardsDistributed(uint amount);
}

File 2 of 5 : Owned.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// https://docs.synthetix.io/contracts/Owned
// NO NEED TO AUDIT
contract Owned {
    address public owner;
    address public nominatedOwner;

    constructor (address _owner) {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external {
        require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner {
        require(msg.sender == owner, "Only the contract owner may perform this action");
        _;
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}

File 3 of 5 : IRewardsDistribution.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// https://docs.synthetix.io/contracts/source/interfaces/irewardsdistribution
interface IRewardsDistribution {
    // Structs
    struct DistributionData {
        address destination;
        uint amount;
    }

    // Views
    function authority() external view returns (address);

    function distributions(uint index) external view returns (address destination, uint amount); // DistributionData

    function distributionsLength() external view returns (uint);

    // Mutative Functions
    function distributeRewards(uint amount) external returns (bool);
}

File 4 of 5 : IStakingRewards.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// https://docs.synthetix.io/contracts/source/interfaces/istakingrewards
interface IStakingRewards {
    // Views

    function balanceOf(address account) external view returns (uint256);

    function earned(address account) external view returns (uint256);

    function getRewardForDuration() external view returns (uint256);

    function lastTimeRewardApplicable() external view returns (uint256);

    function rewardPerToken() external view returns (uint256);

    function totalSupply() external view returns (uint256);

    // Mutative

    function getReward() external;

    function stake(uint256 amount) external;

    function withdraw(uint256 amount) external;

    function notifyRewardAmount(uint256 reward) external;

    function stakeFor(uint256 amount, address receiver) external;
}

File 5 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": true,
    "mode": "3"
  },
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "detectMissingLibraries": false,
  "forceEVMLA": false,
  "enableEraVMExtensions": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_authority","type":"address"},{"internalType":"address","name":"_rewardProxyToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"destination","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardDistributionAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsDistributed","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addRewardDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"distributeRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"distributions","outputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributionsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"editRewardDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeRewardDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardProxyToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_authority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardProxyToken","type":"address"}],"name":"setRewardProxyToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

9c4d535b0000000000000000000000000000000000000000000000000000000000000000010001437b949b885eaa2e30708b5310638c8eb0a34222e591c56ed30d9b8e8500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000948058d07994ad9947a3a258984f32eabade7886000000000000000000000000f481c52e23d8c7b09a8e7e8378314ecd3076bf1100000000000000000000000098aaa8bffe847a6d8c28d26985aedfd55c074001

Deployed Bytecode

0x0002000000000002000600000000000200010000000103550000006003100270000000fc0330019700000001002001900000002a0000c13d0000008002000039000000400020043f000000040030008c000003800000413d000000000201043b000000e002200270000001070020009c000000660000213d000001110020009c000000730000a13d000001120020009c000000cf0000213d000001150020009c000001010000613d000001160020009c000003800000c13d000000240030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000401100370000000000301043b000000000003004b000001cd0000c13d0000010501000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000013a01000041000000c40010043f0000011f01000041000003ec000104300000000002000416000000000002004b000003800000c13d0000001f02300039000000fd022001970000008002200039000000400020043f0000001f0430018f000000fe0530019800000080025000390000003b0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000370000c13d000000000004004b000000480000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000003800000413d000000800200043d000000ff0020009c000003800000213d000000a00300043d000000ff0030009c000003800000213d000000c00400043d000000ff0040009c000003800000213d000000400100043d000000000002004b000001a40000c13d00000044021000390000010403000041000000000032043500000024021000390000001903000039000000000032043500000105020000410000000000210435000000040210003900000020030000390000000000320435000000fc0010009c000000fc01008041000000400110021000000106011001c7000003ec00010430000001080020009c000000920000a13d000001090020009c000000f80000213d0000010c0020009c000001070000613d0000010d0020009c000003800000c13d0000000001000416000000000001004b000003800000c13d0000000201000039000001050000013d000001170020009c0000010f0000613d000001180020009c000001170000613d000001190020009c000003800000c13d000000240030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000401100370000000000101043b0000000402000039000000000202041a000000000021004b000003800000813d03ea03a60000040f000000000201041a0000000101100039000000000101041a000000400300043d00000020043000390000000000140435000000ff012001970000000000130435000000fc0030009c000000fc0300804100000040013002100000013b011001c7000003eb0001042e0000010e0020009c000001370000613d0000010f0020009c0000014a0000613d000001100020009c000003800000c13d000000240030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000401100370000000000201043b000000000100041a000000ff011001970000000003000411000000000013004b000001980000c13d0000000401000039000000000301041a000000000003004b000001920000613d000000010430008a000000000042004b000000b50000a13d0000010501000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000011e01000041000000c40010043f0000011f01000041000003ec00010430000000010430008a000000000042004b0000027c0000813d0000000104200039000000000043004b000003820000a13d000000000010043f00000001034002100000011c0530009a000000000505041a000000ff0550019700000001022002100000011c0620009a000000000706041a0000010007700197000000000557019f000000000056041b0000011d0220009a0000011d0330009a000000000303041a000000000032041b000000000301041a000000000003004b0000000002040019000000b50000c13d000001920000013d000001130020009c000001620000613d000001140020009c000003800000c13d0000000001000416000000000001004b000003800000c13d0000000101000039000000000201041a000000ff012001970000000003000411000000000013004b000001e10000c13d000600000002001d000000000100041a000500000001001d000000ff01100197000000800010043f000000a00030043f0000000001000414000000fc0010009c000000fc01008041000000c00110021000000123011001c70000800d020000390000000103000039000001020400004103ea03e00000040f0000000100200190000003800000613d000000050100002900000100011001970000000002000411000000000121019f000000000010041b000000060100002900000100011001970000000102000039000000000012041b0000000001000019000003eb0001042e0000010a0020009c0000017e0000613d0000010b0020009c000003800000c13d0000000001000416000000000001004b000003800000c13d0000000301000039000001050000013d0000000001000416000000000001004b000003800000c13d0000000101000039000000000101041a0000010b0000013d0000000001000416000000000001004b000003800000c13d000000000100041a000000ff01100197000000800010043f0000011a01000041000003eb0001042e0000000001000416000000000001004b000003800000c13d0000000401000039000000000101041a000000800010043f0000011a01000041000003eb0001042e000000240030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000401100370000000000101043b000000ff0010009c000003800000213d000000000200041a000000ff022001970000000003000411000000000023004b000001980000c13d0000000103000039000000000203041a0000010002200197000000000212019f000000000023041b000000800010043f0000000001000414000000fc0010009c000000fc01008041000000c0011002100000013e011001c70000800d020000390000013f0400004103ea03e00000040f0000000100200190000003800000613d0000000001000019000003eb0001042e000000240030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000401100370000000000101043b000000ff0010009c000003800000213d000600000001001d000000000100041a000000ff011001970000000002000411000000000012004b0000000001000039000000010100603903ea03b40000040f00000002010000390000015c0000013d000000240030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000401100370000000000101043b000000ff0010009c000003800000213d000600000001001d000000000100041a000000ff011001970000000002000411000000000012004b0000000001000039000000010100603903ea03b40000040f0000000301000039000000000201041a000001000220019700000006022001af000000000021041b0000000001000019000003eb0001042e000000440030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000402100370000000000202043b000000ff0020009c000003800000213d0000002401100370000000000101043b000000000300041a000000ff033001970000000004000411000000000034004b000001980000c13d000000000002004b000001f70000c13d0000010501000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000012801000041000000c40010043f0000011f01000041000003ec00010430000000640030008c000003800000413d0000000002000416000000000002004b000003800000c13d0000000402100370000000000302043b0000002401100370000000000401043b000000ff0040009c000003800000213d000000000100041a000000ff011001970000000002000411000000000012004b000001980000c13d0000000401000039000000000101041a000000000001004b000002030000c13d0000012e01000041000000000010043f0000001101000039000000040010043f0000012f01000041000003ec000104300000010501000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000013c01000041000000c40010043f0000013d01000041000000e40010043f0000012201000041000003ec00010430000600000003001d000000000300041a0000010003300197000000000323019f000000000030041b000000200310003900000000002304350000000000010435000000fc0010009c000000fc0100804100000040011002100000000002000414000000fc0020009c000000fc02008041000000c002200210000000000112019f00000101011001c70000800d020000390000000103000039000500000004001d000001020400004103ea03e00000040f000000050400002900000006030000290000000100200190000003800000613d0000000201000039000000000201041a0000010002200197000000000232019f000000000021041b0000000301000039000000000201041a0000010002200197000000000242019f000000000021041b0000002001000039000001000010044300000120000004430000010301000041000003eb0001042e0000000201000039000000000101041a000000ff011001970000000002000411000000000012004b000001ed0000c13d0000000301000039000000000101041a000000ff021001980000021f0000c13d0000010501000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000013901000041000000c40010043f0000011f01000041000003ec000104300000010501000041000000800010043f0000002001000039000000840010043f0000003501000039000000a40010043f0000012001000041000000c40010043f0000012101000041000000e40010043f0000012201000041000003ec000104300000010501000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000012901000041000000c40010043f0000011f01000041000003ec00010430000000000001004b0000022c0000c13d0000010501000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000012701000041000000c40010043f0000011f01000041000003ec00010430000000010110008a000000000013004b0000000001000039000000010100a039000600000003001d000500000004001d03ea03cb0000040f000000060100002903ea03a60000040f000000000201041a000001000220019700000005022001af000000000021041b000000060100002903ea03a60000040f00000044020000390000000102200367000000000202043b0000000101100039000000000021041b0000000101000039000000400200043d0000000000120435000000fc0020009c000000fc0200804100000040012002100000011b011001c7000003eb0001042e000100000003001d0000012a01000041000000800010043f0000000001000410000000840010043f0000000001000414000000040020008c0000023a0000c13d0000000003000031000000200030008c000000200400003900000000040340190000025e0000013d000000c003000039000000400030043f000000800020043f000000a00010043f0000000403000039000000000403041a000001240040009c000002850000a13d0000012e01000041000000000010043f0000004101000039000000040010043f0000012f01000041000003ec00010430000000fc0010009c000000fc01008041000000c0011002100000012b011001c703ea03e50000040f000000800a0000390000006003100270000000fc03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000024e0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b0000024a0000c13d000000000006004b0000025b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000002a00000613d0000001f01400039000000600110018f000000800a1001bf0000004000a0043f000000200030008c000003800000413d000000800200043d0000000103000029000000000032004b000002be0000813d000001050200004100000000002a043500000084021001bf00000020030000390000000000320435000000e40210003900000135030000410000000000320435000000c40210003900000136030000410000000000320435000000a4021000390000004603000039000000000032043500000104011001bf000001370200004100000000002104350000004001a0021000000138011001c7000003ec00010430000000000010043f00000001024002100000011c0320009a000000000003041b0000011d0220009a000000000002041b000000000041041b0000000001000019000003eb0001042e0000000105400039000000000053041b000000000030043f00000001044002100000011c0540009a000000000605041a0000010006600197000000000626019f000000000065041b0000011d0440009a000000000014041b000000000303041a000000000003004b000001920000613d000000010330008a000000c00030043f000000e00020043f000001000010043f0000000001000414000000fc0010009c000000fc01008041000000c00110021000000125011001c70000800d0200003900000001030000390000012604000041000002d20000013d0000001f0530018f000000fe06300198000000400200043d0000000004620019000002ab0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002a70000c13d000000000005004b000002b80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000fc0020009c000000fc020080410000004002200210000000000112019f000003ec000104300000000405000039000000000105041a000000000001004b000002dd0000c13d000500000003001d0000000502000029000000010120006900000000001a0435000000fc00a0009c000000fc0a0080410000004001a002100000000002000414000000fc0020009c000000fc02008041000000c002200210000000000112019f00000133011001c70000800d020000390000000103000039000001340400004103ea03e00000040f0000000100200190000003800000613d000000400100043d00000001020000390000000000210435000000fc0010009c000000fc0100804100000040011002100000011b011001c7000003eb0001042e0000000006000019000500000003001d000002e30000013d0000000106600039000000000016004b000003880000813d00000001036002100000011d0730009a000000000207041a0000011c0830009a000000000308041a000000ff03300198000002ed0000c13d000000000050043f000000000002004b000002e00000613d0005000500200073000001920000413d0000000301000039000000000401041a000000000050043f0000012c0100004100000000001a04350000000401a0003900000000003104350000002401a0003900000000002104350000000001000414000000ff02400197000000040020008c000600000006001d000003020000c13d0000000003000031000000200030008c00000020040000390000000004034019000003320000013d000200000008001d000300000007001d000000fc00a0009c000000fc0300004100000000030a40190000004003300210000000fc0010009c000000fc01008041000000c001100210000000000131019f0000012d011001c700040000000a001d03ea03e00000040f000000040a0000290000006003100270000000fc03300197000000200030008c00000020040000390000000004034019000000200640019000000000056a00190000031e0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b0000031a0000c13d0000001f074001900000032b0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000000003001f00000001002001900000038d0000613d00000004050000390000000606000029000000030700002900000002080000290000001f01400039000000600210018f0000000001a20019000000000021004b00000000020000390000000102004039000001240010009c000002340000213d0000000100200190000002340000c13d000000400010043f000000200030008c000003800000413d00000000010a0433000000000001004b0000000002000039000000010200c039000000000021004b000003800000c13d000000000105041a000000000061004b000003820000a13d000000000108041a000000000050043f000000000207041a000300000002001d00000130020000410000000000200443000000ff01100197000400000001001d00000004001004430000000001000414000000fc0010009c000000fc01008041000000c00110021000000131011001c7000080020200003903ea03e50000040f00000001002001900000038c0000613d000000000101043b000000000001004b00000004050000390000000606000029000003800000613d000000400a00043d000001320100004100000000001a04350000000401a000390000000302000029000000000021043500000000010004140000000402000029000000040020008c0000037b0000613d000000fc00a0009c000000fc0300004100000000030a40190000004003300210000000fc0010009c000000fc01008041000000c001100210000000000131019f0000012f011001c700040000000a001d03ea03e00000040f00000006060000290000000405000039000000040a0000290000006003100270000000fc0030019d0000000100200190000003990000613d0000012400a0009c000002340000213d0000004000a0043f000000000105041a000002e00000013d0000000001000019000003ec000104300000012e01000041000000000010043f0000003201000039000000040010043f0000012f01000041000003ec000104300000000502000029000000010020006c000001920000213d000002c30000013d000000000001042f0000001f0530018f000000fe06300198000000400200043d0000000004620019000002ab0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003940000c13d000002ab0000013d000000fc033001970000001f0530018f000000fe06300198000000400200043d0000000004620019000002ab0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003a10000c13d000002ab0000013d0000000402000039000000000302041a000000000013004b000003ae0000a13d000000000020043f00000001011002100000011c0110009a000000000001042d0000012e01000041000000000010043f0000003201000039000000040010043f0000012f01000041000003ec00010430000000000001004b000003b70000613d000000000001042d000000400100043d00000064021000390000013d03000041000000000032043500000044021000390000013c03000041000000000032043500000024021000390000002f03000039000000000032043500000105020000410000000000210435000000040210003900000020030000390000000000320435000000fc0010009c000000fc01008041000000400110021000000140011001c7000003ec00010430000000000001004b000003ce0000613d000000000001042d000000400100043d00000044021000390000011e03000041000000000032043500000024021000390000001303000039000000000032043500000105020000410000000000210435000000040210003900000020030000390000000000320435000000fc0010009c000000fc01008041000000400110021000000106011001c7000003ec00010430000000000001042f000003e3002104210000000102000039000000000001042d0000000002000019000000000001042d000003e8002104230000000102000039000000000001042d0000000002000019000000000001042d000003ea00000432000003eb0001042e000003ec0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000040000000000000000000000000b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c00000002000000000000000000000000000000400000010000000000000000004f776e657220616464726573732063616e6e6f7420626520300000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000007a9e5e4a000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000e54c167000000000000000000000000000000000000000000000000000000000e54c167100000000000000000000000000000000000000000000000000000000eb0a249a000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000bf7e214f000000000000000000000000000000000000000000000000000000007a9e5e4b000000000000000000000000000000000000000000000000000000007e892ab600000000000000000000000000000000000000000000000000000000817a69510000000000000000000000000000000000000000000000000000000053a47bb60000000000000000000000000000000000000000000000000000000060eb3ff10000000000000000000000000000000000000000000000000000000060eb3ff20000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000053a47bb70000000000000000000000000000000000000000000000000000000059974e3800000000000000000000000000000000000000000000000000000000060ca250000000000000000000000000000000000000000000000000000000001627540c000000000000000000000000000000000000000000000000000000004487d3df0000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000002000000000000000000000000075ca53043ea007e5c65182cbb028f60d7179ff4b55739a3949b401801c942e6575ca53043ea007e5c65182cbb028f60d7179ff4b55739a3949b401801c942e64696e646578206f7574206f6620626f756e6473000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970000000000000000000000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000060000000c0000000000000000008fff3cb767a84a8039ea0f84053799c5cdca0e8efb031eeb6b05b9c174aa20843616e74206164642061207a65726f20616d6f756e740000000000000000000043616e74206164642061207a65726f206164647265737300000000000000000043616c6c6572206973206e6f7420617574686f7269736564000000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000003c6b16ab0000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000006d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be44273206e6f74206861766520656e6f75676820746f6b656e7320746f206469737452657761726473446973747269627574696f6e20636f6e747261637420646f65726962757465000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000546f6b656e50726f7879206973206e6f742073657400000000000000000000004e6f7468696e6720746f2064697374726962757465000000000000000000000000000000000000000000000000000000000000400000000000000000000000004f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e00000000000000000000000000000000000200000000000000000000000000000000000020000000800000000000000000906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fba64f2f0840b09ba964acc9c40b18c2398a9bcee6598996919acc89daabb54

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

000000000000000000000000948058d07994ad9947a3a258984f32eabade7886000000000000000000000000f481c52e23d8c7b09a8e7e8378314ecd3076bf1100000000000000000000000098aaa8bffe847a6d8c28d26985aedfd55c074001

-----Decoded View---------------
Arg [0] : _owner (address): 0x948058D07994ad9947A3a258984F32eAbaDE7886
Arg [1] : _authority (address): 0xF481c52E23D8c7b09A8e7E8378314eCD3076bf11
Arg [2] : _rewardProxyToken (address): 0x98aaA8bFFe847a6d8C28D26985aeDfD55c074001

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000948058d07994ad9947a3a258984f32eabade7886
Arg [1] : 000000000000000000000000f481c52e23d8c7b09a8e7e8378314ecd3076bf11
Arg [2] : 00000000000000000000000098aaa8bffe847a6d8c28d26985aedfd55c074001


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