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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@nibiruchain/solidity

v0.0.7

Published

Nibiru EVM solidity contracts and ABIs for Nibiru-specific precompiles and core protocol functionality

Readme

@nibiruchain/solidity

Nibiru EVM solidity contracts and ABIs for Nibiru-specific precompiles and core protocol functionality.

Install

yarn add @nibiruchain/solidity
# OR npm install OR bun install

Solidity code is in "@nibiruchain/solidity/contracts/*", and ABI JSON files are in "@nibiruchain/solidity/abi/*".

ABI Files

Since contract ABIs are exported in JSON format, these ABIs can be used with any Ethereum-compatible JS library, such as:

  • Viem
  • Ethers.js
  • Web3.js
  • Hardhat or Foundry
// Example import
import wasmAbi from "@nibiruchain/solidity/abi/IWasm.json"

Usage with Typechain for Ethers v6

Often when building an application using Ethers.js, we want type-safe contract interactions. The typechain and @typechain/ethers-v6 packages are a useful tool to generate TypeScript code an ethers.Contract directly from smart contract ABIs.

To generate ethers TypeScript bindings for the ABIs exported from the @nibiruchain/solidity package, first install the required dependencies:

npm install -D @nibiruchain/solidity @typechain/[email protected] typechain@8

Then, you can generate like so.

out_dir="typechain-out"
npm run typechain \
  --target=ethers-v6 \
  --out-dir="$out_dir" \
  "$(pwd)/node_modules/@nibiruchain/solidity/abi/*.json" 

This ensures contract interactions are type-checked at compile-time, helping reduce the likelihood of runtime errors.

Usage in Solidity

This package exports interfaces, types, and constants for each Nibiru-specific precompiled contract. To use these precompiles in Solidity, use the exported constant that represents an instance of the precompile.

For example in "IOracle.sol", we define:

IOracle constant NIBIRU_ORACLE = IOracle(ORACLE_PRECOMPILE_ADDRESS);

This means another contract can use NIBIRU_ORACLE to access each method from the Nibiru Oracle precompile.

import '@nibiruchain/solidity/contracts/IOracle.sol';

contract Example {

  function latestRoundData()
    public
    view
    override
    returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
  {
    return NIBIRU_ORACLE.chainLinkLatestRoundData(pair);
  }
}

Similarly, the fungible token precompile defines:

IFunToken constant FUNTOKEN_PRECOMPILE = IFunToken(FUNTOKEN_PRECOMPILE_ADDRESS);

So, you import this in your contract

import '@nibiruchain/solidity/contracts/IFunToken.sol';

// Methods:
// FUNTOKEN_PRECOMPILE.sendToBank
// FUNTOKEN_PRECOMPILE.sendToEvm
// FUNTOKEN_PRECOMPILE.balance
// FUNTOKEN_PRECOMPILE.bankBalance
// FUNTOKEN_PRECOMPILE.bankMsgSend
// FUNTOKEN_PRECOMPILE.whoAmI

Hacking

Hacking - Nibiru EVM Solidity Embeds