Address: 0x00000000000018A77519fcCCa060c2537c9D6d3F
Balance (XRP): 0 XRP
Bytecode: 0x6080604052600436101561001257600080fd5b60003560e01c6332c02a141461002757600080fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5760043573ffffffffffffffffffffffffffffffffffffffff811680820361019f5760243580916100eb6101176040519261008a846101d3565b602f84527f6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d305460208501527f5af43d82803e903d91601f57fd5bf300000000000000000000000000000000006040850152604051928391602083019586610235565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826101f4565b519034f59173ffffffffffffffffffffffffffffffffffffffff8316156101595760405173ffffffffffffffffffffffffffffffffffffffff84168152602090f35b7f8caac8050000000000000000000000000000000000000000000000000000000060005273ffffffffffffffffffffffffffffffffffffffff1660045260245260446000fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176101ef57604052565b6101a4565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101ef57604052565b9291909283519060005b8281106102525750019081526020019150565b806020809288010151818401520161023f56fea264697066735822122005bdba354528578c2c97606e359fcb9bc11fce26727223daf4f9db7c006cb1f664736f6c634300081c0033
Factory.sol
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.27; import "./Wallet.sol"; /// @title Factory /// @author Agustin Aguilar, Michael Standen /// @notice Factory for deploying wallets contract Factory { /// @notice Error thrown when the deployment fails error DeployFailed(address _mainModule, bytes32 _salt); /// @notice Deploy a new wallet instance /// @param _mainModule Address of the main module to be used by the wallet /// @param _salt Salt used to generate the wallet, which is the imageHash of the wallet's configuration. /// @dev It is recommended to not have more than 200 signers as opcode repricing could make transactions impossible to execute as all the signers must be passed for each transaction. function deploy(address _mainModule, bytes32 _salt) public payable returns (address _contract) { bytes memory code = abi.encodePacked(Wallet.creationCode, uint256(uint160(_mainModule))); assembly { _contract := create2(callvalue(), add(code, 32), mload(code), _salt) } if (_contract == address(0)) { revert DeployFailed(_mainModule, _salt); } } }
Wallet.sol
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.0; /* // Delegate Proxy in Huff // @title Delegate Proxy // @notice Implements a proxy using the contract's own address to store the delegate target. // Calls with calldata (with or without ETH value) are forwarded to the stored target. // Calls sending only ETH without calldata do nothing and return immediately without forwarding. // @author Agusx1211 #define macro CONSTRUCTOR() = takes (0) returns (0) { 0x41 // [code + arg size] (code_size + 32) __codeoffset(MAIN) // [code_start, code + arg size] returndatasize // [0, code_start, code + arg size] codecopy // [] __codesize(MAIN) // [code_size] dup1 // [code_size, code_size] mload // [arg1, code_size] address // [address, arg1, code_size] sstore // [code_size] returndatasize // [0, code_size] return } #define macro MAIN() = takes(0) returns(0) { returndatasize // [0] returndatasize // [0, 0] calldatasize // [cs, 0, 0] iszero // [cs == 0, 0, 0] callvalue // [cv, cs == 0, 0, 0] mul // [cv * cs == 0, 0, 0] success // [nr, cv * cs == 0, 0, 0] jumpi calldatasize // [cds, 0, 0] returndatasize // [0, cds, 0, 0] returndatasize // [0, 0, cds, 0, 0] calldatacopy // [0, 0] returndatasize // [0, 0, 0] calldatasize // [cds, 0, 0, 0] returndatasize // [0, cds, 0, 0, 0] address // [addr, 0, cds, 0, 0, 0] sload // [imp, 0, cds, 0, 0, 0] gas // [gas, imp, 0, cds, 0, 0, 0] delegatecall // [suc, 0] returndatasize // [rds, suc, 0] dup3 // [0, rds, suc, 0] dup1 // [0, 0, rds, suc, 0] returndatacopy // [suc, 0] swap1 // [0, suc] returndatasize // [rds, 0, suc] swap2 // [suc, 0, rds] success // [nr, suc, 0, rds] jumpi revert success: return } */ library Wallet { bytes internal constant creationCode = hex"6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"; }
Gas Token: