简体   繁体   中英

Return address function from smart contract returns promise object instead of address in truffle test

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM