Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 869 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Cast | 12651348 | 1400 days ago | IN | 0 ETH | 0.00863314 | ||||
Cast | 12651332 | 1400 days ago | IN | 0 ETH | 0.00244413 | ||||
Cast | 12651324 | 1400 days ago | IN | 0 ETH | 0.00194265 | ||||
Cast | 12647876 | 1400 days ago | IN | 0 ETH | 0.00697731 | ||||
Cast | 12446163 | 1432 days ago | IN | 0 ETH | 0.0040265 | ||||
Cast | 12446092 | 1432 days ago | IN | 0 ETH | 0.0197979 | ||||
Cast | 12446071 | 1432 days ago | IN | 0 ETH | 0.01028042 | ||||
Transfer | 12446020 | 1432 days ago | IN | 1.77 ETH | 0.00128044 | ||||
Cast | 12351856 | 1446 days ago | IN | 0 ETH | 0.00748797 | ||||
Cast | 12351824 | 1446 days ago | IN | 0 ETH | 0.00259987 | ||||
Cast | 12351805 | 1446 days ago | IN | 0 ETH | 0.00452142 | ||||
Cast | 12351789 | 1446 days ago | IN | 0 ETH | 0.01808117 | ||||
Cast | 12348125 | 1447 days ago | IN | 0 ETH | 0.00698932 | ||||
Cast | 12086418 | 1487 days ago | IN | 0 ETH | 0.04098031 | ||||
Cast | 12086183 | 1487 days ago | IN | 0 ETH | 0.01047875 | ||||
Cast | 11980993 | 1503 days ago | IN | 0 ETH | 0.00823165 | ||||
Cast | 11980981 | 1503 days ago | IN | 0 ETH | 0.06023363 | ||||
Cast | 11976445 | 1504 days ago | IN | 0 ETH | 0.02386837 | ||||
Cast | 11974235 | 1504 days ago | IN | 0 ETH | 0.00671058 | ||||
Cast | 11794439 | 1532 days ago | IN | 0 ETH | 0.01131988 | ||||
Transfer | 11786500 | 1533 days ago | IN | 0.3 ETH | 0.00359898 | ||||
Cast | 11672917 | 1551 days ago | IN | 0 ETH | 0.0033058 | ||||
Cast | 11672687 | 1551 days ago | IN | 0 ETH | 0.01149251 | ||||
Cast | 11672646 | 1551 days ago | IN | 0 ETH | 0.00798675 | ||||
Cast | 11672610 | 1551 days ago | IN | 0 ETH | 0.00745722 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 12446163 | 1432 days ago | 2.37017748 ETH | ||||
- | 12446092 | 1432 days ago | 2.35081112 ETH | ||||
- | 12446071 | 1432 days ago | 1.75063364 ETH | ||||
- | 11794439 | 1532 days ago | 0.3 ETH | ||||
- | 11672917 | 1551 days ago | 0.147 ETH | ||||
- | 11672687 | 1551 days ago | 0.147 ETH | ||||
- | 11672646 | 1551 days ago | 0.2 ETH | ||||
- | 11672610 | 1551 days ago | 0.2 ETH | ||||
- | 11580533 | 1565 days ago | 0.81 ETH | ||||
- | 11580520 | 1565 days ago | 0.81 ETH | ||||
- | 11580475 | 1565 days ago | 0.6 ETH | ||||
- | 11578570 | 1565 days ago | 0.7375 ETH | ||||
- | 11578068 | 1565 days ago | 0.7375 ETH | ||||
- | 11578039 | 1565 days ago | 0.1 ETH | ||||
- | 11577831 | 1565 days ago | 1 ETH | ||||
- | 11492059 | 1578 days ago | 0.22 ETH | ||||
- | 11491583 | 1578 days ago | 0.22 ETH | ||||
- | 11491546 | 1578 days ago | 0.15186695 ETH | ||||
- | 11467857 | 1582 days ago | 0.15013304 ETH | ||||
- | 11467319 | 1582 days ago | 0.198 ETH | ||||
- | 11467160 | 1582 days ago | 0.35 ETH | ||||
- | 11460156 | 1583 days ago | 0.24 ETH | ||||
- | 11437470 | 1587 days ago | 0.3 ETH | ||||
- | 11437455 | 1587 days ago | 0.05 ETH | ||||
- | 11437421 | 1587 days ago | 0.35 ETH |
Loading...
Loading
Minimal Proxy Contract for 0x939daad09fc4a9b8f8a9352a485dab2df4f4b3f8
Contract Name:
InstaAccount
Compiler Version
v0.6.0+commit.26b70077
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"}]
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.