|
3 | 3 | import std/[times, sequtils] |
4 | 4 | import chronos, chronicles, results, stew/byteutils |
5 | 5 |
|
6 | | -import ./types, ./protocol_types, ./conversion_utils, ./group_manager, ./nonce_manager |
7 | | - |
8 | | -import logos_delivery/waku/waku_core |
| 6 | +import |
| 7 | + logos_delivery/waku/[ |
| 8 | + rln/types, |
| 9 | + rln/protocol_types, |
| 10 | + rln/conversion_utils, |
| 11 | + rln/group_manager, |
| 12 | + rln/nonce_manager, |
| 13 | + waku_core, |
| 14 | + ] |
9 | 15 |
|
10 | 16 | proc calcEpoch*(rln: Rln, t: float64): Epoch = |
11 | 17 | ## gets time `t` as `flaot64` with subseconds resolution in the fractional part |
@@ -56,13 +62,16 @@ proc toRLNSignal*(wakumessage: WakuMessage): seq[byte] = |
56 | 62 |
|
57 | 63 | proc generateRLNProof*( |
58 | 64 | rln: Rln, input: seq[byte], senderEpochTime: float64 |
59 | | -): Future[Result[seq[byte], string]] {.async.} = |
| 65 | +): Future[Result[seq[byte], string]] {.async: (raises: []).} = |
60 | 66 | let epoch = rln.calcEpoch(senderEpochTime) |
61 | 67 | let nonce = rln.nonceManager.getNonce().valueOr: |
62 | 68 | return err("could not get new message id to generate an rln proof: " & $error) |
63 | | - let proof = (await rln.groupManager.generateProof(input, epoch, nonce)).valueOr: |
64 | | - return err("could not generate rln-v2 proof: " & $error) |
65 | | - return ok(proof.encode().buffer) |
| 69 | + try: |
| 70 | + let proof = (await rln.groupManager.generateProof(input, epoch, nonce)).valueOr: |
| 71 | + return err("could not generate rln-v2 proof: " & $error) |
| 72 | + return ok(proof.encode().buffer) |
| 73 | + except CatchableError as e: |
| 74 | + return err("exception generating rln proof: " & e.msg) |
66 | 75 |
|
67 | 76 | proc generateRLNProofWithRootRefresh*( |
68 | 77 | rln: Rln, input: seq[byte], senderEpochTime: float64 |
|
0 commit comments