openzeppelin-contracts VS openzeppelin-solidity

Compare openzeppelin-contracts vs openzeppelin-solidity and see what are their differences.

openzeppelin-contracts

OpenZeppelin Contracts is a library for secure smart contract development. (by OpenZeppelin)

openzeppelin-solidity

OpenZeppelin Contracts is a library for secure smart contract development. [Moved to: https://github.com/OpenZeppelin/openzeppelin-contracts] (by OpenZeppelin)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
openzeppelin-contracts openzeppelin-solidity
233 4
24,079 10,805
1.6% -
9.5 9.4
5 days ago almost 3 years ago
JavaScript JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

openzeppelin-contracts

Posts with mentions or reviews of openzeppelin-contracts. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-27.

openzeppelin-solidity

Posts with mentions or reviews of openzeppelin-solidity. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-07-09.
  • Attack Vectors in Solidity #6:Unexpected Ether( Incorrect Use of this.balance)
    1 project | dev.to | 4 Jan 2023
    pragma solidity ^0.5.0; import "https://github.com/OpenZeppelin/openzeppelin-solidity/contracts/math/SafeMath.sol"; contract MyContract { using SafeMath for uint256; function deposit() public payable { // code to deposit ether } function withdraw(uint256 _amount) public { require(this.balance.sub(_amount) >= 0, "Insufficient funds"); // code to withdraw ether } }
  • How to check if tokenholder is holding 2 different tokens at the same time before an event is triggered?
    1 project | /r/ethdev | 10 Jan 2022
    The basic structure could be done as follows using OZ ERC20 interface https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC20/IERC20.sol
  • Is this why shib price keeps going down?
    2 projects | /r/Isshibacoinascam | 9 Jul 2021
    return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; }
  • can someone tell me what this contract wants?
    1 project | /r/etherscan | 7 Jun 2021
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522

What are some alternatives?

When comparing openzeppelin-contracts and openzeppelin-solidity you can also consider the following projects:

solmate - Modern, opinionated, and gas optimized building blocks for smart contract development.

RegEx-DoS - :cop: :punch: RegEx Denial of Service (ReDos) Scanner

hardhat - Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software.

echidna - Ethereum smart contract fuzzer

ERC721A - https://ERC721A.org

eattheblocks - Source code for Eat The Blocks, a screencast for Ethereum Dapp Developers

Safemoon.sol - safemoon contract

yulp - ➕ A low-level, highly efficient extension to Yul, an intermediate language for the Ethereum Virtual Machine.

solidity - Solidity, the Smart Contract Programming Language

bytecode-verifier - Compile Solidity source code and verify its bytecode matches the blockchain

truffle - :warning: The Truffle Suite is being sunset. For information on ongoing support, migration options and FAQs, visit the Consensys blog. Thank you for all the support over the years.

SoliditySamples - Solidity Smart Contracts Samples