@azothpay/sdk
v1.6.2
Published
SDK for interacting with the AzothPay Protocol
Readme
AzothPay SDK (@azothpay/sdk)
Overview
The AzothPay SDK provides a simple and efficient way to interact with the AzothPay Protocol, a subscription and payment platform built on various blockchain networks. This SDK abstracts away the complexity of direct blockchain interactions, making it easy to integrate AzothPay's functionality into your applications.
Features
- Simple interface for interacting with the AzothPay Protocol
- Support for multiple networks (Polygon, BSC, Avalanche, Ethereum Mainnet, etc.)
- Multiple stablecoin support (USDT, USDC, PYUSD)
- Typed definitions for better development experience
- Multiple contract version support
- BySig methods for gasless transactions
- Comprehensive transaction handling
- Utility functions for rate conversions and data formatting
Installation
npm install @azothpay/sdk
# or
yarn add @azothpay/sdkQuick Start
import { ethers } from 'ethers';
import { AzothPaySDK, formatOutput, convertRateToPeriod, RatePeriod } from '@azothpay/sdk';
// Create an Ethereum provider
const provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');
// Create a signer if you need to send transactions
const privateKey = 'YOUR_PRIVATE_KEY';
const signer = new ethers.Wallet(privateKey, provider);
// Create a AzothPay SDK instance
const azothpay = AzothPaySDK.create(
signer, // Or provider if you only need read-only operations
'polygon', // Network name (default is 'polygon')
'USDT' // Token symbol (default is 'USDT')
);
// Now you can use the SDK to interact with the AzothPay Protocol
async function getBalance() {
const rawBalance = await azothpay.balanceOf();
// Convert raw balance to readable format
const readableBalance = formatOutput(BigInt(rawBalance), 18);
console.log(`Your balance: ${readableBalance} USDT`);
}
// Example subscription
async function subscribeToAuthor() {
const authorAddress = '0x...'; // The address to subscribe to
const amountPerMonth = 10; // Amount in tokens per month
const tx = await azothpay.subscribe(authorAddress, amountPerMonth);
await tx.wait();
console.log('Successfully subscribed!');
}
// Example getting user info with rate conversion
async function getUserInfo() {
const userInfo = await azothpay.getUserInfo();
// Convert raw blockchain data to human-readable format
const formattedInfo = {
balance: formatOutput(BigInt(userInfo.balance), 18),
// Convert per-second rates to monthly rates
incomeRate: convertRateToPeriod(Number(formatOutput(userInfo.incomeRate, 18)), RatePeriod.MONTH),
outgoingRate: convertRateToPeriod(Number(formatOutput(userInfo.outgoingRate, 18)), RatePeriod.MONTH),
updated: new Date(Number(userInfo.updated) * 1000).toISOString()
};
console.log(`Balance: ${formattedInfo.balance} USDT`);
console.log(`Monthly income: ${formattedInfo.incomeRate} USDT`);
console.log(`Monthly outgoing: ${formattedInfo.outgoingRate} USDT`);
}Documentation
Explore the full documentation for detailed information on all available methods and features:
- Getting Started
- API Reference
- Network Support
- Utility Functions
- Examples
- TypeScript Types
- Advanced Usage
- Publishing Guide
Support
For questions, issues or feature requests, please open an issue on our GitHub repository or contact us at AzothPay Community.
License
This SDK is released under the MIT License.
