From a0c19c0062e943dfa23a292be0a06a27c922f503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Blanchemain?= Date: Tue, 6 May 2025 17:16:01 -0700 Subject: [PATCH 1/3] chore: bump recommended Nitro version to v3.6.0 --- website/src/resources/globalVars.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/src/resources/globalVars.js b/website/src/resources/globalVars.js index fc69175c0b..7ae35fc551 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.0-fc07dd2', 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.0', nitroPathToPrecompiles: 'precompiles', nitroContractsRepositorySlug: 'nitro-contracts', - nitroContractsCommit: '780366a0c40caf694ed544a6a1d52c0de56573ba', + nitroContractsCommit: '9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4', nitroContractsPathToPrecompilesInterface: 'src/precompiles', - goEthereumCommit: '0086d610ac8e84a95b66205db942dc181c3eb590', + goEthereumCommit: 'f40a18e3c41b032a628a5ef5dc8f9ae51369977f', nitroPathToArbos: 'arbos', nitroPathToArbosState: 'arbos/arbosState', From d50bd0bc5ef8e984595e0d4deff7ddaf005b5e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Blanchemain?= Date: Tue, 6 May 2025 17:20:45 -0700 Subject: [PATCH 2/3] chores: regenerate pages to reflect Nitro version bump --- .../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 +---- .../customize-arbos.mdx | 6 +- .../customize-precompile.mdx | 28 +- .../05-customize-your-chain/customize-stf.mdx | 2 +- .../run-arbitrum-node/03-run-full-node.mdx | 2 +- .../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 +- 33 files changed, 1197 insertions(+), 4115 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..150341759c 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.0@@/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..8e4fc3b64f 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=f40a18e3c41b032a628a5ef5dc8f9ae51369977f@@/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..7843479507 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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAggregator.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbAggregator.go) | Configuring transaction aggregation | +| [ArbGasInfo](#arbgasinfo) | `0x6c` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbGasInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbGasInfo.go) | Info about gas pricing | +| [ArbRetryableTx](#arbretryabletx) | `0x6e` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbRetryableTx.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbRetryableTx.go) | Managing retryables | +| [ArbSys](#arbsys) | `0x64` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbSys.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbSys.go) | System-level functionality | +| [ArbWasm](#arbwasm) | `0x71` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasm.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbWasm.go) | Manages Stylus contracts | +| [ArbWasmCache](#arbwasmcache) | `0x72` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasmCache.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAddressTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbDebug.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbDebug.go) | Testing tools | +| [ArbFunctionTable](#arbfunctiontable) | `0x68` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbFunctionTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbFunctionTable.go) | No longer used | +| [ArbInfo](#arbinfo) | `0x65` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbInfo.go) | Info about accounts | +| [ArbOwner](#arbowner) | `0x70` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwner.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwner.go) | Chain administration, callable only by chain owner | +| [ArbOwnerPublic](#arbownerpublic) | `0x6b` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwnerPublic.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbOwnerPublic.go) | Info about chain owners | +| [ArbosTest](#arbostest) | `0x69` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbosTest.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToPrecompiles=precompiles@@/ArbosTest.go) | No longer used | +| [ArbStatistics](#arbstatistics) | `0x6f` | [Interface](https://github.com/OffchainLabs/@@nitroContractsRepositorySlug=nitro-contracts@@/blob/@@nitroContractsCommit=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbStatistics.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAddressTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbAggregator.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbDebug.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbFunctionTable.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbGasInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbInfo.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbosTest.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwner.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbOwnerPublic.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbRetryableTx.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbStatistics.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbSys.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasm.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@nitroContractsPathToPrecompilesInterface=src/precompiles@@/ArbWasmCache.sol) | [Implementation](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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..a9c8dd37af 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..7036823790 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..0097c70ea5 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..e53547bbbf 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..f406b5fea7 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..42577d0231 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..4e5d22d98c 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..c8def99e97 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..48d77be4d4 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..91e7a678f7 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..9aebd616ad 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..0cbaf786bc 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..f9ccc7373d 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..b4537ed5f9 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..8854165e19 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/05-customize-your-chain/customize-arbos.mdx b/arbitrum-docs/launch-arbitrum-chain/05-customize-your-chain/customize-arbos.mdx index 78a8ec8317..c59923bd99 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.0@@/@@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.0@@/@@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.0@@/@@nitroPathToArbos=arbos@@/block_processor.go), [internal_tx.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@nitroPathToArbos=arbos@@/internal_tx.go), [tx_processor.go](https://github.com/OffchainLabs/@@nitroRepositorySlug=nitro@@/blob/@@nitroVersionTag=v3.6.0@@/@@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..49315ab038 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.0@@/@@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.0@@ 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.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@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.0@@/@@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.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@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.0@@/@@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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/@@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.0-fc07dd2@@ --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.0-fc07dd2@@ --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.0@@/@@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.0@@/@@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.0@@/@@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..63c64c534d 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.0@@ 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..ac949f0577 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.0-fc07dd2@@ ## Database snapshots 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..dbdad098d9 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.0-fc07dd2@@` - 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.0-fc07dd2@@ 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.0-fc07dd2@@ 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.0-fc07dd2@@ 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.0-fc07dd2@@ 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.0-fc07dd2@@ 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..bce611e7db 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.0-fc07dd2@@` - 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.0-fc07dd2@@ 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..8ba4e7197d 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.0-fc07dd2@@ 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.0-fc07dd2@@ 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=9d0e90ef588f94a9d2ffa4dc22713d91a76f57d4@@/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..b45d4366b3 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.0-fc07dd2@@ - 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.0-fc07dd2@@ --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.0-fc07dd2@@ --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..f1dda1e483 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.0-fc07dd2@@ --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.0-fc07dd2@@ --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..4af4a1afb7 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.0@@ 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..02a1b22cb4 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.0-fc07dd2@@ --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..81ea7fb823 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.0-fc07dd2@@ --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..1db5736e4b 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.0-fc07dd2@@ --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.0-fc07dd2@@ --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..67bf10c572 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.0@@ 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..8c1f8f96e6 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.0-fc07dd2@@ ## 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.0-fc07dd2@@ --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. From 120fa1424b24ee08a6b29e181bb3542ca0679d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Blanchemain?= Date: Tue, 6 May 2025 17:24:56 -0700 Subject: [PATCH 3/3] fix: reformat --- .../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 a9c8dd37af..d944529e89 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 7036823790..e1aff1b833 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 0097c70ea5..dd70ad23d4 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 e53547bbbf..f4ce9ae772 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 f406b5fea7..ca1fa047a2 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 42577d0231..7d9175a829 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 4e5d22d98c..dafb80d058 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 c8def99e97..695d7762f2 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 48d77be4d4..5da8ee10a3 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 91e7a678f7..0ac9de7919 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 9aebd616ad..574cfec9f1 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 0cbaf786bc..7e5a70d3fc 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 f9ccc7373d..3e535c38a8 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 b4537ed5f9..43ec1b3321 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 8854165e19..40179ef86c 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 + + +