He implementado un contrato usando truffle en la red testrpc. Necesito escribir un código Javascript que pueda conectarse al contrato y ejecutar las funciones del contrato, pero no sé cómo hacerlo.
Editar:
Ahora estoy usando truffle-contract
y truffle-artifactor
para conectarme a contratos implementados. Aquí está el código del artefacto:
var Web3 = require('web3');
var fs = require("fs");
var Artifactor = require("truffle-artifactor");
var provider = new Web3.providers.HttpProvider("http://localhost:8545");
var contract = require("truffle-contract");
var temp = require("temp").track();
var path = require("path");
var requireNoCache = require("require-nocache")(module);
var abiVal = JSON.parse(fs.readFileSync('./build/contracts/DINRegistry.json'))
var contractData = {
contract_name: "DINRegistry",
abi: abiVal
}
var dirPath = temp.mkdirSync({
dir: path.resolve("./"),
});
var my_path = '/home/lee/Music/DIN-master';
var expected_filepath = path.join(my_path, '/build/contracts/DINRegistry.json')
function artifactCreator() {
const artifactor = new Artifactor(my_path);
artifactor.save({
contract_name: "DINRegistry",
abi: abiVal
}, "./DINRegistry.sol.js")
}
artifactCreator();
El código no puede crear el archivo DINRegistry.sol.js
. ¿Qué es incorrecto en este código?
Teníamos este mismo requisito en uno de los proyectos en los que interactuamos con el contrato implementado de truffle desde JavaScript. Puede consultar este script como referencia: https://github.com/Imaginea/lms/blob/master/server/routes.js
Básicamente, estamos haciendo las siguientes cosas:
Espero que esto ayude.
lee huang