Solidity

退出智能合約?

  • April 20, 2022

BSC 上的許多項目似乎都分叉了 SafeMoon,這是一個受歡迎的項目。

出於某種原因 - 我看到這個特定的合約將 BNB 儲存在合約地址本身中。有沒有辦法用目前的程式碼佈局以某種方式撤回 BNB 而不添加任何其他內容?(我沒有看到提款功能,但似乎有一些轉移功能)。

https://bscscan.com/address/0x75856ea207ce7194e4e65c334bec143d77701e4a#code

例如 ^ 這個好像裡面有 32BNB。

在 Solidity 中,有 3 種方法可以將乙太幣從智能合約轉移到另一個地址。

  1. 地址.transfer()

2.地址.send()

3.address.call.value ().gas()()

(4)。呼叫另一個合約的應付函式

因此,您必須在智能合約程式碼中查找這 4 個選項中的 1 個,以查看 BNB 是否可提取。

swapETHForTokens函式中,乙太幣可以被發送到另一個地址

addLiquidity函式中,乙太幣可以被發送到另一個地址

transferToAddressETH函式中,乙太幣可以被發送到另一個地址

因此,只要呼叫這 3 個函式之一,就可以將 Ether 發送出去。似乎任何人都無法手動提取乙太幣。=-]

再添加一個 - 但你不應該 - 僅在緊急情況下。

有自毀功能 - “殺死” - 智能合約並將任何剩餘資金轉移到地址

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