import std/unittest import pkg/dagger/stores import ../../examples suite "engine payments": let address = EthAddress.example let amount = 42.u256 var wallet: WalletRef var peer: BlockExcPeerCtx setup: wallet = WalletRef.example peer = BlockExcPeerCtx.example peer.account = Account(address: address).some test "pays for received blocks": let payment = !wallet.pay(peer, amount) let balances = payment.state.outcome.balances(Asset) let destination = address.toDestination check !balances[destination] == amount test "no payment when no account is set": peer.account = Account.none check wallet.pay(peer, amount).isFailure test "uses same channel for consecutive payments": let payment1, payment2 = wallet.pay(peer, amount) let channel1 = payment1.?state.?channel.?getChannelId let channel2 = payment2.?state.?channel.?getChannelId check channel1 == channel2