Web3js

在一份合約中收集 2 個或更多合約餘額

  • February 19, 2022

我正在嘗試開發一個從其他合約中收取費用的智能合約。

我試著做:

function sendFees() public {
   address payable feeCollector = payable(feeCollector addredd);
   feeCollector.transfer(address(this).balance);
}

廣告然後我這樣呼叫函式:

sendFees();

但在 ganache 中,我沒有看到 feeCollector 契約的餘額發生任何變化。在 feeCollector 合約中有這個功能:

receive() external payable {}

理論上,它應該收到所有發送的費用。我被卡住了,我無法編寫任何其他程式碼。請幫我。

只要將“feeCollector addredd”替換為正確的地址,您的程式碼就沒有問題。也許再看看你的設置?

不鼓勵使用transfer發送資金,並且可能會在您的情況下導致問題,因為目標是智能合約(請參閱https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/)。

此外,如果您分享控制台中出現的任何錯誤(例如在交易收據中),這可能會有所幫助

引用自:https://ethereum.stackexchange.com/questions/122032