# @albedo-link/intent 中文文档

规范地址：https://npmcn.com/package/%40albedo-link/intent/

版本：0\.13\.0
npm 元数据更新时间：2025-06-13T13:31:04.302Z
中文译文更新时间：2026-11-05T17:55:47.578Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40albedo-link/intent
原文对照：https://npmcn.com/package/%40albedo-link/intent/?lang=original
项目主页：https://github.com/stellar-expert/albedo
源码仓库：https://github.com/stellar-expert/albedo

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：158 kB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2020-07-14T13:56:02.806Z
- 最新版本发布：2025-06-13T13:31:04.088Z
- 近 30 天下载量：123622（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @albedo-link/intent
```

也可以使用：`pnpm add @albedo-link/intent`、`yarn add @albedo-link/intent`、`bun add @albedo-link/intent`

## README

# Albedo 的意向界面模块

此库是一个轻量级浏览器包 [阿尔贝多](https://github.com/stellar-expert/albedo) API 密码 为所有支持的意向提供一个基于承诺的界面.

## 安装

```
npm i -S @albedo-link/intent
```

## 使用量

#### 设置

```js
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所有权.

**示例**

```js
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 签名电文.

**示例**

```js
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的可选回复.

**示例**

```js
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的可选回复.

**示例**

```js
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的可选回复.

**示例**

```js
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的可选回复.

**示例**

```js
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` _(弦声)_ - 斯特拉尔网络识别器.

**示例**

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

#### 意图 `manage_account` - 开户设置

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

**参数**

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

**回返**

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

**示例**

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

#### 意图 `batch` - 意图批次

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

**参数**

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

**回返**

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

**示例**

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

### 隐形会话

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

#### `isImplicitSessionAllowed(intent, pubkey)`

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

**参数**

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

**回返**

-   `true/false`

**示例**

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

#### `listImplicitSessions()`

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

**回返**

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

**示例**

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

#### `forgetImplicitSession(pubkey)`

撤销账户的会话权限 .

**参数**

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

**示例**

```js
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 是什么？

用于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 和提交记录判断。

