/solmate

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

Primary LanguageSolidityGNU Affero General Public License v3.0AGPL-3.0

solmate

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

Contracts

auth
├─ Auth"Flexible and updatable auth pattern"
├─ authorities
│  ├─ RolesAuthority"Role based Authority that supports up to 256 roles"
│  ├─ MultiRolesAuthority"Flexible and target agnostic role based Authority"
tokens
├─ WETH"Minimalist and modern Wrapped Ether implementation"
├─ ERC20"Modern and gas efficient ERC20 + EIP-2612 implementation"
├─ ERC721"Modern, minimalist, and gas efficient ERC721 implementation"
├─ ERC1155"Minimalist and gas efficient standard ERC1155 implementation"
utils
├─ SSTORE2 - "Library for cheaper reads and writes to persistent storage"
├─ CREATE3"Deploy to deterministic addresses without an initcode factor"
├─ SafeCastLib - "Safe unsigned integer casting lib that reverts on overflow"
├─ ReentrancyGuard"Gas optimized reentrancy protection for smart contracts"
├─ FixedPointMathLib"Arithmetic library with operations for fixed-point numbers"
├─ Bytes32AddressLib"Library for converting between addresses and bytes32 values"
├─ SafeTransferLib"Safe ERC20/ETH transfer lib that handles missing return values"

Installation

To install with DappTools:

dapp install rari-capital/solmate

To install with Foundry:

forge install rari-capital/solmate

To install with Hardhat or Truffle:

npm install @rari-capital/solmate

Acknowledgements

These contracts were inspired by or directly modified from many sources, primarily: