@pddo/tronscan-api-sdk
v1.0.2
Published
TronScan API SDK for TypeScript/JavaScript
Downloads
5
Maintainers
Readme
TronScan API SDK
基于 TronScan API 的 TypeScript/JavaScript SDK,提供完整的 TRON 区块链数据查询功能。
特性
- 🔒 类型安全 - 完整的 TypeScript 类型定义
- 🚀 现代化 - 支持 ES6+ 和 CommonJS
- 📦 轻量级 - 最小化依赖,仅依赖 axios
- 🛠 易用性 - 简洁的 API 设计
- 🔑 API Key 支持 - 支持 TronScan Pro API Key
- 🌐 全面覆盖 - 涵盖所有主要 API 端点
- ⚡ 高性能 - 优化的请求处理和错误处理
- 🎯 工具方法 - 内置实用工具函数
安装
使用 bun(推荐):
bun add @pddo/tronscan-api-sdk使用 npm:
npm install @pddo/tronscan-api-sdk快速开始
基本用法
import { TronScanSDK } from '@pddo/tronscan-api-sdk';
// 不使用 API Key(有限制)
const sdk = new TronScanSDK();
// 使用 API Key(推荐)
const sdk = new TronScanSDK({
apikey: 'your-api-key-here'
});
// 自定义配置
const sdk = new TronScanSDK({
apikey: 'your-api-key-here',
baseURL: 'https://apilist.tronscanapi.com/api',
timeout: 10000
});获取账户信息
// 获取账户详细信息
const account = await sdk.getAccountDetail('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');
console.log(`地址: ${account.address}`);
console.log(`余额: ${TronScanSDK.sunToTrx(account.balance)} TRX`);
// 获取账户代币列表
const tokens = await sdk.getAccountTokenList({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
start: 0,
limit: 20
});
// 获取账户资源信息
const resources = await sdk.getAccountResource({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
type: 1,
resourceType: 0
});
// 获取账户钱包代币概览
const overview = await sdk.getAccountWalletTokenOverview('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');交易查询
// 获取交易列表
const transactions = await sdk.getTransactionList({
start: 0,
limit: 50
});
// 通过哈希获取交易详情
const txDetail = await sdk.getTransactionDetail('transaction-hash');
// 获取 TRC20/TRC721 转账记录
const trc20Transfers = await sdk.getTrc20OrTrc721TransfersList({
start: 0,
limit: 100
});
// 获取 TRX 和 TRC10 转账记录
const trxTransfers = await sdk.getTrxAndTrc10TransfersList({
start: 0,
limit: 100,
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
});
// 获取内部交易列表
const internalTxs = await sdk.getInternalTransactionList({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
start: 0,
limit: 50
});区块查询
// 获取区块列表
const blocks = await sdk.getBlockList({
start: 0,
limit: 20
});
// 获取最新区块信息
const latestBlocks = await sdk.getBlockList({
start: 0,
limit: 1
});代币信息
// 获取 TRC20/TRC721/TRC1155 代币详情
const tokenDetails = await sdk.getTokenDetails({
start: 0,
limit: 50
});
// 获取代币价格信息
const tokenPrice = await sdk.getTokenPrice({
token: 'usdt'
});合约相关
// 获取合约详情
const contractDetail = await sdk.getContractDetail('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');
// 获取合约事件
const contractEvents = await sdk.getContractEvent({
contractAddress: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
limit: 20
});钱包功能
// 获取 TRX 转账列表
const trxTransfers = await sdk.getTrxTransferList({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
start: 0,
limit: 50
});
// 获取 TRC20 转账列表
const trc20Transfers = await sdk.getTrc20TransferList({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
contract_address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
start: 0,
limit: 50
});统计和分析
// 获取账户每日分析数据
const analytics = await sdk.getDailyAnalyticsData({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
});
// 获取 TRX 质押利率数据
const stakingRate = await sdk.getTrxStakingRate({
start: 0,
limit: 30
});
// 获取账户数据和相关交易
const accountData = await sdk.getAccountDataWithTransactions({
address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
});安全功能
// 账户安全检查
const securityCheck = await sdk.getAccountSecurityCheck('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');工具方法
SDK 提供了多个实用的静态工具方法:
// 单位转换
const trxAmount = TronScanSDK.sunToTrx(1000000); // 1 TRX
const sunAmount = TronScanSDK.trxToSun(1); // 1000000 Sun
// 地址格式化
const shortAddress = TronScanSDK.formatAddress('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');
// 输出: "TR7NHq...gjLj6t"
// 地址验证
const isValidAddress = TronScanSDK.isValidTronAddress('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');
console.log(isValidAddress); // true
// 交易哈希验证
const isValidHash = TronScanSDK.isValidTransactionHash('64位十六进制字符串');
console.log(isValidHash); // true/false
// 时间戳格式化
const date = TronScanSDK.formatTimestamp(1640995200000);
console.log(date); // Date 对象API 配置
const sdk = new TronScanSDK({
apikey: 'your-api-key', // 可选,API 密钥
apiKey: 'your-api-key', // 可选,支持两种写法
baseURL: 'https://apilist.tronscanapi.com/api', // 可选,API 基础 URL
timeout: 10000 // 可选,超时时间(毫秒)
});
// 动态设置 API Key
sdk.setApiKey('new-api-key');错误处理
try {
const account = await sdk.getAccountDetail('invalid-address');
} catch (error) {
console.error('请求失败:', error);
if (error.response) {
// API 返回错误
console.error('状态码:', error.response.status);
console.error('错误信息:', error.response.data);
} else if (error.request) {
// 网络错误
console.error('网络错误:', error.message);
}
}运行示例
项目包含了完整的使用示例:
# 安装依赖
bun install
# 运行快速开始示例
bun run example:quick
# 运行完整使用示例
bun run example:usage
# 运行测试
bun test
# 运行集成测试
bun run test:integration
# 运行测试覆盖率
bun run test:coverage查看 examples/ 目录获取更多使用示例。
API Key 获取
- 访问 TronScan API Keys 页面
- 登录您的账户
- 点击 "Add" 按钮创建新的 API Key
- 输入应用名称并配置安全选项
- 复制生成的 API Key 到您的应用中
支持的 API 端点
账户相关
getAccountDetail(address)- 获取账户详细信息getAccountTokenList(params)- 获取账户代币列表getAccountResource(params)- 获取账户资源列表getAccountApprovalList(params)- 获取账户授权列表getAccountAuthorizationChangeRecords(params)- 获取账户授权变更记录getDailyAnalyticsData(params)- 获取账户每日分析数据getAccountWalletTokenOverview(address)- 获取账户钱包代币概览
合约相关
getContractDetail(address)- 获取合约详情getContractEvent(params)- 获取合约事件信息
交易相关
getTransactionList(params)- 获取交易列表getTransactionDetail(hash)- 通过哈希获取交易详情getTrc20OrTrc721TransfersList(params)- 获取 TRC20/TRC721 转账列表getTrxAndTrc10TransfersList(params)- 获取 TRX/TRC10 转账列表getInternalTransactionList(params)- 获取内部交易列表getAccountTransactionData(params)- 获取账户交易数据
区块相关
getBlockList(params)- 获取区块列表
代币相关
getTokenDetails(params)- 获取 TRC20/TRC721/TRC1155 代币详情getTokenPrice(params)- 获取指定代币价格信息getTransfer(params)- 获取交易信息
钱包相关
getTrxTransferList(params)- 获取 TRX 转账列表getTrc20TransferList(params)- 获取 TRC20 转账列表
统计相关
getTrxStakingRate(params)- 获取 TRX 质押利率数据getAccountDataWithTransactions(params)- 获取账户数据和相关交易
安全相关
getAccountSecurityCheck(address)- 账户安全检查
类型支持
SDK 提供了完整的 TypeScript 类型支持,包括:
- 所有 API 请求参数的类型定义
- 所有 API 响应数据的类型定义
- 配置选项的类型定义
- 工具方法的类型定义
导入类型:
import {
TronScanSDK,
TronScanConfig,
AccountInfo,
TransactionDetail,
BlockListResponse
} from '@pddo/tronscan-api-sdk';开发
# 克隆项目
git clone https://github.com/your-org/tronscan-api-sdk.git
# 安装依赖
bun install
# 开发模式
bun run dev
# 构建
bun run build
# 运行测试
bun test
# 代码检查
bun run lint
# 修复代码问题
bun run lint:fix
# 类型检查
bun run type-check许可证
MIT
贡献
欢迎提交 Issue 和 Pull Request!
在提交之前,请确保:
- 代码通过所有测试
- 代码符合 ESLint 规范
- 添加了相应的类型定义
- 更新了相关文档
支持
如果您在使用过程中遇到问题,请:
- 查看 TronScan API 文档
- 查看项目的
examples/目录 - 在 GitHub 上提交 Issue
- 联系 TronScan 客服获取 API 相关支持
更新日志
v1.0.0
- 🎉 首次发布
- ✅ 支持所有主要 TronScan API 端点
- ✅ 完整的 TypeScript 类型支持
- ✅ 内置实用工具方法
- ✅ 完整的测试覆盖
- ✅ 详细的使用示例
