「The Ethernaut by Zeppelin Level 12. Privacy」を翻訳してみました(CryptoZombiesのように?)
原文はこちら
https://ethernaut.zeppelin.solutions
12. Privacyをクリック
12. Privacy
難易度 8/6
このコントラクトの開発者は、ストレージ内の機密情報を保護するのに十分な注意を払っているぞ。
このレベルのクリア条件はこのコントラクトのロックを解除すること(すなわちlocked=falseにすること)だ。
回答の助けになるヒント
- ストレージの仕組みの理解
- パラメータのパージングの理解
- キャスティングの仕組みの理解
Tips:
metamaskは単なる商品であることを忘れるな。 問題がある場合は、別のツールを使用するのも一つの手だ。上級者向けのゲームプレイには、remixや独自のweb3プロバイダを使用することが出来るぞ。
ソースコード
pragma solidity ^0.4.18;
contract Privacy {
bool public locked = true;
uint256 public constant ID = block.timestamp;
uint8 private flattening = 10;
uint8 private denomination = 255;
uint16 private awkwardness = uint16(now);
bytes32[3] private data;
function Privacy(bytes32[3] _data) public {
data = _data;
}
function unlock(bytes16 _key) public {
require(_key == bytes16(data[2]));
locked = false;
}
/*
A bunch of super advanced solidity algorithms...
,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`
.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,
*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^ ,---/V\
`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*. ~|__(o.o)
^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*' UU UU
*/
}