Web3 & Paymaster:如何使用 web3js 调用智能合约并让 Paymaster 支付 Gas 费?

问题描述 投票:0回答:1

我正在寻找一种通过 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。

angular blockchain smartcontracts web3js
1个回答
0
投票

我首先要确保您已遵循 GSN 文档上的“入门”,无论是

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。

© www.soinside.com 2019 - 2024. All rights reserved.