ETH Price: $3,503.17 (+2.52%)
Gas: 15 Gwei

Contract

0x4ea8ab4e4ac8f552f769DEF02B549B208eD27797
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast126544402021-06-17 21:45:431125 days ago1623966343IN
0x4ea8ab4e...08eD27797
0 ETH0.0211160910
Cast123912842021-05-08 3:43:571166 days ago1620445437IN
0x4ea8ab4e...08eD27797
0 ETH0.004026551
Cast123912722021-05-08 3:41:151166 days ago1620445275IN
0x4ea8ab4e...08eD27797
0 ETH0.023090351
Cast123112392021-04-25 19:00:161178 days ago1619377216IN
0x4ea8ab4e...08eD27797
0 ETH0.0470793142
Cast112190212020-11-08 20:44:581346 days ago1604868298IN
0x4ea8ab4e...08eD27797
0 ETH0.0014982615
Cast112190142020-11-08 20:43:151346 days ago1604868195IN
0x4ea8ab4e...08eD27797
0 ETH0.003109215
Cast112189332020-11-08 20:26:481346 days ago1604867208IN
0x4ea8ab4e...08eD27797
0 ETH0.0033999815.5
Cast112188732020-11-08 20:12:351346 days ago1604866355IN
0x4ea8ab4e...08eD27797
0 ETH0.001548215.5
Cast112188632020-11-08 20:10:401346 days ago1604866240IN
0x4ea8ab4e...08eD27797
0 ETH0.0033412415.5
Cast112188572020-11-08 20:09:491346 days ago1604866189IN
0x4ea8ab4e...08eD27797
0 ETH0.0036293515.5
Cast112188272020-11-08 20:04:571346 days ago1604865897IN
0x4ea8ab4e...08eD27797
0 ETH0.001548215.5
Cast112188232020-11-08 20:04:291346 days ago1604865869IN
0x4ea8ab4e...08eD27797
0 ETH0.0033412415.5
Cast112188152020-11-08 20:02:381346 days ago1604865758IN
0x4ea8ab4e...08eD27797
0 ETH0.0036289815.5
Cast112187972020-11-08 19:58:411346 days ago1604865521IN
0x4ea8ab4e...08eD27797
0 ETH0.0015981416
Cast112187902020-11-08 19:57:081346 days ago1604865428IN
0x4ea8ab4e...08eD27797
0 ETH0.0034490216
Cast112187842020-11-08 19:55:331346 days ago1604865333IN
0x4ea8ab4e...08eD27797
0 ETH0.0035064316
Cast112187542020-11-08 19:48:401346 days ago1604864920IN
0x4ea8ab4e...08eD27797
0 ETH0.0017029917
Cast112187462020-11-08 19:48:001346 days ago1604864880IN
0x4ea8ab4e...08eD27797
0 ETH0.0036645817
Cast110941492020-10-20 16:42:511365 days ago1603212171IN
0x4ea8ab4e...08eD27797
0 ETH0.01300899132
Cast110941382020-10-20 16:41:051365 days ago1603212065IN
0x4ea8ab4e...08eD27797
0 ETH0.03175326110
Cast108028202020-09-05 17:40:351410 days ago1599327635IN
0x4ea8ab4e...08eD27797
0 ETH0.0438232200
Cast106720232020-08-16 15:58:181430 days ago1597593498IN
0x4ea8ab4e...08eD27797
0 ETH0.010819108
Cast106720072020-08-16 15:55:111430 days ago1597593311IN
0x4ea8ab4e...08eD27797
0 ETH0.02357898109.4
Cast105750682020-08-01 16:47:271445 days ago1596300447IN
0x4ea8ab4e...08eD27797
0 ETH0.0039953640
Cast105747852020-08-01 15:51:381445 days ago1596297098IN
0x4ea8ab4e...08eD27797
0 ETH0.0112075652
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
123912842021-05-08 3:43:571166 days ago1620445437
0x4ea8ab4e...08eD27797
18 ETH
123912722021-05-08 3:41:151166 days ago1620445275
0x4ea8ab4e...08eD27797
18 ETH
123112392021-04-25 19:00:161178 days ago1619377216
0x4ea8ab4e...08eD27797
37.92825739 ETH
123112392021-04-25 19:00:161178 days ago1619377216
0x4ea8ab4e...08eD27797
37.92825739 ETH
112190212020-11-08 20:44:581346 days ago1604868298
0x4ea8ab4e...08eD27797
30 ETH
112190142020-11-08 20:43:151346 days ago1604868195
0x4ea8ab4e...08eD27797
30 ETH
112188732020-11-08 20:12:351346 days ago1604866355
0x4ea8ab4e...08eD27797
40 ETH
112188632020-11-08 20:10:401346 days ago1604866240
0x4ea8ab4e...08eD27797
40 ETH
112188272020-11-08 20:04:571346 days ago1604865897
0x4ea8ab4e...08eD27797
40 ETH
112188232020-11-08 20:04:291346 days ago1604865869
0x4ea8ab4e...08eD27797
40 ETH
112187972020-11-08 19:58:411346 days ago1604865521
0x4ea8ab4e...08eD27797
40 ETH
112187902020-11-08 19:57:081346 days ago1604865428
0x4ea8ab4e...08eD27797
40 ETH
112187542020-11-08 19:48:401346 days ago1604864920
0x4ea8ab4e...08eD27797
40 ETH
112187462020-11-08 19:48:001346 days ago1604864880
0x4ea8ab4e...08eD27797
40 ETH
106720232020-08-16 15:58:181430 days ago1597593498
0x4ea8ab4e...08eD27797
30 ETH
106720072020-08-16 15:55:111430 days ago1597593311
0x4ea8ab4e...08eD27797
30 ETH
105750682020-08-01 16:47:271445 days ago1596300447
0x4ea8ab4e...08eD27797
20 ETH
105747852020-08-01 15:51:381445 days ago1596297098
0x4ea8ab4e...08eD27797
20 ETH
105445962020-07-27 23:51:291450 days ago1595893889
0x4ea8ab4e...08eD27797
45 ETH
105443152020-07-27 22:48:581450 days ago1595890138
0x4ea8ab4e...08eD27797
45 ETH
105169622020-07-23 17:08:371454 days ago1595524117
0x4ea8ab4e...08eD27797
15 ETH
105169512020-07-23 17:07:071454 days ago1595524027
0x4ea8ab4e...08eD27797
15 ETH
104210262020-07-08 20:31:171469 days ago1594240277
0x4ea8ab4e...08eD27797
17 ETH
104210052020-07-08 20:26:281469 days ago1594239988
0x4ea8ab4e...08eD27797
17 ETH
103810652020-07-02 16:25:541475 days ago1593707154
0x4ea8ab4e...08eD27797
20 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.