Remix
Bytes32 和數據負載問題
您好 Solidity 專家,
我正在處理名為 Vault: Ethernaut的 Ethernaut 挑戰 8 ,請參閱本文末尾的合約程式碼。
我覺得我解決了挑戰,但由於某種原因我無法打開保險庫。
以下是我已採取的步驟。
- 我在 Rinkeby 上找到了合約,並從建構子中提取了 Bytes32 組件。合約 0x5F694fcf2767ff28c0907eEAF6b705E8456a3665
- 我在解鎖功能的參數中輸入了Bytes32組件,但Vault沒有解鎖?
我不確定我在這裡做錯了什麼。在我看來,避難所應該打開。歡迎任何提示或見解。
謝謝你。
pragma solidity ^0.6.0; contract Vault { bool public locked; bytes32 private password; constructor(bytes32 _password) public { locked = true; password = _password; } function unlock(bytes32 _password) public { if (password == _password) { locked = false; } } }
問題是突出顯示的交易是針對部署保險庫的“工廠”契約。它不是對建構子的直接呼叫。
要確定建構子參數,您可以檢查創建合約的內部事務。
在 CREATE 的輸入端出現您找到的相同參數
412076657279207374726f6e67207365637265742070617373776f7264203a29