Skip to content
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

WASM JS bindings #2197

Draft
wants to merge 4 commits into
base: evm-dev
Choose a base branch
from
Draft

Conversation

b-zee
Copy link
Contributor

@b-zee b-zee commented Oct 4, 2024

Builds upon #2182

Build the JS package:

$ wasm-pack build --dev --target=web autonomi

Run a webserver , e.g. with Python:

$ python -m http.server --directory=autonomi 8000

Then visit http://127.0.0.1:8000/ in your (modern) browser.

Currently seems to bump into another alloy bug for WASM (alloy_rpc_client):

panicked at library/std/src/sys/pal/wasm/../unsupported/time.rs:13:9:
time not implemented on this platform

Stack:

__wbg_get_imports/imports.wbg.__wbg_new_abda76e883ba8a5f/<@http://127.0.0.1:8000/pkg/autonomi.js:496:21
logError@http://127.0.0.1:8000/pkg/autonomi.js:232:18
__wbg_get_imports/imports.wbg.__wbg_new_abda76e883ba8a5f@http://127.0.0.1:8000/pkg/autonomi.js:495:66
autonomi.wasm.console_error_panic_hook::Error::new::h927f5ef14249f64a@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[39556]:0x15b0f6e
autonomi.wasm.console_error_panic_hook::hook_impl::h2ada2845e01813dd@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[11631]:0x10ae9fc
autonomi.wasm.console_error_panic_hook::hook::hec432ab322f3ce21@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[67295]:0x16b4800
autonomi.wasm.core::ops::function::Fn::call::h8944ff43a5500c03@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[45508]:0x1621214
autonomi.wasm.std::panicking::rust_panic_with_hook::h33fe77d38d305ca3@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[20671]:0x1322817
autonomi.wasm.std::panicking::begin_panic_handler::{{closure}}::h98de848d678bad07@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[28916]:0x148bf7d
autonomi.wasm.std::sys::backtrace::__rust_end_short_backtrace::h2bcfc60c3cf0a312@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[70170]:0x16bb76d
autonomi.wasm.rust_begin_unwind@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[41569]:0x15db98a
autonomi.wasm.core::panicking::panic_fmt::hde8b7aa66e2831e1@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[43285]:0x15fbdde
autonomi.wasm.std::time::Instant::now::h4596df88e86ef3d9@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[47361]:0x163adec
autonomi.wasm.tokio::time::instant::variant::now::hbe8977566ed90650@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[34898]:0x1543cf9
autonomi.wasm.tokio::time::instant::Instant::now::ha4ccf1cafff97ea3@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[43539]:0x1600809
autonomi.wasm.tokio::time::sleep::sleep::h7ee252b541fcdc44@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[15939]:0x120918b
autonomi.wasm.alloy_rpc_client::poller::PollerBuilder<Conn,Params,Resp>::into_future::{{closure}}::h1176c2672f3ab241@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[189]:0x2ca728
autonomi.wasm.<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::h9067762ef0bfcd18@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[16771]:0x1240f94
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::run::h66eff8e672cb7afd@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[8679]:0xf6e8e5
autonomi.wasm.wasm_bindgen_futures::queue::QueueState::run_all::h8e3a33f215aa08a6@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[7527]:0xed81c0
autonomi.wasm.wasm_bindgen_futures::queue::Queue::new::{{closure}}::h53297126ea7a9af8@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[38190]:0x159303a
autonomi.wasm.<dyn core::ops::function::FnMut<(A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::h7fe12fba6e8c9e8e@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[31097]:0x14d6789
__wbg_adapter_46@http://127.0.0.1:8000/pkg/autonomi.js:276:10
real@http://127.0.0.1:8000/pkg/autonomi.js:215:20
VoidFunction*__wbg_get_imports/imports.wbg.__wbg_queueMicrotask_12a30234db4045d3/<@http://127.0.0.1:8000/pkg/autonomi.js:738:23
logError@http://127.0.0.1:8000/pkg/autonomi.js:232:18
__wbg_get_imports/imports.wbg.__wbg_queueMicrotask_12a30234db4045d3@http://127.0.0.1:8000/pkg/autonomi.js:737:77
autonomi.wasm.wasm_bindgen_futures::queue::queueMicrotask::h8ce2e24f7c64e7d6@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[56740]:0x168c049
autonomi.wasm.wasm_bindgen_futures::queue::Queue::schedule_task::hbde92bf403639b53@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[13005]:0x1129517
autonomi.wasm.wasm_bindgen_futures::queue::Queue::push_task::hd33d7703b5c05bfc@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[66617]:0x16b2bff
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::force_wake::{{closure}}::h4b418a3a75052d72@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[66620]:0x16b2c21
autonomi.wasm.std::thread::local::LocalKey<T>::try_with::h746322c67cfaac76@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[20198]:0x1309ffb
autonomi.wasm.std::thread::local::LocalKey<T>::with::h69fd1c78b75fac87@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[29243]:0x1497b7a
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::force_wake::h9b14863c1eed92fb@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[60338]:0x169dc55
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::wake::h576001665ffc53e6@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[27136]:0x14484d1
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::into_raw_waker::raw_wake::hd0a6d09d40d76f3c@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[60339]:0x169dc69
autonomi.wasm.core::task::wake::Waker::wake::h7cccda3d1813b302@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[59404]:0x1699b1c
autonomi.wasm.<wasm_bindgen_futures::JsFuture as core::convert::From<js_sys::Promise>>::from::finish::hda3eeef47aca2bb3@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[5590]:0xd9ec82
autonomi.wasm.<wasm_bindgen_futures::JsFuture as core::convert::From<js_sys::Promise>>::from::{{closure}}::he0cda20225b358ce@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[36349]:0x15681a7
autonomi.wasm.core::ops::function::FnOnce::call_once::hd6d49b7aebdb4670@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[34910]:0x154422d
autonomi.wasm.<T as wasm_bindgen::closure::WasmClosureFnOnce<A,R>>::into_fn_mut::{{closure}}::h8fd187ab1cb0077d@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[49064]:0x164ed81
autonomi.wasm.<dyn core::ops::function::FnMut<(A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::h7fe12fba6e8c9e8e@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[31097]:0x14d6789
__wbg_adapter_46@http://127.0.0.1:8000/pkg/autonomi.js:276:10
real@http://127.0.0.1:8000/pkg/autonomi.js:215:20
promise callback*__wbg_get_imports/imports.wbg.__wbg_then_876bb3c633745cc6/<@http://127.0.0.1:8000/pkg/autonomi.js:867:37
logError@http://127.0.0.1:8000/pkg/autonomi.js:232:18
__wbg_get_imports/imports.wbg.__wbg_then_876bb3c633745cc6@http://127.0.0.1:8000/pkg/autonomi.js:866:67
autonomi.wasm.js_sys::Promise::then2::hc510796b88592621@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[30897]:0x14cffc9
autonomi.wasm.<wasm_bindgen_futures::JsFuture as core::convert::From<js_sys::Promise>>::from::hffb70ff0a26d42ed@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[3412]:0xbb1c8e
autonomi.wasm.reqwest::wasm::promise::{{closure}}::h6060256dcd4a1b42@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[6610]:0xe4db99
autonomi.wasm.reqwest::wasm::response::Response::bytes::{{closure}}::hc25c18a282560e21@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[2291]:0xa4bd7c
autonomi.wasm.alloy_transport_http::reqwest_transport::<impl alloy_transport_http::Http<reqwest::wasm::client::Client>>::request_reqwest::{{closure}}::h9178d02ed046f1e3@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[285]:0x3f1bf0
autonomi.wasm.<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::ha08682eae24cbcc9@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[17770]:0x12807b1
autonomi.wasm.<core::pin::Pin<P> as core::future::future::Future>::poll::h393dfecfce25079a@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[38292]:0x15955ac
autonomi.wasm.<alloy_rpc_client::call::CallState<Params,Conn> as core::future::future::Future>::poll::h9291c6e0cb559a32@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[202]:0x2fc0d4
autonomi.wasm.futures_util::future::future::FutureExt::poll_unpin::h5072f6312dc611cb@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[61043]:0x16a0666
autonomi.wasm.<alloy_rpc_client::call::RpcCall<Conn,Params,Resp,Output,Map> as core::future::future::Future>::poll::h5c5fa3528c8d38a2@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[1279]:0x85f7e4
autonomi.wasm.alloy_rpc_client::poller::PollerBuilder<Conn,Params,Resp>::into_future::{{closure}}::h1176c2672f3ab241@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[189]:0x2c97a8
autonomi.wasm.<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::h9067762ef0bfcd18@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[16771]:0x1240f94
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::run::h66eff8e672cb7afd@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[8679]:0xf6e8e5
autonomi.wasm.wasm_bindgen_futures::queue::QueueState::run_all::h8e3a33f215aa08a6@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[7527]:0xed81c0
autonomi.wasm.wasm_bindgen_futures::queue::Queue::new::{{closure}}::h53297126ea7a9af8@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[38190]:0x159303a
autonomi.wasm.<dyn core::ops::function::FnMut<(A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::h7fe12fba6e8c9e8e@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[31097]:0x14d6789
__wbg_adapter_46@http://127.0.0.1:8000/pkg/autonomi.js:276:10
real@http://127.0.0.1:8000/pkg/autonomi.js:215:20
VoidFunction*__wbg_get_imports/imports.wbg.__wbg_queueMicrotask_12a30234db4045d3/<@http://127.0.0.1:8000/pkg/autonomi.js:738:23
logError@http://127.0.0.1:8000/pkg/autonomi.js:232:18
__wbg_get_imports/imports.wbg.__wbg_queueMicrotask_12a30234db4045d3@http://127.0.0.1:8000/pkg/autonomi.js:737:77
autonomi.wasm.wasm_bindgen_futures::queue::queueMicrotask::h8ce2e24f7c64e7d6@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[56740]:0x168c049
autonomi.wasm.wasm_bindgen_futures::queue::Queue::schedule_task::hbde92bf403639b53@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[13005]:0x1129517
autonomi.wasm.wasm_bindgen_futures::queue::Queue::push_task::hd33d7703b5c05bfc@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[66617]:0x16b2bff
autonomi.wasm.wasm_bindgen_futures::task::singlethread::Task::force_wake::{{closure}}::h4b418a3a75052d72@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[66620]:0x16b2c21
autonomi.wasm.std::thread::local::LocalKey<T>::try_with::h746322c67cfaac76@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[20198]:0x1309ffb
autonomi.wasm.std::thread::local::LocalKey<T>::with::h69fd1c78b75fac87@http://127.0.0.1:8000/pkg/autonomi_bg.wasm:wasm-function[29243]:0x1497b7a


autonomi.js:490:21

@b-zee b-zee changed the base branch from main to evm-dev October 4, 2024 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant