ETH Price: $2,474.17 (+0.75%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast126919902021-06-23 18:29:441229 days ago1624472984IN
0xAb91AaFF...e59EF7528
0 ETH0.0216556227
Cast126830802021-06-22 8:56:101230 days ago1624352170IN
0xAb91AaFF...e59EF7528
0 ETH0.0109915855
Cast126180652021-06-12 6:17:451241 days ago1623478665IN
0xAb91AaFF...e59EF7528
0 ETH0.0043966322
Cast125702162021-06-04 20:32:521248 days ago1622838772IN
0xAb91AaFF...e59EF7528
0 ETH0.0022234829
Cast125702112021-06-04 20:31:451248 days ago1622838705IN
0xAb91AaFF...e59EF7528
0 ETH0.0066930327
Cast125329992021-05-30 2:15:231254 days ago1622340923IN
0xAb91AaFF...e59EF7528
0 ETH0.0043966322
Cast125074652021-05-26 3:14:321258 days ago1621998872IN
0xAb91AaFF...e59EF7528
0 ETH0.0042197445
Cast125074602021-05-26 3:12:461258 days ago1621998766IN
0xAb91AaFF...e59EF7528
0 ETH0.0113767643
Cast124958342021-05-24 8:08:421259 days ago1621843722IN
0xAb91AaFF...e59EF7528
0 ETH0.0064404484
Cast124958332021-05-24 8:08:081259 days ago1621843688IN
0xAb91AaFF...e59EF7528
0 ETH0.0207369984
Cast124918092021-05-23 16:59:591260 days ago1621789199IN
0xAb91AaFF...e59EF7528
0 ETH0.10990925550
Cast124836382021-05-22 10:46:351261 days ago1621680395IN
0xAb91AaFF...e59EF7528
0 ETH0.0031435541
Cast124836342021-05-22 10:45:461261 days ago1621680346IN
0xAb91AaFF...e59EF7528
0 ETH0.0101884541
Cast124801512021-05-21 21:34:031262 days ago1621632843IN
0xAb91AaFF...e59EF7528
0 ETH0.10392044520
Cast124657402021-05-19 15:49:041264 days ago1621439344IN
0xAb91AaFF...e59EF7528
0 ETH0.07973895399
Cast124650112021-05-19 13:10:291264 days ago1621429829IN
0xAb91AaFF...e59EF7528
0 ETH0.349774251,750
Cast124632552021-05-19 6:37:401264 days ago1621406260IN
0xAb91AaFF...e59EF7528
0 ETH0.04077123204
Cast124179822021-05-12 6:27:231272 days ago1620800843IN
0xAb91AaFF...e59EF7528
0 ETH0.02334922249
Cast124179692021-05-12 6:23:041272 days ago1620800584IN
0xAb91AaFF...e59EF7528
0 ETH0.05059281204
Cast123384142021-04-29 23:42:191284 days ago1619739739IN
0xAb91AaFF...e59EF7528
0 ETH0.0037671639
Cast123380632021-04-29 22:22:531284 days ago1619734973IN
0xAb91AaFF...e59EF7528
0 ETH0.0223360757
Cast123380482021-04-29 22:20:071284 days ago1619734807IN
0xAb91AaFF...e59EF7528
0 ETH0.0131135357
Cast123380472021-04-29 22:19:371284 days ago1619734777IN
0xAb91AaFF...e59EF7528
0 ETH0.0153291459
Cast123380412021-04-29 22:18:091284 days ago1619734689IN
0xAb91AaFF...e59EF7528
0 ETH0.005782264
Cast123380352021-04-29 22:16:511284 days ago1619734611IN
0xAb91AaFF...e59EF7528
0 ETH0.0169703664
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
117668902021-01-31 23:50:111372 days ago1612137011
0xAb91AaFF...e59EF7528
1,500 ETH
117668872021-01-31 23:49:421372 days ago1612136982
0xAb91AaFF...e59EF7528
1,500 ETH
117016722021-01-21 22:59:221382 days ago1611269962
0xAb91AaFF...e59EF7528
500 ETH
116998232021-01-21 16:13:051382 days ago1611245585
0xAb91AaFF...e59EF7528
500 ETH
116131572021-01-08 9:10:051395 days ago1610097005
0xAb91AaFF...e59EF7528
600 ETH
116065432021-01-07 8:45:151396 days ago1610009115
0xAb91AaFF...e59EF7528
500 ETH
115910582021-01-04 23:39:211399 days ago1609803561
0xAb91AaFF...e59EF7528
1,000 ETH
115909642021-01-04 23:19:081399 days ago1609802348
0xAb91AaFF...e59EF7528
1,000 ETH
115631492020-12-31 16:57:471403 days ago1609433867
0xAb91AaFF...e59EF7528
1,000 ETH
115631452020-12-31 16:56:531403 days ago1609433813
0xAb91AaFF...e59EF7528
1,000 ETH
114994242020-12-21 22:14:321413 days ago1608588872
0xAb91AaFF...e59EF7528
500 ETH
114925972020-12-20 21:15:051414 days ago1608498905
0xAb91AaFF...e59EF7528
500 ETH
111403412020-10-27 18:55:461468 days ago1603824946
0xAb91AaFF...e59EF7528
1,000 ETH
109525942020-09-28 18:34:531497 days ago1601318093
0xAb91AaFF...e59EF7528
10 ETH
109081102020-09-21 20:49:501504 days ago1600721390
0xAb91AaFF...e59EF7528
1,990 ETH
109080792020-09-21 20:41:541504 days ago1600720914
0xAb91AaFF...e59EF7528
37.9 ETH
109080792020-09-21 20:41:541504 days ago1600720914
0xAb91AaFF...e59EF7528
37.9 ETH
109080792020-09-21 20:41:541504 days ago1600720914
0xAb91AaFF...e59EF7528
37.9 ETH
109080792020-09-21 20:41:541504 days ago1600720914
0xAb91AaFF...e59EF7528
37.9 ETH
109024622020-09-21 0:18:141505 days ago1600647494
0xAb91AaFF...e59EF7528
35.4249893 ETH
109024622020-09-21 0:18:141505 days ago1600647494
0xAb91AaFF...e59EF7528
35.4249893 ETH
109011242020-09-20 19:22:401505 days ago1600629760
0xAb91AaFF...e59EF7528
33 ETH
107805492020-09-02 7:49:241523 days ago1599032964
0xAb91AaFF...e59EF7528
982.79929658 ETH
107805342020-09-02 7:45:381523 days ago1599032738
0xAb91AaFF...e59EF7528
982.79929658 ETH
107580462020-08-29 21:12:181527 days ago1598735538
0xAb91AaFF...e59EF7528
1,279 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.