Move.

Post

Share your knowledge.

Mister_CocaCola.
Feb 05, 2025
Expert Q&A

Struggling to run WebAssembly in TypeScript due to function errors

Hey everyone, I've been trying to load and run WebAssembly from TypeScript but I'm encountering multiple errors about missing functions, like function="__wbindgen_string_new": function import requires a callable. I tried adding __wbindgen_placeholder__: {}, to the imports to fix LinkError: WebAssembly.instantiate(): Import #0 module="__wbindgen_placeholder__" function="__wbindgen_string_new": function import requires a callable, but I'm still facing similar issues. Does anyone have ideas on how to resolve this? Here's my code for reference: async function load_wasm(input: Uint8Array) { const wasmPath = path.resolve(__dirname, 'file.wasm'); const wasmBytes = fs.readFileSync(wasmPath); const memory = new WebAssembly.Memory({ initial: 256, maximum: 512, }); await WebAssembly.instantiate(wasmBytes, { js: { mem: memory }, wbindgen_placeholder: {}, }).then((wasm) => { const helloWasm = wasm.instance.exports.hello_wasm; if (typeof helloWasm === 'function') { const result = helloWasm(input); console.log(result); } else { console.error('hello_wasm is not a function'); } }); }

  • Move CLI
2
1
Share
Comments
.

Answers

1
andreweth..
Feb 5 2025, 11:03

You can check out an example in the Sui docs to understand the logic: https://docs.sui.io/guides/developer/nft/asset-tokenization#webassembly-wasm-and-template-package.

1
Comments
.

Do you know the answer?

Please log in and share it.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Posts231Answers
Sui.X.Peera.

Earn Your Share of 1000 Sui

Gain Reputation Points & Get Rewards for Helping the Sui Community Grow.

Reward CampaignJune
We use cookies to ensure you get the best experience on our website.
More info