TypeError al intentar implementar un contrato con web3 1.0.0-beta.11

Estoy tratando de descubrir cómo implementar un contrato con web3 en la versión 1.0.0-beta.11, y no sé si tengo un error en web3, un problema de incompatibilidad con la versión de solc I' estoy usando, o si simplemente estoy haciendo algo mal.

Estoy usando la última versión de solc lanzada en NPM: 0.4.13. Estoy tratando de implementar el siguiente contrato:

contract Greetings {
    string message;

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

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

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

con la siguiente serie de instrucciones ejecutadas en una consola de nodo:

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)})

y allí, en el último, recibo el siguiente error críptico:

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

¿alguna idea de lo que estoy haciendo mal?

¿ Cuál es el valor de contractABIa partir de la cuarta línea?
Se actualizó la pregunta para mostrar el contrato ABI.
¿Hay más en el seguimiento de la pila que eso, o solo esa línea?
Tengo un error mientras intento implementar un contrato inteligente en mi cadena de bloques privada usando un servidor de nodo que muestra que el error no puede leer la propiedad 'dirección' de indefinido.

Respuestas (1)

Parece que #948 te está mordiendo . También vea esta otra pregunta . Debería resolverse en -beta.12, aparentemente