我正在寻找一种通过 Angular 17 中的 web3js 调用智能合约函数的方法。 天然气费应通过付款主合同支付。 我怎样才能实现这个目标?
web3版本:4.6.0 角度版本:17 网络:zkSync
const web3 = new Web3(window.ethereum);
const nftContract = await new web3.eth.Contract(environment.nftTokenAbi, tokenAddress);
const data = nftContract.methods.mint(address).encodeABI();
const transactionParameters = {
to: tokenAddress,
from: senderAddress,
data,
};
const txHash = await web3.eth.sendTransaction(transactionParameters);
我已经尝试使用 @opengsn/provider 并将给定的 RelayProvider 设置为 Web3-Constructor。 但到目前为止这还没有奏效,因为找不到 RelayProvider-Class。
v2.2.5
或 v3.0.0-beta
。
如果您收到错误提示无法找到
RelayProvider
,也许您忘记安装它了?
npm install --save @opengsn/provider
您可以在他们的 Workshop repo 中找到分步工作项目(更改位于 3 个不同的分支中,或在 PR 中,而不是在
main
中):https://github.com/opengsn/workshop
否则,您可能想看看ERC-4337,即使我认为zkSync本身就支持帐户抽象和Paymasters,所以您甚至可能不需要GSN或ERC-4337。