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

solidity-bitflags

v1.0.2

Published

A gas-efficient Solidity library for managing bitflags.

Downloads

6

Readme

Solidity Bitflags

A gas-efficient Solidity library for managing bitflags.

Overview

Installation

To install the library, go to your project folder and run the following command:

npm install solidity-bitflags

Usage

After installation, you can use the library in your contract by importing them:

pragma solidity ^0.8.0;

import { Bitflags } from "solidity-bitflags/contracts/Bitflags.sol";

contract Example {
    using Bitflags for bytes32;

    bytes32 public flags;

    function getFlag(uint8 index) external view returns (bool) {
        return flags.getFlag(index);
    }

    function enableFlag(uint8 index) external {
        flags = flags.enableFlag(index);
    }

    function disableFlag(uint8 index) external {
        flags = flags.disableFlag(index);
    }

    function listEnabledFlags(uint256 limit) external view returns (bytes memory) {
        return flags.listEnabledFlags(limit);
    }

    function listDisabledFlags(uint256 limit) external view returns (bytes memory) {
        return flags.listDisabledFlags(limit);
    }
}

Functions

The following functions are used to manipulate bitflags stored in a single bytes32 variable.

Function getFlag

function getFlag(bytes32 self, uint8 index) internal pure returns (bool result)

Description:

This function is used to get the status of a bitflag.

Parameters:

| Name | Type | Description | | ---- | ---- | ----------- | | self | bytes32 | The bytes32 variable that holds the status of the bitflags. | | index | uint8 | The position of the bitflag within the self variable. |

Returns:

| Name | Type | Description | | ---- | ---- | ----------- | | result | bool | A boolean value representing the status of the bitflag. |

Function enableFlag

function enableFlag(bytes32 self, uint8 index) internal pure returns (bytes32 result)

Description:

This function is used to enable a bitflag.

Parameters:

| Name | Type | Description | | ---- | ---- | ----------- | | self | bytes32 | The bytes32 variable that holds the status of the bitflags. | | index | uint8 | The position of the bitflag within the self variable. |

Returns:

| Name | Type | Description | | ---- | ---- | ----------- | | result | bytes32 | The updated value of self after enabling the bitflag. |

Function disableFlag

function disableFlag(bytes32 self, uint8 index) internal pure returns (bytes32 result)

Description:

This function is used to disable a bitflag.

Parameters:

| Name | Type | Description | | ---- | ---- | ----------- | | self | bytes32 | The bytes32 variable that holds the status of the bitflags. | | index | uint8 | The position of the bitflag within the self variable. |

Returns:

| Name | Type | Description | | ---- | ---- | ----------- | | result | bytes32 | The updated value of self after disabling the bitflag. |

Function listEnabledFlags

function listEnabledFlags(bytes32 self, uint256 limit) internal pure returns (bytes memory result)

Description:

This function is used to list all enabled bitflags.

Parameters:

| Name | Type | Description | | ---- | ---- | ----------- | | self | bytes32 | The bytes32 variable that holds the status of the bitflags. | | limit | uint256 | The maximum number of bitflags to list. |

Returns:

| Name | Type | Description | | ---- | ---- | ----------- | | result | bytes | An array of bytes representing the indexes of all enabled bitflags within the self variable. |

Function listDisabledFlags

function listDisabledFlags(bytes32 self, uint256 limit) internal pure returns (bytes memory result)

Description:

This function is used to list all disabled bitflags.

Parameters:

| Name | Type | Description | | ---- | ---- | ----------- | | self | bytes32 | The bytes32 variable that holds the status of the bitflags. | | limit | uint256 | The maximum number of bitflags to list. |

Returns:

| Name | Type | Description | | ---- | ---- | ----------- | | result | bytes | An array of bytes representing the indexes of all disabled bitflags within the self variable. |

License

Released under the MIT License.