gpt4 book ai didi

ethereum - 私有(private)以太坊网络无法识别发件人帐户

转载 作者:行者123 更新时间:2023-12-04 13:02:26 24 4
gpt4 key购买 nike

我目前正在 Solidity 中开发一个 dApp,并且正在开发一个 web3 库来处理与它的通信。

我在 web3 中创建新帐户和交易签名的过程中挣扎。在继续之前,值得注意的是,我正在运行自己的本地私有(private)区块链(目前使用 Ganache)。

我的代码如下所示:

try{
let a = web3.eth.accounts.create()
let dataTx = someContract.methods.someMethod().encodeABI()
let rawTx = {
to: someContract._address,
from: account.address,
data: dataTx,
gas: 10000000000
}


const transaction = web3.eth.accounts.signTransaction(rawTx, util.toBuffer(account.privateKey))
web3.eth.sendTransaction(rawTx).then(console.log)
}
catch(e){
console.log(e)
}

这里的问题是 web3.eth.sendTransaction()方法引发以下异常: Error: Returned error: sender account not recognized .

我的理解是 web3.eth.accounts用于管理本地帐户和 web3.eth.personal用于与客户端(例如 Geth)通信。我希望保留我的应用程序在 web3 客户端的设备上本地创建的帐户的私钥,但它引发了此异常。

我哪里错了?在运行交易之前,我应该在某处注册新创建的帐户吗?我在这里遗漏了一些重要信息吗?

谢谢!

最佳答案

如果您想使用 Ganache 提供给您以外的帐户,您必须开始 Ganache 以 private_key,initial_balance 的形式提供您的帐户数据:

示例命令: ganache-cli --account 0xf38b5679751228eab7d9f3aa02bd0b0c0f7b44e448c0cfd410a1d7053efb6c56,123456789
它的输出:

Ganache CLI v6.1.8 (ganache-core: 2.2.1)

Available Accounts ================== (0) 0x44fa41e453654ccb365a358e994c764a37eea91f (~0 ETH)

Private Keys ================== (0) 0xf38b5679751228eab7d9f3aa02bd0b0c0f7b44e448c0cfd410a1d7053efb6c56

Gas Price ================== 20000000000

Gas Limit ================== 6721975

Listening on 127.0.0.1:8545

关于ethereum - 私有(private)以太坊网络无法识别发件人帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com