ETH Price: $2,071.92 (+4.05%)

Contract

0xd4cD1b2D82F36A44EAcB6C33FC19FF2A5b6F488d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast133926052021-10-10 18:48:331631 days ago1633891713IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0073485393.07720124
Transfer133925752021-10-10 18:40:491631 days ago1633891249IN
0xd4cD1b2D...A5b6F488d
0.1 ETH0.0021690891.47644213
Cast106637132020-08-15 8:56:382053 days ago1597481798IN
0xd4cD1b2D...A5b6F488d
0 ETH0.01061865106
Cast106637082020-08-15 8:55:462053 days ago1597481746IN
0xd4cD1b2D...A5b6F488d
0 ETH0.07100261106
Cast106375672020-08-11 8:33:532057 days ago1597134833IN
0xd4cD1b2D...A5b6F488d
0 ETH0.01362636120
Cast106375622020-08-11 8:32:392057 days ago1597134759IN
0xd4cD1b2D...A5b6F488d
0 ETH0.07050318113
Transfer106375492020-08-11 8:29:372057 days ago1597134577IN
0xd4cD1b2D...A5b6F488d
10 ETH0.00246475113.00000123
Cast105806012020-08-02 13:06:192066 days ago1596373579IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0062088363
Cast105805692020-08-02 12:57:432066 days ago1596373063IN
0xd4cD1b2D...A5b6F488d
0 ETH0.005008850
Cast105805592020-08-02 12:56:112066 days ago1596372971IN
0xd4cD1b2D...A5b6F488d
0 ETH0.018028768
Cast105805572020-08-02 12:55:472066 days ago1596372947IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0196390868
Cast105805192020-08-02 12:46:372066 days ago1596372397IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0196887142
Cast104540382020-07-13 22:59:162085 days ago1594681156IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0029682525
Cast104540342020-07-13 22:58:122085 days ago1594681092IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0052727225
Cast104540202020-07-13 22:54:292085 days ago1594680869IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0136798923
Transfer104539992020-07-13 22:49:242085 days ago1594680564IN
0xd4cD1b2D...A5b6F488d
1.2 ETH0.0005234824
Cast104532622020-07-13 20:04:002085 days ago1594670640IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0045229541
Cast104532572020-07-13 20:02:382085 days ago1594670558IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0212155335
Transfer104532292020-07-13 19:54:582085 days ago1594670098IN
0xd4cD1b2D...A5b6F488d
1.64 ETH0.0007634235
Cast104532152020-07-13 19:51:012085 days ago1594669861IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0039743535
Cast104531792020-07-13 19:42:492085 days ago1594669369IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0230037137
Transfer104531552020-07-13 19:36:422085 days ago1594669002IN
0xd4cD1b2D...A5b6F488d
3.9 ETH0.0007634235
Cast104310122020-07-10 9:42:322089 days ago1594374152IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0024638225
Cast104309682020-07-10 9:32:112089 days ago1594373531IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0149840730
Cast104309522020-07-10 9:29:162089 days ago1594373356IN
0xd4cD1b2D...A5b6F488d
0 ETH0.0112908935
View all transactions

Latest 11 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-133926052021-10-10 18:48:331631 days ago1633891713
0xd4cD1b2D...A5b6F488d
0.1 ETH
-106637132020-08-15 8:56:382053 days ago1597481798
0xd4cD1b2D...A5b6F488d
10.0001573 ETH
-106637082020-08-15 8:55:462053 days ago1597481746
0xd4cD1b2D...A5b6F488d
10.0001573 ETH
-106375622020-08-11 8:32:392057 days ago1597134759
0xd4cD1b2D...A5b6F488d
10 ETH
-105805692020-08-02 12:57:432066 days ago1596373063
0xd4cD1b2D...A5b6F488d
7.54097336 ETH
-105805572020-08-02 12:55:472066 days ago1596372947
0xd4cD1b2D...A5b6F488d
7.54097336 ETH
-104540202020-07-13 22:54:292085 days ago1594680869
0xd4cD1b2D...A5b6F488d
1.2 ETH
-104532572020-07-13 20:02:382085 days ago1594670558
0xd4cD1b2D...A5b6F488d
1.64 ETH
-104531792020-07-13 19:42:492085 days ago1594669369
0xd4cD1b2D...A5b6F488d
3.9 ETH
-104309522020-07-10 9:29:162089 days ago1594373356
0xd4cD1b2D...A5b6F488d
0.8 ETH
-104308782020-07-10 9:13:192089 days ago1594372399  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.