Skip to content

Commit

Permalink
fix: handle rln-relay-message-limit (#2867)
Browse files Browse the repository at this point in the history
* fix: enforcing rln-contract max message limit and resolve early
  • Loading branch information
darshankabariya committed Jul 22, 2024
1 parent 6d385ce commit 8d107b0
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 2 deletions.
26 changes: 25 additions & 1 deletion tests/waku_rln_relay/test_rln_group_manager_onchain.nim
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,17 @@ import
eth/keys
import
waku/[
waku_node,
node/waku_node,
waku_rln_relay,
waku_rln_relay/protocol_types,
waku_rln_relay/constants,
waku_rln_relay/contract,
waku_rln_relay/rln,
waku_rln_relay/conversion_utils,
waku_rln_relay/group_manager/on_chain/group_manager,
],
../testlib/common,
../testlib/[wakucore, wakunode, common],
./utils

const CHAIN_ID = 1337
Expand Down Expand Up @@ -232,6 +235,7 @@ suite "Onchain group manager":
manager.wakuRlnContract.isSome()
manager.initialized
manager.rlnContractDeployedBlockNumber > 0
manager.rlnRelayMaxMessageLimit == 100

await manager.stop()

Expand Down Expand Up @@ -775,7 +779,27 @@ suite "Onchain group manager":
isReady == true

await manager.stop()

asyncTest "rln-relay-max-message-limit testing":
let
nodekey = generateSecp256k1Key()
node = newTestWakuNode(nodekey, parseIpAddress("0.0.0.0"), Port(0))

await node.mountRelay(@[DefaultPubsubTopic])

let wakuRlnConfig = WakuRlnConfig(
rlnRelayDynamic: false,
rlnRelayCredIndex: some(0.uint),
rlnRelayUserMessageLimit: 111,
rlnRelayTreepath: genTempPath("rln_tree", "wakunode_0"),
)

try:
await node.mountRlnRelay(wakuRlnConfig)
except CatchableError as e:
check e.msg == "failed to mount WakuRlnRelay: rln-relay-user-message-limit can't be exceed then MAX_MESSAGE_LIMIT set by rln contract"


################################
## Terminating/removing Anvil
################################
Expand Down
2 changes: 2 additions & 0 deletions waku/node/waku_node.nim
Original file line number Diff line number Diff line change
Expand Up @@ -1089,6 +1089,8 @@ proc mountRlnRelay*(
raise
newException(CatchableError, "failed to mount WakuRlnRelay: " & rlnRelayRes.error)
let rlnRelay = rlnRelayRes.get()
if (rlnConf.rlnRelayUserMessageLimit > rlnRelay.groupManager.rlnRelayMaxMessageLimit):
error "rln-relay-user-message-limit can't be exceed then MAX_MESSAGE_LIMIT set by rln contract"
let validator = generateRlnValidator(rlnRelay, spamHandler)

# register rln validator as default validator
Expand Down
Loading

0 comments on commit 8d107b0

Please sign in to comment.