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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gluwa/usc-contracts

v0.1.2

Published

Solidity contracts and libraries for the USC (Universal Smart Contracts) ecosystem on the Gluwa Creditcoin Network. Distributed as source for consumption by Foundry/forge.

Readme

USC Contracts

This repository is responsible for housing the core smart contracts necessary to support Universal Smart Contracts (USC).

Readability Contracts

  1. EvmV1Decoder - Responsible for decoding the tx/rx data of an EVM transaction. After the tx verification step of USC readability, the decoder is immediately called to translate foreign transaction data into variables usable within Creditcoin smart contracts.

Writability Contracts

The write-ability layer lets a dApp on Creditcoin L1 publish a message that is attested by the validator/attestor set, relayed to a destination chain, and (optionally) acknowledged back on Creditcoin via a trust-minimized native proof.

  1. Outbox / OutboxFactory (SimpleOutbox.sol, SimpleOutboxFactory.sol) - source-side message publishing. The factory creates one Outbox per destination chain and hands each Outbox its own owner. publishMessage derives a per-emitter sequenced messageId; acknowledgeMessage is gated on the configured validator.
  2. SimpleInbox (SimpleInbox.sol) - destination-side delivery with pending/retry handling. It delegates vote checking to a pluggable IVoteValidator and exposes computeMessageHash, the exact digest attestors sign.
  3. EOAValidator (EOAValidator.sol) - the production IVoteValidator: ECDSA recover + attestor allowlist + 2N/3 + 1 threshold, with EIP-2 malleability hardening and replay-protected attestor-set updates.
  4. AcknowledgmentValidator (AcknowledgementValidator.sol) - proof-based acknowledgment. It verifies a native USC delivery proof via the block-prover precompile (INativeQueryVerifier), decodes the MessageDelivered logs with EvmV1Decoder, and calls Outbox.acknowledgeMessage.
  5. Interfaces (IVoteValidator.sol, IOutboxFactory.sol, INativeQueryVerifier.sol) - the pluggable seams used by the contracts above.

Building and Running the Smart Contract Tests

The contracts are a Hardhat project. Tests are written in TypeScript (Mocha/Chai + ethers v6) and live in test/; test-only helper contracts (mocks/stand-ins) live in contracts/mocks/ and are not part of the published npm package.

Prerequisites: Node.js 20+. Install dependencies once with:

npm install

Compile (build) the contracts. Hardhat downloads the pinned solc 0.8.24 on first run:

npx hardhat compile

Run the full test suite:

npm test
# or: npx hardhat test

Run the tests with a Solidity coverage report (written to ./coverage/). This is what CI runs:

npm run coverage
# or: npx hardhat coverage

The hardhat GitHub workflow (.github/workflows/hardhat.yml) compiles the contracts and runs npx hardhat coverage on every pull request.

Releasing New Contract Versions

  1. Push a new tag of the format vX.Y.Z. This will initiate a workflow which publishes to npm and creates a release on github
  2. Update the contract version used in the usc-testnet-bridge-examples and Creditcoin3 repositories. This usually just involves updating the imported versions in package.jsons.
  3. If there's a major interface change, consider re-verifying the contracts on services such as Blockscout.