# @blooo/hw-app-acre 中文文档

规范地址：https://npmcn.com/package/%40blooo/hw-app-acre/

版本：1\.1\.1
npm 元数据更新时间：2024-10-25T15:12:37.203Z
中文译文更新时间：2026-11-08T07:57:47.439Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40blooo/hw-app-acre
原文对照：https://npmcn.com/package/%40blooo/hw-app-acre/?lang=original
项目主页：https://github.com/blooo-io/hw-app-acre
源码仓库：https://github.com/blooo-io/hw-app-acre

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

- 包体积（解压后）：723 kB，196 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：13 个
- 首次发布：2024-09-25T13:58:28.252Z
- 最新版本发布：2024-10-25T15:12:36.976Z
- 近 30 天下载量：3137（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

Ledger 硬件钱包 Acre 应用程序 API

## 安装

```sh
npm install @blooo/hw-app-acre
```

也可以使用：`pnpm add @blooo/hw-app-acre`、`yarn add @blooo/hw-app-acre`、`bun add @blooo/hw-app-acre`

## README

![](https://user-images.githubusercontent.com/4631227/191834116-59cf590e-25cc-4956-ae5c-812ea464f324.png)

[GitHub 图像](https://github.com/LedgerHQ/ledger-live/), (中文(简体) ), [编导 Devs Discord](https://developers.ledger.com/discord-pro), (中文(简体) ), [开发者门户](https://developers.ledger.com/)

## @blooo/hw-app-acre (英语)

Ledger 硬件钱包 Acre JavaScript 绑定. 也支持许多代币.

* * *

## 您是否将 Ledger 支持添加到您的软件钱包中 ?

您可能正在使用这个软件包与 Acre Nano App 通信 .

为了顺利和迅速地实现一体化:

-   见开发者关于 [开发者门户](https://developers.ledger.com/docs/transport/overview/) 财务报告和审定财务报表
-   继续 [解析器](https://developers.ledger.com/discord-pro/) 与开发者支持和开发者社区聊天.

* * *

## API 密码

#### 目录

-   [毕生灵](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-bippath)
-   [亩](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-acre)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters)
    -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples)
    -   [获取WalletXpub](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-getwalletxpub)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-1)
    -   [获取Wallet 公钥](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-getwalletpublickey)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-2)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-1)
    -   [符号](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signmessage)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-3)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-2)
    -   [创建支付交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createpaymenttransaction)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-4)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-3)
    -   [签名P2SH 交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signp2shtransaction)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-5)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-4)
    -   [交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-splittransaction)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-6)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-5)
    -   [序列化交易输出](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-serializetransactionoutputs)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-7)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-6)
    -   [获得信任输入](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-gettrustedinput)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-8)
    -   [获得信任的输入BIP143](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-gettrustedinputbip143)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-9)
    -   [签名退出](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signwithdrawal)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-10)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-7)
    -   [符号ERC4361](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signerc4361message)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-11)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-8)
-   [占地面积](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-acrebtcnew)
    -   [获取WalletXpub](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-getwalletxpub-1)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-12)
    -   [获取Wallet 公钥](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-getwalletpublickey-1)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-13)
    -   [创建支付交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createpaymenttransaction-1)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-14)
    -   [符号](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signmessage-1)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-15)
    -   [签名退出](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signwithdrawal-1)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-16)
    -   [符号ERC4361](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signerc4361message-1)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-17)
-   [脱钩](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-descrtemplfrom)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-18)
-   [面积](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-acrebtcold)
    -   [获取Wallet 公钥](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-getwalletpublickey-2)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-19)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-9)
    -   [创建支付交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createpaymenttransaction-2)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-20)
        -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-10)
-   [创建交易日志](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createtransactionarg)
    -   [属性](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-properties)
-   [地址格式](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-addressformat)
-   [Acre 撤回数据](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-acrewithdrawaldata)
    -   [属性](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-properties-1)
-   [账户类型](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-accounttype)
    -   [条件](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-spendingcondition)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-21)
    -   [输入](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-setinput)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-22)
    -   [设置输出](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-setownoutput)
        -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-23)
    -   [获取描述](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-getdescriptortemplate)
-   [单键账户](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-singlekeyaccount)
-   [获取 Taproot 输出键](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-gettaprootoutputkey)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-24)
-   [用户](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-appclient)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-25)
-   [客户端命令解释器](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-clientcommandinterpreter)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-26)
-   [默克尔化Psbt](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-merkelizedpsbt)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-27)
-   [默克勒语Name](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-merkle)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-28)
-   [默克勒地图](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-merklemap)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-29)
-   [钱包政策](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-walletpolicy)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-30)
-   [提取](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-extract)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-31)
-   [最后确定](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-finalize)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-32)
-   [已清除 投入](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-clearfinalizedinput)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-33)
-   [写入 Push](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-writepush)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-34)
-   [静态V2](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-psbtv2)
-   [序列化交易输出](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-serializetransactionoutputs-1)
    -   [参数](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-parameters-35)
    -   [实例](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-examples-11)
-   [签名P2SH 切换](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signp2shtransactionarg)
    -   [属性](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-properties-2)
-   [交易投入](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transactioninput)
-   [交易产出](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transactionoutput)
-   [交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction)

### 毕生灵

BIP32 比特币钱包的路径处理

此文件提供了处理 BIP32 路径的功能, 用于分级确定(HD)钱包. 它包括从不同格式转换BIP32路径的功能, 从扩展公钥(xpubs)中提取组件,并操纵路径元素.

### 亩

Acre应用API.

#### 参数

-   `transport` 用于通信的运输层.
-   `scrambleKey` 此参数被贬值而不再需要.
-   `currency` 要使用的货币,默认为"比特币".

#### 实例

```javascript
import Acre from "@blooo/hw-app-acre:";
const acre = new Acre({ transport, currency: "bitcoin" });
```

#### 获取WalletXpub

获得带有分类器的 XPUB

##### 参数

-   `arg` **{路径 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), xpubVersion : (中文(简体) ) [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢** 衍生参数\*路径:账户水平的BIP 32路径. (例如: 引出路径 `84'/0'/0'` 沿着 `purpose' / coin_type' / account'` 标准,目的=84,硬币 类型=0,账户=0)
    -   xpubVersion:所使用硬币的XPUBVersion. (指分类账/包装/催眠资产/弧/克) xPUBVersion 值(如果需要)

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:** 账户的 XPUB

#### 获取Wallet 公钥

##### 参数

-   `path` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** a BIP 32路径(即: `purpose’ / coin_type’ / account’ / change / address_index` 标准)
    
-   `opts` **{验证: [布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\*,格式: [地址格式](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-addressformat){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢?**
    
-   `options` 具有可选这些字段的对象:\* 验证( 布尔) 是否要求用户确认设备上的地址
    
    -   格式("legacy""legacy""p2sh"""bech32""bech32m""cashaddr"),用于使用不同的比特币地址来取材. 编号 通常使用:\* 有44'路径的遗留格式
        
    -   有49'路径的 p2sh 格式
        
    -   bech32 有 84' 路径的格式
        
    -   bech32m 有 86' 路径的格式
        
    -   比特币现金
        

##### 实例

```javascript
acre.getWalletPublicKey("44'/0'/0'/0/0").then(o => o.bitcoinAddress)
acre.getWalletPublicKey("49'/0'/0'/0/0", { format: "p2sh" }).then(o => o.bitcoinAddress)
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)公共钥匙: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)比特币地址: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),链码 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

#### 符号

您可以按照 Bitcoin 签名格式签名信件, 并检索 v, r, s 给定信件和账户的 BIP 32 签名路径 .

##### 参数

-   `path` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
-   `messageHex` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

##### 实例

```javascript
acre.signMessage("44'/60'/0'/0'/0", Buffer.from("test").toString("hex")).then(function(result) {
var v = result['v'] + 27 + 4;
var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
console.log("Signature : " + signature);
}).catch(function(ex) {console.log(ex);});
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)校对:soup [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)时,r: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)时,s: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

#### 创建支付交易

要签名涉及标准( P2PKH) 输入的交易, 请使用以下参数调用创建 Transferction

##### 参数

-   `arg` **[创建交易日志](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createtransactionarg)**
-   `inputs` 是一个\[交易,输出 index,可选赎回脚本,可选序列\]的数组,其中 \* 交易是这个 UTXO 先前计算的交易对象
    -   输出 index 是用于输入此 UTXO 的交易中的输出( 从 0 计算)
    -   赎回脚本是可选的赎回脚本,用于消耗隔离的目击输入
    -   序列是用于此输入的序列号( 当使用 RBF 时), 或非存在
-   `associatedKeysets` 是指向每个UTXO所使用的私有密钥路径的 BIP 32 路径数组
-   `changePath` 是一个可选的 BIP 32 路径, 指向用于计算更改地址的公钥路径
-   `outputScriptHex` 是交易中要签名的十六进制序列化输出,包括引导 vararg voutCount
-   `lockTime` 是要签名的交易的可选锁定时间, 或默认( 0)
-   `sigHashType` 是要签名的交易的散列类型,或默认(全部)
-   `segwit` 是一个可选的布尔表示wether是否使用 segwit。 这包括被包裹的Segwit.
-   `additionals` 用于本地 segwit 输出的附加选项列表 \* “ bech32 ”
    -   “bech32m”用于支出 segwit v1+ 产出
    -   "abc" 对于 bch
    -   btg的"黄金"
    -   被"废"了
    -   zcash 的“ zcash ”
    -   使用 BIPxxx 的“ bipxxx ”
    -   用于表示zec交易的"树苗"支持树苗(将设定在419200区块上)
-   `expiryHeight` 是 Zec 超冬/ 幼苗 Txs 的可选缓冲
-   `useTrustedInputForSegwit` 用于sigwit交易的信任输入。 如果应用版QQ 1. 4.0,这应该是真的.

##### 实例

```javascript
acre.createTransaction({
inputs: [ [tx1, 1] ],
associatedKeysets: ["0'/0/0"],
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
}).then(res => ...);
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:** 已签名的交易准备播放

#### 签名P2SH 交易

要获得多签名( P2SH) 输入的签名, 请使用 flowlowing 参数呼号 P2SH Transaction async

##### 参数

-   `arg` **[签名P2SH 切换](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-signp2shtransactionarg)**
-   `inputs` 是\[交易,输出 index,赎回脚本,可选序列\]的数组,其中\*交易是此UTXO之前计算的交易对象
    -   输出 index 是用于输入此 UTXO 的交易中的输出( 从 0 计算)
    -   赎回脚本是与当前 P2SH 输入相关的强制赎回脚本
    -   序列是用于此输入的序列号( 当使用 RBF 时), 或非存在
-   `associatedKeysets` 是指向每个UTXO所使用的私有密钥路径的 BIP 32 路径数组
-   `outputScriptHex` 是交易中要签名的十六进制序列化输出
-   `lockTime` 是要签名的交易的可选锁定时间, 或默认( 0)
-   `sigHashType` 是要签名的交易的散列类型,或默认(全部)

##### 实例

```javascript
acre.signP2SHTransaction({
inputs: [ [tx, 1, "52210289b4a3ad52a919abd2bdd6920d8a6879b1e788c38aa76f0440a6f32a9f1996d02103a3393b1439d1693b063482c04bd40142db97bdf139eedd1b51ffb7070a37eac321030b9a409a1e476b0d5d17b804fcdb81cf30f9b99c6f3ae1178206e08bc500639853ae"] ],
associatedKeysets: ["0'/0/0"],
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
}).then(result => ...);
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\>>** 已签名的交易准备播放

#### 交易

对于您交易中包含的每个UTXO,请从此UTXO中使用的交易原始序列版本创建交易对象.

##### 参数

-   `transactionHex` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 原始十六进制序列化交易
-   `isSegwitSupported` **(单位:千美元)[布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)(中文(简体) )** 是布尔表示是否支持 segwit(可选,默认) `false`(中文(简体) )
-   `hasExtraData` 是布尔语( komodo、 zencash 和 zcash 在其交易中包含额外数据, 其他人不包含) (可选, 默认) `false`(中文(简体) )
-   `additionals` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:** 添加选项列表( 可选, 默认) `[]`(中文(简体) )

##### 实例

```javascript
const tx1 = acre.splitTransaction("01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000");
```

回返 **[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction)** 交易对象从原始十六进制交易中除去

#### 序列化交易输出

将交易输出顺序为十六进制

##### 参数

-   `t` **[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction)**

##### 实例

```javascript
const tx1 = acre.splitTransaction("01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000");
const outputScript = acre.serializeTransactionOutputs(tx1).toString('hex');
```

回返 **[缓冲](https://nodejs.org/api/buffer.html)**

#### 获得信任输入

信任的输入是需要签名的 UTXO 的散列 对于遗产交易,应用程序有一些APDU流 来检查UTXO的金额, 通过解析创建此 UTXO 的交易

##### 参数

-   `indexLookup` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
-   `transaction` **[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction)**
-   `additionals` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:** (可选,默认) `[]`(中文(简体) )

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:**

#### 获得信任的输入BIP143

信任输入是需要签名的UTXO的散列. BIP143用于Segwit输入.

##### 参数

-   `indexLookup` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
-   `transaction` **[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction)**
-   `additionals` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:** (可选,默认) `[]`(中文(简体) )

回返 **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

#### 签名退出

用私人密钥签名 Acre 退出信件 根据比特币签名格式提供的导出路径 并返回 v, r, s.

##### 参数

-   `$0` **{路径 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),退出数据 : [Acre 撤回数据](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-acrewithdrawaldata){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢**
    
    -   `$0.path`
    -   `$0.withdrawalData`

##### 实例

```javascript
      var withdrawalData = {
        to: "0xc14972DC5a4443E4f5e89E3655BE48Ee95A795aB",
        value: "0x0",
        data: "0xcae9ca510000000000000000000000000e781e9d538895ee99bd6e9bf28664942beff32f00000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001000000000000000000000000006083Bde64CCBF08470a1a0dAa9a0281B4951be7C4b5e4623765ec95cfa6e261406d5c446012eff9300000000000000000000000008dcc842b8ed75efe1f222ebdc22d1b06ef35efff6469f708057266816f0595200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000587f579c500000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001a1976a914c8e9edf5e915c0482b1b236fc917011a4b943e6e88ac000000000000",
        operation: "0",
        safeTxGas: "0x0",
        baseGas: "0x0",
        gasPrice: "0x0",
        gasToken: "0x0000000000000000000000000000000000000000",
        refundReceiver: "0x0000000000000000000000000000000000000000",
        nonce: "0xC",
      };
      acre.signWithdrawal({"m/44'/0'/0'/0/0", withdrawalData}).then(function(result) {
        var v = result['v'] + 27 + 4;
        var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
        console.log("Signature : " + signature);
        }).catch(function(ex) {console.log(ex);});
```

#### 符号ERC4361

用私钥在 Ethereum 签名( ERC-4361) 中签名 根据比特币签名格式提供的导出路径 并返回 v, r, s.

##### 参数

-   `path` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
-   `messageHex` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

##### 实例

```javascript
acre.signERC4361Message("44'/60'/0'/0'/0", Buffer.from("Example ERC-4361 message").toString("hex")).then(function(result) {
  const v = result['v'] + 27 + 4;
  const signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
  console.log("Signature : " + signature);
}).catch(function(ex) {console.log(ex);});
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)校对:soup [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)时,r: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)时,s: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

**说明:** 消息限制在最多128个字符行.

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)校对:soup [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)时,r: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)时,s: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

### 占地面积

此类执行与 AcreBtcOld 相同的接口( 原为 名称为 Btc ),但与 Acre 从1.0.0 版本的硬件应用交互 它使用与比特币应用软件版本2.1.0+相同的APDU协议. 本协议在下列地点记录在案: [https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md 互联网档案馆的存檔,存档日期2014-12-22](https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md)

由于接口必须与 AcreBtcOld 兼容,所以方法 这班人很笨手笨脚的 因为需要适应传统 将数据输入PSBT进程.

#### 获取WalletXpub

这是一种允许用户在标准路径上获得xpub的新方法. 标准路径描述于 [https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md#描述](https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md#description)

这归结为路径(比特币为N=0,测试网为N=1) : M/44'/N'/x'/\*\* M/48'/N'/x'/y'/\*\* M/49'/N'/x'/\*\* M/84'/N'/x'/\*\* M/86'/N'/x'/\*\*

该方法之所以被添加,是因为硬件app v2+中增加了安全性. 这个 新硬件应用将允许导出任何 xpub 至并包含 标准衍生路径最深的硬化键,而旧的应用程序 将允许导出任何密钥.

这给这个班级的来电者造成了一个问题,他们只是 让Wallet PublicKey () 调用, 这意味着他们必须调用 xpub 他们自己:

假设此类的用户想要在标准上创建一个账户 xpub 路径, M/44'/0'/Z'。 用户必须获得父密钥指纹(见BIP32) 要求母键 M/44'/0'。 新的应用不允许,因为 它只允许输出最深的硬化路径。 所以选择是 允许从应用程序中请求 M/44'/0',或添加新函数 "GetWalletXpub"("Get WalletXpub").

我们选择添加一个新的功能,这可以大大简化客户端代码.

##### 参数

-   `$0` **{路径 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), xpubVersion : (中文(简体) ) [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢**
    
    -   `$0.path`
    -   `$0.xpubVersion`

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:**

#### 获取Wallet 公钥

这种方法返回公钥、比特币地址和链码 为特定的导出路径.

限制 : 如果路径不是标准路径的叶节点,则地址 将是空字符串“ ”, 详情请参见 this. getWalletAddress () .

##### 参数

-   `path` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
-   `opts` **{验证: [布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\*,格式: [地址格式](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-addressformat){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢?**

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)公共钥匙: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)比特币地址: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),链码 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

#### 创建支付交易

构建并签署交易。 参见 Acre.cre.createPayment Transaction for 详细介绍如何使用这种方法.

此方法会将遗留参数转换为 最后签字并敲定的 psbt 和提取的完全签字 交易返回.

##### 参数

-   `arg` **[创建交易日志](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createtransactionarg)**

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:**

#### 符号

用私有密钥签名任意的十六进制格式信件 根据比特币签名格式提供的导出路径 并返回 v, r, s.

##### 参数

-   `$0` **{路径 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),退出数据 : [Acre 撤回数据](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢**
    
    -   `$0.path`
    -   `$0.withdrawalData`

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)校对:soup [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)时,r: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)时,s: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

#### 签名退出

用私人密钥签名 Acre 退出信件 根据比特币签名格式提供的导出路径 并返回 v, r, s.

##### 参数

-   `$0` **{路径 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),退出数据 : [Acre 撤回数据](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-acrewithdrawaldata){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢**
    
    -   `$0.path`
    -   `$0.withdrawalData`

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)校对:soup [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)时,r: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)时,s: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

#### 符号ERC4361

签名 ERC-4361 (与 Ethereum 一同签名) 格式化消息, 并使用私有密钥 根据比特币签名格式提供的导出路径 并返回 v, r, s.

##### 参数

-   `$0` **{路径 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),信息Hex: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢**
    
    -   `$0.path` BIP32 用于签名的密钥的导出路径
    -   `$0.messageHex` ERC-4361 格式化信件,以十六进制格式签名

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)校对:soup [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)时,r: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)时,s: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

### 脱钩

此函数返回基于地址格式的描述模板 . 见 [https://github.com/blooo-io/app-acre/blob/develop/doc/wallet.md 互联网档案馆的存檔,存档日期2013-12-22](https://github.com/blooo-io/app-acre/blob/develop/doc/wallet.md) 详细情况 比特币描述模板.

#### 参数

-   `path` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** a BIP 32路径
    
-   `opts` **{验证: [布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\*,格式: [地址格式](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-addressformat){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢?**
    
-   `options` 带有可选这些字段的对象 : \* 校验( boolean) 将要求用户确认设备上的地址
    
    -   格式("legacy""legacy""p2sh"""bech32""bech32m""cashaddr"),用于使用不同的比特币地址来取材. 编号 通常使用:\* 有44'路径的遗留格式
        
    -   有49'路径的 p2sh 格式
        
    -   bech32 有 84' 路径的格式
        
    -   bech32m 有 86' 路径的格式
        
    -   比特币现金
        

##### 实例

```javascript
acre.getWalletPublicKey("44'/0'/0'/0/0").then(o => o.bitcoinAddress)
acre.getWalletPublicKey("49'/0'/0'/0/0", { format: "p2sh" }).then(o => o.bitcoinAddress)
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)公共钥匙: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)比特币地址: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),链码 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>**

#### 创建支付交易

要签名涉及标准( P2PKH) 输入的交易, 请使用以下参数调用创建 Transferction

##### 参数

-   `arg` **[创建交易日志](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-createtransactionarg)**
-   `inputs` 是一个\[交易,输出 index,可选赎回脚本,可选序列\]的数组,其中 \* 交易是这个 UTXO 先前计算的交易对象
    -   输出 index 是用于输入此 UTXO 的交易中的输出( 从 0 计算)
    -   赎回脚本是可选的赎回脚本,用于消耗隔离的目击输入
    -   序列是用于此输入的序列号( 当使用 RBF 时), 或非存在
-   `associatedKeysets` 是指向每个UTXO所使用的私有密钥路径的 BIP 32 路径数组
-   `changePath` 是一个可选的 BIP 32 路径, 指向用于计算更改地址的公钥路径
-   `outputScriptHex` 是交易中要签名的十六进制序列化输出
-   `lockTime` 是要签名的交易的可选锁定时间, 或默认( 0)
-   `sigHashType` 是要签名的交易的散列类型,或默认(全部)
-   `segwit` 是可选布尔表示是否使用 segwit
-   `additionals` 用于本地 segwit 输出的附加选项列表 \* “ bech32 ”
    -   "abc" 对于 bch
    -   btg的"黄金"
    -   被"废"了
    -   zcash 的“ zcash ”
    -   使用 BIPxxx 的“ bipxxx ”
    -   用于表示zec交易的"树苗"支持树苗(将设定在419200区块上)
-   `expiryHeight` 是 Zec 超冬/ 幼苗 Txs 的可选缓冲
-   `useTrustedInputForSegwit` 用于 sigwit 交易的信任输入

##### 实例

```javascript
acre.createTransaction({
inputs: [ [tx1, 1] ],
associatedKeysets: ["0'/0/0"],
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
}).then(res => ...);
```

回返 **[答应](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:** 已签名的交易准备播放

### 创建交易日志

类型 : {输入: [阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)< \[[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction), (中文(简体) ), [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), (中文(简体) )[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)页:1[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\>, 相关关键元件: [阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\>, 更改页 : [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\*,输出脚本Hex: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),锁定时间 : [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? ,西格哈什Type: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)♪ 笨蛋: [布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\*,补充: [阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\>, 过期高度 : [缓冲](https://nodejs.org/api/buffer.html)\*,使用信任的输入ForSegwit: [布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean),在DeviceStreaming上显示:函数(arg0:{进步: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number),共计: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number),索引: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)} : 无效? , 在 DeviceSignature requestd: 函数 (: 无效? ) , 在 DeviceSignatureGranted: 函数 (: 无效? )

#### 属性

-   `inputs` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)< \[[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction), (中文(简体) ), [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), (中文(简体) )[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)页:1[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)〔)\]〕**
-   `associatedKeysets` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:**
-   `changePath` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)? 吗?**
-   `outputScriptHex` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
-   `lockTime` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? 吗?**
-   `sigHashType` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? 吗?**
-   `segwit` **[布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)? 吗?**
-   `additionals` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:**
-   `expiryHeight` **[缓冲](https://nodejs.org/api/buffer.html)? 吗?**
-   `useTrustedInputForSegwit` **[布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)? 吗?**
-   `onDeviceStreaming` **函数( arg0: { 进度: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number),共计: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number),索引: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)虚空?**
-   `onDeviceSignatureRequested` **函数 (): 无效?**
-   `onDeviceSignatureGranted` **函数 (): 无效?**

### Acre 撤回数据

Acre VistrawalData 类型包含以下与退出交易相关的属性,其中每个属性为十六进制字符串.

#### 属性

-   `to` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `value` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `data` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `operation` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `safeTxGas` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `baseGas` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `gasPrice` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `gasToken` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `refundReceiver` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)
-   `nonce` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (十六进制)

### 地址格式

地址格式是遗留下来的 | p2sh | bech32 | bech32m | cashaddr

类型 : (`"legacy"` | `"p2sh"` | `"bech32"` | `"bech32m"` | `"cashaddr"`(中文(简体) )

### 账户类型

包含账户类型之间的差异, 例如 p2wpkh, p2wpkh Wrapped, p2tr. (原始内容存档于2017-09-29).

#### 条件

从公钥列表中生成脚本PubKey(输出脚本). 如果有的话 p2sh 赎回脚本或 p2wsh 见证 脚本需要它也会被设定在 返回的支出条件.

公用钥匙是33字节 ecdsa 压缩公用钥匙.

##### 参数

-   `pubkeys` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[缓冲](https://nodejs.org/api/buffer.html)\> 翻译:**

回返 **支出状况**

#### 输入

将 psbt 与账户类型特定数据填入输入.

##### 参数

-   `i` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** 填充输入地图的索引
-   `inputTx` **(单位:千美元)[缓冲](https://nodejs.org/api/buffer.html) | [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)(中文(简体) )** 包含已用产出的全部交易 。 这可能 被省略为自来水.
-   `spentOutput` **废产出** 已用产出的金额和支出状况
-   `pubkeys` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[缓冲](https://nodejs.org/api/buffer.html)\> 翻译:** 参与输入的33字节 ecdsa 压缩公钥
-   `pathElems` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)\>>** 与阴道对应的路径,顺序相同.

回返 **无效**

#### 设置输出

将 psbt 与一个输出的账户类型特定数据相匹配。 这是典型的 变动产出和其他产出 被花费了.

##### 参数

-   `i` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** 要填充的输出地图索引
-   `cond` **支出状况** 该产出的支出条件
-   `pubkeys` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[缓冲](https://nodejs.org/api/buffer.html)\> 翻译:** 此输出涉及的33 字节 ecdsa 压缩公钥
-   `paths` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)\>>** 与阴道对应的路径,顺序相同.

回返 **无效**

#### 获取描述

返回该账户类型的描述模板。 目前仅 默认描述板是允许的, 但可以在 未来。 关于描述符的更多信息, 请参看类钱包政策 模板.

回返 **默认描述图**

### 单键账户

**扩展基账**

单个签名账户的超級. 这会确保公交车 方法参数中的数组和路径数组包含完全一个元素 并称为一种抽象的方法来进行实际的工作.

### 获取 Taproot 输出键

从内部密钥计算出自根输出密钥 。 此输出密钥将 在自来水输出中用作目击程序。 内部密钥有微调 根据BIP341中的建议: [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite ref-22-0. 互联网档案馆的存檔,存档日期2011-12-2](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite_ref-22-0)

#### 参数

-   `internalPubkey` **[缓冲](https://nodejs.org/api/buffer.html)** 32 字节 x 唯一的自带根内部密钥

回返 **[缓冲](https://nodejs.org/api/buffer.html)** 输出密钥

### 用户

此类封装了所记录的APDU协议 [https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md 互联网档案馆的存檔,存档日期2014-12-22](https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md)

#### 参数

-   `transport` **运输**

### 客户端命令解释器

此类将发送来自硬件设备的客户端命令 适当的客户端命令执行。 这些客户端的命令 通常请求从 merkle 树或 merkelized 地图中获取数据 .

客户端Command 解释器通过添加 merkle 树和 它应该能够为硬件设备服务。 这个班 完全不懂它掌握的数据的语义 为默克勒数据服务。 它甚至不知道这是什么背景 执行, ie SignPsbt, 获取WalletAddress等.

如果命令向客户端显示结果, 如 signPsbt 所做的, 生成 数据在命令完成后可以通过调用 get Yielded () 访问, 他们将依自己进球的顺序返回.

#### 参数

-   `progressCallback` **函数 (): 无效**

### 默克尔化Psbt

**扩展 PsbtV2**

此类通过对不同的多维度的多维度来计算 PSBTv2 psbt 地图。 用于交易签名过程中, 硬件应用程序可以从中请求 psbt 的特定部分 客户端代码,并确保响应数据实际上属于psbt. 原因是应用程序可用的内存有限, 所以它不能总是存储完整的 psbt 在记忆.

签署过程记录于 [https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md#sign psbt (英语)](https://github.com/blooo-io/app-acre/blob/develop/doc/acre.md#sign_psbt)

#### 参数

-   `psbt` **[静态V2](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-psbtv2)**

### 默克勒语Name

这个班级执行Ledger Acre应用软件使用的Merkle树, 记录在 [https://github.com/blooo-io/app-acre/blob/develop/doc/merkle.md 互联网档案馆的存檔,存档日期2013-12-22](https://github.com/blooo-io/app-acre/blob/develop/doc/merkle.md)

#### 参数

-   `leaves` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[缓冲](https://nodejs.org/api/buffer.html)\> 翻译:**
-   `hasher` **函数 (buf: [缓冲](https://nodejs.org/api/buffer.html): [缓冲](https://nodejs.org/api/buffer.html)** (可选,默认) `crypto.sha256`(中文(简体) )

### 默克勒地图

执行“默克尔化地图”,记录在 [https://github.com/blooo-io/app-acre/blob/develop/doc/merkle.md#merkleized-maps (中文(简体) )](https://github.com/blooo-io/app-acre/blob/develop/doc/merkle.md#merkleized-maps)

由两棵树组成,其中一棵是用于 一个地图和一个用于同一地图的值,因此两个墨克尔 树有相同的形状。 承诺是数字要素 键的正弦根后接 值为 merkle 根.

#### 参数

-   `keys` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[缓冲](https://nodejs.org/api/buffer.html)\> 翻译:** 排序的密钥列表
-   `values` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[缓冲](https://nodejs.org/api/buffer.html)\> 翻译:** 值,按键的相应顺序,并等长

### 钱包政策

Bitcon 硬件应用程序使用类似描述符的东西来描述 如何从密钥构造输出脚本。 “Wallet政策”包括: 和"密钥"列表。 关键是 序列化的 BIP32 扩展公用密钥,并添加一些衍生路径 资料。 记录如下: [https://github.com/blooo-io/app-acre/blob/develop/doc/wallet.md 互联网档案馆的存檔,存档日期2013-12-22](https://github.com/blooo-io/app-acre/blob/develop/doc/wallet.md)

#### 参数

-   `descriptorTemplate` **默认描述图**
-   `key` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

### 提取

此执行 BIP370 (PSBTv2) 的“ 交易提取器” 角色 [https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki#交易-摘录器](https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki#transaction-extractor)) (中文(简体) ). 不过 bIP174部分记录了该角色(PSBTv0) [https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#交易-摘录器](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#transaction-extractor)) (中文(简体) ).

#### 参数

-   `psbt` **[静态V2](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-psbtv2)**

回返 **[缓冲](https://nodejs.org/api/buffer.html)**

### 最后确定

这大致实现了BIP370(PSBTv2)的"输入定稿器"角色 [https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki (英语)](https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki)) (中文(简体) ). 不过 bIP174(PSBTv0)中记录了该角色 [https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki 互联网档案馆的存檔,存档日期2014-10-04](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki)) (中文(简体) ).

验证所有输入都有一个签名, 并设置输入 FinalScript Witness 和/或输入 FinalScriptSig 取决于已用产出的类型。 干净 字段,部分签名,还原脚本 进取道.

#### 参数

-   `psbt` **[静态V2](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-psbtv2)** 带有所有签名的 psbt 添加为部分 sigs 通过 PSBT IN PARTIAL SIG 或 PSBT IN TAP KEY SIG

回返 **无效**

### 已清除 投入

删除 psbt 中不再有阴性字段.

注意,Spec没有说任何关于去除接地的字段 比如PSBT OUT BIP32 DERIVATION PATH等,所以我们保留它们 却不知道为什么 我想我们也应该去除它们.

#### 参数

-   `psbt` **[静态V2](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-psbtv2)**
-   `inputIndex` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

### 写入 Push

写入脚本将操作推到 buf, 它看起来不同 根据数据大小。 见 [https://en.bitcoin.it/wiki/Script#Constants (中文(简体) )](https://en.bitcoin.it/wiki/Script#Constants)

#### 参数

-   `buf` **缓冲器** 要写入的缓冲器
-   `data` **[缓冲](https://nodejs.org/api/buffer.html)** 缓冲器被推.

### 静态V2

部分执行已签名的 Bitcoin 交易版本 2, BIP370, 如 记录 [https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki (英语)](https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki) 财务报告和审定财务报表 [https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki 互联网档案馆的存檔,存档日期2014-10-04](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki)

Psbt是一个数据结构,可以携带与 a 相关的所有相关信息 在签名过程的所有阶段进行交易。 从建造 未签名交易取出最后的序列交易准备 广播.

这种实施仅限于分类账中需要的 任务,这意味着对多相或自带脚本等特性的支持 未执行路径支出。 具体来说,它支持p2pkh, p2wpkhWrapped InP2sh, p2wpkh 和 p2tr 密钥路径开支.

这个课是故意哑的,所以很容易增加支持 未来需要的压缩字段.

### 序列化交易输出

#### 参数

-   `$0` **[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction)**
    
    -   `$0.outputs`

#### 实例

```javascript
const tx1 = acre.splitTransaction("01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000");
const outputScript = acre.serializeTransactionOutputs(tx1).toString('hex');
```

回返 **[缓冲](https://nodejs.org/api/buffer.html)**

### 签名P2SH 切换

类型 : {输入: [阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)< \[[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction), (中文(简体) ), [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), (中文(简体) )[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)页:1[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\>, 相关关键元件: [阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\>, 输出脚本Hex: [字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String),锁定时间 : [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? ,西格哈什Type: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)♪ 笨蛋: [布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\*,交易维斯顿: [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number){\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢

#### 属性

-   `inputs` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)< \[[交易](https://npmcn.com/package/%40blooo/hw-app-acre/#readme-transaction), (中文(简体) ), [编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), (中文(简体) )[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)页:1[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) 无效 [未定义](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)〔)\]〕**
-   `associatedKeysets` **[阵列](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\> 翻译:**
-   `outputScriptHex` **[字符串](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
-   `lockTime` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? 吗?**
-   `sigHashType` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? 吗?**
-   `segwit` **[布尔](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)? 吗?**
-   `transactionVersion` **[编号](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)? 吗?**

### 交易投入

### 交易产出

### 交易

## 常见问题

### @blooo/hw-app-acre 是什么？

Ledger 硬件钱包 Acre 应用程序 API

### 如何安装 @blooo/hw-app-acre？

在项目目录运行 npm install @blooo/hw-app-acre，或使用 pnpm add / yarn add / bun add。

### @blooo/hw-app-acre 支持 TypeScript 吗？

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

### @blooo/hw-app-acre 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @blooo/hw-app-acre 可以商用吗？

@blooo/hw-app-acre 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @blooo/hw-app-acre 的下载量有多少？

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

### @blooo/hw-app-acre 还在维护吗？

最新版本 1\.1\.1 发布于 2024/10/25（2 年前）；至今共发布 3 个版本，其中过去 12 个月发布了 0 个；首次发布于 2024/09/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

