Latest 25 from a total of 73 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Cast | 12318357 | 1766 days ago | IN | 0 ETH | 0.00607873 | ||||
| Cast | 12318355 | 1766 days ago | IN | 0 ETH | 0.00521076 | ||||
| Cast | 12318349 | 1766 days ago | IN | 0 ETH | 0.01165025 | ||||
| Cast | 12318339 | 1766 days ago | IN | 0 ETH | 0.09987839 | ||||
| Cast | 11957106 | 1822 days ago | IN | 0 ETH | 0.03268641 | ||||
| Cast | 11933558 | 1825 days ago | IN | 0 ETH | 0.01213889 | ||||
| Cast | 10890607 | 1986 days ago | IN | 0 ETH | 0.01234387 | ||||
| Cast | 10751978 | 2007 days ago | IN | 0 ETH | 0.0075733 | ||||
| Cast | 10751971 | 2007 days ago | IN | 0 ETH | 0.01637512 | ||||
| Cast | 10751968 | 2007 days ago | IN | 0 ETH | 0.01614428 | ||||
| Cast | 10746725 | 2008 days ago | IN | 0 ETH | 0.0093477 | ||||
| Transfer | 10746703 | 2008 days ago | IN | 50 ETH | 0.0010906 | ||||
| Cast | 10721077 | 2012 days ago | IN | 0 ETH | 0.00701232 | ||||
| Cast | 10721061 | 2012 days ago | IN | 0 ETH | 0.01444278 | ||||
| Cast | 10719471 | 2012 days ago | IN | 0 ETH | 0.01008415 | ||||
| Transfer | 10719463 | 2012 days ago | IN | 85 ETH | 0.00113422 | ||||
| Cast | 10719279 | 2012 days ago | IN | 0 ETH | 0.00514344 | ||||
| Cast | 10719274 | 2012 days ago | IN | 0 ETH | 0.01106793 | ||||
| Cast | 10708875 | 2014 days ago | IN | 0 ETH | 0.0193843 | ||||
| Transfer | 10708818 | 2014 days ago | IN | 22 ETH | 0.0014614 | ||||
| Cast | 10708790 | 2014 days ago | IN | 0 ETH | 0.05198604 | ||||
| Cast | 10665189 | 2020 days ago | IN | 0 ETH | 0.01021858 | ||||
| Cast | 10656850 | 2022 days ago | IN | 0 ETH | 0.03237465 | ||||
| Cast | 10656843 | 2022 days ago | IN | 0 ETH | 0.11802059 | ||||
| Cast | 10656823 | 2022 days ago | IN | 0 ETH | 0.4493271 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 12318355 | 1766 days ago | 513.20459349 ETH | ||||
| - | 12318349 | 1766 days ago | 513.20459349 ETH | ||||
| - | 12318339 | 1766 days ago | 150 ETH | ||||
| - | 12318339 | 1766 days ago | 150 ETH | ||||
| - | 12318339 | 1766 days ago | 150 ETH | ||||
| - | 12318339 | 1766 days ago | 150 ETH | ||||
| - | 10751978 | 2007 days ago | 359.29665242 ETH | ||||
| - | 10751971 | 2007 days ago | 359.29665242 ETH | ||||
| - | 10746725 | 2008 days ago | 50 ETH | ||||
| - | 10721077 | 2012 days ago | 50 ETH | ||||
| - | 10721061 | 2012 days ago | 50 ETH | ||||
| - | 10719471 | 2012 days ago | 85 ETH | ||||
| - | 10719279 | 2012 days ago | 85 ETH | ||||
| - | 10719274 | 2012 days ago | 85 ETH | ||||
| - | 10708875 | 2014 days ago | 26.66003816 ETH | ||||
| - | 10708790 | 2014 days ago | 25.6412659 ETH | ||||
| - | 10708790 | 2014 days ago | 25.6412659 ETH | ||||
| - | 10628390 | 2026 days ago | 1.26190884 ETH | ||||
| - | 10615436 | 2028 days ago | 0.88557631 ETH | ||||
| - | 10603967 | 2030 days ago | 0.57818559 ETH | ||||
| - | 10595953 | 2031 days ago | 0.54968656 ETH | ||||
| - | 10588215 | 2032 days ago | 0.50311 ETH | ||||
| - | 10581261 | 2033 days ago | 0.88157083 ETH | ||||
| - | 10575555 | 2034 days ago | 90 ETH | ||||
| - | 10575461 | 2034 days ago | 108.4208668 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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
Net Worth in USD
$1.09
Net Worth in ETH
0.000526
Token Allocations
CDAI
100.00%
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.025065 | 43.5217 | $1.09 |
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.