nim-nitro/tests/nitro/protocol/testChannel.nim
2021-03-09 14:05:32 +01:00

33 lines
946 B
Nim

import pkg/nitro/protocol/abi
import pkg/nimcrypto
import pkg/stew/byteutils
import ../basics
suite "channel definition":
let channel = ChannelDefinition.example
test "calculates channel id":
var encoder= AbiEncoder.init()
encoder.startTuple()
encoder.write(channel.chainId)
encoder.write(channel.participants)
encoder.write(channel.nonce)
encoder.finishTuple()
let encoded = encoder.finish()
let hashed = keccak256.digest(encoded).data
check getChannelId(channel) == Destination(hashed)
test "produces same id as javascript implementation":
let channel = ChannelDefinition(
chainId: 9001.u256,
nonce: 1,
participants: @[
EthAddress.parse("24b905Dcc8A11C0FE57C2592f3D25f0447402C10").get()
]
)
let expected = Destination.parse(
"4f8cce57e9fe88edaab05234972eaf0c2d183e4f6b175aff293375fbe4d5d7cc"
).get()
check getChannelId(channel) == expected