MetaMask / MetaMask/snaps

I cannot initialize my WebAssembly built from Rust. It told me failed to fetch when I call init()

Open
#3,033 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
853
Forks
662
Avg merge
2d 8h
Merged PRs (30d)
8

Description

Hi, I am trying to add the WebAssembly I built from Rust by [this](https://developer.mozilla.org/en-US/docs/WebAssembly/Rust_to_Wasm) guide into my Snap. I added the pkg folder into /packages/snap

In my index.tsx, I added `import init, { greet, get_hello_world_string } from '../pkg/hello_wasm.js';`.

Then I was trying to add `await init('../pkg/hello_wasm_bg.wasm');` into `onRpcRequest`. I did not work and I was given error "failed to fetch" when I click send message in the webpage of localhost:8000.

I also tried `await fetch('./hello_wasm_bg.wasm');` and `await fetch('../pkg/hello_wasm_bg.wasm');` They were all giving the same error failed to fetch.

I already added` "endowment:network-access": {}, "endowment:webassembly": {}` into my snap.manifest.json

Can any tell me how can I add my WebAssembly correctly into my Snap?

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the failure from index.tsx, focusing on the await init call inside onRpcRequest and the referenced pkg/hello_wasm.js and hello_wasm_bg.wasm paths. Check snap.manifest.json alongside the Rust-to-Wasm setup guide; done means the WebAssembly module initializes successfully when the localhost:8000 request is sent.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, typescript, wasm
Domain
backend, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.