Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 25 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Spender | 13507177 | 1103 days ago | IN | 0 ETH | 0.01641763 | ||||
Add Selector | 13507163 | 1103 days ago | IN | 0 ETH | 0.02043118 | ||||
Add Selector | 13055872 | 1174 days ago | IN | 0 ETH | 0.00233372 | ||||
Add Selector | 13055872 | 1174 days ago | IN | 0 ETH | 0.00353197 | ||||
Add Spender With... | 13055861 | 1174 days ago | IN | 0 ETH | 0.0028982 | ||||
Add Selector | 12863848 | 1204 days ago | IN | 0 ETH | 0.00206112 | ||||
Add Selector | 12863845 | 1204 days ago | IN | 0 ETH | 0.00311977 | ||||
Accept Ownership | 12550551 | 1252 days ago | IN | 0 ETH | 0.00086857 | ||||
Transfer Ownersh... | 12550483 | 1252 days ago | IN | 0 ETH | 0.0021652 | ||||
Add Selectors An... | 12318024 | 1288 days ago | IN | 0 ETH | 0.02055488 | ||||
Add Selectors An... | 12298790 | 1291 days ago | IN | 0 ETH | 0.02055488 | ||||
Add Selectors An... | 12287448 | 1293 days ago | IN | 0 ETH | 0.17374405 | ||||
Add Selectors An... | 12287422 | 1293 days ago | IN | 0 ETH | 0.4277326 | ||||
Add Selectors An... | 12287358 | 1293 days ago | IN | 0 ETH | 0.57343635 | ||||
Add Selectors An... | 12287337 | 1293 days ago | IN | 0 ETH | 0.45601734 | ||||
Add Selectors An... | 12287194 | 1293 days ago | IN | 0 ETH | 0.06771051 | ||||
Add Selectors An... | 12287081 | 1293 days ago | IN | 0 ETH | 0.12365912 | ||||
Add Selectors An... | 12287064 | 1293 days ago | IN | 0 ETH | 0.30577056 | ||||
Add Spender With... | 12286092 | 1293 days ago | IN | 0 ETH | 0.01445215 | ||||
Add Selector | 12286089 | 1293 days ago | IN | 0 ETH | 0.01459251 | ||||
Add Spender | 12286068 | 1293 days ago | IN | 0 ETH | 0.01459033 | ||||
Add Selector | 12286057 | 1293 days ago | IN | 0 ETH | 0.01459251 | ||||
Add Selector | 12286045 | 1293 days ago | IN | 0 ETH | 0.00964076 | ||||
Add Selector | 12286040 | 1293 days ago | IN | 0 ETH | 0.01459251 | ||||
0x60a06040 | 12285586 | 1293 days ago | IN | 0 ETH | 0.02468079 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DharmaActionRegistry
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-21 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.3; interface IDharmaActionRegistry { function initialize() external; } /** * @title DharmaActionRegistry * @author cf * @notice This contract delegates all logic, to an implementation contract * whose address is held by the upgrade-beacon specified at initialization. */ contract DharmaActionRegistry { // Declare upgrade beacon address as a immutable (i.e. not in contract storage). // The value is set at deployment in the constructor. address immutable _UPGRADE_BEACON; /** * @notice In the constructor, set the upgrade-beacon address. * implementation set on the upgrade beacon, supplying initialization calldata * as a constructor argument. The deployment will revert and pass along the * revert reason in the event that this initialization delegatecall reverts. * @param upgradeBeaconAddress address to set as the upgrade-beacon that * holds the implementation contract */ constructor(address upgradeBeaconAddress) { // Ensure upgrade-beacon is specified require(upgradeBeaconAddress != address(0), "Must specify an upgrade-beacon address."); // Ensure that the upgrade-beacon contract has code via extcodesize. uint256 upgradeBeaconSize; assembly { upgradeBeaconSize := extcodesize(upgradeBeaconAddress) } require(upgradeBeaconSize > 0, "upgrade-beacon must have contract code."); _UPGRADE_BEACON = upgradeBeaconAddress; // retrieve implementation to initialize - this is the same logic as _implementation (bool ok, bytes memory returnData) = upgradeBeaconAddress.staticcall(""); // Revert and pass along revert message if call to upgrade beacon reverts. if(!ok) { assembly { returndatacopy(0, 0, returndatasize()) revert(0, returndatasize()) } } // Get the implementation to the address returned from the upgrade beacon. address implementation = abi.decode(returnData, (address)); // Delegatecall into the implementation, supplying initialization calldata. (ok, ) = implementation.delegatecall(abi.encodeWithSelector(IDharmaActionRegistry.initialize.selector)); // Revert and include revert data if delegatecall to implementation reverts. if (!ok) { assembly { returndatacopy(0, 0, returndatasize()) revert(0, returndatasize()) } } } /** * @notice In the fallback, delegate execution to the implementation set on * the upgrade beacon. */ fallback() external { // Delegate execution to implementation contract provided by upgrade beacon. _delegate(_implementation()); } /** * @notice Private view function to get the current implementation from the * upgrade beacon. This is accomplished via a staticcall to the beacon with no * data, and the beacon will return an abi-encoded implementation address. * @return implementation address of the implementation. */ function _implementation() private view returns (address implementation) { // Get the current implementation address from the upgrade beacon. (bool ok, bytes memory returnData) = _UPGRADE_BEACON.staticcall(""); // Revert and pass along revert message if call to upgrade beacon reverts. require(ok, string(returnData)); // Set the implementation to the address returned from the upgrade beacon. implementation = abi.decode(returnData, (address)); } /** * @notice Private function that delegates execution to an implementation * contract. This is a low level function that doesn't return to its internal * call site. It will return whatever is returned by the implementation to the * external caller, reverting and returning the revert data if implementation * reverts. * @param implementation address to delegate. */ function _delegate(address implementation) private { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Delegatecall to the implementation, supplying calldata and gas. // Out and outsize are set to zero - instead, use the return buffer. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data from the return buffer. returndatacopy(0, 0, returndatasize()) switch result // Delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"upgradeBeaconAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"nonpayable","type":"fallback"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161046f38038061046f83398101604081905261002f91610224565b6001600160a01b03811661009a5760405162461bcd60e51b815260206004820152602760248201527f4d757374207370656369667920616e20757067726164652d626561636f6e206160448201526632323932b9b99760c91b60648201526084015b60405180910390fd5b803b806100f95760405162461bcd60e51b815260206004820152602760248201527f757067726164652d626561636f6e206d757374206861766520636f6e747261636044820152663a1031b7b2329760c91b6064820152608401610091565b606082901b6001600160601b03191660805260405160009081906001600160a01b0385169082818181855afa9150503d8060008114610154576040519150601f19603f3d011682016040523d82523d6000602084013e610159565b606091505b50915091508161016d573d6000803e3d6000fd5b6000818060200190518101906101839190610224565b60408051600481526024810182526020810180516001600160e01b031663204a7f0760e21b17905290519192506001600160a01b038316916101c59190610247565b600060405180830381855af49150503d8060008114610200576040519150601f19603f3d011682016040523d82523d6000602084013e610205565b606091505b5050809350508261021a573d6000803e3d6000fd5b5050505050610298565b600060208284031215610235578081fd5b815161024081610280565b9392505050565b60008251815b81811015610267576020818601810151858301520161024d565b818111156102755782828501525b509190910192915050565b6001600160a01b038116811461029557600080fd5b50565b60805160601c6101ba6102b56000396000602a01526101ba6000f3fe608060405234801561001057600080fd5b5061002161001c610023565b6100df565b005b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316604051600060405180830381855afa9150503d8060008114610090576040519150601f19603f3d011682016040523d82523d6000602084013e610095565b606091505b50915091508181906100c35760405162461bcd60e51b81526004016100ba9190610131565b60405180910390fd5b50808060200190518101906100d89190610103565b9250505090565b3660008037600080366000845af43d6000803e8080156100fe573d6000f35b3d6000fd5b600060208284031215610114578081fd5b81516001600160a01b038116811461012a578182fd5b9392505050565b6000602080835283518082850152825b8181101561015d57858101830151858201604001528201610141565b8181111561016e5783604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220e71331354c871e1192fbf8b92d2d4cf056b8c76bf855141855bf2ae0c23b6fd264736f6c63430008030033000000000000000000000000d2ed0f115d750887d4e5c6c1e881d8bf70a1ec33
Deployed Bytecode
0x608060405234801561001057600080fd5b5061002161001c610023565b6100df565b005b60008060007f000000000000000000000000d2ed0f115d750887d4e5c6c1e881d8bf70a1ec336001600160a01b0316604051600060405180830381855afa9150503d8060008114610090576040519150601f19603f3d011682016040523d82523d6000602084013e610095565b606091505b50915091508181906100c35760405162461bcd60e51b81526004016100ba9190610131565b60405180910390fd5b50808060200190518101906100d89190610103565b9250505090565b3660008037600080366000845af43d6000803e8080156100fe573d6000f35b3d6000fd5b600060208284031215610114578081fd5b81516001600160a01b038116811461012a578182fd5b9392505050565b6000602080835283518082850152825b8181101561015d57858101830151858201604001528201610141565b8181111561016e5783604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220e71331354c871e1192fbf8b92d2d4cf056b8c76bf855141855bf2ae0c23b6fd264736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d2ed0f115d750887d4e5c6c1e881d8bf70a1ec33
-----Decoded View---------------
Arg [0] : upgradeBeaconAddress (address): 0xd2eD0F115D750887D4E5C6C1E881D8Bf70A1ec33
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d2ed0f115d750887d4e5c6c1e881d8bf70a1ec33
Deployed Bytecode Sourcemap
347:4389:0:-:0;;;;;;;;;;;;;2672:28;2682:17;:15;:17::i;:::-;2672:9;:28::i;:::-;347:4389;3025:484;3074:22;3178:7;3187:23;3214:15;-1:-1:-1;;;;;3214:26:0;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3177:67;;;;3341:2;3352:10;3333:31;;;;;-1:-1:-1;;;3333:31:0;;;;;;;;:::i;:::-;;;;;;;;;;3481:10;3470:33;;;;;;;;;;;;:::i;:::-;3453:50;;3025:484;;;:::o;3914:819::-;4214:14;4211:1;4208;4195:34;4457:1;4454;4438:14;4435:1;4419:14;4412:5;4399:60;4545:16;4542:1;4539;4524:38;4579:6;4636:38;;;;4702:16;4699:1;4692:27;4636:38;4655:16;4652:1;4645:27;14:318:1;;145:2;133:9;124:7;120:23;116:32;113:2;;;166:6;158;151:22;113:2;197:16;;-1:-1:-1;;;;;242:31:1;;232:42;;222:2;;293:6;285;278:22;222:2;321:5;103:229;-1:-1:-1;;;103:229:1:o;547:603::-;;688:2;717;706:9;699:21;749:6;743:13;792:6;787:2;776:9;772:18;765:34;817:4;830:140;844:6;841:1;838:13;830:140;;;939:14;;;935:23;;929:30;905:17;;;924:2;901:26;894:66;859:10;;830:140;;;988:6;985:1;982:13;979:2;;;1058:4;1053:2;1044:6;1033:9;1029:22;1025:31;1018:45;979:2;-1:-1:-1;1134:2:1;1113:15;-1:-1:-1;;1109:29:1;1094:45;;;;1141:2;1090:54;;668:482;-1:-1:-1;;;668:482:1:o
Swarm Source
ipfs://e71331354c871e1192fbf8b92d2d4cf056b8c76bf855141855bf2ae0c23b6fd2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.