ETH Price: $2,073.94 (+8.43%)
 

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
Cast123183572021-04-26 21:21:191766 days ago1619472079IN
0xe044Fdd9...DDe3ee890
0 ETH0.0060787366
Cast123183552021-04-26 21:20:521766 days ago1619472052IN
0xe044Fdd9...DDe3ee890
0 ETH0.0052107666
Cast123183492021-04-26 21:19:591766 days ago1619471999IN
0xe044Fdd9...DDe3ee890
0 ETH0.0116502566
Cast123183392021-04-26 21:17:321766 days ago1619471852IN
0xe044Fdd9...DDe3ee890
0 ETH0.0998783974
Cast119571062021-03-02 6:10:361822 days ago1614665436IN
0xe044Fdd9...DDe3ee890
0 ETH0.03268641121.5
Cast119335582021-02-26 15:08:501825 days ago1614352130IN
0xe044Fdd9...DDe3ee890
0 ETH0.01213889154
Cast108906072020-09-19 4:54:421986 days ago1600491282IN
0xe044Fdd9...DDe3ee890
0 ETH0.01234387119
Cast107519782020-08-28 22:53:092007 days ago1598655189IN
0xe044Fdd9...DDe3ee890
0 ETH0.007573375.6
Cast107519712020-08-28 22:52:192007 days ago1598655139IN
0xe044Fdd9...DDe3ee890
0 ETH0.0163751279
Cast107519682020-08-28 22:51:102007 days ago1598655070IN
0xe044Fdd9...DDe3ee890
0 ETH0.0161442879
Cast107467252020-08-28 3:20:062008 days ago1598584806IN
0xe044Fdd9...DDe3ee890
0 ETH0.009347748.20244467
Transfer107467032020-08-28 3:15:222008 days ago1598584522IN
0xe044Fdd9...DDe3ee890
50 ETH0.001090650
Cast107210772020-08-24 5:01:342012 days ago1598245294IN
0xe044Fdd9...DDe3ee890
0 ETH0.0070123270
Cast107210612020-08-24 4:57:362012 days ago1598245056IN
0xe044Fdd9...DDe3ee890
0 ETH0.0144427867
Cast107194712020-08-23 23:00:272012 days ago1598223627IN
0xe044Fdd9...DDe3ee890
0 ETH0.0100841552
Transfer107194632020-08-23 22:59:242012 days ago1598223564IN
0xe044Fdd9...DDe3ee890
85 ETH0.0011342252
Cast107192792020-08-23 22:18:282012 days ago1598221108IN
0xe044Fdd9...DDe3ee890
0 ETH0.0051434451.34405899
Cast107192742020-08-23 22:17:502012 days ago1598221070IN
0xe044Fdd9...DDe3ee890
0 ETH0.0110679351.34405899
Cast107088752020-08-22 8:08:172014 days ago1598083697IN
0xe044Fdd9...DDe3ee890
0 ETH0.0193843100
Transfer107088182020-08-22 7:52:472014 days ago1598082767IN
0xe044Fdd9...DDe3ee890
22 ETH0.001461467
Cast107087902020-08-22 7:47:162014 days ago1598082436IN
0xe044Fdd9...DDe3ee890
0 ETH0.0519860469
Cast106651892020-08-15 14:26:502020 days ago1597501610IN
0xe044Fdd9...DDe3ee890
0 ETH0.0102185887
Cast106568502020-08-14 7:42:332022 days ago1597390953IN
0xe044Fdd9...DDe3ee890
0 ETH0.03237465301
Cast106568432020-08-14 7:40:252022 days ago1597390825IN
0xe044Fdd9...DDe3ee890
0 ETH0.11802059301
Cast106568232020-08-14 7:36:482022 days ago1597390608IN
0xe044Fdd9...DDe3ee890
0 ETH0.4493271300
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-123183552021-04-26 21:20:521766 days ago1619472052
0xe044Fdd9...DDe3ee890
513.20459349 ETH
-123183492021-04-26 21:19:591766 days ago1619471999
0xe044Fdd9...DDe3ee890
513.20459349 ETH
-123183392021-04-26 21:17:321766 days ago1619471852
0xe044Fdd9...DDe3ee890
150 ETH
-123183392021-04-26 21:17:321766 days ago1619471852
0xe044Fdd9...DDe3ee890
150 ETH
-123183392021-04-26 21:17:321766 days ago1619471852
0xe044Fdd9...DDe3ee890
150 ETH
-123183392021-04-26 21:17:321766 days ago1619471852
0xe044Fdd9...DDe3ee890
150 ETH
-107519782020-08-28 22:53:092007 days ago1598655189
0xe044Fdd9...DDe3ee890
359.29665242 ETH
-107519712020-08-28 22:52:192007 days ago1598655139
0xe044Fdd9...DDe3ee890
359.29665242 ETH
-107467252020-08-28 3:20:062008 days ago1598584806
0xe044Fdd9...DDe3ee890
50 ETH
-107210772020-08-24 5:01:342012 days ago1598245294
0xe044Fdd9...DDe3ee890
50 ETH
-107210612020-08-24 4:57:362012 days ago1598245056
0xe044Fdd9...DDe3ee890
50 ETH
-107194712020-08-23 23:00:272012 days ago1598223627
0xe044Fdd9...DDe3ee890
85 ETH
-107192792020-08-23 22:18:282012 days ago1598221108
0xe044Fdd9...DDe3ee890
85 ETH
-107192742020-08-23 22:17:502012 days ago1598221070
0xe044Fdd9...DDe3ee890
85 ETH
-107088752020-08-22 8:08:172014 days ago1598083697
0xe044Fdd9...DDe3ee890
26.66003816 ETH
-107087902020-08-22 7:47:162014 days ago1598082436
0xe044Fdd9...DDe3ee890
25.6412659 ETH
-107087902020-08-22 7:47:162014 days ago1598082436
0xe044Fdd9...DDe3ee890
25.6412659 ETH
-106283902020-08-09 22:26:082026 days ago1597011968
0xe044Fdd9...DDe3ee890
1.26190884 ETH
-106154362020-08-07 22:33:342028 days ago1596839614
0xe044Fdd9...DDe3ee890
0.88557631 ETH
-106039672020-08-06 4:15:362030 days ago1596687336
0xe044Fdd9...DDe3ee890
0.57818559 ETH
-105959532020-08-04 22:22:272031 days ago1596579747
0xe044Fdd9...DDe3ee890
0.54968656 ETH
-105882152020-08-03 17:39:322032 days ago1596476372
0xe044Fdd9...DDe3ee890
0.50311 ETH
-105812612020-08-02 15:40:072033 days ago1596382807
0xe044Fdd9...DDe3ee890
0.88157083 ETH
-105755552020-08-01 18:30:402034 days ago1596306640
0xe044Fdd9...DDe3ee890
90 ETH
-105754612020-08-01 18:12:432034 days ago1596305563
0xe044Fdd9...DDe3ee890
108.4208668 ETH
View All Internal Transactions
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.