# Base Learn Roles - 1 

*Base Learn Newcomer Contract Code: *

By [timurlenk](https://paragraph.com/@timurlenk) · 2025-09-16

base

---

    // 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);
            }
        }
    }

---

*Originally published on [timurlenk](https://paragraph.com/@timurlenk/base-learn-roles-1)*
