Mark Spanbroek
310b06dfe8
Fix warnings
2023-07-04 12:58:48 +02:00
Mark Spanbroek
cd32dffc73
Move JSON conversion tests into their own module
2023-07-04 12:58:48 +02:00
Mark Spanbroek
09810e73ff
Move `confirm()` override into contract module
...
And simplify its test
2023-07-04 12:58:48 +02: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
a27c2de41c
Close provider by unsubscribing and closing client
2023-07-03 13:09:09 +02:00
Mark Spanbroek
f8cac08cde
Test that subscription stops after call to unsubscribe()
2023-07-03 13:09:09 +02:00
Mark Spanbroek
738d028fe3
Remove websockets url where not needed for tests
2023-07-03 13:09:09 +02:00
Mark Spanbroek
7e346914c0
Test contracts with polling
2023-07-03 13:09:09 +02:00
Mark Spanbroek
76bd3090d1
Fix intermittently failing test
...
eth_getFilterChanges returns the current block for
new subscriptions, which made the test fail.
2023-07-03 13:09:09 +02:00
Mark Spanbroek
1b151d589d
Add polling interval to constructor of provider
2023-07-03 13:09:09 +02:00
Mark Spanbroek
88d60b14b0
Test JSON-RPC Provider with polling
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
beac903a3f
Remove duplication in tests
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
a7dc0ac9eb
Move subscription handling to its own module
2023-07-03 13:09:09 +02:00
Mark Spanbroek
67c2d631d7
Update asynctest to 0.4.0
2023-07-03 13:09:09 +02:00
Mark Spanbroek
f0ac7065ed
Move tests for JSON RPC provider into their own folder
2023-07-03 13:09:09 +02:00
Eric Mastro
34b7a82565
fix: pending blocks may not contains block hash
...
Pending blocks may not contain a block hash and therefore Block.hash should be optional.
2023-07-03 11:29:09 +02:00
Adam Uhlíř
0321e6d7bd
fix: dont export json conversions of jsonrpc ( #44 )
2023-06-19 14:13:44 +02:00
Adam Uhlíř
18e225607c
fix: eth_call use signers address ( #43 )
2023-06-13 16:24:59 +02:00
Mark Spanbroek
1ca90d0b3c
Allow contract calls to override the block tag
2023-04-19 10:03:50 +02:00
Adam Uhlíř
3c12a65769
feat: erc20 module ( #38 )
...
Co-authored-by: Eric Mastro <github@egonat.me>
2023-03-29 13:41:44 +02:00
Mark Spanbroek
a62ea4fb8f
Ensure that `reverts` works with functions with a return type
2022-09-21 10:29:31 +02:00
Mark Spanbroek
c5a40e5f9d
Remove dependency on json-rpc provider for `reverts`
2022-09-21 10:29:31 +02:00
Mark Spanbroek
f545169331
Remove JSON wrapper from error in JSON RPC provider
2022-09-21 10:29:31 +02:00
Mark Spanbroek
cac6026b34
Change `reverts` API
...
- Enables postfix syntax: `call().reverts(reason)`
- Removes doesNotRevert etc; uses `check not` instead
- Removes waitFor(); return Future instead
2022-09-21 10:29:31 +02:00
Eric Mastro
4d7e40eb0e
remove en/decoding for distinct types
...
The changes to `nim-contract-abi` in https://github.com/status-im/nim-contract-abi/pull/5 have allowed for distinct type en/decoding procs to not need to be defined.
2022-09-21 10:27:45 +10:00
Eric Mastro
0adf56c65b
Support distinct types for Event fields
...
Add support for indexed (and non-indexed) Event fields types that are distinct `ValueType` or `SmallByteArray`. For example,
```nim
type
DistinctAlias = distinct array[32, byte]
MyEvent = object of Event
a {.indexed.}: DistinctAlias
b: DistinctAlias # also allowed for non-indexed fields
## The below funcs generally need to be included for ABI
## encoding/decoding purposes when implementing distinct types.
func toArray(value: DistinctAlias): array[32, byte] =
array[32, byte](value)
func encode*(encoder: var AbiEncoder, value: DistinctAlias) =
encoder.write(value.toArray)
func decode*(decoder: var AbiDecoder,
T: type DistinctAlias): ?!T =
let d = ?decoder.read(type array[32, byte])
success DistinctAlias(d)
```
2022-09-21 10:27:45 +10:00
Eric Mastro
e1a1a3805b
remove extra spaces
2022-09-20 13:15:15 +10:00
Eric Mastro
5fe41a76ab
PR comments
...
1. rename helpers to testing and expose externally via `import pkg/ethers/testing`
2. Change detection of revert from `EthersError` to `JsonRpcProviderError`
3, Remove catch of `CatchableError` from revert detection as this would swallow errors. Update tests accordingly.
2022-09-20 13:15:15 +10:00
Eric Mastro
e0ac15b3ba
add revert helpers for testing
...
Add the following helpers to help detect transaction reverts:
1. `reverts`
2. `revertsWith`
3. `doesNotRevert`
4. `doesNotRevertWith`
2022-09-20 13:15:15 +10:00
Mark Spanbroek
c72cdc5573
[wallet] cleanup
2022-08-08 15:07:41 +02:00
Mark Spanbroek
0483e1676a
[provider] Rename sendRawTransaction -> sendTransaction
...
To be consistent with ethers.js
2022-08-08 15:07:41 +02:00
Jackie
cd5165efd0
Fix issues with teardown in wallet tests
2022-08-08 12:40:36 +02:00
Jackie
b72fbb0ed9
small fixes
2022-08-08 12:40:36 +02:00
Jackie
39005a09be
Add TODOs
2022-08-08 12:40:36 +02:00
Jackie
d6c9151103
Add new test for wallet
2022-08-08 12:40:36 +02:00
Jackie
1d89be9d42
Add first tests for wallet
2022-08-08 12:40:36 +02:00
Mark Spanbroek
e9aaea4a5a
Fix intermittent test failure
...
Test would fail with an error when transaction hash
happens to start with 0b; it would then try to to parse
the hash as a binary number.
2022-07-13 09:04:48 +02:00
Mark Spanbroek
083af80dcc
Introduce separate type for transaction overrides
2022-07-13 09:04:48 +02:00
Mark Spanbroek
a7d1944406
Allow for custom transaction properties
2022-07-13 09:04:48 +02:00
Mark Spanbroek
94f5f35a10
Drop support for Nim 1.4.x
...
Only support stable Nim versions 1.2.x and 1.6.x.
2022-06-30 10:52:12 +02:00
Mark Spanbroek
95c5282b8a
Raise EthersError when JSON-RPC fails
2022-06-30 10:52:12 +02:00
Mark Spanbroek
00b511cc9b
Allow enums to be used as function parameters
2022-06-15 10:52:35 +02:00
Mark Spanbroek
9ef6c08072
Handle multiple return types on a contract call
2022-06-14 16:27:43 +02:00
Mark Spanbroek
e61c70f5ba
Fix: handle dynamically sized return values
...
Dynamically sized return values such as strings and
sequences were not decoded as part of a tuple, leading
to a difference in byte representation.
2022-06-08 11:23:01 +02:00
Mark Spanbroek
801bf19157
Remove calls to Option.get
2022-05-25 09:28:15 +02:00
Mark Spanbroek
2653610b6b
Raise EthersError instead of JsonRpcProviderError
2022-05-25 09:28:15 +02:00
Eric Mastro
e6c9b59cfb
chore: add tests for all contract method return types
...
Add tests for non-constant contract method return types:
1. `void`
2. `?TransactionResponse` or `Option[TransactionRepsonse]`
3. `Confirmable`
2022-05-25 09:13:44 +02:00