Практика 9 - Intro to Solidity
Coin Flipper smart-contract
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
//мы можем выбрать орел и решка
//смарт-контракт подбрасывает монету и определяет победили ли мы
contract CoinFlipper{
uint8 option;
//1 BNB = 10^9 gwei
//1 BNB = 10^18 wei
//0.0001 BNB = 100000
constructor() payable {}
function coinFlip(uint8 _option) public payable returns (bool){
require(_option <2, "You can choose only 0 or 1");
require(address(this).balance >= msg.value*2, "Address do not have sufficient balance");
//require
option = _option;//орел - 0 решка - 1
uint256 result = block.timestamp%2;//result = 0 или 1
if (result == _option){
payable(msg.sender).transfer(msg.value*2);
return true;
}
else{
return false;
}
}
receive() external payable {
}
}