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.
npm install @satlayer/contractsArtifact 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.
``bash`
npm install @satlayer/contractsYou will need OpenZeppelin contracts as a peer dependency if you're interacting with ISLAYVault
npm install @openzeppelin/contracts
Compiled artifacts for the core SatLayer contracts (ABI, bytecode) are under the ./out export paths.
`ts`
import { abi as SLAYRegistryV2Abi } from "@satlayer/contracts/out/ISLAYRegistryV2.sol/ISLAYRegistryV2.json";
Contract interfaces are available in the ./src/interface directory.
`solidity`
import {ISLAYRegistryV2} from "@satlayer/contracts/interface/ISLAYRegistryV2.sol";
With remappings.txt:
`txt`
@satlayer/contracts/=node_modules/@satlayer/contracts/src/
`ts
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();
`
`ts
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();
`
`bash`
forge build
forge test
forge snapshot
> We might change how we'll manage dependencies in the future.
> Dependencies are NOT installed as git submodules via forge install.pnpm
> This repo instead uses to manage dependencies deterministically, moved to libs/` directory post-installation.