Cómo implementar un contrato de solidez en la cadena de bloques. myContract.new no es una función

Tengo un contrato que compila en browser solidity y solc. Usando el código de implementación generado automáticamente en la solidez del navegador o mi propia versión de npm, termino con el error

"myContract.new" no es una función.

Esto, según entendí, es una función intrínseca al tipo de Contrato, ya que es necesario para el despliegue. cuando lo hago console.log(myContract)me sale

[Función: Contrato vinculado].

Cuando trato de implementar, también hay un mensaje de error extremadamente inútil / salida de código aleatorio:

node_modules/solc/soljson.js:1 (función (exportaciones, requerir, módulo,
 __filename, __dirname) { var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var
 clave yo
 Módulo){if(Módulo.hasOwnProperty(clave)){moduleOverrides[clave]=Módulo[clave]}}var
 ENVIRONMENT_IS_WEB=tipodeventana==="objeto";var
 ENVIRONMENT_IS_WORKER=typeof importScripts==="función";var
 ENVIRONMENT_IS_NODE=tipodeproceso==="objeto"&&tipode
 require==="función"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var
 ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=función
 print(x){proceso["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=función
 imprimirErr(x){proceso["stderr"].escribir(x+"\n")};var
 nodeFS=require("fs");var
 nodePath=require("ruta");Módulo["leer"]=función
 leer (nombre de archivo, binario) {nombre de archivo = nodePath ["normalizar"] (nombre de archivo); var
 ret=nodeFS["readFileSync"](nombre de archivo);if(!re
¿Puede cambiar el nombre de su contrato a algo que no sea contracto Contract? Solo para asegurarse de que no está usando palabras reservadas.

Respuestas (1)

Asegúrese de estar utilizando la versión adecuada de web3 para js.

Por ejemplo, ethereum.jsparece estar desactualizado

Así que asegúrese de que su secuencia de comandos javascript comience con:

var Web3 = require('web3'); 
var web3 = new Web3();

no

var web3 = require('ethereum.js');