Base Learn Newcomer - 1 含代码Basic Contracts

Basic Contracts——SafeMathContract

部署的时候要点CONTRACT,然后选择SafeMathContract这个部署,否则会出错

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.23;

interface IBasicContractTest {
    function adder(
        uint _a,
        uint _b
    ) external returns (uint result, bool success);

    function subtractor(
        uint _a,
        uint _b
    ) external returns (uint result, bool success);
}

contract SafeMathContract is IBasicContractTest {
    function adder(
        uint _a,
        uint _b
    ) external pure override returns (uint result, bool success) {
        if (type(uint).max - _a < _b) {
            return (0, true);
        } else {
            result = _a + _b;
            return (result, false);
        }
    }

    function subtractor(
        uint _a,
        uint _b
    ) external pure override returns (uint result, bool success) {
        if (_b > _a) {
            return (0, true);
        } else {
            result = _a - _b;
            return (result, false);
        }
    }
}

评论

此博客中的热门博文

Base Learn Supreme-5——SCD ERC721 、Minimal Token、ERC20

Base Learn Acolyte -2含代码Storage、Structures、Arrays