1.0.56 • Published 4 months ago
steady-sdk
Licence
—
Version
1.0.56
Deps
1
Size
120 kB
Vulns
0
Weekly
0
Steady SDK
TypeScript SDK for reading from and writing to the Steady Protocol token contract.
The package is designed for frontend apps, backend services, and scripts that need a simple wrapper around the Steady contract ABI.
Installation
npm install steady-sdk
If your app creates its own signer or provider with ethers, install ethers in the consuming project as well:
npm install steady-sdk ethers
Constructor
new Steady(contractAddress, rpcUrl?, signer?)
Use an RPC URL for read-only calls or pass an ethers signer for write operations.
Quick Start
Read contract data
import { Steady } from 'steady-sdk';
const contractAddress = '0xYourSteadyContractAddress';
const rpcUrl = 'https://your-rpc-url';
const steady = new Steady(contractAddress, rpcUrl);
const config = await steady.contractConfig();
const totalSupply = await steady.totalSupply();
console.log(config.name, config.symbol, config.decimals);
console.log(totalSupply);
Send transactions with a signer
import { BrowserProvider, parseUnits } from 'ethers';
import { Steady } from 'steady-sdk';
const contractAddress = '0xYourSteadyContractAddress';
const provider = new BrowserProvider(window.ethereum);
await provider.send('eth_requestAccounts', []);
const signer = await provider.getSigner();
const steady = new Steady(contractAddress, undefined, signer);
await steady.transfer('0xRecipientAddress', parseUnits('100', 18));
Query historical events
import { Steady } from 'steady-sdk';
const steady = new Steady('0xYourSteadyContractAddress', 'https://your-rpc-url');
const transfers = await steady.getPastTransferEvents(5_450_000, 5_460_000);
console.log(transfers);
Subscribe to events
import { Steady } from 'steady-sdk';
const steady = new Steady('0xYourSteadyContractAddress', 'https://your-rpc-url');
await steady.subscribeToTransfer((event) => {
console.log(event.type, event.data);
});
API Overview
| Category | Methods |
|---|---|
| Contract metadata and state | contractConfig, owner, name, symbol, decimals, totalSupply, balanceOf, allowance, paused |
| Interest and conversion helpers | cumulativeInterestPaid, totalInterestToBePaid, interestPaymentStartTimestamp, interestDistributionPeriod, tokensToSteady, steadyToTokens |
| Wrapped token helpers | wrappedSteadyAddress, setWrappedSteadyAddress, wrapTokens, unwrapTokens |
| Token and admin actions | transfer, transferFrom, approve, increaseAllowance, decreaseAllowance, issueTokens, burnTokens, payInterest, pause, unpause, addBlackList, removeBlackList, getBlackListStatus |
| Event access | subscribeToTransfer, subscribeToIssue, subscribeToBurn, getPastEvents, getPastTransferEvents, getPastIssueEvents, getPastBurnEvents, getBlock |
| Calldata encoding | encodeFunctionData.issueTokens, encodeFunctionData.burnTokens, encodeFunctionData.payInterest, encodeFunctionData.transfer, encodeFunctionData.pause, encodeFunctionData.unpause, encodeFunctionData.setPauseAuthority, encodeFunctionData.addBlackList, encodeFunctionData.removeBlackList |
Notes
- The SDK ships with TypeScript declarations.
- The signer and provider examples assume
ethersv6. - Onchain numeric values are returned as
bigint. - If you omit both the RPC URL and signer, the SDK falls back to the default
ethersmainnet provider.