ETH Price: $3,338.70 (-2.45%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast106934722020-08-19 23:12:511595 days ago1597878771IN
0x99BF785b...6a2A09AF5
0 ETH0.0110301390
Cast106555012020-08-14 2:45:401601 days ago1597373140IN
0x99BF785b...6a2A09AF5
0 ETH0.02078953177
Cast106510882020-08-13 10:28:481602 days ago1597314528IN
0x99BF785b...6a2A09AF5
0 ETH0.04157175366.1
Cast106499772020-08-13 6:27:231602 days ago1597300043IN
0x99BF785b...6a2A09AF5
0 ETH0.50945362311.1
Cast106499122020-08-13 6:14:381602 days ago1597299278IN
0x99BF785b...6a2A09AF5
0 ETH0.10614805331
Cast106430622020-08-12 4:53:171603 days ago1597207997IN
0x99BF785b...6a2A09AF5
0 ETH0.01773115177
Cast106430422020-08-12 4:49:131603 days ago1597207753IN
0x99BF785b...6a2A09AF5
0 ETH0.0628901175
Cast106430282020-08-12 4:46:051603 days ago1597207565IN
0x99BF785b...6a2A09AF5
0 ETH0.13575811173
Cast106421982020-08-12 1:36:371603 days ago1597196197IN
0x99BF785b...6a2A09AF5
0 ETH0.01597388136
Cast106415782020-08-11 23:20:261603 days ago1597188026IN
0x99BF785b...6a2A09AF5
0 ETH0.08596998120.1
Cast106395942020-08-11 16:09:301603 days ago1597162170IN
0x99BF785b...6a2A09AF5
0 ETH0.04343029157.1
Cast106388702020-08-11 13:22:371604 days ago1597152157IN
0x99BF785b...6a2A09AF5
0 ETH0.01420827132.1
Cast106388642020-08-11 13:21:101604 days ago1597152070IN
0x99BF785b...6a2A09AF5
0 ETH0.05765623132.1
Cast106293682020-08-10 2:00:161605 days ago1597024816IN
0x99BF785b...6a2A09AF5
0 ETH0.028059667.1
Cast106159342020-08-08 0:24:231607 days ago1596846263IN
0x99BF785b...6a2A09AF5
0 ETH0.0047129346
Cast106159272020-08-08 0:22:561607 days ago1596846176IN
0x99BF785b...6a2A09AF5
0 ETH0.0321895845
Cast106095982020-08-07 0:56:161608 days ago1596761776IN
0x99BF785b...6a2A09AF5
0 ETH0.0321342544
Cast105962492020-08-04 23:29:521610 days ago1596583792IN
0x99BF785b...6a2A09AF5
0 ETH0.0041226735.1
Cast105962442020-08-04 23:28:421610 days ago1596583722IN
0x99BF785b...6a2A09AF5
0 ETH0.0252749835.1
Cast105840612020-08-03 2:17:041612 days ago1596421024IN
0x99BF785b...6a2A09AF5
0 ETH0.0669266243.1
Cast105840442020-08-03 2:13:141612 days ago1596420794IN
0x99BF785b...6a2A09AF5
0 ETH0.0150450341.80000023
Cast105840272020-08-03 2:08:301612 days ago1596420510IN
0x99BF785b...6a2A09AF5
0 ETH0.0189246542
Cast105783882020-08-02 5:11:341613 days ago1596345094IN
0x99BF785b...6a2A09AF5
0 ETH0.02696254220
Cast105602212020-07-30 9:46:051616 days ago1596102365IN
0x99BF785b...6a2A09AF5
0 ETH0.0076969878.1
Cast105602172020-07-30 9:45:091616 days ago1596102309IN
0x99BF785b...6a2A09AF5
0 ETH0.0351062678.1
View all transactions

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
106430622020-08-12 4:53:171603 days ago1597207997
0x99BF785b...6a2A09AF5
277.80314942 ETH
106430422020-08-12 4:49:131603 days ago1597207753
0x99BF785b...6a2A09AF5
277.80314942 ETH
105399272020-07-27 6:19:591619 days ago1595830799
0x99BF785b...6a2A09AF5
10 ETH
105398992020-07-27 6:13:001619 days ago1595830380
0x99BF785b...6a2A09AF5
10 ETH
105328802020-07-26 4:24:151620 days ago1595737455
0x99BF785b...6a2A09AF5
5 ETH
105328622020-07-26 4:19:481620 days ago1595737188
0x99BF785b...6a2A09AF5
5 ETH
104800002020-07-17 23:44:571628 days ago1595029497
0x99BF785b...6a2A09AF5
15.984 ETH
104764192020-07-17 10:34:581629 days ago1594982098
0x99BF785b...6a2A09AF5
62.35363995 ETH
103809172020-07-02 15:53:141643 days ago1593705194
0x99BF785b...6a2A09AF5
214.4 ETH
102752002020-06-16 6:28:141660 days ago1592288894  Contract Creation0 ETH
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.