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:
ManagerImplementation
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 '../smart-account/ISmartAccount.sol'; import './IManager.sol'; import '../library/Consts.sol'; import '../library/Errors.sol'; import './ManagerStorage.sol'; contract ManagerImplementation is ManagerStorage { event AddExecutor(address executor); event RemoveExecutor(address executor); event CreateSmartAccount(address indexed owner, address indexed smartAccount); address public immutable smartAccountTemplate; address public immutable smartAccountImplementation; constructor (address smartAccountTemplate_, address smartAccountImplementation_) { smartAccountTemplate = smartAccountTemplate_; smartAccountImplementation = smartAccountImplementation_; } //================================================================================ // Getter //================================================================================ function getGateway(uint256 gatewayIdx) external view returns (address) { return _gateways[gatewayIdx]; } function isExecutor(address executor) external view returns (bool) { return _executors[executor]; } function getSmartAccount(address owner) external view returns (address) { return _smartAccounts[owner]; } function getOpGasTokens() external view returns (address[] memory) { return _opGasTokens; } function getOpGases() external view returns(uint256[6][] memory) { return _opGases; } function getOpGas(uint256 bIndex, uint256 opIndex) external view returns (uint256) { return _opGases[bIndex][opIndex]; } //================================================================================ // Admin //================================================================================ function setGateways(address[] memory gateways) external _onlyAdmin_ { _gateways = gateways; } function addExecutor(address executor) external _onlyAdmin_ { _executors[executor] = true; emit AddExecutor(executor); } function removeExecutor(address executor) external _onlyAdmin_ { _executors[executor] = false; emit RemoveExecutor(executor); } function setOpGasTokens(address[] memory tokens) external _onlyAdmin_ { _opGasTokens = tokens; } function setOpGases(uint256[6][] memory opGases) external _onlyAdmin_ { _opGases = opGases; } //================================================================================ // Interaction //================================================================================ receive() external payable { address smartAccount = _smartAccounts[msg.sender]; if (smartAccount == address(0)) { smartAccount = _clone(smartAccountTemplate); ISmartAccount(smartAccount).setOwner(msg.sender); _smartAccounts[msg.sender] = smartAccount; emit CreateSmartAccount(msg.sender, smartAccount); } (bool success, ) = payable(smartAccount).call{value: msg.value}(''); require(success, Errors.TRANSFER_ETH_FAIL); } //================================================================================ // Internal //================================================================================ function _clone(address source) internal returns (address target) { bytes20 sourceBytes = bytes20(source); assembly { let c := mload(0x40) mstore(c, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) mstore(add(c, 0x14), sourceBytes) mstore(add(c, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) target := create(0, c, 0x37) } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; library Consts { address internal constant TOKEN_ETH = address(1); // op index uint256 internal constant OP_INDEX_LENGTH = 6; uint256 internal constant OP_INDEX_ADD_MARGIN = 0; uint256 internal constant OP_INDEX_REMOVE_MARGIN = 1; uint256 internal constant OP_INDEX_TRADE = 2; uint256 internal constant OP_INDEX_ADD_MARGIN_AND_TRADE = 3; uint256 internal constant OP_INDEX_TRADE_AND_REMOVE_MARGIN = 4; uint256 internal constant OP_INDEX_WITHDRAW = 5; }
// 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; import '../utils/Admin.sol'; import '../utils/Implementation.sol'; abstract contract ManagerStorage is Admin, Implementation { address[] internal _gateways; mapping (address => bool) internal _executors; mapping (address => address) internal _smartAccounts; address[] internal _opGasTokens; uint256[6][] internal _opGases; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface ISmartAccount { function setOwner(address owner_) external; function requestAddMargin( uint256 gatewayIdx, uint256 pTokenId, address bToken, uint256 bAmount ) external; function requestRemoveMargin( uint256 gatewayIdx, uint256 pTokenId, address bToken, uint256 bAmount ) external; function requestTrade( uint256 gatewayIdx, uint256 pTokenId, bytes32 symbolId, int256[] memory tradeParams ) external; function requestAddMarginAndTrade( uint256 gatewayIdx, uint256 pTokenId, address bToken, uint256 bAmount, bytes32 symbolId, int256[] calldata tradeParams ) external; function requestTradeAndRemoveMargin( uint256 gatewayIdx, uint256 pTokenId, address bToken, uint256 bAmount, bytes32 symbolId, int256[] calldata tradeParams ) external; function withdraw(address token, uint256 amount) external; function withdrawEthAndB0() external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; abstract contract Admin { error OnlyAdmin(); event NewAdmin(address newAdmin); address public admin; modifier _onlyAdmin_() { if (msg.sender != admin) { revert OnlyAdmin(); } _; } constructor () { admin = msg.sender; emit NewAdmin(admin); } /** * @notice Set a new admin for the contract. * @dev This function allows the current admin to assign a new admin address without performing any explicit verification. * It's the current admin's responsibility to ensure that the 'newAdmin' address is correct and secure. * @param newAdmin The address of the new admin. */ function setAdmin(address newAdmin) external _onlyAdmin_ { admin = newAdmin; emit NewAdmin(newAdmin); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import './Admin.sol'; abstract contract Implementation is Admin { event NewImplementation(address newImplementation); address public implementation; // @notice Set a new implementation address for the contract function setImplementation(address newImplementation) external _onlyAdmin_ { implementation = newImplementation; emit NewImplementation(newImplementation); } }
{ "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":"smartAccountTemplate_","type":"address"},{"internalType":"address","name":"smartAccountImplementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"OnlyAdmin","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"executor","type":"address"}],"name":"AddExecutor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"smartAccount","type":"address"}],"name":"CreateSmartAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"executor","type":"address"}],"name":"RemoveExecutor","type":"event"},{"inputs":[{"internalType":"address","name":"executor","type":"address"}],"name":"addExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gatewayIdx","type":"uint256"}],"name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bIndex","type":"uint256"},{"internalType":"uint256","name":"opIndex","type":"uint256"}],"name":"getOpGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOpGasTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOpGases","outputs":[{"internalType":"uint256[6][]","name":"","type":"uint256[6][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getSmartAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"}],"name":"isExecutor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"}],"name":"removeExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"gateways","type":"address[]"}],"name":"setGateways","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"setOpGasTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[6][]","name":"opGases","type":"uint256[6][]"}],"name":"setOpGases","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"smartAccountImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"smartAccountTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405234801561001057600080fd5b50604051610fb3380380610fb383398101604081905261002f916100aa565b600080546001600160a01b031916339081179091556040519081527f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c9060200160405180910390a16001600160a01b039182166080521660a0526100dd565b80516001600160a01b03811681146100a557600080fd5b919050565b600080604083850312156100bd57600080fd5b6100c68361008e565b91506100d46020840161008e565b90509250929050565b60805160a051610eaa61010960003960006103f401526000818161012a01526105180152610eaa6000f3fe6080604052600436106101025760003560e01c8063704b6c0211610095578063b1c2455311610064578063b1c245531461047d578063d784d4261461049d578063debfda30146104bd578063ecc268e614610506578063f851a4401461053a57600080fd5b8063704b6c02146103c257806370a5f6f1146103e25780639199a07c1461041657806394abac1b1461044f57600080fd5b806338a64991116100d157806338a649911461033e57806341875b041461036057806346001b1b146103825780635c60da1b146103a257600080fd5b80631f398b63146102a15780631f5a0bbe146102c157806324788429146102e157806330cc0e0c1461030157600080fd5b3661029c57336000908152600460205260409020546001600160a01b0316806102005761014e7f000000000000000000000000000000000000000000000000000000000000000061055a565b6040516313af403560e01b81523360048201529091506001600160a01b038216906313af403590602401600060405180830381600087803b15801561019257600080fd5b505af11580156101a6573d6000803e3d6000fd5b50503360008181526004602052604080822080546001600160a01b0319166001600160a01b03881690811790915590519094509192507ff912317e56897e4cecdb17f53231e06e09a2a0577f59493b0c31f0bd399d7a9e91a35b6000816001600160a01b03163460405160006040518083038185875af1925050503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b5050905080604051806040016040528060038152602001622a22a360e91b8152509061029a5760405162461bcd60e51b81526004016102919190610ad8565b60405180910390fd5b005b600080fd5b3480156102ad57600080fd5b5061029a6102bc366004610bba565b6105ac565b3480156102cd57600080fd5b5061029a6102dc366004610cb2565b6105ee565b3480156102ed57600080fd5b5061029a6102fc366004610cb2565b610674565b34801561030d57600080fd5b5061032161031c366004610cd4565b6106f0565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561034a57600080fd5b50610353610720565b6040516103359190610ced565b34801561036c57600080fd5b50610375610782565b6040516103359190610d3a565b34801561038e57600080fd5b5061029a61039d366004610da4565b610800565b3480156103ae57600080fd5b50600154610321906001600160a01b031681565b3480156103ce57600080fd5b5061029a6103dd366004610cb2565b61083e565b3480156103ee57600080fd5b506103217f000000000000000000000000000000000000000000000000000000000000000081565b34801561042257600080fd5b50610321610431366004610cb2565b6001600160a01b039081166000908152600460205260409020541690565b34801561045b57600080fd5b5061046f61046a366004610e3c565b6108b7565b604051908152602001610335565b34801561048957600080fd5b5061029a610498366004610da4565b6108f4565b3480156104a957600080fd5b5061029a6104b8366004610cb2565b610932565b3480156104c957600080fd5b506104f66104d8366004610cb2565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610335565b34801561051257600080fd5b506103217f000000000000000000000000000000000000000000000000000000000000000081565b34801561054657600080fd5b50600054610321906001600160a01b031681565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f0949350505050565b6000546001600160a01b031633146105d757604051634755657960e01b815260040160405180910390fd5b80516105ea9060069060208401906109ab565b5050565b6000546001600160a01b0316331461061957604051634755657960e01b815260040160405180910390fd5b6001600160a01b038116600081815260036020908152604091829020805460ff1916600117905590519182527f93c7cc308c27512f308819cbaa4c96440f4f9d65281fad8e5ef00e47040f8b5d91015b60405180910390a150565b6000546001600160a01b0316331461069f57604051634755657960e01b815260040160405180910390fd5b6001600160a01b038116600081815260036020908152604091829020805460ff1916905590519182527fa6ebdea43a26de412580953b52a868ea9a84910403c1b182e06a9adf818922869101610669565b60006002828154811061070557610705610e5e565b6000918252602090912001546001600160a01b031692915050565b6060600580548060200260200160405190810160405280929190818152602001828054801561077857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161075a575b5050505050905090565b60606006805480602002602001604051908101604052809291908181526020016000905b828210156107f7576000848152602090206040805160c08101918290529160068581029091019182845b8154815260200190600101908083116107d0575050505050815260200190600101906107a6565b50505050905090565b6000546001600160a01b0316331461082b57604051634755657960e01b815260040160405180910390fd5b80516105ea906002906020840190610a05565b6000546001600160a01b0316331461086957604051634755657960e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c90602001610669565b6000600683815481106108cc576108cc610e5e565b906000526020600020906006020182600681106108eb576108eb610e5e565b01549392505050565b6000546001600160a01b0316331461091f57604051634755657960e01b815260040160405180910390fd5b80516105ea906005906020840190610a05565b6000546001600160a01b0316331461095d57604051634755657960e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f6b70829fcbe4891157f7a7496f9870927de3c8237adbe9cd39bae09b7382c40990602001610669565b8280548282559060005260206000209060060281019282156109f5579160200282015b828111156109f55782516109e59083906006610a66565b50916020019190600601906109ce565b50610a01929150610a94565b5090565b828054828255906000526020600020908101928215610a5a579160200282015b82811115610a5a57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610a25565b50610a01929150610ab1565b8260068101928215610a5a579160200282015b82811115610a5a578251825591602001919060010190610a79565b80821115610a01576000610aa88282610ac6565b50600601610a94565b5b80821115610a015760008155600101610ab2565b50610ad5906006810190610ab1565b50565b600060208083528351808285015260005b81811015610b0557858101830151858201604001528201610ae9565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715610b5f57610b5f610b26565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b8e57610b8e610b26565b604052919050565b600067ffffffffffffffff821115610bb057610bb0610b26565b5060051b60200190565b60006020808385031215610bcd57600080fd5b823567ffffffffffffffff811115610be457600080fd5b8301601f8082018613610bf657600080fd5b8135610c09610c0482610b96565b610b65565b81815260c09182028401850191858201919089841115610c2857600080fd5b948601945b83861015610c89578985870112610c445760008081fd5b610c4c610b3c565b808288018c811115610c5e5760008081fd5b885b81811015610c775780358452928a01928a01610c60565b50508452509485019491860191610c2d565b5098975050505050505050565b80356001600160a01b0381168114610cad57600080fd5b919050565b600060208284031215610cc457600080fd5b610ccd82610c96565b9392505050565b600060208284031215610ce657600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015610d2e5783516001600160a01b031683529284019291840191600101610d09565b50909695505050505050565b602080825282518282018190526000919084820190604085019084805b82811015610d9757845184835b6006811015610d8157825182529188019190880190600101610d64565b5050509385019360c09390930192600101610d57565b5091979650505050505050565b60006020808385031215610db757600080fd5b823567ffffffffffffffff811115610dce57600080fd5b8301601f81018513610ddf57600080fd5b8035610ded610c0482610b96565b81815260059190911b82018301908381019087831115610e0c57600080fd5b928401925b82841015610e3157610e2284610c96565b82529284019290840190610e11565b979650505050505050565b60008060408385031215610e4f57600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fdfea26469706673582212200dfc6df4cfe93a8da1c541dc2001b60002bb63ed221b4438b84374328873321764736f6c63430008140033000000000000000000000000798d083cba08a10b11affa2d92a407c15ec8040d000000000000000000000000c8d6bde488a3c6af322fb20c2654e311792e44a8
Deployed Bytecode
0x6080604052600436106101025760003560e01c8063704b6c0211610095578063b1c2455311610064578063b1c245531461047d578063d784d4261461049d578063debfda30146104bd578063ecc268e614610506578063f851a4401461053a57600080fd5b8063704b6c02146103c257806370a5f6f1146103e25780639199a07c1461041657806394abac1b1461044f57600080fd5b806338a64991116100d157806338a649911461033e57806341875b041461036057806346001b1b146103825780635c60da1b146103a257600080fd5b80631f398b63146102a15780631f5a0bbe146102c157806324788429146102e157806330cc0e0c1461030157600080fd5b3661029c57336000908152600460205260409020546001600160a01b0316806102005761014e7f000000000000000000000000798d083cba08a10b11affa2d92a407c15ec8040d61055a565b6040516313af403560e01b81523360048201529091506001600160a01b038216906313af403590602401600060405180830381600087803b15801561019257600080fd5b505af11580156101a6573d6000803e3d6000fd5b50503360008181526004602052604080822080546001600160a01b0319166001600160a01b03881690811790915590519094509192507ff912317e56897e4cecdb17f53231e06e09a2a0577f59493b0c31f0bd399d7a9e91a35b6000816001600160a01b03163460405160006040518083038185875af1925050503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b5050905080604051806040016040528060038152602001622a22a360e91b8152509061029a5760405162461bcd60e51b81526004016102919190610ad8565b60405180910390fd5b005b600080fd5b3480156102ad57600080fd5b5061029a6102bc366004610bba565b6105ac565b3480156102cd57600080fd5b5061029a6102dc366004610cb2565b6105ee565b3480156102ed57600080fd5b5061029a6102fc366004610cb2565b610674565b34801561030d57600080fd5b5061032161031c366004610cd4565b6106f0565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561034a57600080fd5b50610353610720565b6040516103359190610ced565b34801561036c57600080fd5b50610375610782565b6040516103359190610d3a565b34801561038e57600080fd5b5061029a61039d366004610da4565b610800565b3480156103ae57600080fd5b50600154610321906001600160a01b031681565b3480156103ce57600080fd5b5061029a6103dd366004610cb2565b61083e565b3480156103ee57600080fd5b506103217f000000000000000000000000c8d6bde488a3c6af322fb20c2654e311792e44a881565b34801561042257600080fd5b50610321610431366004610cb2565b6001600160a01b039081166000908152600460205260409020541690565b34801561045b57600080fd5b5061046f61046a366004610e3c565b6108b7565b604051908152602001610335565b34801561048957600080fd5b5061029a610498366004610da4565b6108f4565b3480156104a957600080fd5b5061029a6104b8366004610cb2565b610932565b3480156104c957600080fd5b506104f66104d8366004610cb2565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610335565b34801561051257600080fd5b506103217f000000000000000000000000798d083cba08a10b11affa2d92a407c15ec8040d81565b34801561054657600080fd5b50600054610321906001600160a01b031681565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f0949350505050565b6000546001600160a01b031633146105d757604051634755657960e01b815260040160405180910390fd5b80516105ea9060069060208401906109ab565b5050565b6000546001600160a01b0316331461061957604051634755657960e01b815260040160405180910390fd5b6001600160a01b038116600081815260036020908152604091829020805460ff1916600117905590519182527f93c7cc308c27512f308819cbaa4c96440f4f9d65281fad8e5ef00e47040f8b5d91015b60405180910390a150565b6000546001600160a01b0316331461069f57604051634755657960e01b815260040160405180910390fd5b6001600160a01b038116600081815260036020908152604091829020805460ff1916905590519182527fa6ebdea43a26de412580953b52a868ea9a84910403c1b182e06a9adf818922869101610669565b60006002828154811061070557610705610e5e565b6000918252602090912001546001600160a01b031692915050565b6060600580548060200260200160405190810160405280929190818152602001828054801561077857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161075a575b5050505050905090565b60606006805480602002602001604051908101604052809291908181526020016000905b828210156107f7576000848152602090206040805160c08101918290529160068581029091019182845b8154815260200190600101908083116107d0575050505050815260200190600101906107a6565b50505050905090565b6000546001600160a01b0316331461082b57604051634755657960e01b815260040160405180910390fd5b80516105ea906002906020840190610a05565b6000546001600160a01b0316331461086957604051634755657960e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c90602001610669565b6000600683815481106108cc576108cc610e5e565b906000526020600020906006020182600681106108eb576108eb610e5e565b01549392505050565b6000546001600160a01b0316331461091f57604051634755657960e01b815260040160405180910390fd5b80516105ea906005906020840190610a05565b6000546001600160a01b0316331461095d57604051634755657960e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f6b70829fcbe4891157f7a7496f9870927de3c8237adbe9cd39bae09b7382c40990602001610669565b8280548282559060005260206000209060060281019282156109f5579160200282015b828111156109f55782516109e59083906006610a66565b50916020019190600601906109ce565b50610a01929150610a94565b5090565b828054828255906000526020600020908101928215610a5a579160200282015b82811115610a5a57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610a25565b50610a01929150610ab1565b8260068101928215610a5a579160200282015b82811115610a5a578251825591602001919060010190610a79565b80821115610a01576000610aa88282610ac6565b50600601610a94565b5b80821115610a015760008155600101610ab2565b50610ad5906006810190610ab1565b50565b600060208083528351808285015260005b81811015610b0557858101830151858201604001528201610ae9565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715610b5f57610b5f610b26565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b8e57610b8e610b26565b604052919050565b600067ffffffffffffffff821115610bb057610bb0610b26565b5060051b60200190565b60006020808385031215610bcd57600080fd5b823567ffffffffffffffff811115610be457600080fd5b8301601f8082018613610bf657600080fd5b8135610c09610c0482610b96565b610b65565b81815260c09182028401850191858201919089841115610c2857600080fd5b948601945b83861015610c89578985870112610c445760008081fd5b610c4c610b3c565b808288018c811115610c5e5760008081fd5b885b81811015610c775780358452928a01928a01610c60565b50508452509485019491860191610c2d565b5098975050505050505050565b80356001600160a01b0381168114610cad57600080fd5b919050565b600060208284031215610cc457600080fd5b610ccd82610c96565b9392505050565b600060208284031215610ce657600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015610d2e5783516001600160a01b031683529284019291840191600101610d09565b50909695505050505050565b602080825282518282018190526000919084820190604085019084805b82811015610d9757845184835b6006811015610d8157825182529188019190880190600101610d64565b5050509385019360c09390930192600101610d57565b5091979650505050505050565b60006020808385031215610db757600080fd5b823567ffffffffffffffff811115610dce57600080fd5b8301601f81018513610ddf57600080fd5b8035610ded610c0482610b96565b81815260059190911b82018301908381019087831115610e0c57600080fd5b928401925b82841015610e3157610e2284610c96565b82529284019290840190610e11565b979650505050505050565b60008060408385031215610e4f57600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fdfea26469706673582212200dfc6df4cfe93a8da1c541dc2001b60002bb63ed221b4438b84374328873321764736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000798d083cba08a10b11affa2d92a407c15ec8040d000000000000000000000000c8d6bde488a3c6af322fb20c2654e311792e44a8
-----Decoded View---------------
Arg [0] : smartAccountTemplate_ (address): 0x798D083cBA08a10B11aFFA2d92a407C15Ec8040d
Arg [1] : smartAccountImplementation_ (address): 0xC8d6bDE488A3C6AF322fB20C2654e311792e44a8
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000798d083cba08a10b11affa2d92a407c15ec8040d
Arg [1] : 000000000000000000000000c8d6bde488a3c6af322fb20c2654e311792e44a8
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.