diff --git a/dagger.nimble b/dagger.nimble index 30274dc7..7bbaf533 100644 --- a/dagger.nimble +++ b/dagger.nimble @@ -13,7 +13,7 @@ requires "nim >= 1.2.6", "secp256k1", "stew#head", "protobufserialization >= 0.2.0 & < 0.3.0", - "https://github.com/status-im/nim-nitro >= 0.2.0 & < 0.3.0", - "questionable >= 0.5.0 & < 0.6.0", + "https://github.com/status-im/nim-nitro >= 0.4.0 & < 0.5.0", + "questionable >= 0.7.0 & < 0.8.0", "upraises >= 0.1.0 & < 0.2.0", "asynctest >= 0.2.1 & < 0.3.0" diff --git a/dagger/bitswap/engine.nim b/dagger/bitswap/engine.nim index bfaf5846..acdd6bdb 100644 --- a/dagger/bitswap/engine.nim +++ b/dagger/bitswap/engine.nim @@ -284,8 +284,8 @@ proc setupPeer*(b: BitswapEngine, peer: PeerID) = if b.wantList.len > 0: b.request.sendWantList(peer, b.wantList, full = true) - if b.pricing.isSome: - b.request.sendPricing(peer, b.pricing.get) + if pricing =? b.pricing: + b.request.sendPricing(peer, pricing) proc dropPeer*(b: BitswapEngine, peer: PeerID) = ## Cleanup disconnected peer diff --git a/dagger/bitswap/engine/payments.nim b/dagger/bitswap/engine/payments.nim index 3fff6aa2..ecb61835 100644 --- a/dagger/bitswap/engine/payments.nim +++ b/dagger/bitswap/engine/payments.nim @@ -19,13 +19,13 @@ func openLedgerChannel*(wallet: var Wallet, func getOrOpenChannel(wallet: var Wallet, peer: BitswapPeerCtx): ?!ChannelId = if channel =? peer.paymentChannel: - channel.success + success channel elif pricing =? peer.pricing: let channel = ?wallet.openLedgerChannel(pricing.address, pricing.asset) peer.paymentChannel = channel.some - channel.success + success channel else: - ChannelId.failure "no pricing set for peer" + failure "no pricing set for peer" func pay*(wallet: var Wallet, peer: BitswapPeerCtx, @@ -37,4 +37,4 @@ func pay*(wallet: var Wallet, let channel = ?wallet.getOrOpenChannel(peer) wallet.pay(channel, asset, receiver, amount) else: - SignedState.failure "no pricing set for peer" + failure "no pricing set for peer" diff --git a/tests/dagger/bitswap/engine/testpayments.nim b/tests/dagger/bitswap/engine/testpayments.nim index c66a7e74..8dec9c27 100644 --- a/tests/dagger/bitswap/engine/testpayments.nim +++ b/tests/dagger/bitswap/engine/testpayments.nim @@ -15,15 +15,15 @@ suite "engine payments": peer.pricing = Pricing.example.some test "pays for received bytes": - let payment = wallet.pay(peer, amountOfBytes).get - let pricing = peer.pricing.get + let payment = !wallet.pay(peer, amountOfBytes) + let pricing = !peer.pricing let balances = payment.state.outcome.balances(pricing.asset) let destination = pricing.address.toDestination - check balances[destination].get == amountOfBytes.u256 * pricing.price + check !balances[destination] == amountOfBytes.u256 * pricing.price test "no payment when no price is set": peer.pricing = Pricing.none - check wallet.pay(peer, amountOfBytes).isErr + check wallet.pay(peer, amountOfBytes).isFailure test "uses same channel for consecutive payments": let payment1, payment2 = wallet.pay(peer, amountOfBytes) diff --git a/tests/dagger/bitswap/testengine.nim b/tests/dagger/bitswap/testengine.nim index 45d994d5..529df81c 100644 --- a/tests/dagger/bitswap/testengine.nim +++ b/tests/dagger/bitswap/testengine.nim @@ -155,7 +155,7 @@ suite "Bitswap engine handlers": engine.request.sendPayment = proc(receiver: PeerID, payment: SignedState) = let amount = blocks.mapIt(it.data.len).foldl(a+b).u256 * pricing.price - let balances = payment.state.outcome.balances(pricing.asset).get + let balances = !payment.state.outcome.balances(pricing.asset) check receiver == peerId check balances[pricing.address.toDestination] == amount done.complete()