openzeppelin-solidity
openzeppelin-contracts
Our great sponsors
openzeppelin-solidity | openzeppelin-contracts | |
---|---|---|
4 | 234 | |
10,805 | 24,109 | |
- | 1.7% | |
9.4 | 9.5 | |
almost 3 years ago | 4 days ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
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-solidity
-
Attack Vectors in Solidity #6:Unexpected Ether( Incorrect Use of this.balance)
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?
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?
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?
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
openzeppelin-contracts
-
Mode - Comprehensive Starter Guide
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.20; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v5.0.0/contracts/token/ERC20/ERC20.sol"; interface Sfs { function register(address _recipient) external returns (uint256 tokenId); } contract ModeToken is ERC20 { address feeReceiver = msg.sender; constructor() ERC20("ModeTokenSFSTest", "SFST2") { //Example amount to mint our ERC20 _mint(msg.sender, 1000 10 * 18); // This is the SFS contract address on testnet Sfs sfsContract = Sfs(0xBBd707815a7F7eb6897C7686274AFabd7B579Ff6); //Registers this contract and assigns the NFT //to the deployer of this contract sfsContract.register(msg.sender); } }
-
Blockchain transactions decoding: making wallet activity understandable
Lets look the events of Open Zeppelin’s ERC20 token contract:
- Construir e implementar un VAULT (bóveda) ERC20 en Shardeum
-
Are ERC-777 Unsafe?
ERC-777 is difficult to implement properly, due to its susceptibility to different forms of attack(opens in a new tab). It is recommended to use ERC-20 instead. This page remains as a historical archive.
- OpenZeppelin is trying to avoid paying a bounty for a vulnerability that caused $1,1B worth of assets freeze
- Security improvements of the ERC20 token standard
- Ethereums most used token standard ERC20 requires security enhancements
- The most used Ethereums token standard (ERC20) requires a security patch.
What are some alternatives?
RegEx-DoS - :cop: :punch: RegEx Denial of Service (ReDos) Scanner
solmate - Modern, opinionated, and gas optimized building blocks for smart contract development.
echidna - Ethereum smart contract fuzzer
hardhat - Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software.
eattheblocks - Source code for Eat The Blocks, a screencast for Ethereum Dapp Developers
ERC721A - https://ERC721A.org
yulp - ➕ A low-level, highly efficient extension to Yul, an intermediate language for the Ethereum Virtual Machine.
Safemoon.sol - safemoon contract
bytecode-verifier - Compile Solidity source code and verify its bytecode matches the blockchain
solidity - Solidity, the Smart Contract Programming Language
SoliditySamples - Solidity Smart Contracts Samples
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.