272 Commits

Author SHA1 Message Date
Arnaud
2336db0ffb
Catch JsonRpcProviderError instead of ProviderError 2025-05-20 15:51:20 +02:00
Arnaud
228d18efcc
Call eth_maxPriorityFeePerGas and returns a manual defined maxPriorityFeePerGas as a fallback 2025-05-19 11:32:56 +02:00
Arnaud
d8205e369d
Update after rebase 2025-05-19 10:57:55 +02:00
Arnaud
d4fcb373cf
Restore test to check legacy transaction 2025-05-19 10:52:11 +02:00
Arnaud
09d3fff502
Remove useless specific EIP1559 test because Hardhart support it so all transactions are using EIP1559 by default 2025-05-19 10:52:11 +02:00
Arnaud
92f1932acb
Code style 2025-05-19 10:52:11 +02:00
Arnaud
23de34af23
Allow override maxFeePerGas 2025-05-19 10:52:10 +02:00
Arnaud
2510bec425
Delete gas price when using EIP-1559 2025-05-19 10:52:10 +02:00
Arnaud
8750c66a44
Rename maxFee and maxPriorityFee to use official EIP-1559 names 2025-05-19 10:52:10 +02:00
Arnaud
f71f5bd11b
Improve comment 2025-05-19 10:52:09 +02:00
Arnaud
eb1cb8b7ee
Improve logs 2025-05-19 10:52:09 +02:00
Arnaud
fe7a5bc917
Add EIP-1559 implementation for gas price 2025-05-19 10:52:06 +02:00
Mark Spanbroek
bbced46733
version 2.0.0
Changes:
- supports Nim 2.0.x and 2.2.x
- no longer supports Nim versions 1.6.x
- better handling of async exceptions
- block number can be retrieved from a block tag
- workaround for hardhat websocket subscription timeouts
- supports estimating gas for contract calls
2.0.0
2025-04-15 10:55:57 +02:00
Mark Spanbroek
c85192ae34 Make comments less confusing
(I hope)

Co-Authored-By: Eric <5089238+emizzle@users.noreply.github.com>
2025-04-15 10:45:52 +02:00
Mark Spanbroek
f9d115ae75 Use pending block for gas estimations 2025-04-15 10:45:52 +02:00
Mark Spanbroek
a29e86bfc8 Handle custom errors when estimating gas 2025-04-15 10:45:52 +02:00
Mark Spanbroek
4441050c3d Move contract error handling into its own modules 2025-04-15 10:45:52 +02:00
Mark Spanbroek
e37f454761 Allow for gas estimation of contract calls 2025-04-15 10:45:52 +02:00
Mark Spanbroek
def12bfdc1 Split contract module into several parts 2025-04-15 10:45:52 +02:00
Mark Spanbroek
51aa7bc1b3 Fix asyntest update merge error 2025-04-14 16:03:45 +02:00
Mark Spanbroek
518afa3e4c update asynctest dependency
fixes segfault in Nim 2.2.2
2025-04-14 15:44:04 +02:00
Arnaud
af3d7379c8
chore: add ws resubscription for hardhat workaround (#112)
* Move logFilters to JsonRpcSubscriptions

* Add resubscribe flag

* Add documentation for the resubscribe symbol

* Rename the symbol for better clarity

* Provide better message

* Add nimbledeps to git ignore

* Update wording

* Update wording

* Remove the ws_resubscribe flag from the config

* Handle the concurrency issues when updating the logFilters and add tests

* Update log filters comment

* Add lock when subscribing to blocks

* Remove useless private access

* Fix wording

* Fix try except format

* Restore privateAccess because logEvents moved to JsonRpcSubscriptions

* Use seconds instead of milliseconds

* Remove extra dot in test label

* Restore new lines

* Pass the resubscribe internal in new function and remove unneeded try except

* Remove ws_resubscribe default value making testing easier

* Remove unneeded condition

* Add new line

* Fix nim syntax

* Update symbol description

* Log warning when the resubscription interval is more than 300 seconds

* Catch errors in close method

* Redefine raises for async pragma in close methods

* Provide better error message
2025-04-10 10:48:41 +02:00
Arnaud
7081e6922f
Re-activate styleCheck 2025-03-18 08:42:52 +01:00
Arnaud
5d07b5dbcf
Define raises for async pragma 2025-03-18 08:12:24 +01:00
Eric
b505ef1ab8
Raise SignerError instead of propagating AsyncLockError (#109) 2025-03-13 14:45:31 +11:00
Eric
d2b11a8657
fix(async): propagate async cancellation (#105)
* fix(async): propagate CancelledErrors

* remove CatchableError from contract macro async raises list

* remove mistakenly added ContractError
2025-02-17 20:31:24 +11:00
Arnaud
26342d3e27
Update to nim 2 x (#103)
* Update dependencies for Nim 2.x

* Use refc as memory management and disable styleCheck because of testutils

* Fix ambiguous import

* Change Address init because eth introduced Byte20 type for Address type

* use uint64 instead of init64

* Rename properties after a change in eth to be closer to the spec

* Use Opt type instead of Option

* Add 2.0.12 version to CI

* Increment the version

* Update the Nim version in CI

* Update to Nim 2.0.14

* Use Nim 2.x commit hash for contractabi

* Remove stable on CI because we don't want to test with Nim 2.2.x

* Update Nim minimum version to 2.0.14

* fix version deps

* remove fq typename

* Add debug flag

* Define maximumtaggedversions

* Update readme

---------

Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
2025-02-14 14:18:19 +11:00
Marcin Czenko
0f98528758 adds tests for BlockTag 2024-12-10 17:41:42 +01:00
Marcin Czenko
c7c57113ce adds number getter for BlockTags with number 2024-12-10 17:41:42 +01:00
Adam Uhlíř
037bef0256
chore: fix async raises warnings (#100) 2024-12-09 16:22:25 +01:00
Marcin Czenko
04d3548553
version 1.0.0
This is a braking change. Subscription callbacks wrap the arguments in the Result type.
Corrects the preceding commit marked with wrong version number (0.10.2).
1.0.0
2024-12-02 17:15:42 +01:00
Marcin Czenko
2808a05488
version 0.10.2 2024-11-28 16:15:40 +01:00
Marcin Czenko
5c93971f97 fix the test after rebasing 2024-11-28 16:08:51 +01:00
Marcin Czenko
c0cc437aa2 applies review comments 2024-11-28 16:08:51 +01:00
Marcin Czenko
4642545309 makes sure that a key on subscriptionMapping exists before trying to access it 2024-11-28 16:08:51 +01:00
Adam Uhlíř
d88e4614b1
feat: subscriptions get passed result questionable (#91)
Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
2024-11-28 14:48:10 +01:00
Eric
04c00e2d91
Updates non-versioned deps to their versioned counterparts (#97)
Also bumps ethers patch version
v0.10.1
2024-11-28 13:26:58 +11:00
Mark Spanbroek
1ae2cd4a35
version 0.10.0
This is a breaking change. Calling .confirm(0)
is no longer supported; you need at least 1
confirmation.
0.10.0
2024-11-13 10:14:09 +01:00
Mark Spanbroek
e9d862ceca do not crash when we cannot get block number
Co-Authored-By: Eric <5089238+emizzle@users.noreply.github.com>
2024-11-13 10:09:40 +01:00
Mark Spanbroek
35aebdb46f cleanup 2024-11-13 10:09:40 +01:00
Mark Spanbroek
f15d55f513 do not crash polling when just unsubscribed 2024-11-13 10:09:40 +01:00
Mark Spanbroek
c6a59b5187 resubscribe when error in polling 2024-11-13 10:09:40 +01:00
Mark Spanbroek
5a9895b792 disallow .confirm(0)
reason: it didn't wait for any blocks to be mined,
not even the block that includes the transaction.
2024-11-13 10:09:40 +01:00
Mark Spanbroek
c9275b1f6c cleanup 2024-11-13 10:09:40 +01:00
Mark Spanbroek
40dee9b525 disable chronicles logging in tests 2024-11-13 10:09:40 +01:00
Eric
0ce6abf0fe
fix(nonce): indentation mistake after last merge (#92)
* fix an indentation mistake after last merge

* add assertion to ensure nonce is not populated

* assert populated nonce is populated, not transaction
2024-11-01 16:49:06 +01:00
Adam Uhlíř
80b2ead97c
fix: block filters can be also recreated (#85)
* fix: block filters can be also recreated

* refactor: rename filter to logFilter
2024-10-30 17:26:27 +01:00
Eric
d60cedbb98
chore: bump ethers to forked deps (#89) 2024-10-30 17:12:24 +01:00
Slava
4607817057
ci: add matrix status job (#83) 2024-10-28 15:27:50 +02:00
Eric
6523e70eaf
fix: items(JsonNode) symbol not found (#87)
* chore: export subscriptions

This has a knock-on effect of nim-serde not being imported into subscriptions when JsonRpcProvider.new is called from a consumer that does not export nim-serde.

* import/export serde

* Replace all instances of std/json with pkg/serde
2024-10-28 14:06:20 +11:00