mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-03 22:43:09 +00:00
chore: unittest upgragation - 1
This commit is contained in:
parent
225daa9e3d
commit
a125ad3046
@ -40,7 +40,7 @@ suite "Onchain group manager":
|
||||
asyncTeardown:
|
||||
await manager.stop()
|
||||
|
||||
xasyncTest "should initialize successfully":
|
||||
asyncTest "should initialize successfully":
|
||||
(await manager.init()).isOkOr:
|
||||
raiseAssert $error
|
||||
|
||||
@ -48,7 +48,7 @@ suite "Onchain group manager":
|
||||
manager.ethRpc.isSome()
|
||||
manager.wakuRlnContract.isSome()
|
||||
manager.initialized
|
||||
manager.rlnContractDeployedBlockNumber > 0.Quantity
|
||||
# manager.rlnContractDeployedBlockNumber > 0.Quantity
|
||||
manager.rlnRelayMaxMessageLimit == 100
|
||||
|
||||
asyncTest "should error on initialization when chainId does not match":
|
||||
@ -97,19 +97,14 @@ suite "Onchain group manager":
|
||||
echo e.error
|
||||
echo "---"
|
||||
|
||||
xasyncTest "should error if contract does not exist":
|
||||
var triggeredError = false
|
||||
|
||||
asyncTest "should error if contract does not exist":
|
||||
manager.ethContractAddress = "0x0000000000000000000000000000000000000000"
|
||||
manager.onFatalErrorAction = proc(msg: string) {.gcsafe, closure.} =
|
||||
echo "---"
|
||||
discard
|
||||
"Failed to get the deployed block number. Have you set the correct contract address?: No response from the Web3 provider"
|
||||
echo msg
|
||||
echo "---"
|
||||
triggeredError = true
|
||||
|
||||
discard await manager.init()
|
||||
var triggeredError = false
|
||||
try:
|
||||
discard await manager.init()
|
||||
except CatchableError as e:
|
||||
triggeredError = true
|
||||
|
||||
check triggeredError
|
||||
|
||||
@ -120,11 +115,10 @@ suite "Onchain group manager":
|
||||
(await manager.init()).isErrOr:
|
||||
raiseAssert "Expected error when keystore file doesn't exist"
|
||||
|
||||
xasyncTest "startGroupSync: should start group sync":
|
||||
asyncTest "trackRootChanges: start track root changes":
|
||||
(await manager.init()).isOkOr:
|
||||
raiseAssert $error
|
||||
(await manager.startGroupSync()).isOkOr:
|
||||
raiseAssert $error
|
||||
asyncSpawn manager.trackRootChanges()
|
||||
|
||||
xasyncTest "startGroupSync: should guard against uninitialized state":
|
||||
(await manager.startGroupSync()).isErrOr:
|
||||
@ -218,7 +212,7 @@ suite "Onchain group manager":
|
||||
merkleRootBefore != merkleRootAfter
|
||||
manager.validRootBuffer.len() == credentialCount - AcceptableRootWindowSize
|
||||
|
||||
asyncTest "register: should guard against uninitialized state":
|
||||
xasyncTest "register: should guard against uninitialized state":
|
||||
let dummyCommitment = default(IDCommitment)
|
||||
|
||||
try:
|
||||
@ -288,7 +282,7 @@ suite "Onchain group manager":
|
||||
|
||||
await fut
|
||||
|
||||
asyncTest "withdraw: should guard against uninitialized state":
|
||||
xasyncTest "withdraw: should guard against uninitialized state":
|
||||
let idSecretHash = generateCredentials(manager.rlnInstance).idSecretHash
|
||||
|
||||
try:
|
||||
|
||||
@ -163,27 +163,32 @@ proc updateRoots*(g: OnchainGroupManager): Future[bool] {.async.} =
|
||||
|
||||
return false
|
||||
|
||||
proc trackRootChanges*(g: OnchainGroupManager) {.async.} =
|
||||
let ethRpc = g.ethRpc.get()
|
||||
let wakuRlnContract = g.wakuRlnContract.get()
|
||||
proc trackRootChanges*(
|
||||
g: OnchainGroupManager
|
||||
): Future[void] {.async: (raises: [CatchableError]).} =
|
||||
try:
|
||||
initializedGuard(g)
|
||||
let ethRpc = g.ethRpc.get()
|
||||
let wakuRlnContract = g.wakuRlnContract.get()
|
||||
|
||||
# Set up the polling interval - more frequent to catch roots
|
||||
const rpcDelay = 5.seconds
|
||||
const rpcDelay = 5.seconds
|
||||
|
||||
while true:
|
||||
let rootUpdated = await g.updateRoots()
|
||||
while true:
|
||||
let rootUpdated = await g.updateRoots()
|
||||
|
||||
if rootUpdated:
|
||||
let proofResult = await g.fetchMerkleProofElements()
|
||||
if proofResult.isErr():
|
||||
error "Failed to fetch Merkle proof", error = proofResult.error
|
||||
g.merkleProofCache = proofResult.get()
|
||||
if rootUpdated:
|
||||
let proofResult = await g.fetchMerkleProofElements()
|
||||
if proofResult.isErr():
|
||||
error "Failed to fetch Merkle proof", error = proofResult.error
|
||||
g.merkleProofCache = proofResult.get()
|
||||
|
||||
# also need update registerd membership
|
||||
let memberCount = cast[int64](await wakuRlnContract.commitmentIndex().call())
|
||||
waku_rln_number_registered_memberships.set(float64(memberCount))
|
||||
# also need update registerd membership
|
||||
let memberCount = cast[int64](await wakuRlnContract.commitmentIndex().call())
|
||||
waku_rln_number_registered_memberships.set(float64(memberCount))
|
||||
|
||||
await sleepAsync(rpcDelay)
|
||||
await sleepAsync(rpcDelay)
|
||||
except CatchableError:
|
||||
error "Fatal error in trackRootChanges", error = getCurrentExceptionMsg()
|
||||
|
||||
method register*(
|
||||
g: OnchainGroupManager, rateCommitment: RateCommitment
|
||||
|
||||
@ -90,6 +90,7 @@ type WakuRLNRelay* = ref object of RootObj
|
||||
onFatalErrorAction*: OnFatalErrorHandler
|
||||
nonceManager*: NonceManager
|
||||
epochMonitorFuture*: Future[void]
|
||||
rootChangesFuture*: Future[void]
|
||||
|
||||
proc calcEpoch*(rlnPeer: WakuRLNRelay, t: float64): Epoch =
|
||||
## gets time `t` as `flaot64` with subseconds resolution in the fractional part
|
||||
@ -465,10 +466,6 @@ proc mount(
|
||||
(await groupManager.init()).isOkOr:
|
||||
return err("could not initialize the group manager: " & $error)
|
||||
|
||||
if groupManager of OnchainGroupManager:
|
||||
let onchainManager = cast[OnchainGroupManager](groupManager)
|
||||
asyncSpawn trackRootChanges(onchainManager)
|
||||
|
||||
wakuRlnRelay = WakuRLNRelay(
|
||||
groupManager: groupManager,
|
||||
nonceManager:
|
||||
@ -478,6 +475,13 @@ proc mount(
|
||||
onFatalErrorAction: conf.onFatalErrorAction,
|
||||
)
|
||||
|
||||
# track root changes on smart contract merkle tree
|
||||
if groupManager of OnchainGroupManager:
|
||||
let onchainManager = cast[OnchainGroupManager](groupManager)
|
||||
let trackRootChangesFuture = trackRootChanges(onchainManager)
|
||||
asyncSpawn trackRootChangesFuture
|
||||
wakuRlnRelay.rootChangesFuture = trackRootChangesFuture
|
||||
|
||||
# Start epoch monitoring in the background
|
||||
wakuRlnRelay.epochMonitorFuture = monitorEpochs(wakuRlnRelay)
|
||||
return ok(wakuRlnRelay)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user