nim-nitro/tests/nitro/testWallet.nim
2021-03-15 11:23:02 +01:00

24 lines
768 B
Nim

import ./basics
suite "nitro wallet":
let key = PrivateKey.random()
let asset = EthAddress.example
let amount = 42.u256
test "wallet can be created from private key":
let wallet = Wallet.init(key)
check wallet.address == key.toPublicKey.toAddress
test "opens ledger channel":
let wallet = Wallet.init(key)
let me = wallet.address.toDestination
let channel = wallet.openLedger(asset, amount)
let expectedOutcome = Outcome.init(asset, {me: amount})
let expectedState = State(outcome: expectedOutcome)
let expectedSignatures = @{wallet.address: key.sign(expectedState)}
check channel.latest.isNone
check channel.upcoming?.state == expectedState.some
check channel.upcoming?.signatures == expectedSignatures.some