Contract Overview
Balance:
0 MATIC
Token:
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 18 internal transactions
[ Download CSV Export ]
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x548f9925B37580fB1fC8C8025D4A7799bF75Aaf5
Contract Name:
WalletProxy
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 99999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LBUSL-1.1-or-later // Taken from: https://github.com/gnosis/safe-contracts/blob/development/contracts/proxies/GnosisSafeProxy.sol pragma solidity >=0.7.0; /// @title IWalletProxyImplementation - Helper interface to access masterCopy of the Proxy on-chain /// @author Richard Meissner - <[email protected]> interface IWalletProxyImplementation { function masterCopy() external view returns (address); function walletFactory() external view returns (address); function version() external view returns (uint256); function upgradeMasterCopy(address newMasterCopy) external; function initialize( address resolver_, string[2] calldata domain_, address owner_, address feeRecipient, uint256 feeAmount ) external; } /// @title WalletProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. /// @author Stefan George - <[email protected]> /// @author Richard Meissner - <[email protected]> contract WalletProxy { // masterCopy and walletFactory always need to be the first declared variables, to ensure that they are at the same location in the contracts to which calls are delegated. // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt` address internal masterCopy; address internal walletFactory; /// @dev Constructor function sets the address of walletFactory contract constructor() { walletFactory = msg.sender; } /// @param _masterCopy Master copy address. function initializeFromWalletFactory(address _masterCopy) external { require(msg.sender == walletFactory, "WalletProxy: Forbidden"); require( _masterCopy != address(0), "Invalid master copy address provided" ); masterCopy = _masterCopy; } /// @dev Fallback function forwards all transactions and returns all received return data. fallback() external payable { assembly { let _masterCopy := and( sload(0), 0xffffffffffffffffffffffffffffffffffffffff ) // 0xa619486e == keccak("masterCopy()"). The value is right padded to 32-bytes with 0s if eq( calldataload(0), 0xa619486e00000000000000000000000000000000000000000000000000000000 ) { mstore(0, _masterCopy) return(0, 0x20) } calldatacopy(0, 0, calldatasize()) let success := delegatecall( gas(), _masterCopy, 0, calldatasize(), 0, 0 ) returndatacopy(0, 0, returndatasize()) if eq(success, 0) { revert(0, returndatasize()) } return(0, returndatasize()) } } }
{ "optimizer": { "enabled": true, "runs": 99999999 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_masterCopy","type":"address"}],"name":"initializeFromWalletFactory","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600180546001600160a01b0319163317905561028a806100326000396000f3fe60806040526004361061001e5760003560e01c806334b6748614610088575b600073ffffffffffffffffffffffffffffffffffffffff8154167fa619486e000000000000000000000000000000000000000000000000000000008235141561006957808252602082f35b3682833781823684845af490503d82833e80610083573d82fd5b503d81f35b34801561009457600080fd5b506100a86100a3366004610219565b6100aa565b005b60015473ffffffffffffffffffffffffffffffffffffffff163314610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f57616c6c657450726f78793a20466f7262696464656e0000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166101d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964206d617374657220636f707920616464726573732070726f7660448201527f69646564000000000000000000000000000000000000000000000000000000006064820152608401610127565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006020828403121561022a578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461024d578182fd5b939250505056fea26469706673582212201c9723d8ac5d1f9666ba24ddc1ed181a581798dbfb2bd50a67563c5a23f093f864736f6c63430008040033
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|