How does the new Wasi feature work for ic-cdk
? I don’t really see any documentation. I’m trying to get Azle updated to wasi, which is a prerequisite to swapping out the current engine for QuickJS. I’d also like to take advantage of the new Candid generation capabilities.
So far I’m getting a bunch of weird errors with ic-cdk
0.10.0 when I turn on the wasi feature. Do I need to use the ic-wasi-polyfill? Do I need to use wasi2ic?
Errors:
error: duplicate init method
--> src/src/lib.rs:13438:4
|
13438 | fn init() {
| ^^^^
error: duplicate method name getRandomnessDirectly
--> src/src/lib.rs:13515:10
|
13515 | async fn _cdk_user_defined_getRandomnessDirectly() -> (ic_cdk::api::call::ManualReply<
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: duplicate method name getRandomnessIndirectly
--> src/src/lib.rs:13567:10
|
13567 | async fn _cdk_user_defined_getRandomnessIndirectly() -> (ic_cdk::api::call::ManualReply<
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: duplicate method name getRandomnessSuperIndirectly
--> src/src/lib.rs:13619:10
|
13619 | async fn _cdk_user_defined_getRandomnessSuperIndirectly() -> (ic_cdk::api::call::ManualReply<
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: duplicate method name returnPromiseVoid
--> src/src/lib.rs:13671:10
|
13671 | async fn _cdk_user_defined_returnPromiseVoid() -> (ic_cdk::api::call::ManualReply<()>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error[E0425]: cannot find function `init` in this scope
--> src/src/lib.rs:13438:4
|
13438 | fn init() {
| ^^^^ not found in this scope
error[E0425]: cannot find function `_cdk_user_defined_getRandomnessDirectly` in this scope
--> src/src/lib.rs:13515:10
|
13513 | #[ic_cdk_macros::update(name = "getRandomnessDirectly", manual_reply = true)]
| ----------------------------------------------------------------------------- similarly named function `_cdk_user_defined_getRandomnessDirectly_3_` defined here
13514 | #[candid::candid_method(update, rename = "getRandomnessDirectly")]
13515 | async fn _cdk_user_defined_getRandomnessDirectly() -> (ic_cdk::api::call::ManualReply<
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_cdk_user_defined_getRandomnessDirectly_3_`
error[E0425]: cannot find function `_cdk_user_defined_getRandomnessIndirectly` in this scope
--> src/src/lib.rs:13567:10
|
13565 | #[ic_cdk_macros::update(name = "getRandomnessIndirectly", manual_reply = true)]
| ------------------------------------------------------------------------------- similarly named function `_cdk_user_defined_getRandomnessIndirectly_4_` defined here
13566 | #[candid::candid_method(update, rename = "getRandomnessIndirectly")]
13567 | async fn _cdk_user_defined_getRandomnessIndirectly() -> (ic_cdk::api::call::ManualReply<
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_cdk_user_defined_getRandomnessIndirectly_4_`
error[E0425]: cannot find function `_cdk_user_defined_getRandomnessSuperIndirectly` in this scope
--> src/src/lib.rs:13619:10
|
13617 | #[ic_cdk_macros::update(name = "getRandomnessSuperIndirectly", manual_reply = true)]
| ------------------------------------------------------------------------------------ similarly named function `_cdk_user_defined_getRandomnessSuperIndirectly_5_` defined here
13618 | #[candid::candid_method(update, rename = "getRandomnessSuperIndirectly")]
13619 | async fn _cdk_user_defined_getRandomnessSuperIndirectly() -> (ic_cdk::api::call::ManualReply<
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_cdk_user_defined_getRandomnessSuperIndirectly_5_`
error[E0425]: cannot find function `_cdk_user_defined_returnPromiseVoid` in this scope
--> src/src/lib.rs:13671:10
|
13669 | #[ic_cdk_macros::update(name = "returnPromiseVoid", manual_reply = true)]
| ------------------------------------------------------------------------- similarly named function `_cdk_user_defined_returnPromiseVoid_6_` defined here
13670 | #[candid::candid_method(update, rename = "returnPromiseVoid")]
13671 | async fn _cdk_user_defined_returnPromiseVoid() -> (ic_cdk::api::call::ManualReply<()>) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_cdk_user_defined_returnPromiseVoid_6_`