Estoy trabajando en algunos proyectos usando truffle, como saben, truffle compila y migra contratos a varias redes ethereum, por ejemplo, MyContract.sol produce MyContract.json que contiene una referencia a la dirección de ese contrato en esa red junto con abi.
Uno de los problemas que tenemos es cómo compartir estos archivos de compilación generados entre el equipo de desarrolladores que trabajan en el proyecto.
¿Alguien ha tenido alguna experiencia con este problema y cuál es la mejor solución?
Los principales problemas:
Si asignamos los archivos de compilación al control de código fuente, contienen elementos que son específicos de la máquina local de los usuarios, por ejemplo, sourcePath y absolutePath
Si no los confirmamos, debemos actualizar manualmente los archivos abi json para que apunten a la dirección de contrato correcta
Siento que tal vez no entendemos cuál es el proceso correcto que se debe usar cuando se usa trufa entre equipos de más de unas pocas personas en un proyecto común
Toda ayuda apreciada
No sé si hay una respuesta real para eso, pero uso esta solución: cambio el archivo de migración y escribo el ABI y su dirección después de la implementación.
var fs = require('fs'); var MiContrato = artefactos.require('./MiContrato.sol'); var fileContent = require('../build/contracts/MyContract.json'); módulo.exportaciones = función (implementador) { deployment.deploy(MiContrato).then(() => { var contractConfiguration = { abi: contenido del archivo.abi, dirección: MiContrato.dirección }; fs.writeFileSync('contractConfiguration/MyContract.json', JSON.stringify(contractConfiguration), { flag: 'w' }); }); };
En mi caso, lo uso para tener la información de mi contrato siempre actualizada para fines de interfaz de usuario. Entonces, la interfaz de usuario leerá la información dentro de la contractConfiguration
carpeta y siempre tendrá la dirección actualizada y ABI.
kaki maestro del tiempo
Jimbob1987