function rewardPerToken() public view returns (uint) { if (totalSupply == 0) { return rewardPerTokenStored; } return rewardPerTokenStored + (((block.timestamp - lastUpdateTime) * rewardRate * 1e18) / totalSupply); } describe("rewardPerToken", () => { it("Returns the reward amount of 1 share based off the locked up time", async () => { await mockWETH.connect(player1).approve(mutuals.address, amount0) await achiever.connect(player1).approve(mutuals.address, amount1) await mutuals.connect(player1).addLiquidity(amount0, amount1) // await moveTime(SECONDS_IN_A_DAY) // await moveBlocks(1) // let reward = await mutuals.rewardPerToken() // let expectedReward = "86" // assert.equal(reward.toString(), expectedReward) await moveTime(SECONDS_IN_A_YEAR) await moveBlocks(1) reward = await mutuals.rewardPerToken() expectedReward = "31536" console.log(ethers.utils.formatEther(reward)) assert.equal(reward.toString(), expectedReward) }) }) rewardPerToken Moving blocks... Moved forward in time seconds Moving blocks... Moved blocks 0.000000000000031536 ✓ Returns the reward amount of 1 share based off the locked up timeEstaba haciendo algunas pruebas unitarias y me di cuenta de que reward.toString() simplemente ignoraría el factor de 1e18. Sin embargo, el resultado de visualización en Remix incluiría 1e18.
¿Es así como Javascript interpreta Big Number? Gracias.