ETH Price: $2,121.59 (-5.12%)

Contract

0x0d5BA2C4Ea8667Da5303Be128D2bBcADA2c73BF3
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast111272802020-10-25 18:51:341970 days ago1603651894IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0019635420
Cast111272792020-10-25 18:50:581970 days ago1603651858IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0020035220
Cast111272752020-10-25 18:50:041970 days ago1603651804IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.012872620
Cast111272692020-10-25 18:48:471970 days ago1603651727IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0126518820
Cast111272682020-10-25 18:48:011970 days ago1603651681IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.00709320
Cast111272522020-10-25 18:44:231970 days ago1603651463IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0019974420
Cast111272502020-10-25 18:44:051970 days ago1603651445IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0141769620
Cast111272462020-10-25 18:43:141970 days ago1603651394IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0059105220
Cast111272332020-10-25 18:39:481970 days ago1603651188IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0020035220
Cast111272302020-10-25 18:39:191970 days ago1603651159IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.014233620
Cast110686782020-10-16 18:50:581979 days ago1602874258IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0019974420
Cast110684982020-10-16 18:10:571979 days ago1602871857IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0147240421.18900147
Cast109992662020-10-06 1:33:191990 days ago1601947999IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.027316167
Cast109992032020-10-06 1:17:431990 days ago1601947063IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0066607556.1
Cast109991902020-10-06 1:15:061990 days ago1601946906IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0353154651
Cast109780182020-10-02 17:51:521993 days ago1601661112IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.01426302122
Cast109739962020-10-02 2:40:461994 days ago1601606446IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0052878454
Cast109739402020-10-02 2:25:101994 days ago1601605510IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0642548452
Cast109739132020-10-02 2:18:201994 days ago1601605100IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0582545155.0000016
Cast109739082020-10-02 2:17:011994 days ago1601605021IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0424645462
Cast109739032020-10-02 2:16:031994 days ago1601604963IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0206681755.0000016
Cast109738982020-10-02 2:14:491994 days ago1601604889IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0196957262
Cast109738922020-10-02 2:13:491994 days ago1601604829IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0272501762
Cast109738412020-10-02 2:02:131994 days ago1601604133IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0210117471
Cast109738342020-10-02 2:00:351994 days ago1601604035IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0065915566
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-111272792020-10-25 18:50:581970 days ago1603651858
0x0d5BA2C4...DA2c73BF3
3.45774308 ETH
-111272692020-10-25 18:48:471970 days ago1603651727
0x0d5BA2C4...DA2c73BF3
3.45774308 ETH
-111272522020-10-25 18:44:231970 days ago1603651463
0x0d5BA2C4...DA2c73BF3
4 ETH
-111272502020-10-25 18:44:051970 days ago1603651445
0x0d5BA2C4...DA2c73BF3
4 ETH
-111272332020-10-25 18:39:481970 days ago1603651188
0x0d5BA2C4...DA2c73BF3
2 ETH
-111272302020-10-25 18:39:191970 days ago1603651159
0x0d5BA2C4...DA2c73BF3
2 ETH
-110686782020-10-16 18:50:581979 days ago1602874258
0x0d5BA2C4...DA2c73BF3
2 ETH
-110684982020-10-16 18:10:571979 days ago1602871857
0x0d5BA2C4...DA2c73BF3
2 ETH
-109739032020-10-02 2:16:031994 days ago1601604963
0x0d5BA2C4...DA2c73BF3
5.85240831 ETH
-109738982020-10-02 2:14:491994 days ago1601604889
0x0d5BA2C4...DA2c73BF3
1.97398841 ETH
-109738342020-10-02 2:00:351994 days ago1601604035
0x0d5BA2C4...DA2c73BF3
0.3 ETH
-109738262020-10-02 1:58:331994 days ago1601603913
0x0d5BA2C4...DA2c73BF3
0.37 ETH
-109738082020-10-02 1:55:091994 days ago1601603709
0x0d5BA2C4...DA2c73BF3
0.439 ETH
-109737782020-10-02 1:47:541994 days ago1601603274
0x0d5BA2C4...DA2c73BF3
0.01258009 ETH
-109737712020-10-02 1:46:501994 days ago1601603210
0x0d5BA2C4...DA2c73BF3
5 ETH
-109737492020-10-02 1:41:451994 days ago1601602905
0x0d5BA2C4...DA2c73BF3
4 ETH
-109737432020-10-02 1:40:431994 days ago1601602843
0x0d5BA2C4...DA2c73BF3
4 ETH
-109737242020-10-02 1:36:051994 days ago1601602565
0x0d5BA2C4...DA2c73BF3
2 ETH
-109737192020-10-02 1:34:531994 days ago1601602493
0x0d5BA2C4...DA2c73BF3
2 ETH
-109736882020-10-02 1:28:561994 days ago1601602136
0x0d5BA2C4...DA2c73BF3
1.00132638 ETH
-109736362020-10-02 1:15:281994 days ago1601601328
0x0d5BA2C4...DA2c73BF3
1 ETH
-109732252020-10-01 23:41:211994 days ago1601595681
0x0d5BA2C4...DA2c73BF3
1.3 ETH
-109732122020-10-01 23:39:001994 days ago1601595540
0x0d5BA2C4...DA2c73BF3
1.30132638 ETH
-109731882020-10-01 23:33:141994 days ago1601595194
0x0d5BA2C4...DA2c73BF3
4.3 ETH
-109731672020-10-01 23:29:191994 days ago1601594959
0x0d5BA2C4...DA2c73BF3
4.3 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.