Goerli Testnet

Contract

0x19c80e4Ec00fAAA6Ca3B41B17B75f7b0F4D64CB7
Source Code

Overview

ETH Balance

0 ETH

Token Holdings

Multi Chain

Multichain Addresses

N/A
Transaction Hash
Method
Block
From
To
Value
Fallback72360012022-07-16 9:36:17510 days 9 hrs ago1657964177IN
0x19c80e...F4D64CB7
0 ETH0.0005251420
Init Wallet72163992022-07-12 23:27:57513 days 19 hrs ago1657668477IN
0x19c80e...F4D64CB7
0 ETH0.000154841.94
Execute Transact...72089052022-07-11 16:01:20515 days 3 hrs ago1657555280IN
0x19c80e...F4D64CB7
0 ETH0.000161882.45
Confirm Transact...72089012022-07-11 16:00:16515 days 3 hrs ago1657555216IN
0x19c80e...F4D64CB7
0 ETH0.000195052.45
Submit Transacti...72088942022-07-11 15:58:31515 days 3 hrs ago1657555111IN
0x19c80e...F4D64CB7
0 ETH0.000220032.45
Confirm Transact...72088832022-07-11 15:55:46515 days 3 hrs ago1657554946IN
0x19c80e...F4D64CB7
0 ETH0.000195052.45
Submit Transacti...72088782022-07-11 15:54:31515 days 3 hrs ago1657554871IN
0x19c80e...F4D64CB7
0 ETH0.000268852.45
Confirm Transact...72088742022-07-11 15:53:31515 days 3 hrs ago1657554811IN
0x19c80e...F4D64CB7
0 ETH0.000087092.45000001
Confirm Transact...72088652022-07-11 15:51:16515 days 3 hrs ago1657554676IN
0x19c80e...F4D64CB7
0 ETH0.000087092.45
Confirm Transact...72088622022-07-11 15:50:31515 days 3 hrs ago1657554631IN
0x19c80e...F4D64CB7
0 ETH0.000195052.45
Submit Transacti...72088532022-07-11 15:48:16515 days 3 hrs ago1657554496IN
0x19c80e...F4D64CB7
0 ETH0.000268822.45
Init Wallet72088272022-07-11 15:41:46515 days 3 hrs ago1657554106IN
0x19c80e...F4D64CB7
0 ETH0.000418762.45
Init Wallet72088192022-07-11 15:39:46515 days 3 hrs ago1657553986IN
0x19c80e...F4D64CB7
0 ETH0.000198732.45
Execute Transact...72032552022-07-10 16:21:08516 days 3 hrs ago1657470068IN
0x19c80e...F4D64CB7
0 ETH0.00018192.5
Confirm Transact...72032542022-07-10 16:20:53516 days 3 hrs ago1657470053IN
0x19c80e...F4D64CB7
0 ETH0.00015922
Submit Transacti...72032532022-07-10 16:20:38516 days 3 hrs ago1657470038IN
0x19c80e...F4D64CB7
0 ETH0.000212722
Init Wallet72032522022-07-10 16:20:23516 days 3 hrs ago1657470023IN
0x19c80e...F4D64CB7
0 ETH0.000079811
Transfer72028442022-07-10 14:37:36516 days 4 hrs ago1657463856IN
0x19c80e...F4D64CB7
0 ETH0.000031581.5
Transfer72024672022-07-10 13:02:49516 days 6 hrs ago1657458169IN
0x19c80e...F4D64CB7
0 ETH0.000421120
Init Wallet72024042022-07-10 12:46:50516 days 6 hrs ago1657457210IN
0x19c80e...F4D64CB7
0 ETH0.000160281.94
Transfer72023902022-07-10 12:43:20516 days 6 hrs ago1657457000IN
0x19c80e...F4D64CB7
1 wei0.000421120
0x6080604071979292022-07-09 17:59:31517 days 1 hr ago1657389571IN
 Create: Wallet
0 ETH0.001525083

Latest 24 internal transactions

Advanced mode:
Parent Txn Hash Block From To Value
72360012022-07-16 9:36:17510 days 9 hrs ago1657964177
0x19c80e...F4D64CB7
0 ETH
72163992022-07-12 23:27:57513 days 19 hrs ago1657668477
0x19c80e...F4D64CB7
0 ETH
72089052022-07-11 16:01:20515 days 3 hrs ago1657555280
0x19c80e...F4D64CB7
0 ETH
72089052022-07-11 16:01:20515 days 3 hrs ago1657555280
0x19c80e...F4D64CB7
0 ETH
72089012022-07-11 16:00:16515 days 3 hrs ago1657555216
0x19c80e...F4D64CB7
0 ETH
72088942022-07-11 15:58:31515 days 3 hrs ago1657555111
0x19c80e...F4D64CB7
0 ETH
72088832022-07-11 15:55:46515 days 3 hrs ago1657554946
0x19c80e...F4D64CB7
0 ETH
72088782022-07-11 15:54:31515 days 3 hrs ago1657554871
0x19c80e...F4D64CB7
0 ETH
72088742022-07-11 15:53:31515 days 3 hrs ago1657554811
0x19c80e...F4D64CB7
0 ETH
72088652022-07-11 15:51:16515 days 3 hrs ago1657554676
0x19c80e...F4D64CB7
0 ETH
72088622022-07-11 15:50:31515 days 3 hrs ago1657554631
0x19c80e...F4D64CB7
0 ETH
72088532022-07-11 15:48:16515 days 3 hrs ago1657554496
0x19c80e...F4D64CB7
0 ETH
72088272022-07-11 15:41:46515 days 3 hrs ago1657554106
0x19c80e...F4D64CB7
0 ETH
72088192022-07-11 15:39:46515 days 3 hrs ago1657553986
0x19c80e...F4D64CB7
0 ETH
72032552022-07-10 16:21:08516 days 3 hrs ago1657470068
0x19c80e...F4D64CB7
1 wei
72032552022-07-10 16:21:08516 days 3 hrs ago1657470068
0x19c80e...F4D64CB7
0 ETH
72032542022-07-10 16:20:53516 days 3 hrs ago1657470053
0x19c80e...F4D64CB7
0 ETH
72032532022-07-10 16:20:38516 days 3 hrs ago1657470038
0x19c80e...F4D64CB7
0 ETH
72032522022-07-10 16:20:23516 days 3 hrs ago1657470023
0x19c80e...F4D64CB7
0 ETH
72028032022-07-10 14:27:20516 days 4 hrs ago1657463240
0x19c80e...F4D64CB7
0 ETH
72028032022-07-10 14:27:20516 days 4 hrs ago1657463240
0x19c80e...F4D64CB7
0 ETH
72027912022-07-10 14:24:14516 days 4 hrs ago1657463054
0x19c80e...F4D64CB7
0 ETH
72024042022-07-10 12:46:50516 days 6 hrs ago1657457210
0x19c80e...F4D64CB7
0 ETH
71979292022-07-09 17:59:31517 days 1 hr ago1657389571
0x19c80e...F4D64CB7
0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Wallet

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : Wallet.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

/**
 * A lightweight multisig wallet contract
 * Calls will be delegated to the wallet library contract
 * Owners can:
 * - Submit a transaction
 * - Approve and revoke approval of pending transactions
 * - Anyone can execute a transaction after enough owners approved it
 */
contract Wallet {
    address public walletLibrary;
    address[] public owners;
    mapping(address => bool) public isOwner;
    uint256 public numConfirmationsRequired;

    struct Transaction {
        address to;
        uint256 value;
        bytes data;
        bool executed;
        uint256 numConfirmations;
    }

    // mapping from tx index => owner => bool
    mapping(uint256 => mapping(address => bool)) public isConfirmed;

    Transaction[] public transactions;

    constructor(
        address _walletLibrary,
        address[] memory _owners,
        uint256 _numConfirmationsRequired
    ) {
        walletLibrary = _walletLibrary;

        (bool success, ) = _walletLibrary.delegatecall(
            abi.encodeWithSignature(
                "initWallet(address[],uint256)",
                _owners,
                _numConfirmationsRequired
            )
        );

        require(success, "initWallet failed");
    }

    receive() external payable {}

    fallback() external payable {
        _delegate(walletLibrary);
    }

    function _delegate(address _imp) internal virtual {
        assembly {
            // calldatacopy(t, f, s)
            // copy s bytes from calldata at position f to mem at position t
            calldatacopy(0, 0, calldatasize())

            // delegatecall(g, a, in, insize, out, outsize)
            // - call contract at address a
            // - with input mem[in…(in+insize))
            // - providing g gas
            // - and output area mem[out…(out+outsize))
            // - returning 0 on error and 1 on success
            let result := delegatecall(gas(), _imp, 0, calldatasize(), 0, 0)

            // returndatacopy(t, f, s)
            // copy s bytes from returndata at position f to mem at position t
            returndatacopy(0, 0, returndatasize())

            switch result
            case 0 {
                // revert(p, s)
                // end execution, revert state changes, return data mem[p…(p+s))
                revert(0, returndatasize())
            }
            default {
                // return(p, s)
                // end execution, return data mem[p…(p+s))
                return(0, returndatasize())
            }
        }
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "script/=script/",
    "src/=src/",
    "test/=test/",
    "src/=src/",
    "test/=test/",
    "script/=script/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_walletLibrary","type":"address"},{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_numConfirmationsRequired","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"isConfirmed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numConfirmationsRequired","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint256","name":"numConfirmations","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161071638038061071683398101604081905261002f91610158565b600080546001600160a01b0319166001600160a01b038516908117825560405161005f908590859060240161023a565b60408051601f198184030181529181526020820180516001600160e01b03166356b0738f60e11b17905251610094919061028b565b600060405180830381855af49150503d80600081146100cf576040519150601f19603f3d011682016040523d82523d6000602084013e6100d4565b606091505b505090508061011d5760405162461bcd60e51b81526020600482015260116024820152701a5b9a5d15d85b1b195d0819985a5b1959607a1b604482015260640160405180910390fd5b505050506102c6565b80516001600160a01b038116811461013d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561016d57600080fd5b61017684610126565b602085810151919450906001600160401b038082111561019557600080fd5b818701915087601f8301126101a957600080fd5b8151818111156101bb576101bb610142565b8060051b604051601f19603f830116810181811085821117156101e0576101e0610142565b60405291825284820192508381018501918a8311156101fe57600080fd5b938501935b828510156102235761021485610126565b84529385019392850192610203565b809750505050505050604084015190509250925092565b604080825283519082018190526000906020906060840190828701845b8281101561027c5781516001600160a01b031684529284019290840190600101610257565b50505092019290925292915050565b6000825160005b818110156102ac5760208186018101518583015201610292565b818111156102bb576000828501525b509190910192915050565b610441806102d56000396000f3fe6080604052600436106100595760003560e01c8063025e7c27146100775780632f54bf6e146100b457806380f59a65146100f45780639ace38c21461012f578063c876b30814610160578063d0549b851461018057610060565b3661006057005b600054610075906001600160a01b03166101a4565b005b34801561008357600080fd5b506100976100923660046102cb565b6101c8565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c057600080fd5b506100e46100cf366004610300565b60026020526000908152604090205460ff1681565b60405190151581526020016100ab565b34801561010057600080fd5b506100e461010f366004610322565b600460209081526000928352604080842090915290825290205460ff1681565b34801561013b57600080fd5b5061014f61014a3660046102cb565b6101f2565b6040516100ab95949392919061034e565b34801561016c57600080fd5b50600054610097906001600160a01b031681565b34801561018c57600080fd5b5061019660035481565b6040519081526020016100ab565b3660008037600080366000845af43d6000803e8080156101c3573d6000f35b3d6000fd5b600181815481106101d857600080fd5b6000918252602090912001546001600160a01b0316905081565b6005818154811061020257600080fd5b60009182526020909120600590910201805460018201546002830180546001600160a01b039093169450909291610238906103d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906103d1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b505050506003830154600490930154919260ff1691905085565b6000602082840312156102dd57600080fd5b5035919050565b80356001600160a01b03811681146102fb57600080fd5b919050565b60006020828403121561031257600080fd5b61031b826102e4565b9392505050565b6000806040838503121561033557600080fd5b82359150610345602084016102e4565b90509250929050565b60018060a01b038616815260006020868184015260a0604084015285518060a085015260005b818110156103905787810183015185820160c001528201610374565b818111156103a257600060c083870101525b50601f01601f1916830160c00191506103c19050606083018515159052565b8260808301529695505050505050565b600181811c908216806103e557607f821691505b60208210810361040557634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220c82fccc2480dae37099228f71c0ae48ca8bba014a122edf31815ea56020e976264736f6c634300080d003300000000000000000000000043ff315d0003365fe1246344115a3142b9ebfe0b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089d8632bc8020a7ddd540e6d9b118aa9ec19af270000000000000000000000008a5722860c6691f2a25d141d73e678bf1078aac30000000000000000000000006813eb9362372eef6200f3b1dbc3f819671cba69

Deployed Bytecode

0x6080604052600436106100595760003560e01c8063025e7c27146100775780632f54bf6e146100b457806380f59a65146100f45780639ace38c21461012f578063c876b30814610160578063d0549b851461018057610060565b3661006057005b600054610075906001600160a01b03166101a4565b005b34801561008357600080fd5b506100976100923660046102cb565b6101c8565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c057600080fd5b506100e46100cf366004610300565b60026020526000908152604090205460ff1681565b60405190151581526020016100ab565b34801561010057600080fd5b506100e461010f366004610322565b600460209081526000928352604080842090915290825290205460ff1681565b34801561013b57600080fd5b5061014f61014a3660046102cb565b6101f2565b6040516100ab95949392919061034e565b34801561016c57600080fd5b50600054610097906001600160a01b031681565b34801561018c57600080fd5b5061019660035481565b6040519081526020016100ab565b3660008037600080366000845af43d6000803e8080156101c3573d6000f35b3d6000fd5b600181815481106101d857600080fd5b6000918252602090912001546001600160a01b0316905081565b6005818154811061020257600080fd5b60009182526020909120600590910201805460018201546002830180546001600160a01b039093169450909291610238906103d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906103d1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b505050506003830154600490930154919260ff1691905085565b6000602082840312156102dd57600080fd5b5035919050565b80356001600160a01b03811681146102fb57600080fd5b919050565b60006020828403121561031257600080fd5b61031b826102e4565b9392505050565b6000806040838503121561033557600080fd5b82359150610345602084016102e4565b90509250929050565b60018060a01b038616815260006020868184015260a0604084015285518060a085015260005b818110156103905787810183015185820160c001528201610374565b818111156103a257600060c083870101525b50601f01601f1916830160c00191506103c19050606083018515159052565b8260808301529695505050505050565b600181811c908216806103e557607f821691505b60208210810361040557634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220c82fccc2480dae37099228f71c0ae48ca8bba014a122edf31815ea56020e976264736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000043ff315d0003365fe1246344115a3142b9ebfe0b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089d8632bc8020a7ddd540e6d9b118aa9ec19af270000000000000000000000008a5722860c6691f2a25d141d73e678bf1078aac30000000000000000000000006813eb9362372eef6200f3b1dbc3f819671cba69

-----Decoded View---------------
Arg [0] : _walletLibrary (address): 0x43FF315d0003365fe1246344115A3142b9EBfe0b
Arg [1] : _owners (address[]): 0x89d8632bc8020a7ddd540E6D9B118Aa9EC19af27,0x8a5722860c6691F2a25d141D73e678bF1078aac3,0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69
Arg [2] : _numConfirmationsRequired (uint256): 2

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000043ff315d0003365fe1246344115a3142b9ebfe0b
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 00000000000000000000000089d8632bc8020a7ddd540e6d9b118aa9ec19af27
Arg [5] : 0000000000000000000000008a5722860c6691f2a25d141d73e678bf1078aac3
Arg [6] : 0000000000000000000000006813eb9362372eef6200f3b1dbc3f819671cba69


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.