Contracts
  • console
  • amm
    • AaveSwap
    • AaveSwapWrapper
    • AmplificationUtils
    • ILendingPool
    • LPToken
    • MathUtils
    • OwnerPausableUpgradeable
    • Swap
    • SwapDeployer
    • SwapEthWrapper
    • SwapFlashLoan
    • SwapUtils
    • helper
      • BaseSwapDeposit
      • FlashLoanBorrowerExample
      • GenericERC20
      • Multicall2
      • test
        • TestMathUtils
        • TestSwapReturnValues
    • interfaces
      • IFlashLoanReceiver
      • IMetaSwap
      • IMetaSwapDeposit
      • ISwap
      • ISwapFlashLoan
  • auxiliary
    • DummyWeth
    • DummyWethProxy
  • bridge
    • BridgeConfigV3
    • ECDSAFactory
    • ECDSANodeManagement
    • ERC20Migrator
    • HarmonySynapseBridge
    • IERC20Mintable
    • IFrax
    • MRSynapseBridge
    • MiniChefV2
    • PoolConfig
    • SynapseBridge
    • SynapseERC20
    • SynapseERC20DeterministicFactory
    • SynapseERC20Factory
    • interfaces
      • IECDSANodeManagement
      • IERC20Migrator
      • IMasterChef
      • IMetaSwapDeposit
      • IMiniChefV2
      • IRewarder
      • ISwap
      • ISynapseBridge
      • ISynapseERC20
    • libraries
      • SignedSafeMath
    • mocks
      • ERC20Mock
      • RewarderBrokenMock
      • RewarderMock
    • testing
      • NodeEnv
      • Synapse
    • utils
      • AddressArrayUtils
      • EnumerableStringMap
      • TimelockController
    • wrappers
      • AvaxJewelMigration
      • AvaxJewelMigrationV2
      • AvaxJewelSwap
      • GMXWrapper
      • HarmonyBridgeZap
      • IERC20Mintable
      • IFrax
      • IGMX
      • L1BridgeZap
      • L2BridgeZap
      • MigratorBridgeZap
      • MoonriverBridgeZap
  • messaging
    • AuthVerifier
    • GasFeePricing
    • MessageBus
    • MessageBusReceiver
    • MessageBusSender
    • apps
      • BatchMessageSender
      • PingPong
    • dfk
      • HeroCoreUpgradeable
      • IAssistingAuction
      • IHeroCoreUpgradeable
      • IStatScienceUpgradeable
      • StatScienceUpgradeable
      • auctions
        • AssistingAuctionUpgradeable
        • ERC721AuctionBaseUpgradeable
        • HeroAuctionUpgradeable
        • helpers
          • CrystalFeesUpgradeable
        • interfaces
          • IAssistingAuctionUpgradeable
      • bridge
        • HeroBridgeUpgradeable
        • TearBridge
      • inventory
        • GaiaTears
        • IInventoryItem
        • InventoryItem
      • libs
        • LibGeneScience
      • random
        • IRandomGenerator
        • RandomGenerator
    • framework
      • SynMessagingReceiver
      • SynMessagingReceiverUpgradeable
    • interfaces
      • IAuthVerifier
      • IGasFeePricing
      • IMessageBus
      • ISynMessagingReceiver
  • elin
    • contracts-4.3.1
      • access
        • AccessControl
        • IAccessControl
      • utils
        • Context
        • Strings
        • introspection
          • ERC165
          • IERC165
        • math
          • SafeMath
    • contracts-4.5.0
      • access
        • AccessControl
        • AccessControlEnumerable
        • IAccessControl
        • IAccessControlEnumerable
        • Ownable
      • security
        • Pausable
      • utils
        • Context
        • Strings
        • introspection
          • ERC165
          • IERC165
        • structs
          • EnumerableSet
      • token
        • ERC20
          • ERC20
          • IERC20
          • extensions
            • ERC20Burnable
            • ERC20Pausable
            • IERC20Metadata
          • presets
            • ERC20PresetMinterPauser
    • contracts-upgradeable-4.5.0
      • access
        • AccessControlUpgradeable
        • IAccessControlUpgradeable
        • OwnableUpgradeable
      • security
        • PausableUpgradeable
      • utils
        • AddressUpgradeable
        • ContextUpgradeable
        • StringsUpgradeable
        • introspection
          • ERC165Upgradeable
          • IERC165Upgradeable
      • proxy
        • utils
          • Initializable
      • token
        • ERC20
          • IERC20Upgradeable
        • ERC721
          • ERC721Upgradeable
          • IERC721ReceiverUpgradeable
          • IERC721Upgradeable
          • extensions
            • ERC721EnumerableUpgradeable
            • IERC721EnumerableUpgradeable
            • IERC721MetadataUpgradeable
    • contracts-upgradeable
      • access
        • AccessControlUpgradeable
        • OwnableUpgradeable
      • cryptography
        • ECDSAUpgradeable
      • drafts
        • EIP712Upgradeable
        • ERC20PermitUpgradeable
        • IERC20PermitUpgradeable
      • math
        • SafeMathUpgradeable
      • proxy
        • Initializable
      • utils
        • AddressUpgradeable
        • ContextUpgradeable
        • CountersUpgradeable
        • EnumerableSetUpgradeable
        • PausableUpgradeable
        • ReentrancyGuardUpgradeable
      • token
        • ERC20
          • ERC20BurnableUpgradeable
          • ERC20Upgradeable
          • IERC20Upgradeable
    • contracts
      • access
        • AccessControl
        • Ownable
      • cryptography
        • ECDSA
      • drafts
        • EIP712
        • ERC20Permit
        • IERC20Permit
      • math
        • SafeMath
      • proxy
        • Clones
      • utils
        • Address
        • Context
        • Counters
        • EnumerableSet
        • ReentrancyGuard
      • token
        • ERC20
          • ERC20
          • ERC20Burnable
          • IERC20
          • SafeERC20
  • ypto
    • boring-solidity
      • contracts
        • BaseBoringBatchable
        • BoringBatchable
        • BoringOwnable
        • BoringOwnableData
        • interfaces
          • IERC20
        • libraries
          • BoringERC20
          • BoringMath
          • BoringMath128
          • BoringMath32
          • BoringMath64
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. elin
  2. contracts
  3. math

SafeMath

Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. SafeMath restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.

PreviousmathNextproxy

Last updated 3 years ago

Was this helpful?