* You can now supply your own `https?.Agent` when creating a `Connection` object
* Don't use HTTP agents in test mode
* Tests that assert the behaviour of the `agentOverride` config of `Connection`
* s/agentOverride/httpAgent/ is less confusing when the value is `false`
* Upgrade Typescript, `@types/node`, and `typedoc` to versions that play well together
In this instance it means they:
* understand `AbortSignal`
* don't cause build errors
* You can now abort transaction confirmation using an `AbortSignal`
* Pipe an `AbortSignal` down through `sendAndConfirmTransaction()`
* Add `AbortController` polyfill to test so that test works in Node 14
* Add `transactionDetails` and `rewards` params to `getBlock` API of web3.js
* Add the same content to the legacy call
…because it's such a PITA to share config between two methods and not have Typedoc throw a fit.
* Add tests to exercise block deserialization in the case that `transactionDetails` is `none` or `accounts`
* Extract the annotated account key parser into a separate struct
* Parse the `getBlock()` responses differently depending on the mode
* 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`