Transaction Hash:
Block:
22712859 at Jun-15-2025 10:16:47 PM +UTC
Transaction Fee:
0.000589017170041077 ETH
$1.76
Gas Used:
234,761 Gas / 2.509007757 Gwei
Emitted Events:
61 |
GraphToken.Transfer( from=ERC20PredicateProxy, to=[Sender] 0xe69f81b825d7dc31ee9becef4dbeab5cf30e3abb, value=10000000000000000000 )
|
62 |
ERC20PredicateProxy.0xbb61bd1b26b3684c7c028ff1a8f6dabcac2fac8ac57b66fa6b1efb6edeab03c4( 0xbb61bd1b26b3684c7c028ff1a8f6dabcac2fac8ac57b66fa6b1efb6edeab03c4, 0x000000000000000000000000e69f81b825d7dc31ee9becef4dbeab5cf30e3abb, 0x000000000000000000000000c944e90c64b2c07662a292be6244bdf05cda44a7, 0000000000000000000000000000000000000000000000008ac7230489e80000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 18.08719631918547369 Eth | 18.08766584118547369 Eth | 0.000469522 | |
0xA0c68C63...1bFc77C77 | (Polygon (Matic): Bridge) | ||||
0xc944E90C...05Cda44a7 | |||||
0xE69f81b8...cf30e3Abb |
1.00682084956876077 Eth
Nonce: 6865
|
1.006231832398719693 Eth
Nonce: 6866
| 0.000589017170041077 |
Execution Trace
RootChainManagerProxy.3805550f( )

RootChainManager.exit( inputData=0xF90A478431B3B1A0B901609A2B4089F84E9940CB4B34992909D566EF16DA049393535EE35392C80AB9B404C783C70A9035EF6B529BFC0786BC9B828BCD4BE0CB9C2F24406BD95472B9FBC796006D3028F50F3260D99F69C559EB72561846D467B2584C7F19D4307AF5577DFFBE367E3A6D169B56BA8E4A9BD97A02BDAC77AA5FDF3B1EFAB575942A1BBEEF8895FE858DDA8CEE1FB017E44CDE07F6A7124DD36243C9D9CFD481E4E828E8C950633E3139C84C83E6F124D9937D4FC03CFBA727A7DF8577938CA4BB1CAE8A2F38259FD3A84C8AA18C165A392F0FFF51C17D6B40FE9A8DED87D56EAA042AFEE796329E4801430A2C396575A56B46B5856EC1566CCFEDB51A067BBF0EA85A242B767171C472BDCEEB864B0E4D45FD7F9E1D2D19E0588F2869059077E39B2A8269744E39C6EE7B918EE765CD50ACD22E90692AE54B489B004D6793F840921E340891D69ECC234EB0A4F691F8F7750DD328C9E551BAA16DEFC3DC9B1AD30DE9E5FA840456F6B684684F0DCFA01B18BA7D8C0EDB4561FBBF876C5A60E106376C53943120FFF44E7B9324B537F5A00D62D9A9E728C4542971BA5BCEEA5E57C75B9E65484904BD0F9090CC88DD0BFBB902EC02F902E8018303516AB9010000000000000000000000000002000000000000000000000000000000000000000000000000000000200000000400000000008000000000000000000000000000000000000000000000000008000040800000000000000000100100000000000000000000020400000000000000000800000000000000000080002010000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000040004000000002000000000001000000000000002000000000000000100000000020000000000000000000000000000000000000000000000000000000000000100000F901DDF89B945FE2B58C013D7601147DCDD68C143A77499F5531F863A0DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EFA0000000000000000000000000E69F81B825D7DC31EE9BECEF4DBEAB5CF30E3ABBA00000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000008AC7230489E80000F9013D940000000000000000000000000000000000001010F884A04DFE1BBBCF077DDC3E01291EEA2D5C70C2B422B415D95645B9ADCFD678CB1D63A00000000000000000000000000000000000000000000000000000000000001010A0000000000000000000000000E69F81B825D7DC31EE9BECEF4DBEAB5CF30E3ABBA000000000000000000000000069F5C4D08F6BC8CD29FE5F004D46FB566270868DB8A000000000000000000000000000000000000000000000000000076CC56B358000000000000000000000000000000000000000000000000010613EF5A6253339AA0000000000000000000000000000000000000000000000511A90114E7D42241B000000000000000000000000000000000000000000000010613788E0B9FDB9AA0000000000000000000000000000000000000000000000511A977E13E877A41BB9059DF9059AF8B1A05370AE562ACB430E78750762AED5F2B55F147E7920B48EB2998F592A44407A72A00263225238D66E9178AF78D2CCA8331D9CDED4DADA4D9A6B46691EEEFF33F8ECA0EC4624B792E58FDD96016093DB3FAD6BAE46E845CEE75A8308BE7B59ED1D380AA05ACF96DE67314711FF61F274083589B7F9AD178997C054C0845142B60FB110AB80808080A03172D7A982117FB14B219B640A8A344A235353A1D6B1510D32D7DA1F615F80EB8080808080808080F901F180A01C67C406679A23AA755659017D899D6A5BAD876D490EE98DD5FDC880834A201BA0CC32BD38872F104F0E436254CD6A92EA0552CD5B252A996E1E893023529D89CFA044FA22B3EF2CC665BD6AA2F600F2083170C975318E548E589BB06A8B55716EEEA0D7DA61A581CA8E4A51A94A1FA0950A1BF73C0EB6C232D7779A6886D53EBC4383A02379A4B113DA2E41CA04E58BC8076779FFAA56C76217F8AFE857CFF724CE40D4A0AB47F456A70A8B168CC525959175E62CA5C1D1C3DA46B51AC3C0CC3141EEF971A0B5ABE802495088C00B334DA796CF40385EA577470AED7D7C308BB525A79564A1A0795B854AEA1FD4108121E9ACAC2EF6F5359D81510C86FD6EC7E6C5BF2B1974A3A0F8482924ECDD060585CAC2DC5A84A789132B4FDCBBBF5074560D5A1B221FA1DDA0CCBA6A69AAF350E1CBDE9CB74139FCA3AF8C38B757A96054B13B1F64D99763CDA0E1956BADF2BF5C62CA11BB0B6EB1E792A874DDBBED32ADD3462625DD050E705BA0BBDC993325DDAF6BE06D5C3D049F43470B881C64E1905A17E1DC482AAF51653DA04C655B5BB63C2D92BC60F93C421B9592115B024CABFCB4397B625C607FDE038CA06AB6695F8DCA30E1E6B3C79B3DE81679836B2773FD962B49A4813EADA80106C3A0FBFA7B72433233DB25CF6C733436CBA3F6A4A7DF83305601C4EB3770A44DBA5780F902F020B902EC02F902E8018303516AB9010000000000000000000000000002000000000000000000000000000000000000000000000000000000200000000400000000008000000000000000000000000000000000000000000000000008000040800000000000000000100100000000000000000000020400000000000000000800000000000000000080002010000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000040004000000002000000000001000000000000002000000000000000100000000020000000000000000000000000000000000000000000000000000000000000100000F901DDF89B945FE2B58C013D7601147DCDD68C143A77499F5531F863A0DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EFA0000000000000000000000000E69F81B825D7DC31EE9BECEF4DBEAB5CF30E3ABBA00000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000008AC7230489E80000F9013D940000000000000000000000000000000000001010F884A04DFE1BBBCF077DDC3E01291EEA2D5C70C2B422B415D95645B9ADCFD678CB1D63A00000000000000000000000000000000000000000000000000000000000001010A0000000000000000000000000E69F81B825D7DC31EE9BECEF4DBEAB5CF30E3ABBA000000000000000000000000069F5C4D08F6BC8CD29FE5F004D46FB566270868DB8A000000000000000000000000000000000000000000000000000076CC56B358000000000000000000000000000000000000000000000000010613EF5A6253339AA0000000000000000000000000000000000000000000000511A90114E7D42241B000000000000000000000000000000000000000000000010613788E0B9FDB9AA0000000000000000000000000000000000000000000000511A977E13E877A41B82000480 )
-
RootChainProxy.headerBlocks( 833860000 ) => ( root=20FA99A4937E7B67DEDF8BA914CE73BB1DFD975D70BF45808067F26A73A3FF6E, start=72807846, end=72809125, createdAt=1750015199, proposer=0x1EFEcb61A2f80Aa34d3b9218B564a64D05946290 )
ERC20PredicateProxy.8274664f( )
ERC20Predicate.exitTokens( 0xE69f81b825d7Dc31ee9becef4DbEab5cf30e3Abb, rootToken=0xc944E90C64B2c07662A292be6244BDf05Cda44a7, log=0xF89B945FE2B58C013D7601147DCDD68C143A77499F5531F863A0DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EFA0000000000000000000000000E69F81B825D7DC31EE9BECEF4DBEAB5CF30E3ABBA00000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000008AC7230489E80000 )
-
GraphToken.transfer( recipient=0xE69f81b825d7Dc31ee9becef4DbEab5cf30e3Abb, amount=10000000000000000000 ) => ( True )
-
-
exit[RootChainManager (ln:313)]
toExitPayload[RootChainManager (ln:314)]
getBranchMaskAsBytes[RootChainManager (ln:315)]
getBlockNumber[RootChainManager (ln:320)]
_getNibbleArray[RootChainManager (ln:324)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1169)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1172)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1180)]
getReceiptLogIndex[RootChainManager (ln:325)]
getReceipt[RootChainManager (ln:333)]
getLog[RootChainManager (ln:334)]
getEmitter[RootChainManager (ln:336)]
getBranchMaskAsUint[RootChainManager (ln:346)]
verify[RootChainManager (ln:353)]
toRlpItem[MerklePatriciaProof (ln:1067)]
RLPItem[RLPReader (ln:664)]
toList[MerklePatriciaProof (ln:1068)]
isList[RLPReader (ln:703)]
numItems[RLPReader (ln:704)]
_payloadOffset[RLPReader (ln:831)]
_itemLength[RLPReader (ln:834)]
_payloadOffset[RLPReader (ln:706)]
_itemLength[RLPReader (ln:709)]
RLPItem[RLPReader (ln:710)]
_getNibbleArray[MerklePatriciaProof (ln:1073)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1169)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1172)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1180)]
toRlpBytes[MerklePatriciaProof (ln:1081)]
toList[MerklePatriciaProof (ln:1085)]
isList[RLPReader (ln:703)]
numItems[RLPReader (ln:704)]
_payloadOffset[RLPReader (ln:831)]
_itemLength[RLPReader (ln:834)]
_payloadOffset[RLPReader (ln:706)]
_itemLength[RLPReader (ln:709)]
RLPItem[RLPReader (ln:710)]
toBytes[MerklePatriciaProof (ln:1089)]
payloadLocation[RLPReader (ln:815)]
_payloadOffset[RLPReader (ln:687)]
copy[RLPReader (ln:821)]
toUintStrict[MerklePatriciaProof (ln:1102)]
toBytes[MerklePatriciaProof (ln:1106)]
payloadLocation[RLPReader (ln:815)]
_payloadOffset[RLPReader (ln:687)]
copy[RLPReader (ln:821)]
_nibblesToTraverse[MerklePatriciaProof (ln:1107)]
_getNibbleArray[MerklePatriciaProof (ln:1145)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1169)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1172)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1180)]
_getNthNibbleOfBytes[MerklePatriciaProof (ln:1113)]
toBytes[MerklePatriciaProof (ln:1117)]
payloadLocation[RLPReader (ln:815)]
_payloadOffset[RLPReader (ln:687)]
copy[RLPReader (ln:821)]
toUintStrict[MerklePatriciaProof (ln:1130)]
toBytes[RootChainManager (ln:354)]
getReceiptProof[RootChainManager (ln:356)]
getReceiptRoot[RootChainManager (ln:357)]
_checkBlockMembershipInCheckpoint[RootChainManager (ln:362)]
headerBlocks[RootChainManager (ln:389)]
checkMembership[RootChainManager (ln:391)]
sub[RootChainManager (ln:395)]
getBlockNumber[RootChainManager (ln:363)]
getBlockTime[RootChainManager (ln:364)]
getTxRoot[RootChainManager (ln:365)]
getReceiptRoot[RootChainManager (ln:366)]
getHeaderNumber[RootChainManager (ln:367)]
getBlockProof[RootChainManager (ln:368)]
exitTokens[RootChainManager (ln:370)]
_msgSender[RootChainManager (ln:371)]
msgSender[RootChainManager (ln:47)]
toRlpBytes[RootChainManager (ln:373)]
File 1 of 6: RootChainManagerProxy
File 2 of 6: ERC20PredicateProxy
File 3 of 6: GraphToken
File 4 of 6: RootChainManager
File 5 of 6: RootChainProxy
File 6 of 6: ERC20Predicate
12345678910111213141516// File: contracts/common/Proxy/IERCProxy.solpragma solidity 0.6.6;interface IERCProxy {function proxyType() external pure returns (uint256 proxyTypeId);function implementation() external view returns (address codeAddr);}// File: contracts/common/Proxy/Proxy.solpragma solidity 0.6.6;abstract contract Proxy is IERCProxy {
File 2 of 6: ERC20PredicateProxy
12345678910111213141516// File: contracts/common/Proxy/IERCProxy.solpragma solidity 0.6.6;interface IERCProxy {function proxyType() external pure returns (uint256 proxyTypeId);function implementation() external view returns (address codeAddr);}// File: contracts/common/Proxy/Proxy.solpragma solidity 0.6.6;abstract contract Proxy is IERCProxy {
File 3 of 6: GraphToken
12345678910111213141516// Sources flattened with hardhat v2.0.2 https://hardhat.org// File @openzeppelin/contracts/GSN/Context.sol@v3.3.0-solc-0.7// SPDX-License-Identifier: MITpragma solidity ^0.7.0;/** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with GSN meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).*
File 4 of 6: RootChainManager
12345678910111213141516pragma solidity 0.6.6;import {SafeMath} from "@openzeppelin/contracts/math/SafeMath.sol";import {IRootChainManager} from "./IRootChainManager.sol";import {RootChainManagerStorage} from "./RootChainManagerStorage.sol";import {IStateSender} from "../StateSender/IStateSender.sol";import {ICheckpointManager} from "../ICheckpointManager.sol";import {RLPReader} from "../../lib/RLPReader.sol";import {ExitPayloadReader} from "../../lib/ExitPayloadReader.sol";import {MerklePatriciaProof} from "../../lib/MerklePatriciaProof.sol";import {Merkle} from "../../lib/Merkle.sol";import {ITokenPredicate} from "../TokenPredicates/ITokenPredicate.sol";import {Initializable} from "../../common/Initializable.sol";import {NativeMetaTransaction} from "../../common/NativeMetaTransaction.sol";import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";import {AccessControlMixin} from "../../common/AccessControlMixin.sol";import {ContextMixin} from "../../common/ContextMixin.sol";
File 5 of 6: RootChainProxy
12345678910111213141516// File: contracts/common/governance/IGovernance.solpragma solidity ^0.5.2;interface IGovernance {function update(address target, bytes calldata data) external;}// File: contracts/common/governance/Governable.solpragma solidity ^0.5.2;contract Governable {IGovernance public governance;
File 6 of 6: ERC20Predicate
12345678910111213141516pragma solidity 0.6.6;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";import {AccessControlMixin} from "../../common/AccessControlMixin.sol";import {RLPReader} from "../../lib/RLPReader.sol";import {ITokenPredicate} from "./ITokenPredicate.sol";import {Initializable} from "../../common/Initializable.sol";contract ERC20Predicate is ITokenPredicate, AccessControlMixin, Initializable {using RLPReader for bytes;using RLPReader for RLPReader.RLPItem;using SafeERC20 for IERC20;bytes32 public constant MANAGER_ROLE = keccak256("MANAGER_ROLE");bytes32 public constant TOKEN_TYPE = keccak256("ERC20");bytes32 public constant TRANSFER_EVENT_SIG = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;event LockedERC20(address indexed depositor,