Contract 0xdA53fF207966b3946facaC52dD22B130D507d276

Contract Overview

Balance:
0 Ether
Txn Hash
Method
Block
From
To
Value
0x8ad10addf8ba1f15d57adea278b9f3c027decd74f3599a1fe7b378293430bba60x60e0604096703162021-11-19 16:03:37315 days 6 hrs ago0x2a61d3ba5030ef471c74f612962c7367eca3a62d IN  Create: TopUpLegoProgram0 Ether0.000635241.00000001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x0206a532802f791b2e7f86e71f170891cf22fc00ab6610ea064a705ee6d6cfe9101389252022-02-09 11:32:46233 days 10 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xf15bbb92cc08b18d213ab9797f4f4c0c132b4980b93d4a428fe3349e62051995101339242022-02-08 14:41:32234 days 7 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x8e97697e8ac0344a49ca567c4f1668811d69a5c14f04b6232368adc307b69adc101339132022-02-08 14:38:47234 days 7 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x369f112cc9608b6a0889c670354c77d23c3cd5a84905a6dfb033b15a911ffd64101337212022-02-08 13:50:46234 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x6e7b95470b4bed70066cf71add7e223e9c0328e15725ac0405f64a9bd1ac6a8a101335922022-02-08 13:18:30234 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xd34a15d4e2ce845a30cda52ad885e754831b532f528bffe8a271988d64236a94100926012022-02-01 10:25:24241 days 11 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xe21257049e42dec13992438d326ba5544ece6abe274d4e5e867192d361a41a08100925972022-02-01 10:24:24241 days 11 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xd91917c81a0de7718e7456145df76992221619b5c20c143d279fa01dc49c9e06100925882022-02-01 10:22:09241 days 11 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x75c287dcd49f930294809434bedd6ecafe6640cbfe47462541c478e181f1ce5e100925842022-02-01 10:21:09241 days 11 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xb6c75e45f8442b8964f851500c4602eafa89176e75bf5497d009c6ffdaf1dd7d100703152022-01-28 13:30:51245 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x94a0c5bbd2f0e58d42a1e731952d85bacb62a1be1340ffe8b27836c712de3e2b100703032022-01-28 13:27:51245 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x6141ed62f40276fafe92d1ca239d27cc1fa771c17e910c4d668f70a0c4e15d3f100702892022-01-28 13:24:21245 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xf793fdba77d034f139149d1316fc235ade83ed064d67088593078fc4bd837855100059882022-01-17 9:18:13256 days 12 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x007e4ef375bcbfbc3c594a9e77a7b995d161c58955de6ddfc2ec301e26e6012e99780962022-01-12 10:44:57261 days 11 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x2901573e7174288921feea750fbb557b58df770a463e6d192b75d4cf5ee0f66199780612022-01-12 10:36:12261 days 11 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xb724c5b05f5d27e4d485d5f2c35103e9cbb9304d0623acb189552e3d141575d299719592022-01-11 9:09:50262 days 13 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x019e6617e58ccc5bf7bb9b477b46583a50c49bd1762333b606cf80a2c9a9903a99719482022-01-11 9:07:05262 days 13 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x574d8083e996c3445a34293c3512149618f7b366dabe391e386ce7c5053fc12799719422022-01-11 9:05:34262 days 13 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xce978da3c4bb9775b132a1c66b278429924c161e52bb5e83fc127009a21e4de398924162021-12-28 8:47:07276 days 13 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xfa77d20c29ad21a7c59d838cbdb1d8ab319e63b22ed605711d0fab9ed284f92598643282021-12-23 11:42:53281 days 10 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x542aad6b62f861ca5bce6fb8f2de188433d7cec39ce23d70663affb5d7c5545498637922021-12-23 9:28:50281 days 12 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xd468f5cd60d0b32c357ecda954179c25642cf5642351fb87af2843302c72392198475612021-12-20 13:49:46284 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x98de83a60cb98a8a673d787fdf95e7f42918b7486f799cf1f453509e4a54eaaf98472332021-12-20 12:27:44284 days 9 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0xcc03862e22b6c9bfa9d2f934abcf6f661518224563fc6e911da698835d44b1ab98187042021-12-15 13:32:09289 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
0x525430ca59403fa59c8d55a875e7582ad6a464e97e66f30722fba13aa296102298187042021-12-15 13:32:09289 days 8 hrs ago 0x661090cb830757b2d0cd53c49bf0d17a28992e5d 0xda53ff207966b3946facac52dd22b130d507d2760 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TopUpLegoProgram

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-11-19
*/

// SPDX-License-Identifier: GPL-3.0
// File: contracts/TrustedCaller.sol

// SPDX-FileCopyrightText: 2021 Lido <[email protected]>

pragma solidity ^0.8.4;

/// @author psirex
/// @notice A helper contract contains logic to validate that only a trusted caller has access to certain methods.
/// @dev Trusted caller set once on deployment and can't be changed.
contract TrustedCaller {
    string private constant ERROR_TRUSTED_CALLER_IS_ZERO_ADDRESS = "TRUSTED_CALLER_IS_ZERO_ADDRESS";
    string private constant ERROR_CALLER_IS_FORBIDDEN = "CALLER_IS_FORBIDDEN";

    address public immutable trustedCaller;

    constructor(address _trustedCaller) {
        require(_trustedCaller != address(0), ERROR_TRUSTED_CALLER_IS_ZERO_ADDRESS);
        trustedCaller = _trustedCaller;
    }

    modifier onlyTrustedCaller(address _caller) {
        require(_caller == trustedCaller, ERROR_CALLER_IS_FORBIDDEN);
        _;
    }
}

// File: contracts/interfaces/IFinance.sol

// SPDX-FileCopyrightText: 2021 Lido <[email protected]>

pragma solidity ^0.8.4;

/// @author psirex
/// @notice Interface of method from Aragon's Finance contract to create a new payment
interface IFinance {
    function newImmediatePayment(
        address _token,
        address _receiver,
        uint256 _amount,
        string memory _reference
    ) external;
}

// File: contracts/libraries/EVMScriptCreator.sol

// SPDX-FileCopyrightText: 2021 Lido <[email protected]>

pragma solidity ^0.8.4;

/// @author psirex
/// @notice Contains methods for convenient creation
/// of EVMScripts in EVMScript factories contracts
library EVMScriptCreator {
    // Id of default CallsScript Aragon's executor.
    bytes4 private constant SPEC_ID = hex"00000001";

    /// @notice Encodes one method call as EVMScript
    function createEVMScript(
        address _to,
        bytes4 _methodId,
        bytes memory _evmScriptCallData
    ) internal pure returns (bytes memory _commands) {
        return
            abi.encodePacked(
                SPEC_ID,
                _to,
                uint32(_evmScriptCallData.length) + 4,
                _methodId,
                _evmScriptCallData
            );
    }

    /// @notice Encodes multiple calls of the same method on one contract as EVMScript
    function createEVMScript(
        address _to,
        bytes4 _methodId,
        bytes[] memory _evmScriptCallData
    ) internal pure returns (bytes memory _evmScript) {
        for (uint256 i = 0; i < _evmScriptCallData.length; ++i) {
            _evmScript = bytes.concat(
                _evmScript,
                abi.encodePacked(
                    _to,
                    uint32(_evmScriptCallData[i].length) + 4,
                    _methodId,
                    _evmScriptCallData[i]
                )
            );
        }
        _evmScript = bytes.concat(SPEC_ID, _evmScript);
    }

    /// @notice Encodes multiple calls to different methods within the same contract as EVMScript
    function createEVMScript(
        address _to,
        bytes4[] memory _methodIds,
        bytes[] memory _evmScriptCallData
    ) internal pure returns (bytes memory _evmScript) {
        require(_methodIds.length == _evmScriptCallData.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < _methodIds.length; ++i) {
            _evmScript = bytes.concat(
                _evmScript,
                abi.encodePacked(
                    _to,
                    uint32(_evmScriptCallData[i].length) + 4,
                    _methodIds[i],
                    _evmScriptCallData[i]
                )
            );
        }
        _evmScript = bytes.concat(SPEC_ID, _evmScript);
    }

    /// @notice Encodes multiple calls to different contracts as EVMScript
    function createEVMScript(
        address[] memory _to,
        bytes4[] memory _methodIds,
        bytes[] memory _evmScriptCallData
    ) internal pure returns (bytes memory _evmScript) {
        require(_to.length == _methodIds.length, "LENGTH_MISMATCH");
        require(_to.length == _evmScriptCallData.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < _to.length; ++i) {
            _evmScript = bytes.concat(
                _evmScript,
                abi.encodePacked(
                    _to[i],
                    uint32(_evmScriptCallData[i].length) + 4,
                    _methodIds[i],
                    _evmScriptCallData[i]
                )
            );
        }
        _evmScript = bytes.concat(SPEC_ID, _evmScript);
    }
}

// File: contracts/interfaces/IEVMScriptFactory.sol

// SPDX-FileCopyrightText: 2021 Lido <[email protected]>

pragma solidity ^0.8.4;

/// @author psirex
/// @notice Interface which every EVMScript factory used in EasyTrack contract has to implement
interface IEVMScriptFactory {
    function createEVMScript(address _creator, bytes memory _evmScriptCallData)
        external
        returns (bytes memory);
}

// File: contracts/EVMScriptFactories/TopUpLegoProgram.sol

// SPDX-FileCopyrightText: 2021 Lido <[email protected]>

pragma solidity ^0.8.4;





/// @author psirex
/// @notice Creates EVMScript to top up the address of the LEGO program
contract TopUpLegoProgram is TrustedCaller, IEVMScriptFactory {
    // -------------
    // ERRORS
    // -------------
    string private constant ERROR_LENGTH_MISMATCH = "LENGTH_MISMATCH";
    string private constant ERROR_EMPTY_DATA = "EMPTY_DATA";
    string private constant ERROR_ZERO_AMOUNT = "ZERO_AMOUNT";

    // -------------
    // VARIABLES
    // -------------

    /// @notice Address of Aragon's Finance contract
    IFinance public immutable finance;

    /// @notice Address of LEGO program
    address public immutable legoProgram;

    // -------------
    // CONSTRUCTOR
    // -------------

    constructor(
        address _trustedCaller,
        IFinance _finance,
        address _legoProgram
    ) TrustedCaller(_trustedCaller) {
        finance = _finance;
        legoProgram = _legoProgram;
    }

    // -------------
    // EXTERNAL METHODS
    // -------------

    /// @notice Creates EVMScript to top up the address of the LEGO program
    /// @param _creator Address who creates EVMScript
    /// @param _evmScriptCallData Encoded tuple: (address[] _rewardTokens, uint256[] _amounts) where
    /// _rewardTokens - addresses of ERC20 tokens (zero address for ETH) to transfer
    /// _amounts - corresponding amount of tokens to transfer
    function createEVMScript(address _creator, bytes memory _evmScriptCallData)
        external
        view
        override
        onlyTrustedCaller(_creator)
        returns (bytes memory)
    {
        (address[] memory rewardTokens, uint256[] memory amounts) =
            _decodeEVMScriptCallData(_evmScriptCallData);
        _validateEVMScriptCallData(rewardTokens, amounts);

        bytes[] memory paymentsCallData = new bytes[](rewardTokens.length);
        for (uint256 i = 0; i < rewardTokens.length; ++i) {
            paymentsCallData[i] = abi.encode(
                rewardTokens[i],
                legoProgram,
                amounts[i],
                "Lego Program Transfer"
            );
        }

        return
            EVMScriptCreator.createEVMScript(
                address(finance),
                finance.newImmediatePayment.selector,
                paymentsCallData
            );
    }

    /// @notice Decodes call data used by createEVMScript method
    /// @param _evmScriptCallData Encoded tuple: (address[] _rewardTokens, uint256[] _amounts) where
    /// _rewardTokens - addresses of ERC20 tokens (zero address for ETH) to transfer
    /// _amounts - corresponding amount of tokens to transfer
    /// @return _rewardTokens Addresses of ERC20 tokens (zero address for ETH) to transfer
    /// @return _amounts Amounts of tokens to transfer
    function decodeEVMScriptCallData(bytes memory _evmScriptCallData)
        external
        pure
        returns (address[] memory _rewardTokens, uint256[] memory _amounts)
    {
        return _decodeEVMScriptCallData(_evmScriptCallData);
    }

    // ------------------
    // PRIVATE METHODS
    // ------------------

    function _validateEVMScriptCallData(address[] memory _rewardTokens, uint256[] memory _amounts)
        private
        pure
    {
        require(_rewardTokens.length == _amounts.length, ERROR_LENGTH_MISMATCH);
        require(_rewardTokens.length > 0, ERROR_EMPTY_DATA);
        for (uint256 i = 0; i < _rewardTokens.length; ++i) {
            require(_amounts[i] > 0, ERROR_ZERO_AMOUNT);
        }
    }

    function _decodeEVMScriptCallData(bytes memory _evmScriptCallData)
        private
        pure
        returns (address[] memory _rewardTokens, uint256[] memory _amounts)
    {
        return abi.decode(_evmScriptCallData, (address[], uint256[]));
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_trustedCaller","type":"address"},{"internalType":"contract IFinance","name":"_finance","type":"address"},{"internalType":"address","name":"_legoProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_creator","type":"address"},{"internalType":"bytes","name":"_evmScriptCallData","type":"bytes"}],"name":"createEVMScript","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_evmScriptCallData","type":"bytes"}],"name":"decodeEVMScriptCallData","outputs":[{"internalType":"address[]","name":"_rewardTokens","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"finance","outputs":[{"internalType":"contract IFinance","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"legoProgram","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trustedCaller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60e060405234801561001057600080fd5b50604051610c2b380380610c2b83398101604081905261002f916100bc565b60408051808201909152601e81527f545255535445445f43414c4c45525f49535f5a45524f5f414444524553530000602082015283906001600160a01b0382166100955760405162461bcd60e51b815260040161008c9190610109565b60405180910390fd5b506001600160601b0319606091821b811660805292811b831660a0521b1660c05250610176565b6000806000606084860312156100d157600080fd5b83516100dc8161015e565b60208501519093506100ed8161015e565b60408501519092506100fe8161015e565b809150509250925092565b600060208083528351808285015260005b818110156101365785810183015185820160400152820161011a565b81811115610148576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461017357600080fd5b50565b60805160601c60a05160601c60c05160601c610a6b6101c06000396000818160cc015261026401526000818160a5015261033e015260008181606101526101490152610a6b6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063268f07601461005c578063313b7b19146100a057806342192d1a146100c7578063ecf7c690146100ee578063fea21c9c1461010f575b600080fd5b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6100837f000000000000000000000000000000000000000000000000000000000000000081565b6101016100fc36600461076a565b61012f565b60405161009792919061088b565b61012261011d366004610658565b610144565b6040516100979190610902565b60608061013b83610376565b91509150915091565b6060827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146040518060400160405280601381526020017221a0a62622a92fa4a9afa327a92124a22222a760691b815250906101cf5760405162461bcd60e51b81526004016101c69190610902565b60405180910390fd5b506000806101dc85610376565b915091506101ea828261038d565b6000825167ffffffffffffffff81111561020657610206610a07565b60405190808252806020026020018201604052801561023957816020015b60608152602001906001900390816102245790505b50905060005b83518110156103385783818151811061025a5761025a6109f1565b60200260200101517f0000000000000000000000000000000000000000000000000000000000000000848381518110610295576102956109f1565b60200260200101516040516020016102fb939291906001600160a01b0393841681529190921660208201526040810191909152608060608201819052601590820152742632b3b790283937b3b930b6902a3930b739b332b960591b60a082015260c00190565b60405160208183030381529060405282828151811061031c5761031c6109f1565b602002602001018190525080610331906109c0565b905061023f565b5061036b7f0000000000000000000000000000000000000000000000000000000000000000637b1b242360e11b836104a1565b979650505050505050565b6060808280602001905181019061013b91906106a8565b80518251146040518060400160405280600f81526020016e0988a9c8ea890be9a92a69a82a8869608b1b815250906103d85760405162461bcd60e51b81526004016101c69190610902565b5060008251116040518060400160405280600a815260200169454d5054595f4441544160b01b8152509061041f5760405162461bcd60e51b81526004016101c69190610902565b5060005b825181101561049c576000828281518110610440576104406109f1565b6020026020010151116040518060400160405280600b81526020016a16915493d7d05353d5539560aa1b8152509061048b5760405162461bcd60e51b81526004016101c69190610902565b50610495816109c0565b9050610423565b505050565b606060005b82518110156105465781858483815181106104c3576104c36109f1565b60200260200101515160046104d89190610971565b868685815181106104eb576104eb6109f1565b602002602001015160405160200161050694939291906107d3565b60408051601f1981840301815290829052610524929160200161085c565b60405160208183030381529060405291508061053f906109c0565b90506104a6565b50600160e01b8160405160200161055e92919061082b565b60405160208183030381529060405290509392505050565b600082601f83011261058757600080fd5b8151602061059c6105978361094d565b61091c565b80838252828201915082860187848660051b89010111156105bc57600080fd5b60005b858110156105db578151845292840192908401906001016105bf565b5090979650505050505050565b600082601f8301126105f957600080fd5b813567ffffffffffffffff81111561061357610613610a07565b610626601f8201601f191660200161091c565b81815284602083860101111561063b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561066b57600080fd5b823561067681610a1d565b9150602083013567ffffffffffffffff81111561069257600080fd5b61069e858286016105e8565b9150509250929050565b600080604083850312156106bb57600080fd5b825167ffffffffffffffff808211156106d357600080fd5b818501915085601f8301126106e757600080fd5b815160206106f76105978361094d565b8083825282820191508286018a848660051b890101111561071757600080fd5b600096505b8487101561074357805161072f81610a1d565b83526001969096019591830191830161071c565b509188015191965090935050508082111561075d57600080fd5b5061069e85828601610576565b60006020828403121561077c57600080fd5b813567ffffffffffffffff81111561079357600080fd5b61079f848285016105e8565b949350505050565b600081518084526107bf816020860160208601610990565b601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606086901b1681526001600160e01b031960e085901b8116601483015283166018820152815160009061081b81601c850160208701610990565b91909101601c0195945050505050565b6001600160e01b031983168152815160009061084e816004850160208701610990565b919091016004019392505050565b6000835161086e818460208801610990565b835190830190610882818360208801610990565b01949350505050565b604080825283519082018190526000906020906060840190828701845b828110156108cd5781516001600160a01b0316845292840192908401906001016108a8565b5050508381038285015284518082528583019183019060005b818110156105db578351835292840192918401916001016108e6565b60208152600061091560208301846107a7565b9392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561094557610945610a07565b604052919050565b600067ffffffffffffffff82111561096757610967610a07565b5060051b60200190565b600063ffffffff808316818516808303821115610882576108826109db565b60005b838110156109ab578181015183820152602001610993565b838111156109ba576000848401525b50505050565b60006000198214156109d4576109d46109db565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a3257600080fd5b5056fea264697066735822122042e9c69e18c88cb68f677666a0c2fa0c1dda4270f536fc313b9c71e97b2c1e9c64736f6c63430008060033000000000000000000000000b9b953bb58411d7932d76a2493e309c88f9f2e1300000000000000000000000072cd2b30020fb28de0dfa64d930a183eb732cf46000000000000000000000000b9b953bb58411d7932d76a2493e309c88f9f2e13

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

000000000000000000000000b9b953bb58411d7932d76a2493e309c88f9f2e1300000000000000000000000072cd2b30020fb28de0dfa64d930a183eb732cf46000000000000000000000000b9b953bb58411d7932d76a2493e309c88f9f2e13

-----Decoded View---------------
Arg [0] : _trustedCaller (address): 0xB9b953Bb58411D7932D76A2493e309c88F9f2e13
Arg [1] : _finance (address): 0x72cd2B30020FB28DE0DFa64d930A183eb732Cf46
Arg [2] : _legoProgram (address): 0xB9b953Bb58411D7932D76A2493e309c88F9f2e13

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b9b953bb58411d7932d76a2493e309c88f9f2e13
Arg [1] : 00000000000000000000000072cd2b30020fb28de0dfa64d930a183eb732cf46
Arg [2] : 000000000000000000000000b9b953bb58411d7932d76a2493e309c88f9f2e13


Deployed ByteCode Sourcemap

5312:3762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;579:38;;;;;;;;-1:-1:-1;;;;;5100:32:1;;;5082:51;;5070:2;5055:18;579:38:0;;;;;;;;5758:33;;;;;5841:36;;;;;8051:250;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;6629:949::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8051:250::-;8167:30;8199:25;8249:44;8274:18;8249:24;:44::i;:::-;8242:51;;;;8051:250;;;:::o;6629:949::-;6810:12;6782:8;879:13;-1:-1:-1;;;;;868:24:0;:7;-1:-1:-1;;;;;868:24:0;;894:25;;;;;;;;;;;;;-1:-1:-1;;;894:25:0;;;860:60;;;;;-1:-1:-1;;;860:60:0;;;;;;;;:::i;:::-;;;;;;;;;;6841:29:::1;6872:24:::0;6913:44:::1;6938:18;6913:24;:44::i;:::-;6840:117;;;;6968:49;6995:12;7009:7;6968:26;:49::i;:::-;7030:31;7076:12;:19;7064:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7030:66;;7112:9;7107:259;7131:12;:19;7127:1;:23;7107:259;;;7223:12;7236:1;7223:15;;;;;;;;:::i;:::-;;;;;;;7257:11;7287:7;7295:1;7287:10;;;;;;;;:::i;:::-;;;;;;;7194:160;;;;;;;;;-1:-1:-1::0;;;;;5468:15:1;;;5450:34;;5520:15;;;;5515:2;5500:18;;5493:43;5567:2;5552:18;;5545:34;;;;5615:3;5610:2;5595:18;;5588:31;;;5656:2;5635:19;;;5628:31;-1:-1:-1;;;5430:3:1;5675:19;;5668:52;5752:3;5737:19;;5402:360;7194:160:0::1;;;;;;;;;;;;;7172:16;7189:1;7172:19;;;;;;;;:::i;:::-;;;;;;:182;;;;7152:3;;;;:::i;:::-;;;7107:259;;;-1:-1:-1::0;7398:172:0::1;7457:7;-1:-1:-1::0;;;7539:16:0;7398:32:::1;:172::i;:::-;7378:192:::0;6629:949;-1:-1:-1;;;;;;;6629:949:0:o;8811:260::-;8927:30;8959:25;9020:18;9009:54;;;;;;;;;;;;:::i;8389:414::-;8563:8;:15;8539:13;:20;:39;8580:21;;;;;;;;;;;;;-1:-1:-1;;;8580:21:0;;;8531:71;;;;;-1:-1:-1;;;8531:71:0;;;;;;;;:::i;:::-;;8644:1;8621:13;:20;:24;8647:16;;;;;;;;;;;;;-1:-1:-1;;;8647:16:0;;;8613:51;;;;;-1:-1:-1;;;8613:51:0;;;;;;;;:::i;:::-;;8680:9;8675:121;8699:13;:20;8695:1;:24;8675:121;;;8763:1;8749:8;8758:1;8749:11;;;;;;;;:::i;:::-;;;;;;;:15;8766:17;;;;;;;;;;;;;-1:-1:-1;;;8766:17:0;;;8741:43;;;;;-1:-1:-1;;;8741:43:0;;;;;;;;:::i;:::-;-1:-1:-1;8721:3:0;;;:::i;:::-;;;8675:121;;;;8389:414;;:::o;2336:619::-;2484:23;2525:9;2520:371;2544:18;:25;2540:1;:29;2520:371;;;2635:10;2703:3;2736:18;2755:1;2736:21;;;;;;;;:::i;:::-;;;;;;;:28;2768:1;2729:40;;;;:::i;:::-;2792:9;2824:18;2843:1;2824:21;;;;;;;;:::i;:::-;;;;;;;2664:200;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2664:200:0;;;;;;;;;;2604:275;;;2664:200;2604:275;;:::i;:::-;;;;;;;;;;;;;2591:288;;2571:3;;;;:::i;:::-;;;2520:371;;;;-1:-1:-1;;;2936:10:0;2914:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2901:46;;2336:619;;;;;:::o;14:670:1:-;79:5;132:3;125:4;117:6;113:17;109:27;99:2;;150:1;147;140:12;99:2;179:6;173:13;205:4;229:60;245:43;285:2;245:43;:::i;:::-;229:60;:::i;:::-;311:3;335:2;330:3;323:15;363:2;358:3;354:12;347:19;;398:2;390:6;386:15;450:3;445:2;439;436:1;432:10;424:6;420:23;416:32;413:41;410:2;;;467:1;464;457:12;410:2;489:1;499:156;513:2;510:1;507:9;499:156;;;570:10;;558:23;;601:12;;;;633;;;;531:1;524:9;499:156;;;-1:-1:-1;673:5:1;;89:595;-1:-1:-1;;;;;;;89:595:1:o;689:530::-;731:5;784:3;777:4;769:6;765:17;761:27;751:2;;802:1;799;792:12;751:2;838:6;825:20;864:18;860:2;857:26;854:2;;;886:18;;:::i;:::-;930:55;973:2;954:13;;-1:-1:-1;;950:27:1;979:4;946:38;930:55;:::i;:::-;1010:2;1001:7;994:19;1056:3;1049:4;1044:2;1036:6;1032:15;1028:26;1025:35;1022:2;;;1073:1;1070;1063:12;1022:2;1138;1131:4;1123:6;1119:17;1112:4;1103:7;1099:18;1086:55;1186:1;1161:16;;;1179:4;1157:27;1150:38;;;;1165:7;741:478;-1:-1:-1;;;741:478:1:o;1224:455::-;1301:6;1309;1362:2;1350:9;1341:7;1337:23;1333:32;1330:2;;;1378:1;1375;1368:12;1330:2;1417:9;1404:23;1436:31;1461:5;1436:31;:::i;:::-;1486:5;-1:-1:-1;1542:2:1;1527:18;;1514:32;1569:18;1558:30;;1555:2;;;1601:1;1598;1591:12;1555:2;1624:49;1665:7;1656:6;1645:9;1641:22;1624:49;:::i;:::-;1614:59;;;1320:359;;;;;:::o;1684:1220::-;1813:6;1821;1874:2;1862:9;1853:7;1849:23;1845:32;1842:2;;;1890:1;1887;1880:12;1842:2;1923:9;1917:16;1952:18;1993:2;1985:6;1982:14;1979:2;;;2009:1;2006;1999:12;1979:2;2047:6;2036:9;2032:22;2022:32;;2092:7;2085:4;2081:2;2077:13;2073:27;2063:2;;2114:1;2111;2104:12;2063:2;2143;2137:9;2165:4;2189:60;2205:43;2245:2;2205:43;:::i;2189:60::-;2271:3;2295:2;2290:3;2283:15;2323:2;2318:3;2314:12;2307:19;;2354:2;2350;2346:11;2402:7;2397:2;2391;2388:1;2384:10;2380:2;2376:19;2372:28;2369:41;2366:2;;;2423:1;2420;2413:12;2366:2;2445:1;2436:10;;2455:231;2469:2;2466:1;2463:9;2455:231;;;2533:3;2527:10;2550:31;2575:5;2550:31;:::i;:::-;2594:18;;2487:1;2480:9;;;;;2632:12;;;;2664;;2455:231;;;-1:-1:-1;2741:18:1;;;2735:25;2705:5;;-1:-1:-1;2735:25:1;;-1:-1:-1;;;2772:16:1;;;2769:2;;;2801:1;2798;2791:12;2769:2;;2824:74;2890:7;2879:8;2868:9;2864:24;2824:74;:::i;2909:320::-;2977:6;3030:2;3018:9;3009:7;3005:23;3001:32;2998:2;;;3046:1;3043;3036:12;2998:2;3086:9;3073:23;3119:18;3111:6;3108:30;3105:2;;;3151:1;3148;3141:12;3105:2;3174:49;3215:7;3206:6;3195:9;3191:22;3174:49;:::i;:::-;3164:59;2988:241;-1:-1:-1;;;;2988:241:1:o;3234:257::-;3275:3;3313:5;3307:12;3340:6;3335:3;3328:19;3356:63;3412:6;3405:4;3400:3;3396:14;3389:4;3382:5;3378:16;3356:63;:::i;:::-;3473:2;3452:15;-1:-1:-1;;3448:29:1;3439:39;;;;3480:4;3435:50;;3283:208;-1:-1:-1;;3283:208:1:o;3496:588::-;-1:-1:-1;;3743:2:1;3739:15;;;3735:53;3723:66;;-1:-1:-1;;;;;;3812:3:1;3862:16;;;3858:25;;3853:2;3844:12;;3837:47;3914:15;;3909:2;3900:12;;3893:37;3953:13;;-1:-1:-1;;3975:62:1;3953:13;4025:2;4016:12;;4009:4;3997:17;;3975:62;:::i;:::-;4057:16;;;;4075:2;4053:25;;3713:371;-1:-1:-1;;;;;3713:371:1:o;4089:::-;-1:-1:-1;;;;;;4274:33:1;;4262:46;;4331:13;;4244:3;;4353:61;4331:13;4403:1;4394:11;;4387:4;4375:17;;4353:61;:::i;:::-;4434:16;;;;4452:1;4430:24;;4252:208;-1:-1:-1;;;4252:208:1:o;4465:466::-;4640:3;4678:6;4672:13;4694:53;4740:6;4735:3;4728:4;4720:6;4716:17;4694:53;:::i;:::-;4810:13;;4769:16;;;;4832:57;4810:13;4769:16;4866:4;4854:17;;4832:57;:::i;:::-;4905:20;;4648:283;-1:-1:-1;;;;4648:283:1:o;5767:1178::-;6035:2;6047:21;;;6117:13;;6020:18;;;6139:22;;;5987:4;;6214;;6192:2;6177:18;;;6241:15;;;5987:4;6284:195;6298:6;6295:1;6292:13;6284:195;;;6363:13;;-1:-1:-1;;;;;6359:39:1;6347:52;;6419:12;;;;6454:15;;;;6395:1;6313:9;6284:195;;;-1:-1:-1;;;6515:19:1;;;6495:18;;;6488:47;6585:13;;6607:21;;;6683:15;;;;6646:12;;;6718:1;6728:189;6744:8;6739:3;6736:17;6728:189;;;6813:15;;6799:30;;6890:17;;;;6851:14;;;;6772:1;6763:11;6728:189;;6950:217;7097:2;7086:9;7079:21;7060:4;7117:44;7157:2;7146:9;7142:18;7134:6;7117:44;:::i;:::-;7109:52;7069:98;-1:-1:-1;;;7069:98:1:o;7619:275::-;7690:2;7684:9;7755:2;7736:13;;-1:-1:-1;;7732:27:1;7720:40;;7790:18;7775:34;;7811:22;;;7772:62;7769:2;;;7837:18;;:::i;:::-;7873:2;7866:22;7664:230;;-1:-1:-1;7664:230:1:o;7899:183::-;7959:4;7992:18;7984:6;7981:30;7978:2;;;8014:18;;:::i;:::-;-1:-1:-1;8059:1:1;8055:14;8071:4;8051:25;;7968:114::o;8087:228::-;8126:3;8154:10;8191:2;8188:1;8184:10;8221:2;8218:1;8214:10;8252:3;8248:2;8244:12;8239:3;8236:21;8233:2;;;8260:18;;:::i;8320:258::-;8392:1;8402:113;8416:6;8413:1;8410:13;8402:113;;;8492:11;;;8486:18;8473:11;;;8466:39;8438:2;8431:10;8402:113;;;8533:6;8530:1;8527:13;8524:2;;;8568:1;8559:6;8554:3;8550:16;8543:27;8524:2;;8373:205;;;:::o;8583:135::-;8622:3;-1:-1:-1;;8643:17:1;;8640:2;;;8663:18;;:::i;:::-;-1:-1:-1;8710:1:1;8699:13;;8630:88::o;8723:127::-;8784:10;8779:3;8775:20;8772:1;8765:31;8815:4;8812:1;8805:15;8839:4;8836:1;8829:15;8855:127;8916:10;8911:3;8907:20;8904:1;8897:31;8947:4;8944:1;8937:15;8971:4;8968:1;8961:15;8987:127;9048:10;9043:3;9039:20;9036:1;9029:31;9079:4;9076:1;9069:15;9103:4;9100:1;9093:15;9119:131;-1:-1:-1;;;;;9194:31:1;;9184:42;;9174:2;;9240:1;9237;9230:12;9174:2;9164:86;:::o

Swarm Source

ipfs://42e9c69e18c88cb68f677666a0c2fa0c1dda4270f536fc313b9c71e97b2c1e9c
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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.