Hi I have an address return function that works in remix but when I try to run it in a truffle test it gives me a promise object.
If I could have the truffle test return an address like it does in the solidity code that would be ideal or if I can access the promise object to give me my address. I have tried to add “.toString()” to the promise object but it does not give me the address
This is how I am trying to call the return function and save it to a variable within the truffle test
const newFractionContractAddress = await mainContract.getFractionContractAddress(0, {from: accounts[0]});
the solidity return function looks like this
function getFractionContractAddress(uint _index) public view returns(address) { return address(nftDeposits[msg.sender].deposits[_index].fractionContract); }
Thanks
Advertisement
Answer
Sending EVM transactions and waiting for the result of how they’re processed is, by design, asynchronous. JavaScript uses Promises to be able to handle asynchronous operations.
The Promise
resolves to a string representing the address, which you are correctly retrieving using the await
keyword.