105 Commits

Author SHA1 Message Date
Eric
11ff6cd98b
Add TransactionType
Add transactionType and chainId to PastTransaction, so they can be sent along with replayed txs
2023-10-25 10:51:57 +11:00
Eric
24f1f86dc9
Update retreival of revert reason to send a populated transaction, add working test 2023-10-25 10:51:57 +11:00
Eric
affaa2e621
Add test to see if hardhat returns reason string (it doesn't) 2023-10-25 10:51:57 +11:00
Eric
a6aeb7ec49
add serialization for PastTransaction 2023-10-25 10:51:57 +11:00
Eric
35f80e78fe
Add PastTransaction with serialization and tests, clean up revertReason fetching 2023-10-25 10:51:57 +11:00
Eric
f52ce98c6d
Revert Transaction.data being optional, add better deserialization for Transaction object 2023-10-25 10:51:57 +11:00
Eric
458e969397
Make Transaction.data optional
eth_getTransactionByHash responses from geth don't include data, and there was an exception raised, "key not found: data"
2023-10-25 10:51:56 +11:00
Eric
a4fd152c8c
Add replay for failed txs to get revert reason 2023-10-25 10:51:56 +11:00
Eric
7686ef4d1a
include nonce in JsonRpcProviderError
This would allow applications to use the nonce in case of an error, eg cancel the transaction to prevent stuck txs from occurring
2023-10-25 10:51:56 +11:00
Eric
28125532e1
clean up 2023-10-25 10:51:31 +11:00
Eric
e80cc11c48
temp fix until revert reason fetching comes in 2023-10-25 10:51:31 +11:00
Eric
90022eeab6
clean up from rebase 2023-10-25 10:51:31 +11:00
Eric
d88158c99a
PR feedback: remove auto-cancellation of failed transactions
- remove auto-cancellation of failed transaction (failed during estimate gas) to prevent stuck txs
- replace it with an async lock during nonce sequencing + gas estimation
- simplified cancelTransaction (still exported) such that the new transaction is populated using populateTransaction, so that all gas and fees are reset
- moved reverting contract function into its own testing helpers module, and refactored any tests to use it
- updated the test helper reverts to check EstimateGasErrors
2023-10-25 10:51:31 +11:00
Eric
1862c9eea6
Only cancels transactions if nonce has been incremented since the last estimateGas failure 2023-10-25 10:49:52 +11:00
Eric
9ffc1763e4
cancel transaction after estimateGas failure 2023-10-25 10:46:32 +11:00
Eric
7eac8410af
prevent stuck transactions by async locking nonce sequencing (+ estimate gas) (#55)
- async lock during nonce sequencing + gas estimation
- simplified cancelTransaction (still exported) such that the new transaction is populated using populateTransaction, so that all gas and fees are reset
- moved reverting contract function into its own testing helpers module, and refactored any tests to use it
- updated the test helper reverts to check EstimateGasErrors
- combine ensureNonceSequence into populateTransaction
2023-10-25 10:42:25 +11:00
Adam Uhlíř
620b402a7d
feat: (de/in)crease allowance (#56) 2023-10-16 10:23:58 +02:00
Eric
f0303473f6
Increment nonce count when populating transaction (#54)
Increment nonce count when populating transaction

Co-authored-by: markspanbroek <mark@spanbroek.net>
2023-09-15 09:54:08 +10:00
Mark Spanbroek
15ed76ebed Use Result to return error when wallet creation fails
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2023-09-13 10:11:18 +02:00
Mark Spanbroek
81ec482fca Wallet: handle invalid key when instantiating new wallet 2023-09-13 10:11:18 +02: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
5f820fc971 Cleanup 2023-07-05 15:08:35 +02:00
Mark Spanbroek
2b181aa0f7 Allow wallet to be instantiated with a PrivateKey 2023-07-05 15:08:35 +02:00
Mark Spanbroek
5ed3f15706 Return transaction response for ERC20 functions
Allows callers to wait for confirmation of the
transaction
2023-07-05 15:08:22 +02:00
Mark Spanbroek
c89701016a Fix EIP-155 signatures 2023-07-05 15:07:52 +02:00
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