edge_builders.nim was a stripped copy of libp2p 1.15.2's builders. Against
2.0.0 it does not compile: `{.public.}` was removed from the package
altogether, so the very first proc carrying it fails with "invalid pragma".
It had drifted ~850 lines from the version it is supposed to shadow.
Regenerated from 2.0.0's builders.nim with the same three edits as before --
imports rewritten to absolute `libp2p/...`, the QUIC and WS transports and
their with*Transport builders removed, autotls reduced to opaque stubs -- all
because those reach lsquic and boringssl x86 asm, which cannot build for
wasm32. 2.0.0 already guards the autotls service behind
`libp2p_autotls_support`, so only the two type names needed stubbing.
The edits are now a script rather than a hand-patch, so the next libp2p bump
is a re-run instead of an archaeology exercise.
Also tracks the wasm build script. build/ is gitignored, so it existed only in
one working tree -- the same "one rm -rf from unrecoverable" problem that
b3531ea0 fixed for wasm-deps itself.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qDYE5r2t2dMry5XpWWySu
The edge build is --threads:off. brokers' EventBroker / RequestBroker /
SignalBroker macros each carry a
when not compileOption("threads"):
{.error: "... requires --threads:on".}
inside the macro's OWN body. A `{.error.}` pragma is evaluated when the macro
is semchecked -- that is, on a plain `import` -- so threads-off the modules
cannot be imported at all, not merely used in mt mode. Gating the macro call
sites is therefore not sufficient; roughly a dozen modules in the waku tree
import request_broker/event_broker without ever invoking them threads-off.
So wasm-deps/brokers is bumped from the old 3.1.1 snapshot to the pinned 3.3.0
with those six pragmas rewritten as `macros.error(...)` calls, which fire only
if the macro is actually invoked in that mode. That is the correct behaviour
and worth upstreaming; scripts/patch_wasm_brokers.py reapplies it after a bump.
config.nims switches the override in under -d:emscripten, after the Nimble
block: Nim prepends each --path as it is registered, so the last one wins, and
config-file paths are registered after the command line. Passing --path in the
build script does not work for this reason -- the nimble copy still wins.
backend_comm.nim additionally gates its own mt broker declarations, which
genuinely cannot exist threads-off, and defines just the response types the
persistency facade names. Those are inert: the facade's threads-off path never
reaches a provider, and the browser build has no persistence.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qDYE5r2t2dMry5XpWWySu
* Remove makefile target update
* fix: set execute permission on install_nimble.sh
* improve install_nim script
* skip second nim install on Windows
* fix path check in install-nim
* Makefile workfile reordering
* Initial for liblogosdelivery library (static & dynamic) based on current state of API.
* nix build support added.
* logosdelivery_example
* Added support for missing logLevel/logFormat in new API create_node
* Added full JSON to NodeConfig support
* Added ctx and ctx.myLib check to avoid uninitialzed calls and crash. Adjusted logosdelivery_example with proper error handling and JSON config format
* target aware install phase
* Fix base64 decode of payload
* Add foundry version in makefile and install scripts
* revert to older verison of Anvil for rln tests and anvil_install fix
* pin pnpm version to be installed as rln dep
* source pnpm after new install
* Add to github path
* use npm to install pnpm for rln ci
* Update foundry and pnpm versions in Makefile
* update RLN contract abi functions and procs
* Clean up debugging lines
* Use more descriptive object field names for MembershipInfo
* Fix formatting
* fix group_manager after rebase to use new contract method sig
* Fix linting for group_manager.nim
* Test idcommitment to BE and debug logs
* Improve IdCommitment logging
* Update all keystore credentials to use BE format
* Add workaround for groupmanager web3 eth_call
* Add await to sendEthCallWithChainID
* Add error handling for failed eth_call
* Improve error handling for eth_call workaround
* Revert keystore credentials back to using LE
* Update toRateCommitment proc to use LE instead of BE
* Add IdCommitment to calldata as BE
* feat: Update rln contract deployment and tests (#3408)
* update RLN contract abi functions and procs
* update waku-rlnv2-contract submodule commit to latest
* Add RlnV2 contract deployment using forge scripts
* Clean up output of forge script command, debug logs to trace, warn to error
* Move TestToken deployment to own proc
* first implementation of token minting and approval
* Update rln tests with usermessagelimit new minimum
* Clean up code and error handling
* Rework RLN tests WIP
* Fix RLN test for new contract
* RLN Tests updated
* Fix formatting
* Improve error logs
* Fix error message formatting
* Fix linting
* Add pnpm dependency installation for rln tests
* Update test dependencies in makefile
* Minor updates, error messages etc
* Code cleanup and change some debug logging to trace
* Improve handling of Result return value
* Use absolute path for waku-rlnv2-contract
* Simplify token approval and balance check
* Remove unused Anvil options
* Add additional checks for stopAnvil process
* Fix anvil process call to null
* Add lock to tests for rln_group_manager_onchain
* Debug for forge command
* Verify paths
* Install pnpm as global
* Cleanup anvil running procs
* Add check before installing anvil
* CLean up onchain group_manager
* Add proc to setup environment for contract deployer
* Refactoring and improved error handling
* Fix anvil install directory string
* Fix linting in test_range_split
* Add const for the contract address length
* Add separate checks for why Approval transaction fails
* Update RLN contract address and chainID for TWN
Create a makefile target that runs a script which is a wrapper around
nimbus-build-system create_nimble_link.sh script.
Referenced issue:
* https://github.com/waku-org/nwaku/issues/3232
* android-ndk is added
* in the derivation, system nim is default but one can change it to
nimbus-build-system
* special script for creating nimble links, necessary for the
compilation to succeed.
Referenced issue:
* https://github.com/waku-org/nwaku/issues/3232
* Separation of node health and initialization state from rln_relay status. Make (only) health endpoint avail early and install others in the last stage of node setup.
* Proper json report from /health, adjusted and fixed test, added convenient script for checking node health
* Stop wakunode2 if configured rest server cannot be started
* Fix wakuRlnRelay protocol existence check
* Fix typo
* Removed unused imports from touched files.
* Added missing /health test for all
To resolve RLN build issues like this:
```
Building: librln_v0.3.4.a
./scripts/build_rln.sh: line 29: rustup: command not found
Warning: to ensure you are building in a supported repo state, please always run "make update" after "git pull"
(it looks like you've forgotten to do this).
This also applies whenever you switch to a new branch or commit, e.g.: whenever you run "git checkout ...".
Failed to download -rln.tar.gz
./scripts/build_rln.sh: line 42: jq: command not found
error: could not find `Cargo.toml` in `/app` or any parent directory
make: *** [Makefile:131: librln_v0.3.4.a] Error 127
```
Signed-off-by: Jakub Sokołowski <jakub@status.im>