「The Ethernaut by Zeppelin Level 5. Token」を翻訳してみました(CryptoZombiesのように?)
原文はこちら
https://ethernaut.zeppelin.solutions
5. Tokenをクリック
5. Token
難易度 3/6
下記の基本的なトークンコントラクトをハッキングすることがこのレベルのクリア条件だ。
始めに20のトークン量が与えられ、何らかの方法で追加トークンが手に入れば(トークンが20以上になれば)このレベルはクリアとなる。できれば一度大量のトークンを手に入れるのだ。
回答の助けになるヒント
-「距離計」とはどのようなものか考えよ。
ソースコード
pragma solidity ^0.4.18;
contract Token {
mapping(address => uint) balances;
uint public totalSupply;
function Token(uint _initialSupply) public {
balances[msg.sender] = totalSupply = _initialSupply;
}
function transfer(address _to, uint _value) public returns (bool) {
require(balances[msg.sender] - _value >= 0);
balances[msg.sender] -= _value;
balances[_to] += _value;
return true;
}
function balanceOf(address _owner) public view returns (uint balance) {
return balances[_owner];
}
}