@bitboxswiss/bitbox-api 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +4 -2
- package/README.md +69 -9
- package/dist/index.d.ts +337 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +451 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/cardano/methods.d.ts +7 -0
- package/dist/internal/cardano/methods.d.ts.map +1 -0
- package/dist/internal/cardano/methods.js +199 -0
- package/dist/internal/cardano/methods.js.map +1 -0
- package/dist/internal/cardano/query.d.ts +4 -0
- package/dist/internal/cardano/query.d.ts.map +1 -0
- package/dist/internal/cardano/query.js +20 -0
- package/dist/internal/cardano/query.js.map +1 -0
- package/dist/internal/connect-simulator.d.ts +2 -0
- package/dist/internal/connect-simulator.d.ts.map +1 -0
- package/dist/internal/connect-simulator.js +25 -0
- package/dist/internal/connect-simulator.js.map +1 -0
- package/dist/internal/connect.d.ts +2 -0
- package/dist/internal/connect.d.ts.map +1 -0
- package/dist/internal/connect.js +54 -0
- package/dist/internal/connect.js.map +1 -0
- package/dist/internal/constants.d.ts +2 -0
- package/dist/internal/constants.d.ts.map +1 -0
- package/dist/internal/constants.js +16 -0
- package/dist/internal/constants.js.map +1 -0
- package/dist/internal/device.d.ts +5 -0
- package/dist/internal/device.d.ts.map +1 -0
- package/dist/internal/device.js +40 -0
- package/dist/internal/device.js.map +1 -0
- package/dist/internal/errors.d.ts +2 -0
- package/dist/internal/errors.d.ts.map +1 -0
- package/dist/internal/errors.js +220 -0
- package/dist/internal/errors.js.map +1 -0
- package/dist/internal/eth/antiklepto.d.ts +5 -0
- package/dist/internal/eth/antiklepto.d.ts.map +1 -0
- package/dist/internal/eth/antiklepto.js +59 -0
- package/dist/internal/eth/antiklepto.js.map +1 -0
- package/dist/internal/eth/eip712.d.ts +25 -0
- package/dist/internal/eth/eip712.d.ts.map +1 -0
- package/dist/internal/eth/eip712.js +303 -0
- package/dist/internal/eth/eip712.js.map +1 -0
- package/dist/internal/eth/methods.d.ts +10 -0
- package/dist/internal/eth/methods.d.ts.map +1 -0
- package/dist/internal/eth/methods.js +245 -0
- package/dist/internal/eth/methods.js.map +1 -0
- package/dist/internal/eth/query.d.ts +4 -0
- package/dist/internal/eth/query.d.ts.map +1 -0
- package/dist/internal/eth/query.js +20 -0
- package/dist/internal/eth/query.js.map +1 -0
- package/dist/internal/eth/streaming.d.ts +4 -0
- package/dist/internal/eth/streaming.d.ts.map +1 -0
- package/dist/internal/eth/streaming.js +22 -0
- package/dist/internal/eth/streaming.js.map +1 -0
- package/dist/internal/eth/version.d.ts +2 -0
- package/dist/internal/eth/version.d.ts.map +1 -0
- package/dist/internal/eth/version.js +3 -0
- package/dist/internal/eth/version.js.map +1 -0
- package/dist/internal/hww.d.ts +2 -0
- package/dist/internal/hww.d.ts.map +1 -0
- package/dist/internal/hww.js +240 -0
- package/dist/internal/hww.js.map +1 -0
- package/dist/internal/keypath.d.ts +4 -0
- package/dist/internal/keypath.d.ts.map +1 -0
- package/dist/internal/keypath.js +47 -0
- package/dist/internal/keypath.js.map +1 -0
- package/dist/internal/message-queue.d.ts +2 -0
- package/dist/internal/message-queue.d.ts.map +1 -0
- package/dist/internal/message-queue.js +29 -0
- package/dist/internal/message-queue.js.map +1 -0
- package/dist/internal/noise-config.d.ts +2 -0
- package/dist/internal/noise-config.d.ts.map +1 -0
- package/dist/internal/noise-config.js +160 -0
- package/dist/internal/noise-config.js.map +1 -0
- package/dist/internal/noise.d.ts +2 -0
- package/dist/internal/noise.d.ts.map +1 -0
- package/dist/internal/noise.js +270 -0
- package/dist/internal/noise.js.map +1 -0
- package/dist/internal/pairing.d.ts +2 -0
- package/dist/internal/pairing.d.ts.map +1 -0
- package/dist/internal/pairing.js +130 -0
- package/dist/internal/pairing.js.map +1 -0
- package/dist/internal/proto-query.d.ts +5 -0
- package/dist/internal/proto-query.d.ts.map +1 -0
- package/dist/internal/proto-query.js +28 -0
- package/dist/internal/proto-query.js.map +1 -0
- package/dist/internal/read-write.d.ts +2 -0
- package/dist/internal/read-write.d.ts.map +1 -0
- package/dist/internal/read-write.js +40 -0
- package/dist/internal/read-write.js.map +1 -0
- package/dist/internal/restore.d.ts +3 -0
- package/dist/internal/restore.d.ts.map +1 -0
- package/dist/internal/restore.js +27 -0
- package/dist/internal/restore.js.map +1 -0
- package/dist/internal/transport-bridge.d.ts +2 -0
- package/dist/internal/transport-bridge.d.ts.map +1 -0
- package/dist/internal/transport-bridge.js +97 -0
- package/dist/internal/transport-bridge.js.map +1 -0
- package/dist/internal/transport-simulator.d.ts +2 -0
- package/dist/internal/transport-simulator.d.ts.map +1 -0
- package/dist/internal/transport-simulator.js +83 -0
- package/dist/internal/transport-simulator.js.map +1 -0
- package/dist/internal/transport-webhid.d.ts +2 -0
- package/dist/internal/transport-webhid.d.ts.map +1 -0
- package/dist/internal/transport-webhid.js +69 -0
- package/dist/internal/transport-webhid.js.map +1 -0
- package/dist/internal/u2f-framing.d.ts +2 -0
- package/dist/internal/u2f-framing.d.ts.map +1 -0
- package/dist/internal/u2f-framing.js +155 -0
- package/dist/internal/u2f-framing.js.map +1 -0
- package/dist/internal/utils.d.ts +2 -0
- package/dist/internal/utils.d.ts.map +1 -0
- package/dist/internal/utils.js +90 -0
- package/dist/internal/utils.js.map +1 -0
- package/dist/internal/version.d.ts +8 -0
- package/dist/internal/version.d.ts.map +1 -0
- package/dist/internal/version.js +9 -0
- package/dist/internal/version.js.map +1 -0
- package/dist/proto/gen/antiklepto_pb.d.ts +49 -0
- package/dist/proto/gen/antiklepto_pb.d.ts.map +1 -0
- package/dist/proto/gen/antiklepto_pb.js +22 -0
- package/dist/proto/gen/antiklepto_pb.js.map +1 -0
- package/dist/proto/gen/backup_commands_pb.d.ts +124 -0
- package/dist/proto/gen/backup_commands_pb.d.ts.map +1 -0
- package/dist/proto/gen/backup_commands_pb.js +42 -0
- package/dist/proto/gen/backup_commands_pb.js.map +1 -0
- package/dist/proto/gen/backup_pb.d.ts +150 -0
- package/dist/proto/gen/backup_pb.d.ts.map +1 -0
- package/dist/proto/gen/backup_pb.js +46 -0
- package/dist/proto/gen/backup_pb.js.map +1 -0
- package/dist/proto/gen/bitbox02_system_pb.d.ts +207 -0
- package/dist/proto/gen/bitbox02_system_pb.d.ts.map +1 -0
- package/dist/proto/gen/bitbox02_system_pb.js +80 -0
- package/dist/proto/gen/bitbox02_system_pb.js.map +1 -0
- package/dist/proto/gen/bluetooth_pb.d.ts +135 -0
- package/dist/proto/gen/bluetooth_pb.d.ts.map +1 -0
- package/dist/proto/gen/bluetooth_pb.js +42 -0
- package/dist/proto/gen/bluetooth_pb.js.map +1 -0
- package/dist/proto/gen/btc_pb.d.ts +1166 -0
- package/dist/proto/gen/btc_pb.d.ts.map +1 -0
- package/dist/proto/gen/btc_pb.js +442 -0
- package/dist/proto/gen/btc_pb.js.map +1 -0
- package/dist/proto/gen/cardano_pb.d.ts +504 -0
- package/dist/proto/gen/cardano_pb.d.ts.map +1 -0
- package/dist/proto/gen/cardano_pb.js +142 -0
- package/dist/proto/gen/cardano_pb.js.map +1 -0
- package/dist/proto/gen/common_pb.d.ts +129 -0
- package/dist/proto/gen/common_pb.d.ts.map +1 -0
- package/dist/proto/gen/common_pb.js +42 -0
- package/dist/proto/gen/common_pb.js.map +1 -0
- package/dist/proto/gen/eth_pb.d.ts +662 -0
- package/dist/proto/gen/eth_pb.d.ts.map +1 -0
- package/dist/proto/gen/eth_pb.js +221 -0
- package/dist/proto/gen/eth_pb.js.map +1 -0
- package/dist/proto/gen/hww_pb.d.ts +349 -0
- package/dist/proto/gen/hww_pb.d.ts.map +1 -0
- package/dist/proto/gen/hww_pb.js +38 -0
- package/dist/proto/gen/hww_pb.js.map +1 -0
- package/dist/proto/gen/keystore_pb.d.ts +108 -0
- package/dist/proto/gen/keystore_pb.d.ts.map +1 -0
- package/dist/proto/gen/keystore_pb.js +33 -0
- package/dist/proto/gen/keystore_pb.js.map +1 -0
- package/dist/proto/gen/mnemonic_pb.d.ts +48 -0
- package/dist/proto/gen/mnemonic_pb.d.ts.map +1 -0
- package/dist/proto/gen/mnemonic_pb.js +22 -0
- package/dist/proto/gen/mnemonic_pb.js.map +1 -0
- package/dist/proto/gen/perform_attestation_pb.d.ts +57 -0
- package/dist/proto/gen/perform_attestation_pb.d.ts.map +1 -0
- package/dist/proto/gen/perform_attestation_pb.js +17 -0
- package/dist/proto/gen/perform_attestation_pb.js.map +1 -0
- package/dist/proto/gen/system_pb.d.ts +38 -0
- package/dist/proto/gen/system_pb.d.ts.map +1 -0
- package/dist/proto/gen/system_pb.js +30 -0
- package/dist/proto/gen/system_pb.js.map +1 -0
- package/package.json +2 -1
package/CONTRIBUTING.md
CHANGED
|
@@ -92,8 +92,10 @@ The package is intended as a drop-in TypeScript replacement for the current
|
|
|
92
92
|
- Public errors must keep the `{ code, message, err? }` shape. New public error
|
|
93
93
|
behavior should go through `src/internal/errors.ts` and match the compatibility
|
|
94
94
|
taxonomy unless there is an explicit reason to extend it.
|
|
95
|
-
- BTC
|
|
96
|
-
|
|
95
|
+
- BTC and BIP85 methods remain compatibility stubs in this iteration. Do not
|
|
96
|
+
document or test them as implemented until their protocol support lands.
|
|
97
|
+
- Cardano xpub, address, and transaction-signing support is implemented; keep
|
|
98
|
+
it aligned with the Rust/WASM reference behavior and simulator vectors.
|
|
97
99
|
|
|
98
100
|
`test/api-snapshot.test.ts` compares the built `dist/index.d.ts` against the
|
|
99
101
|
checked-in `test/fixtures/bitbox_api.d.ts` fixture. To refresh the fixture,
|
package/README.md
CHANGED
|
@@ -10,12 +10,12 @@ does not require a WASM init step.
|
|
|
10
10
|
## Status
|
|
11
11
|
|
|
12
12
|
- **Implemented:** WebHID and BitBoxBridge transports, Noise XX pairing,
|
|
13
|
-
Ethereum xpub/address/signing methods, antiklepto,
|
|
14
|
-
streaming, EIP-712 typed messages,
|
|
15
|
-
|
|
16
|
-
- **Stubbed with `code: '
|
|
17
|
-
|
|
18
|
-
`
|
|
13
|
+
device metadata helpers, Ethereum xpub/address/signing methods, antiklepto,
|
|
14
|
+
transaction data streaming, EIP-712 typed messages, `ethIdentifyCase()`,
|
|
15
|
+
and Cardano xpub/address/signing methods.
|
|
16
|
+
- **Stubbed with `code: 'unsupported'`:** BTC and BIP85 methods.
|
|
17
|
+
- **Stubbed with `code: 'not-implemented'`:** `showMnemonic()` and
|
|
18
|
+
`changePassword()`.
|
|
19
19
|
|
|
20
20
|
## Installation
|
|
21
21
|
|
|
@@ -49,10 +49,10 @@ import * as bitbox from '@bitboxswiss/bitbox-api';
|
|
|
49
49
|
There is no `init()` call and no WASM loader. Existing Webpack/Vite WASM plugin
|
|
50
50
|
configuration from `bitbox-api` is not needed for this package.
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
few general device helpers are still present in the public type surface for
|
|
52
|
+
BTC and BIP85 methods are still present in the public type surface for
|
|
54
53
|
compatibility, but currently reject with typed errors as listed in
|
|
55
|
-
[Status](#status).
|
|
54
|
+
[Status](#status). Ethereum, Cardano, and the general device helpers listed
|
|
55
|
+
above are wired through the TypeScript transport.
|
|
56
56
|
|
|
57
57
|
## Browser Requirements
|
|
58
58
|
|
|
@@ -197,6 +197,66 @@ defaults to `true` when omitted.
|
|
|
197
197
|
await bb02.ethSignTypedMessage(1n, keypath, typedData);
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
+
## Cardano Usage
|
|
201
|
+
|
|
202
|
+
Cardano keypaths can be strings such as `m/1852'/1815'/0'/0/0` or number
|
|
203
|
+
arrays. Coin amounts, fees, slots, withdrawals, and token amounts are `bigint`
|
|
204
|
+
values; byte fields such as transaction hashes, policy IDs, asset names, pool
|
|
205
|
+
key hashes, and DRep credential hashes are `Uint8Array`s.
|
|
206
|
+
|
|
207
|
+
```ts
|
|
208
|
+
if (!bb02.cardanoSupported()) {
|
|
209
|
+
throw new Error('This BitBox02 does not support Cardano');
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
const paymentKeypath = "m/1852'/1815'/0'/0/0";
|
|
213
|
+
const stakeKeypath = "m/1852'/1815'/0'/2/0";
|
|
214
|
+
|
|
215
|
+
const xpubs = await bb02.cardanoXpubs(["m/1852'/1815'/0'"]);
|
|
216
|
+
const address = await bb02.cardanoAddress(
|
|
217
|
+
'mainnet',
|
|
218
|
+
{
|
|
219
|
+
pkhSkh: {
|
|
220
|
+
keypathPayment: paymentKeypath,
|
|
221
|
+
keypathStake: stakeKeypath,
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
true,
|
|
225
|
+
);
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Cardano transaction signing returns Shelley witnesses. Public keys and
|
|
229
|
+
signatures are plain `number[]` arrays, matching the runtime shape of the old
|
|
230
|
+
WASM package.
|
|
231
|
+
|
|
232
|
+
```ts
|
|
233
|
+
const result = await bb02.cardanoSignTransaction({
|
|
234
|
+
network: 'mainnet',
|
|
235
|
+
inputs: [
|
|
236
|
+
{
|
|
237
|
+
keypath: paymentKeypath,
|
|
238
|
+
prevOutHash: hexToBytes('59864ee73ca5d91098a32b3ce9811bac1996dcbaefa6b6247dcaafb5779c2538'),
|
|
239
|
+
prevOutIndex: 0,
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
outputs: [
|
|
243
|
+
{
|
|
244
|
+
encodedAddress: address,
|
|
245
|
+
value: 1_000_000n,
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
fee: 170_499n,
|
|
249
|
+
ttl: 41_115_811n,
|
|
250
|
+
certificates: [],
|
|
251
|
+
withdrawals: [],
|
|
252
|
+
validityIntervalStart: 41_110_811n,
|
|
253
|
+
allowZeroTTL: false,
|
|
254
|
+
tagCborSets: false,
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
console.log(result.shelleyWitnesses);
|
|
258
|
+
```
|
|
259
|
+
|
|
200
260
|
## Typed Errors
|
|
201
261
|
|
|
202
262
|
All public API entry points reject with, or can be normalized to, this shape:
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
export type OnCloseCb = undefined | (() => void);
|
|
2
|
+
export type Product = 'unknown' | 'bitbox02-multi' | 'bitbox02-btconly' | 'bitbox02-nova-multi' | 'bitbox02-nova-btconly';
|
|
3
|
+
export type BtcCoin = 'btc' | 'tbtc' | 'ltc' | 'tltc' | 'rbtc';
|
|
4
|
+
export type BtcFormatUnit = 'default' | 'sat';
|
|
5
|
+
export type XPubType = 'tpub' | 'xpub' | 'ypub' | 'zpub' | 'vpub' | 'upub' | 'Vpub' | 'Zpub' | 'Upub' | 'Ypub';
|
|
6
|
+
export type BtcXPubsType = 'tpub' | 'xpub';
|
|
7
|
+
export type Keypath = string | number[];
|
|
8
|
+
export type XPub = string;
|
|
9
|
+
export type DeviceInfo = {
|
|
10
|
+
name: string;
|
|
11
|
+
initialized: boolean;
|
|
12
|
+
version: string;
|
|
13
|
+
mnemonicPassphraseEnabled: boolean;
|
|
14
|
+
securechipModel: string;
|
|
15
|
+
monotonicIncrementsRemaining: number;
|
|
16
|
+
};
|
|
17
|
+
export type BtcSimpleType = 'p2wpkhP2sh' | 'p2wpkh' | 'p2tr';
|
|
18
|
+
export type KeyOriginInfo = {
|
|
19
|
+
rootFingerprint?: string;
|
|
20
|
+
keypath?: Keypath;
|
|
21
|
+
xpub: XPub;
|
|
22
|
+
};
|
|
23
|
+
export type BtcRegisterXPubType = 'autoElectrum' | 'autoXpubTpub';
|
|
24
|
+
export type BtcMultisigScriptType = 'p2wsh' | 'p2wshP2sh';
|
|
25
|
+
export type BtcMultisig = {
|
|
26
|
+
threshold: number;
|
|
27
|
+
xpubs: XPub[];
|
|
28
|
+
ourXpubIndex: number;
|
|
29
|
+
scriptType: BtcMultisigScriptType;
|
|
30
|
+
};
|
|
31
|
+
export type BtcPolicy = {
|
|
32
|
+
policy: string;
|
|
33
|
+
keys: KeyOriginInfo[];
|
|
34
|
+
};
|
|
35
|
+
export type BtcScriptConfig = {
|
|
36
|
+
simpleType: BtcSimpleType;
|
|
37
|
+
} | {
|
|
38
|
+
multisig: BtcMultisig;
|
|
39
|
+
} | {
|
|
40
|
+
policy: BtcPolicy;
|
|
41
|
+
};
|
|
42
|
+
export type BtcScriptConfigWithKeypath = {
|
|
43
|
+
scriptConfig: BtcScriptConfig;
|
|
44
|
+
keypath: Keypath;
|
|
45
|
+
};
|
|
46
|
+
export type BtcSignMessageSignature = {
|
|
47
|
+
sig: number[];
|
|
48
|
+
recid: number;
|
|
49
|
+
electrumSig65: number[];
|
|
50
|
+
};
|
|
51
|
+
export type BtcXpubs = string[];
|
|
52
|
+
/** Legacy Ethereum transaction fields as unsigned big-endian bytes. */
|
|
53
|
+
export type EthTransaction = {
|
|
54
|
+
nonce: Uint8Array;
|
|
55
|
+
gasPrice: Uint8Array;
|
|
56
|
+
gasLimit: Uint8Array;
|
|
57
|
+
recipient: Uint8Array;
|
|
58
|
+
value: Uint8Array;
|
|
59
|
+
data: Uint8Array;
|
|
60
|
+
};
|
|
61
|
+
/** EIP-1559 transaction fields as unsigned big-endian bytes. */
|
|
62
|
+
export type Eth1559Transaction = {
|
|
63
|
+
chainId: number | bigint;
|
|
64
|
+
nonce: Uint8Array;
|
|
65
|
+
maxPriorityFeePerGas: Uint8Array;
|
|
66
|
+
maxFeePerGas: Uint8Array;
|
|
67
|
+
gasLimit: Uint8Array;
|
|
68
|
+
recipient: Uint8Array;
|
|
69
|
+
value: Uint8Array;
|
|
70
|
+
data: Uint8Array;
|
|
71
|
+
};
|
|
72
|
+
/** Ethereum signature split into R, S, and V byte arrays. */
|
|
73
|
+
export type EthSignature = {
|
|
74
|
+
r: number[];
|
|
75
|
+
s: number[];
|
|
76
|
+
v: number[];
|
|
77
|
+
};
|
|
78
|
+
export type EthAddressCase = 'upper' | 'lower' | 'mixed';
|
|
79
|
+
export type CardanoXpub = number[];
|
|
80
|
+
export type CardanoXpubs = CardanoXpub[];
|
|
81
|
+
export type CardanoNetwork = 'mainnet' | 'testnet';
|
|
82
|
+
export type CardanoScriptConfig = {
|
|
83
|
+
pkhSkh: {
|
|
84
|
+
keypathPayment: Keypath;
|
|
85
|
+
keypathStake: Keypath;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export type CardanoInput = {
|
|
89
|
+
keypath: Keypath;
|
|
90
|
+
prevOutHash: Uint8Array;
|
|
91
|
+
prevOutIndex: number;
|
|
92
|
+
};
|
|
93
|
+
export type CardanoAssetGroupToken = {
|
|
94
|
+
assetName: Uint8Array;
|
|
95
|
+
value: bigint;
|
|
96
|
+
};
|
|
97
|
+
export type CardanoAssetGroup = {
|
|
98
|
+
policyId: Uint8Array;
|
|
99
|
+
tokens: CardanoAssetGroupToken[];
|
|
100
|
+
};
|
|
101
|
+
export type CardanoOutput = {
|
|
102
|
+
encodedAddress: string;
|
|
103
|
+
value: bigint;
|
|
104
|
+
scriptConfig?: CardanoScriptConfig;
|
|
105
|
+
assetGroups?: CardanoAssetGroup[];
|
|
106
|
+
};
|
|
107
|
+
export type CardanoDrepType = 'keyHash' | 'scriptHash' | 'alwaysAbstain' | 'alwaysNoConfidence';
|
|
108
|
+
export type CardanoCertificate = {
|
|
109
|
+
stakeRegistration: {
|
|
110
|
+
keypath: Keypath;
|
|
111
|
+
};
|
|
112
|
+
} | {
|
|
113
|
+
stakeDeregistration: {
|
|
114
|
+
keypath: Keypath;
|
|
115
|
+
};
|
|
116
|
+
} | {
|
|
117
|
+
stakeDelegation: {
|
|
118
|
+
keypath: Keypath;
|
|
119
|
+
poolKeyhash: Uint8Array;
|
|
120
|
+
};
|
|
121
|
+
} | {
|
|
122
|
+
voteDelegation: {
|
|
123
|
+
keypath: Keypath;
|
|
124
|
+
type: CardanoDrepType;
|
|
125
|
+
drepCredhash?: Uint8Array;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
export type CardanoWithdrawal = {
|
|
129
|
+
keypath: Keypath;
|
|
130
|
+
value: bigint;
|
|
131
|
+
};
|
|
132
|
+
export type CardanoTransaction = {
|
|
133
|
+
network: CardanoNetwork;
|
|
134
|
+
inputs: CardanoInput[];
|
|
135
|
+
outputs: CardanoOutput[];
|
|
136
|
+
fee: bigint;
|
|
137
|
+
ttl: bigint;
|
|
138
|
+
certificates: CardanoCertificate[];
|
|
139
|
+
withdrawals: CardanoWithdrawal[];
|
|
140
|
+
validityIntervalStart: bigint;
|
|
141
|
+
allowZeroTTL: boolean;
|
|
142
|
+
tagCborSets: boolean;
|
|
143
|
+
};
|
|
144
|
+
export type CardanoShelleyWitness = {
|
|
145
|
+
signature: number[];
|
|
146
|
+
publicKey: number[];
|
|
147
|
+
};
|
|
148
|
+
export type CardanoSignTransactionResult = {
|
|
149
|
+
shelleyWitnesses: CardanoShelleyWitness[];
|
|
150
|
+
};
|
|
151
|
+
/** Typed error returned by public API helpers. */
|
|
152
|
+
export type Error = {
|
|
153
|
+
code: string;
|
|
154
|
+
message: string;
|
|
155
|
+
err?: any;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Connect to a BitBox02 using WebHID.
|
|
159
|
+
*
|
|
160
|
+
* WebHID is available in Chromium-based browsers in secure contexts. Call this
|
|
161
|
+
* from a user action so the browser can show the device chooser.
|
|
162
|
+
*/
|
|
163
|
+
export declare function bitbox02ConnectWebHID(onCloseCb?: OnCloseCb): Promise<BitBox>;
|
|
164
|
+
/**
|
|
165
|
+
* Connect to a BitBox02 through the local BitBoxBridge service.
|
|
166
|
+
*/
|
|
167
|
+
export declare function bitbox02ConnectBridge(onCloseCb?: OnCloseCb): Promise<BitBox>;
|
|
168
|
+
/**
|
|
169
|
+
* Connect to a BitBox02 using WebHID when available, otherwise BitBoxBridge.
|
|
170
|
+
*/
|
|
171
|
+
export declare function bitbox02ConnectAuto(onCloseCb?: OnCloseCb): Promise<BitBox>;
|
|
172
|
+
/**
|
|
173
|
+
* Normalize any thrown value to the public typed error shape.
|
|
174
|
+
*
|
|
175
|
+
* If the input already looks like a typed `{ code: string, message: string }`, it is returned
|
|
176
|
+
* as-is. Otherwise it is wrapped as `{ code: 'unknown-js', message: 'Unknown Javascript error',
|
|
177
|
+
* err: <original> }`.
|
|
178
|
+
*/
|
|
179
|
+
export declare function ensureError(err: any): Error;
|
|
180
|
+
/** Returns true if the user cancelled an operation. */
|
|
181
|
+
export declare function isUserAbort(err: Error): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Identifies the case of the recipient address given as hexadecimal string.
|
|
184
|
+
* Returns 'upper' if every alphabetic char is uppercase, 'lower' if every
|
|
185
|
+
* alphabetic char is lowercase, 'mixed' otherwise. Non-alphabetic characters
|
|
186
|
+
* are ignored.
|
|
187
|
+
*/
|
|
188
|
+
export declare function ethIdentifyCase(recipientAddress: string): EthAddressCase;
|
|
189
|
+
/**
|
|
190
|
+
* Unpaired BitBox client.
|
|
191
|
+
*
|
|
192
|
+
* Create initialized instances with `bitbox02ConnectAuto()`, `bitbox02ConnectWebHID()`, or
|
|
193
|
+
* `bitbox02ConnectBridge()`. Direct constructors are retained for compatibility and create an
|
|
194
|
+
* inert object whose methods throw `code: 'invalid-state'`.
|
|
195
|
+
*/
|
|
196
|
+
export declare class BitBox {
|
|
197
|
+
#private;
|
|
198
|
+
/** No-op; retained for ABI compatibility with the wasm-bindgen output. */
|
|
199
|
+
free(): void;
|
|
200
|
+
/**
|
|
201
|
+
* Invokes the device unlock and pairing. After this, stop using this instance and continue
|
|
202
|
+
* with the returned instance of type `PairingBitBox`.
|
|
203
|
+
*
|
|
204
|
+
* This consumes the `BitBox` synchronously. A second call, including a concurrent call while
|
|
205
|
+
* the first is still running, rejects with `code: 'invalid-state'`. If pairing setup fails, the
|
|
206
|
+
* transport is closed and callers must reconnect before retrying.
|
|
207
|
+
*/
|
|
208
|
+
unlockAndPair(): Promise<PairingBitBox>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* BitBox in the pairing state. Use `getPairingCode()` to display the pairing code to the user and
|
|
212
|
+
* `waitConfirm()` to proceed to the paired state. Direct constructors create an inert object.
|
|
213
|
+
*/
|
|
214
|
+
export declare class PairingBitBox {
|
|
215
|
+
#private;
|
|
216
|
+
/** No-op; retained for ABI compatibility with the wasm-bindgen output. */
|
|
217
|
+
free(): void;
|
|
218
|
+
/**
|
|
219
|
+
* If a pairing code confirmation is required, this returns the pairing code. You must display
|
|
220
|
+
* it to the user and then call `waitConfirm()` to wait until the user confirms the code on
|
|
221
|
+
* the BitBox.
|
|
222
|
+
*
|
|
223
|
+
* If the BitBox was paired before and the pairing was persisted, the pairing step is
|
|
224
|
+
* skipped. In this case, `undefined` is returned. Also in this case, call `waitConfirm()` to
|
|
225
|
+
* establish the encrypted connection.
|
|
226
|
+
*
|
|
227
|
+
* Call this before `waitConfirm()`, because `waitConfirm()` consumes the pairing object.
|
|
228
|
+
*/
|
|
229
|
+
getPairingCode(): string | undefined;
|
|
230
|
+
/**
|
|
231
|
+
* Proceed to the paired state. After this, stop using this instance and continue with the
|
|
232
|
+
* returned instance of type `PairedBitBox`.
|
|
233
|
+
*
|
|
234
|
+
* This consumes the `PairingBitBox` synchronously. A second call, including a concurrent call
|
|
235
|
+
* while the first is still running, rejects with `code: 'invalid-state'`. If confirmation fails,
|
|
236
|
+
* the transport is closed and callers must reconnect before retrying.
|
|
237
|
+
*/
|
|
238
|
+
waitConfirm(): Promise<PairedBitBox>;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Paired BitBox. This is where you can invoke most API functions like getting xpubs, displaying
|
|
242
|
+
* receive addresses, and signing transactions. Direct constructors create an inert object.
|
|
243
|
+
*/
|
|
244
|
+
export declare class PairedBitBox {
|
|
245
|
+
#private;
|
|
246
|
+
/** No-op; retained for ABI compatibility with the wasm-bindgen output. */
|
|
247
|
+
free(): void;
|
|
248
|
+
/**
|
|
249
|
+
* Closes the BitBox connection. This also invokes the `on_close_cb` callback which was
|
|
250
|
+
* provided to the connect method creating the connection. Idempotent: calling close() on an
|
|
251
|
+
* already-closed or uninitialized instance is a no-op.
|
|
252
|
+
*
|
|
253
|
+
* After `close()`, all other methods throw `code: 'invalid-state'`.
|
|
254
|
+
*/
|
|
255
|
+
close(): void;
|
|
256
|
+
/** Query device metadata. */
|
|
257
|
+
deviceInfo(): Promise<DeviceInfo>;
|
|
258
|
+
/** Returns which product we are connected to. */
|
|
259
|
+
product(): Product;
|
|
260
|
+
/** Returns the firmware version, e.g. "9.18.0". */
|
|
261
|
+
version(): string;
|
|
262
|
+
/** Returns the hex-encoded 4-byte root fingerprint. */
|
|
263
|
+
rootFingerprint(): Promise<string>;
|
|
264
|
+
/** Not implemented in this TypeScript iteration. */
|
|
265
|
+
showMnemonic(): Promise<void>;
|
|
266
|
+
/** Not implemented in this TypeScript iteration. */
|
|
267
|
+
changePassword(): Promise<void>;
|
|
268
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
269
|
+
btcXpub(_coin: BtcCoin, _keypath: Keypath, _xpub_type: XPubType, _display: boolean): Promise<string>;
|
|
270
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
271
|
+
btcXpubs(_coin: BtcCoin, _keypaths: Keypath[], _xpub_type: BtcXPubsType): Promise<BtcXpubs>;
|
|
272
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
273
|
+
btcIsScriptConfigRegistered(_coin: BtcCoin, _script_config: BtcScriptConfig, _keypath_account?: Keypath): Promise<boolean>;
|
|
274
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
275
|
+
btcRegisterScriptConfig(_coin: BtcCoin, _script_config: BtcScriptConfig, _keypath_account: Keypath | undefined, _xpub_type: BtcRegisterXPubType, _name?: string): Promise<void>;
|
|
276
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
277
|
+
btcAddress(_coin: BtcCoin, _keypath: Keypath, _script_config: BtcScriptConfig, _display: boolean): Promise<string>;
|
|
278
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
279
|
+
btcSignPSBT(_coin: BtcCoin, _psbt: string, _force_script_config: BtcScriptConfigWithKeypath | undefined, _format_unit: BtcFormatUnit): Promise<string>;
|
|
280
|
+
/** Compatibility stub: Bitcoin support is not implemented in this TypeScript iteration. */
|
|
281
|
+
btcSignMessage(_coin: BtcCoin, _script_config: BtcScriptConfigWithKeypath, _msg: Uint8Array): Promise<BtcSignMessageSignature>;
|
|
282
|
+
/** Does this device support ETH functionality? Currently this means BitBox02 Multi or Nova Multi. */
|
|
283
|
+
ethSupported(): boolean;
|
|
284
|
+
/** Query the device for an Ethereum account xpub. */
|
|
285
|
+
ethXpub(keypath: Keypath): Promise<string>;
|
|
286
|
+
/**
|
|
287
|
+
* Query the device for an Ethereum address.
|
|
288
|
+
*
|
|
289
|
+
* Set `display` to `true` to require on-device confirmation.
|
|
290
|
+
*/
|
|
291
|
+
ethAddress(chain_id: bigint, keypath: Keypath, display: boolean): Promise<string>;
|
|
292
|
+
/**
|
|
293
|
+
* Sign a legacy Ethereum transaction.
|
|
294
|
+
*
|
|
295
|
+
* Transaction fields are unsigned big-endian byte arrays. The returned `v` includes the EIP-155
|
|
296
|
+
* chain ID offset.
|
|
297
|
+
*/
|
|
298
|
+
ethSignTransaction(chain_id: bigint, keypath: Keypath, tx: EthTransaction, address_case?: EthAddressCase): Promise<EthSignature>;
|
|
299
|
+
/**
|
|
300
|
+
* Sign an EIP-1559 type 2 Ethereum transaction.
|
|
301
|
+
*
|
|
302
|
+
* Transaction fields are unsigned big-endian byte arrays. The returned `v` is the recovery ID.
|
|
303
|
+
*/
|
|
304
|
+
ethSign1559Transaction(keypath: Keypath, tx: Eth1559Transaction, address_case?: EthAddressCase): Promise<EthSignature>;
|
|
305
|
+
/**
|
|
306
|
+
* Sign an Ethereum personal message.
|
|
307
|
+
*
|
|
308
|
+
* The device applies the standard Ethereum message prefix before signing. The returned `v`
|
|
309
|
+
* includes the +27 offset.
|
|
310
|
+
*/
|
|
311
|
+
ethSignMessage(chain_id: bigint, keypath: Keypath, msg: Uint8Array): Promise<EthSignature>;
|
|
312
|
+
/**
|
|
313
|
+
* Sign an EIP-712 typed message.
|
|
314
|
+
*
|
|
315
|
+
* `use_antiklepto` defaults to `true` when omitted.
|
|
316
|
+
*/
|
|
317
|
+
ethSignTypedMessage(chain_id: bigint, keypath: Keypath, msg: any, use_antiklepto?: boolean): Promise<EthSignature>;
|
|
318
|
+
/** Does this device support Cardano functionality? Currently this means BitBox02 Multi or Nova Multi. */
|
|
319
|
+
cardanoSupported(): boolean;
|
|
320
|
+
/**
|
|
321
|
+
* Query the device for xpubs. The result contains one xpub per requested keypath. Each xpub is
|
|
322
|
+
* 64 bytes: 32 byte chain code + 32 byte pubkey.
|
|
323
|
+
*/
|
|
324
|
+
cardanoXpubs(keypaths: Keypath[]): Promise<CardanoXpubs>;
|
|
325
|
+
/** Query the device for a Cardano address. */
|
|
326
|
+
cardanoAddress(network: CardanoNetwork, script_config: CardanoScriptConfig, display: boolean): Promise<string>;
|
|
327
|
+
/** Sign a Cardano transaction. */
|
|
328
|
+
cardanoSignTransaction(transaction: CardanoTransaction): Promise<CardanoSignTransactionResult>;
|
|
329
|
+
/**
|
|
330
|
+
* Invokes the BIP85-BIP39 workflow on the device, letting the user select the number of words
|
|
331
|
+
* (12, 18, 24) and an index and display a derived BIP-39 mnemonic.
|
|
332
|
+
*
|
|
333
|
+
* Compatibility stub: BIP85 support is not implemented in this TypeScript iteration.
|
|
334
|
+
*/
|
|
335
|
+
bip85AppBip39(): Promise<void>;
|
|
336
|
+
}
|
|
337
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|