2021-03-09 16:53:15 +01:00
|
|
|
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
|
2021-03-15 11:23:02 +01:00
|
|
|
check channel.upcoming?.state == expectedState.some
|
|
|
|
|
check channel.upcoming?.signatures == expectedSignatures.some
|
|
|
|
|
|