ETH Price: $2,021.73 (-1.60%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast127997192021-07-10 12:41:321692 days ago1625920892IN
0xcaee0da6...12dcd862F
0 ETH0.007527846.6
Cast127892412021-07-08 21:46:221694 days ago1625780782IN
0xcaee0da6...12dcd862F
0 ETH0.005581712
Cast127846842021-07-08 4:45:451694 days ago1625719545IN
0xcaee0da6...12dcd862F
0 ETH0.0016561218
Cast120643142021-03-18 18:32:211806 days ago1616092341IN
0xcaee0da6...12dcd862F
0 ETH0.0100065125
Cast105102872020-07-22 16:34:522045 days ago1595435692IN
0xcaee0da6...12dcd862F
0 ETH0.008671688
Cast105102642020-07-22 16:31:252045 days ago1595435485IN
0xcaee0da6...12dcd862F
0 ETH0.126546288
Cast105102062020-07-22 16:19:062045 days ago1595434746IN
0xcaee0da6...12dcd862F
0 ETH0.0820375688
Cast105101602020-07-22 16:07:512045 days ago1595434071IN
0xcaee0da6...12dcd862F
0 ETH0.0118796488
Cast105101572020-07-22 16:07:332045 days ago1595434053IN
0xcaee0da6...12dcd862F
0 ETH0.0088144388
Cast105101572020-07-22 16:07:332045 days ago1595434053IN
0xcaee0da6...12dcd862F
0 ETH0.008671688
Cast105101482020-07-22 16:05:262045 days ago1595433926IN
0xcaee0da6...12dcd862F
0 ETH0.0367276888
Cast105101432020-07-22 16:04:332045 days ago1595433873IN
0xcaee0da6...12dcd862F
0 ETH0.1487769388
Cast105101382020-07-22 16:03:352045 days ago1595433815IN
0xcaee0da6...12dcd862F
0 ETH0.0088144388
Cast105101322020-07-22 16:01:592045 days ago1595433719IN
0xcaee0da6...12dcd862F
0 ETH0.0384614588
Cast105031482020-07-21 14:03:412046 days ago1595340221IN
0xcaee0da6...12dcd862F
0 ETH0.0275353928
Cast104203642020-07-08 18:04:302059 days ago1594231470IN
0xcaee0da6...12dcd862F
0 ETH0.0593069735
Cast104072622020-07-06 17:38:032061 days ago1594057083IN
0xcaee0da6...12dcd862F
0 ETH0.044369127.5
Cast104072472020-07-06 17:34:172061 days ago1594056857IN
0xcaee0da6...12dcd862F
0 ETH0.04130650
Cast104070352020-07-06 16:45:502061 days ago1594053950IN
0xcaee0da6...12dcd862F
0 ETH0.012578241.8
Cast104070292020-07-06 16:44:252061 days ago1594053865IN
0xcaee0da6...12dcd862F
0 ETH0.018845441
Cast104002232020-07-05 15:31:412062 days ago1593963101IN
0xcaee0da6...12dcd862F
0 ETH0.0274892231.00000145
Cast103813262020-07-02 17:23:592065 days ago1593710639IN
0xcaee0da6...12dcd862F
0 ETH0.0079676533
Cast103813232020-07-02 17:23:172065 days ago1593710597IN
0xcaee0da6...12dcd862F
0 ETH0.0093741433
Transfer103813212020-07-02 17:23:012065 days ago1593710581IN
0xcaee0da6...12dcd862F
1 ETH0.0007197933
Cast103803232020-07-02 13:46:592065 days ago1593697619IN
0xcaee0da6...12dcd862F
0 ETH0.0061152745
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-105101572020-07-22 16:07:332045 days ago1595434053
0xcaee0da6...12dcd862F
14.05088713 ETH
-105101482020-07-22 16:05:262045 days ago1595433926
0xcaee0da6...12dcd862F
14.05088713 ETH
-105101382020-07-22 16:03:352045 days ago1595433815
0xcaee0da6...12dcd862F
7 ETH
-105101322020-07-22 16:01:592045 days ago1595433719
0xcaee0da6...12dcd862F
7 ETH
-103813262020-07-02 17:23:592065 days ago1593710639
0xcaee0da6...12dcd862F
1 ETH
-103803232020-07-02 13:46:592065 days ago1593697619
0xcaee0da6...12dcd862F
1 ETH
-103803132020-07-02 13:44:532065 days ago1593697493
0xcaee0da6...12dcd862F
1 ETH
-103681862020-06-30 16:21:132067 days ago1593534073
0xcaee0da6...12dcd862F
14.74759516 ETH
-103681822020-06-30 16:20:162067 days ago1593534016
0xcaee0da6...12dcd862F
14.74759516 ETH
-103421852020-06-26 15:16:512071 days ago1593184611
0xcaee0da6...12dcd862F
0.87177008 ETH
-103421852020-06-26 15:16:512071 days ago1593184611
0xcaee0da6...12dcd862F
0.87177008 ETH
-103421662020-06-26 15:13:132071 days ago1593184393
0xcaee0da6...12dcd862F
0.87177008 ETH
-103421662020-06-26 15:13:132071 days ago1593184393
0xcaee0da6...12dcd862F
0.87177008 ETH
-103421062020-06-26 15:00:452071 days ago1593183645
0xcaee0da6...12dcd862F
1 ETH
-103414172020-06-26 12:36:502071 days ago1593175010  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.