Transaction Hash:
Block:
17030055 at Apr-12-2023 06:07:47 AM +UTC
Transaction Fee:
0.002118740670983511 ETH
$7.37
Gas Used:
95,757 Gas / 22.126222323 Gwei
Emitted Events:
289 |
TransparentUpgradeableProxy.0x20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab18964( 0x20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab18964, 0x000000000000000000000000b5ff76fb67b513cda0e34c1ef153d31bff477f4b, 0x000000000000000000000000b5ff76fb67b513cda0e34c1ef153d31bff477f4b, 0x0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000007084 )
|
290 |
TransparentUpgradeableProxy.0x2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d466( 0x2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d466, 0x000000000000000000000000d4b80c3d7240325d18e645b49e6535a3bf95cc58, 0x000000000000000000000000b5ff76fb67b513cda0e34c1ef153d31bff477f4b, 00000000000000000000000000000000000000000000000000470de4df820000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x388C818C...7ccB19297
Miner
| (Lido: Execution Layer Rewards Vault) | 175.5643848893714061 Eth | 175.5643944650714061 Eth | 0.0000095757 | |
0xb5Ff76FB...Bff477f4B |
0.003764136608970013 Eth
Nonce: 13
|
0.021645395937986502 Eth
Nonce: 14
| 0.017881259329016489 | ||
0xC1Ebd02f...7DdE276Bd | (Arbitrum Nova: Bridge) | 7,299.17361396978045756 Eth | 7,299.15361396978045756 Eth | 0.02 | |
0xD4B80C3D...3Bf95cc58 | (Arbitrum Nova: Outbox) |
Execution Trace
TransparentUpgradeableProxy.08635a95( )
Outbox.executeTransaction( )
TransparentUpgradeableProxy.9e5d4c49( )
Bridge.executeCall( to=0xb5Ff76FB67B513Cda0e34C1Ef153D31Bff477f4B, value=20000000000000000, data=0x ) => ( success=True, returnData=0x )
- ETH 0.02
0xb5ff76fb67b513cda0e34c1ef153d31bff477f4b.CALL( )
- ETH 0.02
executeTransaction[Outbox (ln:114)]
calculateItemHash[Outbox (ln:125)]
recordOutputAsSpent[Outbox (ln:134)]
ProofTooLong[Outbox (ln:210)]
PathNotMinimal[Outbox (ln:211)]
calculateMerkleRoot[Outbox (ln:213)]
calculateRoot[Outbox (ln:254)]
MerkleProofTooLong[MerkleLib (ln:397)]
UnknownRoot[Outbox (ln:214)]
_calcSpentIndexOffset[Outbox (ln:215)]
_isSpent[Outbox (ln:216)]
AlreadySpent[Outbox (ln:216)]
executeTransactionImpl[Outbox (ln:135)]
OutBoxTransactionExecuted[Outbox (ln:169)]
L2ToL1Context[Outbox (ln:173)]
executeBridgeCall[Outbox (ln:181)]
executeCall[Outbox (ln:224)]
BridgeCallFailed[Outbox (ln:233)]
File 1 of 4: TransparentUpgradeableProxy
File 2 of 4: TransparentUpgradeableProxy
File 3 of 4: Outbox
File 4 of 4: Bridge
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)pragma solidity ^0.8.0;import "../ERC1967/ERC1967Proxy.sol";/*** @dev This contract implements a proxy that is upgradeable by an admin.** To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector* clashing], which can potentially be used in an attack, this contract uses the* https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two* things that go hand in hand:** 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if* that call matches one of the admin functions exposed by the proxy itself.* 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the* implementation. If the admin tries to call a function on the implementation it will fail with an error that says
File 2 of 4: TransparentUpgradeableProxy
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)pragma solidity ^0.8.0;import "../ERC1967/ERC1967Proxy.sol";/*** @dev This contract implements a proxy that is upgradeable by an admin.** To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector* clashing], which can potentially be used in an attack, this contract uses the* https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two* things that go hand in hand:** 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if* that call matches one of the admin functions exposed by the proxy itself.* 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the* implementation. If the admin tries to call a function on the implementation it will fail with an error that says
File 3 of 4: Outbox
12345678910111213141516// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/nitro/blob/master/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.4;import "./IBridge.sol";import "./IOutbox.sol";import "../libraries/MerkleLib.sol";import "../libraries/DelegateCallAware.sol";/// @dev this error is thrown since certain functions are only expected to be used in simulations, not in actual txserror SimulationOnlyEntrypoint();contract Outbox is DelegateCallAware, IOutbox {address public rollup; // the rollup contractIBridge public bridge; // the bridge contractmapping(uint256 => bytes32) public spent; // packed spent bitmapmapping(bytes32 => bytes32) public roots; // maps root hashes => L2 block hashstruct L2ToL1Context {
File 4 of 4: Bridge
12345678910111213141516// Copyright 2021-2022, Offchain Labs, Inc.// For license information, see https://github.com/nitro/blob/master/LICENSE// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.4;import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";import {NotContract,NotRollupOrOwner,NotDelayedInbox,NotSequencerInbox,NotOutbox,InvalidOutboxSet,BadSequencerMessageNumber} from "../libraries/Error.sol";import "./IBridge.sol";