From 5160b267b69d75409ed31f33e4093756528ebecf Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Mon, 19 Apr 2021 16:37:38 +0200 Subject: [PATCH] Use reference semantics for wallets --- dagger/bitswap.nim | 2 +- dagger/bitswap/engine.nim | 4 ++-- dagger/bitswap/engine/payments.nim | 6 +++--- tests/dagger/bitswap/engine/testpayments.nim | 4 ++-- tests/dagger/bitswap/testbitswap.nim | 6 +++--- tests/dagger/bitswap/testengine.nim | 8 ++++---- tests/dagger/bitswap/utils.nim | 2 +- tests/dagger/examples.nim | 3 +++ 8 files changed, 19 insertions(+), 16 deletions(-) diff --git a/dagger/bitswap.nim b/dagger/bitswap.nim index 31d8316f..bd6b43b8 100644 --- a/dagger/bitswap.nim +++ b/dagger/bitswap.nim @@ -104,7 +104,7 @@ method putBlocks*(b: Bitswap, blocks: seq[bt.Block]) = proc new*( T: type Bitswap, localStore: BlockStore, - wallet: Wallet, + wallet: WalletRef, network: BitswapNetwork, concurrentTasks = DefaultConcurrentTasks, maxRetries = DefaultMaxRetries, diff --git a/dagger/bitswap/engine.nim b/dagger/bitswap/engine.nim index acdd6bdb..31c63e70 100644 --- a/dagger/bitswap/engine.nim +++ b/dagger/bitswap/engine.nim @@ -46,7 +46,7 @@ type peersPerRequest: int # max number of peers to request from scheduleTask*: TaskScheduler # schedule a new task with the task runner request*: BitswapRequest # bitswap network requests - wallet*: Wallet # nitro wallet for micropayments + wallet*: WalletRef # nitro wallet for micropayments pricing*: ?Pricing # optional bandwidth pricing proc contains*(a: AsyncHeapQueue[Entry], b: Cid): bool = @@ -342,7 +342,7 @@ proc taskHandler*(b: BitswapEngine, task: BitswapPeerCtx) {.gcsafe, async.} = proc new*( T: type BitswapEngine, localStore: BlockStore, - wallet: Wallet, + wallet: WalletRef, request: BitswapRequest = BitswapRequest(), scheduleTask: TaskScheduler = nil, peersPerRequest = DefaultMaxPeersPerRequest): T = diff --git a/dagger/bitswap/engine/payments.nim b/dagger/bitswap/engine/payments.nim index ecb61835..f4e52527 100644 --- a/dagger/bitswap/engine/payments.nim +++ b/dagger/bitswap/engine/payments.nim @@ -12,12 +12,12 @@ push: {.upraises: [].} const ChainId = 0.u256 # invalid chain id for now const AmountPerChannel = (10'u64^18).u256 # 1 asset, ERC20 default is 18 decimals -func openLedgerChannel*(wallet: var Wallet, +func openLedgerChannel*(wallet: WalletRef, hub: EthAddress, asset: EthAddress): ?!ChannelId = wallet.openLedgerChannel(hub, ChainId, asset, AmountPerChannel) -func getOrOpenChannel(wallet: var Wallet, peer: BitswapPeerCtx): ?!ChannelId = +func getOrOpenChannel(wallet: WalletRef, peer: BitswapPeerCtx): ?!ChannelId = if channel =? peer.paymentChannel: success channel elif pricing =? peer.pricing: @@ -27,7 +27,7 @@ func getOrOpenChannel(wallet: var Wallet, peer: BitswapPeerCtx): ?!ChannelId = else: failure "no pricing set for peer" -func pay*(wallet: var Wallet, +func pay*(wallet: WalletRef, peer: BitswapPeerCtx, amountOfBytes: int): ?!SignedState = if pricing =? peer.pricing: diff --git a/tests/dagger/bitswap/engine/testpayments.nim b/tests/dagger/bitswap/engine/testpayments.nim index 8dec9c27..acc72a5a 100644 --- a/tests/dagger/bitswap/engine/testpayments.nim +++ b/tests/dagger/bitswap/engine/testpayments.nim @@ -6,11 +6,11 @@ suite "engine payments": let amountOfBytes = 42 - var wallet: Wallet + var wallet: WalletRef var peer: BitswapPeerCtx setup: - wallet = Wallet.example + wallet = WalletRef.example peer = BitswapPeerCtx.example peer.pricing = Pricing.example.some diff --git a/tests/dagger/bitswap/testbitswap.nim b/tests/dagger/bitswap/testbitswap.nim index b04d6bb8..c228e1e7 100644 --- a/tests/dagger/bitswap/testbitswap.nim +++ b/tests/dagger/bitswap/testbitswap.nim @@ -28,7 +28,7 @@ suite "Bitswap engine - 2 nodes": var switch1, switch2: Switch - wallet1, wallet2: Wallet + wallet1, wallet2: WalletRef pricing1, pricing2: Pricing network1, network2: BitswapNetwork bitswap1, bitswap2: Bitswap @@ -42,8 +42,8 @@ suite "Bitswap engine - 2 nodes": switch1 = newStandardSwitch() switch2 = newStandardSwitch() - wallet1 = Wallet.example - wallet2 = Wallet.example + wallet1 = WalletRef.example + wallet2 = WalletRef.example pricing1 = Pricing.example pricing2 = Pricing.example awaiters.add(await switch1.start()) diff --git a/tests/dagger/bitswap/testengine.nim b/tests/dagger/bitswap/testengine.nim index 529df81c..cbdd7e75 100644 --- a/tests/dagger/bitswap/testengine.nim +++ b/tests/dagger/bitswap/testengine.nim @@ -23,7 +23,7 @@ suite "Bitswap engine basic": peerId = PeerID.init(seckey.getKey().tryGet()).tryGet() chunker = newRandomChunker(Rng.instance(), size = 1024, chunkSize = 256) blocks = chunker.mapIt( bt.Block.new(it) ) - wallet = Wallet.example + wallet = WalletRef.example var done: Future[void] @@ -76,7 +76,7 @@ suite "Bitswap engine handlers": peerId = PeerID.init(seckey.getKey().tryGet()).tryGet() chunker = newRandomChunker(Rng.instance(), size = 1024, chunkSize = 256) blocks = chunker.mapIt( bt.Block.new(it) ) - wallet = Wallet.example + wallet = WalletRef.example var engine: BitswapEngine @@ -181,7 +181,7 @@ suite "Bitswap engine blocks": rng = Rng.instance() chunker = newRandomChunker(Rng.instance(), size = 2048, chunkSize = 256) blocks = chunker.mapIt( bt.Block.new(it) ) - wallet = Wallet.example + wallet = WalletRef.example var engine: BitswapEngine @@ -274,7 +274,7 @@ suite "Task Handler": rng = Rng.instance() chunker = newRandomChunker(Rng.instance(), size = 2048, chunkSize = 256) blocks = chunker.mapIt( bt.Block.new(it) ) - wallet = Wallet.example + wallet = WalletRef.example var engine: BitswapEngine diff --git a/tests/dagger/bitswap/utils.nim b/tests/dagger/bitswap/utils.nim index 5dd5002c..a3eca793 100644 --- a/tests/dagger/bitswap/utils.nim +++ b/tests/dagger/bitswap/utils.nim @@ -19,7 +19,7 @@ proc generateNodes*( for i in 0..