欧拉 V2 SDK
安装
npm install @eulerxyz/euler-v2-sdk
示例使用法(多用+模拟)
import { buildEulerSDK, getSubAccountAddress } from "@eulerxyz/euler-v2-sdk";
import { mainnet } from "viem/chains";
import { parseUnits } from "viem";
// Set EULER_SDK_RPC_URL_1=https://your-rpc-url in the environment.
const sdk = await buildEulerSDK();
const owner = "0xYourEOA";
const subAccount = getSubAccountAddress(owner, 1);
const account = await sdk.accountService.fetchAccount(mainnet.id, owner, {
populateVaults: true,
});
const quotes = await sdk.swapService.getDepositQuote({
chainId: mainnet.id,
fromVault: "0xLiabilityVault",
toVault: "0xLongVault",
fromAccount: subAccount,
toAccount: subAccount,
fromAsset: "0xLiabilityAsset",
toAsset: "0xLongAsset",
amount: parseUnits("50", 6),
origin: owner,
slippage: 0.5,
deadline: Math.floor(Date.now() / 1000) + 1800,
});
const plan = sdk.executionService.planMultiplyWithSwap({
account,
collateralVault: "0xCollateralVault",
collateralAmount: parseUnits("100", 6),
collateralAsset: "0xCollateralAsset",
swapQuote: quotes[0]!,
});
const simulation = await sdk.simulationService.simulateTransactionPlan(
mainnet.id,
owner,
plan,
{ stateOverrides: true }
);
// Use simulated account and vaults state in the UI.
// Use simulation.canExecute or errors to decide whether and how to execute this plan in your app.
// See /examples/utils/executor.ts
这个SDK是为了什么
@eulerxyz/euler-v2-sdk 提供与Euler V2贷款合同互动所需的一切:
- 获取账户、金库、钱包余额/贷款和市场数据
- 规划和编组EVC交易批次
- 解决批准(核准/核准2路径)
- 执行前模拟交易
- 处理金库互换、钱包对Wallet互换、定价、奖励、rEUL锁、安全智能账户检测、公共标签V3元数据、能见度和地理政策以及已部署地址
- 获取数据 V3 甲骨文适配器评估和索引路由器状态
SDK是通过依赖性注射而构建的,因此可以使用 buildEulerSDK() 默认设置, 单独运行单个服务, 或修改您的自定义执行行为 .
配置
运行时配置可以来自 buildEulerSDK({ config }),支持明确的 SDK 选项, EULER_SDK_* 环境变量,或 SDK 默认值。 RPC URL 通过 config.rpcUrls 或者说 EULER_SDK_RPC_URL_<chainId>。见全文 配置参考 财务报告和审定财务报表 通过信封配置 用于所有选项和默认.
目录
所有文件已经进入 ./docs。 。 。 .
- 配置 - 全部来
buildEulerSDK()选项、默认和服务覆盖. - 通过信封配置 - 说吧
EULER_SDK_*环境变量和匹配config字段. - 基本用途 - 快速设置和共同账户/空洞/钱包使用模式.
- SDK 架构概览 - 高层结构、依赖性注射模型和组成方案.
- 服务 - 服务地图、顶级入境点和下级支助服务.
- 钱包服务 - 本地/ERC20余额和直接/许可证2津贴.
- 执行事务处 - 说吧
encodeX对planX,批准流,命名操作组,mergePlans,以及describeBatch。 。 。 . - 模拟和国家重任 - 计划模拟流量、验证输出和国营设施.
- 交换 - 交换引用API 以及交换有效载荷如何融入计划.
- COW 交换 - COW引用元数据、COW特定规划者、提交命令、状况投票和取消.
- 移民服务处 - 跨议定书位置迁移(Aave V3、Morpho Blue、MetaMorpho)进出欧拉,并有授权和互换.
- 奖励服务 - 奖励、观众认识资格和具体供应商的索赔规划.
- rEUL 锁定服务 - REUL锁读取并解锁交易计划.
- 收费流动服务 - 收费状态读取、合格地壳过滤和购买计划建造.
- 安全账户处 - 安全智能账户检测和签名人配置读取.
- 定价系统 - 价格数据管道、倒置行为和定价一体化点.
- 退缩系统 - V3 → 在链上/子图上/直接倒回链上,触发语义学
onFallback遥测. - 数据架构 - 实体/适应者/服务层、人口模型和数据流动.
- 跨部门数据人口 服务如何通过价格、奖励、标签和嵌入式金库来丰富实体.
- 块式平板读取器 - 在一个区块(编号或EIP-1898散列)上读取每个链上值,并捆接镜头读取成一个
eth_call。 。 。 . - 组合 - 高层储蓄/借款取自人口账户.
- 实体参考文献 - 出口实体形状的财产级参考.
- 账户计算属性 - 健康系数/LTV/净值计算字段和数据先决条件.
- 缓存外部数据查询 - 说吧
query*缓存/博客/缩写的装饰图案. - 插件 用于读取路径和计划路径扩展的插件系统.
- 标签和金库评估 - 公布元数据、能见度和原始评估.
- 解码智能合同出错 - 恢复解码功能,以更好地处理出错.
- 实体诊断 - 用于数据正常化、倒计时和每地警告的侧车元数据.
- 添加链条 - SDK在每个链条的运行时间读取的内容,以及保存在这个寄存器中的每个链条条目.
实例
可运行实例在 ./examples,包括端到端执行流和对分叉的模拟.
比较、对等检查、以及其他面向测试的脚本和报告 ./test/parity。 。 。 .
释放进程
此软件包通过 repo- local 发布 RELEASE.md 游戏本和当地 $publish 技术.
Git tags和GitHub Releases是"真理"的放出-注解来源. 承诺 package.json 不携带发布版本; $publish 获取 npm 版本从 euler-v2-sdk-vX.Y.Z 标记,包括诸如 euler-v2-sdk-vX.Y.Z-beta.0。 。 。 .
发布流验证 npm auth, 运行 pnpm -C packages/euler-v2-sdk run release:check,创建和推动 euler-v2-sdk-vX.Y.Z 选中的标签 main 承诺、 临时为 npm 撰写标签版本、 干运行软件包、 发布 npm publish --access public --provenance=false,恢复工作树,并根据生成的音符文件中的已验证标记创建 GitHub Release。 使用匹配的 npm dist- tag 发布预释, 例如 npm publish --access public --tag beta --provenance=false。 。 。 .
使用操作员本地 npm 会话发布 。 npm可能提示一次性密码或提供浏览器认证URL;在发布进程退出前完成该提示.
默认标签服务
buildEulerSDK().eulerLabelsService 使用公共标签 V3(public 编号 : latest),共享所配置的V3端点,API密钥和查询缓存. 结果保留了现场可见度、管理实体和地理政策;失败了读取拒绝而不回到文件。 使用 eulerLabelsV3AdapterConfig 用于数据集、出版物或运输定制。 应用程序提供自定义标签流经 servicesOverrides.eulerLabelsService。见 标签 用于源选择和信任语义.
未评估的 V3 标签
PublicLabelsV3MetadataAdapter 阅读已公布的标签、实体简介/地址和没有可见度的实况地理政策: /labels/vaults 无 include=visibility 从不读直接判决 明确选择给进行自己核查的消费者;这不是自动退缩 PublicLabelsV3Adapter。 。 。 .
import { PublicLabelsV3MetadataAdapter, normalizePublicLabelsMetadata } from '@eulerxyz/euler-v2-sdk/public-labels';
const adapter = new PublicLabelsV3MetadataAdapter({ endpoint: 'https://v3.euler.finance', labelSet: 'public' });
const snapshot = await adapter.fetchPublicLabelsSnapshot(146);
const metadata = normalizePublicLabelsMetadata(146, snapshot.publicLabels);
// metadata.candidateVaultAddresses / candidateEarnVaultAddresses are fetch candidates.
// verifiedVaultAddresses and earnVaults remain empty; independent verification is required.
快照带着 source: 'v3-metadata' 没有能见度的判决。 仅元数据正常化保留产品 notExplorable 和金库 notExplorableLend编号 :notExplorableBorrow 旗帜; 荣用出借侧旗外加产品藏. 光是贬值是不会藏起金库的。 评估的正常化仍然独立于这些生来旗帜。 两个适配器共享出版物选择和元数据映射;被评估的适配器仍需要实时判断,附加在标签上 include=visibility 或直接读取尚未评估的行。 该应用程序拥有链条选择、治理核查、发现和地理执行.