如何将ABI与Next.js一起使用



问题

我正在使用Next.js和ZKSwap API进行一些开发,但我不知道如何使用部署的智能合约的ABI。

具体来说,我想把这个叫做DepositETH。

https://en.wiki.zks.org/interact-with-zkswap/make-transaction#deposit-eth

我似乎需要配置这个ABI来调用它,但我不知道如何配置它

https://en.wiki.zks.org/interact-with-zkswap/make-transaction#abis

我做了什么

我按如下方式实现了它,但它没有起作用。

import { Wallet, Contract, utils } from 'ethers'
import Web3 from 'web3'
import zkswapABI from '../src/zkswap.ABI.json'
const Web3EthAbi = require('web3-eth-abi');

export default function zkswap() {
//try2
let ABI = zkswapABI
const wallet = new Wallet('0x1c1a49fea9a4ede1dc8e582639f498d41fa3c4a9e2ab2b9d740a4a3ec14e1cbf')
const contract = new Contract('0x8ECa806Aecc86CE90Da803b080Ca4E3A9b8097ad', ABI, wallet)
async function depositETH(amount) {
const tx = await contract.depositETH(wallet.address, {
value: utils.parse(amount)
})
return tx
}
depositETH('0.5').then(console.log)
return (
<div>
<section className="h-screen w-4/5 max-w-5xl mx-auto flex items-center justify-center flex-col">
<h1 className="mb-4 text-green-500 text-3xl">sample</h1>
<p className="mb-2 text-center"> ZKSwap </p>
<button className="btn-blue" onClick={depositETH}> Deposit ETH</button>
</section>
</div>
)
}

错误

事实上,当我尝试"纱线开发"时,我得到了一个类似的错误

TypeError: ethers__WEBPACK_IMPORTED_MODULE_1__.utils.parse is not a function

您不应该在第4行使用requireconst Web3EthAbi=require('web3-eth-abi');//是错误的。

而是使用从"导入Web3EthAbiweb3 eth abi’";

最新更新