Hola, cada vez que pruebo en truffle y llamo a una función que debería cambiar el valor de una variable dentro del contrato y luego trato de acceder a este valor, el valor no cambia. A continuación, tengo un código para intentar depurar este problema para otro proyecto. La función funciona perfectamente en remix.
Por mi parte, llamo a gainIterator() y luego console.log el valor y sigue siendo 0. En remix, el valor aumentaría a 1. Por favor ayuda
Prueba:
const Test = artifacts.require("testing"); const { expectRevert } = require("@openzeppelin/test-helpers"); const { web3 } = require("@openzeppelin/test-helpers/src/setup"); contract('testing', (accounts) => { let testing beforeEach (async() => { testing = await Test.new(); await web3.eth.sendTransaction({from: accounts[0], to: accounts[1], value: 1000}) }) it('should increase', async() => { const beforeIncrease = await testing.returnIterator(); console.log("before increase: " + beforeIncrease); testing.send.increaseIterator(); const afterIncrease = await testing.returnIterator(); console.log("after increase: " + afterIncrease); }) })Contrato inteligente:
pragma solidity 0.8.14; contract testing { uint iterator; constructor () { iterator = 0; } function increaseIterator() public { iterator++; } function returnIterator() public view returns (uint) { return iterator; } }