Remix

Bytes32 和數據負載問題

  • December 10, 2020

您好 Solidity 專家,

我正在處理名為 Vault: Ethernaut的 Ethernaut 挑戰 8 ,請參閱本文末尾的合約程式碼。

我覺得我解決了挑戰,但由於某種原因我無法打開保險庫。

以下是我已採取的步驟。

  1. 我在 Rinkeby 上找到了合約,並從建構子中提取了 Bytes32 組件。合約 0x5F694fcf2767ff28c0907eEAF6b705E8456a3665

在此處輸入圖像描述

  1. 我在解鎖功能的參數中輸入了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

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