Solidity
發送乙太幣後賬戶餘額不會減少
例如,這是我在智能合約中的範例函式:
function adoptCreeptomas(uint256 beastQuantity, address referrer ) public payable whenNotPaused { msg.sender.transfer(50); }
然後我嘗試測試這個契約:
describe("adopted creeptoma", async function() { it('adopted', async function() { let instance = await CreeptomaPresale.deployed(); let pre = convertEther(getBalance(investor)); await instance.adoptCreeptomas.call(beastQuantity, 0 {from: investor, value: ether(100)}); let after = convertEther(getBalance(investor)); console.log("before: " + pre + "--after: " + after); }); });
列印日誌為:
before: 100--after: 100
這是我的
getBalance
方法:export function getBalance(address) { return web3.eth.getBalance(address) }
我不知道為什麼帳戶餘額沒有減少。請幫我。
謝謝
你是說
call()
當你adoptCreeptomas
。call()
使其明確成為只讀的,不改變狀態的空執行操作。它沒有簽名或發送到網路進行探勘,所以下次你看,什麼都沒有改變。在這裡查看詳細說明。交易和通話有什麼區別?
希望能幫助到你。