mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-05 23:43:07 +00:00
modify rln tests that use group manager
This commit is contained in:
parent
a87cb50e3e
commit
dce45ba9e8
@ -87,7 +87,8 @@ suite "Onchain group manager":
|
|||||||
let merkleRootBefore = waitFor manager.fetchMerkleRoot()
|
let merkleRootBefore = waitFor manager.fetchMerkleRoot()
|
||||||
|
|
||||||
(waitFor manager.register(credentials, UserMessageLimit(20))).isOkOr:
|
(waitFor manager.register(credentials, UserMessageLimit(20))).isOkOr:
|
||||||
raiseAssert "Failed to register: " & error
|
assert false,
|
||||||
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
discard waitFor withTimeout(trackRootChanges(manager), 15.seconds)
|
discard waitFor withTimeout(trackRootChanges(manager), 15.seconds)
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ suite "Onchain group manager":
|
|||||||
for i in 0 ..< credentials.len():
|
for i in 0 ..< credentials.len():
|
||||||
info "Registering credential", index = i, credential = credentials[i]
|
info "Registering credential", index = i, credential = credentials[i]
|
||||||
(waitFor manager.register(credentials[i], UserMessageLimit(20))).isOkOr:
|
(waitFor manager.register(credentials[i], UserMessageLimit(20))).isOkOr:
|
||||||
raiseAssert "Failed to register credential " & $i & ": " & error
|
assert false, "Failed to register credential " & $i & ": " & error
|
||||||
discard waitFor manager.updateRoots()
|
discard waitFor manager.updateRoots()
|
||||||
|
|
||||||
let merkleRootAfter = waitFor manager.fetchMerkleRoot()
|
let merkleRootAfter = waitFor manager.fetchMerkleRoot()
|
||||||
@ -143,7 +144,7 @@ suite "Onchain group manager":
|
|||||||
|
|
||||||
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
|
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
let merkleRootAfter = waitFor manager.fetchMerkleRoot()
|
let merkleRootAfter = waitFor manager.fetchMerkleRoot()
|
||||||
|
|
||||||
@ -170,26 +171,24 @@ suite "Onchain group manager":
|
|||||||
|
|
||||||
manager.onRegister(callback)
|
manager.onRegister(callback)
|
||||||
|
|
||||||
try:
|
(waitFor manager.register(
|
||||||
waitFor manager.register(
|
RateCommitment(
|
||||||
RateCommitment(
|
idCommitment: idCommitment, userMessageLimit: UserMessageLimit(20)
|
||||||
idCommitment: idCommitment, userMessageLimit: UserMessageLimit(20)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
except Exception, CatchableError:
|
)).isOkOr:
|
||||||
assert false, "exception raised: " & getCurrentExceptionMsg()
|
assert false,
|
||||||
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
waitFor fut
|
waitFor fut
|
||||||
|
|
||||||
test "withdraw: should guard against uninitialized state":
|
test "withdraw: should guard against uninitialized state":
|
||||||
let idSecretHash = generateCredentials().idSecretHash
|
let idSecretHash = generateCredentials().idSecretHash
|
||||||
|
|
||||||
try:
|
let res = waitFor manager.withdraw(idSecretHash)
|
||||||
waitFor manager.withdraw(idSecretHash)
|
|
||||||
except CatchableError:
|
check:
|
||||||
assert true
|
res.isErr()
|
||||||
except Exception:
|
res.error == "Not initialized: OnchainGroupManager is not initialized"
|
||||||
assert false, "exception raised: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
test "validateRoot: should validate good root":
|
test "validateRoot: should validate good root":
|
||||||
let idCredentials = generateCredentials()
|
let idCredentials = generateCredentials()
|
||||||
@ -210,10 +209,8 @@ suite "Onchain group manager":
|
|||||||
(waitFor manager.init()).isOkOr:
|
(waitFor manager.init()).isOkOr:
|
||||||
raiseAssert $error
|
raiseAssert $error
|
||||||
|
|
||||||
try:
|
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager.register(idCredentials, UserMessageLimit(20))
|
assert false, "error returned : " & getCurrentExceptionMsg()
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false, "exception raised: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
waitFor fut
|
waitFor fut
|
||||||
|
|
||||||
@ -292,10 +289,10 @@ suite "Onchain group manager":
|
|||||||
|
|
||||||
manager.onRegister(callback)
|
manager.onRegister(callback)
|
||||||
|
|
||||||
try:
|
|
||||||
waitFor manager.register(credentials, UserMessageLimit(20))
|
(waitFor manager.register(credentials, UserMessageLimit(20))).isOkOr:
|
||||||
except Exception, CatchableError:
|
assert false,
|
||||||
assert false, "exception raised: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
waitFor fut
|
waitFor fut
|
||||||
|
|
||||||
let rootUpdated = waitFor manager.updateRoots()
|
let rootUpdated = waitFor manager.updateRoots()
|
||||||
@ -330,11 +327,9 @@ suite "Onchain group manager":
|
|||||||
|
|
||||||
let idCredential = generateCredentials()
|
let idCredential = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager.register(idCredential, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager.register(idCredential, UserMessageLimit(20))
|
assert false,
|
||||||
except Exception, CatchableError:
|
"error returned when calling register: " & error
|
||||||
assert false,
|
|
||||||
"exception raised when calling startGroupSync: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
let messageBytes = "Hello".toBytes()
|
let messageBytes = "Hello".toBytes()
|
||||||
|
|
||||||
@ -388,14 +383,12 @@ suite "Onchain group manager":
|
|||||||
|
|
||||||
return callback
|
return callback
|
||||||
|
|
||||||
try:
|
manager.onRegister(generateCallback(futures, credentials))
|
||||||
manager.onRegister(generateCallback(futures, credentials))
|
|
||||||
|
|
||||||
for i in 0 ..< credentials.len():
|
for i in 0 ..< credentials.len():
|
||||||
waitFor manager.register(credentials[i], UserMessageLimit(20))
|
(waitFor manager.register(credentials[i], UserMessageLimit(20))).isOkOr:
|
||||||
discard waitFor manager.updateRoots()
|
assert false, "Failed to register credential " & $i & ": " & error
|
||||||
except Exception, CatchableError:
|
discard waitFor manager.updateRoots()
|
||||||
assert false, "exception raised: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
waitFor allFutures(futures)
|
waitFor allFutures(futures)
|
||||||
|
|
||||||
|
|||||||
@ -239,11 +239,8 @@ suite "Waku rln relay":
|
|||||||
let manager = cast[OnchainGroupManager](wakuRlnRelay.groupManager)
|
let manager = cast[OnchainGroupManager](wakuRlnRelay.groupManager)
|
||||||
let idCredentials = generateCredentials()
|
let idCredentials = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager.register(idCredentials, UserMessageLimit(20))
|
assert false, "error returned when calling register: " & error
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
let epoch1 = wakuRlnRelay.getCurrentEpoch()
|
let epoch1 = wakuRlnRelay.getCurrentEpoch()
|
||||||
|
|
||||||
@ -296,11 +293,8 @@ suite "Waku rln relay":
|
|||||||
let manager = cast[OnchainGroupManager](wakuRlnRelay.groupManager)
|
let manager = cast[OnchainGroupManager](wakuRlnRelay.groupManager)
|
||||||
let idCredentials = generateCredentials()
|
let idCredentials = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager.register(idCredentials, UserMessageLimit(20))
|
assert false, "error returned when calling register: " & error
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
# usually it's 20 seconds but we set it to 1 for testing purposes which make the test faster
|
# usually it's 20 seconds but we set it to 1 for testing purposes which make the test faster
|
||||||
wakuRlnRelay.rlnMaxTimestampGap = 1
|
wakuRlnRelay.rlnMaxTimestampGap = 1
|
||||||
@ -346,11 +340,9 @@ suite "Waku rln relay":
|
|||||||
let manager1 = cast[OnchainGroupManager](wakuRlnRelay1.groupManager)
|
let manager1 = cast[OnchainGroupManager](wakuRlnRelay1.groupManager)
|
||||||
let idCredentials1 = generateCredentials()
|
let idCredentials1 = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager1.register(idCredentials1, UserMessageLimit(20))
|
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
let index2 = MembershipIndex(6)
|
let index2 = MembershipIndex(6)
|
||||||
let rlnConf2 = getWakuRlnConfig(manager = manager, index = index2)
|
let rlnConf2 = getWakuRlnConfig(manager = manager, index = index2)
|
||||||
@ -360,11 +352,9 @@ suite "Waku rln relay":
|
|||||||
let manager2 = cast[OnchainGroupManager](wakuRlnRelay2.groupManager)
|
let manager2 = cast[OnchainGroupManager](wakuRlnRelay2.groupManager)
|
||||||
let idCredentials2 = generateCredentials()
|
let idCredentials2 = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager2.register(idCredentials2, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager2.register(idCredentials2, UserMessageLimit(20))
|
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
# get the current epoch time
|
# get the current epoch time
|
||||||
let epoch = wakuRlnRelay1.getCurrentEpoch()
|
let epoch = wakuRlnRelay1.getCurrentEpoch()
|
||||||
|
|||||||
@ -65,11 +65,9 @@ procSuite "WakuNode - RLN relay":
|
|||||||
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
||||||
let idCredentials1 = generateCredentials()
|
let idCredentials1 = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager1.register(idCredentials1, UserMessageLimit(20))
|
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
let rootUpdated1 = waitFor manager1.updateRoots()
|
let rootUpdated1 = waitFor manager1.updateRoots()
|
||||||
info "Updated root for node1", rootUpdated1
|
info "Updated root for node1", rootUpdated1
|
||||||
@ -182,11 +180,9 @@ procSuite "WakuNode - RLN relay":
|
|||||||
let manager = cast[OnchainGroupManager](node.wakuRlnRelay.groupManager)
|
let manager = cast[OnchainGroupManager](node.wakuRlnRelay.groupManager)
|
||||||
let idCredentials = generateCredentials()
|
let idCredentials = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager.register(idCredentials, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager.register(idCredentials, UserMessageLimit(20))
|
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
let rootUpdated = waitFor manager.updateRoots()
|
let rootUpdated = waitFor manager.updateRoots()
|
||||||
info "Updated root for node", node = index + 1, rootUpdated = rootUpdated
|
info "Updated root for node", node = index + 1, rootUpdated = rootUpdated
|
||||||
@ -301,11 +297,9 @@ procSuite "WakuNode - RLN relay":
|
|||||||
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
||||||
let idCredentials1 = generateCredentials()
|
let idCredentials1 = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager1.register(idCredentials1, UserMessageLimit(20))
|
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
let rootUpdated1 = waitFor manager1.updateRoots()
|
let rootUpdated1 = waitFor manager1.updateRoots()
|
||||||
info "Updated root for node1", rootUpdated1
|
info "Updated root for node1", rootUpdated1
|
||||||
@ -418,11 +412,9 @@ procSuite "WakuNode - RLN relay":
|
|||||||
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
||||||
let idCredentials1 = generateCredentials()
|
let idCredentials1 = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager1.register(idCredentials1, UserMessageLimit(20))
|
|
||||||
except Exception, CatchableError:
|
|
||||||
assert false,
|
assert false,
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
"error returned when calling register: " & error
|
||||||
|
|
||||||
let rootUpdated1 = waitFor manager1.updateRoots()
|
let rootUpdated1 = waitFor manager1.updateRoots()
|
||||||
info "Updated root for node1", rootUpdated1
|
info "Updated root for node1", rootUpdated1
|
||||||
@ -585,11 +577,10 @@ procSuite "WakuNode - RLN relay":
|
|||||||
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
let manager1 = cast[OnchainGroupManager](node1.wakuRlnRelay.groupManager)
|
||||||
let idCredentials1 = generateCredentials()
|
let idCredentials1 = generateCredentials()
|
||||||
|
|
||||||
try:
|
(waitFor manager1.register(idCredentials1, UserMessageLimit(20))).isOkOr:
|
||||||
waitFor manager1.register(idCredentials1, UserMessageLimit(20))
|
assert false,
|
||||||
except Exception, CatchableError:
|
"error returned when calling register: " & error
|
||||||
assert false,
|
|
||||||
"exception raised when calling register: " & getCurrentExceptionMsg()
|
|
||||||
|
|
||||||
let rootUpdated1 = waitFor manager1.updateRoots()
|
let rootUpdated1 = waitFor manager1.updateRoots()
|
||||||
info "Updated root for node1", rootUpdated1
|
info "Updated root for node1", rootUpdated1
|
||||||
|
|||||||
@ -214,6 +214,8 @@ method register*(
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
return err("Failed to call register callback: " & e.msg)
|
return err("Failed to call register callback: " & e.msg)
|
||||||
|
|
||||||
|
return ok()
|
||||||
|
|
||||||
method register*(
|
method register*(
|
||||||
g: OnchainGroupManager,
|
g: OnchainGroupManager,
|
||||||
identityCredential: IdentityCredential,
|
identityCredential: IdentityCredential,
|
||||||
@ -282,11 +284,9 @@ method register*(
|
|||||||
debug "ts receipt", receipt = tsReceipt[]
|
debug "ts receipt", receipt = tsReceipt[]
|
||||||
|
|
||||||
if tsReceipt.status.isNone():
|
if tsReceipt.status.isNone():
|
||||||
raise newException(ValueError, "Transaction failed: status is None")
|
return err("Transaction failed: status is None")
|
||||||
if tsReceipt.status.get() != 1.Quantity:
|
if tsReceipt.status.get() != 1.Quantity:
|
||||||
raise newException(
|
return err("Transaction failed with status: " & $tsReceipt.status.get())
|
||||||
ValueError, "Transaction failed with status: " & $tsReceipt.status.get()
|
|
||||||
)
|
|
||||||
|
|
||||||
## Search through all transaction logs to find the MembershipRegistered event
|
## Search through all transaction logs to find the MembershipRegistered event
|
||||||
let expectedEventSignature = cast[FixedBytes[32]](keccak.keccak256.digest(
|
let expectedEventSignature = cast[FixedBytes[32]](keccak.keccak256.digest(
|
||||||
@ -300,9 +300,7 @@ method register*(
|
|||||||
break
|
break
|
||||||
|
|
||||||
if membershipRegisteredLog.isNone():
|
if membershipRegisteredLog.isNone():
|
||||||
raise newException(
|
return err("register: MembershipRegistered event not found in transaction logs")
|
||||||
ValueError, "register: MembershipRegistered event not found in transaction logs"
|
|
||||||
)
|
|
||||||
|
|
||||||
let registrationLog = membershipRegisteredLog.get()
|
let registrationLog = membershipRegisteredLog.get()
|
||||||
|
|
||||||
@ -336,13 +334,23 @@ method register*(
|
|||||||
|
|
||||||
method withdraw*(
|
method withdraw*(
|
||||||
g: OnchainGroupManager, idCommitment: IDCommitment
|
g: OnchainGroupManager, idCommitment: IDCommitment
|
||||||
): Future[void] {.async: (raises: [Exception]).} =
|
): Future[Result[void, string]] {.async.} =
|
||||||
initializedGuard(g) # TODO: after slashing is enabled on the contract
|
try:
|
||||||
|
initializedGuard(g)
|
||||||
|
except CatchableError as e:
|
||||||
|
return err("Not initialized: " & e.msg)
|
||||||
|
|
||||||
|
return ok()
|
||||||
|
|
||||||
method withdrawBatch*(
|
method withdrawBatch*(
|
||||||
g: OnchainGroupManager, idCommitments: seq[IDCommitment]
|
g: OnchainGroupManager, idCommitments: seq[IDCommitment]
|
||||||
): Future[void] {.async: (raises: [Exception]).} =
|
): Future[Result[void, string]] {.async.} =
|
||||||
initializedGuard(g)
|
try:
|
||||||
|
initializedGuard(g)
|
||||||
|
except CatchableError as e:
|
||||||
|
return err("Not initialized: " & e.msg)
|
||||||
|
|
||||||
|
return ok()
|
||||||
|
|
||||||
proc getRootFromProofAndIndex(
|
proc getRootFromProofAndIndex(
|
||||||
g: OnchainGroupManager, elements: seq[byte], bits: seq[byte]
|
g: OnchainGroupManager, elements: seq[byte], bits: seq[byte]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user