Contract 0x857f3b524317C0C403EC40e01837F1B160F9E7Ab

 
Txn Hash
Block
From
To
Value [Txn Fee]
0xfbcf36d607e86f547d58dec7f85f87bc0fdb0067061bf969137de314130c4af43374212021-09-09 17:58:268 days 1 hr ago0x05a0227164a1e9844f40ef61864f1d1b63f27a40 IN  Contract Creation0 ETH0.010151343074 ETH
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
InstaAccountV2

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : accountProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;

interface AccountImplementations {
    function getImplementation(bytes4 _sig) external view returns (address);
}

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`.
 */
contract InstaAccountV2 {

    AccountImplementations public immutable implementations;

    constructor(address _implementations) {
        implementations = AccountImplementations(_implementations);
    }

    /**
     * @dev Delegates the current call to `implementation`.
     * 
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    /**
     * @dev Delegates the current call to the address returned by Implementations registry.
     * 
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback(bytes4 _sig) internal {
        address _implementation = implementations.getImplementation(_sig);
        require(_implementation != address(0), "InstaAccountV2: Not able to find _implementation");
        _delegate(_implementation);
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by Implementations registry.
     */
    fallback () external payable {
        _fallback(msg.sig);
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by Implementations registry.
     */
    receive () external payable {
        if (msg.sig != 0x00000000) {
            _fallback(msg.sig);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_implementations","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementations","outputs":[{"internalType":"contract AccountImplementations","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405234801561001057600080fd5b506040516103c53803806103c58339818101604052602081101561003357600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505060805160601c61032761009e60003980610119528061027952506103276000f3fe6080604052600436106100225760003560e01c806330e9012c146100d4576100a5565b366100a557600060e01b6000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100a3576100a26000357fffffffff0000000000000000000000000000000000000000000000000000000016610115565b5b005b6100d26000357fffffffff0000000000000000000000000000000000000000000000000000000016610115565b005b3480156100e057600080fd5b506100e9610277565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dc9cc645836040518263ffffffff1660e01b815260040180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060206040518083038186803b1580156101a757600080fd5b505afa1580156101bb573d6000803e3d6000fd5b505050506040513d60208110156101d157600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561026a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806102c26030913960400191505060405180910390fd5b6102738161029b565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b3660008037600080366000845af43d6000803e80600081146102bc573d6000f35b3d6000fdfe496e7374614163636f756e7456323a204e6f742061626c6520746f2066696e64205f696d706c656d656e746174696f6ea264697066735822122020496c07af3dcdde8ccb1e60af8d323f0f1a6f1f16b3006af2a14e27c22f855464736f6c63430007000033000000000000000000000000f3bb2fbdcda1b8b6d19f513d69462ea548d0ef12

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

000000000000000000000000f3bb2fbdcda1b8b6d19f513d69462ea548d0ef12

-----Decoded View---------------
Arg [0] : _implementations (address): 0xf3bb2fbdcda1b8b6d19f513d69462ea548d0ef12

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f3bb2fbdcda1b8b6d19f513d69462ea548d0ef12


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.