ETH Price: $2,424.13 (+3.13%)

Contract

0xFE96e822189b0D2A58878126465E0F316eDb05A1
 
Transaction Hash
Method
Block
From
To
Cast125597482021-06-03 5:51:071219 days ago1622699467IN
0xFE96e822...16eDb05A1
0 ETH0.0073024324
Cast125597262021-06-03 5:45:541219 days ago1622699154IN
0xFE96e822...16eDb05A1
0 ETH0.022460825
Cast124763642021-05-21 7:30:451232 days ago1621582245IN
0xFE96e822...16eDb05A1
0 ETH0.0051758556
Cast124763572021-05-21 7:29:141232 days ago1621582154IN
0xFE96e822...16eDb05A1
0 ETH0.0219436942.00000145
Cast124763342021-05-21 7:24:571232 days ago1621581897IN
0xFE96e822...16eDb05A1
0 ETH0.0868171444.5
Cast124061422021-05-10 10:39:341243 days ago1620643174IN
0xFE96e822...16eDb05A1
0 ETH0.47510577242
Cast124061312021-05-10 10:36:481243 days ago1620643008IN
0xFE96e822...16eDb05A1
0 ETH0.02199738238
Cast124061282021-05-10 10:36:161243 days ago1620642976IN
0xFE96e822...16eDb05A1
0 ETH0.12434476238
Cast124060082021-05-10 10:04:561243 days ago1620641096IN
0xFE96e822...16eDb05A1
0 ETH0.02116555229
Cast124060012021-05-10 10:02:411243 days ago1620640961IN
0xFE96e822...16eDb05A1
0 ETH0.10206136197
Cast124051532021-05-10 6:54:081243 days ago1620629648IN
0xFE96e822...16eDb05A1
0 ETH0.1741183696
Cast124051472021-05-10 6:52:291243 days ago1620629549IN
0xFE96e822...16eDb05A1
0 ETH0.0083688106
Cast124051442021-05-10 6:51:151243 days ago1620629475IN
0xFE96e822...16eDb05A1
0 ETH0.06399945109
Cast124035072021-05-10 0:54:461243 days ago1620608086IN
0xFE96e822...16eDb05A1
0 ETH0.0083688106
Cast124034172021-05-10 0:34:181243 days ago1620606858IN
0xFE96e822...16eDb05A1
0 ETH0.0555051993
Cast124032522021-05-09 23:58:211243 days ago1620604701IN
0xFE96e822...16eDb05A1
0 ETH0.19734705102
Cast123893252021-05-07 20:24:311246 days ago1620419071IN
0xFE96e822...16eDb05A1
0 ETH0.1269964864
Cast123893072021-05-07 20:19:351246 days ago1620418775IN
0xFE96e822...16eDb05A1
0 ETH0.0041054552
Cast123892832021-05-07 20:12:241246 days ago1620418344IN
0xFE96e822...16eDb05A1
0 ETH0.0310351652
Cast123824362021-05-06 18:45:381247 days ago1620326738IN
0xFE96e822...16eDb05A1
0 ETH0.2081099489
Cast123824242021-05-06 18:41:331247 days ago1620326493IN
0xFE96e822...16eDb05A1
0 ETH0.0069476888
Cast123824192021-05-06 18:40:421247 days ago1620326442IN
0xFE96e822...16eDb05A1
0 ETH0.0513273886
Cast123821912021-05-06 17:52:151247 days ago1620323535IN
0xFE96e822...16eDb05A1
0 ETH0.1064126255
Cast123778532021-05-06 1:44:581247 days ago1620265498IN
0xFE96e822...16eDb05A1
0 ETH0.0832141345
Cast123774932021-05-06 0:28:411247 days ago1620260921IN
0xFE96e822...16eDb05A1
0 ETH0.1254364162
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
124763342021-05-21 7:24:571232 days ago1621581897
0xFE96e822...16eDb05A1
3.11044777 ETH
124763342021-05-21 7:24:571232 days ago1621581897
0xFE96e822...16eDb05A1
3.11044777 ETH
124763342021-05-21 7:24:571232 days ago1621581897
0xFE96e822...16eDb05A1
3.11044777 ETH
124763342021-05-21 7:24:571232 days ago1621581897
0xFE96e822...16eDb05A1
3.11044777 ETH
124061422021-05-10 10:39:341243 days ago1620643174
0xFE96e822...16eDb05A1
11.49364524 ETH
124061422021-05-10 10:39:341243 days ago1620643174
0xFE96e822...16eDb05A1
11.49364524 ETH
124061422021-05-10 10:39:341243 days ago1620643174
0xFE96e822...16eDb05A1
11.49364524 ETH
124061422021-05-10 10:39:341243 days ago1620643174
0xFE96e822...16eDb05A1
11.49364524 ETH
124051532021-05-10 6:54:081243 days ago1620629648
0xFE96e822...16eDb05A1
8.0000562 ETH
124051532021-05-10 6:54:081243 days ago1620629648
0xFE96e822...16eDb05A1
8.0000562 ETH
124051532021-05-10 6:54:081243 days ago1620629648
0xFE96e822...16eDb05A1
8.0000562 ETH
124051532021-05-10 6:54:081243 days ago1620629648
0xFE96e822...16eDb05A1
8.0000562 ETH
124051472021-05-10 6:52:291243 days ago1620629549
0xFE96e822...16eDb05A1
1.06701793 ETH
124051442021-05-10 6:51:151243 days ago1620629475
0xFE96e822...16eDb05A1
1.06701793 ETH
124035072021-05-10 0:54:461243 days ago1620608086
0xFE96e822...16eDb05A1
0.45 ETH
124034172021-05-10 0:34:181243 days ago1620606858
0xFE96e822...16eDb05A1
0.45 ETH
124032522021-05-09 23:58:211243 days ago1620604701
0xFE96e822...16eDb05A1
6.10583892 ETH
124032522021-05-09 23:58:211243 days ago1620604701
0xFE96e822...16eDb05A1
6.10583892 ETH
124032522021-05-09 23:58:211243 days ago1620604701
0xFE96e822...16eDb05A1
6.10583892 ETH
124032522021-05-09 23:58:211243 days ago1620604701
0xFE96e822...16eDb05A1
6.10583892 ETH
123893252021-05-07 20:24:311246 days ago1620419071
0xFE96e822...16eDb05A1
5.35887327 ETH
123893252021-05-07 20:24:311246 days ago1620419071
0xFE96e822...16eDb05A1
5.35887327 ETH
123893252021-05-07 20:24:311246 days ago1620419071
0xFE96e822...16eDb05A1
5.35887327 ETH
123893252021-05-07 20:24:311246 days ago1620419071
0xFE96e822...16eDb05A1
5.35887327 ETH
123893072021-05-07 20:19:351246 days ago1620418775
0xFE96e822...16eDb05A1
0.7 ETH
View All Internal Transactions
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
/**
 *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

[{"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 Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.