@albedo-link/intent

中文文档
0.13.0发布于 2025/06/13MITTypeScriptES Module零依赖近 30 天下载 12.4万

用于Albedo API的轻量级浏览器包装器,为所有支持的意向提供基于承诺的界面.

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 意图
  4. 隐形会话
  5. 发展

Albedo 的意向界面模块

此库是一个轻量级浏览器包 阿尔贝多 API 密码 为所有支持的意向提供一个基于承诺的界面.

安装

npm i -S @albedo-link/intent

使用量

设置

import albedo from '@albedo-link/intent'

意图

意图 public_key - 查看公用钥匙

请求账户公用钥匙。 这是基于Stellar的应用程序的简单认证方式. 响应确保用户拥有相应的密钥.

参数

  • token (弦声) - 说吧 (可选) 应用程序生成的验证符( 应该是独有的或随机的) .
  • callback (弦声) - 说吧 (可选) 可选的 URL 召回 Albedo 会在那里 POST 一个签名的符号和公钥 .
  • require_existing (布尔) - 说吧 (可选) 只允许现有的 Albedo 账户 .

回返

  • pubkey (弦声) - 用户选择的公用钥匙.
  • signed_message (弦声) - 从公用钥匙和验证符中衍生出HEX编码认证信息.
  • signature (弦声) - HEX编码为ED25519的认证消息签名,可以进一步用于验证用户的密钥pair所有权.

示例

albedo.publicKey({
    token: 'r9gbUuThXLr/wOrg2dxWHOO4DQsvQsTpkv1OtfETB3c='
})
    .then(res => console.log(res))

意图 sign_message - 签署短信

请求任意签名信件 。 可用于实施身份/所有权核查.

参数

  • message (弦声) - 说吧 (必须) 要签名的短信 .
  • pubkey (弦声) - 说吧 (可选) 应用程序要求的具体公钥 .
  • callback (弦声) - 说吧 (可选) 可选的 URL 调用 Albedo 将 POST 的签名消息 .

回返

  • pubkey (弦声) - 用户选择的公用钥匙.
  • original_message (弦声) - 从请求中签名的短信.
  • signed_message (弦声) - HEX编码消息来自公用钥匙和原始消息.
  • message_signature (弦声) - HEX编码为ED25519 签名电文.

示例

albedo.signMessage({
    message: 'Alice doesn\'t trust Bob'
})
    .then(res => console.log(res))

意图 tx - 签名交易

请求签署交易。 返回可以提交网络或用于多相协调的签名交易信封.

参数

  • xdr (弦声) - 说吧 (必须) 要签名的 XDR 编码交易信封 .
  • pubkey (弦声) - 说吧 (可选) 应用程序要求的具体公钥 .
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符.
  • callback (弦声) - 说吧 (可选) 可选的 URL 回调 Albedo 将 POST 签名交易 XDR 而不是提交 Horizon .
  • description (弦声) - 说吧 (可选) 开发者提供的可选的人类友好短交易描述.
  • submit (布尔) - 说吧 (可选) 如果设定, 所签名的交易将提交 Horizon 服务器, 而不是返回应用程序 .

回返

  • xdr (弦声) - XDR编码的交易信封.
  • tx_hash (弦声) - HEX编码交易散列.
  • signed_envelope_xdr (弦声) - XDR - 编码交易信封 有新的签名.
  • network (弦声) - 斯特拉尔网络识别器.
  • result (标 题) - 如果交易已自动提交,则来自Horizon的可选回复.

示例

albedo.tx({
    xdr: 'AAAAALPZeTF.......B0dpb99l'
})
    .then(res => console.log(res))

意图 pay - 支付

要求用户付款。 任何Stellar资产的工作,支持交易备忘录.

参数

  • amount (弦声) - 说吧 (必须) 要求的付款数额.
  • destination (弦声) - 说吧 (必须) 付款目的地地址.
  • asset_code (弦声) - 说吧 (可选) 资产代码(为 XLM 的 sip).
  • asset_issuer (弦声) - 说吧 (可选) 资产发行商( sip for XLM).
  • memo (弦声) - 说吧 (可选) 交易备忘录(交换和一些锚需).
  • memo_type (弦声) - 说吧 (可选) 交易备忘录类型 .
  • pubkey (弦声) - 说吧 (可选) 应用程序要求的具体公钥 .
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符或私人网络密码句.
  • callback (弦声) - 说吧 (可选) 可选的 URL 回调 Albedo 将 POST 签名交易 XDR 而不是提交 Horizon .
  • submit (布尔) - 说吧 (可选) 如果设定, 所签名的交易将提交 Horizon 服务器, 而不是返回应用程序 .

回返

  • amount (弦声) - 要求支付的金额.
  • destination (弦声) - 请求的付款目的地地址.
  • asset_code (弦声) - 请求提供资产代码.
  • asset_issuer (弦声) - 资产发行人.
  • memo (弦声) - 交易备忘录从请求.
  • memo_type (弦声) - 交易备忘录类型的请求.
  • tx_hash (弦声) - HEX编码交易散列.
  • signed_envelope_xdr (弦声) - XDR - 编码交易信封 有新的签名.
  • pubkey (弦声) - 用户选择的公用钥匙.
  • network (弦声) - 斯特拉尔网络识别器.
  • result (标 题) - 如果交易已自动提交,则来自Horizon的可选回复.

示例

albedo.pay({
    amount: '5',
    asset_code: 'EURT',
    asset_issuer: 'GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S'
})
    .then(res => console.log(res))

意图 trust - 建立信托关系

请求允许为给定的 Stellar 资产创建信任线 。 逐渐地简化了为锚地,ICO,和空投而创建信任线的过程.

参数

  • asset_code (弦声) - 说吧 (必须) 信托资产代码.
  • asset_issuer (弦声) - 说吧 (必须) 信托资产发行商地址.
  • limit (弦声) - 说吧 (可选) 信任限度.
  • memo (弦声) - 说吧 (可选) 交易备忘录(交换和一些锚需).
  • memo_type (弦声) - 说吧 (可选) 交易备忘录类型 .
  • pubkey (弦声) - 说吧 (可选) 应用程序要求的具体公钥 .
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符或私人网络密码句.
  • callback (弦声) - 说吧 (可选) 可选的 URL 回调 Albedo 将 POST 签名交易 XDR 而不是提交 Horizon .
  • submit (布尔) - 说吧 (可选) 如果设定, 所签名的交易将提交 Horizon 服务器, 而不是返回应用程序 .

回返

  • asset_code (弦声) - 来自请求的信托资产代码.
  • asset_issuer (弦声) - 请求寄出的信托资产发行人地址.
  • limit (弦声) - 对请求的信任限制.
  • tx_hash (弦声) - HEX编码交易散列.
  • signed_envelope_xdr (弦声) - XDR - 编码交易信封 有新的签名.
  • pubkey (弦声) - 用户选择的公用钥匙.
  • network (弦声) - 斯特拉尔网络识别器.
  • result (标 题) - 如果交易已自动提交,则来自Horizon的可选回复.

示例

albedo.trust({
    asset_code: 'EURT',
    asset_issuer: 'GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S'
})
    .then(res => console.log(res))

意图 exchange - 交换信使

请求允许以市场价格在Stellar DEX上购买代币.

参数

  • amount (弦声) - 说吧 (必须) 所要购买的资产数量.
  • max_price (弦声) - 说吧 (必须) 用户愿意支付的最高价格 .
  • sell_asset_code (弦声) - 说吧 (可选) 出售资产的资产代码.
  • sell_asset_issuer (弦声) - 说吧 (可选) 要出售资产的发行人账户.
  • buy_asset_code (弦声) - 说吧 (可选) 要购买的资产代码.
  • buy_asset_issuer (弦声) - 说吧 (可选) 要购买资产的发行人账户.
  • memo (弦声) - 说吧 (可选) 交易备忘录(交换和一些锚需).
  • memo_type (弦声) - 说吧 (可选) 交易备忘录类型 .
  • pubkey (弦声) - 说吧 (可选) 应用程序要求的具体公钥 .
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符或私人网络密码句.
  • callback (弦声) - 说吧 (可选) 可选的 URL 回调 Albedo 将 POST 签名交易 XDR 而不是提交 Horizon .
  • submit (布尔) - 说吧 (可选) 如果设定, 所签名的交易将提交 Horizon 服务器, 而不是返回应用程序 .

回返

  • amount (弦声) - 从请求购买的资产数额.
  • max_price (弦声) - 用户愿意按要求支付的最高价格.
  • sell_asset_code (弦声) - 应请求出售的资产代码.
  • sell_asset_issuer (弦声) - 应请求出售资产的发行人账户.
  • buy_asset_code (弦声) - 应请求购买的资产代码.
  • buy_asset_issuer (弦声) - 应请求购买资产的发行人账户.
  • tx_hash (弦声) - HEX编码交易散列.
  • signed_envelope_xdr (弦声) - XDR - 编码交易信封 有新的签名.
  • pubkey (弦声) - 用户选择的公用钥匙.
  • network (弦声) - 斯特拉尔网络识别器.
  • result (标 题) - 如果交易已自动提交,则来自Horizon的可选回复.

示例

albedo.exchange({
    amount: '5',
    max_price: '3.5',
    sell_asset_code: 'USD',
    sell_asset_issuer: 'GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX',
    buy_asset_code: 'EURT',
    buy_asset_issuer: 'GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S'
})
    .then(res => console.log(res))

意图 implicit_flow - 默示许可

请求临时访问令牌,用于一种或多种意向,这些意向可以在用户没有明确确认的情况下用于执行动作. 为了被隐含地执行,应当授予给定意图的隐含流权限并设定"pubkey"参数.

参数

  • intents (弦-正弦-正弦-正弦) - 说吧 (必须) 要求的隐性流动意图.
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符或私人网络密码句.

回返

  • granted (布尔) - 用户是否给予许可.
  • intents (弦声) - 要求的隐性流动意图.
  • grants (弦声) - 给予的隐性流动意图.
  • session (弦声) - 独特的隐含会话编号.
  • valid_until (数目) - 会话到期时间戳.
  • pubkey (弦声) - 用户选择的公用钥匙.
  • network (弦声) - 斯特拉尔网络识别器.

示例

albedo.implicitFlow({
    intents: 'tx,pay,trust,sign_message'
})
    .then(res => console.log(res))

意图 manage_account - 开户设置

打开给定账户的账户设置窗口.

参数

  • pubkey (弦声) - 说吧 (必须) 应用程序要求的具体公钥 .
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符或私人网络密码句.

回返

  • pubkey (弦声) - 来自意图请求的公用钥匙.

示例

albedo.manageAccount()
    .then(res => console.log(res))

意图 batch - 意图批次

请求执行若干tx意图 捆绑在一起。 这个意图是原子式的——一个用户一次确认或拒绝所有捆绑的请求,有相同的账户和相同的Stellar网络.

参数

  • intents (目标[]) - 说吧 (必须) 请求 tx 意图,应当一起执行 .
  • pubkey (弦声) - 说吧 (可选) 应用程序要求的具体公钥 .
  • network (弦声) - 说吧 (可选) 斯特拉尔网络标识符或私人网络密码句.

回返

  • intents (目标[]) - 请求的tx意图.
  • results (目标[]) - 每项请求意图的结果矩阵.
  • pubkey (弦声) - 用户选择的公用钥匙.
  • network (弦声) - 斯特拉尔网络识别器.

示例

albedo.batch({
    intents: 'tx,pay,trust,sign_message'
})
    .then(res => console.log(res))

隐形会话

收集帮助者来简化隐含模式下的各种操作.

isImplicitSessionAllowed(intent, pubkey)

检查是否在更早时为意向 + pubkey 配对批准了默认会话 .

参数

  • intent (弦声) - 说吧 (必须) 专意去查.
  • pubkey (弦声) - 说吧 (必须) 允许访问的账户的公用钥匙.

回返

  • true/false

示例

const isAllowed = albedo.isImplicitSessionAllowed(
    'tx', 
    'GBQW4KLMRXIMSDWBEWX4AWQKWYW7R3E7SFPSHTUDTFFT22NNUC6COL72'
)

listImplicitSessions()

假设当前所有活动的隐含会话 .

回返

  • 一系列活动会话描述符 .

示例

for (let session of albedo.listImplicitSessions()){
    console.log(session.pubkey, session.valid_until, session.grants)
}

forgetImplicitSession(pubkey)

撤销账户的会话权限 .

参数

  • pubkey (弦声) - 说吧 (必须) 允许访问的账户的公用钥匙.

示例

const pubkey = 'GBQW4KLMRXIMSDWBEWX4AWQKWYW7R3E7SFPSHTUDTFFT22NNUC6COL72'
albedo.forgetImplicitSession(pubkey)
console.log(albedo.listImplicitSessions().some(s => s.pubkey === pubkey))

发展

为了创建UMD库捆绑,运行以下国家预防机制脚本:

npm run build

它还将自动更新所有实例和参数定义 现有意图.

运行中的测试 :

npm run test

版本与发布记录

@albedo-link/intent 共发布 18 个版本,首次发布于 2020/07/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.13.0latest2025/06/131.4 年前
0.12.02022/04/284 年前
0.11.22021/06/155 年前
0.11.12021/05/035 年前
0.11.02021/03/195 年前
0.10.22021/01/295 年前

关于 @albedo-link/intent 的常见问题

@albedo-link/intent 是什么?

用于Albedo API的轻量级浏览器包装器,为所有支持的意向提供基于承诺的界面.

如何安装 @albedo-link/intent?

在项目目录运行 npm install @albedo-link/intent,或使用 pnpm add / yarn add / bun add。

@albedo-link/intent 支持 TypeScript 吗?

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

@albedo-link/intent 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@albedo-link/intent 可以商用吗?

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

@albedo-link/intent 的下载量有多少?

根据 npm 官方下载统计,@albedo-link/intent 在 2026/10/06 – 2026/11/04 这 30 天内被下载 123,622 次,日均约 4,121 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@albedo-link/intent 还在维护吗?

最新版本 0.13.0 发布于 2025/06/13(1.4 年前);至今共发布 18 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/07/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。