diff --git a/tests/waku_rln_relay/test_rln_group_manager_onchain.nim b/tests/waku_rln_relay/test_rln_group_manager_onchain.nim index c30adfbbe..4625ffa84 100644 --- a/tests/waku_rln_relay/test_rln_group_manager_onchain.nim +++ b/tests/waku_rln_relay/test_rln_group_manager_onchain.nim @@ -93,10 +93,11 @@ suite "Onchain group manager": waitFor executeForgeContractDeployScripts(privateKey, acc, web3) if differentContractAddress.isErr(): error "Failed to deploy RLN contract", error = differentContractAddress.error + # simulating a change in the contractAddress let manager2 = OnchainGroupManager( ethClientUrls: @[EthClient], - ethContractAddress: $differentContractAddress, + ethContractAddress: $differentContractAddress.get(), rlnInstance: manager.rlnInstance, onFatalErrorAction: proc(errStr: string) = assert false, errStr @@ -264,21 +265,21 @@ suite "Onchain group manager": except Exception: assert false, "exception raised: " & getCurrentExceptionMsg() - test "validateRoot: should validate good root": - let idCredentials = generateCredentials(manager.rlnInstance) - let idCommitment = idCredentials.idCommitment + # test "validateRoot: should validate good root": + # let idCredentials = generateCredentials(manager.rlnInstance) + # let idCommitment = idCredentials.idCommitment - let fut = newFuture[void]() + # let fut = newFuture[void]() - proc callback(registrations: seq[Membership]): Future[void] {.async.} = - if registrations.len == 1 and - registrations[0].rateCommitment == - getRateCommitment(idCredentials, UserMessageLimit(20)).get() and - registrations[0].index == 0: - manager.idCredentials = some(idCredentials) - fut.complete() + # proc callback(registrations: seq[Membership]): Future[void] {.async.} = + # if registrations.len == 1 and + # registrations[0].rateCommitment == + # getRateCommitment(idCredentials, UserMessageLimit(20)).get() and + # registrations[0].index == 0: + # manager.idCredentials = some(idCredentials) + # fut.complete() - manager.onRegister(callback) + # manager.onRegister(callback) # (waitFor manager.init()).isOkOr: # raiseAssert $error diff --git a/tests/waku_rln_relay/utils_onchain.nim b/tests/waku_rln_relay/utils_onchain.nim index 96de4ee89..740614518 100644 --- a/tests/waku_rln_relay/utils_onchain.nim +++ b/tests/waku_rln_relay/utils_onchain.nim @@ -280,15 +280,15 @@ proc deployTestToken*( let (installOutput, installExitCode) = execCmdEx(fmt"bash {installScriptPath}") debug "pnpm install script output", output = installOutput, exitCode = installExitCode - + # After installation, try to find the actual pnpm path if installExitCode == 0: let homeDir = getEnv("HOME", "") let commonPnpmPaths = [ joinPath(homeDir, ".local", "share", "pnpm", "pnpm"), - joinPath(homeDir, ".local", "share", "pnpm", "bin", "pnpm") + joinPath(homeDir, ".local", "share", "pnpm", "bin", "pnpm"), ] - + for possiblePath in commonPnpmPaths: if fileExists(possiblePath): debug "Found pnpm after installation", actualPath = possiblePath @@ -481,21 +481,21 @@ proc executeForgeContractDeployScripts*( var pnpmPath = getPnpmPath() debug "Pnpm path", pnpmPath - + # If we got bare "pnpm" and it might not be in PATH, try to find the actual installed path if pnpmPath == "pnpm": let homeDir = getEnv("HOME", "") let commonPnpmPaths = [ joinPath(homeDir, ".local", "share", "pnpm", "pnpm"), - joinPath(homeDir, ".local", "share", "pnpm", "bin", "pnpm") + joinPath(homeDir, ".local", "share", "pnpm", "bin", "pnpm"), ] - + for possiblePath in commonPnpmPaths: if fileExists(possiblePath): debug "Found pnpm at actual path", actualPath = possiblePath pnpmPath = possiblePath break - + let (pnpmInstallOutput, pnpmInstallExitCode) = execCmdEx(fmt"""cd {submodulePath} && {pnpmPath} install""") trace "Executed pnpm install command", output = pnpmInstallOutput @@ -719,7 +719,7 @@ proc runAnvil*(port: int = 8540, chainId: string = "1234"): Process = "--balance", "1000000000", "--chain-id", - $chainId + $chainId, ], options = {poUsePath}, ) @@ -741,6 +741,71 @@ proc runAnvil*(port: int = 8540, chainId: string = "1234"): Process = except: # TODO: Fix "BareExcept" warning error "Anvil daemon run failed", err = getCurrentExceptionMsg() +# # Runs Anvil daemon +# proc runAnvil*(port: int = 8540, chainId: string = "1234"): Process = +# # Passed options are +# # --port Port to listen on. +# # --gas-limit Sets the block gas limit in WEI. +# # --balance The default account balance, specified in ether. +# # --chain-id Chain ID of the network. +# # See anvil documentation https://book.getfoundry.sh/reference/anvil/ for more details +# try: +# # Check for existing Anvil instances before starting a new one +# let runningInstances = checkRunningAnvilInstances() +# debug "Checking for running Anvil instances before starting", +# runningInstances = runningInstances + +# let anvilPath = getAnvilPath() +# debug "Anvil path", anvilPath +# let runAnvil = startProcess( +# anvilPath, +# args = [ +# "--port", +# $port, +# "--gas-limit", +# "300000000000000", +# "--balance", +# "1000000000", +# "--chain-id", +# $chainId, +# ], +# options = {poUsePath, poStdErrToStdOut}, +# ) +# let anvilPID = runAnvil.processID + +# # Add timeout mechanism +# let startTime = Moment.now() +# let timeoutDuration = 120.seconds # 60 second timeout + +# # We read stdout from Anvil to see when daemon is ready +# var anvilStartLog: string +# var cmdline: string +# while (Moment.now() - startTime) < timeoutDuration: +# if not runAnvil.running: +# error "Anvil process died unexpectedly" +# raise newException(IOError, "Anvil process failed to start") + +# try: +# if runAnvil.outputstream.readLine(cmdline): +# anvilStartLog.add(cmdline) +# if cmdline.contains("Listening on 127.0.0.1:" & $port): +# break +# else: +# sleep(100) +# except Exception, CatchableError: +# break + +# # Check if we timed out +# if (Moment.now() - startTime) >= timeoutDuration: +# kill(runAnvil) +# error "Anvil startup timed out after 60 seconds" +# raise newException(IOError, "Anvil startup timed out") + +# debug "Anvil daemon is running and ready", pid = anvilPID, startLog = anvilStartLog +# return runAnvil +# except: # TODO: Fix "BareExcept" warning +# error "Anvil daemon run failed", err = getCurrentExceptionMsg() + # Stops Anvil daemon proc stopAnvil*(runAnvil: Process) {.used.} = if runAnvil.isNil: @@ -796,11 +861,11 @@ proc setupOnchainGroupManager*( discard await sendMintCall( web3, web3.defaultAccount, testTokenAddress, acc, ethToWei(1000.u256), some(0.u256) ) - let contractAddressRes = - await executeForgeContractDeployScripts(privateKey, acc, web3) - if contractAddressRes.isErr(): - error "Failed to deploy RLN contract", error = contractAddressRes.error - raise newException(CatchableError, "Failed to deploy RLN contract") + # let contractAddressRes = + # await executeForgeContractDeployScripts(privateKey, acc, web3) + # if contractAddressRes.isErr(): + # error "Failed to deploy RLN contract", error = contractAddressRes.error + # raise newException(CatchableError, "Failed to deploy RLN contract") let contractAddress = (await executeForgeContractDeployScripts(privateKey, acc, web3)).valueOr: assert false, "Failed to deploy RLN contract: " & $error