Skip to content

WASM build broken on litd version bump due to taproot-assets symbol bloat #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ffranr opened this issue Apr 24, 2025 · 2 comments · Fixed by #114
Closed

WASM build broken on litd version bump due to taproot-assets symbol bloat #113

ffranr opened this issue Apr 24, 2025 · 2 comments · Fixed by #114
Assignees
Labels
dependencies Pull requests that update a dependency file

Comments

@ffranr
Copy link
Contributor

ffranr commented Apr 24, 2025

First reported by @ViktorTigerstrom

Attempting to bump litd triggers a WASM build failure. Too many symbols from taproot-assets are included, leading to relocation errors like:

type:...ProofType: non-pc-relative relocation address ... is too big: 0x100d70000
...
type:...SortDirection: non-pc-relative relocation address ... is too big: 0x100e90000

This doesn’t happen before the version bump — likely due to changes in the dependency pulling in more of taproot-assets than needed.

Proposed fix: move taprpc to a submodule in taproot-assets. This lets the WASM client depend only on taprpc, avoiding the full dependency and reducing symbol load.

@ffranr ffranr added the dependencies Pull requests that update a dependency file label Apr 24, 2025
@levmi levmi moved this from 🆕 New to 🏗 In progress in Taproot-Assets Project Board Apr 24, 2025
@ffranr
Copy link
Contributor Author

ffranr commented Apr 24, 2025

We probably just need to complete/merge this: lightninglabs/taproot-assets#1090

EDIT: this will be the working PR: lightninglabs/taproot-assets#1487

@ffranr
Copy link
Contributor Author

ffranr commented Apr 27, 2025

This is the solution I think we should implement to fix the WASM build issue caused by importing taproot-assets (which pulls in too many symbols):

This approach isolates only the necessary RPC and permission modules for wasm-client and avoids bringing in all of tap, allowing the WASM build to succeed.

I've tested this wasm-client build setup with lit at the latest master and it builds without error. Just need to put up the rest of the necessary PRs now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

1 participant