From 6e7220efbb9ff46ab9d326199cf74797d464a1b0 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Thu, 8 Apr 2021 10:20:35 +0200 Subject: [PATCH] Broadcast pricing --- dagger/bitswap/network.nim | 9 +++++++++ tests/dagger/bitswap/testnetwork.nim | 13 +++++++++++++ 2 files changed, 22 insertions(+) diff --git a/dagger/bitswap/network.nim b/dagger/bitswap/network.nim index 2e294cb0..5a3bbb6d 100644 --- a/dagger/bitswap/network.nim +++ b/dagger/bitswap/network.nim @@ -208,6 +208,15 @@ proc handlePricing(network: BitswapNetwork, return network.handlers.onPricing(peer.id, pricing) +proc broadcastPricing*(network: BitswapNetwork, + id: PeerId, + pricing: Pricing) = + if id notin network.peers: + return + + let message = Message(pricing: PricingMessage.init(pricing)) + asyncSpawn network.peers[id].send(message) + proc handlePayment(network: BitswapNetwork, peer: NetworkPeer, payment: SignedState) = diff --git a/tests/dagger/bitswap/testnetwork.nim b/tests/dagger/bitswap/testnetwork.nim index 685686a3..0dbcad37 100644 --- a/tests/dagger/bitswap/testnetwork.nim +++ b/tests/dagger/bitswap/testnetwork.nim @@ -225,3 +225,16 @@ suite "Bitswap Network - e2e": ))) await done.wait(500.millis) + + test "broadcasts pricing": + let pricing = Pricing.example + + proc handlePricing(peer: PeerID, received: Pricing) = + check received == pricing + done.complete() + + network2.handlers.onPricing = handlePricing + + network1.broadcastPricing(switch2.peerInfo.peerId, pricing) + + await done.wait(100.millis)