ETH Price: $1,854.06 (-0.15%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast184603452023-10-30 3:38:11848 days ago1698637091IN
0xbA1EC7df...2437f0D57
0 ETH0.0014506614.18024102
Cast113612912020-11-30 16:43:091912 days ago1606754589IN
0xbA1EC7df...2437f0D57
0 ETH0.0030052830
Cast113612442020-11-30 16:33:421912 days ago1606754022IN
0xbA1EC7df...2437f0D57
0 ETH0.0094847730
Cast113611612020-11-30 16:15:051912 days ago1606752905IN
0xbA1EC7df...2437f0D57
0 ETH0.0732337830
Cast113584242020-11-30 6:19:571912 days ago1606717197IN
0xbA1EC7df...2437f0D57
0 ETH0.0180050216.00000145
Cast113578092020-11-30 4:08:121912 days ago1606709292IN
0xbA1EC7df...2437f0D57
0 ETH0.0370730620
Cast113519872020-11-29 6:26:351913 days ago1606631195IN
0xbA1EC7df...2437f0D57
0 ETH0.0013626312
Cast113519722020-11-29 6:23:211913 days ago1606631001IN
0xbA1EC7df...2437f0D57
0 ETH0.006051412
Cast113519232020-11-29 6:13:081913 days ago1606630388IN
0xbA1EC7df...2437f0D57
0 ETH0.0029198812
Transfer113519082020-11-29 6:09:461913 days ago1606630186IN
0xbA1EC7df...2437f0D57
7 ETH0.0002835513
Cast113502072020-11-29 0:02:481913 days ago1606608168IN
0xbA1EC7df...2437f0D57
0 ETH0.026989714.01000123
Cast113458562020-11-28 8:13:281914 days ago1606551208IN
0xbA1EC7df...2437f0D57
0 ETH0.0107281213
Cast113457082020-11-28 7:40:001914 days ago1606549200IN
0xbA1EC7df...2437f0D57
0 ETH0.0015434913
Cast113456812020-11-28 7:33:521914 days ago1606548832IN
0xbA1EC7df...2437f0D57
0 ETH0.007391513
Transfer113456712020-11-28 7:31:301914 days ago1606548690IN
0xbA1EC7df...2437f0D57
10 ETH0.0003053614
Cast113427092020-11-27 20:41:081914 days ago1606509668IN
0xbA1EC7df...2437f0D57
0 ETH0.0239340219.8
Cast113427012020-11-27 20:39:331914 days ago1606509573IN
0xbA1EC7df...2437f0D57
0 ETH0.0063818119.8
Transfer113426932020-11-27 20:37:011914 days ago1606509421IN
0xbA1EC7df...2437f0D57
9 ETH0.0004798622

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-113612912020-11-30 16:43:091912 days ago1606754589
0xbA1EC7df...2437f0D57
20.44160144 ETH
-113612442020-11-30 16:33:421912 days ago1606754022
0xbA1EC7df...2437f0D57
20.44160144 ETH
-113611612020-11-30 16:15:051912 days ago1606752905
0xbA1EC7df...2437f0D57
17 ETH
-113611612020-11-30 16:15:051912 days ago1606752905
0xbA1EC7df...2437f0D57
17 ETH
-113611612020-11-30 16:15:051912 days ago1606752905
0xbA1EC7df...2437f0D57
17 ETH
-113611612020-11-30 16:15:051912 days ago1606752905
0xbA1EC7df...2437f0D57
17 ETH
-113584242020-11-30 6:19:571912 days ago1606717197
0xbA1EC7df...2437f0D57
5.59577529 ETH
-113584242020-11-30 6:19:571912 days ago1606717197
0xbA1EC7df...2437f0D57
5.59577529 ETH
-113519232020-11-29 6:13:081913 days ago1606630388
0xbA1EC7df...2437f0D57
7 ETH
-113456812020-11-28 7:33:521914 days ago1606548832
0xbA1EC7df...2437f0D57
10 ETH
-113427092020-11-27 20:41:081914 days ago1606509668
0xbA1EC7df...2437f0D57
5.84568847 ETH
-113427092020-11-27 20:41:081914 days ago1606509668
0xbA1EC7df...2437f0D57
5.84568847 ETH
-113427012020-11-27 20:39:331914 days ago1606509573
0xbA1EC7df...2437f0D57
9 ETH
-113426362020-11-27 20:26:141914 days ago1606508774  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Minimal Proxy Contract for 0x939daad09fc4a9b8f8a9352a485dab2df4f4b3f8

Contract Name:
InstaAccount

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-03-26
*/

pragma solidity ^0.6.0;
pragma experimental ABIEncoderV2;

/**
 * @title InstaAccount.
 * @dev DeFi Smart Account Wallet.
 */

interface IndexInterface {
    function connectors(uint version) external view returns (address);
    function check(uint version) external view returns (address);
    function list() external view returns (address);
}

interface ConnectorsInterface {
    function isConnector(address[] calldata logicAddr) external view returns (bool);
    function isStaticConnector(address[] calldata logicAddr) external view returns (bool);
}

interface CheckInterface {
    function isOk() external view returns (bool);
}

interface ListInterface {
    function addAuth(address user) external;
    function removeAuth(address user) external;
}


contract Record {

    event LogEnable(address indexed user);
    event LogDisable(address indexed user);
    event LogSwitchShield(bool _shield);

    // InstaIndex Address.
    address public constant instaIndex = 0x2971AdFa57b20E5a416aE5a708A8655A9c74f723;
    // The Account Module Version.
    uint public constant version = 1;
    // Auth Module(Address of Auth => bool).
    mapping (address => bool) private auth;
    // Is shield true/false.
    bool public shield;

    /**
     * @dev Check for Auth if enabled.
     * @param user address/user/owner.
     */
    function isAuth(address user) public view returns (bool) {
        return auth[user];
    }

    /**
     * @dev Change Shield State.
    */
    function switchShield(bool _shield) external {
        require(auth[msg.sender], "not-self");
        require(shield != _shield, "shield is set");
        shield = _shield;
        emit LogSwitchShield(shield);
    }

    /**
     * @dev Enable New User.
     * @param user Owner of the Smart Account.
    */
    function enable(address user) public {
        require(msg.sender == address(this) || msg.sender == instaIndex, "not-self-index");
        require(user != address(0), "not-valid");
        require(!auth[user], "already-enabled");
        auth[user] = true;
        ListInterface(IndexInterface(instaIndex).list()).addAuth(user);
        emit LogEnable(user);
    }

    /**
     * @dev Disable User.
     * @param user Owner of the Smart Account.
    */
    function disable(address user) public {
        require(msg.sender == address(this), "not-self");
        require(user != address(0), "not-valid");
        require(auth[user], "already-disabled");
        delete auth[user];
        ListInterface(IndexInterface(instaIndex).list()).removeAuth(user);
        emit LogDisable(user);
    }

}

contract InstaAccount is Record {

    event LogCast(address indexed origin, address indexed sender, uint value);

    receive() external payable {}

     /**
     * @dev Delegate the calls to Connector And this function is ran by cast().
     * @param _target Target to of Connector.
     * @param _data CallData of function in Connector.
    */
    function spell(address _target, bytes memory _data) internal {
        require(_target != address(0), "target-invalid");
        assembly {
            let succeeded := delegatecall(gas(), _target, add(_data, 0x20), mload(_data), 0, 0)

            switch iszero(succeeded)
                case 1 {
                    // throw if delegatecall failed
                    let size := returndatasize()
                    returndatacopy(0x00, 0x00, size)
                    revert(0x00, size)
                }
        }
    }

    /**
     * @dev This is the main function, Where all the different functions are called
     * from Smart Account.
     * @param _targets Array of Target(s) to of Connector.
     * @param _datas Array of Calldata(S) of function.
    */
    function cast(
        address[] calldata _targets,
        bytes[] calldata _datas,
        address _origin
    )
    external
    payable
    {
        require(isAuth(msg.sender) || msg.sender == instaIndex, "permission-denied");
        require(_targets.length == _datas.length , "array-length-invalid");
        IndexInterface indexContract = IndexInterface(instaIndex);
        bool isShield = shield;
        if (!isShield) {
            require(ConnectorsInterface(indexContract.connectors(version)).isConnector(_targets), "not-connector");
        } else {
            require(ConnectorsInterface(indexContract.connectors(version)).isStaticConnector(_targets), "not-static-connector");
        }
        for (uint i = 0; i < _targets.length; i++) {
            spell(_targets[i], _datas[i]);
        }
        address _check = indexContract.check(version);
        if (_check != address(0) && !isShield) require(CheckInterface(_check).isOk(), "not-ok");
        emit LogCast(_origin, msg.sender, msg.value);
    }

}

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"LogCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogDisable","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogEnable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_shield","type":"bool"}],"name":"LogSwitchShield","type":"event"},{"inputs":[{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"},{"internalType":"address","name":"_origin","type":"address"}],"name":"cast","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"disable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"enable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"instaIndex","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isAuth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shield","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_shield","type":"bool"}],"name":"switchShield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.