ETH Price: $3,170.29 (-11.97%)

Contract

0x7b4cB30d13983BF81767531433CEbd4214908A99
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60e06040223701852025-04-28 21:16:47190 days ago1745875007  Contract Creation0 ETH
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LockstakeUrn

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion, GNU AGPLv3 license
// SPDX-FileCopyrightText: © 2023 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity ^0.8.21;

interface VatLike {
    function hope(address) external;
}

interface GemLike {
    function balanceOf(address) external view returns (uint256);
    function approve(address, uint256) external;
    function transfer(address, uint256) external;
}

interface StakingRewardsLike {
    function rewardsToken() external view returns (GemLike);
    function stake(uint256, uint16) external;
    function withdraw(uint256) external;
    function getReward() external;
}

contract LockstakeUrn {
    // --- immutables ---

    address immutable public engine;
    GemLike immutable public lssky;
    VatLike immutable public vat;

    // --- modifiers ---

    modifier isEngine {
        require(msg.sender == engine, "LockstakeUrn/not-engine");
        _;
    }

    // --- constructor & init ---

    constructor(address vat_, address lssky_) {
        engine = msg.sender;
        vat = VatLike(vat_);
        lssky = GemLike(lssky_);
    }

    function init() external isEngine {
        vat.hope(msg.sender);
        lssky.approve(msg.sender, type(uint256).max);
    }

    // --- staking functions ---

    function stake(address farm, uint256 wad, uint16 ref) external isEngine {
        lssky.approve(farm, wad);
        StakingRewardsLike(farm).stake(wad, ref);
    }

    function withdraw(address farm, uint256 wad) external isEngine {
        StakingRewardsLike(farm).withdraw(wad);
    }

    function getReward(address farm, address to) external isEngine returns (uint256 amt) {
        StakingRewardsLike(farm).getReward();
        GemLike rewardsToken = StakingRewardsLike(farm).rewardsToken();
        amt = rewardsToken.balanceOf(address(this));
        rewardsToken.transfer(to, amt);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"vat_","type":"address"},{"internalType":"address","name":"lssky_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"engine","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"farm","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"getReward","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lssky","outputs":[{"internalType":"contract GemLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"farm","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"},{"internalType":"uint16","name":"ref","type":"uint16"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"farm","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e060405234801561000f575f80fd5b5060405161088738038061088783398101604081905261002e91610064565b336080526001600160a01b0391821660c0521660a052610095565b80516001600160a01b038116811461005f575f80fd5b919050565b5f8060408385031215610075575f80fd5b61007e83610049565b915061008c60208401610049565b90509250929050565b60805160a05160c0516107996100ee5f395f81816083015261039001525f818160c70152818161040901526104da01525f818161010f0152818161016d0152818161033e0152818161047701526105a001526107995ff3fe608060405234801561000f575f80fd5b506004361061007a575f3560e01c8063c9d4623f11610058578063c9d4623f1461010a578063e1c7392a14610131578063e62d29df1461013b578063f3fef3a31461014e575f80fd5b806336569e771461007e5780636a6e9edf146100c25780636b091695146100e9575b5f80fd5b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b6100fc6100f736600461064d565b610161565b6040519081526020016100b9565b6100a57f000000000000000000000000000000000000000000000000000000000000000081565b610139610333565b005b610139610149366004610684565b61046c565b61013961015c3660046106c9565b610595565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101b35760405162461bcd60e51b81526004016101aa906106f3565b60405180910390fd5b826001600160a01b0316633d18b9126040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101eb575f80fd5b505af11580156101fd573d5f803e3d5ffd5b505050505f836001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610262919061072a565b6040516370a0823160e01b81523060048201529091506001600160a01b038216906370a0823190602401602060405180830381865afa1580156102a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102cb919061074c565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529193509082169063a9059cbb906044015f604051808303815f87803b158015610316575f80fd5b505af1158015610328573d5f803e3d5ffd5b505050505092915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461037b5760405162461bcd60e51b81526004016101aa906106f3565b6040516328ec8bf160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a3b22fc4906024015f604051808303815f87803b1580156103d9575f80fd5b505af11580156103eb573d5f803e3d5ffd5b505060405163095ea7b360e01b81523360048201525f1960248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063095ea7b391506044015f604051808303815f87803b158015610454575f80fd5b505af1158015610466573d5f803e3d5ffd5b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104b45760405162461bcd60e51b81526004016101aa906106f3565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015f604051808303815f87803b15801561051b575f80fd5b505af115801561052d573d5f803e3d5ffd5b50506040516342ea02c160e01b81526004810185905261ffff841660248201526001600160a01b03861692506342ea02c191506044015f604051808303815f87803b15801561057a575f80fd5b505af115801561058c573d5f803e3d5ffd5b50505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105dd5760405162461bcd60e51b81526004016101aa906106f3565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03831690632e1a7d4d906024015f604051808303815f87803b15801561061c575f80fd5b505af115801561062e573d5f803e3d5ffd5b505050505050565b6001600160a01b038116811461064a575f80fd5b50565b5f806040838503121561065e575f80fd5b823561066981610636565b9150602083013561067981610636565b809150509250929050565b5f805f60608486031215610696575f80fd5b83356106a181610636565b925060208401359150604084013561ffff811681146106be575f80fd5b809150509250925092565b5f80604083850312156106da575f80fd5b82356106e581610636565b946020939093013593505050565b60208082526017908201527f4c6f636b7374616b6555726e2f6e6f742d656e67696e65000000000000000000604082015260600190565b5f6020828403121561073a575f80fd5b815161074581610636565b9392505050565b5f6020828403121561075c575f80fd5b505191905056fea2646970667358221220f6faae402162a76ea9ec3da4620c6175e90af57556afc3a45d6883032be9fd8e64736f6c6343000815003300000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b000000000000000000000000f9a9cfd3229e985b91f99bc866d42938044ffa1c

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061007a575f3560e01c8063c9d4623f11610058578063c9d4623f1461010a578063e1c7392a14610131578063e62d29df1461013b578063f3fef3a31461014e575f80fd5b806336569e771461007e5780636a6e9edf146100c25780636b091695146100e9575b5f80fd5b6100a57f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a57f000000000000000000000000f9a9cfd3229e985b91f99bc866d42938044ffa1c81565b6100fc6100f736600461064d565b610161565b6040519081526020016100b9565b6100a57f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a381565b610139610333565b005b610139610149366004610684565b61046c565b61013961015c3660046106c9565b610595565b5f336001600160a01b037f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a316146101b35760405162461bcd60e51b81526004016101aa906106f3565b60405180910390fd5b826001600160a01b0316633d18b9126040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101eb575f80fd5b505af11580156101fd573d5f803e3d5ffd5b505050505f836001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610262919061072a565b6040516370a0823160e01b81523060048201529091506001600160a01b038216906370a0823190602401602060405180830381865afa1580156102a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102cb919061074c565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529193509082169063a9059cbb906044015f604051808303815f87803b158015610316575f80fd5b505af1158015610328573d5f803e3d5ffd5b505050505092915050565b336001600160a01b037f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3161461037b5760405162461bcd60e51b81526004016101aa906106f3565b6040516328ec8bf160e21b81523360048201527f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b03169063a3b22fc4906024015f604051808303815f87803b1580156103d9575f80fd5b505af11580156103eb573d5f803e3d5ffd5b505060405163095ea7b360e01b81523360048201525f1960248201527f000000000000000000000000f9a9cfd3229e985b91f99bc866d42938044ffa1c6001600160a01b0316925063095ea7b391506044015f604051808303815f87803b158015610454575f80fd5b505af1158015610466573d5f803e3d5ffd5b50505050565b336001600160a01b037f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a316146104b45760405162461bcd60e51b81526004016101aa906106f3565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018490527f000000000000000000000000f9a9cfd3229e985b91f99bc866d42938044ffa1c169063095ea7b3906044015f604051808303815f87803b15801561051b575f80fd5b505af115801561052d573d5f803e3d5ffd5b50506040516342ea02c160e01b81526004810185905261ffff841660248201526001600160a01b03861692506342ea02c191506044015f604051808303815f87803b15801561057a575f80fd5b505af115801561058c573d5f803e3d5ffd5b50505050505050565b336001600160a01b037f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a316146105dd5760405162461bcd60e51b81526004016101aa906106f3565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03831690632e1a7d4d906024015f604051808303815f87803b15801561061c575f80fd5b505af115801561062e573d5f803e3d5ffd5b505050505050565b6001600160a01b038116811461064a575f80fd5b50565b5f806040838503121561065e575f80fd5b823561066981610636565b9150602083013561067981610636565b809150509250929050565b5f805f60608486031215610696575f80fd5b83356106a181610636565b925060208401359150604084013561ffff811681146106be575f80fd5b809150509250925092565b5f80604083850312156106da575f80fd5b82356106e581610636565b946020939093013593505050565b60208082526017908201527f4c6f636b7374616b6555726e2f6e6f742d656e67696e65000000000000000000604082015260600190565b5f6020828403121561073a575f80fd5b815161074581610636565b9392505050565b5f6020828403121561075c575f80fd5b505191905056fea2646970667358221220f6faae402162a76ea9ec3da4620c6175e90af57556afc3a45d6883032be9fd8e64736f6c63430008150033

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

00000000000000000000000035D1b3F3D7966A1DFe207aa4514C12a259A0492B000000000000000000000000f9A9cfD3229E985B91F99Bc866d42938044FFa1C

-----Decoded View---------------
Arg [0] : vat_ (address): 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B
Arg [1] : lssky_ (address): 0xf9A9cfD3229E985B91F99Bc866d42938044FFa1C

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000035D1b3F3D7966A1DFe207aa4514C12a259A0492B
Arg [1] : 000000000000000000000000f9A9cfD3229E985B91F99Bc866d42938044FFa1C


Deployed Bytecode Sourcemap

1282:1241:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:28;;;;;;;;-1:-1:-1;;;;;191:32:1;;;173:51;;161:2;146:18;1410:28:0;;;;;;;;1374:30;;;;;2218:303;;;;;;:::i;:::-;;:::i;:::-;;;1132:25:1;;;1120:2;1105:18;2218:303:0;986:177:1;1337:31:0;;;;;1760:125;;;:::i;:::-;;1925:163;;;;;;:::i;:::-;;:::i;2094:118::-;;;;;;:::i;:::-;;:::i;2218:303::-;2290:11;1507:10;-1:-1:-1;;;;;1521:6:0;1507:20;;1499:56;;;;-1:-1:-1;;;1499:56:0;;;;;;;:::i;:::-;;;;;;;;;2332:4:::1;-1:-1:-1::0;;;;;2313:34:0::1;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2359:20;2401:4;-1:-1:-1::0;;;;;2382:37:0::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2437:37;::::0;-1:-1:-1;;;2437:37:0;;2468:4:::1;2437:37;::::0;::::1;173:51:1::0;2359:62:0;;-1:-1:-1;;;;;;2437:22:0;::::1;::::0;::::1;::::0;146:18:1;;2437:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2484:30;::::0;-1:-1:-1;;;2484:30:0;;-1:-1:-1;;;;;3187:32:1;;;2484:30:0::1;::::0;::::1;3169:51:1::0;3236:18;;;3229:34;;;2431:43:0;;-1:-1:-1;2484:21:0;;::::1;::::0;::::1;::::0;3142:18:1;;2484:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2303:218;2218:303:::0;;;;:::o;1760:125::-;1507:10;-1:-1:-1;;;;;1521:6:0;1507:20;;1499:56;;;;-1:-1:-1;;;1499:56:0;;;;;;;:::i;:::-;1804:20:::1;::::0;-1:-1:-1;;;1804:20:0;;1813:10:::1;1804:20;::::0;::::1;173:51:1::0;1804:3:0::1;-1:-1:-1::0;;;;;1804:8:0::1;::::0;::::1;::::0;146:18:1;;1804:20:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1834:44:0::1;::::0;-1:-1:-1;;;1834:44:0;;1848:10:::1;1834:44;::::0;::::1;3169:51:1::0;-1:-1:-1;;3236:18:1;;;3229:34;1834:5:0::1;-1:-1:-1::0;;;;;1834:13:0::1;::::0;-1:-1:-1;1834:13:0::1;::::0;-1:-1:-1;3142:18:1;;1834:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1760:125::o:0;1925:163::-;1507:10;-1:-1:-1;;;;;1521:6:0;1507:20;;1499:56;;;;-1:-1:-1;;;1499:56:0;;;;;;;:::i;:::-;2007:24:::1;::::0;-1:-1:-1;;;2007:24:0;;-1:-1:-1;;;;;3187:32:1;;;2007:24:0::1;::::0;::::1;3169:51:1::0;3236:18;;;3229:34;;;2007:5:0::1;:13;::::0;::::1;::::0;3142:18:1;;2007:24:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2041:40:0::1;::::0;-1:-1:-1;;;2041:40:0;;::::1;::::0;::::1;3446:25:1::0;;;3519:6;3507:19;;3487:18;;;3480:47;-1:-1:-1;;;;;2041:30:0;::::1;::::0;-1:-1:-1;2041:30:0::1;::::0;-1:-1:-1;3419:18:1;;2041:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1925:163:::0;;;:::o;2094:118::-;1507:10;-1:-1:-1;;;;;1521:6:0;1507:20;;1499:56;;;;-1:-1:-1;;;1499:56:0;;;;;;;:::i;:::-;2167:38:::1;::::0;-1:-1:-1;;;2167:38:0;;::::1;::::0;::::1;1132:25:1::0;;;-1:-1:-1;;;;;2167:33:0;::::1;::::0;::::1;::::0;1105:18:1;;2167:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2094:118:::0;;:::o;457:131:1:-;-1:-1:-1;;;;;532:31:1;;522:42;;512:70;;578:1;575;568:12;512:70;457:131;:::o;593:388::-;661:6;669;722:2;710:9;701:7;697:23;693:32;690:52;;;738:1;735;728:12;690:52;777:9;764:23;796:31;821:5;796:31;:::i;:::-;846:5;-1:-1:-1;903:2:1;888:18;;875:32;916:33;875:32;916:33;:::i;:::-;968:7;958:17;;;593:388;;;;;:::o;1376:483::-;1452:6;1460;1468;1521:2;1509:9;1500:7;1496:23;1492:32;1489:52;;;1537:1;1534;1527:12;1489:52;1576:9;1563:23;1595:31;1620:5;1595:31;:::i;:::-;1645:5;-1:-1:-1;1697:2:1;1682:18;;1669:32;;-1:-1:-1;1753:2:1;1738:18;;1725:32;1801:6;1788:20;;1776:33;;1766:61;;1823:1;1820;1813:12;1766:61;1846:7;1836:17;;;1376:483;;;;;:::o;1864:315::-;1932:6;1940;1993:2;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2048:9;2035:23;2067:31;2092:5;2067:31;:::i;:::-;2117:5;2169:2;2154:18;;;;2141:32;;-1:-1:-1;;;1864:315:1:o;2184:347::-;2386:2;2368:21;;;2425:2;2405:18;;;2398:30;2464:25;2459:2;2444:18;;2437:53;2522:2;2507:18;;2184:347::o;2536:265::-;2620:6;2673:2;2661:9;2652:7;2648:23;2644:32;2641:52;;;2689:1;2686;2679:12;2641:52;2721:9;2715:16;2740:31;2765:5;2740:31;:::i;:::-;2790:5;2536:265;-1:-1:-1;;;2536:265:1:o;2806:184::-;2876:6;2929:2;2917:9;2908:7;2904:23;2900:32;2897:52;;;2945:1;2942;2935:12;2897:52;-1:-1:-1;2968:16:1;;2806:184;-1:-1:-1;2806:184:1:o

Swarm Source

ipfs://f6faae402162a76ea9ec3da4620c6175e90af57556afc3a45d6883032be9fd8e

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.