Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60e06040 | 22370185 | 190 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
LockstakeUrn
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity Standard Json-Input format)
// 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);
}
}{
"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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.