Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
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.
Contract Name:
SmartAccount
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import '../manager/IManager.sol'; import '../library/Errors.sol'; import './SmartAccountStorage.sol'; contract SmartAccount is SmartAccountStorage { address public immutable manager; constructor (address manager_) { manager = manager_; } function implementation() public view returns (address) { return IManager(manager).smartAccountImplementation(); } function setOwner(address owner_) external { require(owner == address(0), Errors.OWNER_ALREADY_SET); owner = owner_; } fallback() external payable { address imp = implementation(); assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), imp, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } receive() external payable {} }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; library Errors { string internal constant ETH_BALANCE_0 = 'EB0'; string internal constant INSUFFICIENT_EXECUTION_FEE = 'IEF'; string internal constant INVALID_OP_GAS_TOKEN = 'IOGT'; string internal constant ONLY_EXECUTOR = 'OE'; string internal constant ONLY_EXECUTOR_OR_OWNER = 'OEO'; string internal constant OWNER_ALREADY_SET = 'OAS'; string internal constant TRANSFER_ETH_FAIL = 'TEF'; string internal constant WRONG_TOKEN_IN_AMOUNT = 'WTIA'; string internal constant WRONG_TOKEN_OUT_AMOUNT = 'WTOA'; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface IManager { function getGateway(uint256 gatewayIdx) external view returns (address); function smartAccountTemplate() external view returns (address); function smartAccountImplementation() external view returns (address); function isExecutor(address executor) external view returns (bool); function getSmartAccount(address owner) external view returns (address); function getOpGasTokens() external view returns (address[] memory); function getOpGases() external view returns(uint256[6][] memory); function getOpGas(uint256 bIndex, uint256 opIndex) external view returns (uint256); function setGateways(address[] memory gateways) external; function addExecutor(address executor) external; function removeExecutor(address executor) external; function setOpGasTokens(address[] memory tokens) external; function setOpGases(uint256[6][] memory opGases) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; abstract contract SmartAccountStorage { address public owner; }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"manager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161038938038061038983398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516102f86100916000396000818160ae015261012501526102f86000f3fe6080604052600436106100435760003560e01c806313af40351461007c578063481c6a751461009c5780635c60da1b146100ec5780638da5cb5b146101015761004a565b3661004a57005b6000610054610121565b90503660008037600080366000845af43d6000803e808015610075573d6000f35b3d6000fd5b005b34801561008857600080fd5b5061007a610097366004610233565b6101aa565b3480156100a857600080fd5b506100d07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b3480156100f857600080fd5b506100d0610121565b34801561010d57600080fd5b506000546100d0906001600160a01b031681565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a5f6f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a59190610257565b905090565b6000546040805180820190915260038152624f415360e81b6020820152906001600160a01b0316156101f85760405162461bcd60e51b81526004016101ef9190610274565b60405180910390fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116811461023057600080fd5b50565b60006020828403121561024557600080fd5b81356102508161021b565b9392505050565b60006020828403121561026957600080fd5b81516102508161021b565b600060208083528351808285015260005b818110156102a157858101830151858201604001528201610285565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220b2383deed633f91db30366d8b4bf73843d32e24893ab57b9700f707a0f43ae4364736f6c634300081400330000000000000000000000003965e1e2863c2fe7201c9fdf26c53c779d061885
Deployed Bytecode
0x6080604052600436106100435760003560e01c806313af40351461007c578063481c6a751461009c5780635c60da1b146100ec5780638da5cb5b146101015761004a565b3661004a57005b6000610054610121565b90503660008037600080366000845af43d6000803e808015610075573d6000f35b3d6000fd5b005b34801561008857600080fd5b5061007a610097366004610233565b6101aa565b3480156100a857600080fd5b506100d07f0000000000000000000000003965e1e2863c2fe7201c9fdf26c53c779d06188581565b6040516001600160a01b03909116815260200160405180910390f35b3480156100f857600080fd5b506100d0610121565b34801561010d57600080fd5b506000546100d0906001600160a01b031681565b60007f0000000000000000000000003965e1e2863c2fe7201c9fdf26c53c779d0618856001600160a01b03166370a5f6f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a59190610257565b905090565b6000546040805180820190915260038152624f415360e81b6020820152906001600160a01b0316156101f85760405162461bcd60e51b81526004016101ef9190610274565b60405180910390fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116811461023057600080fd5b50565b60006020828403121561024557600080fd5b81356102508161021b565b9392505050565b60006020828403121561026957600080fd5b81516102508161021b565b600060208083528351808285015260005b818110156102a157858101830151858201604001528201610285565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220b2383deed633f91db30366d8b4bf73843d32e24893ab57b9700f707a0f43ae4364736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003965e1e2863c2fe7201c9fdf26c53c779d061885
-----Decoded View---------------
Arg [0] : manager_ (address): 0x3965E1e2863C2fE7201C9FDF26C53c779D061885
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003965e1e2863c2fe7201c9fdf26c53c779d061885
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.