Skip to content

Releases: OffchainLabs/arbitrum-sdk

v3.1.8

18 Aug 10:49
07b85a9
Compare
Choose a tag to compare

What's Changed

Utils

  • Added getFirstBlockForL1Block and getBlockRangesForL1Block for looking up L2 and Orbit blocks by @bartlomiej94 in #317

Erc20Bridger

  • Enabled specifying toAddress in getL2WithdrawalEvents by @spsjvc in #324

Full Changelog: v3.1.7...v3.1.8

v3.1.7

17 Aug 11:34
03a7cb5
Compare
Choose a tag to compare

What's Changed

Networks

  • Added support for Sepolia and Arbitrum Sepolia by @bartlomiej94 in #320

Full Changelog: v3.1.6...v3.1.7

v3.1.6

27 Jun 17:07
ec33a86
Compare
Choose a tag to compare

What's Changed

L2ToL1MessageWriter

  • Enabled passing in a different L1 provider instead of l1Signer.provider by @spsjvc in #304

Networks

  • Updated confirmPeriodBlocks for Arbitrum Goerli by @spsjvc in #302

Full Changelog: v3.1.5...v3.1.6

v3.1.5

20 Jun 15:47
def2264
Compare
Choose a tag to compare

What's Changed

L1ToL2Message

  • Fixed retryableExists returning false when there's an unexpected error by @DZGoldman in #300

Full Changelog: v3.1.4...v3.1.5

v3.1.4

16 Jun 14:57
bbefe7e
Compare
Choose a tag to compare

What's Changed

L1ToL2MessageGasEstimator

  • Improved performance of estimateAll by @bartlomiej94 in #288

Networks

  • Added getEthBridgeInformation to obtain eth bridge contracts by @TucksonDev in #260

Constants

Misc

  • Added metadata, title and intro text to the index file of the generated docs by @TucksonDev in #272
  • Added support for new nitro-testnode container name by @tsahee in #292

New Contributors

Full Changelog: v3.1.3...v3.1.4

v3.1.3

09 May 16:05
b4241b2
Compare
Choose a tag to compare

What's Changed

Erc20Bridger

  • Added WETH support to getL1ERC20Address by @bartlomiej94 in #269

Dependencies

Full Changelog: v3.1.2...v3.1.3

v3.1.2

10 Mar 15:45
5f622e1
Compare
Choose a tag to compare

What's Changed

Networks

  • Added addDefaultLocalNetwork for registering the default local network configuration during development (@TucksonDev in #258)
  • Increased default timeout for creation and redemption of retryable tickets (@TucksonDev in #256)

Full Changelog: v3.1.1...v3.1.2

v3.1.1

01 Mar 17:24
2640a98
Compare
Choose a tag to compare

What's Changed

  • fix: retryable rlp when destAddress is 0x0 by @gzeoneth in #254

Full Changelog: v3.1.0...v3.1.1

v3.1.0

22 Feb 17:06
59f1632
Compare
Choose a tag to compare

What's Changed

EthBridger

  • Added fromProvider static method for instantiating with a Provider (@spsjvc in #214)
  • Added depositTo method for depositing via a retryable ticket, with option for a different destination address (@TucksonDev in #238)

Erc20Bridger

  • Added fromProvider static method for instantiating with a Provider (@spsjvc in #214)

L1TransactionReceipt

  • Added getL1ToL2MessagesClassic for reading Classic L1-to-L2 messages (@bartlomiej94 in #221 and #240)
  • Added isClassic method to check if the transaction happened on Classic or Nitro (@bartlomiej94 in #239)
  • Updated getL1ToL2Messages to throw if trying to read Classic messages (@bartlomiej94 in #221)

L1ToL2MessageCreator

  • Fixed createRetryableTicket not properly spreading over properties (@TucksonDev in #237)

InboxTools

  • Added signL2Tx for creating a signed L2 transaction (@Jason-Wanxt in #194)
  • Added sendL2SignedTx for posting a signed L2 transaction to the Inbox (@Jason-Wanxt in #194)

Networks

  • Added nitroGenesisL1Block to L2Network objects, specifying the first L1 Nitro block (@bartlomiej94 and @spsjvc in #221 and #242)
  • Updated block explorer links for Arbitrum Goerli and Arbitrum Nova (@gzeoneth in #220)
  • Removed Rinkeby and Arbitrum Rinkeby from list of supported networks (@bartlomiej94 in #235)

Misc

  • Various fixes to docs
  • (Internal) Changes to CI
  • (Internal) Changes to tests

New Contributors

Full Changelog: v3.0.0...v3.1.0

v3.0.0

19 Oct 11:17
6bb8311
Compare
Choose a tag to compare

Highlights

  • All Arbitrum Classic functionality, except withdrawals, has now been removed. Classic withdrawals are still supported since there exist pending withdrawals to the classic Outbox.
  • All functions that send transactions directly now have a get*Request variant for getting a request for the transaction that would be sent. This allows sdk consumers to get a request and send it themselves later.
  • Retryable data tools for improved estimation of retryable parameters

EthBridger

  • New getDepositRequest and getWithdrawalRequest get transaction request objects that can be sent later. deposit and withdraw now accept transaction request objects as arguments as well as existing params. Return object also contains L2 gas estimate information.
  • Removed depositEstimateGas and withdrawEstimateGas. Equivalent estimates can now be made by calling getDepositRequest or getWithdrawalRequest and then calling provider.estimateGas with the result
  • deposit params no longer contain an l2Provider property
  • destinationAddress in EthWithdrawParams interface is mandatory. There’s no more default l2Signer's address. So, inputs of getWithdrawalRequest and withdraw method should contain destinationAddress.

Erc20Bridger

  • New getDepositRequest , getWithdrawalRequest and getApproveTokenRequest functions for getting transaction request objects that can be sent later. deposit , withdraw and approveToken now accept transaction request objects as arguments as well as existing params. Return object also contains L2 gas estimate information.
  • Removed depositEstimateGas and withdrawEstimateGas. Equivalent estimates can now be made by calling getDepositRequest or getWithdrawalRequest and then calling provider.estimateGas with the result
  • excessFeeRefundAddress and callValueRefundAddress can now be customised when calling deposit. from must now be supplied when calling deposit

Retryable data tools

  • Inbox methods now return an error when called with specific parameters. This error contains retryable data information useful for estimating L1ToL2 gas limits.
  • New class RetryableDataTools for parsing these error messages

L1ToL2Message

  • fromClassic and fromNitro removed
  • fromTxComponents renamed to fromEventComponents
  • Arguments retryableCreationId and l2TxHash removed from the L1ToL2Message constructor
  • getInputs function removed in favour of messageData property
  • Added getSuccessfulRedeem function for getting the first redeem transaction that succeeded.
  • Added getAutoRedeemAttempt function for getting the redeem transaction that was automatically executed
  • Added getLifetime function for getting the retryable lifetime setting
  • Added keepAlive function for increasing the timeout of a retryable
  • Added new EthDepositMessage class a separate from general L1ToL2Message class
  • Added new EthDepositStatus for the return of EthDepositMessage.status method

L1ToL2MessageCreator

  • New method getTicketCreationRequest for creating L1ToL2Messages as transaction requests
  • createRetryableTicket arguments updated. Individual arguments moved into a params object, also accepts a transaction request object instead of params

L1ToL2MessageGasEstimator

  • Refactored estimateRetryableTicketGasLimit to accept a single params object and an optional senderDeposit value
  • Added estimateMaxFeePerGas method for estimating l2 max fee per gas
  • Added isValid method for determining whether gas parameters are still valid
  • Refactored estimateAll params
  • Added populateFunctionParams method that internally uses RetryableDataTools to estimate the parameters for a contract that internally creates a retryable ticket

L1Transaction

  • Added getMessageDeliveredEvents and getInboxMessageDeliveredEvents methods for getting events emitted from Inbox.sol and Bridge.sol
  • Added getMessageEvents method for linking message delivered and inbox message delivered
  • Renamed getEthDepositMessages to getEthDeposits
  • Removed getL1ToL2Message, only the plural getL1ToL2Messages is now available

L2ToL1Transaction

  • Added L2ToL1TransactionNitro and L2ToL1TransactionClassic for interacting with nitro and classic outboxes respectively. L2ToL1Transaction still exists as composition class that internally calls the correct nitro or classic class when relevant
  • Removed outboxAddress from fromEvent static constructor
  • Renamed getEventLogs to getL2ToL1Events

L2Transaction

  • Added getRedeemScheduledEvents method
  • Removed l2Provider parameter from getL2ToL1Messages method
  • Added getBatchConfirmations method for getting the number of L1 block confirmations that a batch has
  • Added getBatchNumber method for getting the batch number of an L2 transaction
  • Removed l1Provider parameter from isDataAvailable method
  • Added toRedeemTransaction to convert an L2 transaction into a RedeemTransaction

Misc

  • Reduced production dependency and package size
  • Integration tests now run against nitro v2.0.0
  • ArbSdkError can now capture inner errors and stack traces
  • Address is now optional and moved into filter object in EventFetcher
  • Event objects used to accept either named, or unnamed tuples. This lead to complicated types, that were difficult to construct. Now only named tuples are supported.
  • In line with L2 network objects, all L1 network objects now have the property isArbitrum with the value false.
  • L2Network objects now contains a nitroGenesisBlock specifying when the l2 block at which nitro was enabled - value set to 0 for networks that have always been nitro.
  • rpcUrl removed from the network object