🐕
Solidity初心者のCryptoZombiesまとめ(中級編チャプター4)
はじめに
チャプター4で学べること
Etherの送受金について
Etherの送受金関数
payable修飾子
- payable修飾子を付けることでetherを受け取れるようになる
withdraw修飾子
- payable修飾子を付けることでetherを送金できるようになる
- コントラクトに送られたEthは、コントラクトのイーサリアム・アカウントに貯められる。引き出す関数を追加しない限りそのままになってしまう。
contract ManageEther {
address public owner;
// コンストラクタ
function ManageEther() public {
owner = msg.sender;
}
// payable関数
function receiveEther() external payable {
// 送金されたetherの値はmsg.valueに入っている
}
// withdraw関数
function withdraw() external onlyOwner {
// オーナーのみ実行可能
require(msg.sender == owner);
// コントラクトのオーナーのアドレスにこのコントラクトのetherの残高を送金する
// this.balanceでこのコントラクトに蓄積されているetherの残高を取得できる
owner.transfer(this.balance);
}
}
ランダム関数(keccak256ハッシュ関数)
// 1から100までの乱数を生成する
uint randNonce = 0;
uint random = uint(keccak256(now, msg.sender, randNonce)) % 100;
randNonce++;
uint random2 = uint(keccak256(now, msg.sender, randNonce)) % 100;
チャプター4のまとめ
このチャプターでは、ether送金/受金の方法を学んだ。
イーサリアム外部からデータをプルする安全な方法であるoraclesなどもこの章でまとめられていたが、こちらについてはチュートリアルを終えた後により深く調査したい。
Discussion