Obtener una dirección no válida o parámetros no válidos al implementar un nuevo contrato en la red de prueba con Parity

Estoy tratando de implementar un nuevo contrato en la red y obtengo dos errores dependiendo de cómo lo haga exactamente. Como no puedo obtener el contrato de compilación ABI en Parity, lo uso solc --abipara obtenerlo. Ahora, dependiendo de si uso código compilado o lo compilo en Parity, obtengo uno de los dos errores siguientes:

..node_modules/web3/lib/web3/formatters.js:271
arroja un nuevo error ('dirección no válida');

Error: dirección no válida - (al compilar el contrato con web3 en Parity)

o

Error: Parámetros no válidos - (al usar un contrato compilado con solc)

¿Alguna idea de lo que estoy haciendo mal? Aquí está el código:

var Web3 = require("web3");
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

web3.eth.defaultAccount=web3.eth.accounts[0]

var source = "" +
"contract test {\n" +
"   function multiply(uint a) returns(uint d) {\n" +
"       return a * 7;\n" +
"   }\n" +
"}\n";
//var compiled = web3.eth.compile.solidity(source);

var compiled = 0x606060405260788060106000396000f360606040526000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa1146039576035565b6002565b34600257605160048080359060200190919050506067565b6040518082815260200191505060405180910390f35b60006007820290506073565b91905056;

console.log(compiled);

var abi = [{"constant":true,"inputs":[{"name":"a","type":"uint256"}],"name":"multiply","outputs":[{"name":"d","type":"uint256"}],"payable":false,"type":"function"}]

web3.eth.contract(abi).new({data: compiled}, function (err, contract) {
    if(err) {
        console.error(err);
        return;
        // callback fires twice, we only want the second call when the contract is deployed
    } else if(contract.address){
        var myContract = contract;
        console.log('address: ' + myContract.address);
    }
});

Vale la pena señalar que llamar:

web3.eth.compile.solidity(source);

da:

0x606060405260308060106000396000f3606060405260e060020a6000350463c6888fa18114601c575b6002565b346002576007600435026060908152302091526020

mientras solc --binda:

0x606060405260788060106000396000f360606040526000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa1146039576035565b6002565b34600257605160048080359060200190919050506067565b6040518082815260200191505060405180910390f35b60006007820290506073565b91905056

¿No deberían dar el mismo resultado?

No necesita las nuevas líneas en la fuente. En realidad es mejor dejarlos fuera.
Además, el problema es que necesita comillas alrededor del código de bytes. es decir, var compilado = "0x6060..."
@TjadenHess probó ambos y ahora aparece Error: dirección no válida en ambos casos. Lanzado en formatters.js
Oh, eso es porque necesitas un from: campo en el objeto tx en la newllamada. Solo ponlo from:eth.coinbaseantes del campo de datos.
@TjadenHess agregado desde: web3.eth.accounts[0] y sigue siendo el mismo problema.

Respuestas (1)

Hubo un error en Parity 1.3.0. Después de actualizar a 1.3.2 funciona bien.

Más detalles aquí

problema todavía en 2.1.1