⚠️ ⚠️ ⚠️ This explorer will be deprecated soon, please use PolygonScan.com

Contract Address Details

0x28846f4051EB05594B3fF9dE76b7B5bf00431155

InstaAccountV2 Last Balance Update: Block #15594019
Created by 0xf68390–47c21e at 0xf154fa–732881

Balance

0 MATIC

(@ /MATIC)

Fetching tokens...

Contract name:
InstaAccountV2




Optimization enabled
false
Compiler version
v0.7.0+commit.9e61f92b




EVM Version
default

Constructor Arguments

00000000000000000000000039d3d5e7c11d61e072511485878dd84711c19d4a

Arg [0] (address) : 0x39d3d5e7c11d61e072511485878dd84711c19d4a

              

Contract source code

/**
* Submitted for verification at blockscout.com on 2021-04-03 00:33:13.506977Z
*/
// Sources flattened with hardhat v2.0.8 https://hardhat.org
// File contracts/v2/proxy/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);
}
}
}

Contract ABI

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

Contract Byte Code

0x6080604052600436106100225760003560e01c806330e9012c146100d4576100a5565b366100a557600060e01b6000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100a3576100a26000357fffffffff0000000000000000000000000000000000000000000000000000000016610115565b5b005b6100d26000357fffffffff0000000000000000000000000000000000000000000000000000000016610115565b005b3480156100e057600080fd5b506100e9610277565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60007f00000000000000000000000039d3d5e7c11d61e072511485878dd84711c19d4a73ffffffffffffffffffffffffffffffffffffffff1663dc9cc645836040518263ffffffff1660e01b815260040180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060206040518083038186803b1580156101a757600080fd5b505afa1580156101bb573d6000803e3d6000fd5b505050506040513d60208110156101d157600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561026a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806102c26030913960400191505060405180910390fd5b6102738161029b565b5050565b7f00000000000000000000000039d3d5e7c11d61e072511485878dd84711c19d4a81565b3660008037600080366000845af43d6000803e80600081146102bc573d6000f35b3d6000fdfe496e7374614163636f756e7456323a204e6f742061626c6520746f2066696e64205f696d706c656d656e746174696f6ea264697066735822122020496c07af3dcdde8ccb1e60af8d323f0f1a6f1f16b3006af2a14e27c22f855464736f6c63430007000033