ETH Price: $3,140.41 (+5.44%)

Contract

0xC9493738F07DDC43F1a004d4bB461fa42dE23225
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast132471912021-09-18 3:06:521148 days ago1631934412IN
0xC9493738...42dE23225
0 ETH0.0069585668.01983033
Cast126531852021-06-17 17:11:491241 days ago1623949909IN
0xC9493738...42dE23225
0 ETH0.0020559821
Cast126529522021-06-17 16:21:071241 days ago1623946867IN
0xC9493738...42dE23225
0 ETH0.0411957339
Cast126529352021-06-17 16:19:071241 days ago1623946747IN
0xC9493738...42dE23225
0 ETH0.0762926440
Cast126529052021-06-17 16:11:461241 days ago1623946306IN
0xC9493738...42dE23225
0 ETH0.039586141.8
Cast126528932021-06-17 16:08:281241 days ago1623946108IN
0xC9493738...42dE23225
0 ETH0.0758334339
Cast126480962021-06-16 22:13:251242 days ago1623881605IN
0xC9493738...42dE23225
0 ETH0.0088601715
Cast126480832021-06-16 22:10:351242 days ago1623881435IN
0xC9493738...42dE23225
0 ETH0.0034680715
Cast126480722021-06-16 22:07:251242 days ago1623881245IN
0xC9493738...42dE23225
0 ETH0.037071518
Cast126480092021-06-16 21:55:361242 days ago1623880536IN
0xC9493738...42dE23225
0 ETH0.011997319
Transfer126479922021-06-16 21:49:291242 days ago1623880169IN
0xC9493738...42dE23225
56 ETH0.0005453723
Cast126474152021-06-16 19:28:091242 days ago1623871689IN
0xC9493738...42dE23225
0 ETH0.0073473137
Cast125861052021-06-07 7:36:371251 days ago1623051397IN
0xC9493738...42dE23225
0 ETH0.0028469213.2000016
Cast125308742021-05-29 18:22:221260 days ago1622312542IN
0xC9493738...42dE23225
0 ETH0.0159625349
Cast125308652021-05-29 18:20:071260 days ago1622312407IN
0xC9493738...42dE23225
0 ETH0.011275650
Cast125308262021-05-29 18:09:501260 days ago1622311790IN
0xC9493738...42dE23225
0 ETH0.0073329834
Cast125301432021-05-29 15:49:411260 days ago1622303381IN
0xC9493738...42dE23225
0 ETH0.0091937538
Cast125176382021-05-27 17:15:171262 days ago1622135717IN
0xC9493738...42dE23225
0 ETH0.0040473839
Cast125176302021-05-27 17:13:411262 days ago1622135621IN
0xC9493738...42dE23225
0 ETH0.0082259934
Cast125175662021-05-27 16:57:481262 days ago1622134668IN
0xC9493738...42dE23225
0 ETH0.0164754336
Cast125175192021-05-27 16:48:251262 days ago1622134105IN
0xC9493738...42dE23225
0 ETH0.0712292839
Cast125126102021-05-26 22:25:551263 days ago1622067955IN
0xC9493738...42dE23225
0 ETH0.0024984431
Transfer125123082021-05-26 21:17:261263 days ago1622063846IN
0xC9493738...42dE23225
5.7 ETH0.0009010538
Cast125122342021-05-26 21:04:061263 days ago1622063046IN
0xC9493738...42dE23225
0 ETH0.0046993948
Cast125122262021-05-26 21:01:471263 days ago1622062907IN
0xC9493738...42dE23225
0 ETH0.0095633747
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
126480962021-06-16 22:13:251242 days ago1623881605
0xC9493738...42dE23225
150 ETH
126480962021-06-16 22:13:251242 days ago1623881605
0xC9493738...42dE23225
150 ETH
126480832021-06-16 22:10:351242 days ago1623881435
0xC9493738...42dE23225
91.24633472 ETH
126480722021-06-16 22:07:251242 days ago1623881245
0xC9493738...42dE23225
67.78921037 ETH
126480722021-06-16 22:07:251242 days ago1623881245
0xC9493738...42dE23225
67.78921037 ETH
126480722021-06-16 22:07:251242 days ago1623881245
0xC9493738...42dE23225
48.44609406 ETH
126480722021-06-16 22:07:251242 days ago1623881245
0xC9493738...42dE23225
48.44609406 ETH
126480722021-06-16 22:07:251242 days ago1623881245
0xC9493738...42dE23225
67.78921037 ETH
126480722021-06-16 22:07:251242 days ago1623881245
0xC9493738...42dE23225
67.78921037 ETH
126480092021-06-16 21:55:361242 days ago1623880536
0xC9493738...42dE23225
35.24633472 ETH
125308742021-05-29 18:22:221260 days ago1622312542
0xC9493738...42dE23225
7.66861609 ETH
125308652021-05-29 18:20:071260 days ago1622312407
0xC9493738...42dE23225
7.66861609 ETH
125175192021-05-27 16:48:251262 days ago1622134105
0xC9493738...42dE23225
60.2 ETH
125175192021-05-27 16:48:251262 days ago1622134105
0xC9493738...42dE23225
60.2 ETH
125175192021-05-27 16:48:251262 days ago1622134105
0xC9493738...42dE23225
43 ETH
125175192021-05-27 16:48:251262 days ago1622134105
0xC9493738...42dE23225
43 ETH
125175192021-05-27 16:48:251262 days ago1622134105
0xC9493738...42dE23225
60.2 ETH
125175192021-05-27 16:48:251262 days ago1622134105
0xC9493738...42dE23225
60.2 ETH
125126102021-05-26 22:25:551263 days ago1622067955
0xC9493738...42dE23225
5.7 ETH
125062562021-05-25 22:49:091264 days ago1621982949
0xC9493738...42dE23225
75 ETH
125062562021-05-25 22:49:091264 days ago1621982949
0xC9493738...42dE23225
75 ETH
125050962021-05-25 18:22:491264 days ago1621966969
0xC9493738...42dE23225
42.55298199 ETH
125050732021-05-25 18:17:441264 days ago1621966664
0xC9493738...42dE23225
32.55298199 ETH
125050532021-05-25 18:12:301264 days ago1621966350
0xC9493738...42dE23225
10 ETH
125049752021-05-25 17:57:291264 days ago1621965449
0xC9493738...42dE23225
53 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.