diff --git a/nitro.nimble b/nitro.nimble index 59c079d..d4f5284 100644 --- a/nitro.nimble +++ b/nitro.nimble @@ -1,11 +1,11 @@ -version = "0.1.0" +version = "0.2.0" author = "Nim Nitro developers" license = "MIT" description = "Nitro state channels" requires "nim >= 1.2.6 & < 2.0.0" requires "nimcrypto >= 0.5.4 & < 0.6.0" -requires "questionable >= 0.4.3 & < 0.5.0" +requires "questionable >= 0.5.0 & < 0.6.0" requires "upraises >= 0.1.0 & < 0.2.0" requires "secp256k1" requires "stint" diff --git a/nitro/protocol/signature.nim b/nitro/protocol/signature.nim index a3e0e63..843502a 100644 --- a/nitro/protocol/signature.nim +++ b/nitro/protocol/signature.nim @@ -32,7 +32,7 @@ func recover(signature: Signature, hash: array[32, byte]): ?EthPublicKey = func recover*(signature: Signature, state: State): ?EthAddress = let hash = hashMessage(hashState(state)) - recover(signature, hash)?.toAddress + recover(signature, hash).?toAddress func verify*(signature: Signature, state: State, signer: EthAddress): bool = recover(signature, state) == signer.some diff --git a/nitro/wallet/wallet.nim b/nitro/wallet/wallet.nim index 0879e3b..f5a9f68 100644 --- a/nitro/wallet/wallet.nim +++ b/nitro/wallet/wallet.nim @@ -70,13 +70,13 @@ func acceptChannel*(wallet: var Wallet, signed: SignedState): ?!ChannelId = wallet.createChannel(signed) func latestSignedState*(wallet: Wallet, channel: ChannelId): ?SignedState = - wallet.channels?[channel] + wallet.channels.?[channel] func state*(wallet: Wallet, channel: ChannelId): ?State = - wallet.latestSignedState(channel)?.state + wallet.latestSignedState(channel).?state func signatures*(wallet: Wallet, channel: ChannelId): ?seq[Signature] = - wallet.latestSignedState(channel)?.signatures + wallet.latestSignedState(channel).?signatures func signature*(wallet: Wallet, channel: ChannelId, @@ -92,7 +92,7 @@ func balance(state: State, asset: EthAddress, destination: Destination): UInt256 = if balances =? state.outcome.balances(asset): - if balance =? (balances?[destination]): + if balance =? balances.?[destination]: balance else: 0.u256 @@ -140,7 +140,7 @@ func pay*(wallet: var Wallet, ?balances.move(wallet.destination, receiver, amount) state.outcome.update(asset, balances) wallet.updateChannel(SignedState(state: state)) - ok(wallet.channels?[channel].get) + ok(wallet.channels.?[channel].get) else: SignedState.failure "asset not found" else: @@ -178,7 +178,7 @@ func acceptPayment*(wallet: var Wallet, return void.failure "missing signature on payment" if updatedBalances =? payment.state.outcome.balances(asset): - var expectedState: State = wallet.channels?[channel]?.state.get + var expectedState: State = wallet.channels.?[channel].?state.get expectedState.outcome.update(asset, updatedBalances) if payment.state != expectedState: return void.failure "payment has unexpected changes in state" diff --git a/tests/nitro/testWallet.nim b/tests/nitro/testWallet.nim index 917f759..9939516 100644 --- a/tests/nitro/testWallet.nim +++ b/tests/nitro/testWallet.nim @@ -114,8 +114,8 @@ suite "wallet: making payments": wallet = Wallet.init(key) channel = wallet.openLedgerChannel(hub, chainId, nonce, asset, 42.u256).get let updated = wallet.pay(channel, asset, hub, 1.u256).option - check updated?.state == wallet.state(channel) - check updated?.signatures == wallet.signatures(channel) + check updated.?state == wallet.state(channel) + check updated.?signatures == wallet.signatures(channel) test "payment fails when channel not found": wallet = Wallet.init(key)