* chore: create a first-class type to distinguish client subscription ids from server subscription ids
* chore: add fast-stable-stringify as a dependency to web3.js
* fix: reimplement the subscription tracker as a state machine
* test: updated tests to recognize that signatureUnsubscribe happens synchronously
* chore: add sinon-chai so that we can make assertions on calling spies
* test: coverage for the full range of subscription state transitions
* fix: special case auto-disposing subscriptions like signatureSubscribe
* fix: document Subscription type (SQUASH THIS)
* fix: strict undefined checks (SQUASH THIS)
* fix: naming (SQUASH THIS)
* fix: move defaulting to source (SQUASH THIS)
* fix: build RPC args first, then produce the subscription topic hash (SQUASH THIS)
* fix: dispose handles no longer track whether they've been called (SQUASH THIS)
* fix: shore up the auto-disposing sub tests now that double-free doesn't fatal (SQUASH THIS)
* fix: write documentation explaining how and why to apply a default commitment (SQUASH THIS)
* fix: skip subscriptions that have been deleted when recursing (SQUASH THIS)
* fix: bail on async responses when the connection has been recycled (SQUASH THIS)
* fix: typo in comment (SQUASH THIS)
* chore: comment on why notification callbacks are ts-ignored
* chore: start all the new stuff out as private members of the Connection class
* 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>