blockchain tutorial Error: The send transactions "from" field must be defined
blockchain tutorial Error: The send transactions "from" field must be defined
我正在关注 dappuniversity 的区块链教程。
当我在行中创建任务时
await App.todoList.createTask(content)
我收到以下错误:
Uncaught (in promise) Error: The send transactions "from" field must be defined!
at Method.inputTransactionFormatter (truffle-contract.js:50747)
at truffle-contract.js:51228
at Array.map (<anonymous>)
at Method.formatInput (truffle-contract.js:51226)
at Method.toPayload (truffle-contract.js:51261)
at Eth.send [as sendTransaction] (truffle-contract.js:51551)
我需要在某处定义一个 'from' 字段吗?
我使用的是最新的truffle/contract。我需要在我的 createTask 方法中指定来自帐户,如下所示:
await App.todoList.createTask(content, { from: web3.eth.defaultAccount})
这有效。
由于最近的 Metamask 更新以及从 web3.currentProvider
移动到 window.ethereum
,我 运行 遇到了上述答案的问题
我能够使用
await App.todoList.createTask(content, {from: App.account})
使用最新的依赖项,上述答案中的 none 对我有用。
我必须编辑 loadAccount 方法:
loadAccount: async () => {
// Set the current blockchain account
const accounts = await web3.eth.getAccounts();
App.account = accounts[0];
},
然后将App的账号传给createTask方法:await App.todoList.createTask(content, { from: App.account })
我在 Remix 上与部署在 Rinkeby 上的合约交互时发生了同样的事情。我为环境选择了 injected web3
,但是 account
字段是空的。
发生这种情况是因为我先拒绝了与 metamask 的连接,然后没有收到任何其他与 metamask 连接的请求。所以我刷新了 remix,锁定和解锁了 metamask。它发送了连接到元掩码的请求
我正在关注 dappuniversity 的区块链教程。
当我在行中创建任务时
await App.todoList.createTask(content)
我收到以下错误:
Uncaught (in promise) Error: The send transactions "from" field must be defined!
at Method.inputTransactionFormatter (truffle-contract.js:50747)
at truffle-contract.js:51228
at Array.map (<anonymous>)
at Method.formatInput (truffle-contract.js:51226)
at Method.toPayload (truffle-contract.js:51261)
at Eth.send [as sendTransaction] (truffle-contract.js:51551)
我需要在某处定义一个 'from' 字段吗?
我使用的是最新的truffle/contract。我需要在我的 createTask 方法中指定来自帐户,如下所示:
await App.todoList.createTask(content, { from: web3.eth.defaultAccount})
这有效。
由于最近的 Metamask 更新以及从 web3.currentProvider
移动到 window.ethereum
我能够使用
await App.todoList.createTask(content, {from: App.account})
使用最新的依赖项,上述答案中的 none 对我有用。 我必须编辑 loadAccount 方法:
loadAccount: async () => {
// Set the current blockchain account
const accounts = await web3.eth.getAccounts();
App.account = accounts[0];
},
然后将App的账号传给createTask方法:await App.todoList.createTask(content, { from: App.account })
我在 Remix 上与部署在 Rinkeby 上的合约交互时发生了同样的事情。我为环境选择了 injected web3
,但是 account
字段是空的。
发生这种情况是因为我先拒绝了与 metamask 的连接,然后没有收到任何其他与 metamask 连接的请求。所以我刷新了 remix,锁定和解锁了 metamask。它发送了连接到元掩码的请求