ETH Price: $2,623.82 (-2.13%)

Contract

0xBa3bCF82E5210669298a7e7556F12A15f68c3e87
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast121824882021-04-05 22:49:321404 days ago1617662972IN
0xBa3bCF82...5f68c3e87
0 ETH0.00959265150
Cast121824832021-04-05 22:48:131404 days ago1617662893IN
0xBa3bCF82...5f68c3e87
0 ETH0.02409277146
Cast121824632021-04-05 22:42:541404 days ago1617662574IN
0xBa3bCF82...5f68c3e87
0 ETH0.02125152120
Cast121684812021-04-03 19:23:271406 days ago1617477807IN
0xBa3bCF82...5f68c3e87
0 ETH0.01320802212
Cast121684292021-04-03 19:13:281406 days ago1617477208IN
0xBa3bCF82...5f68c3e87
0 ETH0.05650768231
Cast119874632021-03-06 22:01:251434 days ago1615068085IN
0xBa3bCF82...5f68c3e87
0 ETH0.007729100
Cast119874542021-03-06 21:59:141434 days ago1615067954IN
0xBa3bCF82...5f68c3e87
0 ETH0.0245437100
Cast119504792021-03-01 5:37:111440 days ago1614577031IN
0xBa3bCF82...5f68c3e87
0 ETH0.0043690870.12756779
Cast119504752021-03-01 5:36:221440 days ago1614576982IN
0xBa3bCF82...5f68c3e87
0 ETH0.014581276
Cast119408932021-02-27 18:17:111441 days ago1614449831IN
0xBa3bCF82...5f68c3e87
0 ETH0.00935209121
Cast119408852021-02-27 18:14:321441 days ago1614449672IN
0xBa3bCF82...5f68c3e87
0 ETH0.02674682108.9
Cast116903882021-01-20 5:31:581480 days ago1611120718IN
0xBa3bCF82...5f68c3e87
0 ETH0.0040734943.1592
Cast116886992021-01-19 23:17:391480 days ago1611098259IN
0xBa3bCF82...5f68c3e87
0 ETH0.0135510949
Cast116476742021-01-13 16:11:201487 days ago1610554280IN
0xBa3bCF82...5f68c3e87
0 ETH0.0063381166
Cast116455912021-01-13 8:38:561487 days ago1610527136IN
0xBa3bCF82...5f68c3e87
0 ETH0.010866752
Cast116455412021-01-13 8:25:081487 days ago1610526308IN
0xBa3bCF82...5f68c3e87
0 ETH0.0104745851
Cast116418632021-01-12 18:44:271487 days ago1610477067IN
0xBa3bCF82...5f68c3e87
0 ETH0.0067126369.9
Cast116418582021-01-12 18:42:231487 days ago1610476943IN
0xBa3bCF82...5f68c3e87
0 ETH0.0143768870
Cast115996502021-01-06 7:27:111494 days ago1609918031IN
0xBa3bCF82...5f68c3e87
0 ETH0.0135942474
Cast115972702021-01-05 22:28:371494 days ago1609885717IN
0xBa3bCF82...5f68c3e87
0 ETH0.0175794485
Cast115968312021-01-05 20:51:151494 days ago1609879875IN
0xBa3bCF82...5f68c3e87
0 ETH0.0062397660
Cast115375262020-12-27 18:42:011503 days ago1609094521IN
0xBa3bCF82...5f68c3e87
0 ETH0.0080830644
Transfer115375122020-12-27 18:38:541503 days ago1609094334IN
0xBa3bCF82...5f68c3e87
15 ETH0.0018540285
Cast113892902020-12-05 0:13:581526 days ago1607127238IN
0xBa3bCF82...5f68c3e87
0 ETH0.0145444575
Transfer113892832020-12-05 0:12:201526 days ago1607127140IN
0xBa3bCF82...5f68c3e87
90 ETH0.0015922773
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
121824882021-04-05 22:49:321404 days ago1617662972
0xBa3bCF82...5f68c3e87
250.43282332 ETH
121824832021-04-05 22:48:131404 days ago1617662893
0xBa3bCF82...5f68c3e87
250.43282332 ETH
116476742021-01-13 16:11:201487 days ago1610554280
0xBa3bCF82...5f68c3e87
100 ETH
116455412021-01-13 8:25:081487 days ago1610526308
0xBa3bCF82...5f68c3e87
100 ETH
116418632021-01-12 18:44:271487 days ago1610477067
0xBa3bCF82...5f68c3e87
100 ETH
116418582021-01-12 18:42:231487 days ago1610476943
0xBa3bCF82...5f68c3e87
100 ETH
115996502021-01-06 7:27:111494 days ago1609918031
0xBa3bCF82...5f68c3e87
4.984754 ETH
115888372021-01-04 15:36:531496 days ago1609774613
0xBa3bCF82...5f68c3e87
4.984754 ETH
115375262020-12-27 18:42:011503 days ago1609094521
0xBa3bCF82...5f68c3e87
15 ETH
113892902020-12-05 0:13:581526 days ago1607127238
0xBa3bCF82...5f68c3e87
90 ETH
113618682020-11-30 18:55:201530 days ago1606762520
0xBa3bCF82...5f68c3e87
15 ETH
113618682020-11-30 18:55:201530 days ago1606762520
0xBa3bCF82...5f68c3e87
15 ETH
113618682020-11-30 18:55:201530 days ago1606762520
0xBa3bCF82...5f68c3e87
15 ETH
113618682020-11-30 18:55:201530 days ago1606762520
0xBa3bCF82...5f68c3e87
15 ETH
113305122020-11-25 23:34:011535 days ago1606347241
0xBa3bCF82...5f68c3e87
8.84761686 ETH
113305122020-11-25 23:34:011535 days ago1606347241
0xBa3bCF82...5f68c3e87
8.84761686 ETH
110743772020-10-17 15:57:061575 days ago1602950226
0xBa3bCF82...5f68c3e87
103 ETH
108548992020-09-13 17:07:231609 days ago1600016843
0xBa3bCF82...5f68c3e87
8.60045245 ETH
108548992020-09-13 17:07:231609 days ago1600016843
0xBa3bCF82...5f68c3e87
8.60045245 ETH
108439352020-09-12 0:44:091610 days ago1599871449
0xBa3bCF82...5f68c3e87
35 ETH
108212802020-09-08 13:34:301614 days ago1599572070
0xBa3bCF82...5f68c3e87
136 ETH
108212802020-09-08 13:34:301614 days ago1599572070
0xBa3bCF82...5f68c3e87
136 ETH
108212802020-09-08 13:34:301614 days ago1599572070
0xBa3bCF82...5f68c3e87
136 ETH
108212802020-09-08 13:34:301614 days ago1599572070
0xBa3bCF82...5f68c3e87
136 ETH
106302682020-08-10 5:19:591643 days ago1597036799
0xBa3bCF82...5f68c3e87
53.27 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.