Я делаю простое dApp, которое отправляет средства с одной учетной записи на другую, используя Truffle + MetaMask на testrpc. В моем app.js у меня есть функция pay(), которая вызывает
web3.eth.sendTransaction({from: account1, to: account2, value: web3.toWei(amount,"ether")}
Когда функция запускается через HTML-страницу и транзакция появляется в MetaMask, средства списываются со счета 1, но не отображаются на счете 2. Я думаю, это может быть из-за того, что контракт не был добыт должным образом или MetaMask работает медленно? Расширение Chrome показывает контракт как «Опубликованный», а не «Ожидающий».
Если я выполню ту же команду через консоль трюфеля, транзакция будет обработана соответствующим образом, и я смогу убедиться, что значение было передано из учетной записи 1 в учетную запись 2. Как я могу это исправить? Я попытался перезапустить хром.
Ссылка на мой файл app.js: https://gist.github.com/jw122/bda506dc831e200ac5eb397b36cb2db5
Ссылка на контракт солидности: https://gist.github.com/jw122/c561c8059ca239df6623db9080805634
Я развертываю контракт в 2_deploy_contract.js с помощью:
deployer.deploy(Purchase, web3.eth.accounts[1], web3.eth.accounts[2], {from: web3.eth.accounts[0], gas: 4000000});
Кажется, это связано с последней версией Google Chrome (59.0.3071.115). Я испытываю те же проблемы, что и вы. Metamask ведет себя так, как будто Tx прошел, но в выводе testrpc ничего не отображается.
Страница выпусков Metamask на Gituhub также чувствует боль. См. ссылки ниже.
https://github.com/MetaMask/metamask-plugin/issues/1705 https://chromereleases.googleblog.com/2017/06/stable-channel-update-for-desktop_26.html
джву
cКабан
джву
eth_sendRawTransaction Transaction: <address> Contract created: <address> Gas usage: 0xcf08 Block Number: 0x09 Block Time: Thu Jul 06 2017 19:51:33 GMT-0300 (-03)
Итак, в консоли есть запись. Но когда я делаю sendTransaction() непосредственно в консоли, он сообщает eth_sendTransaction вместо eth_sendRawTransaction.cКабан
web3.eth.getTransactionReceipt(<address>)
и посмотреть, что там написано? Кроме того, у вас есть суть кода, на который вы можете ссылаться?джву
cКабан
джву
{ transactionHash: '0x177f4464ee67ee75a3837a4dde9fb62608f90a853077cf693113047d49fc7bef', transactionIndex: 0, blockHash: '0x0d2c54d168cbd51f97229178525cd8fe225bb1291aaadab506c438268e4506f2', blockNumber: 21, gasUsed: 53000, cumulativeGasUsed: 53000, contractAddress: '0x4ad6a1f565935c93153c5ec7747e0b1c42bb556a', logs: [] }