意图客户端 SDK
SDK在索拉纳的意向计划 允许创建、管理和执行跨链操作的意图.
安装
npm install @debridge-finance/intents-client
文件结构和使用流程
示例文件夹包含一系列文件,显示使用Intents客户端SDK的完整工作流程. 每个文件代表了进程的具体步骤:
1. 联合国. 01-init-intent-client.ts - 客户初始化
目的: 设置基本客户端配置 包含数字 :
new IntentsClient()- 证明客户的意图
2. 联合国. 02-init-intent.ts - 意图配置
目的: 定义意图结构和参数 包含数字 :
- 没有调用客户端方法
3个. 03-create-intent.ts - 有意创造和部署
目的: 创建并向区块链部署意图 包含数字 :
client.createAndUpdateIntentTxs()- 创建单一交易(首选)client.createIntentTxs()- 创建多个交易(倒计时)
4.四. 05-sandwich-swap.ts - 交换处决
目的: 使用创建的意向进行令牌互换 包含数字 :
client.swapTxs()- 生成交换交易
5 (韩语). 06-intent-execution.ts - 故意处决
目的:通过DLN执行意图的最后步骤 包含数字 :
client.executeIntentIxs()- 生成执行指令
调用序列
分步执行流程 :
-
初始化客户端 (单位:千美元)
01-init-intent-client.ts(中文(简体) )- 创建索拉纳连接
- 生成密钥pair
- 明确意图
-
配置意图 (单位:千美元)
02-init-intent.ts(中文(简体) )- 用所有参数定义对象
- 设置令牌地址、金额和跨链条细节
-
部署意向 (单位:千美元)
03-create-intent.ts(中文(简体) )- 将意图数据序列化
- 尝试单项交易创建
- 如果需要, 返回到多交易
- 发送交易到块链
-
执行交换 (单位:千美元)
04-sandwich-swap.ts(中文(简体) )- 设置令牌账户
- 有意创建互换交易
- 执行互换
-
完全意图 (单位:千美元)
05-intent-execution.ts(中文(简体) )- 初始化 DLN 客户端
- 创建跨链顺序
- 生成最后执行指令
意图版本
Intent 带有有线格式版本:它传递给构造器和 Intent.deserialize。程序
接受 v0 和 v1 两种新意图: 版本传递给 initIntent* (从 intent.version),录入
意向存储并用来解码密封及以后的意向; 不符合所记录版本的有效载荷
被拒绝。 在v1中,每个精确的价格都是分数:
output = input * price / 10^priceDenominator时 priceDenominator 进入 0..=38数字 :
const intent = new Intent(
{
// ...
giveTokens: [{ output: USDC, input: USDT, price: 1n, priceDenominator: 0 }],
},
IntentVersion.V1,
);
const encoded = intent.serialize();
v0 意图( 价格由输入小数, 不缩放) priceDenominator)仍然被解码.
Intent<V> 财务报告和审定财务报表 IntentType<V> 该版本是通用的,所以在编译时检查准确的价格:
priceDenominator 用于 IntentVersion.V1 不允许 IntentVersion.V0
(单位:千美元) 0..=38 范围由 serialize()) (中文(简体) ).
意向存储账户保存了解码意向所需的一切:所有者(maker),该版本录入于
输入( n)version和编码意图(storedIntent.ready|cancelled,返回为 encodedIntent:
const storage = await client.getIntentStorage(connection, intentId);
// storage.encodedIntent is null while the storage is not initialized
const { maker, version, encodedIntent } = storage!;
switch (version) {
case IntentVersion.V0:
// Intent<IntentVersion.V0>
Intent.deserialize(encodedIntent!, maker, IntentVersion.V0);
break;
case IntentVersion.V1:
// Intent<IntentVersion.V1>: exact prices have priceDenominator
Intent.deserialize(encodedIntent!, maker, IntentVersion.V1);
break;
}
意图方法
- 获取状态( C)
- 获取意图( I)
- 执行意向Ix ()
- intentIxs () (帮助)
- intentUsingSigIxs () () (中文)
- 已核准预算Ixs( )
- 互换 BeginIx( )
- 互换EndIxs( )
- 更新意图Ix ()
- 关闭记录Ix ()
- 写入记录Ixs ()
- reloc 记录Ixs ()
- 输入意向Txs ()
- 写入 intentTxs ()
- 创建intentTxs ()
- 创建 Update IntentTxs ()
- 更新记录Txs( )
- 关闭意图Txs ()
- 互换Txs( )