More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 10516928 | 1625 days ago | IN | 0.10237124 ETH | 0.002415 |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x3fe92d88...D3EfC4938 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
DepositContract
Compiler Version
v0.5.7+commit.6da8b019
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-18 */ /* * Copyright 2019 Dolomite * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.5.7; pragma experimental ABIEncoderV2; interface IDepositContractRegistry { function operatorOf(address owner, address operator) external returns (bool); } /** * @title DepositContract * * Allows owner, parent (DepositContractRegistry) and the * current set version (presumably of Dolomite Direct) to * call contract functions and transfer Ether from the context * of this address (pass-though functions). * * Using CREATE-2 this address can be sent tokens/Ether before it * is created. */ contract DepositContract { address public owner; address public parent; address public version; constructor(address _owner) public { parent = msg.sender; owner = _owner; } /* * Contract can receive Ether */ function() external payable { } /* * Set the version that has access to this contracts * `transfer` and `perform` functions. Can only be set by * the parent (DepositContractRegistry) */ function setVersion(address newVersion) external { require(msg.sender == parent); version = newVersion; } /* * Will call a smart contract function from the context of this contract; * msg.sender on the receiving end will equal this contract's address. * * Only the owner, parent (DepositContractRegistry) and version are allowed to call * this function. When upgrading versions, make sure the code of the version being * upgraded to does not abuse this function. * * Because the msg.sender of the receiving end will equal this contract's address, * this function allows the caller to perform actions such as setting token approvals * and wrapping Ether (to WETH). * * If the signature is an empty string ("" where bytes(signature).length == 0) this method * will instead execute the transfer function, passing along the specified value */ function perform( address addr, string calldata signature, bytes calldata encodedParams, uint value ) external returns (bytes memory) { require( msg.sender == owner || msg.sender == parent || msg.sender == version || IDepositContractRegistry(parent).operatorOf(address(this), msg.sender) , "NOT_PERMISSIBLE"); if (bytes(signature).length == 0) { address(uint160(addr)).transfer(value); // convert address to address payable } else { bytes4 functionSelector = bytes4(keccak256(bytes(signature))); bytes memory payload = abi.encodePacked(functionSelector, encodedParams); (bool success, bytes memory returnData) = addr.call.value(value)(payload); require(success, "OPERATION_REVERTED"); return returnData; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"newVersion","type":"address"}],"name":"setVersion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"signature","type":"string"},{"name":"encodedParams","type":"bytes"},{"name":"value","type":"uint256"}],"name":"perform","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"parent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]
Deployed Bytecode
0x60806040526004361061005a5760003560e01c80635a5653a0116100435780635a5653a0146100a757806360f96a8f146100d45780638da5cb5b146100e95761005a565b80632a946df81461005c57806354fd4d501461007c575b005b34801561006857600080fd5b5061005a6100773660046104d1565b6100fe565b34801561008857600080fd5b50610091610169565b60405161009e919061070e565b60405180910390f35b3480156100b357600080fd5b506100c76100c23660046104f7565b610185565b60405161009e919061073d565b3480156100e057600080fd5b50610091610425565b3480156100f557600080fd5b50610091610441565b60015473ffffffffffffffffffffffffffffffffffffffff16331461012257600080fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff163314806101c5575060015473ffffffffffffffffffffffffffffffffffffffff1633145b806101e7575060025473ffffffffffffffffffffffffffffffffffffffff1633145b8061029757506001546040517f2b55879300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632b558793906102459030903390600401610722565b602060405180830381600087803b15801561025f57600080fd5b505af1158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102979190810190610590565b6102d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cd9061075e565b60405180910390fd5b846103245760405173ffffffffffffffffffffffffffffffffffffffff88169083156108fc029084906000818181858888f1935050505015801561031e573d6000803e3d6000fd5b5061041b565b600086866040516103369291906106f5565b604051809103902090506060818686604051602001610357939291906106cf565b6040516020818303038152906040529050600060608a73ffffffffffffffffffffffffffffffffffffffff1686846040516103929190610702565b60006040518083038185875af1925050503d80600081146103cf576040519150601f19603f3d011682016040523d82523d6000602084013e6103d4565b606091505b509150915081610410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cd9061074e565b935061041b92505050565b9695505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60006104698235610780565b9392505050565b600061046982516107c9565b60008083601f84011261048e57600080fd5b50813567ffffffffffffffff8111156104a657600080fd5b6020830191508360018202830111156104be57600080fd5b9250929050565b600061046982356107ce565b6000602082840312156104e357600080fd5b60006104ef848461045d565b949350505050565b6000806000806000806080878903121561051057600080fd5b600061051c898961045d565b965050602087013567ffffffffffffffff81111561053957600080fd5b61054589828a0161047c565b9550955050604087013567ffffffffffffffff81111561056457600080fd5b61057089828a0161047c565b9350935050606061058389828a016104c5565b9150509295509295509295565b6000602082840312156105a257600080fd5b60006104ef8484610470565b6105b7816107d1565b82525050565b6105b781610780565b6105b76105d28261078b565b6107ce565b60006105e3838561077b565b93506105f08385846107e2565b50500190565b60006106018261076e565b61060b8185610772565b935061061b8185602086016107ee565b6106248161081e565b9093019392505050565b60006106398261076e565b610643818561077b565b93506106538185602086016107ee565b9290920192915050565b600061066a601283610772565b7f4f5045524154494f4e5f52455645525445440000000000000000000000000000815260200192915050565b60006106a3600f83610772565b7f4e4f545f5045524d49535349424c450000000000000000000000000000000000815260200192915050565b60006106db82866105c6565b6004820191506106ec8284866105d7565b95945050505050565b60006104ef8284866105d7565b6000610469828461062e565b6020810161071c82846105bd565b92915050565b6040810161073082856105ae565b61046960208301846105ae565b6020808252810161046981846105f6565b6020808252810161071c8161065d565b6020808252810161071c81610696565b5190565b90815260200190565b919050565b600061071c826107b0565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b73ffffffffffffffffffffffffffffffffffffffff1690565b151590565b90565b600061071c82600061071c82610780565b82818337506000910152565b60005b838110156108095781810151838201526020016107f1565b83811115610818576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820482f9b0e9aa587d12eb78f3acc276833c54b24bf190087c42ad64951bcded7106c6578706572696d656e74616cf50037
Deployed Bytecode Sourcemap
1146:2240:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1607:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1607:118:0;;;;;;;;:::i;1227:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1227:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;2523:860;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2523:860:0;;;;;;;;:::i;:::-;;;;;;;;1201:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1201:21:0;;;:::i;1176:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1176:20:0;;;:::i;1607:118::-;1685:6;;;;1671:10;:20;1663:29;;;;;;1699:7;:20;;;;;;;;;;;;;;;1607:118::o;1227:22::-;;;;;;:::o;2523:860::-;2735:5;;2680:12;;2735:5;;2721:10;:19;;:51;;-1:-1:-1;2766:6:0;;;;2752:10;:20;2721:51;:84;;;-1:-1:-1;2798:7:0;;;;2784:10;:21;2721:84;:165;;;-1:-1:-1;2841:6:0;;2816:70;;;;;2841:6;;;;;2816:43;;:70;;2868:4;;2875:10;;2816:70;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2816:70:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2816:70:0;;;;;;;;;2705:207;;;;;;;;;;;;;;;;;;;;;;2925:28;2921:457;;2964:38;;:31;;;;:38;;;;;2996:5;;2964:38;;;;2996:5;2964:31;:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2964:38:0;2921:457;;;3063:23;3112:9;;3096:27;;;;;;;;;;;;;;;;3063:61;;3133:20;3173:16;3191:13;;3156:49;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3156::0;;;3133:72;;3223:12;3237:23;3264:4;:9;;3280:5;3287:7;3264:31;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3222:73:0;;;;3312:7;3304:38;;;;;;;;;;;;;;3360:10;-1:-1:-1;3353:17:0;;-1:-1:-1;;;3353:17:0;2921:457;2523:860;;;;;;;;:::o;1201:21::-;;;;;;:::o;1176:20::-;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:116;;205:36;233:6;227:13;205:36;;267:335;;;381:3;374:4;366:6;362:17;358:27;348:2;;399:1;396;389:12;348:2;-1:-1;419:20;;459:18;448:30;;445:2;;;491:1;488;481:12;445:2;525:4;517:6;513:17;501:29;;575:3;568;560:6;556:16;546:8;542:31;539:40;536:2;;;592:1;589;582:12;536:2;341:261;;;;;;969:118;;1036:46;1074:6;1061:20;1036:46;;1094:241;;1198:2;1186:9;1177:7;1173:23;1169:32;1166:2;;;1214:1;1211;1204:12;1166:2;1249:1;1266:53;1311:7;1291:9;1266:53;;;1256:63;1160:175;-1:-1;;;;1160:175;1342:867;;;;;;;1536:3;1524:9;1515:7;1511:23;1507:33;1504:2;;;1553:1;1550;1543:12;1504:2;1588:1;1605:53;1650:7;1630:9;1605:53;;;1595:63;;1567:97;1723:2;1712:9;1708:18;1695:32;1747:18;1739:6;1736:30;1733:2;;;1779:1;1776;1769:12;1733:2;1807:65;1864:7;1855:6;1844:9;1840:22;1807:65;;;1797:75;;;;1674:204;1937:2;1926:9;1922:18;1909:32;1961:18;1953:6;1950:30;1947:2;;;1993:1;1990;1983:12;1947:2;2021:64;2077:7;2068:6;2057:9;2053:22;2021:64;;;2011:74;;;;1888:203;2122:2;2140:53;2185:7;2176:6;2165:9;2161:22;2140:53;;;2130:63;;2101:98;1498:711;;;;;;;;;2216:257;;2328:2;2316:9;2307:7;2303:23;2299:32;2296:2;;;2344:1;2341;2334:12;2296:2;2379:1;2396:61;2449:7;2429:9;2396:61;;2480:142;2571:45;2610:5;2571:45;;;2566:3;2559:58;2553:69;;;2629:120;2712:31;2737:5;2712:31;;2756:155;2855:50;2874:30;2898:5;2874:30;;;2855:50;;2939:300;;3070:88;3151:6;3146:3;3070:88;;;3063:95;;3163:43;3199:6;3194:3;3187:5;3163:43;;;-1:-1;;3218:16;;3057:182;3246:343;;3356:38;3388:5;3356:38;;;3406:70;3469:6;3464:3;3406:70;;;3399:77;;3481:52;3526:6;3521:3;3514:4;3507:5;3503:16;3481:52;;;3554:29;3576:6;3554:29;;;3545:39;;;;3336:253;-1:-1;;;3336:253;3596:356;;3724:38;3756:5;3724:38;;;3774:88;3855:6;3850:3;3774:88;;;3767:95;;3867:52;3912:6;3907:3;3900:4;3893:5;3889:16;3867:52;;;3931:16;;;;;3704:248;-1:-1;;3704:248;3960:364;;4120:67;4184:2;4179:3;4120:67;;;4220:66;4200:87;;4315:2;4306:12;;4106:218;-1:-1;;4106:218;4333:364;;4493:67;4557:2;4552:3;4493:67;;;4593:66;4573:87;;4688:2;4679:12;;4479:218;-1:-1;;4479:218;4705:416;;4878:73;4947:3;4938:6;4878:73;;;4973:1;4968:3;4964:11;4957:18;;4993:103;5092:3;5083:6;5075;4993:103;;;4986:110;4866:255;-1:-1;;;;;4866:255;5128:282;;5282:103;5381:3;5372:6;5364;5282:103;;5417:262;;5561:93;5650:3;5641:6;5561:93;;5686:213;5804:2;5789:18;;5818:71;5793:9;5862:6;5818:71;;;5775:124;;;;;5906:356;6068:2;6053:18;;6082:79;6057:9;6134:6;6082:79;;;6172:80;6248:2;6237:9;6233:18;6224:6;6172:80;;6269:297;6405:2;6419:47;;;6390:18;;6480:76;6390:18;6542:6;6480:76;;6573:407;6764:2;6778:47;;;6749:18;;6839:131;6749:18;6839:131;;6987:407;7178:2;7192:47;;;7163:18;;7253:131;7163:18;7253:131;;7401:91;7475:12;;7459:33;7500:162;7602:19;;;7651:4;7642:14;;7595:67;7671:144;7806:3;7784:31;-1:-1;7784:31;7995:105;;8064:31;8089:5;8064:31;;8107:151;8186:66;8175:78;;8158:100;8265:128;8345:42;8334:54;;8317:76;8512:92;8585:13;8578:21;;8561:43;8746:79;8815:5;8798:27;8832:129;;8919:37;8950:5;8968:121;9047:37;9078:5;9047:37;;9219:145;9300:6;9295:3;9290;9277:30;-1:-1;9356:1;9338:16;;9331:27;9270:94;9373:268;9438:1;9445:101;9459:6;9456:1;9453:13;9445:101;;;9526:11;;;9520:18;9507:11;;;9500:39;9481:2;9474:10;9445:101;;;9561:6;9558:1;9555:13;9552:2;;;9626:1;9617:6;9612:3;9608:16;9601:27;9552:2;9422:219;;;;;9729:97;9817:2;9797:14;9813:7;9793:28;;9777:49
Swarm Source
bzzr://482f9b0e9aa587d12eb78f3acc276833c54b24bf190087c42ad64951bcded710
Loading...
Loading
Loading...
Loading
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.