37 Commits

Author SHA1 Message Date
Eric
d8bf5b0eae
deserialize key defaults to serialize key 2024-02-05 12:24:05 +11:00
Eric
1a6ab42434
cleanup 2024-02-02 18:43:56 +11:00
Eric
502457633d
bump json-rpc to 0.4.0 and fix test 2024-02-01 19:01:18 +11:00
Eric
1b083e10ad
Add serde options to the json util, along with tests
next step is to:
1. change back any ethers var names that were changed for serialization purposes, eg `from` and `type`
2. move the json util to its own lib
2024-02-01 18:52:05 +11:00
Eric
64cc99442d
support nim 2.0 2024-01-30 19:25:24 +11:00
Eric
92b8ea028a
clean up - all tests passing 2024-01-30 17:41:47 +11:00
Eric
59a7939e8f
Refactor exceptions for providers and signers, fix more tests
- signer procs raise SignerError, provider procs raise ProviderError
- WalletError now inherits from SignerError
- move wallet module under signers
- create jsonrpo moudle under signers
- bump nim-json-rpc for null-handling fixes
- All jsonrpc provider tests passing, still need to fix others
2024-01-29 22:20:48 +11:00
Eric
c261e96274
rename sender to from, update json error logging, add more conversions 2024-01-25 17:20:04 +11:00
Eric
526d954a01
Start fixing tests (mainly conversion fixes) 2024-01-24 18:09:47 +11:00
Eric
f6f0dbc07b
Update exceptions
Use {.async: (raises: [...].} where needed
Annotate provider with {.push raises:[].}
Format signatures
2024-01-24 14:36:53 +11:00
Eric
71830221b6
More json conversion updates 2024-01-24 13:36:24 +11:00
Eric
d46db94f74
Add ethers implementation for setMethodHandler
Was removed in json-rpc
2024-01-24 11:55:44 +11:00
Eric
daa88cc8bf
Add json de/serialization lib from codex to handle conversions
json-rpc now requires nim-json-serialization to convert types to/from json. Use the nim-json-serialization signatures to call the json serialization lib from nim-codex (should be moved to its own lib)
2024-01-24 11:53:53 +11:00
Mark Spanbroek
c25de86656 remove upraises
we no longer support nim 1.2.x,
so upraises is no longer necessary
2023-12-12 09:28:06 +01:00
Eric
2428b756d6
On transaction failure, fetch revert reason with replayed transaction (#57)
When transaction fails (receipt.status is Failed), fetch revert reason by replaying transaction.
2023-10-25 11:36:00 +11:00
Eric
12d7a35203
Query past contract events (#51)
Based on ethers.js's queryFilter, allows querying of past contract events, by querying the logs for a contract's event topic.

* queryFilter to query past logs
* Allow querying of past block log events
* Can query by block number or block hash
2023-07-20 15:51:28 +10:00
Mark Spanbroek
cb95cbc15a Make BlockHandler callback synchronous (breaking change)
Refactored the confirm() implementation to work
with a synchronous callback
2023-07-04 12:58:48 +02:00
Mark Spanbroek
82f6449374 Move JsonRpcSubscription type to jsonrpc module
Allows it to insert convertError to ensure that
any errors are re-raised as JsonRpcProviderError
2023-07-03 13:09:09 +02:00
Mark Spanbroek
738c6a87e2 Stop polling when provider is closed 2023-07-03 13:09:09 +02:00
Mark Spanbroek
a27c2de41c Close provider by unsubscribing and closing client 2023-07-03 13:09:09 +02:00
Mark Spanbroek
2481bda6e4 Subscribe to logs with polling 2023-07-03 13:09:09 +02:00
Mark Spanbroek
0aea16047c Ignore errors when retrieving block by hash 2023-07-03 13:09:09 +02:00
Mark Spanbroek
0322ae1451 Ignore errors while polling 2023-07-03 13:09:09 +02:00
Mark Spanbroek
50cfd9d9dd untilCancelled template 2023-07-03 13:09:09 +02:00
Mark Spanbroek
3a76fa74f1 Make polling interval configurable 2023-07-03 13:09:09 +02:00
Mark Spanbroek
6a034870f8 Polling block subscriptions for non-websocket connections 2023-07-03 13:09:09 +02:00
Mark Spanbroek
127c9c9b0d Formatting 2023-07-03 13:09:09 +02:00
Mark Spanbroek
a7dc0ac9eb Move subscription handling to its own module 2023-07-03 13:09:09 +02:00
Jackie
b72fbb0ed9 small fixes 2022-08-08 12:40:36 +02:00
Jackie
2c9eb595d2 Add sendRawTransaction 2022-08-08 12:40:36 +02:00
Mark Spanbroek
16a3d25419 Remove duplication 2022-08-08 12:26:09 +02:00
Jackie
52f57894f5 Fix block subscription 2022-08-08 12:26:09 +02:00
Eric Mastro
2f97a03fe2 feat: Can wait for transaction confirmations
Allows specified number of transaction confirmations to be awaited before a transaction is considered finalised. Polls for a transaction receipt then listens for new blocks and calculates the number of blocks between the receipt and the new block.

Notes
1. Only works with websockets currently
2. Replaced transaction not supported yet
2022-05-23 11:27:26 +10:00
Mark Spanbroek
bbf133725f Subscribe to new blocks 2022-05-17 09:08:02 +02:00
Michael Bradley, Jr
073924d3f5 supply block parameter to eth_call, default being BlockTag.latest 2022-04-11 09:56:49 +02:00
Mark Spanbroek
ce435f8791 Add Provider.getBlock()
Only returns hash, number and timestamp for now.
2022-03-16 14:20:00 +01:00
Mark Spanbroek
3e507af8cc Move JSON RPC related modules into providers/jsonrpc 2022-02-09 14:50:51 +01:00