Solidity
如何暫停代理邏輯模式?
假設我們有一個代理合約,它使用委託呼叫將呼叫轉發到邏輯合約。
如果我們暫停代理,使用者仍然可以直接與邏輯合約互動。如果我們暫停 Logic 合約,它不會對 Proxy 的呼叫產生任何影響,因為它只會載入程式碼並使用自己的儲存空間。
在這種情況下是否有一種常見的模式來暫停契約?
在大多數情況下,確保沒有人在不通過代理的情況下與實現合約互動是一個好主意。看看這個。在實現契約中為每個函式建議了一個修飾符,以確保沒有人這樣做。https://github.com/rob-Hitchens/TrustlessUpgrades/blob/master/contracts/Upgradable.sol
如果我們暫停 Logic 合約,它不會對 Proxy 的呼叫產生任何影響,因為它只會載入程式碼並使用自己的儲存空間。
這對我來說似乎不對。如果您暫停邏輯合約(正確地),那麼當代理嘗試刪除它的門呼叫時,該函式應該恢復,這就是您想要的。代理應觀察故障併中止。
希望能幫助到你。