npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@dirtroad/sediment

v1.5.6

Published

Sediment is a smart contract library for Solidity and the EVM offering various building-blocks for projects and EVM chains to offer commonly requested functionality.

Downloads

130

Readme

Sediment

Sediment is a smart contract library for Solidity and the EVM offering various building-blocks for projects and EVM chains to offer commonly requested functionality.

Installation

To add to your project, run:

npm add @dirtroad/sediment

Then important according to each of the modules:

Modules

Authority

Add AccessControl from OpenZeppelin to your contract with some pre-defined roles for authority.

import "@dirtroad/sediment/contracts/authority/Authority.sol";

Leaderboards

Sediment offers three (3) leaderboard options for developers to use:

Default Leaderboard

This leaderboard uses Ethereum addresses as the primary identifier.

import "@dirtroad/sediment/contracts/leaderboard/Leaderboard.sol";
String Leaderboard

This leaderboard uses strings as the primary identifier. This is a great option for using UUID's or other string based ID's from a server.

import "@dirtroad/sediment/contracts/leaderboard/StringLeaderboard.sol";
Bytes Leaderboard

This leaderboard uses bytes32 as the primary identifier.

import "@dirtroad/sediment/contracts/leaderboard/BytesLeaderboard.sol";

Logger

A simple logging smart contract that allows you to add more traditional log types to your contract to help identify specific issues or information.

Automatically hashes the value with the timestamp to ensure Unique Identifiers are created for each log.

import "@dirtroad/sediment/contracts/logger/Logger.sol";

Rate Limit

There are two rate limit contracts offered in Sediment. The first is a basic rate limit that helps ensure that transactions on a specific function are limited. This is great for chains that have low or zero gas fees.

import "@dirtroad/sediment/contracts/rateLimit/RateLimit.sol";

Bot Protection

The second rate limit contract offered by Sediment is geared more towards mitigation against bots. Great for protecting public functions that write state to chain or offer minting; this has configurable limit times coupled with a strike system in addition to an optional blacklist for addresses.

import "@dirtroad/sediment/contracts/rateLimit/BotProtection.sol";

Token Checker

While not a silver bullet; this contract will help identify most tokens by type allowing for dynamic usage of addresses within a Solidity function. This is used internally within the TokenGate contracts, but can be used externally as well.

import "@dirtroad/sediment/contracts/tokenChecker/TokenChecker.sol";

Chain Level Token Gating

The TokenGate contract was designed to be deployed once at the chain level and used by any dApp to do high-level token gating.

import "@dirtroad/sediment/contracts/tokenGate/TokenGate.sol";

Project Level Token Gating

The project level token gates are designed per standard token. With an ERC-20, ERC-721, and ERC-1155 token gate available; these can be deployed with a project to offer specific token gating with slightly more direct features.

/// For ERC-20
import "@dirtroad/sediment/contracts/tokenGate/ERC20.sol";

/// For ERC-721
import "@dirtroad/sediment/contracts/tokenGate/ERC721.sol";

/// For ERC-1155
import "@dirtroad/sediment/contracts/tokenGate/ERC1155.sol";

Security and Liability

The Sediment contracts and code is WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

License

See MIT License.