Fehler: ungültige Adresse während des Truffle-Migrationsprozesses im Rinkeby-Netzwerk

Ich kann meinen Vertrag nicht über im Rinkeby-Netzwerk bereitstellen truffle migrate --reset --network rinkeby.

Meine truffle.js-Datei sieht so aus:

{ networks: { rinkeby: { { from : 'my_unlocked_and_non_empty_wallet_address', network_id : 4, gas : 2700000, gasPrice : 20000000000, host : "localhost", port : 8545 } } } }

Der Geth-Knoten wird in Docker auf demselben Host ausgeführt, auf dem ich versuche, ihn bereitzustellen. Ich habe mich erfolgreich über die Truffle-Konsole mit diesem Knoten verbunden.

Beim Ausführen truffle migrate --reset --network rinkebybekomme ich einen Fehler:

Laufende Migration: 1_initial_migration.js Bereitstellen von Migrationen... ... 0x076235e944e70e561a0b9b6b14307157d07775d67a46689e44ffaf7675829b84 /home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffleled/build/cli.bund 'ungültige Adresse'); ^

Fehler: ungültige Adresse bei inputAddressFormatter (/home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffle/build/cli.bundled.js:30534:11) bei /home/admin/.nvm/ versions/node/v8.2.1/lib/node_modules/truffle/build/cli.bundled.js:36660:28 bei Array.map (nativ) bei Method.formatInput (/home/admin/.nvm/versions/node/v8 .2.1/lib/node_modules/truffle/build/cli.bundled.js:36659:32) unter Method.toPayload (/home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffle/build/ cli.bundled.js:36685:23) unter Eth.send [as getCode] (/home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffle/build/cli.bundled.js:36710 :30) unter Object.callback (/home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffle/build/cli.bundled.js:241521:39) unter /home/admin/.nvm /versions/node/v8.2.1/lib/node_modules/truffle/build/cli.bundled.js:36713:25 unter /home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffle/build/cli.bundled.js:243485:9 unter /home/admin/.nvm/versions/node/v8.2.1/lib/node_modules/truffle/ build/cli.bundled.js:78847:11

Die Vertragserstellungstransaktion aus der Ausgabe kann hier gegründet werden: 0x076235e944e70e561a0b9b6b14307157d07775d67a46689e44ffaf7675829b84

Es ist ein Ergebnis der kleinen Debugging -Datei cli.bundled.js .

Dies ist, was ich bekomme, wenn ich versuche, im testrpc -Netzwerk bereitzustellen:

... 0x34865735e70707919805f2850b823e67adb25ff0fe059d5ece5836d9430a7208 [ [Function: inputAddressFormatter], [Function: inputDefaultBlockNumberFormatter] ] [ '0x97280c75faa2e7e1b2a182e34fffcb77c58b9b56' ] Migrations: 0x97280c75faa2e7e1b2a182e34fffcb77c58b9b56

Und im Rinkeby -Netzwerk:

... 0xa2a4697161936052f320bbce9171600741cf155785d25ecf45d914f1445be648 [ [Funktion: inputAddressFormatter], [Funktion: inputDefaultBlockNumberFormatter] ] [ null ]

Wie wir sehen können, haben wir im Fall von Rinkeby keine gültige Vertragsadresse, sondern eine Null. Aber... warum ist es passiert?

Okay, ich bin tiefer gegangen.

Wenn also diese Zeile ( https://github.com/ethereum/web3.js/blob/7560f273359071afae31d010b97fa1872dacd66c/lib/web3/contract.js#L119 ) des web3.js-Codes (Zeile 222802 in Truffels cli.bundled.js ) ausgeführt wird ) erhalten wir eine Antwort mit null im Feld contractAddress .

Zum Beispiel:

{ blockHash: '0xd08cee7ec0d9e50185099ca403b53798081f94ba73bbb9caa7a72fa2afb2591f', blockNumber: 696482, contractAddress: null, cumulativeGasUsed: 201492, from: '0xdc2e0c6e3d08bc53200ea0a90ec4f550d9d1f616', gasUsed: 0, logs: [], logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', root: '0x4ae760bf36bd646016db7018f16f6e5fadc2200aee17a89337b6d0a26534fb03', to: null, transactionHash: '0x6863a10cc9e42f62056f5defebd9f249ced92c024c1cb2ed94ae1a1efb1a5cc5', transactionIndex: 0 }

Und ein Beispiel für testrpc, das richtig funktioniert:

{ transactionHash: '0x55bb0dc39488b897ced17831ff6308741045b463993d3b2d239748434b134b89', transactionIndex: 0, blockHash: '0xa04dc4a145b6884dfa78cfc4d55888b4e6c2ed41b8888cff72458728b474f6da', blockNumber: 15, gasUsed: 201262, cumulativeGasUsed: 201262, contractAddress: '0x0bfed93fdbcd00323918ad1d361cd999ba291ce4', logs: [] }

Antworten (1)

Ich habe den Grund gefunden. ContractAddress ist null , weil ich den Geth-Knoten im Embedded/Light-Modus verwende - er hat nicht genügend Informationen über Blockchain. Problem kann geschlossen werden.