2022-01-20 13:39:37 +00:00
|
|
|
import pkg/asynctest
|
|
|
|
import pkg/ethers
|
2022-01-24 13:40:47 +00:00
|
|
|
import ./examples
|
2022-01-20 13:39:37 +00:00
|
|
|
|
|
|
|
suite "JsonRpcSigner":
|
|
|
|
|
|
|
|
var provider: JsonRpcProvider
|
2022-01-24 11:14:31 +00:00
|
|
|
var accounts: seq[Address]
|
2022-01-20 13:39:37 +00:00
|
|
|
|
|
|
|
setup:
|
|
|
|
provider = JsonRpcProvider.new()
|
2022-01-24 11:14:31 +00:00
|
|
|
accounts = await provider.listAccounts()
|
2022-01-20 13:39:37 +00:00
|
|
|
|
|
|
|
test "is connected to the first account of the provider by default":
|
|
|
|
let signer = provider.getSigner()
|
2022-01-24 11:14:31 +00:00
|
|
|
check (await signer.getAddress()) == accounts[0]
|
2022-01-20 13:39:37 +00:00
|
|
|
|
|
|
|
test "can connect to a different account":
|
2022-01-24 11:14:31 +00:00
|
|
|
let signer = provider.getSigner(accounts[1])
|
|
|
|
check (await signer.getAddress()) == accounts[1]
|
2022-01-24 11:12:52 +00:00
|
|
|
|
|
|
|
test "can retrieve gas price":
|
|
|
|
let signer = provider.getSigner()
|
|
|
|
let gasprice = await signer.getGasPrice()
|
|
|
|
check gasprice > 0.u256
|
2022-01-24 11:14:31 +00:00
|
|
|
|
|
|
|
test "can retrieve transaction count":
|
|
|
|
let signer = provider.getSigner(accounts[9])
|
|
|
|
let count = await signer.getTransactionCount(BlockTag.pending)
|
|
|
|
check count == 0.u256
|
2022-01-24 13:40:47 +00:00
|
|
|
|
|
|
|
test "can estimate gas cost of a transaction":
|
|
|
|
let signer = provider.getSigner()
|
|
|
|
let estimate = await signer.estimateGas(Transaction.example)
|
|
|
|
check estimate > 0.u256
|
2022-01-24 16:29:25 +00:00
|
|
|
|
|
|
|
test "can retrieve chain id":
|
|
|
|
let signer = provider.getSigner()
|
|
|
|
let chainId = await signer.getChainId()
|
|
|
|
check chainId == 31337.u256 # hardhat chain id
|