首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何发送事务Infura + Web3.js + WalletConnectProvider

如何发送事务Infura + Web3.js + WalletConnectProvider
EN

Ethereum用户
提问于 2021-10-11 16:22:37
回答 1查看 2.1K关注 0票数 0

我希望使用以下堆栈启动事务。但是,恩弗拉不支持web3.eth.sendTransaction(tx),因为它需要服务器保存私钥。这是一个链接,它应该如何工作https://example.walletconnect.org/和回购https://github.com/WalletConnect/walletconnect-example-dapp

到目前为止,这就是我所拥有的。

代码语言:javascript
复制
        const provider = new WalletConnectProvider({
            infuraId: "**************",
        })

        await provider.enable();

        const web3 = new Web3(provider);

        web3.eth.getAccounts().then((account) => {
            console.log("kk", account)
            setAccount(account)
        }).catch((err) => {
            console.log("Failed to get accounts", err)
        })

        web3.eth.getBalance(account[0]).then((balance) => {
            setAccountBalance(balance)
        }).catch((err) => {
            console.log("ayre", err)
        })
EN

回答 1

Ethereum用户

发布于 2021-10-11 23:09:18

您可以使用合同函数,这样就可以了。例如,如果您想启动一个ETH事务,并且您的合同中有用于购买货物的函数buy(),您可以使用您的合同实例调用它:

声明合同实例:

代码语言:javascript
复制
const instance = new web3.eth.Contract(contract.abi, contractAddress)

使用契约实例调用您的函数

代码语言:javascript
复制
instance.methods.yourContractFunction().send({from: accounts[0],value:price}).then("confirmation",(confirmation) => {
        console.log(confirmation)
      }).catch("error", (error) => {
        console.log(error)
      })
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/111406

复制
相关文章

相似问题

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