Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
220708503 | 316 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
FluidWallet
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 10000000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.21; interface IFluidWalletFactory { function walletImplementation() external returns(address); } /// @title FluidWallet /// @notice Proxy for Fluid wallet as deployed by the FluidWalletFactory. /// Basic Proxy with fallback to delegate and address for implementation contract at storage 0x0 // contract FluidWallet { /// @notice Fluid Wallet Factory address. IFluidWalletFactory public immutable FACTORY; /// @notice Owner of the wallet. address public owner; function initialize(address owner_) public { if (owner == address(0)) { owner = owner_; } else { revert(); } } constructor (address factory_) { FACTORY = IFluidWalletFactory(factory_); } receive() external payable {} fallback() external payable { address impl_ = FACTORY.walletImplementation(); assembly { // @dev code below is taken from OpenZeppelin Proxy.sol _delegate function // 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()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), impl_, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
{ "optimizer": { "enabled": true, "runs": 10000000 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"factory_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"FACTORY","outputs":[{"internalType":"contract IFluidWalletFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161033338038061033383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516102a2610091600039600081816043015261010c01526102a26000f3fe6080604052600436106100385760003560e01c80632dd31000146100fa5780638da5cb5b14610157578063c4d66de8146101845761003f565b3661003f57005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638117abc16040518163ffffffff1660e01b81526004016020604051808303816000875af11580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d2919061022b565b90503660008037600080366000845af43d6000803e8080156100f3573d6000f35b3d6000fd5b005b34801561010657600080fd5b5061012e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34801561016357600080fd5b5060005461012e9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561019057600080fd5b506100f861019f36600461024f565b60005473ffffffffffffffffffffffffffffffffffffffff16610201576000805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000090911617905550565b600080fd5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461020657600080fd5b60006020828403121561023d57600080fd5b815161024881610209565b9392505050565b60006020828403121561026157600080fd5b81356102488161020956fea26469706673582212204d2f9bdc9554e6a8c6815dfd65d8e843dfc01adbf7015f7300aeaa149cdd197964736f6c63430008150033000000000000000000000000d8ae986159e350b6535539b8a1e488658452f25e
Deployed Bytecode
0x6080604052600436106100385760003560e01c80632dd31000146100fa5780638da5cb5b14610157578063c4d66de8146101845761003f565b3661003f57005b60007f000000000000000000000000d8ae986159e350b6535539b8a1e488658452f25e73ffffffffffffffffffffffffffffffffffffffff16638117abc16040518163ffffffff1660e01b81526004016020604051808303816000875af11580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d2919061022b565b90503660008037600080366000845af43d6000803e8080156100f3573d6000f35b3d6000fd5b005b34801561010657600080fd5b5061012e7f000000000000000000000000d8ae986159e350b6535539b8a1e488658452f25e81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34801561016357600080fd5b5060005461012e9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561019057600080fd5b506100f861019f36600461024f565b60005473ffffffffffffffffffffffffffffffffffffffff16610201576000805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000090911617905550565b600080fd5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461020657600080fd5b60006020828403121561023d57600080fd5b815161024881610209565b9392505050565b60006020828403121561026157600080fd5b81356102488161020956fea26469706673582212204d2f9bdc9554e6a8c6815dfd65d8e843dfc01adbf7015f7300aeaa149cdd197964736f6c63430008150033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d8ae986159e350b6535539b8a1e488658452f25e
-----Decoded View---------------
Arg [0] : factory_ (address): 0xd8Ae986159e350B6535539B8A1e488658452f25E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d8ae986159e350b6535539b8a1e488658452f25e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.