Eric Mastro
a3e888128c
feat: Allow contract transactions to be waited on
...
Allow waiting for a specified number of confirmations for contract transactions.
This change only requires an optional TransactionResponse return type to be added to the contract function. This allows the transaction hash to be passed to `.wait`.
For example, previously the `mint` method looked like this without a return value:
```
method mint(token: TestToken, holder: Address, amount: UInt256) {.base, contract.}
```
it still works without a return value, but if we want to wait for a 3 confirmations, we can now define it like this:
```
method mint(token: TestToken, holder: Address, amount: UInt256): ?TransactionResponse {.base, contract.}
```
and use like this:
```
let receipt = await token.connect(signer0)
.mint(accounts[1], 100.u256)
.wait(3) # wait for 3 confirmations
```
2022-05-23 11:27:26 +10: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
0549800af6
version 0.1.6
2022-05-17 19:28:52 +02:00
Mark Spanbroek
fc0d5c4121
Release memory when unsubscribe fails
...
Ensures that even when a call to the ethereum node to
unsubscribe fails, it will release the memory associated
with the subscription, including the subscription handler
closure.
2022-05-17 19:28:37 +02:00
Mark Spanbroek
bbf133725f
Subscribe to new blocks
2022-05-17 09:08:02 +02:00
Mark Spanbroek
82043c2fcc
Generalize JSON-RPC subscription table
...
Allows for other types of subscriptions, not just logs.
2022-05-17 09:08:02 +02:00
Mark Spanbroek
8c45babcdf
version 0.1.5
2022-04-19 17:57:16 +02:00
Mark Spanbroek
60f8749ca3
Fix crash when connection fails
...
Removes asyncSpawn call to handleSubscriptions(), to ensure
that when the RpcClient can't connect, we don't crash.
2022-04-19 17:57:16 +02:00
Mark Spanbroek
a0dca2674d
version 0.1.4
2022-04-13 10:10:53 +02:00
Mark Spanbroek
e3d5ce5122
Fix decoding of events with dynamic arguments
...
Such as byte sequences or strings.
2022-04-13 10:10:53 +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
ac74b91f11
version 0.1.3
2022-03-29 10:48:00 +02:00
Mark Spanbroek
c49a9cbae9
Decode indexed event parameters bytes1 up to bytes32
2022-03-29 10:48:00 +02:00
Mark Spanbroek
fc8af1117c
version 0.1.2
2022-03-17 10:30:42 +01:00
Mark Spanbroek
f3cf1c722e
Export JSON conversions
...
Invoking JsonRpcProvider.send() requires
conversion of arguments to JSON and conversion
of result from JSON.
2022-03-17 10:30:42 +01:00
Mark Spanbroek
c53d2235e6
Fix method signature
2022-03-17 10:30:42 +01:00
Mark Spanbroek
acc4fc25e6
version 0.1.1
2022-03-16 14:20:56 +01: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
5cc1f4b71d
Add documentation about events
2022-02-09 14:50:51 +01:00
Mark Spanbroek
72ccb57b98
Fix for Nim 1.2.x
2022-02-09 14:50:51 +01:00
Mark Spanbroek
08becf42bf
Fix for Nim 1.4.x
2022-02-09 14:50:51 +01:00
Mark Spanbroek
3e507af8cc
Move JSON RPC related modules into providers/jsonrpc
2022-02-09 14:50:51 +01:00
Mark Spanbroek
ff5a35aac0
Define and subscribe to solidity events
2022-02-09 14:50:51 +01:00
Mark Spanbroek
21f98c4086
Event decoding from data and topics
2022-02-09 14:50:51 +01:00
Mark Spanbroek
27d6e89672
Fix CI
2022-01-27 10:07:52 +01:00
Mark Spanbroek
3940233bc9
Add Readme
2022-01-26 17:58:51 +01:00
Mark Spanbroek
3505149381
Remove {.constant.} pragma
...
Has not been allowed in Solidity since 0.5.0.
2022-01-26 17:58:51 +01:00
Mark Spanbroek
d4d0925c3e
Add CI script
2022-01-26 17:58:51 +01:00
Mark Spanbroek
062b367f32
Ensure that tests run on Nim 1.2.x
2022-01-26 17:58:51 +01:00
Mark Spanbroek
9eee20e49d
Add Contract.connect()
2022-01-26 12:23:30 +01:00
Mark Spanbroek
1e767b2107
Add Signer.signMessage()
2022-01-26 11:21:28 +01:00
Mark Spanbroek
e833c08303
Additional tests for contract macro
2022-01-26 10:38:17 +01:00
Mark Spanbroek
fec6bdc581
Cleanup
2022-01-26 10:31:54 +01:00
Mark Spanbroek
e4224a1241
Allow calls to non-constant functions
2022-01-25 17:29:01 +01:00
Mark Spanbroek
82116d3b14
Add eth_sendTransaction()
2022-01-25 15:08:35 +01:00
Mark Spanbroek
b639e367c0
Reset EVM in between tests
2022-01-25 15:08:35 +01:00
Mark Spanbroek
6bd3e27e38
Add Signer.populateTransaction()
2022-01-25 10:25:09 +01:00
Mark Spanbroek
4acc6ef45c
Add Signer.getChainId()
2022-01-24 17:29:25 +01:00
Mark Spanbroek
7e32f5ee51
Add Signer.estimateGas()
2022-01-24 14:40:47 +01:00
Mark Spanbroek
30bea4759c
Adds Signer.getTransactionCount()
2022-01-24 12:14:31 +01:00
Mark Spanbroek
54c66db827
Adds Signer.getGasPrice()
2022-01-24 12:12:52 +01:00
Mark Spanbroek
94dcc171af
Introduces JsonRpcSigner
2022-01-20 14:39:37 +01:00
Mark Spanbroek
2140084d97
Allow contract procs to be exported
2022-01-20 14:00:28 +01:00
Mark Spanbroek
04ff046553
Introduce Contract abstraction
2022-01-20 12:56:18 +01:00
Mark Spanbroek
b965599a47
Use Address implementation from contractabi
2022-01-20 12:55:14 +01:00
Mark Spanbroek
609578190b
Ethereum test node deploys ERC20 token
2022-01-20 12:44:35 +01:00
Mark Spanbroek
177ed78d65
Ensure that no unexpected exceptions are raised
2022-01-18 14:51:53 +01:00
Mark Spanbroek
7bc102a421
Provider.getBlockNumber()
2022-01-18 14:26:41 +01:00
Mark Spanbroek
bd20199f87
Send raw messages to the provider
2022-01-18 14:24:46 +01:00
Mark Spanbroek
8dd84b0622
Use Address type in RPC call signature
2022-01-18 12:42:58 +01:00