@ton-staking-sdk/core
v0.0.5
Published
Core SDK package for interacting with TON staking contracts.
Readme
@ton-staking-sdk/core
Core SDK package for interacting with TON staking contracts.
Installation
We recommend using pnpm for installation to ensure consistent dependencies across the monorepo:
npm install @ton-staking-sdk/core
# or
yarn add @ton-staking-sdk/core
# or
pnpm add @ton-staking-sdk/coreUsage
import { TONStaking, ChainId } from '@ton-staking-sdk/core';
import { createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sepolia, mainnet } from 'viem/chains';
// Initialize SDK (read-only mode)
const readOnlySDK = new TONStaking({
rpcUrl: 'YOUR_RPC_URL',
chainId: ChainId.SEPOLIA // ChainId.MAINNET (1) or ChainId.SEPOLIA (11155111)
});
// Initialize SDK with signer
const account = privateKeyToAccount('YOUR_PRIVATE_KEY');
const wallet = createWalletClient({
account,
chain: sepolia, // or mainnet
transport: http()
});
const sdk = new TONStaking({
rpcUrl: 'YOUR_RPC_URL',
chainId: ChainId.SEPOLIA,
walletClient: wallet // Include wallet client for write operations
});
// Read contract data
const totalStaked = await sdk.contractOperationManager.readContract({
contract: "SeigManager",
functionName: "stakeOfAllLayers"
});
// Write contract data (requires signer)
const tx = await sdk.contractOperationManager.writeContract({
contract: "TON",
functionName: "approve",
args: [address, amount]
});Features
- Contract Interactions
- Read contract data
- Write contract transactions
- Event listening
- Type-safe contract operations
- Built-in TypeScript support
API Reference
TONStaking
Main SDK class for interacting with TON staking contracts.
const sdk = new TONStaking({
rpcUrl: string,
chainId: number,
privateKey?: string // Optional: for write operations
});ContractOperationManager
Handles all contract interactions.
// Read operations
const data = await sdk.contractOperationManager.readContract({
contract: ContractName,
functionName: string,
args?: any[]
});
// Write operations
const tx = await sdk.contractOperationManager.writeContract({
contract: ContractName,
functionName: string,
args?: any[]
});Development
# Build package
pnpm build
# Run tests
pnpm test
# Watch mode
pnpm devLicense
MIT License
