* Test that `TransactionMessage.decompile()` can decompile a legacy `Message`
* `TransactionMessage.decompile()` now correctly accounts for the number of writable unsigned accounts
* feat: you can now construct a `Transaction` with durable nonce information
* chore: refactor confirmation logic so that each strategy gets its own method
* feat: `geNonce` now accepts a `minContextSlot` param
* feat: a nonce-based transaction confirmation strategy
* feat: add nonce confirmation strategy to send-and-confirm helpers
* fix: nits from July 8 review
* Use Typescript narrowing to determine which strategy to use
* Double check the signature confirmation against the slot in which the nonce was discovered to have advanced
* Rename `subscriptionCommitment` to `confirmationCommitment`
* Reorganize status checking code to return early if `value` is `null`
* Bail if the one-shot signature result does not meet the target commitment
* chore: create internal method for subscribing to subscription state changes
* add status pool
* fix tests
* more tests
* syntax fix
* variable rename
* fix test
* comment fix
* remove getSignatureStatuses pooling
* rename variable
* IIFE
* wait for subscription
* fix interval clear
* test: you can now pause the establishment of subscriptions in tests
* feat: implementation of signature status check after setting up signature subscription
Co-authored-by: steveluscher <me+github@steveluscher.com>
This makes web3.js compatible with runtimes that don't understand bigint literals but _do_ understand `BigInt` constructors.
For whatever that's worth.
* Install `@noble/ed25519` and create a shim
* Replace `tweetnacl` with `@noble/ed25519` in `Account` class
* Replace `tweetnacl` with `@noble/ed25519` in `Keypair` class
* Replace `tweetnacl` with `@noble/ed25519` in `PublicKey` class
* Replace `tweetnacl` with `@noble/ed25519` in `Ed25519Program` class
* Replace `tweetnacl` with `@noble/ed25519` in `Transaction` class
* Replace `tweetnacl` with `@noble/ed25519` in versioned `Transaction` class
* Remove `tweetnacl` from project
* Damnit, typedoc.
* feat: add support for version 0 transactions
* chore: feedback
* chore: update VersionedMessage type
* chore: use literals for version getter
* chore: fix lint error
* chore: switch to VersionedMessage.deserialize
* fix: `makeWebsocketUrl` no longer depends on the `URL` class
* fix: `Connection` no longer relies on the `URL` class
* fix: remove dependency on `react-native-url-polyfill`
* chore: extract expirable blockhash record into its own type
* fix: the local latest blockhash cache now fetches and stores lastValidBlockHeight
* fix: allow people to supply a confirmation strategy to sendAndConfirmRawTransaction
* test: upgrade RPC helpers to use blockheight confirmation method
* test: patch up tests to use blockheight based confirmation strategy
* fix: eliminate deprecated construction of Transaction inside simulateTransaction
* test: eliminate deprecated constructions of Transaction in tests