From 24a7793c41f450753bd4830274a7d0f0a73604a3 Mon Sep 17 00:00:00 2001 From: Joshua Colvin Date: Wed, 7 May 2025 19:55:34 -0700 Subject: [PATCH 1/2] Update docs to use Nitro v3.6.2 Note that v3.6.0 removed the `--node.bold.enable` flag --- .../02-how-to-estimate-gas.mdx | 2 +- .../nodeinterface/01-overview.mdx | 2 +- .../precompiles/02-reference.mdx | 56 +- .../precompile-tables/_ArbAddressTable.mdx | 214 +--- .../precompile-tables/_ArbAggregator.mdx | 243 +--- .../partials/precompile-tables/_ArbDebug.mdx | 294 +---- .../precompile-tables/_ArbFunctionTable.mdx | 104 +- .../precompile-tables/_ArbGasInfo.mdx | 703 ++--------- .../partials/precompile-tables/_ArbInfo.mdx | 77 +- .../partials/precompile-tables/_ArbOwner.mdx | 1112 ++++------------- .../precompile-tables/_ArbOwnerPublic.mdx | 271 +--- .../precompile-tables/_ArbRetryableTx.mdx | 406 ++---- .../precompile-tables/_ArbStatistics.mdx | 53 +- .../partials/precompile-tables/_ArbSys.mdx | 459 ++----- .../partials/precompile-tables/_ArbWasm.mdx | 641 ++-------- .../precompile-tables/_ArbWasmCache.mdx | 241 +--- .../partials/precompile-tables/_ArbosTest.mdx | 50 +- .../precompile-tables/_NodeInterface.mdx | 298 +---- .../05-upgrade-to-bold.mdx | 7 +- .../customize-arbos.mdx | 6 +- .../customize-precompile.mdx | 28 +- .../05-customize-your-chain/customize-stf.mdx | 2 +- .../run-arbitrum-node/03-run-full-node.mdx | 4 +- .../02-deploy-das.mdx | 12 +- .../03-deploy-mirror-das.mdx | 4 +- .../04-configure-dac.mdx | 6 +- .../more-types/01-run-archive-node.mdx | 6 +- .../more-types/02-run-validator-node.mdx | 4 +- .../nitro/01-build-nitro-locally.mdx | 2 +- .../run-full-node/_dao-chains-example.mdx | 2 +- .../run-full-node/_orbit-chains-example.mdx | 2 +- .../sequencer/01-run-feed-relay.mdx | 4 +- .../03-run-sequencer-coordination-manager.mdx | 2 +- .../sequencer/04-run-sequencer-node.mdx | 4 +- website/src/resources/globalVars.js | 8 +- 35 files changed, 1206 insertions(+), 4123 deletions(-) diff --git a/arbitrum-docs/build-decentralized-apps/02-how-to-estimate-gas.mdx b/arbitrum-docs/build-decentralized-apps/02-how-to-estimate-gas.mdx index e9c668aa13..b10b6d8f6a 100644 --- a/arbitrum-docs/build-decentralized-apps/02-how-to-estimate-gas.mdx +++ b/arbitrum-docs/build-decentralized-apps/02-how-to-estimate-gas.mdx @@ -21,7 +21,7 @@ Multiplying the value obtained from `eth_estimateGas` by the child chain gas pri Alternatively, to obtain the gas limit for your transaction, you can call `NodeInterface.gasEstimateComponents()` and then use the first result, which is `gasEstimate`. Next, to find the total cost, you need to multiply this amount by the child chain gas price, which is available in the third result, `baseFee`. -Note that when working with parent to child chain messages (also known as [retryable tickets](/how-arbitrum-works/10-l1-to-l2-messaging.mdx)), you can use the function [`L1ToL2MessageGasEstimator.estimateAll()`](https://github.com/OffchainLabs/arbitrum-sdk/blob/main/src/lib/message/L1ToL2MessageGasEstimator.ts#L215) of the Arbitrum SDK or [`NodeInterface.estimateRetryableTicket()`](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/nodeInterface/NodeInterface.go#L120) to get all the gas information needed to send a successful transaction. +Note that when working with parent to child chain messages (also known as [retryable tickets](/how-arbitrum-works/10-l1-to-l2-messaging.mdx)), you can use the function [`L1ToL2MessageGasEstimator.estimateAll()`](https://github.com/OffchainLabs/arbitrum-sdk/blob/main/src/lib/message/L1ToL2MessageGasEstimator.ts#L215) of the Arbitrum SDK or [`NodeInterface.estimateRetryableTicket()`](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/nodeInterface/NodeInterface.go#L120) to get all the gas information needed to send a successful transaction. ## Breaking down the formula diff --git a/arbitrum-docs/build-decentralized-apps/nodeinterface/01-overview.mdx b/arbitrum-docs/build-decentralized-apps/nodeinterface/01-overview.mdx index bafe4f157f..1fa00054ff 100644 --- a/arbitrum-docs/build-decentralized-apps/nodeinterface/01-overview.mdx +++ b/arbitrum-docs/build-decentralized-apps/nodeinterface/01-overview.mdx @@ -7,6 +7,6 @@ content_type: concept -The Arbitrum Nitro software includes a special `NodeInterface` contract available at address `0xc8` that is only accessible via RPCs (it's not actually deployed onchain and thus can't be called by smart contracts). The way it works is that the node uses Geth's [`InterceptRPCMessage`](https://github.com/OffchainLabs/go-ethereum/blob/@@goEthereumCommit=0086d610ac8e84a95b66205db942dc181c3eb590@@/internal/ethapi/api.go#L1034) hook to detect messages sent to the address `0xc8`, and swaps out the message it's handling before deriving a transaction from it. +The Arbitrum Nitro software includes a special `NodeInterface` contract available at address `0xc8` that is only accessible via RPCs (it's not actually deployed onchain and thus can't be called by smart contracts). The way it works is that the node uses Geth's [`InterceptRPCMessage`](https://github.com/OffchainLabs/go-ethereum/blob/@@goEthereumCommit=25fc5f0842584e72455e4d60a61f035623b1aba0@@/internal/ethapi/api.go#L1034) hook to detect messages sent to the address `0xc8`, and swaps out the message it's handling before deriving a transaction from it. The [reference page](/build-decentralized-apps/nodeinterface/02-reference.mdx) contains information about all methods available in the `NodeInterface`. diff --git a/arbitrum-docs/build-decentralized-apps/precompiles/02-reference.mdx b/arbitrum-docs/build-decentralized-apps/precompiles/02-reference.mdx index 0d37ccf783..580554acde 100644 --- a/arbitrum-docs/build-decentralized-apps/precompiles/02-reference.mdx +++ b/arbitrum-docs/build-decentralized-apps/precompiles/02-reference.mdx @@ -17,32 +17,32 @@ This section is divided into two tables. We first list precompiles we expect use | Precompile | Address | Solidity interface | Go implementation | Purpose | | --------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------- | -| [ArbAggregator](#arbaggregator) | `0x6d` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAggregator.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbAggregator.go) | Configuring transaction aggregation | -| [ArbGasInfo](#arbgasinfo) | `0x6c` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbGasInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbGasInfo.go) | Info about gas pricing | -| [ArbRetryableTx](#arbretryabletx) | `0x6e` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbRetryableTx.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbRetryableTx.go) | Managing retryables | -| [ArbSys](#arbsys) | `0x64` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbSys.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbSys.go) | System-level functionality | -| [ArbWasm](#arbwasm) | `0x71` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasm.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasm.go) | Manages Stylus contracts | -| [ArbWasmCache](#arbwasmcache) | `0x72` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasmCache.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasmCache.go) | Manages Stylus cache | +| [ArbAggregator](#arbaggregator) | `0x6d` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAggregator.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbAggregator.go) | Configuring transaction aggregation | +| [ArbGasInfo](#arbgasinfo) | `0x6c` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbGasInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbGasInfo.go) | Info about gas pricing | +| [ArbRetryableTx](#arbretryabletx) | `0x6e` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbRetryableTx.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbRetryableTx.go) | Managing retryables | +| [ArbSys](#arbsys) | `0x64` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbSys.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbSys.go) | System-level functionality | +| [ArbWasm](#arbwasm) | `0x71` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasm.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasm.go) | Manages Stylus contracts | +| [ArbWasmCache](#arbwasmcache) | `0x72` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasmCache.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasmCache.go) | Manages Stylus cache | ### Other precompiles | Precompile | Address | Solidity interface | Go implementation | Purpose | | ------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | -| [ArbAddressTable](#arbaddresstable) | `0x66` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAddressTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbAddressTable.go) | Supporting compression of addresses | +| [ArbAddressTable](#arbaddresstable) | `0x66` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAddressTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbAddressTable.go) | Supporting compression of addresses | | ArbBLS | - | - | - | **Disabled** (Former registry of BLS public keys) | -| [ArbDebug](#arbdebug) | `0xff` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbDebug.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbDebug.go) | Testing tools | -| [ArbFunctionTable](#arbfunctiontable) | `0x68` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbFunctionTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbFunctionTable.go) | No longer used | -| [ArbInfo](#arbinfo) | `0x65` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbInfo.go) | Info about accounts | -| [ArbOwner](#arbowner) | `0x70` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwner.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwner.go) | Chain administration, callable only by chain owner | -| [ArbOwnerPublic](#arbownerpublic) | `0x6b` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwnerPublic.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwnerPublic.go) | Info about chain owners | -| [ArbosTest](#arbostest) | `0x69` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbosTest.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbosTest.go) | No longer used | -| [ArbStatistics](#arbstatistics) | `0x6f` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbStatistics.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbStatistics.go) | Info about the pre-Nitro state | +| [ArbDebug](#arbdebug) | `0xff` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbDebug.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbDebug.go) | Testing tools | +| [ArbFunctionTable](#arbfunctiontable) | `0x68` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbFunctionTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbFunctionTable.go) | No longer used | +| [ArbInfo](#arbinfo) | `0x65` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbInfo.go) | Info about accounts | +| [ArbOwner](#arbowner) | `0x70` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwner.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwner.go) | Chain administration, callable only by chain owner | +| [ArbOwnerPublic](#arbownerpublic) | `0x6b` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwnerPublic.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwnerPublic.go) | Info about chain owners | +| [ArbosTest](#arbostest) | `0x69` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbosTest.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbosTest.go) | No longer used | +| [ArbStatistics](#arbstatistics) | `0x6f` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbStatistics.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbStatistics.go) | Info about the pre-Nitro state | ## Precompiles reference ### `ArbAddressTable` -ArbAddressTable ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAddressTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbAddressTable.go)) provides the ability to create short-hands for commonly used accounts. +ArbAddressTable ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAddressTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbAddressTable.go)) provides the ability to create short-hands for commonly used accounts. Precompile address: `0x0000000000000000000000000000000000000066` @@ -52,7 +52,7 @@ import ArbAddressTableRef from '../../for-devs/dev-tools-and-resources/partials/ ### `ArbAggregator` -ArbAggregator ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAggregator.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbAggregator.go)) provides aggregators and their users methods for configuring how they participate in parent chain aggregation. Arbitrum One's default aggregator is the Sequencer, which a user will prefer unless `SetPreferredAggregator` is invoked to change it. +ArbAggregator ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAggregator.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbAggregator.go)) provides aggregators and their users methods for configuring how they participate in parent chain aggregation. Arbitrum One's default aggregator is the Sequencer, which a user will prefer unless `SetPreferredAggregator` is invoked to change it. Compression ratios are measured in basis points. Methods that are checkmarked are access-controlled and will revert if not called by the aggregator, its fee collector, or a chain owner. @@ -72,7 +72,7 @@ This precompile has been disabled. It previously provided a registry of BLS publ ### `ArbDebug` -ArbDebug ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbDebug.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbDebug.go)) provides mechanisms useful for testing. The methods of `ArbDebug` are only available for chains with the `AllowDebugPrecompiles` chain parameter set. Otherwise, calls to this precompile will revert. +ArbDebug ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbDebug.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbDebug.go)) provides mechanisms useful for testing. The methods of `ArbDebug` are only available for chains with the `AllowDebugPrecompiles` chain parameter set. Otherwise, calls to this precompile will revert. Precompile address: `0x00000000000000000000000000000000000000ff` @@ -82,7 +82,7 @@ import ArbDebugRef from '../../for-devs/dev-tools-and-resources/partials/precomp ### `ArbFunctionTable` -ArbFunctionTable ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbFunctionTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbFunctionTable.go)) provides aggregators the ability to manage function tables, to enable one form of transaction compression. The Nitro aggregator implementation does not use these, so these methods have been stubbed and their effects disabled. They are kept for backwards compatibility. +ArbFunctionTable ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbFunctionTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbFunctionTable.go)) provides aggregators the ability to manage function tables, to enable one form of transaction compression. The Nitro aggregator implementation does not use these, so these methods have been stubbed and their effects disabled. They are kept for backwards compatibility. Precompile address: `0x0000000000000000000000000000000000000068` @@ -92,7 +92,7 @@ import ArbFunctionTableRef from '../../for-devs/dev-tools-and-resources/partials ### `ArbGasInfo` -ArbGasInfo ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbGasInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbGasInfo.go)) provides insight into the cost of using the chain. These methods have been adjusted to account for Nitro's heavy use of calldata compression. Of note to end-users, we no longer make a distinction between non-zero and zero-valued calldata bytes. +ArbGasInfo ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbGasInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbGasInfo.go)) provides insight into the cost of using the chain. These methods have been adjusted to account for Nitro's heavy use of calldata compression. Of note to end-users, we no longer make a distinction between non-zero and zero-valued calldata bytes. Precompile address: `0x000000000000000000000000000000000000006C` @@ -102,7 +102,7 @@ import ArbGasInfoRef from '../../for-devs/dev-tools-and-resources/partials/preco ### `ArbInfo` -ArbInfo ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbInfo.go)) provides the ability to lookup basic info about accounts and contracts. +ArbInfo ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbInfo.go)) provides the ability to lookup basic info about accounts and contracts. Precompile address: `0x0000000000000000000000000000000000000065` @@ -112,7 +112,7 @@ import ArbInfoRef from '../../for-devs/dev-tools-and-resources/partials/precompi ### `ArbosTest` -ArbosTest ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbosTest.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbosTest.go)) provides a method of burning arbitrary amounts of gas, which exists for historical reasons. In Classic, `ArbosTest` had additional methods only the zero address could call. These have been removed since users don't use them and calls to missing methods revert. +ArbosTest ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbosTest.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbosTest.go)) provides a method of burning arbitrary amounts of gas, which exists for historical reasons. In Classic, `ArbosTest` had additional methods only the zero address could call. These have been removed since users don't use them and calls to missing methods revert. Precompile address: `0x0000000000000000000000000000000000000069` @@ -122,7 +122,7 @@ import ArbosTestRef from '../../for-devs/dev-tools-and-resources/partials/precom ### `ArbOwner` -ArbOwner ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwner.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwner.go)) provides owners with tools for managing the rollup. Calls by non-owners will always revert. +ArbOwner ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwner.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwner.go)) provides owners with tools for managing the rollup. Calls by non-owners will always revert. Most of Arbitrum Classic's owner methods have been removed since they no longer make sense in Nitro: @@ -138,7 +138,7 @@ import ArbOwnerRef from '../../for-devs/dev-tools-and-resources/partials/precomp ### `ArbOwnerPublic` -ArbOwnerPublic ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwnerPublic.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwnerPublic.go)) provides non-owners with info about the current chain owners. +ArbOwnerPublic ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwnerPublic.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwnerPublic.go)) provides non-owners with info about the current chain owners. Precompile address: `0x000000000000000000000000000000000000006b` @@ -148,7 +148,7 @@ import ArbOwnerPublicRef from '../../for-devs/dev-tools-and-resources/partials/p ### `ArbRetryableTx` -ArbRetryableTx ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbRetryableTx.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbRetryableTx.go)) provides methods for managing retryables. The model has been adjusted for Nitro, most notably in terms of how retry transactions are scheduled. For more information on retryables, please see [the retryable documentation](/how-arbitrum-works/10-l1-to-l2-messaging.mdx#retryable-tickets). +ArbRetryableTx ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbRetryableTx.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbRetryableTx.go)) provides methods for managing retryables. The model has been adjusted for Nitro, most notably in terms of how retry transactions are scheduled. For more information on retryables, please see [the retryable documentation](/how-arbitrum-works/10-l1-to-l2-messaging.mdx#retryable-tickets). Precompile address: `0x000000000000000000000000000000000000006E` @@ -158,7 +158,7 @@ import ArbRetryableTxRef from '../../for-devs/dev-tools-and-resources/partials/p ### `ArbStatistics` -ArbStatistics ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbStatistics.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbStatistics.go)) provides statistics about the chain as of just before the Nitro upgrade. In Arbitrum Classic, this was how a user would get info such as the total number of accounts, but there are better ways to get that info in Nitro. +ArbStatistics ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbStatistics.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbStatistics.go)) provides statistics about the chain as of just before the Nitro upgrade. In Arbitrum Classic, this was how a user would get info such as the total number of accounts, but there are better ways to get that info in Nitro. Precompile address: `0x000000000000000000000000000000000000006F` @@ -168,7 +168,7 @@ import ArbStatisticsRef from '../../for-devs/dev-tools-and-resources/partials/pr ### `ArbSys` -ArbSys ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbSys.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbSys.go)) provides system-level functionality for interacting with the parent chain and understanding the call stack. +ArbSys ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbSys.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbSys.go)) provides system-level functionality for interacting with the parent chain and understanding the call stack. Precompile address: `0x0000000000000000000000000000000000000064` @@ -178,7 +178,7 @@ import ArbSysRef from '../../for-devs/dev-tools-and-resources/partials/precompil ### `ArbWasm` -ArbWasm ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasm.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasm.go)) provides helper methods for managing Stylus contracts +ArbWasm ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasm.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasm.go)) provides helper methods for managing Stylus contracts Precompile address: `0x0000000000000000000000000000000000000071` @@ -188,7 +188,7 @@ import ArbWasmRef from '../../for-devs/dev-tools-and-resources/partials/precompi ### `ArbWasmCache` -ArbWasmCache ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasmCache.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasmCache.go)) provides helper methods for managing Stylus cache +ArbWasmCache ([Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasmCache.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasmCache.go)) provides helper methods for managing Stylus cache Precompile address: `0x0000000000000000000000000000000000000072` diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx index 3e8b15b6e3..9c2e5d79c4 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx @@ -1,168 +1,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- addressExists() - - - Interface - - - - Implementation - - AddressExists checks if an address exists in the table
- compress() - - - Interface - - - - Implementation - - Compress and returns the bytes that represent the address
- decompress() - - - Interface - - - - Implementation - - - Decompress the compressed bytes at the given offset with those of the corresponding account -
- lookup() - - - Interface - - - - Implementation - - Lookup the index of an address in the table
- lookupIndex() - - - Interface - - - - Implementation - - LookupIndex for an address in the table by index
- register() - - - Interface - - - - Implementation - - Register adds an account to the table, shrinking its compressed representation
- size() - - - Interface - - - - Implementation - - Size gets the number of addresses in the table
+ + + Method + Solidity interface + Go implementation + Description + + + + + addressExists() + Interface + Implementation + AddressExists checks if an address exists in the table + + compress() + Interface + Implementation + Compress and returns the bytes that represent the address + + decompress() + Interface + Implementation + Decompress the compressed bytes at the given offset with those of the corresponding account + + lookup() + Interface + Implementation + Lookup the index of an address in the table + + lookupIndex() + Interface + Implementation + LookupIndex for an address in the table by index + + register() + Interface + Implementation + Register adds an account to the table, shrinking its compressed representation + + size() + Interface + Implementation + Size gets the number of addresses in the table + + + \ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx index b1feb284fc..f6d274d28f 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx @@ -1,192 +1,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- ⚠️getPreferredAggregator() - - - Interface - - - - Implementation - - Deprecated: Do not use this method.
- ⚠️getDefaultAggregator() - - - Interface - - - - Implementation - - Deprecated: Do not use this method.
- getBatchPosters() - - - Interface - - - - Implementation - - GetBatchPosters gets the addresses of all current batch posters
- addBatchPoster() - - - Interface - - - - Implementation - - Adds additional batch poster address
- getFeeCollector() - - - Interface - - - - Implementation - - GetFeeCollector gets a batch poster's fee collector
- setFeeCollector(address batchPoster, address newFeeCollector) - - - Interface - - - - Implementation - - - SetFeeCollector sets a batch poster's fee collector (caller must be the batch poster, its - fee collector, or an owner) -
- ⚠️getTxBaseFee() - - - Interface - - - - Implementation - - Deprecated: always returns zero
- ⚠️setTxBaseFee(address aggregator, uint256 feeInL1Gas) - - - Interface - - - - Implementation - - Deprecated: no-op
-

Note: methods marked with ⚠️ are deprecated and their use is not supported.

+ + + Method + Solidity interface + Go implementation + Description + + + + + ⚠️getPreferredAggregator() + Interface + Implementation + Deprecated: Do not use this method. + + ⚠️getDefaultAggregator() + Interface + Implementation + Deprecated: Do not use this method. + + getBatchPosters() + Interface + Implementation + GetBatchPosters gets the addresses of all current batch posters + + addBatchPoster() + Interface + Implementation + Adds additional batch poster address + + getFeeCollector() + Interface + Implementation + GetFeeCollector gets a batch poster's fee collector + + setFeeCollector(address batchPoster, address newFeeCollector) + Interface + Implementation + SetFeeCollector sets a batch poster's fee collector (caller must be the batch poster, its fee collector, or an owner) + + ⚠️getTxBaseFee() + Interface + Implementation + Deprecated: always returns zero + + ⚠️setTxBaseFee(address aggregator, uint256 feeInL1Gas) + Interface + Implementation + Deprecated: no-op + + +

Note: methods marked with ⚠️ are deprecated and their use is not supported.

\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx index 84168c5741..4f4d138c11 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx @@ -1,226 +1,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- becomeChainOwner() - - - Interface - - - - Implementation - - Caller becomes a chain owner
- events(bool flag, bytes32 value) - - - Interface - - - - Implementation - - Emits events with values based on the args provided
- eventsView() - - - Interface - - - - Implementation - - Tries (and fails) to emit logs in a view context
- customRevert() - - - Interface - - - - Implementation - - Throws a custom error
- panic() - - - Interface - - - - Implementation - - Halts the chain by panicking in the STF
- legacyError() - - - Interface - - - - Implementation - - Throws a hardcoded error
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- Basic - - - Interface - - - - Implementation - - - Emitted in Events for testing -
- Mixed - - - Interface - - - - Implementation - - - Emitted in Events for testing -
- Store - - - Interface - - - - Implementation - - Never emitted (used for testing log sizes)
+ + + Method + Solidity interface + Go implementation + Description + + + + + becomeChainOwner() + Interface + Implementation + Caller becomes a chain owner + + events(bool flag, bytes32 value) + Interface + Implementation + Emits events with values based on the args provided + + eventsView() + Interface + Implementation + Tries (and fails) to emit logs in a view context + + customRevert() + Interface + Implementation + Throws a custom error + + panic() + Interface + Implementation + Halts the chain by panicking in the STF + + legacyError() + Interface + Implementation + Throws a hardcoded error + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
BasicInterfaceImplementationEmitted in Events for testing
MixedInterfaceImplementationEmitted in Events for testing
StoreInterfaceImplementationNever emitted (used for testing log sizes)
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx index f4a3fdcdcf..cbe73281e1 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx @@ -1,78 +1,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- upload() - - - Interface - - - - Implementation - - Upload does nothing
- size() - - - Interface - - - - Implementation - - Size returns the empty table's size, which is 0
- get(address addr, uint256 index) - - - Interface - - - - Implementation - - Get reverts since the table is empty
+ + + Method + Solidity interface + Go implementation + Description + + + + + upload() + Interface + Implementation + Upload does nothing + + size() + Interface + Implementation + Size returns the empty table's size, which is 0 + + get(address addr, uint256 index) + Interface + Implementation + Get reverts since the table is empty + + + \ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx index a23044e9bf..0f0074f2f1 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx @@ -1,572 +1,133 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- getPricesInWeiWithAggregator() - - - Interface - - - - Implementation - - GetPricesInWeiWithAggregator gets prices in wei when using the provided aggregator
- getPricesInWei() - - - Interface - - - - Implementation - - GetPricesInWei gets prices in wei when using the caller's preferred aggregator
- getPricesInArbGasWithAggregator() - - - Interface - - - - Implementation - - - GetPricesInArbGasWithAggregator gets prices in ArbGas when using the provided aggregator -
- getPricesInArbGas() - - - Interface - - - - Implementation - - GetPricesInArbGas gets prices in ArbGas when using the caller's preferred aggregator
- getGasAccountingParams() - - - Interface - - - - Implementation - - GetGasAccountingParams gets the rollup's speed limit, pool size, and tx gas limit
- getMinimumGasPrice() - - - Interface - - - - Implementation - - GetMinimumGasPrice gets the minimum gas price needed for a transaction to succeed
- getL1BaseFeeEstimate() - - - Interface - - - - Implementation - - GetL1BaseFeeEstimate gets the current estimate of the L1 basefee
- getL1BaseFeeEstimateInertia() - - - Interface - - - - Implementation - - - GetL1BaseFeeEstimateInertia gets how slowly ArbOS updates its estimate of the L1 basefee -
- getL1RewardRate() - - - Interface - - - - Implementation - - GetL1RewardRate gets the L1 pricer reward rate
- getL1RewardRecipient() - - - Interface - - - - Implementation - - GetL1RewardRecipient gets the L1 pricer reward recipient
- getL1GasPriceEstimate() - - - Interface - - - - Implementation - - GetL1GasPriceEstimate gets the current estimate of the L1 basefee
- getCurrentTxL1GasFees() - - - Interface - - - - Implementation - - - GetCurrentTxL1GasFees gets the fee in wei paid to the batch poster for posting this tx -
- getGasBacklog() - - - Interface - - - - Implementation - - GetGasBacklog gets the backlogged amount of gas burnt in excess of the speed limit
- getPricingInertia() - - - Interface - - - - Implementation - - - GetPricingInertia gets how slowly ArbOS updates the L2 basefee in response to backlogged gas -
- getGasBacklogTolerance() - - - Interface - - - - Implementation - - - GetGasBacklogTolerance gets the forgivable amount of backlogged gas ArbOS will ignore when - raising the basefee -
- getL1PricingSurplus() - - - Interface - - - - Implementation - - - GetL1PricingSurplus gets the surplus of funds for L1 batch posting payments (may be - negative) -
- getPerBatchGasCharge() - - - Interface - - - - Implementation - - - GetPerBatchGasCharge gets the base charge (in L1 gas) attributed to each data batch in the - calldata pricer -
- getAmortizedCostCapBips() - - - Interface - - - - Implementation - - GetAmortizedCostCapBips gets the cost amortization cap in basis points
- getL1FeesAvailable() - - - Interface - - - - Implementation - - GetL1FeesAvailable gets the available funds from L1 fees
- getL1PricingEquilibrationUnits() - - - Interface - - - - Implementation - - - GetL1PricingEquilibrationUnits gets the equilibration units parameter for L1 price - adjustment algorithm (Available since ArbOS 20) -
- getLastL1PricingUpdateTime() - - - Interface - - - - Implementation - - - GetLastL1PricingUpdateTime gets the last time the L1 calldata pricer was updated (Available - since ArbOS 20) -
- getL1PricingFundsDueForRewards() - - - Interface - - - - Implementation - - - GetL1PricingFundsDueForRewards gets the amount of L1 calldata payments due for rewards (per - the L1 reward rate) (Available since ArbOS 20) -
- getL1PricingUnitsSinceUpdate() - - - Interface - - - - Implementation - - - GetL1PricingUnitsSinceUpdate gets the amount of L1 calldata posted since the last update - (Available since ArbOS 20) -
- getLastL1PricingSurplus() - - - Interface - - - - Implementation - - - GetLastL1PricingSurplus gets the L1 pricing surplus as of the last update (may be negative) - (Available since ArbOS 20) -
+ + + Method + Solidity interface + Go implementation + Description + + + + + getPricesInWeiWithAggregator() + Interface + Implementation + GetPricesInWeiWithAggregator gets prices in wei when using the provided aggregator + + getPricesInWei() + Interface + Implementation + GetPricesInWei gets prices in wei when using the caller's preferred aggregator + + getPricesInArbGasWithAggregator() + Interface + Implementation + GetPricesInArbGasWithAggregator gets prices in ArbGas when using the provided aggregator + + getPricesInArbGas() + Interface + Implementation + GetPricesInArbGas gets prices in ArbGas when using the caller's preferred aggregator + + getGasAccountingParams() + Interface + Implementation + GetGasAccountingParams gets the rollup's speed limit, pool size, and tx gas limit + + getMinimumGasPrice() + Interface + Implementation + GetMinimumGasPrice gets the minimum gas price needed for a transaction to succeed + + getL1BaseFeeEstimate() + Interface + Implementation + GetL1BaseFeeEstimate gets the current estimate of the L1 basefee + + getL1BaseFeeEstimateInertia() + Interface + Implementation + GetL1BaseFeeEstimateInertia gets how slowly ArbOS updates its estimate of the L1 basefee + + getL1RewardRate() + Interface + Implementation + GetL1RewardRate gets the L1 pricer reward rate + + getL1RewardRecipient() + Interface + Implementation + GetL1RewardRecipient gets the L1 pricer reward recipient + + getL1GasPriceEstimate() + Interface + Implementation + GetL1GasPriceEstimate gets the current estimate of the L1 basefee + + getCurrentTxL1GasFees() + Interface + Implementation + GetCurrentTxL1GasFees gets the fee in wei paid to the batch poster for posting this tx + + getGasBacklog() + Interface + Implementation + GetGasBacklog gets the backlogged amount of gas burnt in excess of the speed limit + + getPricingInertia() + Interface + Implementation + GetPricingInertia gets how slowly ArbOS updates the L2 basefee in response to backlogged gas + + getGasBacklogTolerance() + Interface + Implementation + GetGasBacklogTolerance gets the forgivable amount of backlogged gas ArbOS will ignore when raising the basefee + + getL1PricingSurplus() + Interface + Implementation + GetL1PricingSurplus gets the surplus of funds for L1 batch posting payments (may be negative) + + getPerBatchGasCharge() + Interface + Implementation + GetPerBatchGasCharge gets the base charge (in L1 gas) attributed to each data batch in the calldata pricer + + getAmortizedCostCapBips() + Interface + Implementation + GetAmortizedCostCapBips gets the cost amortization cap in basis points + + getL1FeesAvailable() + Interface + Implementation + GetL1FeesAvailable gets the available funds from L1 fees + + getL1PricingEquilibrationUnits() + Interface + Implementation + GetL1PricingEquilibrationUnits gets the equilibration units parameter for L1 price adjustment algorithm (Available since ArbOS 20) + + getLastL1PricingUpdateTime() + Interface + Implementation + GetLastL1PricingUpdateTime gets the last time the L1 calldata pricer was updated (Available since ArbOS 20) + + getL1PricingFundsDueForRewards() + Interface + Implementation + GetL1PricingFundsDueForRewards gets the amount of L1 calldata payments due for rewards (per the L1 reward rate) (Available since ArbOS 20) + + getL1PricingUnitsSinceUpdate() + Interface + Implementation + GetL1PricingUnitsSinceUpdate gets the amount of L1 calldata posted since the last update (Available since ArbOS 20) + + getLastL1PricingSurplus() + Interface + Implementation + GetLastL1PricingSurplus gets the L1 pricing surplus as of the last update (may be negative) (Available since ArbOS 20) + + + \ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx index e32f9de1fc..9c535c2853 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx @@ -1,56 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- getBalance() - - - Interface - - - - Implementation - - GetBalance retrieves an account's balance
- getCode() - - - Interface - - - - Implementation - - GetCode retrieves a contract's deployed code
+ + + Method + Solidity interface + Go implementation + Description + + + + + getBalance() + Interface + Implementation + GetBalance retrieves an account's balance + + getCode() + Interface + Implementation + GetCode retrieves a contract's deployed code + + + \ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx index 7a521d495b..a31db344da 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx @@ -1,884 +1,230 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- addChainOwner() - - - Interface - - - - Implementation - - AddChainOwner adds account as a chain owner
- removeChainOwner() - - - Interface - - - - Implementation - - RemoveChainOwner removes account from the list of chain owners
- isChainOwner() - - - Interface - - - - Implementation - - IsChainOwner checks if the account is a chain owner
- getAllChainOwners() - - - Interface - - - - Implementation - - GetAllChainOwners retrieves the list of chain owners
- setL1BaseFeeEstimateInertia() - - - Interface - - - - Implementation - - - SetL1BaseFeeEstimateInertia sets how slowly ArbOS updates its estimate of the L1 basefee -
- setL2BaseFee() - - - Interface - - - - Implementation - - SetL2BaseFee sets the L2 gas price directly, bypassing the pool calculus
- setMinimumL2BaseFee() - - - Interface - - - - Implementation - - SetMinimumL2BaseFee sets the minimum base fee needed for a transaction to succeed
- setSpeedLimit() - - - Interface - - - - Implementation - - SetSpeedLimit sets the computational speed limit for the chain
- setMaxTxGasLimit() - - - Interface - - - - Implementation - - SetMaxTxGasLimit sets the maximum size a tx (and block) can be
- setL2GasPricingInertia() - - - Interface - - - - Implementation - - SetL2GasPricingInertia sets the L2 gas pricing inertia
- setL2GasBacklogTolerance() - - - Interface - - - - Implementation - - SetL2GasBacklogTolerance sets the L2 gas backlog tolerance
- getNetworkFeeAccount() - - - Interface - - - - Implementation - - GetNetworkFeeAccount gets the network fee collector
- getInfraFeeAccount() - - - Interface - - - - Implementation - - GetInfraFeeAccount gets the infrastructure fee collector
- setNetworkFeeAccount() - - - Interface - - - - Implementation - - SetNetworkFeeAccount sets the network fee collector to the new network fee account
- setInfraFeeAccount() - - - Interface - - - - Implementation - - SetInfraFeeAccount sets the infra fee collector to the new network fee account
- scheduleArbOSUpgrade(uint64 newVersion, uint64 timestamp) - - - Interface - - - - Implementation - - ScheduleArbOSUpgrade to the requested version at the requested timestamp
- setL1PricingEquilibrationUnits() - - - Interface - - - - Implementation - - Sets equilibration units parameter for L1 price adjustment algorithm
- setL1PricingInertia() - - - Interface - - - - Implementation - - Sets inertia parameter for L1 price adjustment algorithm
- setL1PricingRewardRecipient() - - - Interface - - - - Implementation - - Sets reward recipient address for L1 price adjustment algorithm
- setL1PricingRewardRate() - - - Interface - - - - Implementation - - Sets reward amount for L1 price adjustment algorithm, in wei per unit
- setL1PricePerUnit() - - - Interface - - - - Implementation - - Set how much ArbOS charges per L1 gas spent on transaction data.
- setPerBatchGasCharge() - - - Interface - - - - Implementation - - Sets the base charge (in L1 gas) attributed to each data batch in the calldata pricer
- setBrotliCompressionLevel() - - - Interface - - - - Implementation - - Sets the Brotli compression level used for fast compression (default level is 1)
- setAmortizedCostCapBips() - - - Interface - - - - Implementation - - Sets the cost amortization cap in basis points
- releaseL1PricerSurplusFunds() - - - Interface - - - - Implementation - - Releases surplus funds from L1PricerFundsPoolAddress for use
- setInkPrice() - - - Interface - - - - Implementation - - Sets the amount of ink 1 gas buys
- setWasmMaxStackDepth() - - - Interface - - - - Implementation - - Sets the maximum depth (in wasm words) a wasm stack may grow
- setWasmFreePages() - - - Interface - - - - Implementation - - Gets the number of free wasm pages a tx gets
- setWasmPageGas() - - - Interface - - - - Implementation - - Sets the base cost of each additional wasm page
- setWasmPageLimit() - - - Interface - - - - Implementation - - Sets the initial number of pages a wasm may allocate
- setWasmMinInitGas(uint8 gas, uint16 cached) - - - Interface - - - - Implementation - - Sets the minimum costs to invoke a program
- setWasmInitCostScalar() - - - Interface - - - - Implementation - - Sets the linear adjustment made to program init costs
- setWasmExpiryDays() - - - Interface - - - - Implementation - - Sets the number of days after which programs deactivate
- setWasmKeepaliveDays() - - - Interface - - - - Implementation - - Sets the age a program must be to perform a keepalive
- setWasmBlockCacheSize() - - - Interface - - - - Implementation - - Sets the number of extra programs ArbOS caches during a given block
- addWasmCacheManager() - - - Interface - - - - Implementation - - Adds account as a wasm cache manager
- removeWasmCacheManager() - - - Interface - - - - Implementation - - Removes account from the list of wasm cache managers
- setChainConfig() - - - Interface - - - - Implementation - - Sets serialized chain config in ArbOS state
- - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- OwnerActs - - - Interface - - - - Implementation - - / Emitted when a successful call is made to this precompile
+ + + Method + Solidity interface + Go implementation + Description + + + + + addChainOwner() + Interface + Implementation + AddChainOwner adds account as a chain owner + + removeChainOwner() + Interface + Implementation + RemoveChainOwner removes account from the list of chain owners + + isChainOwner() + Interface + Implementation + IsChainOwner checks if the account is a chain owner + + getAllChainOwners() + Interface + Implementation + GetAllChainOwners retrieves the list of chain owners + + setL1BaseFeeEstimateInertia() + Interface + Implementation + SetL1BaseFeeEstimateInertia sets how slowly ArbOS updates its estimate of the L1 basefee + + setL2BaseFee() + Interface + Implementation + SetL2BaseFee sets the L2 gas price directly, bypassing the pool calculus + + setMinimumL2BaseFee() + Interface + Implementation + SetMinimumL2BaseFee sets the minimum base fee needed for a transaction to succeed + + setSpeedLimit() + Interface + Implementation + SetSpeedLimit sets the computational speed limit for the chain + + setMaxTxGasLimit() + Interface + Implementation + SetMaxTxGasLimit sets the maximum size a tx (and block) can be + + setL2GasPricingInertia() + Interface + Implementation + SetL2GasPricingInertia sets the L2 gas pricing inertia + + setL2GasBacklogTolerance() + Interface + Implementation + SetL2GasBacklogTolerance sets the L2 gas backlog tolerance + + getNetworkFeeAccount() + Interface + Implementation + GetNetworkFeeAccount gets the network fee collector + + getInfraFeeAccount() + Interface + Implementation + GetInfraFeeAccount gets the infrastructure fee collector + + setNetworkFeeAccount() + Interface + Implementation + SetNetworkFeeAccount sets the network fee collector to the new network fee account + + setInfraFeeAccount() + Interface + Implementation + SetInfraFeeAccount sets the infra fee collector to the new network fee account + + scheduleArbOSUpgrade(uint64 newVersion, uint64 timestamp) + Interface + Implementation + ScheduleArbOSUpgrade to the requested version at the requested timestamp + + setL1PricingEquilibrationUnits() + Interface + Implementation + Sets equilibration units parameter for L1 price adjustment algorithm + + setL1PricingInertia() + Interface + Implementation + Sets inertia parameter for L1 price adjustment algorithm + + setL1PricingRewardRecipient() + Interface + Implementation + Sets reward recipient address for L1 price adjustment algorithm + + setL1PricingRewardRate() + Interface + Implementation + Sets reward amount for L1 price adjustment algorithm, in wei per unit + + setL1PricePerUnit() + Interface + Implementation + Set how much ArbOS charges per L1 gas spent on transaction data. + + setPerBatchGasCharge() + Interface + Implementation + Sets the base charge (in L1 gas) attributed to each data batch in the calldata pricer + + setBrotliCompressionLevel() + Interface + Implementation + Sets the Brotli compression level used for fast compression (default level is 1) + + setAmortizedCostCapBips() + Interface + Implementation + Sets the cost amortization cap in basis points + + releaseL1PricerSurplusFunds() + Interface + Implementation + Releases surplus funds from L1PricerFundsPoolAddress for use + + setInkPrice() + Interface + Implementation + Sets the amount of ink 1 gas buys + + setWasmMaxStackDepth() + Interface + Implementation + Sets the maximum depth (in wasm words) a wasm stack may grow + + setWasmFreePages() + Interface + Implementation + Gets the number of free wasm pages a tx gets + + setWasmPageGas() + Interface + Implementation + Sets the base cost of each additional wasm page + + setWasmPageLimit() + Interface + Implementation + Sets the initial number of pages a wasm may allocate + + setWasmMaxSize() + Interface + Implementation + decompression. + + setWasmMinInitGas(uint8 gas, uint16 cached) + Interface + Implementation + Sets the minimum costs to invoke a program + + setWasmInitCostScalar() + Interface + Implementation + Sets the linear adjustment made to program init costs + + setWasmExpiryDays() + Interface + Implementation + Sets the number of days after which programs deactivate + + setWasmKeepaliveDays() + Interface + Implementation + Sets the age a program must be to perform a keepalive + + setWasmBlockCacheSize() + Interface + Implementation + Sets the number of extra programs ArbOS caches during a given block + + addWasmCacheManager() + Interface + Implementation + Adds account as a wasm cache manager + + removeWasmCacheManager() + Interface + Implementation + Removes account from the list of wasm cache managers + + setChainConfig() + Interface + Implementation + Sets serialized chain config in ArbOS state + + setCalldataPriceIncrease() + Interface + Implementation + (EIP-7623) + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
OwnerActsInterfaceImplementation/ Emitted when a successful call is made to this precompile
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx index 6b9ed1eee9..5c6d170f32 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx @@ -1,203 +1,70 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- isChainOwner() - - - Interface - - - - Implementation - - IsChainOwner checks if the user is a chain owner
- rectifyChainOwner() - - - Interface - - - - Implementation - - RectifyChainOwner checks if the account is a chain owner (Available since ArbOS 11)
- getAllChainOwners() - - - Interface - - - - Implementation - - GetAllChainOwners retrieves the list of chain owners
- getNetworkFeeAccount() - - - Interface - - - - Implementation - - GetNetworkFeeAccount gets the network fee collector
- getInfraFeeAccount() - - - Interface - - - - Implementation - - GetInfraFeeAccount gets the infrastructure fee collector
- getBrotliCompressionLevel() - - - Interface - - - - Implementation - - - GetBrotliCompressionLevel gets the current brotli compression level used for fast - compression -
- getScheduledUpgrade() - - - Interface - - - - Implementation - - Returns (0, 0, nil) if no ArbOS upgrade is scheduled.
- - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- ChainOwnerRectified - - - Interface - - - - Implementation - - Emitted when verifying a chain owner
+ + + Method + Solidity interface + Go implementation + Description + + + + + isChainOwner() + Interface + Implementation + IsChainOwner checks if the user is a chain owner + + rectifyChainOwner() + Interface + Implementation + RectifyChainOwner checks if the account is a chain owner (Available since ArbOS 11) + + getAllChainOwners() + Interface + Implementation + GetAllChainOwners retrieves the list of chain owners + + getNetworkFeeAccount() + Interface + Implementation + GetNetworkFeeAccount gets the network fee collector + + getInfraFeeAccount() + Interface + Implementation + GetInfraFeeAccount gets the infrastructure fee collector + + getBrotliCompressionLevel() + Interface + Implementation + GetBrotliCompressionLevel gets the current brotli compression level used for fast compression + + getScheduledUpgrade() + Interface + Implementation + Returns (0, 0, nil) if no ArbOS upgrade is scheduled. + + isCalldataPriceIncreaseEnabled() + Interface + Implementation + (EIP-7623) is enabled + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
ChainOwnerRectifiedInterfaceImplementationEmitted when verifying a chain owner
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx index 4a954ccb07..6a29fb4663 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx @@ -1,318 +1,90 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- redeem() - - - Interface - - - - Implementation - - - Redeem schedules an attempt to redeem the retryable, donating all of the call's gas to the - redeem attempt -
- getLifetime() - - - Interface - - - - Implementation - - GetLifetime gets the default lifetime period a retryable has at creation
- getTimeout() - - - Interface - - - - Implementation - - GetTimeout gets the timestamp for when ticket will expire
- keepalive() - - - Interface - - - - Implementation - - Keepalive adds one lifetime period to the ticket's expiry
- getBeneficiary() - - - Interface - - - - Implementation - - GetBeneficiary gets the beneficiary of the ticket
- cancel() - - - Interface - - - - Implementation - - Cancel the ticket and refund its callvalue to its beneficiary
- getCurrentRedeemer() - - - Interface - - - - Implementation - - Gets the redeemer of the current retryable redeem attempt
- submitRetryable() - - - Interface - - - - Implementation - - - Do not call. This method represents a retryable submission to aid explorers. Calling it will - always revert. -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- TicketCreated - - - Interface - - - - Implementation - - Emitted when creating a retryable
- LifetimeExtended - - - Interface - - - - Implementation - - Emitted when extending a retryable's expiry date
- RedeemScheduled - - - Interface - - - - Implementation - - Emitted when scheduling a retryable
- Canceled - - - Interface - - - - Implementation - - Emitted when cancelling a retryable
- Redeemed - - - Interface - - - - Implementation - - - DEPRECATED in favour of new RedeemScheduled event after the nitro upgrade. -
+ + + Method + Solidity interface + Go implementation + Description + + + + + redeem() + Interface + Implementation + Redeem schedules an attempt to redeem the retryable, donating all of the call's gas to the redeem attempt + + getLifetime() + Interface + Implementation + GetLifetime gets the default lifetime period a retryable has at creation + + getTimeout() + Interface + Implementation + GetTimeout gets the timestamp for when ticket will expire + + keepalive() + Interface + Implementation + Keepalive adds one lifetime period to the ticket's expiry + + getBeneficiary() + Interface + Implementation + GetBeneficiary gets the beneficiary of the ticket + + cancel() + Interface + Implementation + Cancel the ticket and refund its callvalue to its beneficiary + + getCurrentRedeemer() + Interface + Implementation + Gets the redeemer of the current retryable redeem attempt + + submitRetryable() + Interface + Implementation + Do not call. This method represents a retryable submission to aid explorers. Calling it will always revert. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
TicketCreatedInterfaceImplementationEmitted when creating a retryable
LifetimeExtendedInterfaceImplementationEmitted when extending a retryable's expiry date
RedeemScheduledInterfaceImplementationEmitted when scheduling a retryable
CanceledInterfaceImplementationEmitted when cancelling a retryable
RedeemedInterfaceImplementationDEPRECATED in favour of new RedeemScheduled event after the nitro upgrade.
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx index 1877c40ba3..6743faa80c 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx @@ -1,37 +1,18 @@ - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- getStats() - - - Interface - - - - Implementation - - - GetStats returns the current block number and some statistics about the rollup's pre-Nitro - state -
+ + + Method + Solidity interface + Go implementation + Description + + + + + getStats() + Interface + Implementation + GetStats returns the current block number and some statistics about the rollup's pre-Nitro state + + + \ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx index 6c54956353..319541d345 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx @@ -1,361 +1,100 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- arbBlockNumber() - - - Interface - - - - Implementation - - ArbBlockNumber gets the current L2 block number
- arbBlockHash() - - - Interface - - - - Implementation - - ArbBlockHash gets the L2 block hash, if sufficiently recent
- arbChainID() - - - Interface - - - - Implementation - - ArbChainID gets the rollup's unique chain identifier
- arbOSVersion() - - - Interface - - - - Implementation - - ArbOSVersion gets the current ArbOS version
- getStorageGasAvailable() - - - Interface - - - - Implementation - - GetStorageGasAvailable returns 0 since Nitro has no concept of storage gas
- isTopLevelCall() - - - Interface - - - - Implementation - - IsTopLevelCall checks if the call is top-level (deprecated)
- mapL1SenderContractAddressToL2Alias() - - - Interface - - - - Implementation - - MapL1SenderContractAddressToL2Alias gets the contract's L2 alias
- wasMyCallersAddressAliased() - - - Interface - - - - Implementation - - WasMyCallersAddressAliased checks if the caller's caller was aliased
- myCallersAddressWithoutAliasing() - - - Interface - - - - Implementation - - - MyCallersAddressWithoutAliasing gets the caller's caller without any potential aliasing -
- withdrawEth() - - - Interface - - - - Implementation - - WithdrawEth send paid eth to the destination on L1
- sendTxToL1() - - - Interface - - - - Implementation - - SendTxToL1 sends a transaction to L1, adding it to the outbox
- sendMerkleTreeState() - - - Interface - - - - Implementation - - - SendMerkleTreeState gets the root, size, and partials of the outbox Merkle tree state - (caller must be the 0 address) -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- L2ToL1Tx - - - Interface - - - - Implementation - - Logs a send transaction from L2 to L1, including data for outbox proving
- L2ToL1Transaction - - - Interface - - - - Implementation - - - DEPRECATED in favour of the new L2ToL1Tx event above after the nitro upgrade -
- SendMerkleUpdate - - - Interface - - - - Implementation - - Logs a new merkle branch needed for constructing outbox proofs
+ + + Method + Solidity interface + Go implementation + Description + + + + + arbBlockNumber() + Interface + Implementation + ArbBlockNumber gets the current L2 block number + + arbBlockHash() + Interface + Implementation + ArbBlockHash gets the L2 block hash, if sufficiently recent + + arbChainID() + Interface + Implementation + ArbChainID gets the rollup's unique chain identifier + + arbOSVersion() + Interface + Implementation + ArbOSVersion gets the current ArbOS version + + getStorageGasAvailable() + Interface + Implementation + GetStorageGasAvailable returns 0 since Nitro has no concept of storage gas + + isTopLevelCall() + Interface + Implementation + IsTopLevelCall checks if the call is top-level (deprecated) + + mapL1SenderContractAddressToL2Alias() + Interface + Implementation + MapL1SenderContractAddressToL2Alias gets the contract's L2 alias + + wasMyCallersAddressAliased() + Interface + Implementation + WasMyCallersAddressAliased checks if the caller's caller was aliased + + myCallersAddressWithoutAliasing() + Interface + Implementation + MyCallersAddressWithoutAliasing gets the caller's caller without any potential aliasing + + withdrawEth() + Interface + Implementation + WithdrawEth send paid eth to the destination on L1 + + sendTxToL1() + Interface + Implementation + SendTxToL1 sends a transaction to L1, adding it to the outbox + + sendMerkleTreeState() + Interface + Implementation + SendMerkleTreeState gets the root, size, and partials of the outbox Merkle tree state (caller must be the 0 address) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
L2ToL1TxInterfaceImplementationLogs a send transaction from L2 to L1, including data for outbox proving
L2ToL1TransactionInterfaceImplementationDEPRECATED in favour of the new L2ToL1Tx event above after the nitro upgrade
SendMerkleUpdateInterfaceImplementationLogs a new merkle branch needed for constructing outbox proofs
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx index de0789cf41..413efe1110 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx @@ -1,508 +1,135 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- activateProgram() - - - Interface - - - - Implementation - - Compile a wasm program with the latest instrumentation
- stylusVersion() - - - Interface - - - - Implementation - - Gets the latest stylus version
- codehashVersion() - - - Interface - - - - Implementation - - Gets the stylus version that program with codehash was most recently compiled with
- codehashKeepalive() - - - Interface - - - - Implementation - - Extends a program's expiration date (reverts if too soon)
- codehashAsmSize() - - - Interface - - - - Implementation - - Gets a program's asm size in bytes
- programVersion() - - - Interface - - - - Implementation - - Gets the stylus version that program at addr was most recently compiled with
- programInitGas() - - - Interface - - - - Implementation - - Gets the cost to invoke the program
- programMemoryFootprint() - - - Interface - - - - Implementation - - Gets the footprint of program at addr
- programTimeLeft() - - - Interface - - - - Implementation - - Gets returns the amount of time remaining until the program expires
- inkPrice() - - - Interface - - - - Implementation - - Gets the amount of ink 1 gas buys
- maxStackDepth() - - - Interface - - - - Implementation - - Gets the wasm stack size limit
- freePages() - - - Interface - - - - Implementation - - Gets the number of free wasm pages a tx gets
- pageGas() - - - Interface - - - - Implementation - - Gets the base cost of each additional wasm page
- pageRamp() - - - Interface - - - - Implementation - - Gets the ramp that drives exponential memory costs
- pageLimit() - - - Interface - - - - Implementation - - Gets the maximum initial number of pages a wasm may allocate
- minInitGas() - - - Interface - - - - Implementation - - Gets the minimum costs to invoke a program
- initCostScalar() - - - Interface - - - - Implementation - - Gets the linear adjustment made to program init costs
- expiryDays() - - - Interface - - - - Implementation - - Gets the number of days after which programs deactivate
- keepaliveDays() - - - Interface - - - - Implementation - - Gets the age a program must be to perform a keepalive
- blockCacheSize() - - - Interface - - - - Implementation - - Gets the number of extra programs ArbOS caches during a given block.
- - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- ProgramActivated - - - Interface - - - - Implementation - - Emitted when activating a WASM program
- ProgramLifetimeExtended - - - Interface - - - - Implementation - - Emitted when extending the expiration date of a WASM program
+ + + Method + Solidity interface + Go implementation + Description + + + + + activateProgram() + Interface + Implementation + Compile a wasm program with the latest instrumentation + + stylusVersion() + Interface + Implementation + Gets the latest stylus version + + codehashVersion() + Interface + Implementation + Gets the stylus version that program with codehash was most recently compiled with + + codehashKeepalive() + Interface + Implementation + Extends a program's expiration date (reverts if too soon) + + codehashAsmSize() + Interface + Implementation + Gets a program's asm size in bytes + + programVersion() + Interface + Implementation + Gets the stylus version that program at addr was most recently compiled with + + programInitGas() + Interface + Implementation + Gets the cost to invoke the program + + programMemoryFootprint() + Interface + Implementation + Gets the footprint of program at addr + + programTimeLeft() + Interface + Implementation + Gets returns the amount of time remaining until the program expires + + inkPrice() + Interface + Implementation + Gets the amount of ink 1 gas buys + + maxStackDepth() + Interface + Implementation + Gets the wasm stack size limit + + freePages() + Interface + Implementation + Gets the number of free wasm pages a tx gets + + pageGas() + Interface + Implementation + Gets the base cost of each additional wasm page + + pageRamp() + Interface + Implementation + Gets the ramp that drives exponential memory costs + + pageLimit() + Interface + Implementation + Gets the maximum initial number of pages a wasm may allocate + + minInitGas() + Interface + Implementation + Gets the minimum costs to invoke a program + + initCostScalar() + Interface + Implementation + Gets the linear adjustment made to program init costs + + expiryDays() + Interface + Implementation + Gets the number of days after which programs deactivate + + keepaliveDays() + Interface + Implementation + Gets the age a program must be to perform a keepalive + + blockCacheSize() + Interface + Implementation + Gets the number of extra programs ArbOS caches during a given block. + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
ProgramActivatedInterfaceImplementationEmitted when activating a WASM program
ProgramLifetimeExtendedInterfaceImplementationEmitted when extending the expiration date of a WASM program
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx index 4c7c49aa29..b67ee73f19 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx @@ -1,183 +1,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- isCacheManager() - - - Interface - - - - Implementation - - See if the user is a cache manager owner.
- allCacheManagers() - - - Interface - - - - Implementation - - Retrieve all authorized address managers.
- cacheCodehash() - - - Interface - - - - Implementation - - Deprecated: replaced with CacheProgram.
- cacheProgram() - - - Interface - - - - Implementation - - - Caches all programs with a codehash equal to the given address. Caller must be a cache - manager or chain owner. -
- evictCodehash() - - - Interface - - - - Implementation - - - Evicts all programs with the given codehash. Caller must be a cache manager or chain owner. -
- codehashIsCached() - - - Interface - - - - Implementation - - Gets whether a program is cached. Note that the program may be expired.
- - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
- UpdateProgramCache - - - Interface - - - - Implementation - - Emitted when caching a WASM program
+ + + Method + Solidity interface + Go implementation + Description + + + + + isCacheManager() + Interface + Implementation + See if the user is a cache manager owner. + + allCacheManagers() + Interface + Implementation + Retrieve all authorized address managers. + + cacheCodehash() + Interface + Implementation + Deprecated: replaced with CacheProgram. + + cacheProgram() + Interface + Implementation + Caches all programs with a codehash equal to the given address. Caller must be a cache manager or chain owner. + + evictCodehash() + Interface + Implementation + Evicts all programs with the given codehash. Caller must be a cache manager or chain owner. + + codehashIsCached() + Interface + Implementation + Gets whether a program is cached. Note that the program may be expired. + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
UpdateProgramCacheInterfaceImplementationEmitted when caching a WASM program
\ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx index 8db16c5ddf..193138faa9 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx @@ -1,34 +1,18 @@ - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- burnArbGas() - - - Interface - - - - Implementation - - BurnArbGas unproductively burns the amount of L2 ArbGas
+ + + Method + Solidity interface + Go implementation + Description + + + + + burnArbGas() + Interface + Implementation + BurnArbGas unproductively burns the amount of L2 ArbGas + + + \ No newline at end of file diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx index d18c922d29..8b1b33c190 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx @@ -1,237 +1,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
- - estimateRetryableTicket(address sender, uint256 deposit, address to, uint256 l2CallValue, - address excessFeeRefundAddress, address callValueRefundAddress, bytes calldata data) - - - - Interface - - - - Implementation - - Estimates the gas needed for a retryable submission
- constructOutboxProof() - - - Interface - - - - Implementation - - Constructs an outbox proof of an l2->l1 send's existence in the outbox accumulator
- findBatchContainingBlock() - - - Interface - - - - Implementation - - Finds the L1 batch containing a requested L2 block, reverting if none does
- getL1Confirmations() - - - Interface - - - - Implementation - - - Gets the number of L1 confirmations of the sequencer batch producing the requested L2 block -
- gasEstimateComponents(address to, bool contractCreation, bytes calldata data) - - - Interface - - - - Implementation - - Same as native gas estimation, but with additional info on the l1 costs
- gasEstimateL1Component(address to, bool contractCreation, bytes calldata data) - - - Interface - - - - Implementation - - Estimates a transaction's l1 costs
- legacyLookupMessageBatchProof() - - - Interface - - - - Implementation - - Returns the proof necessary to redeem a message
- nitroGenesisBlock() - - - Interface - - - - Implementation - - Returns the first block produced using the Nitro codebase
- blockL1Num() - - - Interface - - - - Implementation - - Returns the L1 block number of the L2 block
- l2BlockRangeForL1() - - - Interface - - - - Implementation - - Finds the L2 block number range that has the given L1 block number
+ + + Method + Solidity interface + Go implementation + Description + + + + + estimateRetryableTicket(address sender, uint256 deposit, address to, uint256 l2CallValue, address excessFeeRefundAddress, address callValueRefundAddress, bytes calldata data) + Interface + Implementation + Estimates the gas needed for a retryable submission + + constructOutboxProof() + Interface + Implementation + Constructs an outbox proof of an l2->l1 send's existence in the outbox accumulator + + findBatchContainingBlock() + Interface + Implementation + Finds the L1 batch containing a requested L2 block, reverting if none does + + getL1Confirmations() + Interface + Implementation + Gets the number of L1 confirmations of the sequencer batch producing the requested L2 block + + gasEstimateComponents(address to, bool contractCreation, bytes calldata data) + Interface + Implementation + Same as native gas estimation, but with additional info on the l1 costs + + gasEstimateL1Component(address to, bool contractCreation, bytes calldata data) + Interface + Implementation + Estimates a transaction's l1 costs + + legacyLookupMessageBatchProof() + Interface + Implementation + Returns the proof necessary to redeem a message + + nitroGenesisBlock() + Interface + Implementation + Returns the first block produced using the Nitro codebase + + blockL1Num() + Interface + Implementation + Returns the L1 block number of the L2 block + + l2BlockRangeForL1() + Interface + Implementation + Finds the L2 block number range that has the given L1 block number + + + \ No newline at end of file diff --git a/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx b/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx index fa885a9697..c2eb1009ba 100644 --- a/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx +++ b/arbitrum-docs/launch-arbitrum-chain/04-maintain-your-chain/05-upgrade-to-bold.mdx @@ -27,12 +27,13 @@ Let's dive into it. ## 1. Upgrade your nodes to Nitro v3.5.4 or higher -Before updating the contracts, you want to make sure your nodes are ready for the update. Nitro v3.5.4 introduced compatibility with pre-BoLD and BoLD chains to ensure a smooth upgrade. Nodes will automatically detect whether the chain is running pre-BoLD or BoLD Rollup and Challenge contracts and will perform the appropriate calls depending on that check. +Before updating the contracts, you want to make sure your nodes are ready for the update. Nitro v3.5.4 introduced compatibility with pre-BoLD and BoLD chains to ensure a smooth upgrade, but Nitro v3.6.2 has many recommended improvements. Nodes will automatically detect whether the chain is running pre-BoLD or BoLD Rollup and Challenge contracts and will perform the appropriate calls depending on that check. Most of the parameters used in Nitro before v3.5.4 will stay the same when running a higher version but, depending on the type of node, you'll have to include a few more BoLD-specific parameters: -- For validator nodes: add `--node.bold.enable=true` and `--node.bold.strategy=` to configure the validator to create and/or confirm assertions in the new Rollup contract (find more information in [How to run a validator](/run-arbitrum-node/more-types/02-run-validator-node.mdx#step-1-configure-and-run-your-validator)) -- For all other types of node: add `--node.bold.enable=true` to enable [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode) +- For validator nodes: add `--node.bold.strategy=` to configure the validator to create and/or confirm assertions in the new Rollup contract (find more information in [How to run a validator](/run-arbitrum-node/more-types/02-run-validator-node.mdx#step-1-configure-and-run-your-validator)) +- For all other types of node before Nitro v3.6.0: add `--node.bold.enable=true` to enable [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode) +- For all other types of node after Nitro v3.6.0: [watchtower mode](/run-arbitrum-node/03-run-full-node.mdx#watchtower-mode) is automatically enabled ## 2. Upgrade your Nitro contracts to v3.1.0 diff --git a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-arbos.mdx b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-arbos.mdx index 78a8ec8317..994c30eab5 100644 --- a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-arbos.mdx +++ b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-arbos.mdx @@ -28,7 +28,7 @@ Below, you will find four examples of ArbOS-related code changes and, generally, ### 1. Add a new method to existing precompile on a specific ArbOS version: After you add `sayHi()` to `ArbSys.go` according to the guide in [customize precompile option 1](./customize-precompile.mdx#option-1-add-new-methods-to-an-existing-precompile), -you need continue to modify [precompile.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/precompile.go). +you need continue to modify [precompile.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/precompile.go). For example, the original code is: @@ -54,7 +54,7 @@ In this way, this method will be executed normally and return results only after ### 2. Create a new precompile contract on a specific ArbOS version -After you add a new precompile named `ArbHi` according to the guide in [customize precompile option 2](./customize-precompile.mdx#option-2-create-a-new-precompile) and make changes to [precompile.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/precompile.go), +After you add a new precompile named `ArbHi` according to the guide in [customize precompile option 2](./customize-precompile.mdx#option-2-create-a-new-precompile) and make changes to [precompile.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/precompile.go), you also need to make the following changes: ```go @@ -130,7 +130,7 @@ func (con *ArbHi) SayHi(c ctx, evm mech) (string, error) { } ``` -In the above code, we use precompiles as an example. Some logic might also affect the STF, such as the methods in [block_process.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToArbos=arbos@@/block_processor.go), [internal_tx.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToArbos=arbos@@/internal_tx.go), [tx_processor.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToArbos=arbos@@/tx_processor.go) and so on. +In the above code, we use precompiles as an example. Some logic might also affect the STF, such as the methods in [block_process.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToArbos=arbos@@/block_processor.go), [internal_tx.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToArbos=arbos@@/internal_tx.go), [tx_processor.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToArbos=arbos@@/tx_processor.go) and so on. The aforementioned ArbOS control methods will be needed for interacting with different versions of the STF logic. :::tip Backward compatibility diff --git a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-precompile.mdx b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-precompile.mdx index 2ea68b4935..a5bf28e59b 100644 --- a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-precompile.mdx +++ b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-precompile.mdx @@ -21,7 +21,7 @@ To support these additional use-cases, follow the instructions described in [How There are five primary ways to customize your chain's precompiles: -1. Add new methods to an existing [precompile](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/). +1. Add new methods to an existing [precompile](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/). 2. Create a new precompile. 3. Define a new event. 4. Customize gas usage for a specific method. @@ -32,14 +32,14 @@ There are five primary ways to customize your chain's precompiles: Clone the Nitro repository before you begin: ```shell -git clone --branch @@nitroVersionTag=v3.5.5@@ +git clone --branch @@nitroVersionTag=v3.6.2@@ cd nitro git submodule update --init --recursive --force ``` ## Option 1: Add new methods to an existing precompile -Using your favorite code editor, open an existing precompile from the [precompiles implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/) directory, `/@@nitroPathToPrecompiles=precompiles@@`. We'll use `ArbSys.go` as an example. Open the corresponding Go implementation file (`ArbSys.go`) and add a simple `SayHi` method: +Using your favorite code editor, open an existing precompile from the [precompiles implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/) directory, `/@@nitroPathToPrecompiles=precompiles@@`. We'll use `ArbSys.go` as an example. Open the corresponding Go implementation file (`ArbSys.go`) and add a simple `SayHi` method: ```go func (con *ArbSys) SayHi(c ctx, evm mech) (string, error) { @@ -47,7 +47,7 @@ func (con *ArbSys) SayHi(c ctx, evm mech) (string, error) { } ``` -Then, open the corresponding Solidity interface file (`ArbSys.sol`) from the [precompiles interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/) directory, `/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@`, and add the required interface. Ensure that the method name on the interface matches the name of the function you introduced in the previous step, `camelCased`: +Then, open the corresponding Solidity interface file (`ArbSys.sol`) from the [precompiles interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/) directory, `/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@`, and add the required interface. Ensure that the method name on the interface matches the name of the function you introduced in the previous step, `camelCased`: ```solidity function sayHi() external view returns(string memory); @@ -88,7 +88,7 @@ hi ## Option 2: Create a new precompile -First, navigate to the [precompiles implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/) directory, `/@@nitroPathToPrecompiles=precompiles@@`, and create a new precompile implementation file called `ArbHi.go`. We'll define a new method, and we'll give it an address: +First, navigate to the [precompiles implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/) directory, `/@@nitroPathToPrecompiles=precompiles@@`, and create a new precompile implementation file called `ArbHi.go`. We'll define a new method, and we'll give it an address: ```go package precompiles @@ -103,13 +103,13 @@ func (con *ArbHi) SayHi(c ctx, evm mech) (string, error) { } ``` -Then, update [precompile.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/precompile.go) to register the new precompile under the `Precompiles()` method: +Then, update [precompile.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/precompile.go) to register the new precompile under the `Precompiles()` method: ```go insert(MakePrecompile(pgen.ArbHiMetaData, &ArbHi{Address: hex("11a")})) // 0x011a here is an example address ``` -Navigate to the [precompiles interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/) directory, `/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@`, create `ArbHi.sol`, and add the required interface. Ensure that the method name on the interface matches the name of the function you introduced in the previous step, `camelCased`: +Navigate to the [precompiles interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/) directory, `/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@`, create `ArbHi.sol`, and add the required interface. Ensure that the method name on the interface matches the name of the function you introduced in the previous step, `camelCased`: ```solidity pragma solidity >=0.4.21 <0.9.0; @@ -157,7 +157,7 @@ hi We'll reuse the `Arbsys` precompile from Option 1 above to demonstrate how to emit a simple `Hi` event from the `SayHi` method in `ArbSys.sol`. -First, go to the [precompiles implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/) directory, find `ArbSys.go`, and edit the `ArbSys` struct: +First, go to the [precompiles implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/) directory, find `ArbSys.go`, and edit the `ArbSys` struct: ```go // ArbSys provides system-level functionality for interacting with L1 and understanding the call stack. @@ -189,7 +189,7 @@ func (con *ArbSys) SayHi(c ctx, evm mech) (string, error) { } ``` -Now navigate to the [precompiles interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/) directory, open `Arbsys.sol`, and add the required interface. Ensure that the event name on the interface matches the name of the function you introduced in `ArbSys` struct in the previous step: +Now navigate to the [precompiles interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/) directory, open `Arbsys.sol`, and add the required interface. Ensure that the event name on the interface matches the name of the function you introduced in `ArbSys` struct in the previous step: ```solidity event Hi(address caller); @@ -212,7 +212,7 @@ Next, build Nitro by following the instructions in [How to build Nitro locally]( Run Nitro with the following command: ```shell -docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url= --chain.id= --http.api=net,web3,eth,debug --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* +docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url= --chain.id= --http.api=net,web3,eth,debug --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* ``` ### Send the transaction and get the transaction receipt @@ -290,7 +290,7 @@ Next, build Nitro by following the instructions in [How to build Nitro locally]( Run Nitro with the following command: ```shell -docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url= --chain.id= --http.api=net,web3,eth,debug --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* +docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url= --chain.id= --http.api=net,web3,eth,debug --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* ``` ### Send the transaction and get the transaction receipt @@ -376,9 +376,9 @@ To learn more about the gas cost model, see [how to estimate gas](/build-decentr In this example, we'll demonstrate how to _read from_ and _write to_ a precompile contract's [ArbOS state](https://github.com/OffchainLabs/nitro/blob/v2.2.0/arbos/arbosState/arbosstate.go#L38). -First, open the [arbosstate.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToArbosState=arbos/arbosState@@/arbosstate.go) file and locate the [ArbosState](https://github.com/OffchainLabs/nitro/blob/v2.2.0/arbos/arbosState/arbosstate.go#L38) structure. This is where ArbOS state is defined. +First, open the [arbosstate.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToArbosState=arbos/arbosState@@/arbosstate.go) file and locate the [ArbosState](https://github.com/OffchainLabs/nitro/blob/v2.2.0/arbos/arbosState/arbosstate.go#L38) structure. This is where ArbOS state is defined. -Define a state key called `myNumber` of type `storage.StorageBackedUint64`. You can find more types in [storage.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToStorage=arbos/storage@@/storage.go): +Define a state key called `myNumber` of type `storage.StorageBackedUint64`. You can find more types in [storage.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToStorage=arbos/storage@@/storage.go): ``` type ArbosState struct { @@ -445,7 +445,7 @@ func (state *ArbosState) GetMyNumber() (uint64, error) { } ``` -Next, head back to the [precompiles directory](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.5.5@@/@@nitroPathToPrecompiles=precompiles@@/) and create a new `ArbHi.go` (introduced in Option 2). +Next, head back to the [precompiles directory](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.2@@/@@nitroPathToPrecompiles=precompiles@@/) and create a new `ArbHi.go` (introduced in Option 2). This time, we'll add two new methods to read and write the ArbOS state: ``` diff --git a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx index 0988ed073b..7ba6aea046 100644 --- a/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx +++ b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-stf.mdx @@ -76,7 +76,7 @@ This guide covers how to build the node and enable fraud proofs by building a ne Clone the Nitro repository before you begin: ```shell -git clone --branch @@nitroVersionTag=v3.5.5@@ https://github.com/OffchainLabs/nitro.git +git clone --branch @@nitroVersionTag=v3.6.2@@ https://github.com/OffchainLabs/nitro.git cd nitro git submodule update --init --recursive --force ``` diff --git a/arbitrum-docs/run-arbitrum-node/03-run-full-node.mdx b/arbitrum-docs/run-arbitrum-node/03-run-full-node.mdx index ad75a07e9c..1fcfe56cf1 100644 --- a/arbitrum-docs/run-arbitrum-node/03-run-full-node.mdx +++ b/arbitrum-docs/run-arbitrum-node/03-run-full-node.mdx @@ -38,7 +38,7 @@ Even though there are alpha and beta versions of the Arbitrum Nitro software, on ::: -Latest Docker image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ +Latest Docker image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ ## Database snapshots @@ -127,7 +127,7 @@ import OrbitChainsExample from './partials/run-full-node/_orbit-chains-example.m ## Watchtower mode -- By default, the full node will run in Watchtower mode. This means that the node watches the onchain assertions, and if it disagrees with them, it will log an error containing the string `found incorrect assertion in watchtower mode`. For a BoLD-enabled chain like Arbitrum One or Arbitrum Nova, the `--node.bold.enable=true` flag should be set to ensure your node can monitor for onchain assertions properly. +- By default, the full node will run in Watchtower mode. This means that the node watches the onchain assertions, and if it disagrees with them, it will log an error containing the string `found incorrect assertion in watchtower mode`. For a BoLD-enabled chain like Arbitrum One or Arbitrum Nova if you are running Nitro before v3.6.0, the `--node.bold.enable=true` flag should be set to ensure your node can monitor for onchain assertions properly. - Setting this flag is not required as your node will continue to operate properly, validate the Arbitrum One/Nova chain, and serve RPC requests as usual, regardless of this flag. - Note that watchtower mode adds a small amount of execution and memory overhead. You can deactivate this mode using the parameter `--node.staker.enable=false`. diff --git a/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx b/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx index 5c4b0533de..93529b6920 100644 --- a/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx +++ b/arbitrum-docs/run-arbitrum-node/data-availability-committees/02-deploy-das.mdx @@ -87,7 +87,7 @@ DA servers also have an optional REST aggregator which, when a data batch is not Gather the following information: -- The latest Nitro docker image: `@@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@` +- The latest Nitro docker image: `@@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@` - An RPC endpoint for the parent chain. It is recommended to use a [third-party provider RPC](/build-decentralized-apps/reference/01-node-providers.mdx#third-party-rpc-providers) or [run your own node](/run-arbitrum-node/03-run-full-node.mdx) to prevent being rate limited. - The `SequencerInbox` contract address in the parent chain. @@ -127,7 +127,7 @@ Here's an example of how to use the `datool keygen` utility inside Docker and st ```shell docker run -v $(pwd)/bls_keys:/data/keys --entrypoint datool \ -@@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ keygen --dir /data/keys +@@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ keygen --dir /data/keys ``` ### Step 2: Deploy the DAS @@ -253,7 +253,7 @@ template: - | mkdir -p /home/user/data/badgerdb /usr/local/bin/daserver --data-availability.parent-chain-node-url "" --data-availability.sequencer-inbox-address "
" --data-availability.key.key-dir /home/user/data/keys --enable-rpc --rpc-addr '0.0.0.0' --log-level 3 --enable-rest --rest-addr '0.0.0.0' --data-availability.local-cache.enable --data-availability.rest-aggregator.enable --data-availability.rest-aggregator.online-url-list "" --data-availability.s3-storage.enable --data-availability.s3-storage.access-key "" --data-availability.s3-storage.bucket "" --data-availability.s3-storage.region "" --data-availability.s3-storage.secret-key "" --data-availability.s3-storage.object-prefix "/" --data-availability.s3-storage.discard-after-timeout false --data-availability.local-file-storage.enable --data-availability.local-file-storage.data-dir /home/user/data/das-data - image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ + image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ imagePullPolicy: Always resources: limits: @@ -350,7 +350,7 @@ datool keygen --dir /some/local/dir/keys --ecdsa You can also use the `docker run` command as follows: ```shell -docker run --rm -it -v /some/local/dir:/home/user/data --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ keygen --dir /home/user/data/keys --ecdsa +docker run --rm -it -v /some/local/dir:/home/user/data --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ keygen --dir /home/user/data/keys --ecdsa ``` #### Step 2: Change the DAS configuration and restart the server @@ -386,7 +386,7 @@ datool client rpc store --url http://localhost:9876 --message "Hello world" --s You can also use the `docker run` command: ```shell -docker run --rm -it -v /some/local/dir:/home/user/data --network="host" --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ client rpc store --url http://localhost:9876 --message "Hello world" --signing-key /home/user/data/keys/ecdsa +docker run --rm -it -v /some/local/dir:/home/user/data --network="host" --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ client rpc store --url http://localhost:9876 --message "Hello world" --signing-key /home/user/data/keys/ecdsa ``` The above command will output the `Hex Encoded Data Hash` which can then be used to retrieve the data in the next step. @@ -402,7 +402,7 @@ datool client rest getbyhash --url http://localhost:9877 --data-hash 0xDataHash You can also use the `docker run` command: ```shell -docker run --rm -it --network="host" --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ client rest getbyhash --url http://localhost:9877 --data-hash 0xDataHash +docker run --rm -it --network="host" --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ client rest getbyhash --url http://localhost:9877 --data-hash 0xDataHash ``` If we set `0xDataHash` to `0x052cca0e379137c975c966bcc69ac8237ac38dc1fcf21ac9a6524c87a2aab423` (from the previous step), then the result should be: `Message: Hello world` diff --git a/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx b/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx index 1d4d681f7d..d5111278c3 100644 --- a/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx +++ b/arbitrum-docs/run-arbitrum-node/data-availability-committees/03-deploy-mirror-das.mdx @@ -45,7 +45,7 @@ A mirror DAS will use the same tool and, thus, the same configuration options as Gather the following information: -- The latest Nitro docker image: `@@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@` +- The latest Nitro docker image: `@@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@` - An RPC endpoint for the parent chain. It is recommended to use a [third-party provider RPC](/build-decentralized-apps/reference/01-node-providers.mdx#third-party-rpc-providers) or [run your own node](/run-arbitrum-node/03-run-full-node.mdx) to prevent being rate limited. - The SequencerInbox contract address in the parent chain. - URL of the list of REST endpoints of other DA servers to configure the REST aggregator. @@ -201,7 +201,7 @@ spec: mkdir -p /home/user/data/badgerdb mkdir -p /home/user/data/syncState /usr/local/bin/daserver --data-availability.parent-chain-node-url "" --data-availability.sequencer-inbox-address "
" --enable-rest --rest-addr '0.0.0.0' --log-level 3 --data-availability.local-cache.enable --data-availability.rest-aggregator.enable --data-availability.rest-aggregator.urls "http://your-main-das.svc.cluster.local:9877" --data-availability.rest-aggregator.online-url-list "" --data-availability.rest-aggregator.sync-to-storage.eager --data-availability.rest-aggregator.sync-to-storage.eager-lower-bound-block "BLOCK NUMBER" --data-availability.rest-aggregator.sync-to-storage.state-dir /home/user/data/syncState --data-availability.s3-storage.enable --data-availability.s3-storage.access-key "" --data-availability.s3-storage.bucket "" --data-availability.s3-storage.region "" --data-availability.s3-storage.secret-key "" --data-availability.s3-storage.object-prefix "/" --data-availability.local-file-storage.enable --data-availability.local-file-storage.data-dir /home/user/data/das-data - image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ + image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ imagePullPolicy: Always resources: limits: diff --git a/arbitrum-docs/run-arbitrum-node/data-availability-committees/04-configure-dac.mdx b/arbitrum-docs/run-arbitrum-node/data-availability-committees/04-configure-dac.mdx index 1006065461..ab269e1530 100644 --- a/arbitrum-docs/run-arbitrum-node/data-availability-committees/04-configure-dac.mdx +++ b/arbitrum-docs/run-arbitrum-node/data-availability-committees/04-configure-dac.mdx @@ -89,7 +89,7 @@ Once you have the JSON structure, save it into a file, for example, `keyset-info Finally, we'll use Nitro's `datool dumpkeyset` utility inside Docker to generate the keyset and keyset hash. ```shell -docker run -v $(pwd):/data/keyset --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ dumpkeyset --conf.file /data/keyset/keyset-info.json +docker run -v $(pwd):/data/keyset --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ dumpkeyset --conf.file /data/keyset/keyset-info.json ``` This command will output two results: `Keyset` and `KeysetHash`. Save them to use in the next steps. @@ -121,7 +121,7 @@ The JSON file is: And when running the command we obtain: ```shell -$ docker run -v $(pwd):/data/keyset --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ dumpkeyset --conf.file /data/keyset/keyset-info.json +$ docker run -v $(pwd):/data/keyset --entrypoint datool @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ dumpkeyset --conf.file /data/keyset/keyset-info.json Keyset: 0x0000000000000002000000000000000201216006dcb5e56764bb72e6a45e6deb301ca85d8c4315c1da2efa29927f2ac8fb25571ce31d2d603735fe03196f6d56bcbf9a1999a89a74d5369822c4445d676c15ed52e5008daa775dc9a839c99ff963a19946ac740579874dac4f639907ae1bc69f0c6694955b524d718ca445831c5375393773401f33725a79661379dddabd5fff28619dc070befd9ed73d699e5c236c1a163be58ba81002b6130709bc064af5d7ba947130b72056bf17263800f1a3ab2269c6a510ef8e7412fd56d1ef1b916a1306e3b1d9c82c099371bd9861582acaada3a16e9dfee5d0ebce61096598a82f112d0a935e8cab5c48d82e3104b0c7ba79157dad1a019a3e7f6ad077b8e6308b116fec0f58239622463c3631fa01e2b4272409215b8009422c16715dbede5909060121600835f995f2478f24892d050daa289f8b6b9c1b185bcd28532f88d610c2642a2dc6f3509740236d33c3e2d9136aab17f819c8c671293bba277717762e8d1c1f7bac9e17dd28d2939a959bb38e500f9c11c38cebbc426e2dea97c40175a655d17400ae6c75ff49e884c79469249e70953258854b64fa8445c585ad45dc6dc6975501c6af7cff7074202c687f8a7bf1a3ac192689755f232275b4c8421b1a5669e9b904c29a292cdf961b783a7c0b4ce736900de4d8c63c5f85a65cb44af34bef840acef84ab75f44c4c9137610b68107aff3bbdcc19119c7a927c115b7b9bfb27d85c500ee77d13ec5a97a3ae6bf51d3b70a5502e8416de7b5eb8e9feee376411ca35c8a7f3f597c7606578cf96a4715ce5a35cf48e39c0a1faa2dee22d74e6819 KeysetHash: 0xfdca3e4e2de25f0a56d0ced68fd1cc64f91b20cde67c964c55105477c02f49be ``` @@ -130,7 +130,7 @@ KeysetHash: 0xfdca3e4e2de25f0a56d0ced68fd1cc64f91b20cde67c964c55105477c02f49be Once we have the keyset and its hash, we can configure the `SequencerInbox` contract so it accepts DACerts signed by the DAC members. -The `SequencerInbox` can be configured with the new keyset by invoking the [setValidKeyset](https://github.com/OffchainLabs/nitro-contracts/blob/@@nitroContractsCommit=780366a0c40caf694ed544a6a1d52c0de56573ba@@/src/bridge/SequencerInbox.sol#L751) method. Note that only the chain owner can call this method. +The `SequencerInbox` can be configured with the new keyset by invoking the [setValidKeyset](https://github.com/OffchainLabs/nitro-contracts/blob/@@nitroContractsCommit=601afc77e5b2a2dfd6f7075f2f3a48989c0be740@@/src/bridge/SequencerInbox.sol#L751) method. Note that only the chain owner can call this method. Here's an example of how to use Foundry to configure the `SequencerInbox` with the keyset generated in the previous step: diff --git a/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx b/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx index 0e126b811a..4745cbee0f 100644 --- a/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx +++ b/arbitrum-docs/run-arbitrum-node/more-types/01-run-archive-node.mdx @@ -48,7 +48,7 @@ The minimum storage requirements will change as the Nitro chains grow (growing r - Arbitrum One: 9.7TB SSD, currently growing at a rate of about 850GB per month - Arbitrum Nova: 4.3TB SSD, currently growing at a rate of about 1.8TB GB per month 4. **Docker images:** We'll specify these in the below commands; you don't need to download them manually. - - Latest Docker image for **Arbitrum One Nitro**: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ + - Latest Docker image for **Arbitrum One Nitro**: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ - Latest Docker image for **Arbitrum One Classic**: @@latestClassicNodeImage=offchainlabs/arb-node:v1.4.5-e97c1a4@@ 5. **Database snapshots:** - Nitro database snapshot @@ -92,7 +92,7 @@ To run both Arbitrum Nitro and/or Arbitrum Classic in archive mode, follow one o - **Arbitrum One Nitro archive node**: ```shell - docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url https://l1-node:8545 --chain.id=42161 --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --execution.caching.archive + docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url https://l1-node:8545 --chain.id=42161 --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --execution.caching.archive ``` - **Arbitrum One Classic archive node**: ```shell @@ -100,7 +100,7 @@ To run both Arbitrum Nitro and/or Arbitrum Classic in archive mode, follow one o ``` - **Arbitrum One Nitro archive node with forwarding classic execution support**: ```shell - docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url https://l1-node:8545 --chain.id=42161 --execution.rpc.classic-redirect= --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --execution.caching.archive + docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url https://l1-node:8545 --chain.id=42161 --execution.rpc.classic-redirect= --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --execution.caching.archive ``` Note that the above commands both map to port `8547` on their hosts. To run both on the same host, you should edit those mapping to different ports and specify your Classic node RPC URL as `` in your Nitro start command. To verify the connection health of your node(s), see [Docker network between containers - Docker Networking Example](https://www.middlewareinventory.com/blog/docker-network-example/). diff --git a/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx b/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx index 54fdfadf3a..2220a862ae 100644 --- a/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx +++ b/arbitrum-docs/run-arbitrum-node/more-types/02-run-validator-node.mdx @@ -80,7 +80,7 @@ On top of the configuration of a regular full node, you'll need to configure the Here's an example of how to run a defensive validator for Arbitrum One: ```shell -docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --node.staker.enable --node.staker.strategy=Defensive --node.staker.parent-chain-wallet.password="SOME SECURE PASSWORD" --node.bold.enable --node.bold.strategy=Defensive +docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --node.staker.enable --node.staker.strategy=Defensive --node.staker.parent-chain-wallet.password="SOME SECURE PASSWORD" --node.bold.enable --node.bold.strategy=Defensive ``` ### Step 2: verify that your node is running as a validator @@ -123,7 +123,7 @@ Nitro includes a tool to create a validator wallet for a specific chain automati Here is an example of how to create a validator wallet for Arbitrum One and exit: ```shell -docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --node.staker.enable --node.staker.parent-chain-wallet.only-create-key --node.staker.parent-chain-wallet.password="SOME SECURE PASSWORD" +docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --node.staker.enable --node.staker.parent-chain-wallet.only-create-key --node.staker.parent-chain-wallet.password="SOME SECURE PASSWORD" ``` The wallet file will be created under the mounted directory inside the `/wallet/` directory (for example, `arb1/wallet/` for Arbitrum One, or `nova/wallet/` for Arbitrum Nova). Be sure to backup the wallet file, as it will be the only way to withdraw the bond when desired. diff --git a/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx b/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx index 14be807905..a0c9fa07d5 100644 --- a/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx +++ b/arbitrum-docs/run-arbitrum-node/nitro/01-build-nitro-locally.mdx @@ -64,7 +64,7 @@ For troubleshooting, check Docker's section in [their documentation](https://doc ### Step 2. Download the Nitro source code ```shell -git clone --branch @@nitroVersionTag=v3.5.5@@ https://github.com/OffchainLabs/nitro.git +git clone --branch @@nitroVersionTag=v3.6.2@@ https://github.com/OffchainLabs/nitro.git cd nitro git submodule update --init --recursive --force ``` diff --git a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-example.mdx b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-example.mdx index 9c48ad7a11..20731e02d3 100644 --- a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-example.mdx +++ b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_dao-chains-example.mdx @@ -1,3 +1,3 @@ ```shell -docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url= --parent-chain.blob-client.beacon-url= --chain.id= --init.latest=pruned --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* +docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url= --parent-chain.blob-client.beacon-url= --chain.id= --init.latest=pruned --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* ``` diff --git a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-example.mdx b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-example.mdx index 44b7dfb178..e0a3265534 100644 --- a/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-example.mdx +++ b/arbitrum-docs/run-arbitrum-node/partials/run-full-node/_orbit-chains-example.mdx @@ -1,5 +1,5 @@ ```shell -docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url= --chain.info-json= --chain.name= --node.feed.input.url= --execution.forwarding-target= --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* +docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url= --chain.info-json= --chain.name= --node.feed.input.url= --execution.forwarding-target= --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* ``` - You can see an example of `--chain.info-json` in the section above. diff --git a/arbitrum-docs/run-arbitrum-node/sequencer/01-run-feed-relay.mdx b/arbitrum-docs/run-arbitrum-node/sequencer/01-run-feed-relay.mdx index 8ad30b672f..13ef7137f3 100644 --- a/arbitrum-docs/run-arbitrum-node/sequencer/01-run-feed-relay.mdx +++ b/arbitrum-docs/run-arbitrum-node/sequencer/01-run-feed-relay.mdx @@ -21,11 +21,11 @@ The feed relay is in the same docker image as the Nitro node. - Here is an example of how to run the feed relay for Arbitrum One: ```shell - docker run --rm -it -p 0.0.0.0:9642:9642 --entrypoint relay @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --node.feed.output.addr=0.0.0.0 --node.feed.input.url=wss://arb1.arbitrum.io/feed --chain.id=42161 + docker run --rm -it -p 0.0.0.0:9642:9642 --entrypoint relay @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --node.feed.output.addr=0.0.0.0 --node.feed.input.url=wss://arb1.arbitrum.io/feed --chain.id=42161 ``` - Here is an example of how to run nitro-node for Arbitrum One with custom relay: ```shell - docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --node.feed.input.url=ws://local-relay-address:9642 + docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --node.feed.input.url=ws://local-relay-address:9642 ``` Note that Arbitrum classic does not communicate with Nitro sequencer, so classic relay is no longer used. diff --git a/arbitrum-docs/run-arbitrum-node/sequencer/03-run-sequencer-coordination-manager.mdx b/arbitrum-docs/run-arbitrum-node/sequencer/03-run-sequencer-coordination-manager.mdx index 19c19c7ced..cab16908cd 100644 --- a/arbitrum-docs/run-arbitrum-node/sequencer/03-run-sequencer-coordination-manager.mdx +++ b/arbitrum-docs/run-arbitrum-node/sequencer/03-run-sequencer-coordination-manager.mdx @@ -13,7 +13,7 @@ The tool offers keyboard-only support. Any changes you make are stored locally u - Clone and enter nitro repository: ```shell - git clone --branch @@nitroVersionTag=v3.5.5@@ https://github.com/OffchainLabs/nitro.git + git clone --branch @@nitroVersionTag=v3.6.2@@ https://github.com/OffchainLabs/nitro.git cd nitro ``` diff --git a/arbitrum-docs/run-arbitrum-node/sequencer/04-run-sequencer-node.mdx b/arbitrum-docs/run-arbitrum-node/sequencer/04-run-sequencer-node.mdx index e40c6b1d95..751e255ebf 100644 --- a/arbitrum-docs/run-arbitrum-node/sequencer/04-run-sequencer-node.mdx +++ b/arbitrum-docs/run-arbitrum-node/sequencer/04-run-sequencer-node.mdx @@ -40,7 +40,7 @@ Even though there are alpha and beta versions of the Arbitrum Nitro software, on ::: -Latest Docker image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.5-90ee45c@@ +Latest Docker image: @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ ## Required parameters @@ -131,7 +131,7 @@ Enable your node to send batches to DAS and get DACerts from them. - Example: ```shell wordWrap=true - docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.5.1-8f247fd@@ --node.sequencer=true --node.delayed-sequencer.enable=true --node.delayed-sequencer.use-merge-finality=false --node.delayed-sequencer.finalize-distance=1 --node.batch-poster.enable=true --node.batch-poster.max-size=90000 --node.batch-poster.parent-chain-wallet.private-key= --node.staker.enable=true --node.staker.strategy=MakeNodes --node.staker.parent-chain-wallet.private-key= --node.data-availability.enable=true --node.data-availability.sequencer-inbox-address= --node.data-availability.parent-chain-node-url= --node.data-availability.rest-aggregator.enable=true --node.data-availability.rest-aggregator.urls= --node.data-availability.rpc-aggregator.enable=true --node.data-availability.rpc-aggregator.assumed-honest=1 --node.data-availability.rpc-aggregator.backends= --execution.sequencer.enable=true --execution.sequencer.max-tx-data-size=85000 + docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 @@latestNitroNodeImage=offchainlabs/nitro-node:v3.6.2-5b41a2d@@ --node.sequencer=true --node.delayed-sequencer.enable=true --node.delayed-sequencer.use-merge-finality=false --node.delayed-sequencer.finalize-distance=1 --node.batch-poster.enable=true --node.batch-poster.max-size=90000 --node.batch-poster.parent-chain-wallet.private-key= --node.staker.enable=true --node.staker.strategy=MakeNodes --node.staker.parent-chain-wallet.private-key= --node.data-availability.enable=true --node.data-availability.sequencer-inbox-address= --node.data-availability.parent-chain-node-url= --node.data-availability.rest-aggregator.enable=true --node.data-availability.rest-aggregator.urls= --node.data-availability.rpc-aggregator.enable=true --node.data-availability.rpc-aggregator.assumed-honest=1 --node.data-availability.rpc-aggregator.backends= --execution.sequencer.enable=true --execution.sequencer.max-tx-data-size=85000 ``` - Ensure that `/some/local/dir/arbitrum` already exists; otherwise, the directory might be created with `root` as owner, and the Docker container won't be able to write to it. diff --git a/website/src/resources/globalVars.js b/website/src/resources/globalVars.js index fc69175c0b..c7539d8ac9 100644 --- a/website/src/resources/globalVars.js +++ b/website/src/resources/globalVars.js @@ -21,7 +21,7 @@ const sepoliaForceIncludePeriodBlocks = 5760; const globalVars = { // Node docker images - latestNitroNodeImage: 'offchainlabs/nitro-node:v3.5.5-90ee45c', + latestNitroNodeImage: 'offchainlabs/nitro-node:v3.6.2-5b41a2d', latestClassicNodeImage: 'offchainlabs/arb-node:v1.4.5-e97c1a4', // Node snapshots (taken around April 20th, 2013) @@ -38,14 +38,14 @@ const globalVars = { // Nitro Github references nitroRepositorySlug: 'nitro', - nitroVersionTag: 'v3.5.5', + nitroVersionTag: 'v3.6.2', nitroPathToPrecompiles: 'precompiles', nitroContractsRepositorySlug: 'nitro-contracts', - nitroContractsCommit: '780366a0c40caf694ed544a6a1d52c0de56573ba', + nitroContractsCommit: '601afc77e5b2a2dfd6f7075f2f3a48989c0be740', nitroContractsPathToPrecompilesInterface: 'src/precompiles', - goEthereumCommit: '0086d610ac8e84a95b66205db942dc181c3eb590', + goEthereumCommit: '25fc5f0842584e72455e4d60a61f035623b1aba0', nitroPathToArbos: 'arbos', nitroPathToArbosState: 'arbos/arbosState', From 1231c54c0780d7a7230c1c851f4be3b66038e578 Mon Sep 17 00:00:00 2001 From: Joshua Colvin Date: Wed, 7 May 2025 21:33:45 -0700 Subject: [PATCH 2/2] Update formatting --- .../precompile-tables/_ArbAddressTable.mdx | 214 ++- .../precompile-tables/_ArbAggregator.mdx | 243 +++- .../partials/precompile-tables/_ArbDebug.mdx | 294 ++++- .../precompile-tables/_ArbFunctionTable.mdx | 104 +- .../precompile-tables/_ArbGasInfo.mdx | 703 ++++++++-- .../partials/precompile-tables/_ArbInfo.mdx | 77 +- .../partials/precompile-tables/_ArbOwner.mdx | 1156 +++++++++++++---- .../precompile-tables/_ArbOwnerPublic.mdx | 293 ++++- .../precompile-tables/_ArbRetryableTx.mdx | 406 ++++-- .../precompile-tables/_ArbStatistics.mdx | 53 +- .../partials/precompile-tables/_ArbSys.mdx | 459 +++++-- .../partials/precompile-tables/_ArbWasm.mdx | 641 +++++++-- .../precompile-tables/_ArbWasmCache.mdx | 241 +++- .../partials/precompile-tables/_ArbosTest.mdx | 50 +- .../precompile-tables/_NodeInterface.mdx | 298 ++++- 15 files changed, 4108 insertions(+), 1124 deletions(-) diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx index 9c2e5d79c4..469ff569ed 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAddressTable.mdx @@ -1,48 +1,168 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
addressExists()InterfaceImplementationAddressExists checks if an address exists in the table
compress()InterfaceImplementationCompress and returns the bytes that represent the address
decompress()InterfaceImplementationDecompress the compressed bytes at the given offset with those of the corresponding account
lookup()InterfaceImplementationLookup the index of an address in the table
lookupIndex()InterfaceImplementationLookupIndex for an address in the table by index
register()InterfaceImplementationRegister adds an account to the table, shrinking its compressed representation
size()InterfaceImplementationSize gets the number of addresses in the table
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + addressExists() + + +
+ Interface + + + + + Implementation + + + AddressExists checks if an address exists in the table + + + + compress() + + + + Interface + + + + + Implementation + + + Compress and returns the bytes that represent the address + + + + decompress() + + + + Interface + + + + + Implementation + + + + Decompress the compressed bytes at the given offset with those of the corresponding account + + + + + lookup() + + + + Interface + + + + + Implementation + + + Lookup the index of an address in the table + + + + lookupIndex() + + + + Interface + + + + + Implementation + + + LookupIndex for an address in the table by index + + + + register() + + + + Interface + + + + + Implementation + + + Register adds an account to the table, shrinking its compressed representation + + + + size() + + + + Interface + + + + + Implementation + + + Size gets the number of addresses in the table + + + diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx index f6d274d28f..78e06a04d0 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbAggregator.mdx @@ -1,53 +1,192 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
⚠️getPreferredAggregator()InterfaceImplementationDeprecated: Do not use this method.
⚠️getDefaultAggregator()InterfaceImplementationDeprecated: Do not use this method.
getBatchPosters()InterfaceImplementationGetBatchPosters gets the addresses of all current batch posters
addBatchPoster()InterfaceImplementationAdds additional batch poster address
getFeeCollector()InterfaceImplementationGetFeeCollector gets a batch poster's fee collector
setFeeCollector(address batchPoster, address newFeeCollector)InterfaceImplementationSetFeeCollector sets a batch poster's fee collector (caller must be the batch poster, its fee collector, or an owner)
⚠️getTxBaseFee()InterfaceImplementationDeprecated: always returns zero
⚠️setTxBaseFee(address aggregator, uint256 feeInL1Gas)InterfaceImplementationDeprecated: no-op

Note: methods marked with ⚠️ are deprecated and their use is not supported.

\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + ⚠️getPreferredAggregator() + + + + Interface + + + + + Implementation + + + Deprecated: Do not use this method. + + + + ⚠️getDefaultAggregator() + + + + Interface + + + + + Implementation + + + Deprecated: Do not use this method. + + + + getBatchPosters() + + + + Interface + + + + + Implementation + + + GetBatchPosters gets the addresses of all current batch posters + + + + addBatchPoster() + + + + Interface + + + + + Implementation + + + Adds additional batch poster address + + + + getFeeCollector() + + + + Interface + + + + + Implementation + + + GetFeeCollector gets a batch poster's fee collector + + + + setFeeCollector(address batchPoster, address newFeeCollector) + + + + Interface + + + + + Implementation + + + + SetFeeCollector sets a batch poster's fee collector (caller must be the batch poster, its + fee collector, or an owner) + + + + + ⚠️getTxBaseFee() + + + + Interface + + + + + Implementation + + + Deprecated: always returns zero + + + + ⚠️setTxBaseFee(address aggregator, uint256 feeInL1Gas) + + + + Interface + + + + + Implementation + + + Deprecated: no-op + + + +

Note: methods marked with ⚠️ are deprecated and their use is not supported.

diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx index 4f4d138c11..9e23b0f1c6 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbDebug.mdx @@ -1,70 +1,226 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
becomeChainOwner()InterfaceImplementationCaller becomes a chain owner
events(bool flag, bytes32 value)InterfaceImplementationEmits events with values based on the args provided
eventsView()InterfaceImplementationTries (and fails) to emit logs in a view context
customRevert()InterfaceImplementationThrows a custom error
panic()InterfaceImplementationHalts the chain by panicking in the STF
legacyError()InterfaceImplementationThrows a hardcoded error
- - - - - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
BasicInterfaceImplementationEmitted in Events for testing
MixedInterfaceImplementationEmitted in Events for testing
StoreInterfaceImplementationNever emitted (used for testing log sizes)
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + becomeChainOwner() + + + + Interface + + + + + Implementation + + + Caller becomes a chain owner + + + + events(bool flag, bytes32 value) + + + + Interface + + + + + Implementation + + + Emits events with values based on the args provided + + + + eventsView() + + + + Interface + + + + + Implementation + + + Tries (and fails) to emit logs in a view context + + + + customRevert() + + + + Interface + + + + + Implementation + + + Throws a custom error + + + + panic() + + + + Interface + + + + + Implementation + + + Halts the chain by panicking in the STF + + + + legacyError() + + + + Interface + + + + + Implementation + + + Throws a hardcoded error + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ Basic + + + Interface + + + + Implementation + + + Emitted in Events for testing +
+ Mixed + + + Interface + + + + Implementation + + + Emitted in Events for testing +
+ Store + + + Interface + + + + Implementation + + Never emitted (used for testing log sizes)
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx index cbe73281e1..0c8bf7f6fe 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbFunctionTable.mdx @@ -1,28 +1,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
upload()InterfaceImplementationUpload does nothing
size()InterfaceImplementationSize returns the empty table's size, which is 0
get(address addr, uint256 index)InterfaceImplementationGet reverts since the table is empty
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + upload() + + + + Interface + + + + + Implementation + + + Upload does nothing + + + + size() + + + + Interface + + + + + Implementation + + + Size returns the empty table's size, which is 0 + + + + get(address addr, uint256 index) + + + + Interface + + + + + Implementation + + + Get reverts since the table is empty + + + diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx index 0f0074f2f1..8437cc33dc 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbGasInfo.mdx @@ -1,133 +1,572 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
getPricesInWeiWithAggregator()InterfaceImplementationGetPricesInWeiWithAggregator gets prices in wei when using the provided aggregator
getPricesInWei()InterfaceImplementationGetPricesInWei gets prices in wei when using the caller's preferred aggregator
getPricesInArbGasWithAggregator()InterfaceImplementationGetPricesInArbGasWithAggregator gets prices in ArbGas when using the provided aggregator
getPricesInArbGas()InterfaceImplementationGetPricesInArbGas gets prices in ArbGas when using the caller's preferred aggregator
getGasAccountingParams()InterfaceImplementationGetGasAccountingParams gets the rollup's speed limit, pool size, and tx gas limit
getMinimumGasPrice()InterfaceImplementationGetMinimumGasPrice gets the minimum gas price needed for a transaction to succeed
getL1BaseFeeEstimate()InterfaceImplementationGetL1BaseFeeEstimate gets the current estimate of the L1 basefee
getL1BaseFeeEstimateInertia()InterfaceImplementationGetL1BaseFeeEstimateInertia gets how slowly ArbOS updates its estimate of the L1 basefee
getL1RewardRate()InterfaceImplementationGetL1RewardRate gets the L1 pricer reward rate
getL1RewardRecipient()InterfaceImplementationGetL1RewardRecipient gets the L1 pricer reward recipient
getL1GasPriceEstimate()InterfaceImplementationGetL1GasPriceEstimate gets the current estimate of the L1 basefee
getCurrentTxL1GasFees()InterfaceImplementationGetCurrentTxL1GasFees gets the fee in wei paid to the batch poster for posting this tx
getGasBacklog()InterfaceImplementationGetGasBacklog gets the backlogged amount of gas burnt in excess of the speed limit
getPricingInertia()InterfaceImplementationGetPricingInertia gets how slowly ArbOS updates the L2 basefee in response to backlogged gas
getGasBacklogTolerance()InterfaceImplementationGetGasBacklogTolerance gets the forgivable amount of backlogged gas ArbOS will ignore when raising the basefee
getL1PricingSurplus()InterfaceImplementationGetL1PricingSurplus gets the surplus of funds for L1 batch posting payments (may be negative)
getPerBatchGasCharge()InterfaceImplementationGetPerBatchGasCharge gets the base charge (in L1 gas) attributed to each data batch in the calldata pricer
getAmortizedCostCapBips()InterfaceImplementationGetAmortizedCostCapBips gets the cost amortization cap in basis points
getL1FeesAvailable()InterfaceImplementationGetL1FeesAvailable gets the available funds from L1 fees
getL1PricingEquilibrationUnits()InterfaceImplementationGetL1PricingEquilibrationUnits gets the equilibration units parameter for L1 price adjustment algorithm (Available since ArbOS 20)
getLastL1PricingUpdateTime()InterfaceImplementationGetLastL1PricingUpdateTime gets the last time the L1 calldata pricer was updated (Available since ArbOS 20)
getL1PricingFundsDueForRewards()InterfaceImplementationGetL1PricingFundsDueForRewards gets the amount of L1 calldata payments due for rewards (per the L1 reward rate) (Available since ArbOS 20)
getL1PricingUnitsSinceUpdate()InterfaceImplementationGetL1PricingUnitsSinceUpdate gets the amount of L1 calldata posted since the last update (Available since ArbOS 20)
getLastL1PricingSurplus()InterfaceImplementationGetLastL1PricingSurplus gets the L1 pricing surplus as of the last update (may be negative) (Available since ArbOS 20)
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + getPricesInWeiWithAggregator() + + + + Interface + + + + + Implementation + + + GetPricesInWeiWithAggregator gets prices in wei when using the provided aggregator + + + + getPricesInWei() + + + + Interface + + + + + Implementation + + + GetPricesInWei gets prices in wei when using the caller's preferred aggregator + + + + getPricesInArbGasWithAggregator() + + + + Interface + + + + + Implementation + + + + GetPricesInArbGasWithAggregator gets prices in ArbGas when using the provided aggregator + + + + + getPricesInArbGas() + + + + Interface + + + + + Implementation + + + GetPricesInArbGas gets prices in ArbGas when using the caller's preferred aggregator + + + + getGasAccountingParams() + + + + Interface + + + + + Implementation + + + GetGasAccountingParams gets the rollup's speed limit, pool size, and tx gas limit + + + + getMinimumGasPrice() + + + + Interface + + + + + Implementation + + + GetMinimumGasPrice gets the minimum gas price needed for a transaction to succeed + + + + getL1BaseFeeEstimate() + + + + Interface + + + + + Implementation + + + GetL1BaseFeeEstimate gets the current estimate of the L1 basefee + + + + getL1BaseFeeEstimateInertia() + + + + Interface + + + + + Implementation + + + + GetL1BaseFeeEstimateInertia gets how slowly ArbOS updates its estimate of the L1 basefee + + + + + getL1RewardRate() + + + + Interface + + + + + Implementation + + + GetL1RewardRate gets the L1 pricer reward rate + + + + getL1RewardRecipient() + + + + Interface + + + + + Implementation + + + GetL1RewardRecipient gets the L1 pricer reward recipient + + + + getL1GasPriceEstimate() + + + + Interface + + + + + Implementation + + + GetL1GasPriceEstimate gets the current estimate of the L1 basefee + + + + getCurrentTxL1GasFees() + + + + Interface + + + + + Implementation + + + + GetCurrentTxL1GasFees gets the fee in wei paid to the batch poster for posting this tx + + + + + getGasBacklog() + + + + Interface + + + + + Implementation + + + GetGasBacklog gets the backlogged amount of gas burnt in excess of the speed limit + + + + getPricingInertia() + + + + Interface + + + + + Implementation + + + + GetPricingInertia gets how slowly ArbOS updates the L2 basefee in response to backlogged gas + + + + + getGasBacklogTolerance() + + + + Interface + + + + + Implementation + + + + GetGasBacklogTolerance gets the forgivable amount of backlogged gas ArbOS will ignore when + raising the basefee + + + + + getL1PricingSurplus() + + + + Interface + + + + + Implementation + + + + GetL1PricingSurplus gets the surplus of funds for L1 batch posting payments (may be + negative) + + + + + getPerBatchGasCharge() + + + + Interface + + + + + Implementation + + + + GetPerBatchGasCharge gets the base charge (in L1 gas) attributed to each data batch in the + calldata pricer + + + + + getAmortizedCostCapBips() + + + + Interface + + + + + Implementation + + + GetAmortizedCostCapBips gets the cost amortization cap in basis points + + + + getL1FeesAvailable() + + + + Interface + + + + + Implementation + + + GetL1FeesAvailable gets the available funds from L1 fees + + + + getL1PricingEquilibrationUnits() + + + + Interface + + + + + Implementation + + + + GetL1PricingEquilibrationUnits gets the equilibration units parameter for L1 price + adjustment algorithm (Available since ArbOS 20) + + + + + getLastL1PricingUpdateTime() + + + + Interface + + + + + Implementation + + + + GetLastL1PricingUpdateTime gets the last time the L1 calldata pricer was updated (Available + since ArbOS 20) + + + + + getL1PricingFundsDueForRewards() + + + + Interface + + + + + Implementation + + + + GetL1PricingFundsDueForRewards gets the amount of L1 calldata payments due for rewards (per + the L1 reward rate) (Available since ArbOS 20) + + + + + getL1PricingUnitsSinceUpdate() + + + + Interface + + + + + Implementation + + + + GetL1PricingUnitsSinceUpdate gets the amount of L1 calldata posted since the last update + (Available since ArbOS 20) + + + + + getLastL1PricingSurplus() + + + + Interface + + + + + Implementation + + + + GetLastL1PricingSurplus gets the L1 pricing surplus as of the last update (may be negative) + (Available since ArbOS 20) + + + + diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx index 9c535c2853..76e41dfbd1 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbInfo.mdx @@ -1,23 +1,56 @@ - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
getBalance()InterfaceImplementationGetBalance retrieves an account's balance
getCode()InterfaceImplementationGetCode retrieves a contract's deployed code
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + getBalance() + + + + Interface + + + + + Implementation + + + GetBalance retrieves an account's balance + + + + getCode() + + + + Interface + + + + + Implementation + + + GetCode retrieves a contract's deployed code + + + diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx index a31db344da..4fea024d76 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwner.mdx @@ -1,230 +1,928 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
addChainOwner()InterfaceImplementationAddChainOwner adds account as a chain owner
removeChainOwner()InterfaceImplementationRemoveChainOwner removes account from the list of chain owners
isChainOwner()InterfaceImplementationIsChainOwner checks if the account is a chain owner
getAllChainOwners()InterfaceImplementationGetAllChainOwners retrieves the list of chain owners
setL1BaseFeeEstimateInertia()InterfaceImplementationSetL1BaseFeeEstimateInertia sets how slowly ArbOS updates its estimate of the L1 basefee
setL2BaseFee()InterfaceImplementationSetL2BaseFee sets the L2 gas price directly, bypassing the pool calculus
setMinimumL2BaseFee()InterfaceImplementationSetMinimumL2BaseFee sets the minimum base fee needed for a transaction to succeed
setSpeedLimit()InterfaceImplementationSetSpeedLimit sets the computational speed limit for the chain
setMaxTxGasLimit()InterfaceImplementationSetMaxTxGasLimit sets the maximum size a tx (and block) can be
setL2GasPricingInertia()InterfaceImplementationSetL2GasPricingInertia sets the L2 gas pricing inertia
setL2GasBacklogTolerance()InterfaceImplementationSetL2GasBacklogTolerance sets the L2 gas backlog tolerance
getNetworkFeeAccount()InterfaceImplementationGetNetworkFeeAccount gets the network fee collector
getInfraFeeAccount()InterfaceImplementationGetInfraFeeAccount gets the infrastructure fee collector
setNetworkFeeAccount()InterfaceImplementationSetNetworkFeeAccount sets the network fee collector to the new network fee account
setInfraFeeAccount()InterfaceImplementationSetInfraFeeAccount sets the infra fee collector to the new network fee account
scheduleArbOSUpgrade(uint64 newVersion, uint64 timestamp)InterfaceImplementationScheduleArbOSUpgrade to the requested version at the requested timestamp
setL1PricingEquilibrationUnits()InterfaceImplementationSets equilibration units parameter for L1 price adjustment algorithm
setL1PricingInertia()InterfaceImplementationSets inertia parameter for L1 price adjustment algorithm
setL1PricingRewardRecipient()InterfaceImplementationSets reward recipient address for L1 price adjustment algorithm
setL1PricingRewardRate()InterfaceImplementationSets reward amount for L1 price adjustment algorithm, in wei per unit
setL1PricePerUnit()InterfaceImplementationSet how much ArbOS charges per L1 gas spent on transaction data.
setPerBatchGasCharge()InterfaceImplementationSets the base charge (in L1 gas) attributed to each data batch in the calldata pricer
setBrotliCompressionLevel()InterfaceImplementationSets the Brotli compression level used for fast compression (default level is 1)
setAmortizedCostCapBips()InterfaceImplementationSets the cost amortization cap in basis points
releaseL1PricerSurplusFunds()InterfaceImplementationReleases surplus funds from L1PricerFundsPoolAddress for use
setInkPrice()InterfaceImplementationSets the amount of ink 1 gas buys
setWasmMaxStackDepth()InterfaceImplementationSets the maximum depth (in wasm words) a wasm stack may grow
setWasmFreePages()InterfaceImplementationGets the number of free wasm pages a tx gets
setWasmPageGas()InterfaceImplementationSets the base cost of each additional wasm page
setWasmPageLimit()InterfaceImplementationSets the initial number of pages a wasm may allocate
setWasmMaxSize()InterfaceImplementationdecompression.
setWasmMinInitGas(uint8 gas, uint16 cached)InterfaceImplementationSets the minimum costs to invoke a program
setWasmInitCostScalar()InterfaceImplementationSets the linear adjustment made to program init costs
setWasmExpiryDays()InterfaceImplementationSets the number of days after which programs deactivate
setWasmKeepaliveDays()InterfaceImplementationSets the age a program must be to perform a keepalive
setWasmBlockCacheSize()InterfaceImplementationSets the number of extra programs ArbOS caches during a given block
addWasmCacheManager()InterfaceImplementationAdds account as a wasm cache manager
removeWasmCacheManager()InterfaceImplementationRemoves account from the list of wasm cache managers
setChainConfig()InterfaceImplementationSets serialized chain config in ArbOS state
setCalldataPriceIncrease()InterfaceImplementation(EIP-7623)
- - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
OwnerActsInterfaceImplementation/ Emitted when a successful call is made to this precompile
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + addChainOwner() + + + + Interface + + + + + Implementation + + + AddChainOwner adds account as a chain owner + + + + removeChainOwner() + + + + Interface + + + + + Implementation + + + RemoveChainOwner removes account from the list of chain owners + + + + isChainOwner() + + + + Interface + + + + + Implementation + + + IsChainOwner checks if the account is a chain owner + + + + getAllChainOwners() + + + + Interface + + + + + Implementation + + + GetAllChainOwners retrieves the list of chain owners + + + + setL1BaseFeeEstimateInertia() + + + + Interface + + + + + Implementation + + + + SetL1BaseFeeEstimateInertia sets how slowly ArbOS updates its estimate of the L1 basefee + + + + + setL2BaseFee() + + + + Interface + + + + + Implementation + + + SetL2BaseFee sets the L2 gas price directly, bypassing the pool calculus + + + + setMinimumL2BaseFee() + + + + Interface + + + + + Implementation + + + SetMinimumL2BaseFee sets the minimum base fee needed for a transaction to succeed + + + + setSpeedLimit() + + + + Interface + + + + + Implementation + + + SetSpeedLimit sets the computational speed limit for the chain + + + + setMaxTxGasLimit() + + + + Interface + + + + + Implementation + + + SetMaxTxGasLimit sets the maximum size a tx (and block) can be + + + + setL2GasPricingInertia() + + + + Interface + + + + + Implementation + + + SetL2GasPricingInertia sets the L2 gas pricing inertia + + + + setL2GasBacklogTolerance() + + + + Interface + + + + + Implementation + + + SetL2GasBacklogTolerance sets the L2 gas backlog tolerance + + + + getNetworkFeeAccount() + + + + Interface + + + + + Implementation + + + GetNetworkFeeAccount gets the network fee collector + + + + getInfraFeeAccount() + + + + Interface + + + + + Implementation + + + GetInfraFeeAccount gets the infrastructure fee collector + + + + setNetworkFeeAccount() + + + + Interface + + + + + Implementation + + + SetNetworkFeeAccount sets the network fee collector to the new network fee account + + + + setInfraFeeAccount() + + + + Interface + + + + + Implementation + + + SetInfraFeeAccount sets the infra fee collector to the new network fee account + + + + scheduleArbOSUpgrade(uint64 newVersion, uint64 timestamp) + + + + Interface + + + + + Implementation + + + ScheduleArbOSUpgrade to the requested version at the requested timestamp + + + + setL1PricingEquilibrationUnits() + + + + Interface + + + + + Implementation + + + Sets equilibration units parameter for L1 price adjustment algorithm + + + + setL1PricingInertia() + + + + Interface + + + + + Implementation + + + Sets inertia parameter for L1 price adjustment algorithm + + + + setL1PricingRewardRecipient() + + + + Interface + + + + + Implementation + + + Sets reward recipient address for L1 price adjustment algorithm + + + + setL1PricingRewardRate() + + + + Interface + + + + + Implementation + + + Sets reward amount for L1 price adjustment algorithm, in wei per unit + + + + setL1PricePerUnit() + + + + Interface + + + + + Implementation + + + Set how much ArbOS charges per L1 gas spent on transaction data. + + + + setPerBatchGasCharge() + + + + Interface + + + + + Implementation + + + Sets the base charge (in L1 gas) attributed to each data batch in the calldata pricer + + + + setBrotliCompressionLevel() + + + + Interface + + + + + Implementation + + + Sets the Brotli compression level used for fast compression (default level is 1) + + + + setAmortizedCostCapBips() + + + + Interface + + + + + Implementation + + + Sets the cost amortization cap in basis points + + + + releaseL1PricerSurplusFunds() + + + + Interface + + + + + Implementation + + + Releases surplus funds from L1PricerFundsPoolAddress for use + + + + setInkPrice() + + + + Interface + + + + + Implementation + + + Sets the amount of ink 1 gas buys + + + + setWasmMaxStackDepth() + + + + Interface + + + + + Implementation + + + Sets the maximum depth (in wasm words) a wasm stack may grow + + + + setWasmFreePages() + + + + Interface + + + + + Implementation + + + Gets the number of free wasm pages a tx gets + + + + setWasmPageGas() + + + + Interface + + + + + Implementation + + + Sets the base cost of each additional wasm page + + + + setWasmPageLimit() + + + + Interface + + + + + Implementation + + + Sets the initial number of pages a wasm may allocate + + + + setWasmMaxSize() + + + + Interface + + + + + Implementation + + + decompression. + + + + setWasmMinInitGas(uint8 gas, uint16 cached) + + + + Interface + + + + + Implementation + + + Sets the minimum costs to invoke a program + + + + setWasmInitCostScalar() + + + + Interface + + + + + Implementation + + + Sets the linear adjustment made to program init costs + + + + setWasmExpiryDays() + + + + Interface + + + + + Implementation + + + Sets the number of days after which programs deactivate + + + + setWasmKeepaliveDays() + + + + Interface + + + + + Implementation + + + Sets the age a program must be to perform a keepalive + + + + setWasmBlockCacheSize() + + + + Interface + + + + + Implementation + + + Sets the number of extra programs ArbOS caches during a given block + + + + addWasmCacheManager() + + + + Interface + + + + + Implementation + + + Adds account as a wasm cache manager + + + + removeWasmCacheManager() + + + + Interface + + + + + Implementation + + + Removes account from the list of wasm cache managers + + + + setChainConfig() + + + + Interface + + + + + Implementation + + + Sets serialized chain config in ArbOS state + + + + setCalldataPriceIncrease() + + + + Interface + + + + + Implementation + + + (EIP-7623) + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ OwnerActs + + + Interface + + + + Implementation + + / Emitted when a successful call is made to this precompile
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx index 5c6d170f32..0b55dc50f2 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbOwnerPublic.mdx @@ -1,70 +1,225 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
isChainOwner()InterfaceImplementationIsChainOwner checks if the user is a chain owner
rectifyChainOwner()InterfaceImplementationRectifyChainOwner checks if the account is a chain owner (Available since ArbOS 11)
getAllChainOwners()InterfaceImplementationGetAllChainOwners retrieves the list of chain owners
getNetworkFeeAccount()InterfaceImplementationGetNetworkFeeAccount gets the network fee collector
getInfraFeeAccount()InterfaceImplementationGetInfraFeeAccount gets the infrastructure fee collector
getBrotliCompressionLevel()InterfaceImplementationGetBrotliCompressionLevel gets the current brotli compression level used for fast compression
getScheduledUpgrade()InterfaceImplementationReturns (0, 0, nil) if no ArbOS upgrade is scheduled.
isCalldataPriceIncreaseEnabled()InterfaceImplementation(EIP-7623) is enabled
- - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
ChainOwnerRectifiedInterfaceImplementationEmitted when verifying a chain owner
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + isChainOwner() + + + + Interface + + + + + Implementation + + + IsChainOwner checks if the user is a chain owner + + + + rectifyChainOwner() + + + + Interface + + + + + Implementation + + + RectifyChainOwner checks if the account is a chain owner (Available since ArbOS 11) + + + + getAllChainOwners() + + + + Interface + + + + + Implementation + + + GetAllChainOwners retrieves the list of chain owners + + + + getNetworkFeeAccount() + + + + Interface + + + + + Implementation + + + GetNetworkFeeAccount gets the network fee collector + + + + getInfraFeeAccount() + + + + Interface + + + + + Implementation + + + GetInfraFeeAccount gets the infrastructure fee collector + + + + getBrotliCompressionLevel() + + + + Interface + + + + + Implementation + + + + GetBrotliCompressionLevel gets the current brotli compression level used for fast + compression + + + + + getScheduledUpgrade() + + + + Interface + + + + + Implementation + + + Returns (0, 0, nil) if no ArbOS upgrade is scheduled. + + + + isCalldataPriceIncreaseEnabled() + + + + Interface + + + + + Implementation + + + (EIP-7623) is enabled + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ ChainOwnerRectified + + + Interface + + + + Implementation + + Emitted when verifying a chain owner
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx index 6a29fb4663..e2cbb15b2a 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbRetryableTx.mdx @@ -1,90 +1,318 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
redeem()InterfaceImplementationRedeem schedules an attempt to redeem the retryable, donating all of the call's gas to the redeem attempt
getLifetime()InterfaceImplementationGetLifetime gets the default lifetime period a retryable has at creation
getTimeout()InterfaceImplementationGetTimeout gets the timestamp for when ticket will expire
keepalive()InterfaceImplementationKeepalive adds one lifetime period to the ticket's expiry
getBeneficiary()InterfaceImplementationGetBeneficiary gets the beneficiary of the ticket
cancel()InterfaceImplementationCancel the ticket and refund its callvalue to its beneficiary
getCurrentRedeemer()InterfaceImplementationGets the redeemer of the current retryable redeem attempt
submitRetryable()InterfaceImplementationDo not call. This method represents a retryable submission to aid explorers. Calling it will always revert.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
TicketCreatedInterfaceImplementationEmitted when creating a retryable
LifetimeExtendedInterfaceImplementationEmitted when extending a retryable's expiry date
RedeemScheduledInterfaceImplementationEmitted when scheduling a retryable
CanceledInterfaceImplementationEmitted when cancelling a retryable
RedeemedInterfaceImplementationDEPRECATED in favour of new RedeemScheduled event after the nitro upgrade.
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + redeem() + + + + Interface + + + + + Implementation + + + + Redeem schedules an attempt to redeem the retryable, donating all of the call's gas to the + redeem attempt + + + + + getLifetime() + + + + Interface + + + + + Implementation + + + GetLifetime gets the default lifetime period a retryable has at creation + + + + getTimeout() + + + + Interface + + + + + Implementation + + + GetTimeout gets the timestamp for when ticket will expire + + + + keepalive() + + + + Interface + + + + + Implementation + + + Keepalive adds one lifetime period to the ticket's expiry + + + + getBeneficiary() + + + + Interface + + + + + Implementation + + + GetBeneficiary gets the beneficiary of the ticket + + + + cancel() + + + + Interface + + + + + Implementation + + + Cancel the ticket and refund its callvalue to its beneficiary + + + + getCurrentRedeemer() + + + + Interface + + + + + Implementation + + + Gets the redeemer of the current retryable redeem attempt + + + + submitRetryable() + + + + Interface + + + + + Implementation + + + + Do not call. This method represents a retryable submission to aid explorers. Calling it will + always revert. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ TicketCreated + + + Interface + + + + Implementation + + Emitted when creating a retryable
+ LifetimeExtended + + + Interface + + + + Implementation + + Emitted when extending a retryable's expiry date
+ RedeemScheduled + + + Interface + + + + Implementation + + Emitted when scheduling a retryable
+ Canceled + + + Interface + + + + Implementation + + Emitted when cancelling a retryable
+ Redeemed + + + Interface + + + + Implementation + + + DEPRECATED in favour of new RedeemScheduled event after the nitro upgrade. +
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx index 6743faa80c..dca9c12a82 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbStatistics.mdx @@ -1,18 +1,37 @@ - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
getStats()InterfaceImplementationGetStats returns the current block number and some statistics about the rollup's pre-Nitro state
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + getStats() + + + + Interface + + + + + Implementation + + + + GetStats returns the current block number and some statistics about the rollup's pre-Nitro + state + + + + diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx index 319541d345..8984edc4e2 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbSys.mdx @@ -1,100 +1,361 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
arbBlockNumber()InterfaceImplementationArbBlockNumber gets the current L2 block number
arbBlockHash()InterfaceImplementationArbBlockHash gets the L2 block hash, if sufficiently recent
arbChainID()InterfaceImplementationArbChainID gets the rollup's unique chain identifier
arbOSVersion()InterfaceImplementationArbOSVersion gets the current ArbOS version
getStorageGasAvailable()InterfaceImplementationGetStorageGasAvailable returns 0 since Nitro has no concept of storage gas
isTopLevelCall()InterfaceImplementationIsTopLevelCall checks if the call is top-level (deprecated)
mapL1SenderContractAddressToL2Alias()InterfaceImplementationMapL1SenderContractAddressToL2Alias gets the contract's L2 alias
wasMyCallersAddressAliased()InterfaceImplementationWasMyCallersAddressAliased checks if the caller's caller was aliased
myCallersAddressWithoutAliasing()InterfaceImplementationMyCallersAddressWithoutAliasing gets the caller's caller without any potential aliasing
withdrawEth()InterfaceImplementationWithdrawEth send paid eth to the destination on L1
sendTxToL1()InterfaceImplementationSendTxToL1 sends a transaction to L1, adding it to the outbox
sendMerkleTreeState()InterfaceImplementationSendMerkleTreeState gets the root, size, and partials of the outbox Merkle tree state (caller must be the 0 address)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
L2ToL1TxInterfaceImplementationLogs a send transaction from L2 to L1, including data for outbox proving
L2ToL1TransactionInterfaceImplementationDEPRECATED in favour of the new L2ToL1Tx event above after the nitro upgrade
SendMerkleUpdateInterfaceImplementationLogs a new merkle branch needed for constructing outbox proofs
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + arbBlockNumber() + + + + Interface + + + + + Implementation + + + ArbBlockNumber gets the current L2 block number + + + + arbBlockHash() + + + + Interface + + + + + Implementation + + + ArbBlockHash gets the L2 block hash, if sufficiently recent + + + + arbChainID() + + + + Interface + + + + + Implementation + + + ArbChainID gets the rollup's unique chain identifier + + + + arbOSVersion() + + + + Interface + + + + + Implementation + + + ArbOSVersion gets the current ArbOS version + + + + getStorageGasAvailable() + + + + Interface + + + + + Implementation + + + GetStorageGasAvailable returns 0 since Nitro has no concept of storage gas + + + + isTopLevelCall() + + + + Interface + + + + + Implementation + + + IsTopLevelCall checks if the call is top-level (deprecated) + + + + mapL1SenderContractAddressToL2Alias() + + + + Interface + + + + + Implementation + + + MapL1SenderContractAddressToL2Alias gets the contract's L2 alias + + + + wasMyCallersAddressAliased() + + + + Interface + + + + + Implementation + + + WasMyCallersAddressAliased checks if the caller's caller was aliased + + + + myCallersAddressWithoutAliasing() + + + + Interface + + + + + Implementation + + + + MyCallersAddressWithoutAliasing gets the caller's caller without any potential aliasing + + + + + withdrawEth() + + + + Interface + + + + + Implementation + + + WithdrawEth send paid eth to the destination on L1 + + + + sendTxToL1() + + + + Interface + + + + + Implementation + + + SendTxToL1 sends a transaction to L1, adding it to the outbox + + + + sendMerkleTreeState() + + + + Interface + + + + + Implementation + + + + SendMerkleTreeState gets the root, size, and partials of the outbox Merkle tree state + (caller must be the 0 address) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ L2ToL1Tx + + + Interface + + + + Implementation + + Logs a send transaction from L2 to L1, including data for outbox proving
+ L2ToL1Transaction + + + Interface + + + + Implementation + + + DEPRECATED in favour of the new L2ToL1Tx event above after the nitro upgrade +
+ SendMerkleUpdate + + + Interface + + + + Implementation + + Logs a new merkle branch needed for constructing outbox proofs
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx index 413efe1110..c064657c21 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasm.mdx @@ -1,135 +1,508 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
activateProgram()InterfaceImplementationCompile a wasm program with the latest instrumentation
stylusVersion()InterfaceImplementationGets the latest stylus version
codehashVersion()InterfaceImplementationGets the stylus version that program with codehash was most recently compiled with
codehashKeepalive()InterfaceImplementationExtends a program's expiration date (reverts if too soon)
codehashAsmSize()InterfaceImplementationGets a program's asm size in bytes
programVersion()InterfaceImplementationGets the stylus version that program at addr was most recently compiled with
programInitGas()InterfaceImplementationGets the cost to invoke the program
programMemoryFootprint()InterfaceImplementationGets the footprint of program at addr
programTimeLeft()InterfaceImplementationGets returns the amount of time remaining until the program expires
inkPrice()InterfaceImplementationGets the amount of ink 1 gas buys
maxStackDepth()InterfaceImplementationGets the wasm stack size limit
freePages()InterfaceImplementationGets the number of free wasm pages a tx gets
pageGas()InterfaceImplementationGets the base cost of each additional wasm page
pageRamp()InterfaceImplementationGets the ramp that drives exponential memory costs
pageLimit()InterfaceImplementationGets the maximum initial number of pages a wasm may allocate
minInitGas()InterfaceImplementationGets the minimum costs to invoke a program
initCostScalar()InterfaceImplementationGets the linear adjustment made to program init costs
expiryDays()InterfaceImplementationGets the number of days after which programs deactivate
keepaliveDays()InterfaceImplementationGets the age a program must be to perform a keepalive
blockCacheSize()InterfaceImplementationGets the number of extra programs ArbOS caches during a given block.
- - - - - - - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
ProgramActivatedInterfaceImplementationEmitted when activating a WASM program
ProgramLifetimeExtendedInterfaceImplementationEmitted when extending the expiration date of a WASM program
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + activateProgram() + + + + Interface + + + + + Implementation + + + Compile a wasm program with the latest instrumentation + + + + stylusVersion() + + + + Interface + + + + + Implementation + + + Gets the latest stylus version + + + + codehashVersion() + + + + Interface + + + + + Implementation + + + Gets the stylus version that program with codehash was most recently compiled with + + + + codehashKeepalive() + + + + Interface + + + + + Implementation + + + Extends a program's expiration date (reverts if too soon) + + + + codehashAsmSize() + + + + Interface + + + + + Implementation + + + Gets a program's asm size in bytes + + + + programVersion() + + + + Interface + + + + + Implementation + + + Gets the stylus version that program at addr was most recently compiled with + + + + programInitGas() + + + + Interface + + + + + Implementation + + + Gets the cost to invoke the program + + + + programMemoryFootprint() + + + + Interface + + + + + Implementation + + + Gets the footprint of program at addr + + + + programTimeLeft() + + + + Interface + + + + + Implementation + + + Gets returns the amount of time remaining until the program expires + + + + inkPrice() + + + + Interface + + + + + Implementation + + + Gets the amount of ink 1 gas buys + + + + maxStackDepth() + + + + Interface + + + + + Implementation + + + Gets the wasm stack size limit + + + + freePages() + + + + Interface + + + + + Implementation + + + Gets the number of free wasm pages a tx gets + + + + pageGas() + + + + Interface + + + + + Implementation + + + Gets the base cost of each additional wasm page + + + + pageRamp() + + + + Interface + + + + + Implementation + + + Gets the ramp that drives exponential memory costs + + + + pageLimit() + + + + Interface + + + + + Implementation + + + Gets the maximum initial number of pages a wasm may allocate + + + + minInitGas() + + + + Interface + + + + + Implementation + + + Gets the minimum costs to invoke a program + + + + initCostScalar() + + + + Interface + + + + + Implementation + + + Gets the linear adjustment made to program init costs + + + + expiryDays() + + + + Interface + + + + + Implementation + + + Gets the number of days after which programs deactivate + + + + keepaliveDays() + + + + Interface + + + + + Implementation + + + Gets the age a program must be to perform a keepalive + + + + blockCacheSize() + + + + Interface + + + + + Implementation + + + Gets the number of extra programs ArbOS caches during a given block. + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ ProgramActivated + + + Interface + + + + Implementation + + Emitted when activating a WASM program
+ ProgramLifetimeExtended + + + Interface + + + + Implementation + + Emitted when extending the expiration date of a WASM program
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx index b67ee73f19..90ccd4c400 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbWasmCache.mdx @@ -1,60 +1,183 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
isCacheManager()InterfaceImplementationSee if the user is a cache manager owner.
allCacheManagers()InterfaceImplementationRetrieve all authorized address managers.
cacheCodehash()InterfaceImplementationDeprecated: replaced with CacheProgram.
cacheProgram()InterfaceImplementationCaches all programs with a codehash equal to the given address. Caller must be a cache manager or chain owner.
evictCodehash()InterfaceImplementationEvicts all programs with the given codehash. Caller must be a cache manager or chain owner.
codehashIsCached()InterfaceImplementationGets whether a program is cached. Note that the program may be expired.
- - - - - - - - - - - - - - - - -
EventSolidity interfaceGo implementationDescription
UpdateProgramCacheInterfaceImplementationEmitted when caching a WASM program
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + isCacheManager() + + + + Interface + + + + + Implementation + + + See if the user is a cache manager owner. + + + + allCacheManagers() + + + + Interface + + + + + Implementation + + + Retrieve all authorized address managers. + + + + cacheCodehash() + + + + Interface + + + + + Implementation + + + Deprecated: replaced with CacheProgram. + + + + cacheProgram() + + + + Interface + + + + + Implementation + + + + Caches all programs with a codehash equal to the given address. Caller must be a cache + manager or chain owner. + + + + + evictCodehash() + + + + Interface + + + + + Implementation + + + + Evicts all programs with the given codehash. Caller must be a cache manager or chain owner. + + + + + codehashIsCached() + + + + Interface + + + + + Implementation + + + Gets whether a program is cached. Note that the program may be expired. + + + + + + + + + + + + + + + + + + + + +
EventSolidity interfaceGo implementationDescription
+ UpdateProgramCache + + + Interface + + + + Implementation + + Emitted when caching a WASM program
diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx index 193138faa9..6fa2bce87e 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_ArbosTest.mdx @@ -1,18 +1,34 @@ - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
burnArbGas()InterfaceImplementationBurnArbGas unproductively burns the amount of L2 ArbGas
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + burnArbGas() + + + + Interface + + + + + Implementation + + + BurnArbGas unproductively burns the amount of L2 ArbGas + + + diff --git a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx index 8b1b33c190..286328e35e 100644 --- a/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx +++ b/arbitrum-docs/for-devs/dev-tools-and-resources/partials/precompile-tables/_NodeInterface.mdx @@ -1,63 +1,237 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodSolidity interfaceGo implementationDescription
estimateRetryableTicket(address sender, uint256 deposit, address to, uint256 l2CallValue, address excessFeeRefundAddress, address callValueRefundAddress, bytes calldata data)InterfaceImplementationEstimates the gas needed for a retryable submission
constructOutboxProof()InterfaceImplementationConstructs an outbox proof of an l2->l1 send's existence in the outbox accumulator
findBatchContainingBlock()InterfaceImplementationFinds the L1 batch containing a requested L2 block, reverting if none does
getL1Confirmations()InterfaceImplementationGets the number of L1 confirmations of the sequencer batch producing the requested L2 block
gasEstimateComponents(address to, bool contractCreation, bytes calldata data)InterfaceImplementationSame as native gas estimation, but with additional info on the l1 costs
gasEstimateL1Component(address to, bool contractCreation, bytes calldata data)InterfaceImplementationEstimates a transaction's l1 costs
legacyLookupMessageBatchProof()InterfaceImplementationReturns the proof necessary to redeem a message
nitroGenesisBlock()InterfaceImplementationReturns the first block produced using the Nitro codebase
blockL1Num()InterfaceImplementationReturns the L1 block number of the L2 block
l2BlockRangeForL1()InterfaceImplementationFinds the L2 block number range that has the given L1 block number
\ No newline at end of file + + + Method + Solidity interface + Go implementation + Description + + + + + + + estimateRetryableTicket(address sender, uint256 deposit, address to, uint256 l2CallValue, + address excessFeeRefundAddress, address callValueRefundAddress, bytes calldata data) + + + + + Interface + + + + + Implementation + + + Estimates the gas needed for a retryable submission + + + + constructOutboxProof() + + + + Interface + + + + + Implementation + + + Constructs an outbox proof of an l2->l1 send's existence in the outbox accumulator + + + + findBatchContainingBlock() + + + + Interface + + + + + Implementation + + + Finds the L1 batch containing a requested L2 block, reverting if none does + + + + getL1Confirmations() + + + + Interface + + + + + Implementation + + + + Gets the number of L1 confirmations of the sequencer batch producing the requested L2 block + + + + + gasEstimateComponents(address to, bool contractCreation, bytes calldata data) + + + + Interface + + + + + Implementation + + + Same as native gas estimation, but with additional info on the l1 costs + + + + gasEstimateL1Component(address to, bool contractCreation, bytes calldata data) + + + + Interface + + + + + Implementation + + + Estimates a transaction's l1 costs + + + + legacyLookupMessageBatchProof() + + + + Interface + + + + + Implementation + + + Returns the proof necessary to redeem a message + + + + nitroGenesisBlock() + + + + Interface + + + + + Implementation + + + Returns the first block produced using the Nitro codebase + + + + blockL1Num() + + + + Interface + + + + + Implementation + + + Returns the L1 block number of the L2 block + + + + l2BlockRangeForL1() + + + + Interface + + + + + Implementation + + + Finds the L2 block number range that has the given L1 block number + + +