ETH Price: $1,959.59 (-2.01%)
 

Overview

ETH Balance

0.001679763592336703 ETH

Eth Value

$3.29 (@ $1,959.59/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast106227942020-08-09 1:48:202033 days ago1596937700IN
0xEe242722...F05c8ed33
0 ETH0.0054386147.9
Cast106227382020-08-09 1:38:262033 days ago1596937106IN
0xEe242722...F05c8ed33
0 ETH0.0855708448
Cast106227342020-08-09 1:37:132033 days ago1596937033IN
0xEe242722...F05c8ed33
0 ETH0.0722288648
Cast106227152020-08-09 1:32:352033 days ago1596936755IN
0xEe242722...F05c8ed33
0 ETH0.0048078748
Cast106200602020-08-08 15:40:342033 days ago1596901234IN
0xEe242722...F05c8ed33
0 ETH0.007493766
Cast106200602020-08-08 15:40:342033 days ago1596901234IN
0xEe242722...F05c8ed33
0 ETH0.0176045262
Cast106199812020-08-08 15:22:242033 days ago1596900144IN
0xEe242722...F05c8ed33
0 ETH0.0425676361
Cast106070942020-08-06 15:35:402035 days ago1596728140IN
0xEe242722...F05c8ed33
0 ETH0.0083136183
Transfer106070652020-08-06 15:29:452035 days ago1596727785IN
0xEe242722...F05c8ed33
1.73 ETH0.0017667781
Cast106000822020-08-05 13:49:442036 days ago1596635384IN
0xEe242722...F05c8ed33
0 ETH0.0069130667.00000145
Cast106000622020-08-05 13:45:162036 days ago1596635116IN
0xEe242722...F05c8ed33
0 ETH0.007493766
Cast105338442020-07-26 7:52:052046 days ago1595749925IN
0xEe242722...F05c8ed33
0 ETH0.0057153758.00000145
Cast105338292020-07-26 7:49:452046 days ago1595749785IN
0xEe242722...F05c8ed33
0 ETH0.0259873260
Cast105337442020-07-26 7:29:252046 days ago1595748565IN
0xEe242722...F05c8ed33
0 ETH0.0114670854.4
Cast105337312020-07-26 7:25:502046 days ago1595748350IN
0xEe242722...F05c8ed33
0 ETH0.011749552
Cast105336832020-07-26 7:14:292046 days ago1595747669IN
0xEe242722...F05c8ed33
0 ETH0.0297709352
Cast105336412020-07-26 7:06:422046 days ago1595747202IN
0xEe242722...F05c8ed33
0 ETH0.011749552
Transfer105336122020-07-26 7:01:432046 days ago1595746903IN
0xEe242722...F05c8ed33
0.1 ETH0.0011560353.00000145
Cast105334722020-07-26 6:31:152046 days ago1595745075IN
0xEe242722...F05c8ed33
0 ETH0.0046314247
Cast105333912020-07-26 6:12:362046 days ago1595743956IN
0xEe242722...F05c8ed33
0 ETH0.0203273547
Cast105333572020-07-26 6:05:012046 days ago1595743501IN
0xEe242722...F05c8ed33
0 ETH0.0136401749.00000145
Cast105266002020-07-25 4:56:072047 days ago1595652967IN
0xEe242722...F05c8ed33
0 ETH0.0414973483
Cast105265902020-07-25 4:52:232048 days ago1595652743IN
0xEe242722...F05c8ed33
0 ETH0.0673061183
Cast105265272020-07-25 4:37:432048 days ago1595651863IN
0xEe242722...F05c8ed33
0 ETH0.019780484.1
Cast105264632020-07-25 4:21:202048 days ago1595650880IN
0xEe242722...F05c8ed33
0 ETH0.0592026882.00000145
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-106227382020-08-09 1:38:262033 days ago1596937106
0xEe242722...F05c8ed33
0.79108737 ETH
-106227382020-08-09 1:38:262033 days ago1596937106
0xEe242722...F05c8ed33
0.79186714 ETH
-106227382020-08-09 1:38:262033 days ago1596937106
0xEe242722...F05c8ed33
0.79108737 ETH
-106227382020-08-09 1:38:262033 days ago1596937106
0xEe242722...F05c8ed33
0.79108737 ETH
-106227342020-08-09 1:37:132033 days ago1596937033
0xEe242722...F05c8ed33
0.9991 ETH
-106227342020-08-09 1:37:132033 days ago1596937033
0xEe242722...F05c8ed33
1 ETH
-106227342020-08-09 1:37:132033 days ago1596937033
0xEe242722...F05c8ed33
0.9991 ETH
-106227342020-08-09 1:37:132033 days ago1596937033
0xEe242722...F05c8ed33
0.9991 ETH
-106227152020-08-09 1:32:352033 days ago1596936755
0xEe242722...F05c8ed33
0.25 ETH
-106200602020-08-08 15:40:342033 days ago1596901234
0xEe242722...F05c8ed33
0.25 ETH
-106070942020-08-06 15:35:402035 days ago1596728140
0xEe242722...F05c8ed33
1.73 ETH
-105337312020-07-26 7:25:502046 days ago1595748350
0xEe242722...F05c8ed33
0.44178908 ETH
-105336832020-07-26 7:14:292046 days ago1595747669
0xEe242722...F05c8ed33
0.44178908 ETH
-105336412020-07-26 7:06:422046 days ago1595747202
0xEe242722...F05c8ed33
0.1 ETH
-105265272020-07-25 4:37:432048 days ago1595651863
0xEe242722...F05c8ed33
0.5 ETH
-105264632020-07-25 4:21:202048 days ago1595650880
0xEe242722...F05c8ed33
1 ETH
-105255582020-07-25 0:52:442048 days ago1595638364
0xEe242722...F05c8ed33
1.5 ETH
-104947702020-07-20 6:24:002052 days ago1595226240
0xEe242722...F05c8ed33
1 ETH
-104779512020-07-17 16:00:372055 days ago1595001637  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.