* 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
* 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>
* 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
* 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
* fix: repair 'get confirmed signatures for address' test in web3.js
* fix: repair 'get signatures for address' test in web3.js
* fix: repair 'get parsed confirmed transactions' test in web3.js
* fix: repair 'get transaction' test in web3.js
* fix: repair 'get confirmed transaction' test in web3.js
* fix: repair 'get block' test in web3.js
* fix: repair 'get confirmed block' test in web3.js
* fix: repair 'get block signatures' test in web3.js
* fix: repair 'get block time' test in web3.js
Co-authored-by: steveluscher <github@steveluscher.com>
* Refine middleware types to include the method signature and to express the nullability of the middleware.
* Make sure that the stacktrace does not involve middleware unless the error originated from the middleware itself.
Co-authored-by: steveluscher <github@steveluscher.com>
* feat: add accounts support to simulateTransaction
* feat: introduce test for simulateTransaction on Message objects
* feat: populate transaction from message defaults to no signatures
* fix: remove unused constant
* fix: small formatting error
* fix: eslint and prettier were fighting over ternary indentation
* fix: make simulated transaction result accounts nullable
* feat(web3): add getMultipleAccountsInfo which uses the getMultipleAccounts RPC method
* fix: add airdrop to get multiple accounts info
Co-authored-by: Josh Hundley <josh.hundley@gmail.com>