ETH Price: $3,653.23 (+1.48%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Call186380252023-11-24 0:33:35407 days ago1700786015IN
0x419f4b96...222095ADa
0 ETH0.0058745117.86701276
Call186332512023-11-23 8:31:23408 days ago1700728283IN
0x419f4b96...222095ADa
0 ETH0.008240324.9796356
Call186058662023-11-19 12:30:11412 days ago1700397011IN
0x419f4b96...222095ADa
0 ETH0.0057485717.46120388
Call185999272023-11-18 16:31:11413 days ago1700325071IN
0x419f4b96...222095ADa
0 ETH0.0102139831.21231902
Call185475062023-11-11 8:30:23420 days ago1699691423IN
0x419f4b96...222095ADa
0 ETH0.0079478524.16876868
Call185034362023-11-05 4:30:11426 days ago1699158611IN
0x419f4b96...222095ADa
0 ETH0.0048185814.66831076
Call184591172023-10-29 23:29:47432 days ago1698622187IN
0x419f4b96...222095ADa
0 ETH0.0045729714.47144358
Call184189442023-10-24 8:31:23438 days ago1698136283IN
0x419f4b96...222095ADa
0 ETH0.005573217.03386716
Call184117922023-10-23 8:30:11439 days ago1698049811IN
0x419f4b96...222095ADa
0 ETH0.0039115611.89375099
Call183129252023-10-09 12:30:11453 days ago1696854611IN
0x419f4b96...222095ADa
0 ETH0.003370410.29545863
Call182401922023-09-29 8:30:11463 days ago1695976211IN
0x419f4b96...222095ADa
0 ETH0.0037251711.38419417
Call181131212023-09-11 12:30:11481 days ago1694435411IN
0x419f4b96...222095ADa
0 ETH0.0049755215.18127155
Call179381182023-08-18 0:30:11505 days ago1692318611IN
0x419f4b96...222095ADa
0 ETH0.0094698329.031575
Call178571162023-08-06 16:30:11517 days ago1691339411IN
0x419f4b96...222095ADa
0 ETH0.0072261626.7068872

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
176953922023-07-15 0:56:47539 days ago1689382607  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xFc78661d...37d4C5542
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
BasefeeOSMDeviationCallBundler

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2023-07-15
*/

pragma solidity 0.8.19;

abstract contract StabilityFeeTreasuryLike {
    function systemCoin() external view virtual returns (address);

    function pullFunds(address, address, uint) external virtual;
}

abstract contract OracleLike {
    function read() external view virtual returns (uint256);
}

abstract contract BaseFeeIncentive {
    StabilityFeeTreasuryLike public immutable treasury; // The stability fee treasury
    address public immutable coin; // The system coin
    OracleLike public ethOracle; // eth oracle
    OracleLike public coinOracle; // coin oracle
    uint256 public fixedReward; // The fixed reward sent by the treasury to a fee receiver (wad)
    uint256 public callDelay; // delay between incentivized calls (seconds)
    uint256 public lastCallMade; // last time a call to target was made (UNIX timestamp)

    // --- Events ---
    event AddAuthorization(address account);
    event RemoveAuthorization(address account);
    event ModifyParameters(bytes32 parameter, address addr);
    event ModifyParameters(bytes32 parameter, uint256 val);
    event RewardCaller(address indexed finalFeeReceiver, uint256 fixedReward);
    event FailRewardCaller(
        bytes revertReason,
        address feeReceiver,
        uint256 amount
    );

    // --- Auth ---
    mapping(address => uint256) public authorizedAccounts;

    /**
     * @notice Add auth to an account
     * @param account Account to add auth to
     */
    function addAuthorization(address account) external isAuthorized {
        authorizedAccounts[account] = 1;
        emit AddAuthorization(account);
    }

    /**
     * @notice Remove auth from an account
     * @param account Account to remove auth from
     */
    function removeAuthorization(address account) external isAuthorized {
        authorizedAccounts[account] = 0;
        emit RemoveAuthorization(account);
    }

    /**
     * @notice Checks whether msg.sender can call an authed function
     **/
    modifier isAuthorized() {
        require(
            authorizedAccounts[msg.sender] == 1,
            "StabilityFeeTreasury/account-not-authorized"
        );
        _;
    }

    // --- Constructor ---
    constructor(
        address treasury_,
        uint256 reward_,
        uint256 delay_,
        address coinOracle_,
        address ethOracle_
    ) {
        require(treasury_ != address(0), "invalid-treasury");
        require(reward_ != 0, "invalid-reward");
        require(coinOracle_ != address(0), "invalid-coin-oracle");
        require(ethOracle_ != address(0), "invalid-eth-oracle");

        authorizedAccounts[msg.sender] = 1;

        treasury = StabilityFeeTreasuryLike(treasury_);
        fixedReward = reward_;
        callDelay = delay_;
        coin = StabilityFeeTreasuryLike(treasury_).systemCoin();
        coinOracle = OracleLike(coinOracle_);
        ethOracle = OracleLike(ethOracle_);

        emit AddAuthorization(msg.sender);
        emit ModifyParameters("fixedReward", reward_);
        emit ModifyParameters("callDelay", delay_);
        emit ModifyParameters("coinOracle", coinOracle_);
        emit ModifyParameters("ethOracle", ethOracle_);
    }

    // -- Admin --
    function modifyParameters(
        bytes32 parameter,
        uint256 val
    ) public isAuthorized virtual {
        if (parameter == "fixedReward") fixedReward = val;
        else if (parameter == "callDelay") callDelay = val;
        else revert("invalid-param");
        emit ModifyParameters(parameter, val);
    }

    function modifyParameters(
        bytes32 parameter,
        address val
    ) external isAuthorized {
        require(val != address(0), "invalid-data");
        if (parameter == "coinOracle") coinOracle = OracleLike(val);
        else if (parameter == "ethOracle") ethOracle = OracleLike(val);
        else revert("invalid-param");
        emit ModifyParameters(parameter, val);
    }

    modifier payRewards() {
        uint256 gas = gasleft();
        _;

        if (block.timestamp >= lastCallMade + callDelay) {
            gas = gas - gasleft();
            uint256 coinCost = (gas * block.basefee * ethOracle.read()) /
                coinOracle.read();

            try treasury.pullFunds(msg.sender, coin, coinCost + fixedReward) {
                emit RewardCaller(msg.sender, coinCost + fixedReward);
            } catch (bytes memory revertReason) {
                emit FailRewardCaller(
                    revertReason,
                    msg.sender,
                    coinCost + fixedReward
                );
            }
        }

        lastCallMade = block.timestamp;
    }
}

abstract contract OSMLike {
    function updateResult() external virtual; // OSM Call

    function read() external view virtual returns (uint256);

    function priceSource() external view virtual returns (OracleLike);

    function getNextResultWithValidity() external view virtual returns (uint256, bool);
}

abstract contract OracleRelayerLike {
    function updateCollateralPrice(bytes32) external virtual; // Oracle relayer call

    function orcl(bytes32) external view virtual returns (address);
}

// @notice: Unobtrusive incentives for any call on a TAI like system.
// @dev: Assumes an allowance from the stability fee treasury, all oracles return quotes with 18 decimal places.
// @dev: Assumes all collateral types use the same OSM
contract BasefeeOSMDeviationCallBundler is BaseFeeIncentive {
    OSMLike public immutable osm;
    OracleRelayerLike public immutable oracleRelayer;
    bytes32 public immutable collateralA;
    bytes32 public immutable collateralB;
    bytes32 public immutable collateralC;

    uint256 public acceptedDeviation = 50; // 1000 = 100%, default 5%

    // --- Constructor ---
    constructor(
        address treasury_,
        address osm_,
        address oracleRelayer_,
        bytes32[3] memory collateral_,
        uint256 reward_,
        uint256 delay_,
        address coinOracle_,
        address ethOracle_
    ) BaseFeeIncentive(treasury_, reward_, delay_, coinOracle_, ethOracle_) {
        require(osm_ != address(0), "invalid-osm");
        require(oracleRelayer_ != address(0), "invalid-oracle-relayer");

        osm = OSMLike(osm_);
        oracleRelayer = OracleRelayerLike(oracleRelayer_);

        for (uint i; i < 3; i++) {
            if (collateral_[i] != bytes32(0)) require(oracleRelayer.orcl(collateral_[i]) == osm_, "invalid-collateral");
        }
        collateralA = collateral_[0];
        collateralB = collateral_[1];
        collateralC = collateral_[2];
    }

    function modifyParameters(bytes32 parameter, uint256 data) public override isAuthorized {
        if (parameter == "acceptedDeviation") {
            require(data <= 500, "invalid-deviation");
            acceptedDeviation = data;
            emit ModifyParameters(parameter, data);
        } else super.modifyParameters(parameter, data);
    }

    // @dev Calls are made through the fallback function
    fallback() external payRewards {
        uint256 currentPrice = osm.read();
        (uint256 nextPrice, ) = osm.getNextResultWithValidity();
        uint256 marketPrice = osm.priceSource().read();

        uint256 deviation = (currentPrice * acceptedDeviation) / 1000;

        // will pay if either current vs nextPrice or current vs marketPrice deviates by more than deviation
        require(
            nextPrice >= currentPrice + deviation ||
            nextPrice <= currentPrice - deviation ||
            marketPrice >= currentPrice + deviation ||
            marketPrice <= currentPrice - deviation,
            "not-enough-deviation"
        );

        osm.updateResult();

        if (collateralA != bytes32(0)) oracleRelayer.updateCollateralPrice(collateralA);
        if (collateralB != bytes32(0)) oracleRelayer.updateCollateralPrice(collateralB);
        if (collateralC != bytes32(0)) oracleRelayer.updateCollateralPrice(collateralC);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"treasury_","type":"address"},{"internalType":"address","name":"osm_","type":"address"},{"internalType":"address","name":"oracleRelayer_","type":"address"},{"internalType":"bytes32[3]","name":"collateral_","type":"bytes32[3]"},{"internalType":"uint256","name":"reward_","type":"uint256"},{"internalType":"uint256","name":"delay_","type":"uint256"},{"internalType":"address","name":"coinOracle_","type":"address"},{"internalType":"address","name":"ethOracle_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"revertReason","type":"bytes"},{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailRewardCaller","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"val","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"finalFeeReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"fixedReward","type":"uint256"}],"name":"RewardCaller","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptedDeviation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"callDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinOracle","outputs":[{"internalType":"contract OracleLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collateralA","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collateralB","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collateralC","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethOracle","outputs":[{"internalType":"contract OracleLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fixedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastCallMade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"val","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracleRelayer","outputs":[{"internalType":"contract OracleRelayerLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"osm","outputs":[{"internalType":"contract OSMLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"contract StabilityFeeTreasuryLike","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c806361d027b3116100a2578063972da31111610071578063972da31114610aa35780639c8762e114610aca578063c8ab1ba314610add578063dd78398a14610af0578063fe4f589014610b1757610116565b806361d027b314610a2f5780636614f01014610a5657806393f11c2914610a6957806394f3f81d14610a9057610116565b806324ba5884116100e957806324ba5884146109c15780632eaa5344146109e157806335b28153146109ea5780634faf61ab146109ff5780635730592014610a2657610116565b806311df999514610936578063137d8c081461097a5780631d2b105c146109915780631de01bc9146109b8575b60005a905060007f0000000000000000000000007b7c098db146b204bd058d975c0f8ca7f7aabb556001600160a01b03166357de26a46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561017b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019f9190610efe565b905060007f0000000000000000000000007b7c098db146b204bd058d975c0f8ca7f7aabb556001600160a01b0316634f0a32de6040518163ffffffff1660e01b81526004016040805180830381865afa158015610200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102249190610f17565b50905060007f0000000000000000000000007b7c098db146b204bd058d975c0f8ca7f7aabb556001600160a01b03166320531bc96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190610f64565b6001600160a01b03166357de26a46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030c9190610efe565b905060006103e8600654856103219190610f9e565b61032b9190610fbb565b90506103378185610fdd565b8310158061034e575061034a8185610ff0565b8311155b80610362575061035e8185610fdd565b8210155b8061037657506103728185610ff0565b8211155b6103be5760405162461bcd60e51b81526020600482015260146024820152733737ba16b2b737bab3b416b232bb34b0ba34b7b760611b60448201526064015b60405180910390fd5b7f0000000000000000000000007b7c098db146b204bd058d975c0f8ca7f7aabb556001600160a01b03166380ebb08e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b50507f524554482d4100000000000000000000000000000000000000000000000000001591506104f3905057604051636d530fb360e01b81527f524554482d41000000000000000000000000000000000000000000000000000060048201527f0000000000000000000000006aa9d2f366beaaec40c3409e5926e831ea42dc826001600160a01b031690636d530fb390602401600060405180830381600087803b1580156104da57600080fd5b505af11580156104ee573d6000803e3d6000fd5b505050505b7f524554482d420000000000000000000000000000000000000000000000000000156105b357604051636d530fb360e01b81527f524554482d42000000000000000000000000000000000000000000000000000060048201527f0000000000000000000000006aa9d2f366beaaec40c3409e5926e831ea42dc826001600160a01b031690636d530fb390602401600060405180830381600087803b15801561059a57600080fd5b505af11580156105ae573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000001561067357604051636d530fb360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201527f0000000000000000000000006aa9d2f366beaaec40c3409e5926e831ea42dc826001600160a01b031690636d530fb390602401600060405180830381600087803b15801561065a57600080fd5b505af115801561066e573d6000803e3d6000fd5b505050505b505050506003546004546106879190610fdd565b421061092e575a6106989082610ff0565b90506000600160009054906101000a90046001600160a01b03166001600160a01b03166357de26a46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107139190610efe565b60008054906101000a90046001600160a01b03166001600160a01b03166357de26a46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190610efe565b6107924885610f9e565b61079c9190610f9e565b6107a69190610fbb565b90507f000000000000000000000000b3c5866f6690abd50536683994cc949697a64cd06001600160a01b031663201add9b337f000000000000000000000000f915110898d9a455ad2da51bf49520b41655ccea600254856108079190610fdd565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561085657600080fd5b505af1925050508015610867575060015b6108e9573d808015610895576040519150601f19603f3d011682016040523d82523d6000602084013e61089a565b606091505b507ff7bf1f7447ce563690edb2abe40636178ff64fc766b07bf3e171b16102794a548133600254856108cc9190610fdd565b6040516108db93929190611003565b60405180910390a15061092c565b60025433907fecceda37d3797234769f9d2cb1d47314680fb79283568bdba3f12876c4c244db9061091a9084610fdd565b60405190815260200160405180910390a25b505b426004819055005b61095d7f000000000000000000000000f915110898d9a455ad2da51bf49520b41655ccea81565b6040516001600160a01b0390911681526020015b60405180910390f35b61098360065481565b604051908152602001610971565b6109837f000000000000000000000000000000000000000000000000000000000000000081565b61098360035481565b6109836109cf366004611069565b60056020526000908152604090205481565b61098360045481565b6109fd6109f8366004611069565b610b2a565b005b61095d7f0000000000000000000000006aa9d2f366beaaec40c3409e5926e831ea42dc8281565b61098360025481565b61095d7f000000000000000000000000b3c5866f6690abd50536683994cc949697a64cd081565b6109fd610a64366004611086565b610bad565b6109837f524554482d41000000000000000000000000000000000000000000000000000081565b6109fd610a9e366004611069565b610d06565b61095d7f0000000000000000000000007b7c098db146b204bd058d975c0f8ca7f7aabb5581565b60005461095d906001600160a01b031681565b60015461095d906001600160a01b031681565b6109837f524554482d42000000000000000000000000000000000000000000000000000081565b6109fd610b253660046110ab565b610d81565b33600090815260056020526040902054600114610b595760405162461bcd60e51b81526004016103b5906110cd565b6001600160a01b0381166000818152600560209081526040918290206001905590519182527f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f700010291015b60405180910390a150565b33600090815260056020526040902054600114610bdc5760405162461bcd60e51b81526004016103b5906110cd565b6001600160a01b038116610c215760405162461bcd60e51b815260206004820152600c60248201526b696e76616c69642d6461746160a01b60448201526064016103b5565b8169636f696e4f7261636c6560b01b03610c5557600180546001600160a01b0319166001600160a01b038316179055610cc0565b81686574684f7261636c6560b81b03610c8857600080546001600160a01b0319166001600160a01b038316179055610cc0565b60405162461bcd60e51b815260206004820152600d60248201526c696e76616c69642d706172616d60981b60448201526064016103b5565b604080518381526001600160a01b03831660208201527fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d191015b60405180910390a15050565b33600090815260056020526040902054600114610d355760405162461bcd60e51b81526004016103b5906110cd565b6001600160a01b03811660008181526005602090815260408083209290925590519182527f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039101610ba2565b33600090815260056020526040902054600114610db05760405162461bcd60e51b81526004016103b5906110cd565b817030b1b1b2b83a32b22232bb34b0ba34b7b760791b03610e53576101f4811115610e115760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b216b232bb34b0ba34b7b760791b60448201526064016103b5565b600681905560408051838152602081018390527fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a910160405180910390a15050565b610e5d8282610e61565b5050565b33600090815260056020526040902054600114610e905760405162461bcd60e51b81526004016103b5906110cd565b816a199a5e195914995dd85c9960aa1b03610eaf576002819055610ec8565b816863616c6c44656c617960b81b03610c885760038190555b60408051838152602081018390527fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a9101610cfa565b600060208284031215610f1057600080fd5b5051919050565b60008060408385031215610f2a57600080fd5b8251915060208301518015158114610f4157600080fd5b809150509250929050565b6001600160a01b0381168114610f6157600080fd5b50565b600060208284031215610f7657600080fd5b8151610f8181610f4c565b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610fb557610fb5610f88565b92915050565b600082610fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610fb557610fb5610f88565b81810381811115610fb557610fb5610f88565b606081526000845180606084015260005b818110156110315760208188018101516080868401015201611014565b50600060808285018101919091526001600160a01b03959095166020840152604083019390935250601f909101601f19160101919050565b60006020828403121561107b57600080fd5b8135610f8181610f4c565b6000806040838503121561109957600080fd5b823591506020830135610f4181610f4c565b600080604083850312156110be57600080fd5b50508035926020909101359150565b6020808252602b908201527f53746162696c69747946656554726561737572792f6163636f756e742d6e6f7460408201526a0b585d5d1a1bdc9a5e995960aa1b60608201526080019056fea264697066735822122062d89a7c260432ab478cab5de51d0a55b6af1cb480202966fc5385321d31261764736f6c63430008130033

Deployed Bytecode Sourcemap

5523:2633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4054:11;4068:9;4054:23;;7216:20:::1;7239:3;-1:-1:-1::0;;;;;7239:8:0::1;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7216:33;;7261:17;7284:3;-1:-1:-1::0;;;;;7284:29:0::1;;:31;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7260:55;;;7326:19;7348:3;-1:-1:-1::0;;;;;7348:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7348:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7326:46;;7385:17;7442:4;7421:17;;7406:12;:32;;;;:::i;:::-;7405:41;;;;:::i;:::-;7385:61:::0;-1:-1:-1;7604:24:0::1;7385:61:::0;7604:12;:24:::1;:::i;:::-;7591:9;:37;;:91;;;-1:-1:-1::0;7658:24:0::1;7673:9:::0;7658:12;:24:::1;:::i;:::-;7645:9;:37;;7591:91;:147;;;-1:-1:-1::0;7714:24:0::1;7729:9:::0;7714:12;:24:::1;:::i;:::-;7699:11;:39;;7591:147;:203;;;-1:-1:-1::0;7770:24:0::1;7785:9:::0;7770:12;:24:::1;:::i;:::-;7755:11;:39;;7591:203;7569:273;;;::::0;-1:-1:-1;;;7569:273:0;;1971:2:1;7569:273:0::1;::::0;::::1;1953:21:1::0;2010:2;1990:18;;;1983:30;-1:-1:-1;;;2029:18:1;;;2022:50;2089:18;;7569:273:0::1;;;;;;;;;7855:3;-1:-1:-1::0;;;;;7855:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7890:11:0::1;:25:::0;;-1:-1:-1;7886:79:0::1;::::0;-1:-1:-1;7886:79:0::1;7917:48;::::0;-1:-1:-1;;;7917:48:0;;7953:11:::1;7917:48;::::0;::::1;2264:25:1::0;7917:13:0::1;-1:-1:-1::0;;;;;7917:35:0::1;::::0;::::1;::::0;2237:18:1;;7917:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7886:79;7980:11;:25:::0;7976:79:::1;;8007:48;::::0;-1:-1:-1;;;8007:48:0;;8043:11:::1;8007:48;::::0;::::1;2264:25:1::0;8007:13:0::1;-1:-1:-1::0;;;;;8007:35:0::1;::::0;::::1;::::0;2237:18:1;;8007:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7976:79;8070:11;:25:::0;8066:79:::1;;8097:48;::::0;-1:-1:-1;;;8097:48:0;;8133:11:::1;8097:48;::::0;::::1;2264:25:1::0;8097:13:0::1;-1:-1:-1::0;;;;;8097:35:0::1;::::0;::::1;::::0;2237:18:1;;8097:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8066:79;7205:948;;;;4140:9:::0;;4125:12;;:24;;;;:::i;:::-;4106:15;:43;4102:600;;4178:9;4172:15;;:3;:15;:::i;:::-;4166:21;;4202:16;4281:10;;;;;;;;;-1:-1:-1;;;;;4281:10:0;-1:-1:-1;;;;;4281:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4244:9;;;;;;;;-1:-1:-1;;;;;4244:9:0;-1:-1:-1;;;;;4244:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4222:19;4228:13;4222:3;:19;:::i;:::-;:38;;;;:::i;:::-;4221:77;;;;:::i;:::-;4202:96;;4319:8;-1:-1:-1;;;;;4319:18:0;;4338:10;4350:4;4367:11;;4356:8;:22;;;;:::i;:::-;4319:60;;-1:-1:-1;;;;;;4319:60:0;;;;;;;-1:-1:-1;;;;;2558:15:1;;;4319:60:0;;;2540:34:1;2610:15;;;;2590:18;;;2583:43;2642:18;;;2635:34;2475:18;;4319:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4315:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4527:148;4566:12;4601:10;4645:11;;4634:8;:22;;;;:::i;:::-;4527:148;;;;;;;;:::i;:::-;;;;;;;;4469:222;4315:376;;;4440:11;;4417:10;;4404:48;;4429:22;;:8;:22;:::i;:::-;4404:48;;2264:25:1;;;2252:2;2237:18;4404:48:0;;;;;;;4315:376;4151:551;4102:600;4729:15;4714:12;:30;;;;442:29;;;;;;;;-1:-1:-1;;;;;3733:32:1;;;3715:51;;3703:2;3688:18;442:29:0;;;;;;;;5811:37;;;;;;;;;2264:25:1;;;2252:2;2237:18;5811:37:0;2118:177:1;5766:36:0;;;;;693:24;;;;;;1326:53;;;;;;:::i;:::-;;;;;;;;;;;;;;770:27;;;;;;1491:156;;;;;;:::i;:::-;;:::i;:::-;;5625:48;;;;;595:26;;;;;;355:50;;;;;3617:396;;;;;;:::i;:::-;;:::i;5680:36::-;;;;;1768:162;;;;;;:::i;:::-;;:::i;5590:28::-;;;;;497:27;;;;;-1:-1:-1;;;;;497:27:0;;;545:28;;;;;-1:-1:-1;;;;;545:28:0;;;5723:36;;;;;6758:350;;;;;;:::i;:::-;;:::i;1491:156::-;2103:10;2084:30;;;;:18;:30;;;;;;2118:1;2084:35;2062:128;;;;-1:-1:-1;;;2062:128:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1567:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;1597:1:::1;1567:31:::0;;1614:25;;3715:51:1;;;1614:25:0::1;::::0;3688:18:1;1614:25:0::1;;;;;;;;1491:156:::0;:::o;3617:396::-;2103:10;2084:30;;;;:18;:30;;;;;;2118:1;2084:35;2062:128;;;;-1:-1:-1;;;2062:128:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3741:17:0;::::1;3733:42;;;::::0;-1:-1:-1;;;3733:42:0;;6160:2:1;3733:42:0::1;::::0;::::1;6142:21:1::0;6199:2;6179:18;;;6172:30;-1:-1:-1;;;6218:18:1;;;6211:42;6270:18;;3733:42:0::1;5958:336:1::0;3733:42:0::1;3790:9;-1:-1:-1::0;;;3790:25:0;3786:171:::1;;3817:10;:28:::0;;-1:-1:-1;;;;;;3817:28:0::1;-1:-1:-1::0;;;;;3817:28:0;::::1;;::::0;;3786:171:::1;;;3865:9;-1:-1:-1::0;;;3865:24:0;3861:96:::1;;3891:9;:27:::0;;-1:-1:-1;;;;;;3891:27:0::1;-1:-1:-1::0;;;;;3891:27:0;::::1;;::::0;;3861:96:::1;;;3934:23;::::0;-1:-1:-1;;;3934:23:0;;6501:2:1;3934:23:0::1;::::0;::::1;6483:21:1::0;6540:2;6520:18;;;6513:30;-1:-1:-1;;;6559:18:1;;;6552:43;6612:18;;3934:23:0::1;6299:337:1::0;3861:96:0::1;3973:32;::::0;;6815:25:1;;;-1:-1:-1;;;;;6876:32:1;;6871:2;6856:18;;6849:60;3973:32:0::1;::::0;6788:18:1;3973:32:0::1;;;;;;;;3617:396:::0;;:::o;1768:162::-;2103:10;2084:30;;;;:18;:30;;;;;;2118:1;2084:35;2062:128;;;;-1:-1:-1;;;2062:128:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1847:27:0;::::1;1877:1;1847:27:::0;;;:18:::1;:27;::::0;;;;;;;:31;;;;1894:28;;3715:51:1;;;1894:28:0::1;::::0;3688:18:1;1894:28:0::1;3569:203:1::0;6758:350:0;2103:10;2084:30;;;;:18;:30;;;;;;2118:1;2084:35;2062:128;;;;-1:-1:-1;;;2062:128:0;;;;;;;:::i;:::-;6861:9:::1;-1:-1:-1::0;;;6861:32:0;6857:243:::1;;6926:3;6918:4;:11;;6910:41;;;::::0;-1:-1:-1;;;6910:41:0;;7122:2:1;6910:41:0::1;::::0;::::1;7104:21:1::0;7161:2;7141:18;;;7134:30;-1:-1:-1;;;7180:18:1;;;7173:47;7237:18;;6910:41:0::1;6920:341:1::0;6910:41:0::1;6966:17;:24:::0;;;7010:33:::1;::::0;;7440:25:1;;;7496:2;7481:18;;7474:34;;;7010:33:0::1;::::0;7413:18:1;7010:33:0::1;;;;;;;6758:350:::0;;:::o;6857:243::-:1;7061:39;7084:9;7095:4;7061:22;:39::i;:::-;6758:350:::0;;:::o;3282:327::-;2103:10;2084:30;;;;:18;:30;;;;;;2118:1;2084:35;2062:128;;;;-1:-1:-1;;;2062:128:0;;;;;;;:::i;:::-;3408:9:::1;-1:-1:-1::0;;;3408:26:0;3404:149:::1;;3436:11;:17:::0;;;3404:149:::1;;;3473:9;-1:-1:-1::0;;;3473:24:0;3469:84:::1;;3499:9;:15:::0;;;3469:84:::1;3569:32;::::0;;7440:25:1;;;7496:2;7481:18;;7474:34;;;3569:32:0::1;::::0;7413:18:1;3569:32:0::1;7266:248:1::0;14:184;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;203:338::-;279:6;287;340:2;328:9;319:7;315:23;311:32;308:52;;;356:1;353;346:12;308:52;385:9;379:16;369:26;;438:2;427:9;423:18;417:25;485:5;478:13;471:21;464:5;461:32;451:60;;507:1;504;497:12;451:60;530:5;520:15;;;203:338;;;;;:::o;546:143::-;-1:-1:-1;;;;;633:31:1;;623:42;;613:70;;679:1;676;669:12;613:70;546:143;:::o;694:280::-;781:6;834:2;822:9;813:7;809:23;805:32;802:52;;;850:1;847;840:12;802:52;882:9;876:16;901:43;938:5;901:43;:::i;:::-;963:5;694:280;-1:-1:-1;;;694:280:1:o;979:127::-;1040:10;1035:3;1031:20;1028:1;1021:31;1071:4;1068:1;1061:15;1095:4;1092:1;1085:15;1111:168;1184:9;;;1215;;1232:15;;;1226:22;;1212:37;1202:71;;1253:18;;:::i;:::-;1111:168;;;;:::o;1284:217::-;1324:1;1350;1340:132;;1394:10;1389:3;1385:20;1382:1;1375:31;1429:4;1426:1;1419:15;1457:4;1454:1;1447:15;1340:132;-1:-1:-1;1486:9:1;;1284:217::o;1506:125::-;1571:9;;;1592:10;;;1589:36;;;1605:18;;:::i;1636:128::-;1703:9;;;1724:11;;;1721:37;;;1738:18;;:::i;2680:702::-;2883:2;2872:9;2865:21;2846:4;2915:6;2909:13;2958:6;2953:2;2942:9;2938:18;2931:34;2983:1;2993:145;3007:6;3004:1;3001:13;2993:145;;;3121:4;3105:14;;;3101:25;;3095:32;3089:3;3070:17;;;3066:27;3059:69;3022:12;2993:145;;;-1:-1:-1;3188:1:1;3182:3;3158:22;;;3154:32;;3147:43;;;;-1:-1:-1;;;;;3300:32:1;;;;3293:4;3278:20;;3271:62;3364:2;3349:18;;3342:34;;;;-1:-1:-1;3251:2:1;3230:15;;;-1:-1:-1;;3226:29:1;3211:45;3207:55;;;-1:-1:-1;2680:702:1:o;3777:259::-;3836:6;3889:2;3877:9;3868:7;3864:23;3860:32;3857:52;;;3905:1;3902;3895:12;3857:52;3944:9;3931:23;3963:43;4000:5;3963:43;:::i;4513:327::-;4581:6;4589;4642:2;4630:9;4621:7;4617:23;4613:32;4610:52;;;4658:1;4655;4648:12;4610:52;4694:9;4681:23;4671:33;;4754:2;4743:9;4739:18;4726:32;4767:43;4804:5;4767:43;:::i;5293:248::-;5361:6;5369;5422:2;5410:9;5401:7;5397:23;5393:32;5390:52;;;5438:1;5435;5428:12;5390:52;-1:-1:-1;;5461:23:1;;;5531:2;5516:18;;;5503:32;;-1:-1:-1;5293:248:1:o;5546:407::-;5748:2;5730:21;;;5787:2;5767:18;;;5760:30;5826:34;5821:2;5806:18;;5799:62;-1:-1:-1;;;5892:2:1;5877:18;;5870:41;5943:3;5928:19;;5546:407::o

Swarm Source

ipfs://62d89a7c260432ab478cab5de51d0a55b6af1cb480202966fc5385321d312617

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.