mirror of
https://github.com/logos-storage/nim-nitro.git
synced 2026-01-02 13:43:06 +00:00
Update to questionable 0.5.0
This commit is contained in:
parent
f7d06a995b
commit
2ac173f87c
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user