Abstract Testnet

Contract

0x000000aA2a733BB7bB003b0339859907d5D87320

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To

There are no matching entries

2 Internal Transactions found.

Latest 2 internal transactions

Parent Transaction Hash Block From To
44486322025-01-16 17:14:0043 hrs ago1737047640
0x000000aA...7d5D87320
0 ETH
44486322025-01-16 17:14:0043 hrs ago1737047640  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Singlesig

Compiler Version
v0.8.21+commit.d9974bed

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : Singlesig.sol
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.4;

/// @title 1-of-1 smart contract wallet with rotatable ownership for counterfactually receiving tokens at the same address across many EVM chains
contract Singlesig {
    address public owner;
    address public pendingOwner;

    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @dev Initializes the contract setting the address provided by the deployer as the initial owner
    /// @dev Distinct constructor args will lead to distinct CREATE2 initialization bytecode, so no collision risk here
    constructor(address initialOwner) {
        owner = initialOwner;
        emit OwnershipTransferred(address(0), initialOwner);
    }

    /// @dev Throws if called by any account other than the owner
    modifier onlyOwner() {
        require(owner == msg.sender, "Ownable2Step: caller is not the owner");
        _;
    }

    /// @notice Executes a call with provided parameters
    /// @dev This method doesn't perform any sanity check of the transaction
    /// @param to Destination address
    /// @param value Native token value in wei
    /// @param data Data payload
    /// @return success Boolean flag indicating if the call succeeded
    function execute(address to, uint256 value, bytes memory data) public onlyOwner returns (bool success) {
        (success,) = to.call{value: value}(data);
    }

    /// @dev Offers to transfer ownership permissions to a new account
    function transferOwnership(address newOwner) external onlyOwner {
        pendingOwner = newOwner;
        emit OwnershipTransferStarted(owner, newOwner);
    }

    /// @dev The new owner accepts the ownership transfer
    function acceptOwnership() external {
        require(pendingOwner == msg.sender, "Ownable2Step: caller is not the new owner");
        emit OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
    }

    /// @dev Function to receive native tokens when `msg.data` is empty
    receive() external payable {}

    /// @dev Fallback function is called when `msg.data` is not empty
    fallback() external payable {}

    function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
        return interfaceId == 0x01ffc9a7 // ERC165 Interface ID for ERC165
            || interfaceId == 0x150b7a02 // ERC165 Interface ID for ERC721TokenReceiver
            || interfaceId == 0x4e2312e0; // ERC165 Interface ID for ERC1155TokenReceiver
    }

    function onERC721Received(address, address, uint256, bytes calldata) external pure returns (bytes4) {
        return 0x150b7a02; //bytes4(keccak256("onERC721Received(address,uint256,bytes)"));
    }

    function onERC1155Received(address, address, uint256, uint256, bytes calldata) external pure returns (bytes4) {
        return 0xf23a6e61; // bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"));
    }

    function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata) external pure returns (bytes4) {
        return 0xbc197c81; // bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))
    }
}

Settings
{
  "viaIR": false,
  "codegen": "yul",
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "murky/=lib/murky/src/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "era-contracts/=lib/era-contracts/"
  ],
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

3cda3351000000000000000000000000000000000000000091430a7ea982667861000090010000afc9aaa5d31fb2f17055d8c2359758d31fcfaf75c697cf0e96ebe6c59a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006ed7d526b020780f694f3c10dfb25e1b134d3215

Deployed Bytecode

0x0002000000000002000100000000000200000000030200190001000000010355000000600210027000000082022001970000000100300190000000370000c13d0000008003000039000000400030043f000000040020008c000000ce0000413d000000000301043b000000e0033002700000008a0030009c0000006f0000a13d0000008b0030009c0000008a0000a13d0000008c0030009c000000d00000613d0000008d0030009c0000012b0000613d0000008e0030009c000000ce0000c13d000000240020008c000001650000413d0000000002000416000000000002004b000001650000c13d0000000401100370000000000601043b000000850060009c000001650000213d000000000100041a00000085051001970000000001000411000000000015004b000001520000c13d0000000101000039000000000201041a0000008602200197000000000262019f000000000021041b0000000001000414000000820010009c0000008201008041000000c00110021000000087011001c70000800d0200003900000003030000390000009a04000041020201fd0000040f0000000100200190000001650000613d000000ce0000013d0000000003000416000000000003004b000001650000c13d0000001f0320003900000083033001970000008003300039000000400030043f0000001f0420018f00000084052001980000008003500039000000480000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000036004b000000440000c13d000000000004004b000000550000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000200020008c000001650000413d000000800600043d000000850060009c000001650000213d000000000100041a0000008601100197000000000161019f000000000010041b0000000001000414000000820010009c0000008201008041000000c00110021000000087011001c70000800d02000039000000030300003900000088040000410000000005000019020201fd0000040f0000000100200190000001650000613d0000002001000039000001000010044300000120000004430000008901000041000002030001042e000000910030009c000000c50000213d000000940030009c000000d90000613d000000950030009c000000ce0000c13d000000840020008c000001650000413d0000000003000416000000000003004b000001650000c13d0000000403100370000000000303043b000000850030009c000001650000213d0000002403100370000000000303043b000000850030009c000001650000213d0000006401100370000000000101043b0000009b0010009c000001650000213d0000000401100039020201e40000040f000000a8010000410000013f0000013d0000008f0030009c000000ec0000613d000000900030009c000000ce0000c13d000000a40020008c000001650000413d0000000003000416000000000003004b000001650000c13d0000000403100370000000000303043b000000850030009c000001650000213d0000002403100370000000000303043b000000850030009c000001650000213d0000004403100370000000000303043b0000009b0030009c000001650000213d0000002304300039000000000024004b000001650000813d0000000404300039000000000441034f000000000404043b0000009b0040009c000001650000213d000000050440021000000000034300190000002403300039000000000023004b000001650000213d0000006403100370000000000303043b0000009b0030009c000001650000213d0000002304300039000000000024004b000001650000813d0000000404300039000000000441034f000000000404043b0000009b0040009c000001650000213d000000050440021000000000034300190000002403300039000000000023004b000001650000213d0000008401100370000000000101043b0000009b0010009c000001650000213d0000000401100039020201e40000040f0000009f010000410000013f0000013d000000920030009c0000010d0000613d000000930030009c000000ce0000c13d0000000001000416000000000001004b000001650000c13d000000000100041a000000d50000013d0000000001000019000002030001042e0000000001000416000000000001004b000001650000c13d0000000101000039000000000101041a0000008501100197000000800010043f0000009e01000041000002030001042e000000240020008c000001650000413d0000000002000416000000000002004b000001650000c13d0000000401100370000000000201043b000000a900200198000001650000c13d0000000101000039000000aa0020009c000000e90000613d000000a80020009c000000e90000613d000000ab0020009c000000000100c019000000800010043f0000009e01000041000002030001042e000000640020008c000001650000413d0000000003000416000000000003004b000001650000c13d0000000403100370000000000403043b000000850040009c000001650000213d0000004403100370000000000503043b0000009b0050009c000001650000213d0000002303500039000000000023004b000001650000813d0000000406500039000000000361034f000000000303043b000000a00030009c000001070000813d0000001f07300039000000ac077001970000003f07700039000000ac07700197000000a10070009c0000015e0000a13d000000a501000041000000000010043f0000004101000039000000040010043f000000a60100004100000204000104300000000001000416000000000001004b000001650000c13d0000000101000039000000000101041a00000085011001970000000006000411000000000061004b000001460000c13d000000000200041a0000000001000414000000820010009c0000008201008041000000c00110021000000087011001c7000100000002001d00000085052001970000800d0200003900000003030000390000008804000041020201fd0000040f0000000100200190000001650000613d000000010100002900000086011001970000000002000411000000000121019f000000000010041b0000000001000019000002030001042e000000a40020008c000001650000413d0000000003000416000000000003004b000001650000c13d0000000403100370000000000303043b000000850030009c000001650000213d0000002403100370000000000303043b000000850030009c000001650000213d0000008401100370000000000101043b0000009b0010009c000001650000213d0000000401100039020201e40000040f0000009c01000041000000400200043d0000000000120435000000820020009c000000820200804100000040012002100000009d011001c7000002030001042e0000009601000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000009701000041000000c40010043f000000a701000041000000e40010043f000000990100004100000204000104300000009601000041000000800010043f0000002001000039000000840010043f0000002501000039000000a40010043f0000009701000041000000c40010043f0000009801000041000000e40010043f000000990100004100000204000104300000008007700039000000400070043f000000800030043f00000000053500190000002405500039000000000025004b000001670000a13d000000000100001900000204000104300000002005600039000000000651034f000000ac073001980000001f0830018f000000a005700039000001730000613d000000a009000039000000000a06034f00000000ab0a043c0000000009b90436000000000059004b0000016f0000c13d000000000008004b000001800000613d000000000676034f0000000307800210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000000a0033000390000000000030435000000000300041a00000085033001970000000005000411000000000053004b000001910000c13d000000800600043d0000002403100370000000000303043b0000000005000414000000040040008c000001a50000c13d000000000121034f00000001020000390000000003000031000001b80000013d000000400100043d00000064021000390000009803000041000000000032043500000044021000390000009703000041000000000032043500000024021000390000002503000039000000000032043500000096020000410000000000210435000000040210003900000020030000390000000000320435000000820010009c00000082010080410000004001100210000000a2011001c70000020400010430000000820060009c00000082060080410000006001600210000000820050009c0000008205008041000000c002500210000000000112019f000000000003004b000001b10000c13d000000a4011001c70000000002040019000001b40000013d000000a3011001c700008009020000390000000005000019020201fd0000040f0000006003100270000000820030019d0000008203300197000000000003004b000001bc0000c13d000000010120018f0000013f0000013d0000009b0030009c000001070000213d0000001f04300039000000ac044001970000003f04400039000000ac05400197000000400400043d0000000005540019000000000045004b000000000600003900000001060040390000009b0050009c000001070000213d0000000100600190000001070000c13d000000400050043f0000000006340436000000ac043001980000001f0530018f0000000003460019000001d60000613d000000000701034f000000007807043c0000000006860436000000000036004b000001d20000c13d000000000005004b000001ba0000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000001ba0000013d0000001f03100039000000000023004b0000000004000019000000ad04004041000000ad05200197000000ad03300197000000000653013f000000000053004b0000000003000019000000ad03002041000000ad0060009c000000000304c019000000000003004b000001fb0000613d0000000103100367000000000303043b0000009b0030009c000001fb0000213d00000000013100190000002001100039000000000021004b000001fb0000213d000000000001042d0000000001000019000002040001043000000200002104210000000102000039000000000001042d0000000002000019000000000001042d0000020200000432000002030001042e000002040001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000b61d27f500000000000000000000000000000000000000000000000000000000e30c397700000000000000000000000000000000000000000000000000000000e30c397800000000000000000000000000000000000000000000000000000000f23a6e6100000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000b61d27f600000000000000000000000000000000000000000000000000000000bc197c810000000000000000000000000000000000000000000000000000000079ba50960000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000150b7a0208c379a0000000000000000000000000000000000000000000000000000000004f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000038d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700000000000000000000000000000000000000000000000000fffffffffffffffff23a6e610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000bc197c81000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f00000000000000000000000000000000000000840000000000000000000000000200000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006e6577206f776e65720000000000000000000000000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffc9a7000000000000000000000000000000000000000000000000000000004e2312e000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080000000000000000000000000000000000000000000000000000000000000008fb6876d5bdcb1965650abedf6271efd00c8b4199d63c62fc03489b62ff5b017

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.