ETH Price: $2,972.79 (+2.49%)
Gas: 1 Gwei

Contract

0xaf27E22ed1B25E6A285942d19392eF66D1D643C8
 

Overview

ETH Balance

0.012162330550240466 ETH

Eth Value

$36.16 (@ $2,972.79/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Cast195151122024-03-26 0:41:23102 days ago1711413683IN
0xaf27E22e...6D1D643C8
0 ETH0.0047419217.12361592
Cast195150042024-03-26 0:19:47102 days ago1711412387IN
0xaf27E22e...6D1D643C8
0 ETH0.0037516117.86840541
Cast112387262020-11-11 21:22:491332 days ago1605129769IN
0xaf27E22e...6D1D643C8
0 ETH0.001872519
Cast112386872020-11-11 21:13:301332 days ago1605129210IN
0xaf27E22e...6D1D643C8
0 ETH0.0322068715
Cast110430662020-10-12 20:57:061362 days ago1602536226IN
0xaf27E22e...6D1D643C8
0 ETH0.0033024733
Cast110430572020-10-12 20:55:411362 days ago1602536141IN
0xaf27E22e...6D1D643C8
0 ETH0.0070907733
Cast110430482020-10-12 20:54:031362 days ago1602536043IN
0xaf27E22e...6D1D643C8
0 ETH0.0072386833
Cast110429822020-10-12 20:40:591362 days ago1602535259IN
0xaf27E22e...6D1D643C8
0 ETH0.003682432
Cast110429402020-10-12 20:31:211362 days ago1602534681IN
0xaf27E22e...6D1D643C8
0 ETH0.0073625633
Cast110429282020-10-12 20:30:021362 days ago1602534602IN
0xaf27E22e...6D1D643C8
0 ETH0.0070245630
Cast110098092020-10-07 17:02:411367 days ago1602090161IN
0xaf27E22e...6D1D643C8
0 ETH0.0154907280
Transfer110097942020-10-07 16:59:181367 days ago1602089958IN
0xaf27E22e...6D1D643C8
20 ETH0.0019412689
Cast109991362020-10-06 1:03:191369 days ago1601946199IN
0xaf27E22e...6D1D643C8
0 ETH0.0073402577
Cast109990632020-10-06 0:48:581369 days ago1601945338IN
0xaf27E22e...6D1D643C8
0 ETH0.0222316777
Cast109698282020-10-01 11:11:231373 days ago1601550683IN
0xaf27E22e...6D1D643C8
0 ETH0.0049276550
Cast109698182020-10-01 11:10:171373 days ago1601550617IN
0xaf27E22e...6D1D643C8
0 ETH0.0158892255
Cast109697832020-10-01 11:02:021373 days ago1601550122IN
0xaf27E22e...6D1D643C8
0 ETH0.008872150
Cast109151362020-09-22 23:06:161382 days ago1600815976IN
0xaf27E22e...6D1D643C8
0 ETH0.0075885877
Cast109151192020-09-22 23:02:431382 days ago1600815763IN
0xaf27E22e...6D1D643C8
0 ETH0.0270629885
Cast109151052020-09-22 23:00:351382 days ago1600815635IN
0xaf27E22e...6D1D643C8
0 ETH0.0384424290
Cast108036832020-09-05 20:46:261399 days ago1599338786IN
0xaf27E22e...6D1D643C8
0 ETH0.0193926100
Transfer108031482020-09-05 18:49:501399 days ago1599331790IN
0xaf27E22e...6D1D643C8
10 ETH0.00682715313
Cast107307622020-08-25 16:52:081410 days ago1598374328IN
0xaf27E22e...6D1D643C8
0 ETH0.0145216575
Transfer107303252020-08-25 15:13:271410 days ago1598368407IN
0xaf27E22e...6D1D643C8
8 ETH0.00244294112
Cast107250112020-08-24 19:39:211411 days ago1598297961IN
0xaf27E22e...6D1D643C8
0 ETH0.1328177680
View all transactions

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
195151122024-03-26 0:41:23102 days ago1711413683
0xaf27E22e...6D1D643C8
0.010221 ETH
112386872020-11-11 21:13:301332 days ago1605129210
0xaf27E22e...6D1D643C8
144.19999999 ETH
112386872020-11-11 21:13:301332 days ago1605129210
0xaf27E22e...6D1D643C8
144.20194133 ETH
112386872020-11-11 21:13:301332 days ago1605129210
0xaf27E22e...6D1D643C8
144.19999999 ETH
112386872020-11-11 21:13:301332 days ago1605129210
0xaf27E22e...6D1D643C8
144.19999999 ETH
110098092020-10-07 17:02:411367 days ago1602090161
0xaf27E22e...6D1D643C8
20 ETH
108036832020-09-05 20:46:261399 days ago1599338786
0xaf27E22e...6D1D643C8
10 ETH
107307622020-08-25 16:52:081410 days ago1598374328
0xaf27E22e...6D1D643C8
8 ETH
107250112020-08-24 19:39:211411 days ago1598297961
0xaf27E22e...6D1D643C8
30.21194133 ETH
107250112020-08-24 19:39:211411 days ago1598297961
0xaf27E22e...6D1D643C8
30.21194133 ETH
104531952020-07-13 19:46:051453 days ago1594669565
0xaf27E22e...6D1D643C8
75.99 ETH
104531242020-07-13 19:28:441453 days ago1594668524
0xaf27E22e...6D1D643C8
75.99 ETH
104476772020-07-12 23:23:371454 days ago1594596217
0xaf27E22e...6D1D643C8
76 ETH
104474152020-07-12 22:30:231454 days ago1594593023  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.