npm.io
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 ethers v6.
  • Onchain numeric values are returned as bigint.
  • If you omit both the RPC URL and signer, the SDK falls back to the default ethers mainnet provider.

Keywords