首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web3客户端不能在颤振应用程序中使用WalletConnect作为凭证写入合同

Web3客户端不能在颤振应用程序中使用WalletConnect作为凭证写入合同
EN

Stack Overflow用户
提问于 2022-08-19 22:30:08
回答 1查看 305关注 0票数 1

我使用web3dart结合了Ganache和Truffle来运行我的稳固合同,我的flutter应用程序可以很好地阅读合同,但是当我运行写到契约的函数时,它就不起作用了(不能从应用程序写到合同)。我在web3dart包上看到它说,在运行写到契约的函数时,应该使用.sendTransaction()而不是.call()

对于凭证,我使用了WalletConnect,我使用了在包示例源代码这里中编写的WalletConnectEthereumCredentials类。

事务从MetaMask钱包地址到合同地址(可以用EtherScan跟踪)都是成功的,但是合同数据仍然保持不变。

“稳固守则”:

代码语言:javascript
复制
   function update(string memory newMessage) public {
        message = newMessage;
} 

颤振守则:

代码语言:javascript
复制
      final cred = WalletConnectEthereumCredentials(provider: provider);
      try {
        var transactionId = await _web3client.sendTransaction(
            cred,
            Transaction.callContract(
              contract: _deployedContract,
              function: _updateFunction,
              parameters: ["NEW_MESSAGE"],
              from: EthereumAddress.fromHex(
                  cred.provider.connector.session.accounts[0]),
            ),
            chainId: 4);

你可以看到WalletConnectEthereumCredentialsWalletConnectEthereumCredentials在walletConnect 存储库上都有什么

EN

回答 1

Stack Overflow用户

发布于 2022-08-26 12:08:40

解决了!只需部署契约,而不是在机器上本地运行。

基本上,我试图对在Ganache上本地运行的合同进行事务处理。因此,我在松露上部署了合同,这解决了这个问题,我可以使用我的应用程序与合同完全交互。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73422813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档