Практика 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 {

       

    }


}