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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -82,7 +82,7 @@ Interface @@ -90,7 +90,7 @@ Implementation @@ -104,7 +104,7 @@ Interface @@ -112,7 +112,7 @@ Implementation @@ -126,7 +126,7 @@ Interface @@ -134,7 +134,7 @@ Implementation @@ -148,7 +148,7 @@ Interface @@ -156,7 +156,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -102,7 +102,7 @@ Interface @@ -110,7 +110,7 @@ Implementation @@ -124,7 +124,7 @@ Interface @@ -132,7 +132,7 @@ Implementation @@ -149,7 +149,7 @@ Interface @@ -157,7 +157,7 @@ Implementation @@ -171,7 +171,7 @@ Interface @@ -179,7 +179,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -102,7 +102,7 @@ Interface @@ -110,7 +110,7 @@ Implementation @@ -124,7 +124,7 @@ Interface @@ -132,7 +132,7 @@ Implementation @@ -158,7 +158,7 @@ Interface @@ -166,7 +166,7 @@ Implementation @@ -182,7 +182,7 @@ Interface @@ -190,7 +190,7 @@ Implementation @@ -206,7 +206,7 @@ Interface @@ -214,7 +214,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -82,7 +82,7 @@ Interface @@ -90,7 +90,7 @@ Implementation @@ -104,7 +104,7 @@ Interface @@ -112,7 +112,7 @@ Implementation @@ -126,7 +126,7 @@ Interface @@ -134,7 +134,7 @@ Implementation @@ -148,7 +148,7 @@ Interface @@ -156,7 +156,7 @@ Implementation @@ -170,7 +170,7 @@ Interface @@ -178,7 +178,7 @@ Implementation @@ -194,7 +194,7 @@ Interface @@ -202,7 +202,7 @@ Implementation @@ -216,7 +216,7 @@ Interface @@ -224,7 +224,7 @@ Implementation @@ -238,7 +238,7 @@ Interface @@ -246,7 +246,7 @@ Implementation @@ -260,7 +260,7 @@ Interface @@ -268,7 +268,7 @@ Implementation @@ -284,7 +284,7 @@ Interface @@ -292,7 +292,7 @@ Implementation @@ -306,7 +306,7 @@ Interface @@ -314,7 +314,7 @@ Implementation @@ -330,7 +330,7 @@ Interface @@ -338,7 +338,7 @@ Implementation @@ -355,7 +355,7 @@ Interface @@ -363,7 +363,7 @@ Implementation @@ -380,7 +380,7 @@ Interface @@ -388,7 +388,7 @@ Implementation @@ -405,7 +405,7 @@ Interface @@ -413,7 +413,7 @@ Implementation @@ -427,7 +427,7 @@ Interface @@ -435,7 +435,7 @@ Implementation @@ -449,7 +449,7 @@ Interface @@ -457,7 +457,7 @@ Implementation @@ -474,7 +474,7 @@ Interface @@ -482,7 +482,7 @@ Implementation @@ -499,7 +499,7 @@ Interface @@ -507,7 +507,7 @@ Implementation @@ -524,7 +524,7 @@ Interface @@ -532,7 +532,7 @@ Implementation @@ -549,7 +549,7 @@ Interface @@ -557,7 +557,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -102,7 +102,7 @@ Interface @@ -110,7 +110,7 @@ Implementation @@ -126,7 +126,7 @@ Interface @@ -134,7 +134,7 @@ Implementation @@ -148,7 +148,7 @@ Interface @@ -156,7 +156,7 @@ Implementation @@ -170,7 +170,7 @@ Interface @@ -178,7 +178,7 @@ Implementation @@ -192,7 +192,7 @@ Interface @@ -200,7 +200,7 @@ Implementation @@ -214,7 +214,7 @@ Interface @@ -222,7 +222,7 @@ Implementation @@ -236,7 +236,7 @@ Interface @@ -244,7 +244,7 @@ Implementation @@ -258,7 +258,7 @@ Interface @@ -266,7 +266,7 @@ Implementation @@ -280,7 +280,7 @@ Interface @@ -288,7 +288,7 @@ Implementation @@ -302,7 +302,7 @@ Interface @@ -310,7 +310,7 @@ Implementation @@ -324,7 +324,7 @@ Interface @@ -332,7 +332,7 @@ Implementation @@ -346,7 +346,7 @@ Interface @@ -354,7 +354,7 @@ Implementation @@ -368,7 +368,7 @@ Interface @@ -376,7 +376,7 @@ Implementation @@ -390,7 +390,7 @@ Interface @@ -398,7 +398,7 @@ Implementation @@ -412,7 +412,7 @@ Interface @@ -420,7 +420,7 @@ Implementation @@ -434,7 +434,7 @@ Interface @@ -442,7 +442,7 @@ Implementation @@ -456,7 +456,7 @@ Interface @@ -464,7 +464,7 @@ Implementation @@ -478,7 +478,7 @@ Interface @@ -486,7 +486,7 @@ Implementation @@ -500,7 +500,7 @@ Interface @@ -508,7 +508,7 @@ Implementation @@ -522,7 +522,7 @@ Interface @@ -530,7 +530,7 @@ Implementation @@ -544,7 +544,7 @@ Interface @@ -552,7 +552,7 @@ Implementation @@ -566,7 +566,7 @@ Interface @@ -574,7 +574,7 @@ Implementation @@ -588,7 +588,7 @@ Interface @@ -596,7 +596,7 @@ Implementation @@ -610,7 +610,7 @@ Interface @@ -618,7 +618,7 @@ Implementation @@ -632,7 +632,7 @@ Interface @@ -640,7 +640,7 @@ Implementation @@ -654,7 +654,7 @@ Interface @@ -662,7 +662,7 @@ Implementation @@ -670,13 +670,35 @@ Sets the initial number of pages a wasm may allocate + + + setWasmMaxSize() + + + + Interface + + + + + Implementation + + + decompression. + setWasmMinInitGas(uint8 gas, uint16 cached) Interface @@ -684,7 +706,7 @@ Implementation @@ -698,7 +720,7 @@ Interface @@ -706,7 +728,7 @@ Implementation @@ -720,7 +742,7 @@ Interface @@ -728,7 +750,7 @@ Implementation @@ -742,7 +764,7 @@ Interface @@ -750,7 +772,7 @@ Implementation @@ -764,7 +786,7 @@ Interface @@ -772,7 +794,7 @@ Implementation @@ -786,7 +808,7 @@ Interface @@ -794,7 +816,7 @@ Implementation @@ -808,7 +830,7 @@ Interface @@ -816,7 +838,7 @@ Implementation @@ -830,7 +852,7 @@ Interface @@ -838,7 +860,7 @@ Implementation @@ -846,6 +868,28 @@ Sets serialized chain config in ArbOS state + + + setCalldataPriceIncrease() + + + + Interface + + + + + Implementation + + + (EIP-7623) + @@ -864,7 +908,7 @@ + + + + + +
Interface @@ -872,7 +916,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -102,7 +102,7 @@ Interface @@ -110,7 +110,7 @@ Implementation @@ -124,7 +124,7 @@ Interface @@ -132,7 +132,7 @@ Implementation @@ -149,7 +149,7 @@ Interface @@ -157,7 +157,7 @@ Implementation @@ -165,6 +165,28 @@ Returns (0, 0, nil) if no ArbOS upgrade is scheduled.
+ isCalldataPriceIncreaseEnabled() + + + Interface + + + + Implementation + + (EIP-7623) is enabled
@@ -183,7 +205,7 @@
Interface @@ -191,7 +213,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -39,7 +39,7 @@ Interface @@ -47,7 +47,7 @@ Implementation @@ -61,7 +61,7 @@ Interface @@ -69,7 +69,7 @@ Implementation @@ -83,7 +83,7 @@ Interface @@ -91,7 +91,7 @@ Implementation @@ -105,7 +105,7 @@ Interface @@ -113,7 +113,7 @@ Implementation @@ -127,7 +127,7 @@ Interface @@ -135,7 +135,7 @@ Implementation @@ -149,7 +149,7 @@ Interface @@ -157,7 +157,7 @@ Implementation @@ -171,7 +171,7 @@ Interface @@ -179,7 +179,7 @@ Implementation @@ -208,7 +208,7 @@ Interface @@ -216,7 +216,7 @@ Implementation @@ -230,7 +230,7 @@ Interface @@ -238,7 +238,7 @@ Implementation @@ -252,7 +252,7 @@ Interface @@ -260,7 +260,7 @@ Implementation @@ -274,7 +274,7 @@ Interface @@ -282,7 +282,7 @@ Implementation @@ -296,7 +296,7 @@ Interface @@ -304,7 +304,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -102,7 +102,7 @@ Interface @@ -110,7 +110,7 @@ Implementation @@ -124,7 +124,7 @@ Interface @@ -132,7 +132,7 @@ Implementation @@ -146,7 +146,7 @@ Interface @@ -154,7 +154,7 @@ Implementation @@ -168,7 +168,7 @@ Interface @@ -176,7 +176,7 @@ Implementation @@ -190,7 +190,7 @@ Interface @@ -198,7 +198,7 @@ Implementation @@ -214,7 +214,7 @@ Interface @@ -222,7 +222,7 @@ Implementation @@ -236,7 +236,7 @@ Interface @@ -244,7 +244,7 @@ Implementation @@ -258,7 +258,7 @@ Interface @@ -266,7 +266,7 @@ Implementation @@ -295,7 +295,7 @@ Interface @@ -303,7 +303,7 @@ Implementation @@ -317,7 +317,7 @@ Interface @@ -325,7 +325,7 @@ Implementation @@ -341,7 +341,7 @@ Interface @@ -349,7 +349,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -102,7 +102,7 @@ Interface @@ -110,7 +110,7 @@ Implementation @@ -124,7 +124,7 @@ Interface @@ -132,7 +132,7 @@ Implementation @@ -146,7 +146,7 @@ Interface @@ -154,7 +154,7 @@ Implementation @@ -168,7 +168,7 @@ Interface @@ -176,7 +176,7 @@ Implementation @@ -190,7 +190,7 @@ Interface @@ -198,7 +198,7 @@ Implementation @@ -212,7 +212,7 @@ Interface @@ -220,7 +220,7 @@ Implementation @@ -234,7 +234,7 @@ Interface @@ -242,7 +242,7 @@ Implementation @@ -256,7 +256,7 @@ Interface @@ -264,7 +264,7 @@ Implementation @@ -278,7 +278,7 @@ Interface @@ -286,7 +286,7 @@ Implementation @@ -300,7 +300,7 @@ Interface @@ -308,7 +308,7 @@ Implementation @@ -322,7 +322,7 @@ Interface @@ -330,7 +330,7 @@ Implementation @@ -344,7 +344,7 @@ Interface @@ -352,7 +352,7 @@ Implementation @@ -366,7 +366,7 @@ Interface @@ -374,7 +374,7 @@ Implementation @@ -388,7 +388,7 @@ Interface @@ -396,7 +396,7 @@ Implementation @@ -410,7 +410,7 @@ Interface @@ -418,7 +418,7 @@ Implementation @@ -432,7 +432,7 @@ Interface @@ -440,7 +440,7 @@ Implementation @@ -466,7 +466,7 @@ Interface @@ -474,7 +474,7 @@ Implementation @@ -488,7 +488,7 @@ Interface @@ -496,7 +496,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation @@ -36,7 +36,7 @@ Interface @@ -44,7 +44,7 @@ Implementation @@ -58,7 +58,7 @@ Interface @@ -66,7 +66,7 @@ Implementation @@ -80,7 +80,7 @@ Interface @@ -88,7 +88,7 @@ Implementation @@ -105,7 +105,7 @@ Interface @@ -113,7 +113,7 @@ Implementation @@ -129,7 +129,7 @@ Interface @@ -137,7 +137,7 @@ Implementation @@ -163,7 +163,7 @@ Interface @@ -171,7 +171,7 @@ Implementation 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..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 @@ -14,7 +14,7 @@ Interface @@ -22,7 +22,7 @@ Implementation 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..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 @@ -17,7 +17,7 @@ Interface @@ -25,7 +25,7 @@ Implementation @@ -39,7 +39,7 @@ Interface @@ -47,7 +47,7 @@ Implementation @@ -61,7 +61,7 @@ Interface @@ -69,7 +69,7 @@ Implementation @@ -83,7 +83,7 @@ Interface @@ -91,7 +91,7 @@ Implementation @@ -107,7 +107,7 @@ Interface @@ -115,7 +115,7 @@ Implementation @@ -129,7 +129,7 @@ Interface @@ -137,7 +137,7 @@ Implementation @@ -151,7 +151,7 @@ Interface @@ -159,7 +159,7 @@ Implementation @@ -173,7 +173,7 @@ Interface @@ -181,7 +181,7 @@ Implementation @@ -195,7 +195,7 @@ Interface @@ -203,7 +203,7 @@ Implementation @@ -217,7 +217,7 @@ Interface @@ -225,7 +225,7 @@ Implementation 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. 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',