Skip to content

sentrix-labs/canonical-contracts

Repository files navigation

Sentrix Labs

Sentrix Canonical Contracts

Production EVM contracts for Sentrix Chain — WSRX, Multicall3, SentrixSafe, TokenFactory.

CI Security License Solidity Foundry


What's in here

Contract Purpose
WSRX Wrapped SRX — ERC-20 (18 decimals) backed 1:1 by native SRX. Lets EVM dApps hold SRX as a token.
Multicall3 Standard Multicall3 (mds1/multicall) for batched read/write calls.
SentrixSafe Minimal multi-sig wallet (Gnosis Safe v1.4.1-derived) for treasury management. Currently configured 1-of-1 with the Sentrix Labs authority signer (0xa25236925bc10954e0519731cc7ba97f4bb5714b) on both chains — see docs/ADDRESSES.md.
TokenFactory Deploys minimal ERC-20 tokens via a single function call.

Network: Sentrix Mainnet 7119 + Sentrix Testnet 7120 — see docs/ADDRESSES.md for deployed addresses.

Quickstart

git clone --recurse-submodules https://github.com/sentrix-labs/canonical-contracts.git
cd canonical-contracts

# Install Foundry: https://getfoundry.sh
curl -L https://foundry.paradigm.xyz | bash && foundryup

# Install dependencies
make install

# Build + test
make build
make test

# Coverage
make coverage     # outputs coverage/lcov.info

Integrate

npm install @sentrix-labs/canonical-contracts ethers
import { ethers } from "ethers";
import abi from "@sentrix-labs/canonical-contracts/deployments/abi/WSRX.json";
import deployments from "@sentrix-labs/canonical-contracts/deployments/7119.json";

const provider = new ethers.JsonRpcProvider("https://rpc.sentrixchain.com");
const wsrx = new ethers.Contract(deployments.WSRX.address, abi.abi, provider);
console.log("totalSupply:", await wsrx.totalSupply());

Full integration guide → docs/INTEGRATION.md.

Deploy

End-to-end runbook: docs/DEPLOYMENT.md. High-level flow:

cp .env.example .env
$EDITOR .env

forge script script/DeployWSRX.s.sol --rpc-url sentrix_testnet --broadcast --private-key $DEPLOYER_PRIVATE_KEY
forge script script/DeployWSRX.s.sol --rpc-url sentrix_mainnet --broadcast --private-key $DEPLOYER_PRIVATE_KEY

# Update deployments/7119.json + 7120.json + CHANGELOG.md
# Tag release
git tag v1.0.0 && git push --tags

CI auto-creates a GitHub Release from the CHANGELOG entry.

Verify

Sourcify-equivalent verification is on the ecosystem readiness Tier 1 backlog. Until that lands, run manual verification per docs/DEPLOYMENT.md §12.

Health-check a deployment:

WSRX_ADDR=0x... MULTICALL3_ADDR=0x... SAFE_ADDR=0x... FACTORY_ADDR=0x... \
  forge script script/CheckDeployment.s.sol --rpc-url sentrix_testnet

Security

  • All contracts immutable (no upgrade proxy — see docs/SECURITY_MODEL.md)
  • Pre-merge: forge test, forge build --sizes, slither, gitleaks
  • Daily: scheduled slither + mythril runs (security.yml)
  • Vulnerability disclosure: security@sentrixchain.com (SECURITY.md)

Docs

Doc What it covers
docs/ARCHITECTURE.md Contract relationships + 8↔18 decimal conversion
docs/DEPLOYMENT.md Step-by-step deploy runbook
docs/INTEGRATION.md Code examples (ethers, wagmi)
docs/SECURITY_MODEL.md Trust assumptions + threat model
docs/ADDRESSES.md Deployed addresses (auto-gen)
docs/FAQ.md Common questions
docs/STORAGE_LAYOUT.md Storage slots per contract
docs/AUDIT.md Audit status + findings (when available)

Contributing

See CONTRIBUTING.md. PRs welcome — forge test + forge fmt --check + slither --fail-high must pass before merge.

Community

License

BUSL-1.1 (see LICENSE + NOTICE). Change Date: 2030-01-01 → MIT.

Multicall3.sol is a verbatim mirror of mds1/multicall (MIT) — license preserved in the file's SPDX header.


Built by Sentrix Labs for Sentrix Chain.

About

Production EVM contracts for Sentrix Chain — WSRX, Multicall3, Safe, TokenFactory

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors