Estoy tratando de usar Truffle para probar algunos contratos siguiendo sus documentos . Como se especifica, instalé truffle, testrpc, creé el contrato de migración y funcionó bien.
Corriótruffle compile
$ truffle compile
Compiling ./contracts/User1.sol...
Compiling ./contracts/User2.sol...
Compiling ./contracts/Registry.sol...
Writing artifacts to ./build/contracts
ytruffle migrate
$ truffle migrate
Using network 'development'.
Network up to date.
y ambos parecían estar bien.
El problema se estaba ejecutando tratando de interactuar con un contrato usandotruffe console
$ truffle console
Unexpected error: Cannot provision contracts while instantiating the console.
: Unexpected end of JSON input
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:213724:27
at tryToString (fs.js:456:3)
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:443:12)
truffle(development)> User1.deployed()
ReferenceError: User1 is not defined
Si ayuda, la estructura del directorio es
├── build
│ ├── Icon\r
│ └── contracts
│ ├── ConvertLib.json
│ ├── User1.json
│ ├── Icon\r
│ ├── MetaCoin.json
│ ├── Migrations.json
│ ├── User2.json
│ ├── Registry.json
│ ├── Storage.json
├── contracts
│ ├── User1.sol
│ ├── Migrations.sol
│ ├── User2.sol
│ ├── Registry.sol
├── migrations
│ ├── 1_initial_migration.js
│ ├── 2_user1_migration.sol
│ ├── 3_user2_migration.sol
│ ├── 4_registry_migration.sol
│ └── Icon\r
├── test
│ ├── Icon\r
│ ├── TestMetacoin.sol
│ └── metacoin.js
└── truffle.js
¿Cómo puedo arreglar esto?
Pregunté en Truffle's Gitter y la forma de resolverlo fue creando otro directorio y cambiando el proyecto allí. Además, mi carpeta de documentos predeterminada está en Google Drive y descubrí que cada vez que tenía problemas como este (también tenía una cadena de bloques de ethereum privada que no se iniciaba), la movía a una carpeta que no está en Google Drive (Escritorio, etc.) lo haría funcionar.
No estoy seguro de si esto es realmente una cosa o no, pero podría valer la pena intentarlo si estás atrapado en la misma situación.
Eso puede deberse a que no tiene el paquete @truffle/contract. Yo tuve el mismo problema. Después de ejecutar sudo npm install -g @truffle/contract
el problema se resolvió. Consulte más en https://github.com/trufflesuite/truffle/tree/master/packages/contract .
gracias mcansado, tuve el mismo problema con Dropbox. no hay forma de ver los contratos implementados en Ganache, hasta que se mueva de Dropbox a la carpeta del disco local. parece ser un problema al usar el servicio RPC con Dropbox o Google Drive...
0TTT0
Parto Patel