ETH Price: $2,090.08 (-0.98%)

Contract

0x0d5BA2C4Ea8667Da5303Be128D2bBcADA2c73BF3
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Cast111272802020-10-25 18:51:341965 days ago1603651894IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0019635420
Cast111272792020-10-25 18:50:581965 days ago1603651858IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0020035220
Cast111272752020-10-25 18:50:041965 days ago1603651804IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.012872620
Cast111272692020-10-25 18:48:471965 days ago1603651727IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0126518820
Cast111272682020-10-25 18:48:011965 days ago1603651681IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.00709320
Cast111272522020-10-25 18:44:231965 days ago1603651463IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0019974420
Cast111272502020-10-25 18:44:051965 days ago1603651445IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0141769620
Cast111272462020-10-25 18:43:141965 days ago1603651394IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0059105220
Cast111272332020-10-25 18:39:481965 days ago1603651188IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0020035220
Cast111272302020-10-25 18:39:191965 days ago1603651159IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.014233620
Cast110686782020-10-16 18:50:581974 days ago1602874258IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0019974420
Cast110684982020-10-16 18:10:571974 days ago1602871857IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0147240421.18900147
Cast109992662020-10-06 1:33:191985 days ago1601947999IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.027316167
Cast109992032020-10-06 1:17:431985 days ago1601947063IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0066607556.1
Cast109991902020-10-06 1:15:061985 days ago1601946906IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0353154651
Cast109780182020-10-02 17:51:521988 days ago1601661112IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.01426302122
Cast109739962020-10-02 2:40:461989 days ago1601606446IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0052878454
Cast109739402020-10-02 2:25:101989 days ago1601605510IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0642548452
Cast109739132020-10-02 2:18:201989 days ago1601605100IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0582545155.0000016
Cast109739082020-10-02 2:17:011989 days ago1601605021IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0424645462
Cast109739032020-10-02 2:16:031989 days ago1601604963IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0206681755.0000016
Cast109738982020-10-02 2:14:491989 days ago1601604889IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0196957262
Cast109738922020-10-02 2:13:491989 days ago1601604829IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0272501762
Cast109738412020-10-02 2:02:131989 days ago1601604133IN
0x0d5BA2C4...DA2c73BF3
0 ETH0.0210117471
Cast109738342020-10-02 2:00:351989 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:581965 days ago1603651858
0x0d5BA2C4...DA2c73BF3
3.45774308 ETH
-111272692020-10-25 18:48:471965 days ago1603651727
0x0d5BA2C4...DA2c73BF3
3.45774308 ETH
-111272522020-10-25 18:44:231965 days ago1603651463
0x0d5BA2C4...DA2c73BF3
4 ETH
-111272502020-10-25 18:44:051965 days ago1603651445
0x0d5BA2C4...DA2c73BF3
4 ETH
-111272332020-10-25 18:39:481965 days ago1603651188
0x0d5BA2C4...DA2c73BF3
2 ETH
-111272302020-10-25 18:39:191965 days ago1603651159
0x0d5BA2C4...DA2c73BF3
2 ETH
-110686782020-10-16 18:50:581974 days ago1602874258
0x0d5BA2C4...DA2c73BF3
2 ETH
-110684982020-10-16 18:10:571974 days ago1602871857
0x0d5BA2C4...DA2c73BF3
2 ETH
-109739032020-10-02 2:16:031989 days ago1601604963
0x0d5BA2C4...DA2c73BF3
5.85240831 ETH
-109738982020-10-02 2:14:491989 days ago1601604889
0x0d5BA2C4...DA2c73BF3
1.97398841 ETH
-109738342020-10-02 2:00:351989 days ago1601604035
0x0d5BA2C4...DA2c73BF3
0.3 ETH
-109738262020-10-02 1:58:331989 days ago1601603913
0x0d5BA2C4...DA2c73BF3
0.37 ETH
-109738082020-10-02 1:55:091989 days ago1601603709
0x0d5BA2C4...DA2c73BF3
0.439 ETH
-109737782020-10-02 1:47:541989 days ago1601603274
0x0d5BA2C4...DA2c73BF3
0.01258009 ETH
-109737712020-10-02 1:46:501989 days ago1601603210
0x0d5BA2C4...DA2c73BF3
5 ETH
-109737492020-10-02 1:41:451989 days ago1601602905
0x0d5BA2C4...DA2c73BF3
4 ETH
-109737432020-10-02 1:40:431989 days ago1601602843
0x0d5BA2C4...DA2c73BF3
4 ETH
-109737242020-10-02 1:36:051989 days ago1601602565
0x0d5BA2C4...DA2c73BF3
2 ETH
-109737192020-10-02 1:34:531989 days ago1601602493
0x0d5BA2C4...DA2c73BF3
2 ETH
-109736882020-10-02 1:28:561989 days ago1601602136
0x0d5BA2C4...DA2c73BF3
1.00132638 ETH
-109736362020-10-02 1:15:281989 days ago1601601328
0x0d5BA2C4...DA2c73BF3
1 ETH
-109732252020-10-01 23:41:211989 days ago1601595681
0x0d5BA2C4...DA2c73BF3
1.3 ETH
-109732122020-10-01 23:39:001989 days ago1601595540
0x0d5BA2C4...DA2c73BF3
1.30132638 ETH
-109731882020-10-01 23:33:141989 days ago1601595194
0x0d5BA2C4...DA2c73BF3
4.3 ETH
-109731672020-10-01 23:29:191989 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.