TypeError beim Versuch, einen Vertrag mit web3 1.0.0-beta.11 bereitzustellen

Ich versuche herauszufinden, wie ich einen Vertrag mit web3 in Version 1.0.0-beta.11 bereitstellen kann, und ich weiß nicht, ob ich auf einen Fehler in web3 stoße, ein Inkompatibilitätsproblem mit der Version von solc I. m benutze, oder wenn ich einfach etwas falsch mache.

Ich verwende die neueste Version von Solc, die auf NPM veröffentlicht wurde: 0.4.13. Ich versuche, den folgenden Vertrag bereitzustellen:

contract Greetings {
    string message;

    function Greetings() {
        message = "I am ready!";
    }

    function setGreetings(string _message) public {
        message = _message;
    }

    function getGreetings() constant returns (string) {
        return message;
    }
}

mit der folgenden Reihe von Anweisungen, die in einer Knotenkonsole ausgeführt werden:

sourceCode = fs.readFileSync('Greetings.sol').toString()
compiledCode = solc.compile(sourceCode)
contractABI = JSON.parse(compiledCode.contracts[':Greetings'].interface)

[ { constant: false,
inputs: [ [Object] ],
name: ‘setGreetings’,
outputs: [],
payable: false,
type: ‘function’,
signature: ‘0x49da5de4’ },
{ constant: true,
inputs: [],
name: ‘getGreetings’,
outputs: [ [Object] ],
payable: false,
type: ‘function’,
signature: ‘0xca4c3a41’ },
{ inputs: [],
payable: false,
type: ‘constructor’,
signature: ‘constructor’ } ]

contract = new web3.eth.Contract(contractABI)
byteCode = compiledCode.contracts[':Greetings'].bytecode
contract.deploy({data: byteCode, arguments:[]}).send({from: '0x00D1AE0A6fC13B9ecdefA118B94cF95ac16D4ab0', gas: 4700000}).on('error', function(error){console.error(error);}).then(function(newContractInstance){console.log(newContractInstance.options.address)})

und dort auf dem letzten erhalte ich den folgenden kryptischen Fehler:

TypeError: Cannot read property 'length' of undefined
    at /Users/jdoe/myproject/node_modules/web3/packages/web3-eth-contract/src/index.js:356:43

irgendeine Ahnung was ich falsch mache?

Was ist der Wert von contractABIab der vierten Zeile?
Die Frage wurde aktualisiert, um die Vertrags-ABI anzuzeigen
Beinhaltet der Stack-Trace mehr als das oder nur diese eine Zeile?
Ich habe einen Fehler, während ich versuche, Smart Contract in meiner privaten Blockchain bereitzustellen, indem der Knotenserver verwendet wird, der den Fehler anzeigt, dass die Eigenschaft „Adresse“ von undefiniert nicht gelesen werden kann.

Antworten (1)

Scheint, als würden Sie von #948 gebissen . Siehe auch diese andere Frage . -beta.12Sollte anscheinend in gelöst werden