@augustdigital/sdk

中文文档
9.16.0发布于 2026/10/28MITTypeScriptCommonJS近 30 天下载 3.5万

JS SDK为8月数字生态系统提供动力.

中文使用文档
文档目录31 节
  1. 安装
  2. 瓦格米/维姆支助
  3. 快速启动
  4. 应用程序名称
  5. 起源- 代码归属( SwapRouter)
  6. 建筑
  7. 关键概念
  8. 多钱支持
  9. 默认版本
  10. 数据浓缩
  11. API 参考
  12. 断层查询
  13. 用户位置
  14. 点
  15. 写操作( 顶级)
  16. 横琴 (LayerZero)
  17. 公用事业
  18. 分账户 sdk.subAccountsModule (中文(简体) )
  19. EVM 适应器 sdk.evm (中文(简体) )
  20. 索拉纳适应器 sdk.solana (中文(简体) )
  21. 斯特拉尔适配器( S) sdk.stellar (中文(简体) )
  22. Sui 适配器( R) sdk.sui (中文(简体) )
  23. 守则公约
  24. 命名图案
  25. 特殊注释标签
  26. 处理错误
  27. 环境配置
  28. 发展
  29. 运行测试
  30. 大楼
  31. 支助

8月 数字 SDK

TypeScript SDK用于与August Digital金库交互,跨越EVM,索拉纳,斯特拉尔和Sui链.

安装

npm install @augustdigital/sdk ethers
# or
pnpm add @augustdigital/sdk ethers
# or
yarn add @augustdigital/sdk ethers

瓦格米/维姆支助

SDK既支持醚又支持wagmi/viem符号. 如果你在反应应用中使用wagmi, 也安装viem:

npm install viem

SDK 自动转换viem WalletClient 与醚兼容的符号.

快速启动

import AugustSDK from '@augustdigital/sdk';

const sdk = new AugustSDK({
  // Required: stable kebab-case slug identifying your application.
  appName: 'acme-trader',
  providers: {
    1: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
    42161: 'https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY',
    -1: 'https://api.mainnet-beta.solana.com', // Solana
  },
  keys: {
    august: 'YOUR_API_KEY', // Optional: vault reads, allocations and vault-linked sub-account reads work without it
  },
  monitoring: {
    env: 'DEV', // Optional: 'DEV' enables console logging (defaults to 'PROD')
  },
});

// Fetch all vaults
const vaults = await sdk.getVaults();

// Fetch a specific vault with loans and allocations
const vault = await sdk.getVault({
  vault: '0x...',
  options: { loans: true, allocations: true },
});

// Get user positions
const positions = await sdk.getVaultPositions({
  wallet: '0x...',
  showAllVaults: true,
});

应用程序名称

appName 需要每个 AugustSDK 建筑师呼叫。 通过一个稳定的kebab- case 弹片 识别您的申请(例如). 'acme-trader', (中文(简体) ), 'my-defi-app':

  • 何等为用. 8月 数字标记分析事件 app.name = <yourSlug> 改为 属性错误标记和优先排序错误修正 .
  • 事实并非如此. 不是秘密 不是执照钥匙 不是显示标签 选一发子弹 并在部署中重复使用.
  • 制约因素. 3-64个字符,仅限 [a-zA-Z0-9._-]。SDK同步从 如果数值缺失或无效,则该构建器.
// Will throw — appName is required.
new AugustSDK({ providers: { /* ... */ } } as any);

// Will throw — spaces not allowed. Use 'acme-trader'.
new AugustSDK({ appName: 'Acme Trader', providers: { /* ... */ } });

// Correct.
new AugustSDK({ appName: 'acme-trader', providers: { /* ... */ } });

起源- 代码归属( SwapRouter)

在交换室上注册的拥有原产地(参考/费用分享)代码的集成商将它安装在 SDK实例。 通过SDK实现的存款然后在链上携带:

const sdk = new AugustSDK({
  appName: 'acme-trader',
  providers: { 1: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY' },
  attribution: {
    originCode: '0x…', // bytes32 registered on the SwapRouter with addOrigin
    strictOrigin: false, // optional: true throws instead of falling back
  },
});

// Check the code before you ship it.
const { registered, originFeeBps, collector } = await sdk.getOriginInfo({
  chainId: 1,
  originCode: '0x…',
});
  • 只有伊特鲁姆主网. 实例代码发送于链 1 (ORIGIN_ATTRIBUTION_CHAINS没有其他 链,即使配置了交换路器.

  • 适用之处. vaultDeposit 发送保证金通过 SwapRouter.deposit 密码 sdk.evm.getDepositRoute() 返回时 via: 'router':金库在路由器上注册,金库接受 资产原地(其参考资产,或Tokenized Vault V2 白上市资产——从未互换),路由器 白列资产,路由器不被暂停,押金不是许可,本地或适配器押金, 并注册了密码. swapRouterDeposit, (中文(简体) ), swapAndDeposit, (中文(简体) ), depositViaSwapRouter 财务报告和审定财务报表 depositNativeViaSwapRouter 也发去.

  • 先入正觉. 一个 originCode 传递到路由器方法,然后是实例代码,然后是全零 sentinel(无来源费). 传出零哨,选择一个呼叫.

  • 倒倒倒地来. 当代码无法应用时——它没有注册,链条不是主网,路由器 暂停( e)router-paused,用15秒缓存检查)或不将资产白化,金库会 不接受,或未在路由器上注册,或是一种许可、本地托存或适配存款—— vaultDeposit 使用金库的本地路径和日志 vaultDeposit:attribution-skipped 带有原因( 哨兵标记) sdk.attribution.origin=skipped) (中文(简体) ). 路由器 方法发送未注册实例代码和日志的0 sentinel <method>:attribution-skipped。 。 。 . 与 strictOrigin: true 未注册实例代码抛出 AugustValidationError 任何批准之前 相反;一个被暂停的路由器甚至会回到原生地. 一个 originCode 传递到路由器方法,即 未注册总是丢 AugustValidationError 在任何批准之前。 当路由器被暂停时 路由器方法抛出 AugustSDKError (单位:千美元)context.reason: 'router-paused'任何批准之前.

  • 核准 route.spender不是金库. 换接器提取了路由押金. vaultDeposit 财务报告和审定财务报表 approve 操作此选项; 如果您自己发送批准文件, 请先读到支出者 :

    const route = await sdk.evm.getDepositRoute({ target: vault, depositAsset: usdc });
    // route.spender is the SwapRouter when route.via === 'router', else the vault (or adapter wrapper)
    
  • 气来. 在主网叉上测量(将1,000美元存款汇入核心USDC):直接存款102,067个气体; 路由器为0%,编码为161.744 (+59.7k);路由器为1%,编码为173,135 (+71.1k). 路由存款还需要一个 一次性批准路由器每令牌.

  • 零费码. 以 0 bps 收费注册的代码仅对归属有效,但路由器发出否 OriginFeeApplied 活动。 其存款仅来自交易 calldata和SDK 遥测.

  • 进程-全球. attribution 是进程- 全球: 最后一个 AugustSDK 构造胜出,一个 建造无 attribution 释出. 每个进程运行一个归属配置.

建筑

src.ts/
├── main.ts              # Main SDK class (AugustSDK)
├── core/                # Base utilities
│   ├── base.class.ts    # Base SDK functionality
│   ├── fetcher.ts       # API client with retry logic
│   └── web3.helpers.ts  # Blockchain utilities
├── adapters/            # Chain-specific implementations
│   ├── evm/             # EVM adapter (approve, deposit, redeem, read helpers)
│   ├── solana/          # Solana program adapters
│   ├── stellar/         # Stellar vault adapters
│   └── sui/             # Sui (Ember) vault adapters
├── evm/                 # EVM cross-chain (LayerZero OVault)
├── modules/             # Feature modules
│   ├── vaults/          # Vault read operations
│   ├── sub-accounts/    # Sub-account queries
│   └── api/             # August backend API integration
├── services/            # External service integrations
│   ├── debank/          # DeFi allocation data
│   ├── coingecko/       # Token pricing
│   └── subgraph/        # Historical transaction data
└── types/               # TypeScript interfaces

关键概念

多钱支持

  • EVM 链:伊特鲁姆,阿比特鲁姆, Base, BSC, Avalanche, 以及更多—— wagmi/viem 财务报告和审定财务报表 ethers 支持的签名符
  • 索拉纳: 具有完整金库功能的原生索拉纳程序支持
  • 斯特拉尔: Stellar 保险库存款、赎回和职位查询
  • 苏: Ember 金库读取操作
  • 跨越所有链条的统一接口

默认版本

  • evm-0/evm-1: 遗产金库合同
  • evm-2: 当前 EVM 金库架构( 单独的收件符)
  • sol-0: 索拉纳程序金库
  • stellar-0: 以 Starr 为主的金库

数据浓缩

所有金库查询都支持可选浓缩 :

  • loans: 包含主动贷款数据
  • allocations: DeFi/CeFi/OTC位置细分
  • wallet: 用户特定位置数据

API 参考

断层查询

方法说明
getVaults(options?)跨链取出所有金库
getVault({ vault, chainId?, options? })获取单个金库细节
getVaultLoans({ vault, chainId? })获取活动贷款
getVaultAllocations({ vault, chainId? })获取分配细目
getVaultHistoricalTimeseries({ vault, chainId? })历史上的APY和TVL时间序列
getVaultApy({ vault, historical? })@ 已过期 ——使用 getVaultHistoricalTimeseries
getVaultTvl({ vault, historical? })目前/历史 TVL
getVaultAnnualizedApy({ vault })将APY用作保险库
getVaultSummary({ vault })汇总金库摘要
getVaultPnl({ vault, chainId? })默认级别 PnL
getVaultUnrealizedPnlHistory({ vault, chainId?, ... })未实现的 PnL 时间序列
getLatestUnrealizedPnl()所有金库的最新未实现的PnL快照
getYieldLastRealizedOn({ vault, chainId? })最后产量实现的时间戳
getTotalDeposited(options?)整个保险库的存款总额

用户位置

方法说明
getVaultPositions({ wallet?, vault?, chainId? })用户金库位置
getVaultAvailableRedemptions({ vault, wallet?, chainId, verbose? })索赔的赎回
getVaultRedemptionHistory({ vault, wallet?, chainId? })历史的救赎
getVaultUserHistory({ wallet, vault?, chainId? })交易历史
getVaultUserTransfers({ wallet, vault?, chainId? })传输历史
getVaultUserLifetimePnl({ wallet, vault?, chainId? })钱包终身 PnL
getVaultStakingPositions({ wallet, chainId })担任职务
getVaultBorrowerHealthFactor(props?)借款人健康因素
getVaultWithdrawals({ vault, chainId? })待提取

点

方法说明
getUserPoints(userAddress)钱包的分数平衡
registerUserForPoints({ wallet, referral? })为分数程序注册钱包
fetchPointsLeaderboard(params?)点头板

写操作( 顶级)

方法说明
vaultDeposit(signer, options)存入金库
previewRedemption(props)广播前预览还原输出

横琴 (LayerZero)

方法说明
getLayerZeroDeposits({ wallet?, chainId? })图层Zero储量历史
getLayerZeroRedeems(props?)图层Zero救赎历史

公用事业

方法说明
getPrice(symbol)汇兑价格(美元)
switchNetwork(chainId)更改活动链
updateWallet(address)设置正在运行的跟踪钱包

分账户sdk.subAccountsModule(中文(简体) )

方法说明
getSubaccountHealthFactor(address)一个分账户的健康因素
getSubaccountLoans(address)用于子账户的积极贷款
getSubaccountCefiPositions(address)CeFi 职位
getSubaccountOtcPositions(address)OTC职位
getSubaccountSummary(address)合计分账户汇总

EVM 适应器sdk.evm(中文(简体) )

在调用写法前设置一个签名符 :

// ethers
import { JsonRpcProvider, Wallet } from 'ethers';
const wallet = new Wallet(process.env.PRIVATE_KEY!, new JsonRpcProvider(rpcUrl));
sdk.evm.setSigner(wallet);

// wagmi/viem (browser)
import { useWalletClient } from 'wagmi';
const { data: walletClient } = useWalletClient();
if (walletClient) sdk.evm.setSigner(walletClient);

写入方法 :

方法说明
vaultApprove(options)批准为金库支付代币
approve(options)一般性ERC-20核准
vaultDeposit(options)将资产存入金库
vaultRequestRedeem(options)请求撤回/撤销
vaultRedeem(signer, options)要求可获得的补偿
depositNative(options)保存本地地物(ETH等)
swapAndDeposit(options)换一换一换
depositViaSwapRouter(options)通过互换路由器存款
depositNativeViaSwapRouter(options)通过互换路由器交存本地

读取助手( 返回原始) bigint:

方法说明
previewDeposit(options)按存款金额计价的股份
previewRedeem(options)退回的资产,份额
allowance(options)向金库发放ERC-20津贴
balanceOf(options)ERC-20 任何令牌/所有者的余额
maxDeposit(options)保险库接受的最大存款
vaultAllowance(options)特定故障津贴检查
getDeposited(options)本期存款余额
getRemainingAllocations(options)剩余分配能力
isWhitelisted(options)检查白名单状态

索拉纳适应器sdk.solana(中文(简体) )

方法说明
getVaultState(...)索拉纳计划中的故障状态
getVaultStateReadOnly(...)只读金库状态
getToken(mintAddress)SPL 令牌信息
getTokenSymbol(mintAddress)脚本符号
fetchUserTokenBalance(publicKey, mint)用户 SPL 符号余额
fetchUserShareBalance(publicKey, vault)用户共享余额
fetchUserShareBalanceRaw(publicKey, vault)原始份额余额( 比克特)

斯特拉尔适配器( S)sdk.stellar(中文(简体) )

方法说明
vaultDeposit(options)存入斯泰拉金库
vaultRedeem(options)从斯泰拉金库取出
submitTransaction(signedXdr)提交签名的 XDR 交易
getUserPosition(options)用户在 Stellar 金库中的位置
convertToShares(options)将资产金额转换为股份

Sui 适配器( R)sdk.sui(中文(简体) )

方法说明
getEmberVaults()列出所有 Ember (Sui) 金库
getEmberTVL(limit?)整个安伯金库锁定的总值

守则公约

命名图案

  • 接口: 前缀为 I (例如, IVault, (中文(简体) ), IVaultLoan(中文(简体) )
  • ABIs 函数: 前缀为 ABI_ (例如, ABI_LENDING_POOL_V2(中文(简体) )
  • 类型:描述性名称(如:, IAddress, (中文(简体) ), IChainId(中文(简体) )

特殊注释标签

搜索密码库以找到重要区域 :

  • @todo: 计划改进或缺失特征
  • @hardcoded: 可能需要配置的硬码值
  • @solana: 索拉纳语特定逻辑或注释

处理错误

每种公用方法都会打出子类错误 AugustSDKError数字 :

import { AugustValidationError, AugustTimeoutError, AugustSDKError } from '@augustdigital/sdk';

try {
  await sdk.evm.vaultDeposit({ target: '0x...', wallet: owner, amount: '1' });
} catch (err) {
  if (err instanceof AugustValidationError) showFormError(err.message);
  else if (err instanceof AugustTimeoutError) scheduleRetry(err.timeoutMs);
  else if (err instanceof AugustSDKError) reportError(err.code, err.cause);
  else throw err;
}
  • 网络错误自动重试, 以指数倒置
  • 90秒请求超时(可以通过 REQUEST_TIMEOUT_MS(中文(简体) )
  • 调试出错的关联ID

环境配置

// Development mode — enables console logging
const sdk = new AugustSDK({ appName: 'my-app', providers: { /* ... */ }, monitoring: { env: 'DEV' } });

// Production mode — default, no console logs
const sdk = new AugustSDK({ appName: 'my-app', providers: { /* ... */ } });

发展

运行测试

pnpm test

大楼

pnpm build

支助

版本与发布记录

@augustdigital/sdk 共发布 534 个版本,首次发布于 2024/06/28;过去 12 个月发布了 172 个版本。

版本发布日期距今
9.16.0latest2026/10/2810 天前
9.15.02026/10/2711 天前
9.14.02026/10/2415 天前
9.13.32026/10/1523 天前
9.13.22026/10/1524 天前
9.13.12026/10/1425 天前

其他发布通道:alpha-release → 4.3.2-alpha3,4.4.3test → 4.4.3-alpha,betatest → 4.7.2-beta,testing → 4.7.3-alpha,alpha-test-rwa → 4.24.3-alpha.2,alpha-test-rwa-2 → 4.24.3-alpha.3。

关于 @augustdigital/sdk 的常见问题

@augustdigital/sdk 是什么?

JS SDK为8月数字生态系统提供动力.

如何安装 @augustdigital/sdk?

在项目目录运行 npm install @augustdigital/sdk,或使用 pnpm add / yarn add / bun add。

@augustdigital/sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@augustdigital/sdk 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@augustdigital/sdk 可以商用吗?

@augustdigital/sdk 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@augustdigital/sdk 的下载量有多少?

根据 npm 官方下载统计,@augustdigital/sdk 在 2026/10/07 – 2026/11/05 这 30 天内被下载 34,708 次,日均约 1,157 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@augustdigital/sdk 还在维护吗?

最新版本 9.16.0 发布于 2026/10/28(10 天前);至今共发布 534 个版本,其中过去 12 个月发布了 172 个;首次发布于 2024/06/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。