Commit Graph

200 Commits

Author SHA1 Message Date
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 0674548ecc Update contractabi to 0.5.0 2023-07-03 13:09:09 +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 f8cac08cde Test that subscription stops after call to unsubscribe() 2023-07-03 13:09:09 +02:00
Mark Spanbroek ceedf03c82 Subscriptions now also supported with http url 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 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 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 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 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 127c9c9b0d Formatting 2023-07-03 13:09:09 +02:00
Mark Spanbroek 16fa0cfcf8 Use new subscription handling in JSON RPC provider 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
Mark Spanbroek 0b951ce146 Set correct content-type for JSON-RPC 2023-07-03 11:29:31 +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 5a4f786757 version 0.2.5 2023-04-19 10:06:04 +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
Ben Bierens 577e02b8a2
enables stylecheck (#36)
* enables stylecheck

* applies style check

* Applying style check

* uses alias to fix ambiguity
2023-03-09 10:58:54 +01:00
Mark Spanbroek e462649aec version 0.2.4 2022-11-10 10:22:24 +01:00
Mark Spanbroek e8592bb922 Remove unnecessary error check 2022-09-21 10:29:31 +02:00
Mark Spanbroek 7d2acd65e8 Fix imports 2022-09-21 10:29:31 +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
Mark Spanbroek d001ee8e01 Use `solidityType()` to check indexed event parameter 2022-09-21 10:27:45 +10:00
Eric Mastro fc3cc9c577 version 0.2.3, bump contractabi 2022-09-21 10:27:45 +10:00
Eric Mastro bbabee3727 update contractabi dependency to support distinct 2022-09-21 10:27:45 +10:00
Eric Mastro 8a484299e6 Remove en/decoding advice from readme 2022-09-21 10:27:45 +10: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 01d277f801 version 0.2.2 2022-09-21 10:27:45 +10:00
Eric Mastro 31ffc8992f Update compile time check to use when 2022-09-21 10:27:45 +10:00
Eric Mastro ae2d33aacd Support 1.2.16 distinctBase compilation error 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