Solidity
合約繼承自代幣合約
我有一個代幣合約(ERC20)A,然後是另一個從 A 繼承的合約 B(B 是 A)。A 契約 C 進口 B.
問題是:
- 如果我單獨部署B,這個合約B的地址是不是代表代幣A的地址?
- 如果我先部署 A,然後部署 B,那麼從 A 鑄造的代幣和從 B 鑄造的代幣是否相同?
- 如果我單獨部署 C,Token A 的地址是什麼?
- 如果我想在 C 中鑄造 A 代幣,最好的方法是什麼?
請幫幫我。我很混亂。
- 由於 B 繼承自 A 部署的合約包含來自 A 和 B 的方法,因此相同的地址可以用作 A 和 B
- 當合約 A 和 B 分別部署時,您有兩個不相關的地址。例如,您可以兩次部署同一個合約並獲得兩個完全獨立的地址。
- 如果合約 C 導入 B 但它沒有從 B 繼承,那麼在部署 C 時就沒有 A。
如果合約 C 繼承自 B 則 1. 應用 C 地址 = B 地址 = A 地址 4. 從合約 C 中導入 A,並將 A 地址作為參數傳遞給 C 建構子,在其中儲存對 A 的引用。
import "A.sol"; contract C { A token; constructor(A _token) public { token = _token; } function deposit(uint amount) public { token.transferFrom(msg.sender, address(this), amount); } }