Contract 0xaa59791cc531235a362a2bb3027b826b2c53d707

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x4b8ab5d784f4c37ad77f81b6602f518cd6989a56f78b8cc2e1870e0c37119459Execute351495022022-11-03 12:47:34139 days 13 hrs ago0x942f9ce5d9a33a82f88d233aeb3292e680230348 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.031894949984184.216925138
0xa92e9ddb7f116e04f5a035ccf211af50b0330ddb67a305c78ae62a7d3e558c08Execute351492472022-11-03 12:38:48139 days 13 hrs ago0x942f9ce5d9a33a82f88d233aeb3292e680230348 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.033584151479176.504154426
0x51b002c469dc6d6cb91bc46d3607590e8dd2a52d5354b865d53f292d307fd48dExecute351492292022-11-03 12:38:12139 days 13 hrs ago0x942f9ce5d9a33a82f88d233aeb3292e680230348 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.014135541271167.25482188
0x592ebfd2f694f10427caf31ae7b1cd12fd042ed6b3841ad75431ac62fb5dc5f5Transfer351491772022-11-03 12:36:24139 days 13 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070.2 MATIC0.001745747702 73.622963152
0x715e5c076f8c29c917f8a9d0f63a384182597b8e752c698b10ee4eec9b173ffeExecute By Sende...313122872022-07-30 11:22:25235 days 15 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0x1b1493f8b09e4a7362963e86ef13eb4eac07736ffd85a8251756d2e19f1790ddExecute By Sende...313105412022-07-30 10:22:24235 days 16 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0xd2dcefa1b307639c4d9851096543894901dcdb35acb03880274229fe91e3115eExecute By Sende...313051592022-07-30 7:02:24235 days 19 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0xbd15a40d4e7c97a336420de563ff91de662704ec340c475005612e0f56cacc85Execute By Sende...313041832022-07-30 6:22:24235 days 20 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0xff0c4ed43239d0fadff1664f23f615ad5aed1151e74953bac942f754bdc47fd6Execute By Sende...312983492022-07-30 2:42:25235 days 23 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0x26563448701589a9634bb115d6465bc0a151ddb5613f11dea9e168c45e90bfbcExecute By Sende...312952332022-07-30 0:42:30236 days 1 hr ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0x344c5302ee0703350552798f91aa62d9abd383e911b9a1b2f4aaaa96c4ca2a5dExecute By Sende...312927672022-07-29 23:02:25236 days 3 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0xb94d287c642c26c6f8f88fdba85f02b92fd1c695b488b865b08a28231b719139Execute By Sende...312912702022-07-29 22:02:25236 days 4 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0xcc1afb4a487920f0a08c6213454a5a1c9c082c74ee31ea55c20b73c9d410d3b8Execute By Sende...312892582022-07-29 20:42:25236 days 5 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0x50035a430c001cc3617d9ce14fc0c4cd1456ece3dbffc8550e6d31251121f1d9Execute By Sende...312886762022-07-29 20:22:25236 days 6 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.041667249083 544.20752411
0xbbb8c17e55f3e08d762b99f2545912358bbf9e5a00277c4472b88098f5143649Execute By Sende...312843992022-07-29 17:42:24236 days 8 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0xed939a218532d42ecade0ace335d9ce938fbc1fb36eaab5013ae56432ea736dcExecute By Sende...312810982022-07-29 15:42:24236 days 10 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0x8d9b9c51b5c70209ea3e5b6efa5497a8c60aca84df98694ed1a93d16621653a4Execute By Sende...312805812022-07-29 15:22:24236 days 11 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0x0e334b21df49729bc91e51cbb1a2487f6fc3a36669f0ec1ce6b74ca0517fbeaaExecute By Sende...312800002022-07-29 15:02:26236 days 11 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0x3e382085d54889004893416fbcd16efc1efc3cf1ffd7eb010b432c008d3a1800Execute By Sende...312777972022-07-29 13:42:24236 days 12 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0xb889f197704e460311b02c2964d1b123d8f30f6e582d23ab9f0a815012d73ffcExecute By Sende...312745602022-07-29 11:42:28236 days 14 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.066594130517 544.20752411
0x88c2b532f11b7662aa288c560e9e902e638113a17693304b93d4f479315bb648Execute By Sende...312678952022-07-29 7:42:24236 days 18 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0xeede7c866a2969204adb5243810cb2df7dd35e0ab77aa9f9a659f4477ad80f93Execute By Sende...312638832022-07-29 5:22:24236 days 21 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035333761917 544.20752411
0xfa9da735bf0549dbcb5fea53f1aab2da88b180803cc62842fcd2e38be12b252cExecute By Sende...312633732022-07-29 5:02:24236 days 21 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0xc4670fdc71a92ed4a693863e250d9c197b26614e5e2221fe27375b144fdf4bceExecute By Sende...312628632022-07-29 4:42:25236 days 21 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
0x4a2e91d843d53103a16c4a24d38773ba6d4385071c5e81d98b34678c54199982Execute By Sende...312622812022-07-29 4:22:25236 days 22 hrs ago0x302b52ece5f742eac095471b5d6acc2437a99930 IN 0xaa59791cc531235a362a2bb3027b826b2c53d7070 MATIC0.035340292408 544.20752411
[ Download CSV Export 
Latest 11 internal transactions
Parent Txn Hash Block From To Value
0x4b8ab5d784f4c37ad77f81b6602f518cd6989a56f78b8cc2e1870e0c37119459351495022022-11-03 12:47:34139 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.035491601230937496 MATIC
0x4b8ab5d784f4c37ad77f81b6602f518cd6989a56f78b8cc2e1870e0c37119459351495022022-11-03 12:47:34139 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d707 SushiSwap: Trident Router0.0001 MATIC
0xa92e9ddb7f116e04f5a035ccf211af50b0330ddb67a305c78ae62a7d3e558c08351492472022-11-03 12:38:48139 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.037176187526004 MATIC
0xa92e9ddb7f116e04f5a035ccf211af50b0330ddb67a305c78ae62a7d3e558c08351492472022-11-03 12:38:48139 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d707 SushiSwap: Trident Router0.001 MATIC
0x51b002c469dc6d6cb91bc46d3607590e8dd2a52d5354b865d53f292d307fd48d351492292022-11-03 12:38:12139 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.01597066117687156 MATIC
0xd52550d02d302f8f480860416ec9710f4588453e469b7bc061e87e9a23a36b02303229472022-07-04 9:31:43261 days 16 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.005770800175248778 MATIC
0x25a0737d900db238c87e6d9cc53fc634404ada04557073b044a68a59bced34b8303224262022-07-04 9:13:44261 days 17 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.005750870770133613 MATIC
0x5a7025f68a33079b3a93564b4280da16da03518e51f09b84f56fb75d46596c5c303223502022-07-04 9:11:08261 days 17 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.015284970947396024 MATIC
0x825e890389254192a2b4c28c59681ea162add60f69a71a4e5768c9c2ad9829cd301376712022-06-29 13:18:46266 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x942f9ce5d9a33a82f88d233aeb3292e6802303480.015356748525085816 MATIC
0x825e890389254192a2b4c28c59681ea162add60f69a71a4e5768c9c2ad9829cd301376712022-06-29 13:18:46266 days 13 hrs ago 0xaa59791cc531235a362a2bb3027b826b2c53d7070x302b52ece5f742eac095471b5d6acc2437a999300.9 MATIC
0x825e890389254192a2b4c28c59681ea162add60f69a71a4e5768c9c2ad9829cd301376712022-06-29 13:18:46266 days 13 hrs ago 0xbf07a0df119ca234634588fbdb5625594e2a5bca  Contract Creation0 MATIC
[ Download CSV Export 
Loading

Minimal Proxy Contract for 0x2a2b85eb1054d6f0c6c2e37da05ed3e5fea684ef

Contract Name:
Identity

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
Decompile ByteCode
/**
 *Submitted for verification at polygonscan.com on 2021-11-14
*/

pragma solidity 0.8.7;

// @TODO: Formatting
library LibBytes {
  // @TODO: see if we can just set .length = 
  function trimToSize(bytes memory b, uint newLen)
    internal
    pure
  {
    require(b.length > newLen, "BytesLib: only shrinking");
    assembly {
      mstore(b, newLen)
    }
  }


  /***********************************|
  |        Read Bytes Functions       |
  |__________________________________*/

  /**
   * @dev Reads a bytes32 value from a position in a byte array.
   * @param b Byte array containing a bytes32 value.
   * @param index Index in byte array of bytes32 value.
   * @return result bytes32 value from byte array.
   */
  function readBytes32(
    bytes memory b,
    uint256 index
  )
    internal
    pure
    returns (bytes32 result)
  {
    // Arrays are prefixed by a 256 bit length parameter
    index += 32;

    require(b.length >= index, "BytesLib: length");

    // Read the bytes32 from array memory
    assembly {
      result := mload(add(b, index))
    }
    return result;
  }
}



interface IERC1271Wallet {
	function isValidSignature(bytes32 hash, bytes calldata signature) external view returns (bytes4 magicValue);
}

library SignatureValidator {
	using LibBytes for bytes;

	enum SignatureMode {
		EIP712,
		EthSign,
		SmartWallet,
		Spoof
	}

	// bytes4(keccak256("isValidSignature(bytes32,bytes)"))
	bytes4 constant internal ERC1271_MAGICVALUE_BYTES32 = 0x1626ba7e;

	function recoverAddr(bytes32 hash, bytes memory sig) internal view returns (address) {
		return recoverAddrImpl(hash, sig, false);
	}

	function recoverAddrImpl(bytes32 hash, bytes memory sig, bool allowSpoofing) internal view returns (address) {
		require(sig.length >= 1, "SV_SIGLEN");
		uint8 modeRaw;
		unchecked { modeRaw = uint8(sig[sig.length - 1]); }
		SignatureMode mode = SignatureMode(modeRaw);

		// {r}{s}{v}{mode}
		if (mode == SignatureMode.EIP712 || mode == SignatureMode.EthSign) {
			require(sig.length == 66, "SV_LEN");
			bytes32 r = sig.readBytes32(0);
			bytes32 s = sig.readBytes32(32);
			uint8 v = uint8(sig[64]);
			// Hesitant about this check: seems like this is something that has no business being checked on-chain
			require(v == 27 || v == 28, "SV_INVALID_V");
			if (mode == SignatureMode.EthSign) hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
			address signer = ecrecover(hash, v, r, s);
			require(signer != address(0), "SV_ZERO_SIG");
			return signer;
		// {sig}{verifier}{mode}
		} else if (mode == SignatureMode.SmartWallet) {
			// 32 bytes for the addr, 1 byte for the type = 33
			require(sig.length > 33, "SV_LEN_WALLET");
			uint newLen;
			unchecked {
				newLen = sig.length - 33;
			}
			IERC1271Wallet wallet = IERC1271Wallet(address(uint160(uint256(sig.readBytes32(newLen)))));
			sig.trimToSize(newLen);
			require(ERC1271_MAGICVALUE_BYTES32 == wallet.isValidSignature(hash, sig), "SV_WALLET_INVALID");
			return address(wallet);
		// {address}{mode}; the spoof mode is used when simulating calls
		} else if (mode == SignatureMode.Spoof && allowSpoofing) {
			require(tx.origin == address(1), "SV_SPOOF_ORIGIN");
			require(sig.length == 33, "SV_SPOOF_LEN");
			sig.trimToSize(32);
			return abi.decode(sig, (address));
		} else revert("SV_SIGMODE");
	}
}


contract Identity {
	mapping (address => bytes32) public privileges;
	// The next allowed nonce
	uint public nonce;

	// Events
	event LogPrivilegeChanged(address indexed addr, bytes32 priv);
	event LogErr(address indexed to, uint value, bytes data, bytes returnData); // only used in tryCatch

	// Transaction structure
	// we handle replay protection separately by requiring (address(this), chainID, nonce) as part of the sig
	struct Transaction {
		address to;
		uint value;
		bytes data;
	}

	constructor(address[] memory addrs) {
		uint len = addrs.length;
		for (uint i=0; i<len; i++) {
			// @TODO should we allow setting to any arb value here?
			privileges[addrs[i]] = bytes32(uint(1));
			emit LogPrivilegeChanged(addrs[i], bytes32(uint(1)));
		}
	}

	// This contract can accept ETH without calldata
	receive() external payable {}

	// This contract can accept ETH with calldata
	// However, to support EIP 721 and EIP 1155, we need to respond to those methods with their own method signature
	fallback() external payable {
		bytes4 method = msg.sig;
		if (
			method == 0x150b7a02 // bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))
				|| method == 0xf23a6e61 // bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))
				|| method == 0xbc197c81 // bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))
		) {
			// Copy back the method
			// solhint-disable-next-line no-inline-assembly
			assembly {
				calldatacopy(0, 0, 0x04)
				return (0, 0x20)
			}
		}
	}

	function setAddrPrivilege(address addr, bytes32 priv)
		external
	{
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		// Anti-bricking measure: if the privileges slot is used for special data (not 0x01),
		// don't allow to set it to true
		if (uint(privileges[addr]) > 1) require(priv != bytes32(uint(1)), 'UNSETTING_SPECIAL_DATA');
		privileges[addr] = priv;
		emit LogPrivilegeChanged(addr, priv);
	}

	function tipMiner(uint amount)
		external
	{
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		// See https://docs.flashbots.net/flashbots-auction/searchers/advanced/coinbase-payment/#managing-payments-to-coinbaseaddress-when-it-is-a-contract
		// generally this contract is reentrancy proof cause of the nonce
		executeCall(block.coinbase, amount, new bytes(0));
	}

	function tryCatch(address to, uint value, bytes calldata data)
		external
	{
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		(bool success, bytes memory returnData) = to.call{value: value, gas: gasleft()}(data);
		if (!success) emit LogErr(to, value, data, returnData);
	}


	// WARNING: if the signature of this is changed, we have to change IdentityFactory
	function execute(Transaction[] calldata txns, bytes calldata signature)
		external
	{
		require(txns.length > 0, 'MUST_PASS_TX');
		uint currentNonce = nonce;
		// NOTE: abi.encode is safer than abi.encodePacked in terms of collision safety
		bytes32 hash = keccak256(abi.encode(address(this), block.chainid, currentNonce, txns));
		// We have to increment before execution cause it protects from reentrancies
		nonce = currentNonce + 1;

		address signer = SignatureValidator.recoverAddrImpl(hash, signature, true);
		require(privileges[signer] != bytes32(0), 'INSUFFICIENT_PRIVILEGE');
		uint len = txns.length;
		for (uint i=0; i<len; i++) {
			Transaction memory txn = txns[i];
			executeCall(txn.to, txn.value, txn.data);
		}
		// The actual anti-bricking mechanism - do not allow a signer to drop their own priviledges
		require(privileges[signer] != bytes32(0), 'PRIVILEGE_NOT_DOWNGRADED');
	}

	// no need for nonce management here cause we're not dealing with sigs
	function executeBySender(Transaction[] calldata txns) external {
		require(txns.length > 0, 'MUST_PASS_TX');
		require(privileges[msg.sender] != bytes32(0), 'INSUFFICIENT_PRIVILEGE');
		uint len = txns.length;
		for (uint i=0; i<len; i++) {
			Transaction memory txn = txns[i];
			executeCall(txn.to, txn.value, txn.data);
		}
		// again, anti-bricking
		require(privileges[msg.sender] != bytes32(0), 'PRIVILEGE_NOT_DOWNGRADED');
	}

	function executeBySelf(Transaction[] calldata txns) external {
		require(msg.sender == address(this), 'ONLY_IDENTITY_CAN_CALL');
		require(txns.length > 0, 'MUST_PASS_TX');
		uint len = txns.length;
		for (uint i=0; i<len; i++) {
			Transaction memory txn = txns[i];
			executeCall(txn.to, txn.value, txn.data);
		}
	}

	// we shouldn't use address.call(), cause: https://github.com/ethereum/solidity/issues/2884
	// copied from https://github.com/uport-project/uport-identity/blob/develop/contracts/Proxy.sol
	// there's also
	// https://github.com/gnosis/MultiSigWallet/commit/e1b25e8632ca28e9e9e09c81bd20bf33fdb405ce
	// https://github.com/austintgriffith/bouncer-proxy/blob/master/BouncerProxy/BouncerProxy.sol
	// https://github.com/gnosis/safe-contracts/blob/7e2eeb3328bb2ae85c36bc11ea6afc14baeb663c/contracts/base/Executor.sol
	function executeCall(address to, uint256 value, bytes memory data)
		internal
	{
		assembly {
			let result := call(gas(), to, value, add(data, 0x20), mload(data), 0, 0)

			switch result case 0 {
				let size := returndatasize()
				let ptr := mload(0x40)
				returndatacopy(ptr, 0, size)
				revert(ptr, size)
			}
			default {}
		}
		// A single call consumes around 477 more gas with the pure solidity version, for whatever reason
		// WARNING: do not use this, it corrupts the returnData string (returns it in a slightly different format)
		//(bool success, bytes memory returnData) = to.call{value: value, gas: gasleft()}(data);
		//if (!success) revert(string(data));
	}

	// EIP 1271 implementation
	// see https://eips.ethereum.org/EIPS/eip-1271
	function isValidSignature(bytes32 hash, bytes calldata signature) external view returns (bytes4) {
		if (privileges[SignatureValidator.recoverAddr(hash, signature)] != bytes32(0)) {
			// bytes4(keccak256("isValidSignature(bytes32,bytes)")
			return 0x1626ba7e;
		} else {
			return 0xffffffff;
		}
	}

	// EIP 1155 implementation
	// we pretty much only need to signal that we support the interface for 165, but for 1155 we also need the fallback function
	function supportsInterface(bytes4 interfaceID) external pure returns (bool) {
		return
			interfaceID == 0x01ffc9a7 ||    // ERC-165 support (i.e. `bytes4(keccak256('supportsInterface(bytes4)'))`).
			interfaceID == 0x4e2312e0;      // ERC-1155 `ERC1155TokenReceiver` support (i.e. `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)")) ^ bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`).
	}
}

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogErr","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bytes32","name":"priv","type":"bytes32"}],"name":"LogPrivilegeChanged","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Identity.Transaction[]","name":"txns","type":"tuple[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Identity.Transaction[]","name":"txns","type":"tuple[]"}],"name":"executeBySelf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Identity.Transaction[]","name":"txns","type":"tuple[]"}],"name":"executeBySender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"privileges","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes32","name":"priv","type":"bytes32"}],"name":"setAddrPrivilege","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tipMiner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"tryCatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.