网站搜索

目前在 Vite ReactJS 和 Typescript 中不支持“Wasm 的 ESM 集成提案”


我正在使用 ReactJS 和 TypeScript 结合 Vite,并且想从助记词获取地址。我创建了一个名为 generateAddressFromMnemonic 的函数,它以助记词字符串作为参数,但当我传入从 tiny-secp256k1 导入并在 BIP32Factory 中使用的 ecc 时,我遇到了 Vite 错误 “ESM integration proposal for Wasm” 目前在 Vite React 和 TypeScript 中不支持,如下图所示。这是在我使用 const bip32=BIP32Factory(ecc) 时出现的。我也尝试通过安装 wasm 并使用 Vite 插件进行配置,但还是出现了同样的错误。如何使用 bitcoinjs-lib、bip32 和 bip39 来解决这个问题?

import * as bip39 from 'bip39';
import * as bitcoin from 'bitcoinjs-lib';
import { BIP32Factory } from 'bip32';
import * as ecc from 'tiny-secp256k1';

const bip32 = BIP32Factory(ecc);

export const generateAddressFromMnemonic = async (mnemonic: string) => {
    const seed = bip39.mnemonicToSeedSync(mnemonic);
    const root = bip32.fromSeed(seed);
    const { address } = bitcoin.payments.p2pkh({ pubkey: root.derivePath("m/44'/1'/0'/0/0").publicKey });
    return address;
};