Я пытаюсь использовать библиотеку JavaScript Web3 от Rust, и я застрял. Стандартное использование библиотеки начинается с:
// In Node.js use: const Web3 = require('web3');
let web3 = new Web3(Web3.givenProvider || "ws://localhost:8545");
Модуль, который вы должны импортировать, является конструктором, который также имеет некоторые другие свойства. Мой код Rust, который должен связывать этот API, выглядит так:
#[wasm_bindgen(module = "web3")]
extern "C" {
type Web3;
#[wasm_bindgen(constructor)]
fn new(_: &Provider) -> Web3;
type Provider;
static givenProvider: Provider;
}
Что в итоге приводит к выводу import { Web3, givenProvider } from 'web3';
и попытке запустить new Web3(...)
, что терпит неудачу. Он должен делать что-то вроде import * as Web3 from 'web3';
, запускать new Web3(...)
и ссылаться на Web3.givenProvider
.
Как мне заставить wasm-bindgen выводить такой код?