Führen Sie Transaktionen manuell mit testrpc und truffle aus

Ich habe angefangen, ein bisschen in der Geth-Konsole zu arbeiten:

geth --dev console 

sind aber zur Entwicklung mit Trüffel übergegangen.

Zum Debuggen in der Geth-Konsole bin ich es gewohnt, Folgendes auszuführen:

eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1, "ether")});

dann manuell aufrufen miner.start().

Gibt es eine Möglichkeit, dies mit testrprc zu tun?

Antworten (2)

Anstelle von $geth --dev consolekönnen Sie Folgendes tun:

$testrpcGeben Sie am Terminal ein, um testrpc zu aktivieren .

Stellen Sie dann Ihre Verträge bereit und öffnen Sie die Truffle-Konsole wie hier beschrieben . Die Truffle-Konsole hat Zugriff auf die web3- API, und daher können Sie praktisch die gleichen Dinge tun wie Ihre Geth-Konsole.

Für die Schritte im obigen Absatz öffnen Sie kurz gesagt ein anderes Terminal und tun $truffle deployund dann $truffle console. Wenn die Konsole geöffnet wird, können Sie eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1, "ether")});wie gewohnt tippen.

Da testrpc Ihre Verträge testen und die Ethereum-Umgebung simulieren soll. Natürlich können Sie Transaktionen durchführen, aber es wird kein Mining stattfinden, sobald Sie Ether abgezogen und erhalten haben. Wie @EugVal erwähnt hat, können Sie es in der Truffle-Konsole testen.

Im testrpc:

truffle(development)> web3.eth.getBalance(web3.eth.accounts[0])
                { [String: '98599991999999979000'] s: 1, e: 19, c: [ 985999, 91999999979000 ] }

truffle(development)> web3.eth.getBalance(web3.eth.accounts[1])
                { [String: '101000000000000000000'] s: 1, e: 20, c: [ 1010000 ] }

truffle(development)> web3.eth.sendTransaction({from: web3.eth.accounts[0], to: web3.eth.accounts[1], value: web3.toWei(1, "ether")});
                '0x3b9
        115191839b371200e107600c27e98ef64b2b823e7b4e02556262db06ee609'

truffle(development)> web3.eth.getBalance(web3.eth.accounts[0])
                { [String: '97599991999999958000'] s: 1, e: 19, c: [ 975999, 91999999958000 ] }

truffle(development)> web3.eth.getBalance(web3.eth.accounts[1])
                { [String: '102000000000000000000'] s: 1, e: 20, c: [ 1020000 ] }