Commit Graph

82 Commits

Author SHA1 Message Date
Steven Luscher 8921b0a35a
fix: [web3] only ever send RPC socket messages when the socket is open (#29195) 2023-01-31 09:03:40 -08:00
Yihau Chen 6489c20de5
test: fix rentEpoch value (#29999) 2023-01-31 13:14:28 +08:00
Kollan House a2db104edb
feat: add commission fields matching RPC spec to web3.js client (#29435)
* fix: adds commission field matching RPC spec

* fix: update optional to follow type pattern
2022-12-29 20:22:56 -08:00
TJDawson10 9679bc6d1f
chore: typecheck web3.js tests (#29422)
* fix: web3.js test typescript errors

Fixes the typescript errors throughout the
web3.js test suite

* fix: node14 test

AbortController is a default in node16 but needs
to be imported for node14

* fix: additional typescript errors

Adds the tests to the tsconfig to auto-include mocha
and fixes remaining typescript errors

* fix: graphql-tools to work with typescript

version of graphql-tools initially installed has incompatible
types preventing ./scripts/typegen.sh from passing when tests
are added to the include path of tsconfig.json

* Don't build typedefs for tests

Co-authored-by: steveluscher <me+github@steveluscher.com>
2022-12-29 15:02:21 -08:00
Yihau Chen 3cfd1b244d
test: fix get inflation rate test failed at test:live (#29413) 2022-12-25 02:24:49 +08:00
TJDawson10 c0e6065ac9
feat: add getInflationRate RPC call to web3.js (#29377)
* Add getInflationRate RPC call

* Fix code formatting

Co-authored-by: steveluscher <me+github@steveluscher.com>
2022-12-23 22:08:23 -08:00
Steven Luscher ffcebbbd9b
fix: pretty print PublicKey objects in node and in the browser (#29062) 2022-12-09 11:27:14 -08:00
Steven Luscher f1427dd90c
feat: you can now supply your own HTTP agent to a web3.js Connection (#29125)
* 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`
2022-12-06 14:57:13 -08:00
Steven Luscher 35f3c18aa8
feat: you can now abort transaction confirmations in web3.js (#29057)
* 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
2022-12-02 16:36:09 -08:00
Steven Luscher b112d01a5d
feat: the web3.js getBlock APIs now accept `rewards` and `transactionDetails` config (#29000)
* 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
2022-12-01 22:04:47 -08:00
Jon Cinque 337621d031
fix: support `VersionedMessage` in `getFeeForMessage` (#28996) 2022-11-30 10:06:43 -08:00
Steven Luscher 7646521a6e
feat: a nonce-based transaction confirmation strategy for web3.js (#25839)
* 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
2022-11-28 22:46:27 -08:00
Steven Luscher 04789cab81
fix: verify commitment level when confirming transactions with one-shot fetch (#28969)
* 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
2022-11-28 18:50:16 -08:00
Adrian Brzeziński d16810ec84
fix: web3.js transaction confirmation now double-checks for already-confirmed txs (#28290)
* 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>
2022-11-28 11:55:56 -08:00
Steven Luscher 65f1614a42
test: repair tests, `space` having been added to the account response (#28518) 2022-10-20 13:37:55 -07:00
Justin Starry 831ed96730
feat: add getMultipleParsedAccounts method (#28414) 2022-10-16 07:26:08 +00:00
Justin Starry 36e5f33e67
feat: add dataSlice param to account fetching config (#28389) 2022-10-14 03:28:00 +00:00
Justin Starry 33a328e589
feat: add getParsedBlock method to Connection (#28345)
* feat: add getParsedBlock method to Connection

* Update web3.js/src/connection.ts

Co-authored-by: Yihau Chen <a122092487@gmail.com>

Co-authored-by: Yihau Chen <a122092487@gmail.com>
2022-10-11 16:13:10 +08:00
Justin Starry e42a39024d
feat: add source field to parsed account key responses (#27702) 2022-09-09 21:06:54 +00:00
Justin Starry 204f272412
feat: support versioned txs in `sendTransaction` and `simulateTransaction` (#27528)
* feat: support versioned txs in sendTransaction and simulateTransaction

* chore: add docs for simulation config parameters
2022-09-06 23:53:42 -04:00
Justin Starry da7e88fc41
fix: add compute units to jsonrpc parser (#27554) 2022-09-01 18:18:43 +00:00
Justin Starry 292b2a1bfe
feat: update `Connection` to support versioned transactions (#27068)
feat: update Connection to support versioned transactions
2022-08-31 08:46:24 -04:00
Justin Starry 1ccfc65a52
feat: add support for creating version 0 transactions (#27142)
* 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
2022-08-25 15:42:54 +02:00
Justin Starry dcef8ec100
feat: add getAddressLookupTable method to Connection (#27127) 2022-08-14 10:11:49 +00:00
Justin Starry 8e30dbbbf2 chore: restructure utils code 2022-08-12 17:11:51 +01:00
Athar Mohammad ce337e009d
feat(web3.js): add support for get stake minimum delegation (#26682) 2022-07-22 01:02:49 -07:00
Athar Mohammad d0d3ad7166
Support for returnData in simulate transaction (#26499)
feat(web3.js): add Support for returnData in simulate transaction
2022-07-12 14:07:17 +02:00
steveluscher b1f8baf6ad test: maybe don't disable all the web3.js tests 2022-07-01 22:31:02 -07:00
steveluscher e24b64dd71 fix: `getPerformanceSamples` no longer breaks when the connection has a default commitment 2022-07-02 05:29:41 +00:00
Kunal Desai aea84e699c
fix: `getTransactions()` now returns the expected datatype (#26099) 2022-06-21 10:31:42 -07:00
Steven Luscher 4ea39c1cd3
feat: thread new blockheight expiry strategy through `sendAndConfirmTransaction` (#25227)
* 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
2022-05-14 21:54:12 -07:00
Marc Jaramillo 375968da3b fix: transaction confirmation strategy: wait until the last valid blockheight passes (closes #24211)
Co-authored-by: Marc Jaramillo <mnj.webdeveloper@gmail.com>
Co-authored-by: Stella Wang <stella01wang@gmail.com>
2022-05-13 20:21:24 -07:00
wentokay a38ce127ca
fix: include exception identifier in `catch` blocks (#25147) 2022-05-11 20:32:02 -07:00
Justin Starry 634b7c3b5a
chore: fix lagging stake program live test (#25107)
* chore: fix lagging stake program live test

* chore: use min stake delegation in stake tests
2022-05-11 00:37:15 +08:00
Justin Starry d34b440a3c
chore: update dev dep @solana/spl-token to 0.2.0 (#25044)
* chore: update dev dep @solana/spl-token to 0.2.0

* chore: fix token tests
2022-05-07 00:14:11 +08:00
Steven Luscher 8f6e469d92
test: repair web3.js getBlocks tests (#24813) 2022-04-28 16:09:08 -07:00
steveluscher 1882434c69 test: add test for signature notifications 2022-04-09 19:43:15 -07:00
steveluscher 21a64db140 test: refactor notification tests on the basis of promises rather than polling 2022-04-09 19:43:15 -07:00
steveluscher db50893fa1 test: reenable account change subscription test 2022-04-09 19:43:15 -07:00
steveluscher 35ee38b0f1 test: reenable log subscription test 2022-04-09 19:43:15 -07:00
stellaw1 c08cfafd6c feat: adds getBlockProduction RPC call 2022-03-26 18:31:40 -07:00
Steven Luscher 412d9be445
fix: repair web3 connection tests by making fewer assumptions about the existence of particular blocks (#23921)
* 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>
2022-03-24 22:21:14 -07:00
Pierre ebe3d2d59d
fix: simulateTransaction accounts items can be null (#23229)
* fix: simulated accounts can be null

* Use Missing rather than token program id

Co-authored-by: Arrowana <8245419+Arrowana@users.noreply.github.com>
2022-02-21 14:20:11 +08:00
Tyera Eulberg c899685cb2
chore: make Connection block tests less brittle (#23015) 2022-02-08 14:58:50 -07:00
Jon Cinque fa51e5b704
chore: update Connection to non-deprecated endpoints (#22800)
* chore: remove usage of `getConfirmedTransaction`

* chore: use `getBlock` instead of `getConfirmedBlock`

* chore: add `getLatestBlockhash` and test
2022-01-28 00:43:01 +01:00
Michael Vines ae95540387 chore: add test timeouts 2022-01-21 13:16:42 -08:00
Kirill Fomichev 3c44d405c7
feat: add Connection.getFeeForMessage (#22128)
* web3.js: add Connection.getFeeForMessage

* throw if value is null

* fix null value

* fix types
2022-01-11 17:49:28 +08:00
Steven Luscher d36ff8d978
fix: refine stacktrace attribution of errors thrown from middleware (#21470)
* 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>
2021-11-28 23:43:33 -06:00
Justin Starry a005773d10
feat: add config option to exclude accounts from supply response (#20887) 2021-10-22 16:12:49 -04:00
Justin Starry c02ef395ed
fix: use stable endpoints for getBlocks (#20310) 2021-09-29 15:27:11 +00:00