@satlayer/contracts
v2.4.0
Published
Artifact bundle for SatLayer EVM smart contracts. This package ships the compiled Foundry artifacts (ABIs, bytecode, metadata, and interfaces) so you can easily integrate SatLayer contracts in your dapps, scripts, and SDKs.
Downloads
124
Readme
@satlayer/contracts
Artifact bundle for SatLayer EVM smart contracts. This package ships the compiled Foundry artifacts (ABIs, bytecode, metadata, and interfaces) so you can easily integrate SatLayer contracts in your dapps, scripts, and SDKs.
Installation
npm install @satlayer/contracts
# You will need OpenZeppelin contracts as a peer dependency if you're interacting with ISLAYVault
npm install @openzeppelin/contractsCompiled artifacts for the core SatLayer contracts (ABI, bytecode) are under the ./out export paths.
import { abi as SLAYRegistryV2Abi } from "@satlayer/contracts/out/ISLAYRegistryV2.sol/ISLAYRegistryV2.json";Contract interfaces are available in the ./src/interface directory.
import {ISLAYRegistryV2} from "@satlayer/contracts/interface/ISLAYRegistryV2.sol";With remappings.txt:
@satlayer/contracts/=node_modules/@satlayer/contracts/src/Usage examples
viem
import { createPublicClient, http, getContract } from "viem";
import { mainnet } from "viem/chains";
import { abi as SLAYRegistryV2Abi } from "@satlayer/contracts/out/ISLAYRegistryV2.sol/ISLAYRegistryV2.json";
const client = createPublicClient({ chain: mainnet, transport: http() });
const registry = getContract({
address: "0x...registryAddress", // provide the deployed address
abi: SLAYRegistryV2Abi,
client,
});
// example read
const maxForService = await registry.read.maxActiveRelationshipsForService();ethers.js (v6)
import { ethers } from "ethers";
import SLAYRegistryV2Artifact from "@satlayer/contracts/out/ISLAYRegistryV2.sol/ISLAYRegistryV2.json" with { type: "json" };
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL!);
const registry = new ethers.Contract("0x...registryAddress", SLAYRegistryV2Artifact.abi, provider);
const maxForService = await registry.maxActiveRelationshipsForService();Maintainer Guide
Development
forge build
forge test
forge snapshotDependency management
We might change how we'll manage dependencies in the future. Dependencies are NOT installed as git submodules via
forge install. This repo instead usespnpmto manage dependencies deterministically, moved tolibs/directory post-installation.
