nim-ethers/ethers/signer.nim

31 lines
1004 B
Nim
Raw Normal View History

2022-01-20 13:39:37 +00:00
import ./basics
2022-01-24 11:12:52 +00:00
import ./provider
2022-01-20 13:39:37 +00:00
export basics
type Signer* = ref object of RootObj
2022-01-24 11:12:52 +00:00
method provider*(signer: Signer): Provider {.base.} =
2022-01-20 13:39:37 +00:00
doAssert false, "not implemented"
2022-01-24 11:12:52 +00:00
method getAddress*(signer: Signer): Future[Address] {.base.} =
doAssert false, "not implemented"
method getGasPrice*(signer: Signer): Future[UInt256] {.base.} =
signer.provider.getGasPrice()
2022-01-24 11:14:31 +00:00
method getTransactionCount*(signer: Signer,
blockTag = BlockTag.latest):
Future[UInt256] {.base, async.} =
let address = await signer.getAddress()
return await signer.provider.getTransactionCount(address, blockTag)
2022-01-24 13:40:47 +00:00
method estimateGas*(signer: Signer,
transaction: Transaction): Future[UInt256] {.base, async.} =
var transaction = transaction
transaction.sender = some(await signer.getAddress)
return await signer.provider.estimateGas(transaction)
2022-01-24 16:29:25 +00:00
method getChainId*(signer: Signer): Future[UInt256] {.base.} =
signer.provider.getChainId()