ETH Price: $2,688.23 (-0.32%)

Contract

0x3f6eB35f2192567a2B83857956fBE019e067841a
 

Overview

ETH Balance

0.0549995776 ETH

Eth Value

$147.85 (@ $2,688.23/ETH)
Transaction Hash
Method
Block
From
To
Pay218620502025-02-16 22:50:599 hrs ago1739746259IN
0x3f6eB35f...9e067841a
0.02093118 ETH0.000073951.21999748
Pay218620452025-02-16 22:49:599 hrs ago1739746199IN
0x3f6eB35f...9e067841a
0.02092012 ETH0.000072951.20353545
Pay218618992025-02-16 22:20:2310 hrs ago1739744423IN
0x3f6eB35f...9e067841a
0.00522517 ETH0.000078051.28799841
Pay218618962025-02-16 22:19:4710 hrs ago1739744387IN
0x3f6eB35f...9e067841a
0.00527463 ETH0.000079441.31096249
Pay215521332025-01-04 15:52:4743 days ago1736005967IN
0x3f6eB35f...9e067841a
0.00183171 ETH0.0010239216.89564801
Pay213803482024-12-11 16:06:3567 days ago1733933195IN
0x3f6eB35f...9e067841a
0.00182547 ETH0.0022823837.66131922
Pay213058372024-12-01 6:22:1178 days ago1733034131IN
0x3f6eB35f...9e067841a
0.00074779 ETH0.00054619.01113661
Pay212769502024-11-27 5:18:4782 days ago1732684727IN
0x3f6eB35f...9e067841a
0.00048928 ETH0.00047277.8
Pay212599672024-11-24 20:23:2384 days ago1732479803IN
0x3f6eB35f...9e067841a
0.00075309 ETH0.000506358.35531018
Pay212467542024-11-23 0:08:4786 days ago1732320527IN
0x3f6eB35f...9e067841a
0.00085862 ETH0.0009248415.2606404
Pay212225452024-11-19 15:02:1189 days ago1732028531IN
0x3f6eB35f...9e067841a
0.0024874 ETH0.002755345.46484262
Pay210302562024-10-23 19:03:11116 days ago1729710191IN
0x3f6eB35f...9e067841a
0.00100742 ETH0.0010428217.20751834
Pay210298452024-10-23 17:40:59116 days ago1729705259IN
0x3f6eB35f...9e067841a
0.0019877 ETH0.0012336120.35559514
Pay209872672024-10-17 19:06:47122 days ago1729192007IN
0x3f6eB35f...9e067841a
0.00213905 ETH0.0015749225.98754148
Pay209533242024-10-13 1:13:47127 days ago1728782027IN
0x3f6eB35f...9e067841a
0.00067498 ETH0.000491658.1127535
Pay209407132024-10-11 6:52:59129 days ago1728629579IN
0x3f6eB35f...9e067841a
0.00077641 ETH0.0007149711.79760097
Pay209025642024-10-05 23:15:59134 days ago1728170159IN
0x3f6eB35f...9e067841a
0.00054686 ETH0.000266874.40359725
Pay209025442024-10-05 23:11:59134 days ago1728169919IN
0x3f6eB35f...9e067841a
0.00055561 ETH0.000304455.02370073
Pay209023782024-10-05 22:38:47134 days ago1728167927IN
0x3f6eB35f...9e067841a
0.00052074 ETH0.000260584.29984195
Pay208997992024-10-05 14:01:23134 days ago1728136883IN
0x3f6eB35f...9e067841a
0.00094827 ETH0.000595899.83471088
Pay208996842024-10-05 13:38:11134 days ago1728135491IN
0x3f6eB35f...9e067841a
0.00093207 ETH0.000502538.29223538
Pay208996732024-10-05 13:35:59134 days ago1728135359IN
0x3f6eB35f...9e067841a
0.00091953 ETH0.000501878.28137916
Pay208989682024-10-05 11:14:47134 days ago1728126887IN
0x3f6eB35f...9e067841a
0.00070606 ETH0.000542898.95820942
Pay208989572024-10-05 11:12:35134 days ago1728126755IN
0x3f6eB35f...9e067841a
0.00054685 ETH0.0006210610.24802266
Withdraw208986142024-10-05 10:03:59134 days ago1728122639IN
0x3f6eB35f...9e067841a
0 ETH0.00037036.82165101
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
218620502025-02-16 22:50:599 hrs ago1739746259
0x3f6eB35f...9e067841a
0.00173139 ETH
218620452025-02-16 22:49:599 hrs ago1739746199
0x3f6eB35f...9e067841a
0.00172033 ETH
218618992025-02-16 22:20:2310 hrs ago1739744423
0x3f6eB35f...9e067841a
0.00042517 ETH
218618962025-02-16 22:19:4710 hrs ago1739744387
0x3f6eB35f...9e067841a
0.00047463 ETH
215521332025-01-04 15:52:4743 days ago1736005967
0x3f6eB35f...9e067841a
0.00143171 ETH
213803482024-12-11 16:06:3567 days ago1733933195
0x3f6eB35f...9e067841a
0.00162547 ETH
213058372024-12-01 6:22:1178 days ago1733034131
0x3f6eB35f...9e067841a
0.00034779 ETH
212769502024-11-27 5:18:4782 days ago1732684727
0x3f6eB35f...9e067841a
0.00028928 ETH
212599672024-11-24 20:23:2384 days ago1732479803
0x3f6eB35f...9e067841a
0.00035309 ETH
212467542024-11-23 0:08:4786 days ago1732320527
0x3f6eB35f...9e067841a
0.00065862 ETH
212225452024-11-19 15:02:1189 days ago1732028531
0x3f6eB35f...9e067841a
0.0020874 ETH
210302562024-10-23 19:03:11116 days ago1729710191
0x3f6eB35f...9e067841a
0.00080742 ETH
210298452024-10-23 17:40:59116 days ago1729705259
0x3f6eB35f...9e067841a
0.0015877 ETH
209872672024-10-17 19:06:47122 days ago1729192007
0x3f6eB35f...9e067841a
0.00173905 ETH
209533242024-10-13 1:13:47127 days ago1728782027
0x3f6eB35f...9e067841a
0.00027498 ETH
209407132024-10-11 6:52:59129 days ago1728629579
0x3f6eB35f...9e067841a
0.00037641 ETH
209025642024-10-05 23:15:59134 days ago1728170159
0x3f6eB35f...9e067841a
0.00014686 ETH
209025442024-10-05 23:11:59134 days ago1728169919
0x3f6eB35f...9e067841a
0.00015561 ETH
209023782024-10-05 22:38:47134 days ago1728167927
0x3f6eB35f...9e067841a
0.00012074 ETH
208997992024-10-05 14:01:23134 days ago1728136883
0x3f6eB35f...9e067841a
0.00054827 ETH
208996842024-10-05 13:38:11134 days ago1728135491
0x3f6eB35f...9e067841a
0.00053207 ETH
208996732024-10-05 13:35:59134 days ago1728135359
0x3f6eB35f...9e067841a
0.00051953 ETH
208989682024-10-05 11:14:47134 days ago1728126887
0x3f6eB35f...9e067841a
0.00030606 ETH
208989572024-10-05 11:12:35134 days ago1728126755
0x3f6eB35f...9e067841a
0.00034685 ETH
208986142024-10-05 10:03:59134 days ago1728122639
0x3f6eB35f...9e067841a
0.55483357 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PayMaster

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : PayMaster.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

import {Ownable} from "@openzeppelin/access/Ownable.sol";

import {IPayMaster} from "./IPayMaster.sol";

contract PayMaster is IPayMaster, Ownable {
    Receiver[] private _feeReceivers;
    uint256 private _totalShares;

    constructor(
        address initialOwner, 
        Receiver[] memory initialReceivers
    ) Ownable(initialOwner) {
        _setFeeReceivers(initialReceivers);
    }
    
    receive() external payable { }

    function feeReceivers() external view override returns (Receiver[] memory) {
        return _feeReceivers;
    }

    function totalShares() external view override returns (uint256) {
        return _totalShares;
    }

    function pay(string memory orderId, address operator, uint256 fees) external payable override {
        if(msg.value == 0) {
            revert MsgValueZero();
        }

        uint256 operatorAmount = msg.value - fees;
        (bool success,) = operator.call{value: operatorAmount}("");
        if(!success) {
            revert OperatorTransferFailed(operator);
        }

        emit OrderPaid(msg.sender, orderId, operator, msg.value, fees);
    }

    function withdraw() public override {
        uint256 totalValue = address(this).balance;

        for (uint256 i; i < _feeReceivers.length; i++) {
            uint256 receiverAmount = (totalValue / _totalShares) * _feeReceivers[i].share;

            (bool success,) = _feeReceivers[i].account.call{value: receiverAmount}("");
            if(!success) {
                revert ReceiverWithdrawFailed(_feeReceivers[i].account);
            }
        }
    }

    function setFeeReceivers(Receiver[] memory newReceivers) external override onlyOwner {       
        _setFeeReceivers(newReceivers);
    }

    function _setFeeReceivers(Receiver[] memory newFeeReceivers) internal {       
        delete _feeReceivers;
        uint256 newTotalShares;

        for (uint256 i; i < newFeeReceivers.length; i++) {
            _feeReceivers.push(newFeeReceivers[i]);
            newTotalShares += newFeeReceivers[i].share;
        }

        _totalShares = newTotalShares;
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 4 : IPayMaster.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

interface IPayMaster {
    error MsgValueZero();
    error OperatorTransferFailed(address);
    error ReceiverWithdrawFailed(address);

    struct Receiver {
        address account;
        uint256 share;
    }

    event OrderPaid(address indexed sender, string orderId, address operator, uint256 value, uint256 fees);

    function feeReceivers() external view returns (Receiver[] memory feeReceivers);
    function totalShares() external view returns (uint256 totalShares);

    function pay(string memory orderId, address operator, uint256 fees) external payable;

    function withdraw() external;
    function setFeeReceivers(Receiver[] memory newFeeReceivers) external;
}

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

Settings
{
  "remappings": [
    "@openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"share","type":"uint256"}],"internalType":"struct IPayMaster.Receiver[]","name":"initialReceivers","type":"tuple[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MsgValueZero","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"OperatorTransferFailed","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ReceiverWithdrawFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"orderId","type":"string"},{"indexed":false,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"}],"name":"OrderPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"feeReceivers","outputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"share","type":"uint256"}],"internalType":"struct IPayMaster.Receiver[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"orderId","type":"string"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"fees","type":"uint256"}],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"share","type":"uint256"}],"internalType":"struct IPayMaster.Receiver[]","name":"newReceivers","type":"tuple[]"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50604051610d45380380610d4583398101604081905261002f91610252565b816001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006781610078565b50610071816100c8565b5050610381565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100d46001600061017a565b6000805b82518110156101735760018382815181106100f5576100f5610344565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b03909216919091178155910151910155825183908290811061015257610152610344565b60200260200101516020015182610169919061035a565b91506001016100d8565b5060025550565b508054600082556002029060005260206000209081019061019b919061019e565b50565b5b808211156101c45780546001600160a01b03191681556000600182015560020161019f565b5090565b80516001600160a01b03811681146101df57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561021c5761021c6101e4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561024a5761024a6101e4565b604052919050565b6000806040838503121561026557600080fd5b61026e836101c8565b60208401519092506001600160401b0381111561028a57600080fd5b8301601f8101851361029b57600080fd5b80516001600160401b038111156102b4576102b46101e4565b6102c360208260051b01610222565b8082825260208201915060208360061b8501019250878311156102e557600080fd5b6020840193505b82841015610336576040848903121561030457600080fd5b61030c6101fa565b610315856101c8565b815260208501516020820152808352506020820191506040840193506102ec565b809450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b8082018082111561037b57634e487b7160e01b600052601160045260246000fd5b92915050565b6109b5806103906000396000f3fe60806040526004361061007f5760003560e01c8063715018a61161004e578063715018a6146100f85780638da5cb5b1461010d578063dd9cdaed14610135578063f2fde38b1461015757600080fd5b80630a90e1791461008b5780633a98ef39146100a05780633ccfd60b146100c357806355eddf47146100d857600080fd5b3661008657005b600080fd5b61009e610099366004610673565b610177565b005b3480156100ac57600080fd5b506002546040519081526020015b60405180910390f35b3480156100cf57600080fd5b5061009e610278565b3480156100e457600080fd5b5061009e6100f3366004610728565b61039a565b34801561010457600080fd5b5061009e6103ae565b34801561011957600080fd5b506000546040516001600160a01b0390911681526020016100ba565b34801561014157600080fd5b5061014a6103c2565b6040516100ba9190610806565b34801561016357600080fd5b5061009e61017236600461085e565b610437565b346000036101985760405163ca8d84fb60e01b815260040160405180910390fd5b60006101a48234610896565b90506000836001600160a01b03168260405160006040518083038185875af1925050503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b505090508061022a57604051633151070760e21b81526001600160a01b03851660048201526024015b60405180910390fd5b336001600160a01b03167f12f06b4aa6768154e15ae5efcb2eefce14b515f2a9766fcee83253d1084e61ea8686348760405161026994939291906108af565b60405180910390a25050505050565b4760005b6001548110156103965760006001828154811061029b5761029b61091d565b906000526020600020906002020160010154600254846102bb9190610933565b6102c59190610955565b90506000600183815481106102dc576102dc61091d565b600091825260208220600290910201546040516001600160a01b039091169184919081818185875af1925050503d8060008114610335576040519150601f19603f3d011682016040523d82523d6000602084013e61033a565b606091505b505090508061038c57600183815481106103565761035661091d565b60009182526020909120600290910201546040516339f38b7760e11b81526001600160a01b039091166004820152602401610221565b505060010161027c565b5050565b6103a2610472565b6103ab8161049f565b50565b6103b6610472565b6103c06000610551565b565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561042e576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016103e6565b50505050905090565b61043f610472565b6001600160a01b03811661046957604051631e4fbdf760e01b815260006004820152602401610221565b6103ab81610551565b6000546001600160a01b031633146103c05760405163118cdaa760e01b8152336004820152602401610221565b6104ab600160006105a1565b6000805b825181101561054a5760018382815181106104cc576104cc61091d565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b0390921691909117815591015191015582518390829081106105295761052961091d565b60200260200101516020015182610540919061096c565b91506001016104af565b5060025550565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805460008255600202906000526020600020908101906103ab91905b808211156105e35780546001600160a01b0319168155600060018201556002016105be565b5090565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610620576106206105e7565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561064f5761064f6105e7565b604052919050565b80356001600160a01b038116811461066e57600080fd5b919050565b60008060006060848603121561068857600080fd5b833567ffffffffffffffff81111561069f57600080fd5b8401601f810186136106b057600080fd5b803567ffffffffffffffff8111156106ca576106ca6105e7565b6106dd601f8201601f1916602001610626565b8181528760208385010111156106f257600080fd5b8160208401602083013760006020838301015280955050505061071760208501610657565b929592945050506040919091013590565b60006020828403121561073a57600080fd5b813567ffffffffffffffff81111561075157600080fd5b8201601f8101841361076257600080fd5b803567ffffffffffffffff81111561077c5761077c6105e7565b61078b60208260051b01610626565b8082825260208201915060208360061b8501019250868311156107ad57600080fd5b6020840193505b828410156107fc57604084880312156107cc57600080fd5b6107d46105fd565b6107dd85610657565b81526020858101358183015290835260409094019391909101906107b4565b9695505050505050565b602080825282518282018190526000918401906040840190835b8181101561085357835180516001600160a01b031684526020908101518185015290930192604090920191600101610820565b509095945050505050565b60006020828403121561087057600080fd5b61087982610657565b9392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108a9576108a9610880565b92915050565b608081526000855180608084015260005b818110156108dd57602081890181015160a08684010152016108c0565b50600060a08285018101919091526001600160a01b039690961660208401526040830194909452506060810191909152601f909101601f19160101919050565b634e487b7160e01b600052603260045260246000fd5b60008261095057634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108a9576108a9610880565b808201808211156108a9576108a961088056fea2646970667358221220aa7b2943ad641dea6b2095071b9eff6e898ea598153fde8a4c8c242f3643bbd364736f6c634300081a003300000000000000000000000001070d1c66febf4c1177bc891e8cab95deacf41900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061007f5760003560e01c8063715018a61161004e578063715018a6146100f85780638da5cb5b1461010d578063dd9cdaed14610135578063f2fde38b1461015757600080fd5b80630a90e1791461008b5780633a98ef39146100a05780633ccfd60b146100c357806355eddf47146100d857600080fd5b3661008657005b600080fd5b61009e610099366004610673565b610177565b005b3480156100ac57600080fd5b506002546040519081526020015b60405180910390f35b3480156100cf57600080fd5b5061009e610278565b3480156100e457600080fd5b5061009e6100f3366004610728565b61039a565b34801561010457600080fd5b5061009e6103ae565b34801561011957600080fd5b506000546040516001600160a01b0390911681526020016100ba565b34801561014157600080fd5b5061014a6103c2565b6040516100ba9190610806565b34801561016357600080fd5b5061009e61017236600461085e565b610437565b346000036101985760405163ca8d84fb60e01b815260040160405180910390fd5b60006101a48234610896565b90506000836001600160a01b03168260405160006040518083038185875af1925050503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b505090508061022a57604051633151070760e21b81526001600160a01b03851660048201526024015b60405180910390fd5b336001600160a01b03167f12f06b4aa6768154e15ae5efcb2eefce14b515f2a9766fcee83253d1084e61ea8686348760405161026994939291906108af565b60405180910390a25050505050565b4760005b6001548110156103965760006001828154811061029b5761029b61091d565b906000526020600020906002020160010154600254846102bb9190610933565b6102c59190610955565b90506000600183815481106102dc576102dc61091d565b600091825260208220600290910201546040516001600160a01b039091169184919081818185875af1925050503d8060008114610335576040519150601f19603f3d011682016040523d82523d6000602084013e61033a565b606091505b505090508061038c57600183815481106103565761035661091d565b60009182526020909120600290910201546040516339f38b7760e11b81526001600160a01b039091166004820152602401610221565b505060010161027c565b5050565b6103a2610472565b6103ab8161049f565b50565b6103b6610472565b6103c06000610551565b565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561042e576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016103e6565b50505050905090565b61043f610472565b6001600160a01b03811661046957604051631e4fbdf760e01b815260006004820152602401610221565b6103ab81610551565b6000546001600160a01b031633146103c05760405163118cdaa760e01b8152336004820152602401610221565b6104ab600160006105a1565b6000805b825181101561054a5760018382815181106104cc576104cc61091d565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b0390921691909117815591015191015582518390829081106105295761052961091d565b60200260200101516020015182610540919061096c565b91506001016104af565b5060025550565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b50805460008255600202906000526020600020908101906103ab91905b808211156105e35780546001600160a01b0319168155600060018201556002016105be565b5090565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610620576106206105e7565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561064f5761064f6105e7565b604052919050565b80356001600160a01b038116811461066e57600080fd5b919050565b60008060006060848603121561068857600080fd5b833567ffffffffffffffff81111561069f57600080fd5b8401601f810186136106b057600080fd5b803567ffffffffffffffff8111156106ca576106ca6105e7565b6106dd601f8201601f1916602001610626565b8181528760208385010111156106f257600080fd5b8160208401602083013760006020838301015280955050505061071760208501610657565b929592945050506040919091013590565b60006020828403121561073a57600080fd5b813567ffffffffffffffff81111561075157600080fd5b8201601f8101841361076257600080fd5b803567ffffffffffffffff81111561077c5761077c6105e7565b61078b60208260051b01610626565b8082825260208201915060208360061b8501019250868311156107ad57600080fd5b6020840193505b828410156107fc57604084880312156107cc57600080fd5b6107d46105fd565b6107dd85610657565b81526020858101358183015290835260409094019391909101906107b4565b9695505050505050565b602080825282518282018190526000918401906040840190835b8181101561085357835180516001600160a01b031684526020908101518185015290930192604090920191600101610820565b509095945050505050565b60006020828403121561087057600080fd5b61087982610657565b9392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108a9576108a9610880565b92915050565b608081526000855180608084015260005b818110156108dd57602081890181015160a08684010152016108c0565b50600060a08285018101919091526001600160a01b039690961660208401526040830194909452506060810191909152601f909101601f19160101919050565b634e487b7160e01b600052603260045260246000fd5b60008261095057634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108a9576108a9610880565b808201808211156108a9576108a961088056fea2646970667358221220aa7b2943ad641dea6b2095071b9eff6e898ea598153fde8a4c8c242f3643bbd364736f6c634300081a0033

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

00000000000000000000000001070d1c66febf4c1177bc891e8cab95deacf41900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialOwner (address): 0x01070D1c66feBf4c1177bC891e8cAb95DEAcf419

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000001070d1c66febf4c1177bc891e8cab95deacf419
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


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