Vacío contract.methods Usando web3 JS 1.0.0-beta30

Estoy intentando llamar a un método en un contrato implementado localmente con el siguiente código usando web3 JS 1.0.0-beta30.

const tradingCardABI = JSON.parse(fs.readFileSync('build/contracts/TradingCard.json')).abi;

const ownerAddress = process.env.OWNER_ADDRESS || '0x627306090abaB3A6e1400e9345bC60c78a8BEf57';
const contractAddress = process.env.CONTRACT_ADDRESS || '0xf25186b5081ff5ce73482ad761db0eb0d25abfbf';

const tradingCardContract = new web3.eth.Contract(tradingCardABI, contractAddress);

console.log(`contract json interface=${JSON.stringify(tradingCardContract.options.jsonInterface)}`);
console.log(`contract models=${JSON.stringify(tradingCardContract.methods)}`);

Me meto contract methods={}en la consola. ¿Alguna idea?

Respuestas (1)

Intenté lo mismo y me preguntaba por qué methods objectes empty. Traté de console.log instance.methodsdirectamente, lo que me dio un error, eso... no se puede mostrar.

Luego, simplemente traté de llamar a una función desde este objeto "vacío" y funcionó como se suponía.

Entonces, la respuesta es que puede llamar a los métodos incluso si no se muestran en su salida json.

Use el siguiente código para llamar a los métodos:

YOURINSTANCE.methods.YOUR_METHOD().call().then(ret => {
    console.log(ret);
});