@dfinity/ckbtc 4.0.0 → 4.0.1-beta-2025-09-25

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/README.md CHANGED
@@ -21,7 +21,7 @@ npm i @dfinity/ckbtc
21
21
  The bundle needs peer dependencies, be sure that following resources are available in your project as well.
22
22
 
23
23
  ```bash
24
- npm i @dfinity/agent @dfinity/candid @dfinity/principal @dfinity/utils
24
+ npm i @icp-sdk/core @dfinity/utils
25
25
  ```
26
26
 
27
27
  ## Usage
@@ -1,2 +1,2 @@
1
- import type { IDL } from "@dfinity/candid";
1
+ import type { IDL } from "@icp-sdk/core/candid";
2
2
  export const idlFactory: IDL.InterfaceFactory;
@@ -1,6 +1,6 @@
1
- import type { ActorMethod } from "@dfinity/agent";
2
- import type { IDL } from "@dfinity/candid";
3
- import type { Principal } from "@dfinity/principal";
1
+ import type { ActorMethod } from "@icp-sdk/core/agent";
2
+ import type { IDL } from "@icp-sdk/core/candid";
3
+ import type { Principal } from "@icp-sdk/core/principal";
4
4
 
5
5
  export type address = string;
6
6
  export type block_hash = Uint8Array | number[];
@@ -1,2 +1,2 @@
1
- import type { IDL } from "@dfinity/candid";
1
+ import type { IDL } from "@icp-sdk/core/candid";
2
2
  export const idlFactory: IDL.InterfaceFactory;
@@ -1,2 +1,2 @@
1
- import type { IDL } from "@dfinity/candid";
1
+ import type { IDL } from "@icp-sdk/core/candid";
2
2
  export const idlFactory: IDL.InterfaceFactory;
@@ -40,6 +40,16 @@ export const idlFactory = ({ IDL }) => {
40
40
  'Upgrade' : IDL.Opt(UpgradeArgs),
41
41
  'Init' : InitArgs,
42
42
  });
43
+ const MemoryMetrics = IDL.Record({
44
+ 'wasm_binary_size' : IDL.Nat,
45
+ 'wasm_chunk_store_size' : IDL.Nat,
46
+ 'canister_history_size' : IDL.Nat,
47
+ 'stable_memory_size' : IDL.Nat,
48
+ 'snapshots_size' : IDL.Nat,
49
+ 'wasm_memory_size' : IDL.Nat,
50
+ 'global_memory_size' : IDL.Nat,
51
+ 'custom_sections_size' : IDL.Nat,
52
+ });
43
53
  const CanisterStatusType = IDL.Variant({
44
54
  'stopped' : IDL.Null,
45
55
  'stopping' : IDL.Null,
@@ -52,6 +62,7 @@ export const idlFactory = ({ IDL }) => {
52
62
  });
53
63
  const DefiniteCanisterSettings = IDL.Record({
54
64
  'freezing_threshold' : IDL.Nat,
65
+ 'wasm_memory_threshold' : IDL.Nat,
55
66
  'controllers' : IDL.Vec(IDL.Principal),
56
67
  'reserved_cycles_limit' : IDL.Nat,
57
68
  'log_visibility' : LogVisibility,
@@ -66,6 +77,7 @@ export const idlFactory = ({ IDL }) => {
66
77
  'request_payload_bytes_total' : IDL.Nat,
67
78
  });
68
79
  const CanisterStatusResponse = IDL.Record({
80
+ 'memory_metrics' : MemoryMetrics,
69
81
  'status' : CanisterStatusType,
70
82
  'memory_size' : IDL.Nat,
71
83
  'cycles' : IDL.Nat,
@@ -91,6 +103,10 @@ export const idlFactory = ({ IDL }) => {
91
103
  'kyt_provider' : IDL.Principal,
92
104
  }),
93
105
  });
106
+ const WithdrawalFee = IDL.Record({
107
+ 'minter_fee' : IDL.Nat64,
108
+ 'bitcoin_fee' : IDL.Nat64,
109
+ });
94
110
  const SuspendedReason = IDL.Variant({
95
111
  'ValueTooSmall' : IDL.Null,
96
112
  'Quarantined' : IDL.Null,
@@ -102,6 +118,19 @@ export const idlFactory = ({ IDL }) => {
102
118
  'p2wpkh_v0' : IDL.Vec(IDL.Nat8),
103
119
  'p2pkh' : IDL.Vec(IDL.Nat8),
104
120
  });
121
+ const InvalidTransactionError = IDL.Variant({
122
+ 'too_many_inputs' : IDL.Record({
123
+ 'max_num_inputs' : IDL.Nat64,
124
+ 'num_inputs' : IDL.Nat64,
125
+ }),
126
+ });
127
+ const WithdrawalReimbursementReason = IDL.Variant({
128
+ 'invalid_transaction' : InvalidTransactionError,
129
+ });
130
+ const ReplacedReason = IDL.Variant({
131
+ 'to_cancel' : IDL.Record({ 'reason' : WithdrawalReimbursementReason }),
132
+ 'to_retry' : IDL.Null,
133
+ });
105
134
  const EventType = IDL.Variant({
106
135
  'received_utxos' : IDL.Record({
107
136
  'to_account' : Account,
@@ -120,6 +149,7 @@ export const idlFactory = ({ IDL }) => {
120
149
  IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 })
121
150
  ),
122
151
  'txid' : IDL.Vec(IDL.Nat8),
152
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
123
153
  'utxos' : IDL.Vec(Utxo),
124
154
  'requests' : IDL.Vec(IDL.Nat64),
125
155
  'submitted_at' : IDL.Nat64,
@@ -158,14 +188,26 @@ export const idlFactory = ({ IDL }) => {
158
188
  'uuid' : IDL.Text,
159
189
  'kyt_provider' : IDL.Opt(IDL.Principal),
160
190
  }),
191
+ 'schedule_withdrawal_reimbursement' : IDL.Record({
192
+ 'burn_block_index' : IDL.Nat64,
193
+ 'account' : Account,
194
+ 'amount' : IDL.Nat64,
195
+ 'reason' : WithdrawalReimbursementReason,
196
+ }),
197
+ 'quarantined_withdrawal_reimbursement' : IDL.Record({
198
+ 'burn_block_index' : IDL.Nat64,
199
+ }),
161
200
  'removed_retrieve_btc_request' : IDL.Record({ 'block_index' : IDL.Nat64 }),
162
201
  'confirmed_transaction' : IDL.Record({ 'txid' : IDL.Vec(IDL.Nat8) }),
163
202
  'replaced_transaction' : IDL.Record({
164
203
  'fee' : IDL.Nat64,
165
204
  'change_output' : IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 }),
205
+ 'new_utxos' : IDL.Opt(IDL.Vec(Utxo)),
166
206
  'old_txid' : IDL.Vec(IDL.Nat8),
207
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
167
208
  'new_txid' : IDL.Vec(IDL.Nat8),
168
209
  'submitted_at' : IDL.Nat64,
210
+ 'reason' : IDL.Opt(ReplacedReason),
169
211
  }),
170
212
  'checked_utxo_v2' : IDL.Record({ 'utxo' : Utxo, 'account' : Account }),
171
213
  'ignored_utxo' : IDL.Record({ 'utxo' : Utxo }),
@@ -177,6 +219,10 @@ export const idlFactory = ({ IDL }) => {
177
219
  'burn_block_index' : IDL.Nat64,
178
220
  'mint_block_index' : IDL.Nat64,
179
221
  }),
222
+ 'reimbursed_withdrawal' : IDL.Record({
223
+ 'burn_block_index' : IDL.Nat64,
224
+ 'mint_block_index' : IDL.Nat64,
225
+ }),
180
226
  });
181
227
  const Event = IDL.Record({
182
228
  'timestamp' : IDL.Opt(IDL.Nat64),
@@ -1,6 +1,6 @@
1
- import type { ActorMethod } from "@dfinity/agent";
2
- import type { IDL } from "@dfinity/candid";
3
- import type { Principal } from "@dfinity/principal";
1
+ import type { ActorMethod } from "@icp-sdk/core/agent";
2
+ import type { IDL } from "@icp-sdk/core/candid";
3
+ import type { Principal } from "@icp-sdk/core/principal";
4
4
 
5
5
  export interface Account {
6
6
  owner: Principal;
@@ -17,6 +17,7 @@ export type BtcNetwork =
17
17
  | { Regtest: null }
18
18
  | { Testnet: null };
19
19
  export interface CanisterStatusResponse {
20
+ memory_metrics: MemoryMetrics;
20
21
  status: CanisterStatusType;
21
22
  memory_size: bigint;
22
23
  cycles: bigint;
@@ -32,6 +33,7 @@ export type CanisterStatusType =
32
33
  | { running: null };
33
34
  export interface DefiniteCanisterSettings {
34
35
  freezing_threshold: bigint;
36
+ wasm_memory_threshold: bigint;
35
37
  controllers: Array<Principal>;
36
38
  reserved_cycles_limit: bigint;
37
39
  log_visibility: LogVisibility;
@@ -64,6 +66,7 @@ export type EventType =
64
66
  fee: [] | [bigint];
65
67
  change_output: [] | [{ value: bigint; vout: number }];
66
68
  txid: Uint8Array | number[];
69
+ withdrawal_fee: [] | [WithdrawalFee];
67
70
  utxos: Array<Utxo>;
68
71
  requests: BigUint64Array | bigint[];
69
72
  submitted_at: bigint;
@@ -113,15 +116,27 @@ export type EventType =
113
116
  kyt_provider: [] | [Principal];
114
117
  };
115
118
  }
119
+ | {
120
+ schedule_withdrawal_reimbursement: {
121
+ burn_block_index: bigint;
122
+ account: Account;
123
+ amount: bigint;
124
+ reason: WithdrawalReimbursementReason;
125
+ };
126
+ }
127
+ | { quarantined_withdrawal_reimbursement: { burn_block_index: bigint } }
116
128
  | { removed_retrieve_btc_request: { block_index: bigint } }
117
129
  | { confirmed_transaction: { txid: Uint8Array | number[] } }
118
130
  | {
119
131
  replaced_transaction: {
120
132
  fee: bigint;
121
133
  change_output: { value: bigint; vout: number };
134
+ new_utxos: [] | [Array<Utxo>];
122
135
  old_txid: Uint8Array | number[];
136
+ withdrawal_fee: [] | [WithdrawalFee];
123
137
  new_txid: Uint8Array | number[];
124
138
  submitted_at: bigint;
139
+ reason: [] | [ReplacedReason];
125
140
  };
126
141
  }
127
142
  | { checked_utxo_v2: { utxo: Utxo; account: Account } }
@@ -132,6 +147,12 @@ export type EventType =
132
147
  burn_block_index: bigint;
133
148
  mint_block_index: bigint;
134
149
  };
150
+ }
151
+ | {
152
+ reimbursed_withdrawal: {
153
+ burn_block_index: bigint;
154
+ mint_block_index: bigint;
155
+ };
135
156
  };
136
157
  export interface InitArgs {
137
158
  get_utxos_cache_expiration_seconds: [] | [bigint];
@@ -147,10 +168,23 @@ export interface InitArgs {
147
168
  min_confirmations: [] | [number];
148
169
  kyt_fee: [] | [bigint];
149
170
  }
171
+ export type InvalidTransactionError = {
172
+ too_many_inputs: { max_num_inputs: bigint; num_inputs: bigint };
173
+ };
150
174
  export type LogVisibility =
151
175
  | { controllers: null }
152
176
  | { public: null }
153
177
  | { allowed_viewers: Array<Principal> };
178
+ export interface MemoryMetrics {
179
+ wasm_binary_size: bigint;
180
+ wasm_chunk_store_size: bigint;
181
+ canister_history_size: bigint;
182
+ stable_memory_size: bigint;
183
+ snapshots_size: bigint;
184
+ wasm_memory_size: bigint;
185
+ global_memory_size: bigint;
186
+ custom_sections_size: bigint;
187
+ }
154
188
  export type MinterArg = { Upgrade: [] | [UpgradeArgs] } | { Init: InitArgs };
155
189
  export interface MinterInfo {
156
190
  retrieve_btc_min_amount: bigint;
@@ -187,6 +221,11 @@ export interface ReimbursementRequest {
187
221
  amount: bigint;
188
222
  reason: ReimbursementReason;
189
223
  }
224
+ export type ReplacedReason =
225
+ | {
226
+ to_cancel: { reason: WithdrawalReimbursementReason };
227
+ }
228
+ | { to_retry: null };
190
229
  export interface RetrieveBtcArgs {
191
230
  address: string;
192
231
  amount: bigint;
@@ -280,6 +319,13 @@ export type UtxoStatus =
280
319
  };
281
320
  }
282
321
  | { Checked: Utxo };
322
+ export interface WithdrawalFee {
323
+ minter_fee: bigint;
324
+ bitcoin_fee: bigint;
325
+ }
326
+ export type WithdrawalReimbursementReason = {
327
+ invalid_transaction: InvalidTransactionError;
328
+ };
283
329
  export interface _SERVICE {
284
330
  estimate_withdrawal_fee: ActorMethod<
285
331
  [{ amount: [] | [bigint] }],
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit 047925d (2025-08-06 tags: release-2025-08-07_03-33-base) 'rs/bitcoin/ckbtc/minter/ckbtc_minter.did' by import-candid
1
+ // Generated from IC repo commit bf0d4d1 (2025-09-19 tags: release-2025-09-19_10-17-base) 'rs/bitcoin/ckbtc/minter/ckbtc_minter.did' by import-candid
2
2
  // Represents an account on the ckBTC ledger.
3
3
  type Account = record { owner : principal; subaccount : opt blob };
4
4
 
@@ -11,6 +11,7 @@ type CanisterStatusResponse = record {
11
11
  module_hash : opt vec nat8;
12
12
  query_stats : QueryStats;
13
13
  reserved_cycles : nat;
14
+ memory_metrics : MemoryMetrics;
14
15
  };
15
16
 
16
17
  type QueryStats = record {
@@ -20,6 +21,17 @@ type QueryStats = record {
20
21
  request_payload_bytes_total : nat;
21
22
  };
22
23
 
24
+ type MemoryMetrics = record {
25
+ wasm_memory_size : nat;
26
+ stable_memory_size : nat;
27
+ global_memory_size : nat;
28
+ wasm_binary_size : nat;
29
+ custom_sections_size : nat;
30
+ canister_history_size : nat;
31
+ wasm_chunk_store_size : nat;
32
+ snapshots_size : nat;
33
+ };
34
+
23
35
  type CanisterStatusType = variant { stopped; stopping; running };
24
36
 
25
37
  type DefiniteCanisterSettings = record {
@@ -30,6 +42,7 @@ type DefiniteCanisterSettings = record {
30
42
  reserved_cycles_limit : nat;
31
43
  log_visibility: LogVisibility;
32
44
  wasm_memory_limit : nat;
45
+ wasm_memory_threshold : nat;
33
46
  };
34
47
 
35
48
  type LogVisibility = variant {
@@ -350,6 +363,24 @@ type ReimbursementReason = variant {
350
363
  };
351
364
  };
352
365
 
366
+ type ReplacedReason = variant {
367
+ to_retry;
368
+ to_cancel : record {
369
+ reason : WithdrawalReimbursementReason;
370
+ };
371
+ };
372
+
373
+ type WithdrawalReimbursementReason = variant {
374
+ invalid_transaction : InvalidTransactionError;
375
+ };
376
+
377
+ type InvalidTransactionError = variant {
378
+ too_many_inputs : record {
379
+ num_inputs : nat64;
380
+ max_num_inputs : nat64;
381
+ };
382
+ };
383
+
353
384
  type SuspendedReason = variant {
354
385
  // The minter ignored this UTXO because UTXO's value is too small to pay
355
386
  // the check fees.
@@ -358,6 +389,11 @@ type SuspendedReason = variant {
358
389
  Quarantined;
359
390
  };
360
391
 
392
+ type WithdrawalFee = record {
393
+ minter_fee : nat64;
394
+ bitcoin_fee : nat64;
395
+ };
396
+
361
397
  type Event = record {
362
398
  timestamp : opt nat64;
363
399
  payload : EventType;
@@ -388,13 +424,17 @@ type EventType = variant {
388
424
  change_output : opt record { vout : nat32; value : nat64 };
389
425
  submitted_at : nat64;
390
426
  fee: opt nat64;
427
+ withdrawal_fee : opt WithdrawalFee;
391
428
  };
392
429
  replaced_transaction : record {
393
430
  new_txid : blob;
394
431
  old_txid : blob;
395
432
  change_output : record { vout : nat32; value : nat64 };
396
433
  submitted_at : nat64;
397
- fee: nat64;
434
+ fee : nat64;
435
+ withdrawal_fee : opt WithdrawalFee;
436
+ reason : opt ReplacedReason;
437
+ new_utxos : opt vec Utxo;
398
438
  };
399
439
  confirmed_transaction : record { txid : blob };
400
440
  checked_utxo : record {
@@ -428,6 +468,19 @@ type EventType = variant {
428
468
  reason : ReimbursementReason;
429
469
  };
430
470
  reimbursed_failed_deposit : record { burn_block_index : nat64; mint_block_index : nat64 };
471
+ schedule_withdrawal_reimbursement : record {
472
+ account : Account;
473
+ burn_block_index : nat64;
474
+ amount : nat64;
475
+ reason : WithdrawalReimbursementReason;
476
+ };
477
+ quarantined_withdrawal_reimbursement : record {
478
+ burn_block_index : nat64;
479
+ };
480
+ reimbursed_withdrawal : record {
481
+ burn_block_index : nat64;
482
+ mint_block_index : nat64;
483
+ };
431
484
  };
432
485
 
433
486
  type MinterArg = variant {
@@ -1,2 +1,2 @@
1
- import type { IDL } from "@dfinity/candid";
1
+ import type { IDL } from "@icp-sdk/core/candid";
2
2
  export const idlFactory: IDL.InterfaceFactory;
@@ -40,6 +40,16 @@ export const idlFactory = ({ IDL }) => {
40
40
  'Upgrade' : IDL.Opt(UpgradeArgs),
41
41
  'Init' : InitArgs,
42
42
  });
43
+ const MemoryMetrics = IDL.Record({
44
+ 'wasm_binary_size' : IDL.Nat,
45
+ 'wasm_chunk_store_size' : IDL.Nat,
46
+ 'canister_history_size' : IDL.Nat,
47
+ 'stable_memory_size' : IDL.Nat,
48
+ 'snapshots_size' : IDL.Nat,
49
+ 'wasm_memory_size' : IDL.Nat,
50
+ 'global_memory_size' : IDL.Nat,
51
+ 'custom_sections_size' : IDL.Nat,
52
+ });
43
53
  const CanisterStatusType = IDL.Variant({
44
54
  'stopped' : IDL.Null,
45
55
  'stopping' : IDL.Null,
@@ -52,6 +62,7 @@ export const idlFactory = ({ IDL }) => {
52
62
  });
53
63
  const DefiniteCanisterSettings = IDL.Record({
54
64
  'freezing_threshold' : IDL.Nat,
65
+ 'wasm_memory_threshold' : IDL.Nat,
55
66
  'controllers' : IDL.Vec(IDL.Principal),
56
67
  'reserved_cycles_limit' : IDL.Nat,
57
68
  'log_visibility' : LogVisibility,
@@ -66,6 +77,7 @@ export const idlFactory = ({ IDL }) => {
66
77
  'request_payload_bytes_total' : IDL.Nat,
67
78
  });
68
79
  const CanisterStatusResponse = IDL.Record({
80
+ 'memory_metrics' : MemoryMetrics,
69
81
  'status' : CanisterStatusType,
70
82
  'memory_size' : IDL.Nat,
71
83
  'cycles' : IDL.Nat,
@@ -91,6 +103,10 @@ export const idlFactory = ({ IDL }) => {
91
103
  'kyt_provider' : IDL.Principal,
92
104
  }),
93
105
  });
106
+ const WithdrawalFee = IDL.Record({
107
+ 'minter_fee' : IDL.Nat64,
108
+ 'bitcoin_fee' : IDL.Nat64,
109
+ });
94
110
  const SuspendedReason = IDL.Variant({
95
111
  'ValueTooSmall' : IDL.Null,
96
112
  'Quarantined' : IDL.Null,
@@ -102,6 +118,19 @@ export const idlFactory = ({ IDL }) => {
102
118
  'p2wpkh_v0' : IDL.Vec(IDL.Nat8),
103
119
  'p2pkh' : IDL.Vec(IDL.Nat8),
104
120
  });
121
+ const InvalidTransactionError = IDL.Variant({
122
+ 'too_many_inputs' : IDL.Record({
123
+ 'max_num_inputs' : IDL.Nat64,
124
+ 'num_inputs' : IDL.Nat64,
125
+ }),
126
+ });
127
+ const WithdrawalReimbursementReason = IDL.Variant({
128
+ 'invalid_transaction' : InvalidTransactionError,
129
+ });
130
+ const ReplacedReason = IDL.Variant({
131
+ 'to_cancel' : IDL.Record({ 'reason' : WithdrawalReimbursementReason }),
132
+ 'to_retry' : IDL.Null,
133
+ });
105
134
  const EventType = IDL.Variant({
106
135
  'received_utxos' : IDL.Record({
107
136
  'to_account' : Account,
@@ -120,6 +149,7 @@ export const idlFactory = ({ IDL }) => {
120
149
  IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 })
121
150
  ),
122
151
  'txid' : IDL.Vec(IDL.Nat8),
152
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
123
153
  'utxos' : IDL.Vec(Utxo),
124
154
  'requests' : IDL.Vec(IDL.Nat64),
125
155
  'submitted_at' : IDL.Nat64,
@@ -158,14 +188,26 @@ export const idlFactory = ({ IDL }) => {
158
188
  'uuid' : IDL.Text,
159
189
  'kyt_provider' : IDL.Opt(IDL.Principal),
160
190
  }),
191
+ 'schedule_withdrawal_reimbursement' : IDL.Record({
192
+ 'burn_block_index' : IDL.Nat64,
193
+ 'account' : Account,
194
+ 'amount' : IDL.Nat64,
195
+ 'reason' : WithdrawalReimbursementReason,
196
+ }),
197
+ 'quarantined_withdrawal_reimbursement' : IDL.Record({
198
+ 'burn_block_index' : IDL.Nat64,
199
+ }),
161
200
  'removed_retrieve_btc_request' : IDL.Record({ 'block_index' : IDL.Nat64 }),
162
201
  'confirmed_transaction' : IDL.Record({ 'txid' : IDL.Vec(IDL.Nat8) }),
163
202
  'replaced_transaction' : IDL.Record({
164
203
  'fee' : IDL.Nat64,
165
204
  'change_output' : IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 }),
205
+ 'new_utxos' : IDL.Opt(IDL.Vec(Utxo)),
166
206
  'old_txid' : IDL.Vec(IDL.Nat8),
207
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
167
208
  'new_txid' : IDL.Vec(IDL.Nat8),
168
209
  'submitted_at' : IDL.Nat64,
210
+ 'reason' : IDL.Opt(ReplacedReason),
169
211
  }),
170
212
  'checked_utxo_v2' : IDL.Record({ 'utxo' : Utxo, 'account' : Account }),
171
213
  'ignored_utxo' : IDL.Record({ 'utxo' : Utxo }),
@@ -177,6 +219,10 @@ export const idlFactory = ({ IDL }) => {
177
219
  'burn_block_index' : IDL.Nat64,
178
220
  'mint_block_index' : IDL.Nat64,
179
221
  }),
222
+ 'reimbursed_withdrawal' : IDL.Record({
223
+ 'burn_block_index' : IDL.Nat64,
224
+ 'mint_block_index' : IDL.Nat64,
225
+ }),
180
226
  });
181
227
  const Event = IDL.Record({
182
228
  'timestamp' : IDL.Opt(IDL.Nat64),
@@ -1,4 +1,4 @@
1
- "use strict";var Kt=Object.create;var j=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Jt=Object.getOwnPropertyNames;var Yt=Object.getPrototypeOf,Zt=Object.prototype.hasOwnProperty;var It=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Lt=(t,e)=>{for(var r in e)j(t,r,{get:e[r],enumerable:!0})},Tt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Jt(e))!Zt.call(t,o)&&o!==r&&j(t,o,{get:()=>e[o],enumerable:!(n=Xt(e,o))||n.enumerable});return t};var Dt=(t,e,r)=>(r=t!=null?Kt(Yt(t)):{},Tt(e||!t||!t.__esModule?j(r,"default",{value:t,enumerable:!0}):r,t)),te=t=>Tt(j({},"__esModule",{value:!0}),t);var jt=It(S=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0});S.bech32m=S.bech32=void 0;var it="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Qt={};for(let t=0;t<it.length;t++){let e=it.charAt(t);Qt[e]=t}function E(t){let e=t>>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function zt(t){let e=1;for(let r=0;r<t.length;++r){let n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=E(e)^n>>5}e=E(e);for(let r=0;r<t.length;++r){let n=t.charCodeAt(r);e=E(e)^n&31}return e}function Pt(t,e,r,n){let o=0,i=0,c=(1<<r)-1,s=[];for(let l=0;l<t.length;++l)for(o=o<<e|t[l],i+=e;i>=r;)i-=r,s.push(o>>i&c);if(n)i>0&&s.push(o<<r-i&c);else{if(i>=e)return"Excess padding";if(o<<r-i&c)return"Non-zero padding"}return s}function se(t){return Pt(t,8,5,!0)}function le(t){let e=Pt(t,5,8,!1);if(Array.isArray(e))return e}function ue(t){let e=Pt(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}function $t(t){let e;t==="bech32"?e=1:e=734539939;function r(c,s,l){if(l=l||90,c.length+7+s.length>l)throw new TypeError("Exceeds length limit");c=c.toLowerCase();let _=zt(c);if(typeof _=="string")throw new Error(_);let d=c+"1";for(let a=0;a<s.length;++a){let u=s[a];if(u>>5!==0)throw new Error("Non 5-bit word");_=E(_)^u,d+=it.charAt(u)}for(let a=0;a<6;++a)_=E(_);_^=e;for(let a=0;a<6;++a){let u=_>>(5-a)*5&31;d+=it.charAt(u)}return d}function n(c,s){if(s=s||90,c.length<8)return c+" too short";if(c.length>s)return"Exceeds length limit";let l=c.toLowerCase(),_=c.toUpperCase();if(c!==l&&c!==_)return"Mixed-case string "+c;c=l;let d=c.lastIndexOf("1");if(d===-1)return"No separator character for "+c;if(d===0)return"Missing prefix for "+c;let a=c.slice(0,d),u=c.slice(d+1);if(u.length<6)return"Data too short";let p=zt(a);if(typeof p=="string")return p;let f=[];for(let x=0;x<u.length;++x){let m=u.charAt(x),b=Qt[m];if(b===void 0)return"Unknown character "+m;p=E(p)^b,!(x+6>=u.length)&&f.push(b)}return p!==e?"Invalid checksum for "+c:{prefix:a,words:f}}function o(c,s){let l=n(c,s);if(typeof l=="object")return l}function i(c,s){let l=n(c,s);if(typeof l=="object")return l;throw new Error(l)}return{decodeUnsafe:o,decode:i,encode:r,toWords:se,fromWordsUnsafe:le,fromWords:ue}}S.bech32=$t("bech32");S.bech32m=$t("bech32m")});var Ne={};Lt(Ne,{BitcoinCanister:()=>K,BtcAddressType:()=>yt,BtcNetwork:()=>gt,CkBTCMinterCanister:()=>rt,MinterAlreadyProcessingError:()=>Y,MinterAmountTooLowError:()=>L,MinterGenericError:()=>k,MinterInsufficientAllowanceError:()=>tt,MinterInsufficientFundsError:()=>D,MinterMalformedAddressError:()=>I,MinterNoNewUtxosError:()=>Z,MinterRetrieveBtcError:()=>O,MinterTemporaryUnavailableError:()=>J,MinterUpdateBalanceError:()=>z,ParseBtcAddressBadWitnessLengthError:()=>q,ParseBtcAddressError:()=>N,ParseBtcAddressInvalidError:()=>U,ParseBtcAddressMalformedAddressError:()=>B,ParseBtcAddressNoDataError:()=>H,ParseBtcAddressUnexpectedHumanReadablePartError:()=>W,ParseBtcAddressUnsupportedAddressTypeError:()=>T,ParseBtcAddressUnsupportedWitnessVersionError:()=>G,ParseBtcAddressWrongNetworkError:()=>M,createRetrieveBtcError:()=>et,createRetrieveBtcWithApprovalError:()=>kt,createUpdateBalanceError:()=>Rt,parseBtcAddress:()=>me,toGetBalanceParams:()=>Nt,toGetUtxosParams:()=>mt});module.exports=te(Ne);var X=require("@dfinity/utils");var Ft=({IDL:t})=>{let e=t.Variant({disabled:t.Null,enabled:t.Null}),r=t.Record({get_current_fee_percentiles:t.Nat,get_utxos_maximum:t.Nat,get_block_headers_cycles_per_ten_instructions:t.Nat,get_current_fee_percentiles_maximum:t.Nat,send_transaction_per_byte:t.Nat,get_balance:t.Nat,get_utxos_cycles_per_ten_instructions:t.Nat,get_block_headers_base:t.Nat,get_utxos_base:t.Nat,get_balance_maximum:t.Nat,send_transaction_base:t.Nat,get_block_headers_maximum:t.Nat}),n=t.Variant({mainnet:t.Null,regtest:t.Null,testnet:t.Null}),o=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),blocks_source:t.Opt(t.Principal),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),network:t.Opt(n),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)}),i=t.Text,c=t.Record({network:n,address:i,min_confirmations:t.Opt(t.Nat32)}),s=t.Nat64,l=t.Nat32,_=t.Record({start_height:l,end_height:t.Opt(l),network:n}),d=t.Vec(t.Nat8),a=t.Record({tip_height:l,block_headers:t.Vec(d)}),u=t.Record({network:n}),p=t.Nat64,f=t.Record({network:n,filter:t.Opt(t.Variant({page:t.Vec(t.Nat8),min_confirmations:t.Nat32})),address:i}),x=t.Vec(t.Nat8),m=t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32}),b=t.Record({height:l,value:s,outpoint:m}),y=t.Record({next_page:t.Opt(t.Vec(t.Nat8)),tip_height:l,tip_block_hash:x,utxos:t.Vec(b)}),V=t.Record({transaction:t.Vec(t.Nat8),network:n}),w=t.Record({api_access:e,lazily_evaluate_fee_percentiles:e,blocks_source:t.Principal,fees:r,watchdog_canister:t.Opt(t.Principal),network:n,stability_threshold:t.Nat,syncing:e,burn_cycles:e,disable_api_if_not_fully_synced:e}),A=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)});return t.Service({bitcoin_get_balance:t.Func([c],[s],[]),bitcoin_get_balance_query:t.Func([c],[s],[]),bitcoin_get_block_headers:t.Func([_],[a],[]),bitcoin_get_current_fee_percentiles:t.Func([u],[t.Vec(p)],[]),bitcoin_get_utxos:t.Func([f],[y],[]),bitcoin_get_utxos_query:t.Func([f],[y],[]),bitcoin_send_transaction:t.Func([V],[],[]),get_config:t.Func([],[w],[]),set_config:t.Func([A],[],[])})};var Et=({IDL:t})=>{let e=t.Variant({disabled:t.Null,enabled:t.Null}),r=t.Record({get_current_fee_percentiles:t.Nat,get_utxos_maximum:t.Nat,get_block_headers_cycles_per_ten_instructions:t.Nat,get_current_fee_percentiles_maximum:t.Nat,send_transaction_per_byte:t.Nat,get_balance:t.Nat,get_utxos_cycles_per_ten_instructions:t.Nat,get_block_headers_base:t.Nat,get_utxos_base:t.Nat,get_balance_maximum:t.Nat,send_transaction_base:t.Nat,get_block_headers_maximum:t.Nat}),n=t.Variant({mainnet:t.Null,regtest:t.Null,testnet:t.Null}),o=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),blocks_source:t.Opt(t.Principal),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),network:t.Opt(n),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)}),i=t.Text,c=t.Record({network:n,address:i,min_confirmations:t.Opt(t.Nat32)}),s=t.Nat64,l=t.Nat32,_=t.Record({start_height:l,end_height:t.Opt(l),network:n}),d=t.Vec(t.Nat8),a=t.Record({tip_height:l,block_headers:t.Vec(d)}),u=t.Record({network:n}),p=t.Nat64,f=t.Record({network:n,filter:t.Opt(t.Variant({page:t.Vec(t.Nat8),min_confirmations:t.Nat32})),address:i}),x=t.Vec(t.Nat8),m=t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32}),b=t.Record({height:l,value:s,outpoint:m}),y=t.Record({next_page:t.Opt(t.Vec(t.Nat8)),tip_height:l,tip_block_hash:x,utxos:t.Vec(b)}),V=t.Record({transaction:t.Vec(t.Nat8),network:n}),w=t.Record({api_access:e,lazily_evaluate_fee_percentiles:e,blocks_source:t.Principal,fees:r,watchdog_canister:t.Opt(t.Principal),network:n,stability_threshold:t.Nat,syncing:e,burn_cycles:e,disable_api_if_not_fully_synced:e}),A=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)});return t.Service({bitcoin_get_balance:t.Func([c],[s],[]),bitcoin_get_balance_query:t.Func([c],[s],["query"]),bitcoin_get_block_headers:t.Func([_],[a],[]),bitcoin_get_current_fee_percentiles:t.Func([u],[t.Vec(p)],[]),bitcoin_get_utxos:t.Func([f],[y],[]),bitcoin_get_utxos_query:t.Func([f],[y],["query"]),bitcoin_send_transaction:t.Func([V],[],[]),get_config:t.Func([],[w],["query"]),set_config:t.Func([A],[],[])})};var P=require("@dfinity/utils"),ee={mainnet:{mainnet:null},testnet:{testnet:null},regtest:{regtest:null}},mt=({network:t,filter:e,...r})=>({filter:(0,P.nonNullish)(e)?(0,P.toNullable)("minConfirmations"in e?{min_confirmations:e.minConfirmations}:{page:e.page}):(0,P.toNullable)(),network:t==="testnet"?{testnet:null}:{mainnet:null},...r}),Nt=({network:t,minConfirmations:e,...r})=>({min_confirmations:(0,P.toNullable)(e),network:ee[t],...r});var K=class t extends X.Canister{static create(e){let{service:r,certifiedService:n,canisterId:o}=(0,X.createServices)({options:e,idlFactory:Et,certifiedIdlFactory:Ft});return new t(o,r,n)}getUtxosQuery=({...e})=>{let{bitcoin_get_utxos_query:r}=this.caller({certified:!1});return r(mt(e))};getBalanceQuery=({...e})=>{let{bitcoin_get_balance_query:r}=this.caller({certified:!1});return r(Nt(e))}};var gt=(n=>(n[n.Mainnet=0]="Mainnet",n[n.Regtest=1]="Regtest",n[n.Testnet=2]="Testnet",n))(gt||{}),yt=(i=>(i[i.P2wpkhV0=0]="P2wpkhV0",i[i.P2pkh=1]="P2pkh",i[i.P2sh=2]="P2sh",i[i.P2wsh=3]="P2wsh",i[i.P2tr=4]="P2tr",i))(yt||{});var N=class extends Error{},U=class extends N{},H=class extends N{},T=class extends N{},q=class extends N{},G=class extends N{},W=class extends N{},B=class extends N{},M=class extends N{};var F=require("@dfinity/utils"),k=class extends Error{},J=class extends k{},Y=class extends k{},z=class extends k{},Z=class extends z{pendingUtxos;requiredConfirmations;constructor({pending_utxos:e,required_confirmations:r}){super(),this.pendingUtxos=(0,F.fromNullable)(e)??[],this.requiredConfirmations=r}},O=class extends k{},I=class extends O{},L=class extends O{},D=class extends O{},tt=class extends O{},wt=t=>{if("GenericError"in t){let{GenericError:{error_message:e,error_code:r}}=t;return new k(`${e} (${r})`)}if("TemporarilyUnavailable"in t)return new J(t.TemporarilyUnavailable);if("AlreadyProcessing"in t)return new Y},Rt=t=>{let e=wt(t);return(0,F.nonNullish)(e)?e:"NoNewUtxos"in t?new Z(t.NoNewUtxos):new z(`Unsupported response type in minter.updateBalance ${JSON.stringify(t)}`)},et=t=>{let e=wt(t);return(0,F.nonNullish)(e)?e:"MalformedAddress"in t?new I(t.MalformedAddress):"AmountTooLow"in t?new L(`${t.AmountTooLow}`):"InsufficientFunds"in t?new D(`${t.InsufficientFunds.balance}`):new O(`Unsupported response type in minter.retrieveBtc ${JSON.stringify(t)}`)},kt=t=>{let e=wt(t);return(0,F.nonNullish)(e)?e:"InsufficientAllowance"in t?new tt(`${t.InsufficientAllowance.allowance}`):et(t)};var h=require("@dfinity/utils");var St=({IDL:t})=>{let e=t.Variant({RestrictedTo:t.Vec(t.Principal),DepositsRestrictedTo:t.Vec(t.Principal),ReadOnly:t.Null,GeneralAvailability:t.Null}),r=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),mode:t.Opt(e),retrieve_btc_min_amount:t.Opt(t.Nat64),max_time_in_queue_nanos:t.Opt(t.Nat64),check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),n=t.Variant({Mainnet:t.Null,Regtest:t.Null,Testnet:t.Null}),o=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),ecdsa_key_name:t.Text,mode:e,retrieve_btc_min_amount:t.Nat64,ledger_id:t.Principal,max_time_in_queue_nanos:t.Nat64,btc_network:n,check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),i=t.Variant({Upgrade:t.Opt(r),Init:o}),c=t.Variant({stopped:t.Null,stopping:t.Null,running:t.Null}),s=t.Variant({controllers:t.Null,public:t.Null,allowed_viewers:t.Vec(t.Principal)}),l=t.Record({freezing_threshold:t.Nat,controllers:t.Vec(t.Principal),reserved_cycles_limit:t.Nat,log_visibility:s,wasm_memory_limit:t.Nat,memory_allocation:t.Nat,compute_allocation:t.Nat}),_=t.Record({response_payload_bytes_total:t.Nat,num_instructions_total:t.Nat,num_calls_total:t.Nat,request_payload_bytes_total:t.Nat}),d=t.Record({status:c,memory_size:t.Nat,cycles:t.Nat,settings:l,query_stats:_,idle_cycles_burned_per_day:t.Nat,module_hash:t.Opt(t.Vec(t.Nat8)),reserved_cycles:t.Nat}),a=t.Record({owner:t.Principal,subaccount:t.Opt(t.Vec(t.Nat8))}),u=t.Record({height:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),p=t.Variant({CallFailed:t.Null,TaintedDestination:t.Record({kyt_fee:t.Nat64,kyt_provider:t.Principal})}),f=t.Variant({ValueTooSmall:t.Null,Quarantined:t.Null}),x=t.Variant({p2wsh_v0:t.Vec(t.Nat8),p2tr_v1:t.Vec(t.Nat8),p2sh:t.Vec(t.Nat8),p2wpkh_v0:t.Vec(t.Nat8),p2pkh:t.Vec(t.Nat8)}),m=t.Variant({received_utxos:t.Record({to_account:a,mint_txid:t.Opt(t.Nat64),utxos:t.Vec(u)}),schedule_deposit_reimbursement:t.Record({burn_block_index:t.Nat64,account:a,amount:t.Nat64,reason:p}),sent_transaction:t.Record({fee:t.Opt(t.Nat64),change_output:t.Opt(t.Record({value:t.Nat64,vout:t.Nat32})),txid:t.Vec(t.Nat8),utxos:t.Vec(u),requests:t.Vec(t.Nat64),submitted_at:t.Nat64}),distributed_kyt_fee:t.Record({block_index:t.Nat64,amount:t.Nat64,kyt_provider:t.Principal}),init:o,upgrade:r,retrieve_btc_kyt_failed:t.Record({block_index:t.Nat64,owner:t.Principal,uuid:t.Text,address:t.Text,amount:t.Nat64,kyt_provider:t.Principal}),suspended_utxo:t.Record({utxo:u,account:a,reason:f}),accepted_retrieve_btc_request:t.Record({received_at:t.Nat64,block_index:t.Nat64,address:x,reimbursement_account:t.Opt(a),amount:t.Nat64,kyt_provider:t.Opt(t.Principal)}),checked_utxo:t.Record({clean:t.Bool,utxo:u,uuid:t.Text,kyt_provider:t.Opt(t.Principal)}),removed_retrieve_btc_request:t.Record({block_index:t.Nat64}),confirmed_transaction:t.Record({txid:t.Vec(t.Nat8)}),replaced_transaction:t.Record({fee:t.Nat64,change_output:t.Record({value:t.Nat64,vout:t.Nat32}),old_txid:t.Vec(t.Nat8),new_txid:t.Vec(t.Nat8),submitted_at:t.Nat64}),checked_utxo_v2:t.Record({utxo:u,account:a}),ignored_utxo:t.Record({utxo:u}),checked_utxo_mint_unknown:t.Record({utxo:u,account:a}),reimbursed_failed_deposit:t.Record({burn_block_index:t.Nat64,mint_block_index:t.Nat64})}),b=t.Record({timestamp:t.Opt(t.Nat64),payload:m}),y=t.Record({retrieve_btc_min_amount:t.Nat64,min_confirmations:t.Nat32,kyt_fee:t.Nat64}),V=t.Record({address:t.Text,amount:t.Nat64}),w=t.Record({block_index:t.Nat64}),A=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),st=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Pending:t.Null}),lt=t.Record({account:a,amount:t.Nat64,reason:p}),ut=t.Record({account:a,mint_block_index:t.Nat64,amount:t.Nat64,reason:p}),C=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,WillReimburse:lt,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Reimbursed:ut,Pending:t.Null}),dt=t.Record({from_subaccount:t.Opt(t.Vec(t.Nat8)),address:t.Text,amount:t.Nat64}),_t=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,InsufficientAllowance:t.Record({allowance:t.Nat64}),AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),pt=t.Variant({ValueTooSmall:u,Tainted:u,Minted:t.Record({minted_amount:t.Nat64,block_index:t.Nat64,utxo:u}),Checked:u}),ft=t.Nat64,xt=t.Record({utxo:u,earliest_retry:ft,reason:f}),ht=t.Record({confirmations:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),bt=t.Variant({GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,NoNewUtxos:t.Record({suspended_utxos:t.Opt(t.Vec(xt)),required_confirmations:t.Nat32,pending_utxos:t.Opt(t.Vec(ht)),current_confirmations:t.Opt(t.Nat32)})});return t.Service({estimate_withdrawal_fee:t.Func([t.Record({amount:t.Opt(t.Nat64)})],[t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64})],[]),get_btc_address:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Text],[]),get_canister_status:t.Func([],[d],[]),get_deposit_fee:t.Func([],[t.Nat64],[]),get_events:t.Func([t.Record({start:t.Nat64,length:t.Nat64})],[t.Vec(b)],[]),get_known_utxos:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Vec(u)],[]),get_minter_info:t.Func([],[y],[]),get_withdrawal_account:t.Func([],[a],[]),retrieve_btc:t.Func([V],[t.Variant({Ok:w,Err:A})],[]),retrieve_btc_status:t.Func([t.Record({block_index:t.Nat64})],[st],[]),retrieve_btc_status_v2:t.Func([t.Record({block_index:t.Nat64})],[C],[]),retrieve_btc_status_v2_by_account:t.Func([t.Opt(a)],[t.Vec(t.Record({block_index:t.Nat64,status_v2:t.Opt(C)}))],[]),retrieve_btc_with_approval:t.Func([dt],[t.Variant({Ok:w,Err:_t})],[]),update_balance:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Variant({Ok:t.Vec(pt),Err:bt})],[])})};var Ct=({IDL:t})=>{let e=t.Variant({RestrictedTo:t.Vec(t.Principal),DepositsRestrictedTo:t.Vec(t.Principal),ReadOnly:t.Null,GeneralAvailability:t.Null}),r=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),mode:t.Opt(e),retrieve_btc_min_amount:t.Opt(t.Nat64),max_time_in_queue_nanos:t.Opt(t.Nat64),check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),n=t.Variant({Mainnet:t.Null,Regtest:t.Null,Testnet:t.Null}),o=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),ecdsa_key_name:t.Text,mode:e,retrieve_btc_min_amount:t.Nat64,ledger_id:t.Principal,max_time_in_queue_nanos:t.Nat64,btc_network:n,check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),i=t.Variant({Upgrade:t.Opt(r),Init:o}),c=t.Variant({stopped:t.Null,stopping:t.Null,running:t.Null}),s=t.Variant({controllers:t.Null,public:t.Null,allowed_viewers:t.Vec(t.Principal)}),l=t.Record({freezing_threshold:t.Nat,controllers:t.Vec(t.Principal),reserved_cycles_limit:t.Nat,log_visibility:s,wasm_memory_limit:t.Nat,memory_allocation:t.Nat,compute_allocation:t.Nat}),_=t.Record({response_payload_bytes_total:t.Nat,num_instructions_total:t.Nat,num_calls_total:t.Nat,request_payload_bytes_total:t.Nat}),d=t.Record({status:c,memory_size:t.Nat,cycles:t.Nat,settings:l,query_stats:_,idle_cycles_burned_per_day:t.Nat,module_hash:t.Opt(t.Vec(t.Nat8)),reserved_cycles:t.Nat}),a=t.Record({owner:t.Principal,subaccount:t.Opt(t.Vec(t.Nat8))}),u=t.Record({height:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),p=t.Variant({CallFailed:t.Null,TaintedDestination:t.Record({kyt_fee:t.Nat64,kyt_provider:t.Principal})}),f=t.Variant({ValueTooSmall:t.Null,Quarantined:t.Null}),x=t.Variant({p2wsh_v0:t.Vec(t.Nat8),p2tr_v1:t.Vec(t.Nat8),p2sh:t.Vec(t.Nat8),p2wpkh_v0:t.Vec(t.Nat8),p2pkh:t.Vec(t.Nat8)}),m=t.Variant({received_utxos:t.Record({to_account:a,mint_txid:t.Opt(t.Nat64),utxos:t.Vec(u)}),schedule_deposit_reimbursement:t.Record({burn_block_index:t.Nat64,account:a,amount:t.Nat64,reason:p}),sent_transaction:t.Record({fee:t.Opt(t.Nat64),change_output:t.Opt(t.Record({value:t.Nat64,vout:t.Nat32})),txid:t.Vec(t.Nat8),utxos:t.Vec(u),requests:t.Vec(t.Nat64),submitted_at:t.Nat64}),distributed_kyt_fee:t.Record({block_index:t.Nat64,amount:t.Nat64,kyt_provider:t.Principal}),init:o,upgrade:r,retrieve_btc_kyt_failed:t.Record({block_index:t.Nat64,owner:t.Principal,uuid:t.Text,address:t.Text,amount:t.Nat64,kyt_provider:t.Principal}),suspended_utxo:t.Record({utxo:u,account:a,reason:f}),accepted_retrieve_btc_request:t.Record({received_at:t.Nat64,block_index:t.Nat64,address:x,reimbursement_account:t.Opt(a),amount:t.Nat64,kyt_provider:t.Opt(t.Principal)}),checked_utxo:t.Record({clean:t.Bool,utxo:u,uuid:t.Text,kyt_provider:t.Opt(t.Principal)}),removed_retrieve_btc_request:t.Record({block_index:t.Nat64}),confirmed_transaction:t.Record({txid:t.Vec(t.Nat8)}),replaced_transaction:t.Record({fee:t.Nat64,change_output:t.Record({value:t.Nat64,vout:t.Nat32}),old_txid:t.Vec(t.Nat8),new_txid:t.Vec(t.Nat8),submitted_at:t.Nat64}),checked_utxo_v2:t.Record({utxo:u,account:a}),ignored_utxo:t.Record({utxo:u}),checked_utxo_mint_unknown:t.Record({utxo:u,account:a}),reimbursed_failed_deposit:t.Record({burn_block_index:t.Nat64,mint_block_index:t.Nat64})}),b=t.Record({timestamp:t.Opt(t.Nat64),payload:m}),y=t.Record({retrieve_btc_min_amount:t.Nat64,min_confirmations:t.Nat32,kyt_fee:t.Nat64}),V=t.Record({address:t.Text,amount:t.Nat64}),w=t.Record({block_index:t.Nat64}),A=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),st=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Pending:t.Null}),lt=t.Record({account:a,amount:t.Nat64,reason:p}),ut=t.Record({account:a,mint_block_index:t.Nat64,amount:t.Nat64,reason:p}),C=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,WillReimburse:lt,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Reimbursed:ut,Pending:t.Null}),dt=t.Record({from_subaccount:t.Opt(t.Vec(t.Nat8)),address:t.Text,amount:t.Nat64}),_t=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,InsufficientAllowance:t.Record({allowance:t.Nat64}),AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),pt=t.Variant({ValueTooSmall:u,Tainted:u,Minted:t.Record({minted_amount:t.Nat64,block_index:t.Nat64,utxo:u}),Checked:u}),ft=t.Nat64,xt=t.Record({utxo:u,earliest_retry:ft,reason:f}),ht=t.Record({confirmations:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),bt=t.Variant({GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,NoNewUtxos:t.Record({suspended_utxos:t.Opt(t.Vec(xt)),required_confirmations:t.Nat32,pending_utxos:t.Opt(t.Vec(ht)),current_confirmations:t.Opt(t.Nat32)})});return t.Service({estimate_withdrawal_fee:t.Func([t.Record({amount:t.Opt(t.Nat64)})],[t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64})],["query"]),get_btc_address:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Text],[]),get_canister_status:t.Func([],[d],[]),get_deposit_fee:t.Func([],[t.Nat64],["query"]),get_events:t.Func([t.Record({start:t.Nat64,length:t.Nat64})],[t.Vec(b)],["query"]),get_known_utxos:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Vec(u)],["query"]),get_minter_info:t.Func([],[y],["query"]),get_withdrawal_account:t.Func([],[a],[]),retrieve_btc:t.Func([V],[t.Variant({Ok:w,Err:A})],[]),retrieve_btc_status:t.Func([t.Record({block_index:t.Nat64})],[st],["query"]),retrieve_btc_status_v2:t.Func([t.Record({block_index:t.Nat64})],[C],["query"]),retrieve_btc_status_v2_by_account:t.Func([t.Opt(a)],[t.Vec(t.Record({block_index:t.Nat64,status_v2:t.Opt(C)}))],["query"]),retrieve_btc_with_approval:t.Func([dt],[t.Variant({Ok:w,Err:_t})],[]),update_balance:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Variant({Ok:t.Vec(pt),Err:bt})],[])})};var rt=class t extends h.Canister{static create(e){let{service:r,certifiedService:n,canisterId:o}=(0,h.createServices)({options:e,idlFactory:Ct,certifiedIdlFactory:St});return new t(o,r,n)}getBtcAddress=({owner:e,subaccount:r})=>this.caller({certified:!0}).get_btc_address({owner:(0,h.toNullable)(e),subaccount:(0,h.toNullable)(r)});updateBalance=async({owner:e,subaccount:r})=>{let n=await this.caller({certified:!0}).update_balance({owner:(0,h.toNullable)(e),subaccount:(0,h.toNullable)(r)});if("Err"in n)throw Rt(n.Err);return n.Ok};getWithdrawalAccount=()=>this.caller({certified:!0}).get_withdrawal_account();retrieveBtc=async e=>{let r=await this.caller({certified:!0}).retrieve_btc(e);if("Err"in r)throw et(r.Err);return r.Ok};retrieveBtcWithApproval=async({address:e,amount:r,fromSubaccount:n})=>{let o=await this.caller({certified:!0}).retrieve_btc_with_approval({address:e,amount:r,from_subaccount:(0,h.toNullable)(n)});if("Err"in o)throw kt(o.Err);return o.Ok};retrieveBtcStatus=({transactionId:e,certified:r})=>this.caller({certified:r}).retrieve_btc_status({block_index:e});retrieveBtcStatusV2ByAccount=async({account:e,certified:r})=>{let{retrieve_btc_status_v2_by_account:n}=this.caller({certified:r});return(await n((0,h.isNullish)(e)?[]:[{owner:e.owner,subaccount:(0,h.toNullable)(e.subaccount)}])).map(({block_index:i,status_v2:c})=>({id:i,status:(0,h.fromNullable)(c)}))};estimateWithdrawalFee=({certified:e,amount:r})=>this.caller({certified:e}).estimate_withdrawal_fee({amount:(0,h.toNullable)(r)});getMinterInfo=({certified:e})=>this.caller({certified:e}).get_minter_info();getKnownUtxos=({owner:e,subaccount:r,certified:n})=>{let{get_known_utxos:o}=this.caller({certified:n});return o({owner:(0,h.toNullable)(e),subaccount:(0,h.toNullable)(r)})}};var Ut=require("@dfinity/utils");function re(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function ot(t,...e){if(!re(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Ot(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Ht(t,e){ot(t);let r=e.outputLen;if(t.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Q(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function ct(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function g(t,e){return t<<32-e|t>>>e}function ne(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function vt(t){return typeof t=="string"&&(t=ne(t)),ot(t),t}var nt=class{};function qt(t){let e=n=>t().update(vt(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function oe(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let o=BigInt(32),i=BigInt(4294967295),c=Number(r>>o&i),s=Number(r&i),l=n?4:0,_=n?0:4;t.setUint32(e+l,c,n),t.setUint32(e+_,s,n)}function Gt(t,e,r){return t&e^~t&r}function Wt(t,e,r){return t&e^t&r^e&r}var at=class extends nt{constructor(e,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=ct(this.buffer)}update(e){Ot(this),e=vt(e),ot(e);let{view:r,buffer:n,blockLen:o}=this,i=e.length;for(let c=0;c<i;){let s=Math.min(o-this.pos,i-c);if(s===o){let l=ct(e);for(;o<=i-c;c+=o)this.process(l,c);continue}n.set(e.subarray(c,c+s),this.pos),this.pos+=s,c+=s,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ot(this),Ht(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:i}=this,{pos:c}=this;r[c++]=128,Q(this.buffer.subarray(c)),this.padOffset>o-c&&(this.process(n,0),c=0);for(let a=c;a<o;a++)r[a]=0;oe(n,o-8,BigInt(this.length*8),i),this.process(n,0);let s=ct(e),l=this.outputLen;if(l%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let _=l/4,d=this.get();if(_>d.length)throw new Error("_sha2: outputLen bigger than state");for(let a=0;a<_;a++)s.setUint32(4*a,d[a],i)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:i,destroyed:c,pos:s}=this;return e.destroyed=c,e.finished=i,e.length=o,e.pos=s,o%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}},R=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var ce=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),v=new Uint32Array(64),Vt=class extends at{constructor(e=32){super(64,e,8,!1),this.A=R[0]|0,this.B=R[1]|0,this.C=R[2]|0,this.D=R[3]|0,this.E=R[4]|0,this.F=R[5]|0,this.G=R[6]|0,this.H=R[7]|0}get(){let{A:e,B:r,C:n,D:o,E:i,F:c,G:s,H:l}=this;return[e,r,n,o,i,c,s,l]}set(e,r,n,o,i,c,s,l){this.A=e|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=c|0,this.G=s|0,this.H=l|0}process(e,r){for(let a=0;a<16;a++,r+=4)v[a]=e.getUint32(r,!1);for(let a=16;a<64;a++){let u=v[a-15],p=v[a-2],f=g(u,7)^g(u,18)^u>>>3,x=g(p,17)^g(p,19)^p>>>10;v[a]=x+v[a-7]+f+v[a-16]|0}let{A:n,B:o,C:i,D:c,E:s,F:l,G:_,H:d}=this;for(let a=0;a<64;a++){let u=g(s,6)^g(s,11)^g(s,25),p=d+u+Gt(s,l,_)+ce[a]+v[a]|0,x=(g(n,2)^g(n,13)^g(n,22))+Wt(n,o,i)|0;d=_,_=l,l=s,s=c+p|0,c=i,i=o,o=n,n=p+x|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,c=c+this.D|0,s=s+this.E|0,l=l+this.F|0,_=_+this.G|0,d=d+this.H|0,this.set(n,o,i,c,s,l,_,d)}roundClean(){Q(v)}destroy(){this.set(0,0,0,0,0,0,0,0),Q(this.buffer)}};var At=qt(()=>new Vt);var ae="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Mt=ae;function ie(t){if(!t||typeof t!="string")throw new Error(`Expected base58 string but got \u201C${t}\u201D`);if(t.match(/[IOl0]/gmu))throw new Error(`Invalid base58 character \u201C${t.match(/[IOl0]/gmu)}\u201D`);let e=t.match(/^1+/gmu),r=e?e[0].length:0,n=(t.length-r)*(Math.log(58)/Math.log(256))+1>>>0;return new Uint8Array([...new Uint8Array(r),...t.match(/.{1}/gmu).map(o=>Mt.indexOf(o)).reduce((o,i)=>(o=o.map(c=>{let s=c*58+i;return i=s>>8,s}),o),new Uint8Array(n)).reverse().filter((o=>i=>o=o||i)(!1))])}var Bt=ie;var $=Dt(jt());var de=0,_e=5,pe=111,fe=196,xe={[de]:{type:1,networks:[0]},[pe]:{type:1,networks:[2,1]},[_e]:{type:2,networks:[0]},[fe]:{type:2,networks:[2,1]}},he=({address:t,network:e})=>{let n=(d=>{try{return Bt(d)}catch{throw new U}})(t),{length:o}=n;if(o!==25)throw new B(`Expected the address to be 25 bytes, got ${o}.`);(d=>{let a=d.slice(o-4,o),u=d.slice(0,o-4),p=At.create();p.update(u);let f=At.create();f.update(p.digest());let x=f.digest().slice(0,4);if(a.some((m,b)=>m!==x[b]))throw new B(`Checksum mismatch expected ${a}, got ${x}.`)})(n);let[c]=n,s=xe[c];if((0,Ut.isNullish)(s))throw new T;let{type:l,networks:_}=s;if(!_.includes(e))throw new M;return{address:t,network:e,type:l,parser:"base58"}},be=({address:t,network:e})=>{let r=d=>{try{return d.startsWith("bc1p")||d.startsWith("tb1p")||d.startsWith("bcrt1p")?$.bech32m.decode(d):$.bech32.decode(d)}catch{throw new B}},{prefix:n,words:o}=r(t),c={bc:0,tb:2,bcrt:1}[n];if((0,Ut.isNullish)(c))throw new U;if(c!==e)throw new W;let[s,...l]=o;if(s>1)throw new G;switch($.bech32.fromWords(l).length){case 20:return{address:t,network:e,type:0,parser:"bip-173"};case 32:return{address:t,network:e,type:s===0?3:4,parser:"bip-173"};default:throw new q}},me=({address:t,network:e=0})=>{switch(t.charAt(0)){case"1":case"2":case"3":case"m":case"n":return he({address:t,network:e});case"b":case"B":case"t":case"T":return be({address:t,network:e});case"":throw new H;default:throw new T}};0&&(module.exports={BitcoinCanister,BtcAddressType,BtcNetwork,CkBTCMinterCanister,MinterAlreadyProcessingError,MinterAmountTooLowError,MinterGenericError,MinterInsufficientAllowanceError,MinterInsufficientFundsError,MinterMalformedAddressError,MinterNoNewUtxosError,MinterRetrieveBtcError,MinterTemporaryUnavailableError,MinterUpdateBalanceError,ParseBtcAddressBadWitnessLengthError,ParseBtcAddressError,ParseBtcAddressInvalidError,ParseBtcAddressMalformedAddressError,ParseBtcAddressNoDataError,ParseBtcAddressUnexpectedHumanReadablePartError,ParseBtcAddressUnsupportedAddressTypeError,ParseBtcAddressUnsupportedWitnessVersionError,ParseBtcAddressWrongNetworkError,createRetrieveBtcError,createRetrieveBtcWithApprovalError,createUpdateBalanceError,parseBtcAddress,toGetBalanceParams,toGetUtxosParams});
1
+ "use strict";var It=Object.create;var K=Object.defineProperty;var Lt=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var te=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var re=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ne=(t,e)=>{for(var r in e)K(t,r,{get:e[r],enumerable:!0})},Ht=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Dt(e))!ee.call(t,o)&&o!==r&&K(t,o,{get:()=>e[o],enumerable:!(n=Lt(e,o))||n.enumerable});return t};var oe=(t,e,r)=>(r=t!=null?It(te(t)):{},Ht(e||!t||!t.__esModule?K(r,"default",{value:t,enumerable:!0}):r,t)),ae=t=>Ht(K({},"__esModule",{value:!0}),t);var Zt=re(S=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0});S.bech32m=S.bech32=void 0;var st="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Jt={};for(let t=0;t<st.length;t++){let e=st.charAt(t);Jt[e]=t}function E(t){let e=t>>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function Xt(t){let e=1;for(let r=0;r<t.length;++r){let n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=E(e)^n>>5}e=E(e);for(let r=0;r<t.length;++r){let n=t.charCodeAt(r);e=E(e)^n&31}return e}function St(t,e,r,n){let o=0,c=0,a=(1<<r)-1,i=[];for(let s=0;s<t.length;++s)for(o=o<<e|t[s],c+=e;c>=r;)c-=r,i.push(o>>c&a);if(n)c>0&&i.push(o<<r-c&a);else{if(c>=e)return"Excess padding";if(o<<r-c&a)return"Non-zero padding"}return i}function pe(t){return St(t,8,5,!0)}function fe(t){let e=St(t,5,8,!1);if(Array.isArray(e))return e}function he(t){let e=St(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}function Yt(t){let e;t==="bech32"?e=1:e=734539939;function r(a,i,s){if(s=s||90,a.length+7+i.length>s)throw new TypeError("Exceeds length limit");a=a.toLowerCase();let p=Xt(a);if(typeof p=="string")throw new Error(p);let _=a+"1";for(let l=0;l<i.length;++l){let d=i[l];if(d>>5!==0)throw new Error("Non 5-bit word");p=E(p)^d,_+=st.charAt(d)}for(let l=0;l<6;++l)p=E(p);p^=e;for(let l=0;l<6;++l){let d=p>>(5-l)*5&31;_+=st.charAt(d)}return _}function n(a,i){if(i=i||90,a.length<8)return a+" too short";if(a.length>i)return"Exceeds length limit";let s=a.toLowerCase(),p=a.toUpperCase();if(a!==s&&a!==p)return"Mixed-case string "+a;a=s;let _=a.lastIndexOf("1");if(_===-1)return"No separator character for "+a;if(_===0)return"Missing prefix for "+a;let l=a.slice(0,_),d=a.slice(_+1);if(d.length<6)return"Data too short";let u=Xt(l);if(typeof u=="string")return u;let f=[];for(let h=0;h<d.length;++h){let m=d.charAt(h),b=Jt[m];if(b===void 0)return"Unknown character "+m;u=E(u)^b,!(h+6>=d.length)&&f.push(b)}return u!==e?"Invalid checksum for "+a:{prefix:l,words:f}}function o(a,i){let s=n(a,i);if(typeof s=="object")return s}function c(a,i){let s=n(a,i);if(typeof s=="object")return s;throw new Error(s)}return{decodeUnsafe:o,decode:c,encode:r,toWords:pe,fromWordsUnsafe:fe,fromWords:he}}S.bech32=Yt("bech32");S.bech32m=Yt("bech32m")});var ke={};ne(ke,{BitcoinCanister:()=>X,BtcAddressType:()=>vt,BtcNetwork:()=>Ot,CkBTCMinterCanister:()=>nt,MinterAlreadyProcessingError:()=>Z,MinterAmountTooLowError:()=>D,MinterGenericError:()=>k,MinterInsufficientAllowanceError:()=>et,MinterInsufficientFundsError:()=>tt,MinterMalformedAddressError:()=>L,MinterNoNewUtxosError:()=>I,MinterRetrieveBtcError:()=>O,MinterTemporaryUnavailableError:()=>Y,MinterUpdateBalanceError:()=>Q,ParseBtcAddressBadWitnessLengthError:()=>G,ParseBtcAddressError:()=>N,ParseBtcAddressInvalidError:()=>T,ParseBtcAddressMalformedAddressError:()=>B,ParseBtcAddressNoDataError:()=>q,ParseBtcAddressUnexpectedHumanReadablePartError:()=>M,ParseBtcAddressUnsupportedAddressTypeError:()=>U,ParseBtcAddressUnsupportedWitnessVersionError:()=>W,ParseBtcAddressWrongNetworkError:()=>z,createRetrieveBtcError:()=>rt,createRetrieveBtcWithApprovalError:()=>Bt,createUpdateBalanceError:()=>At,parseBtcAddress:()=>Re,toGetBalanceParams:()=>kt,toGetUtxosParams:()=>Rt});module.exports=ae(ke);var J=require("@dfinity/utils");var qt=({IDL:t})=>{let e=t.Variant({disabled:t.Null,enabled:t.Null}),r=t.Record({get_current_fee_percentiles:t.Nat,get_utxos_maximum:t.Nat,get_block_headers_cycles_per_ten_instructions:t.Nat,get_current_fee_percentiles_maximum:t.Nat,send_transaction_per_byte:t.Nat,get_balance:t.Nat,get_utxos_cycles_per_ten_instructions:t.Nat,get_block_headers_base:t.Nat,get_utxos_base:t.Nat,get_balance_maximum:t.Nat,send_transaction_base:t.Nat,get_block_headers_maximum:t.Nat}),n=t.Variant({mainnet:t.Null,regtest:t.Null,testnet:t.Null}),o=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),blocks_source:t.Opt(t.Principal),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),network:t.Opt(n),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)}),c=t.Text,a=t.Record({network:n,address:c,min_confirmations:t.Opt(t.Nat32)}),i=t.Nat64,s=t.Nat32,p=t.Record({start_height:s,end_height:t.Opt(s),network:n}),_=t.Vec(t.Nat8),l=t.Record({tip_height:s,block_headers:t.Vec(_)}),d=t.Record({network:n}),u=t.Nat64,f=t.Record({network:n,filter:t.Opt(t.Variant({page:t.Vec(t.Nat8),min_confirmations:t.Nat32})),address:c}),h=t.Vec(t.Nat8),m=t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32}),b=t.Record({height:s,value:i,outpoint:m}),y=t.Record({next_page:t.Opt(t.Vec(t.Nat8)),tip_height:s,tip_block_hash:h,utxos:t.Vec(b)}),w=t.Record({transaction:t.Vec(t.Nat8),network:n}),V=t.Record({api_access:e,lazily_evaluate_fee_percentiles:e,blocks_source:t.Principal,fees:r,watchdog_canister:t.Opt(t.Principal),network:n,stability_threshold:t.Nat,syncing:e,burn_cycles:e,disable_api_if_not_fully_synced:e}),A=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)});return t.Service({bitcoin_get_balance:t.Func([a],[i],[]),bitcoin_get_balance_query:t.Func([a],[i],[]),bitcoin_get_block_headers:t.Func([p],[l],[]),bitcoin_get_current_fee_percentiles:t.Func([d],[t.Vec(u)],[]),bitcoin_get_utxos:t.Func([f],[y],[]),bitcoin_get_utxos_query:t.Func([f],[y],[]),bitcoin_send_transaction:t.Func([w],[],[]),get_config:t.Func([],[V],[]),set_config:t.Func([A],[],[])})};var Gt=({IDL:t})=>{let e=t.Variant({disabled:t.Null,enabled:t.Null}),r=t.Record({get_current_fee_percentiles:t.Nat,get_utxos_maximum:t.Nat,get_block_headers_cycles_per_ten_instructions:t.Nat,get_current_fee_percentiles_maximum:t.Nat,send_transaction_per_byte:t.Nat,get_balance:t.Nat,get_utxos_cycles_per_ten_instructions:t.Nat,get_block_headers_base:t.Nat,get_utxos_base:t.Nat,get_balance_maximum:t.Nat,send_transaction_base:t.Nat,get_block_headers_maximum:t.Nat}),n=t.Variant({mainnet:t.Null,regtest:t.Null,testnet:t.Null}),o=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),blocks_source:t.Opt(t.Principal),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),network:t.Opt(n),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)}),c=t.Text,a=t.Record({network:n,address:c,min_confirmations:t.Opt(t.Nat32)}),i=t.Nat64,s=t.Nat32,p=t.Record({start_height:s,end_height:t.Opt(s),network:n}),_=t.Vec(t.Nat8),l=t.Record({tip_height:s,block_headers:t.Vec(_)}),d=t.Record({network:n}),u=t.Nat64,f=t.Record({network:n,filter:t.Opt(t.Variant({page:t.Vec(t.Nat8),min_confirmations:t.Nat32})),address:c}),h=t.Vec(t.Nat8),m=t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32}),b=t.Record({height:s,value:i,outpoint:m}),y=t.Record({next_page:t.Opt(t.Vec(t.Nat8)),tip_height:s,tip_block_hash:h,utxos:t.Vec(b)}),w=t.Record({transaction:t.Vec(t.Nat8),network:n}),V=t.Record({api_access:e,lazily_evaluate_fee_percentiles:e,blocks_source:t.Principal,fees:r,watchdog_canister:t.Opt(t.Principal),network:n,stability_threshold:t.Nat,syncing:e,burn_cycles:e,disable_api_if_not_fully_synced:e}),A=t.Record({api_access:t.Opt(e),lazily_evaluate_fee_percentiles:t.Opt(e),fees:t.Opt(r),watchdog_canister:t.Opt(t.Opt(t.Principal)),stability_threshold:t.Opt(t.Nat),syncing:t.Opt(e),burn_cycles:t.Opt(e),disable_api_if_not_fully_synced:t.Opt(e)});return t.Service({bitcoin_get_balance:t.Func([a],[i],[]),bitcoin_get_balance_query:t.Func([a],[i],["query"]),bitcoin_get_block_headers:t.Func([p],[l],[]),bitcoin_get_current_fee_percentiles:t.Func([d],[t.Vec(u)],[]),bitcoin_get_utxos:t.Func([f],[y],[]),bitcoin_get_utxos_query:t.Func([f],[y],["query"]),bitcoin_send_transaction:t.Func([w],[],[]),get_config:t.Func([],[V],["query"]),set_config:t.Func([A],[],[])})};var P=require("@dfinity/utils"),ce={mainnet:{mainnet:null},testnet:{testnet:null},regtest:{regtest:null}},Rt=({network:t,filter:e,...r})=>({filter:(0,P.nonNullish)(e)?(0,P.toNullable)("minConfirmations"in e?{min_confirmations:e.minConfirmations}:{page:e.page}):(0,P.toNullable)(),network:t==="testnet"?{testnet:null}:{mainnet:null},...r}),kt=({network:t,minConfirmations:e,...r})=>({min_confirmations:(0,P.toNullable)(e),network:ce[t],...r});var X=class t extends J.Canister{static create(e){let{service:r,certifiedService:n,canisterId:o}=(0,J.createServices)({options:e,idlFactory:Gt,certifiedIdlFactory:qt});return new t(o,r,n)}getUtxosQuery=({...e})=>{let{bitcoin_get_utxos_query:r}=this.caller({certified:!1});return r(Rt(e))};getBalanceQuery=({...e})=>{let{bitcoin_get_balance_query:r}=this.caller({certified:!1});return r(kt(e))}};var Ot=(n=>(n[n.Mainnet=0]="Mainnet",n[n.Regtest=1]="Regtest",n[n.Testnet=2]="Testnet",n))(Ot||{}),vt=(c=>(c[c.P2wpkhV0=0]="P2wpkhV0",c[c.P2pkh=1]="P2pkh",c[c.P2sh=2]="P2sh",c[c.P2wsh=3]="P2wsh",c[c.P2tr=4]="P2tr",c))(vt||{});var N=class extends Error{},T=class extends N{},q=class extends N{},U=class extends N{},G=class extends N{},W=class extends N{},M=class extends N{},B=class extends N{},z=class extends N{};var F=require("@dfinity/utils"),k=class extends Error{},Y=class extends k{},Z=class extends k{},Q=class extends k{},I=class extends Q{pendingUtxos;requiredConfirmations;constructor({pending_utxos:e,required_confirmations:r}){super(),this.pendingUtxos=(0,F.fromNullable)(e)??[],this.requiredConfirmations=r}},O=class extends k{},L=class extends O{},D=class extends O{},tt=class extends O{},et=class extends O{},Vt=t=>{if("GenericError"in t){let{GenericError:{error_message:e,error_code:r}}=t;return new k(`${e} (${r})`)}if("TemporarilyUnavailable"in t)return new Y(t.TemporarilyUnavailable);if("AlreadyProcessing"in t)return new Z},At=t=>{let e=Vt(t);return(0,F.nonNullish)(e)?e:"NoNewUtxos"in t?new I(t.NoNewUtxos):new Q(`Unsupported response type in minter.updateBalance ${JSON.stringify(t)}`)},rt=t=>{let e=Vt(t);return(0,F.nonNullish)(e)?e:"MalformedAddress"in t?new L(t.MalformedAddress):"AmountTooLow"in t?new D(`${t.AmountTooLow}`):"InsufficientFunds"in t?new tt(`${t.InsufficientFunds.balance}`):new O(`Unsupported response type in minter.retrieveBtc ${JSON.stringify(t)}`)},Bt=t=>{let e=Vt(t);return(0,F.nonNullish)(e)?e:"InsufficientAllowance"in t?new et(`${t.InsufficientAllowance.allowance}`):rt(t)};var x=require("@dfinity/utils");var Wt=({IDL:t})=>{let e=t.Variant({RestrictedTo:t.Vec(t.Principal),DepositsRestrictedTo:t.Vec(t.Principal),ReadOnly:t.Null,GeneralAvailability:t.Null}),r=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),mode:t.Opt(e),retrieve_btc_min_amount:t.Opt(t.Nat64),max_time_in_queue_nanos:t.Opt(t.Nat64),check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),n=t.Variant({Mainnet:t.Null,Regtest:t.Null,Testnet:t.Null}),o=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),ecdsa_key_name:t.Text,mode:e,retrieve_btc_min_amount:t.Nat64,ledger_id:t.Principal,max_time_in_queue_nanos:t.Nat64,btc_network:n,check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),c=t.Variant({Upgrade:t.Opt(r),Init:o}),a=t.Record({wasm_binary_size:t.Nat,wasm_chunk_store_size:t.Nat,canister_history_size:t.Nat,stable_memory_size:t.Nat,snapshots_size:t.Nat,wasm_memory_size:t.Nat,global_memory_size:t.Nat,custom_sections_size:t.Nat}),i=t.Variant({stopped:t.Null,stopping:t.Null,running:t.Null}),s=t.Variant({controllers:t.Null,public:t.Null,allowed_viewers:t.Vec(t.Principal)}),p=t.Record({freezing_threshold:t.Nat,wasm_memory_threshold:t.Nat,controllers:t.Vec(t.Principal),reserved_cycles_limit:t.Nat,log_visibility:s,wasm_memory_limit:t.Nat,memory_allocation:t.Nat,compute_allocation:t.Nat}),_=t.Record({response_payload_bytes_total:t.Nat,num_instructions_total:t.Nat,num_calls_total:t.Nat,request_payload_bytes_total:t.Nat}),l=t.Record({memory_metrics:a,status:i,memory_size:t.Nat,cycles:t.Nat,settings:p,query_stats:_,idle_cycles_burned_per_day:t.Nat,module_hash:t.Opt(t.Vec(t.Nat8)),reserved_cycles:t.Nat}),d=t.Record({owner:t.Principal,subaccount:t.Opt(t.Vec(t.Nat8))}),u=t.Record({height:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),f=t.Variant({CallFailed:t.Null,TaintedDestination:t.Record({kyt_fee:t.Nat64,kyt_provider:t.Principal})}),h=t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64}),m=t.Variant({ValueTooSmall:t.Null,Quarantined:t.Null}),b=t.Variant({p2wsh_v0:t.Vec(t.Nat8),p2tr_v1:t.Vec(t.Nat8),p2sh:t.Vec(t.Nat8),p2wpkh_v0:t.Vec(t.Nat8),p2pkh:t.Vec(t.Nat8)}),y=t.Variant({too_many_inputs:t.Record({max_num_inputs:t.Nat64,num_inputs:t.Nat64})}),w=t.Variant({invalid_transaction:y}),V=t.Variant({to_cancel:t.Record({reason:w}),to_retry:t.Null}),A=t.Variant({received_utxos:t.Record({to_account:d,mint_txid:t.Opt(t.Nat64),utxos:t.Vec(u)}),schedule_deposit_reimbursement:t.Record({burn_block_index:t.Nat64,account:d,amount:t.Nat64,reason:f}),sent_transaction:t.Record({fee:t.Opt(t.Nat64),change_output:t.Opt(t.Record({value:t.Nat64,vout:t.Nat32})),txid:t.Vec(t.Nat8),withdrawal_fee:t.Opt(h),utxos:t.Vec(u),requests:t.Vec(t.Nat64),submitted_at:t.Nat64}),distributed_kyt_fee:t.Record({block_index:t.Nat64,amount:t.Nat64,kyt_provider:t.Principal}),init:o,upgrade:r,retrieve_btc_kyt_failed:t.Record({block_index:t.Nat64,owner:t.Principal,uuid:t.Text,address:t.Text,amount:t.Nat64,kyt_provider:t.Principal}),suspended_utxo:t.Record({utxo:u,account:d,reason:m}),accepted_retrieve_btc_request:t.Record({received_at:t.Nat64,block_index:t.Nat64,address:b,reimbursement_account:t.Opt(d),amount:t.Nat64,kyt_provider:t.Opt(t.Principal)}),checked_utxo:t.Record({clean:t.Bool,utxo:u,uuid:t.Text,kyt_provider:t.Opt(t.Principal)}),schedule_withdrawal_reimbursement:t.Record({burn_block_index:t.Nat64,account:d,amount:t.Nat64,reason:w}),quarantined_withdrawal_reimbursement:t.Record({burn_block_index:t.Nat64}),removed_retrieve_btc_request:t.Record({block_index:t.Nat64}),confirmed_transaction:t.Record({txid:t.Vec(t.Nat8)}),replaced_transaction:t.Record({fee:t.Nat64,change_output:t.Record({value:t.Nat64,vout:t.Nat32}),new_utxos:t.Opt(t.Vec(u)),old_txid:t.Vec(t.Nat8),withdrawal_fee:t.Opt(h),new_txid:t.Vec(t.Nat8),submitted_at:t.Nat64,reason:t.Opt(V)}),checked_utxo_v2:t.Record({utxo:u,account:d}),ignored_utxo:t.Record({utxo:u}),checked_utxo_mint_unknown:t.Record({utxo:u,account:d}),reimbursed_failed_deposit:t.Record({burn_block_index:t.Nat64,mint_block_index:t.Nat64}),reimbursed_withdrawal:t.Record({burn_block_index:t.Nat64,mint_block_index:t.Nat64})}),lt=t.Record({timestamp:t.Opt(t.Nat64),payload:A}),ut=t.Record({retrieve_btc_min_amount:t.Nat64,min_confirmations:t.Nat32,kyt_fee:t.Nat64}),dt=t.Record({address:t.Text,amount:t.Nat64}),C=t.Record({block_index:t.Nat64}),_t=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),pt=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Pending:t.Null}),ft=t.Record({account:d,amount:t.Nat64,reason:f}),ht=t.Record({account:d,mint_block_index:t.Nat64,amount:t.Nat64,reason:f}),H=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,WillReimburse:ft,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Reimbursed:ht,Pending:t.Null}),xt=t.Record({from_subaccount:t.Opt(t.Vec(t.Nat8)),address:t.Text,amount:t.Nat64}),mt=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,InsufficientAllowance:t.Record({allowance:t.Nat64}),AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),bt=t.Variant({ValueTooSmall:u,Tainted:u,Minted:t.Record({minted_amount:t.Nat64,block_index:t.Nat64,utxo:u}),Checked:u}),Nt=t.Nat64,gt=t.Record({utxo:u,earliest_retry:Nt,reason:m}),yt=t.Record({confirmations:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),wt=t.Variant({GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,NoNewUtxos:t.Record({suspended_utxos:t.Opt(t.Vec(gt)),required_confirmations:t.Nat32,pending_utxos:t.Opt(t.Vec(yt)),current_confirmations:t.Opt(t.Nat32)})});return t.Service({estimate_withdrawal_fee:t.Func([t.Record({amount:t.Opt(t.Nat64)})],[t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64})],[]),get_btc_address:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Text],[]),get_canister_status:t.Func([],[l],[]),get_deposit_fee:t.Func([],[t.Nat64],[]),get_events:t.Func([t.Record({start:t.Nat64,length:t.Nat64})],[t.Vec(lt)],[]),get_known_utxos:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Vec(u)],[]),get_minter_info:t.Func([],[ut],[]),get_withdrawal_account:t.Func([],[d],[]),retrieve_btc:t.Func([dt],[t.Variant({Ok:C,Err:_t})],[]),retrieve_btc_status:t.Func([t.Record({block_index:t.Nat64})],[pt],[]),retrieve_btc_status_v2:t.Func([t.Record({block_index:t.Nat64})],[H],[]),retrieve_btc_status_v2_by_account:t.Func([t.Opt(d)],[t.Vec(t.Record({block_index:t.Nat64,status_v2:t.Opt(H)}))],[]),retrieve_btc_with_approval:t.Func([xt],[t.Variant({Ok:C,Err:mt})],[]),update_balance:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Variant({Ok:t.Vec(bt),Err:wt})],[])})};var Mt=({IDL:t})=>{let e=t.Variant({RestrictedTo:t.Vec(t.Principal),DepositsRestrictedTo:t.Vec(t.Principal),ReadOnly:t.Null,GeneralAvailability:t.Null}),r=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),mode:t.Opt(e),retrieve_btc_min_amount:t.Opt(t.Nat64),max_time_in_queue_nanos:t.Opt(t.Nat64),check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),n=t.Variant({Mainnet:t.Null,Regtest:t.Null,Testnet:t.Null}),o=t.Record({get_utxos_cache_expiration_seconds:t.Opt(t.Nat64),kyt_principal:t.Opt(t.Principal),ecdsa_key_name:t.Text,mode:e,retrieve_btc_min_amount:t.Nat64,ledger_id:t.Principal,max_time_in_queue_nanos:t.Nat64,btc_network:n,check_fee:t.Opt(t.Nat64),btc_checker_principal:t.Opt(t.Principal),min_confirmations:t.Opt(t.Nat32),kyt_fee:t.Opt(t.Nat64)}),c=t.Variant({Upgrade:t.Opt(r),Init:o}),a=t.Record({wasm_binary_size:t.Nat,wasm_chunk_store_size:t.Nat,canister_history_size:t.Nat,stable_memory_size:t.Nat,snapshots_size:t.Nat,wasm_memory_size:t.Nat,global_memory_size:t.Nat,custom_sections_size:t.Nat}),i=t.Variant({stopped:t.Null,stopping:t.Null,running:t.Null}),s=t.Variant({controllers:t.Null,public:t.Null,allowed_viewers:t.Vec(t.Principal)}),p=t.Record({freezing_threshold:t.Nat,wasm_memory_threshold:t.Nat,controllers:t.Vec(t.Principal),reserved_cycles_limit:t.Nat,log_visibility:s,wasm_memory_limit:t.Nat,memory_allocation:t.Nat,compute_allocation:t.Nat}),_=t.Record({response_payload_bytes_total:t.Nat,num_instructions_total:t.Nat,num_calls_total:t.Nat,request_payload_bytes_total:t.Nat}),l=t.Record({memory_metrics:a,status:i,memory_size:t.Nat,cycles:t.Nat,settings:p,query_stats:_,idle_cycles_burned_per_day:t.Nat,module_hash:t.Opt(t.Vec(t.Nat8)),reserved_cycles:t.Nat}),d=t.Record({owner:t.Principal,subaccount:t.Opt(t.Vec(t.Nat8))}),u=t.Record({height:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),f=t.Variant({CallFailed:t.Null,TaintedDestination:t.Record({kyt_fee:t.Nat64,kyt_provider:t.Principal})}),h=t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64}),m=t.Variant({ValueTooSmall:t.Null,Quarantined:t.Null}),b=t.Variant({p2wsh_v0:t.Vec(t.Nat8),p2tr_v1:t.Vec(t.Nat8),p2sh:t.Vec(t.Nat8),p2wpkh_v0:t.Vec(t.Nat8),p2pkh:t.Vec(t.Nat8)}),y=t.Variant({too_many_inputs:t.Record({max_num_inputs:t.Nat64,num_inputs:t.Nat64})}),w=t.Variant({invalid_transaction:y}),V=t.Variant({to_cancel:t.Record({reason:w}),to_retry:t.Null}),A=t.Variant({received_utxos:t.Record({to_account:d,mint_txid:t.Opt(t.Nat64),utxos:t.Vec(u)}),schedule_deposit_reimbursement:t.Record({burn_block_index:t.Nat64,account:d,amount:t.Nat64,reason:f}),sent_transaction:t.Record({fee:t.Opt(t.Nat64),change_output:t.Opt(t.Record({value:t.Nat64,vout:t.Nat32})),txid:t.Vec(t.Nat8),withdrawal_fee:t.Opt(h),utxos:t.Vec(u),requests:t.Vec(t.Nat64),submitted_at:t.Nat64}),distributed_kyt_fee:t.Record({block_index:t.Nat64,amount:t.Nat64,kyt_provider:t.Principal}),init:o,upgrade:r,retrieve_btc_kyt_failed:t.Record({block_index:t.Nat64,owner:t.Principal,uuid:t.Text,address:t.Text,amount:t.Nat64,kyt_provider:t.Principal}),suspended_utxo:t.Record({utxo:u,account:d,reason:m}),accepted_retrieve_btc_request:t.Record({received_at:t.Nat64,block_index:t.Nat64,address:b,reimbursement_account:t.Opt(d),amount:t.Nat64,kyt_provider:t.Opt(t.Principal)}),checked_utxo:t.Record({clean:t.Bool,utxo:u,uuid:t.Text,kyt_provider:t.Opt(t.Principal)}),schedule_withdrawal_reimbursement:t.Record({burn_block_index:t.Nat64,account:d,amount:t.Nat64,reason:w}),quarantined_withdrawal_reimbursement:t.Record({burn_block_index:t.Nat64}),removed_retrieve_btc_request:t.Record({block_index:t.Nat64}),confirmed_transaction:t.Record({txid:t.Vec(t.Nat8)}),replaced_transaction:t.Record({fee:t.Nat64,change_output:t.Record({value:t.Nat64,vout:t.Nat32}),new_utxos:t.Opt(t.Vec(u)),old_txid:t.Vec(t.Nat8),withdrawal_fee:t.Opt(h),new_txid:t.Vec(t.Nat8),submitted_at:t.Nat64,reason:t.Opt(V)}),checked_utxo_v2:t.Record({utxo:u,account:d}),ignored_utxo:t.Record({utxo:u}),checked_utxo_mint_unknown:t.Record({utxo:u,account:d}),reimbursed_failed_deposit:t.Record({burn_block_index:t.Nat64,mint_block_index:t.Nat64}),reimbursed_withdrawal:t.Record({burn_block_index:t.Nat64,mint_block_index:t.Nat64})}),lt=t.Record({timestamp:t.Opt(t.Nat64),payload:A}),ut=t.Record({retrieve_btc_min_amount:t.Nat64,min_confirmations:t.Nat32,kyt_fee:t.Nat64}),dt=t.Record({address:t.Text,amount:t.Nat64}),C=t.Record({block_index:t.Nat64}),_t=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),pt=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Pending:t.Null}),ft=t.Record({account:d,amount:t.Nat64,reason:f}),ht=t.Record({account:d,mint_block_index:t.Nat64,amount:t.Nat64,reason:f}),H=t.Variant({Signing:t.Null,Confirmed:t.Record({txid:t.Vec(t.Nat8)}),Sending:t.Record({txid:t.Vec(t.Nat8)}),AmountTooLow:t.Null,WillReimburse:ft,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Reimbursed:ht,Pending:t.Null}),xt=t.Record({from_subaccount:t.Opt(t.Vec(t.Nat8)),address:t.Text,amount:t.Nat64}),mt=t.Variant({MalformedAddress:t.Text,GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,InsufficientAllowance:t.Record({allowance:t.Nat64}),AlreadyProcessing:t.Null,AmountTooLow:t.Nat64,InsufficientFunds:t.Record({balance:t.Nat64})}),bt=t.Variant({ValueTooSmall:u,Tainted:u,Minted:t.Record({minted_amount:t.Nat64,block_index:t.Nat64,utxo:u}),Checked:u}),Nt=t.Nat64,gt=t.Record({utxo:u,earliest_retry:Nt,reason:m}),yt=t.Record({confirmations:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),wt=t.Variant({GenericError:t.Record({error_message:t.Text,error_code:t.Nat64}),TemporarilyUnavailable:t.Text,AlreadyProcessing:t.Null,NoNewUtxos:t.Record({suspended_utxos:t.Opt(t.Vec(gt)),required_confirmations:t.Nat32,pending_utxos:t.Opt(t.Vec(yt)),current_confirmations:t.Opt(t.Nat32)})});return t.Service({estimate_withdrawal_fee:t.Func([t.Record({amount:t.Opt(t.Nat64)})],[t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64})],["query"]),get_btc_address:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Text],[]),get_canister_status:t.Func([],[l],[]),get_deposit_fee:t.Func([],[t.Nat64],["query"]),get_events:t.Func([t.Record({start:t.Nat64,length:t.Nat64})],[t.Vec(lt)],["query"]),get_known_utxos:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Vec(u)],["query"]),get_minter_info:t.Func([],[ut],["query"]),get_withdrawal_account:t.Func([],[d],[]),retrieve_btc:t.Func([dt],[t.Variant({Ok:C,Err:_t})],[]),retrieve_btc_status:t.Func([t.Record({block_index:t.Nat64})],[pt],["query"]),retrieve_btc_status_v2:t.Func([t.Record({block_index:t.Nat64})],[H],["query"]),retrieve_btc_status_v2_by_account:t.Func([t.Opt(d)],[t.Vec(t.Record({block_index:t.Nat64,status_v2:t.Opt(H)}))],["query"]),retrieve_btc_with_approval:t.Func([xt],[t.Variant({Ok:C,Err:mt})],[]),update_balance:t.Func([t.Record({owner:t.Opt(t.Principal),subaccount:t.Opt(t.Vec(t.Nat8))})],[t.Variant({Ok:t.Vec(bt),Err:wt})],[])})};var nt=class t extends x.Canister{static create(e){let{service:r,certifiedService:n,canisterId:o}=(0,x.createServices)({options:e,idlFactory:Mt,certifiedIdlFactory:Wt});return new t(o,r,n)}getBtcAddress=({owner:e,subaccount:r})=>this.caller({certified:!0}).get_btc_address({owner:(0,x.toNullable)(e),subaccount:(0,x.toNullable)(r)});updateBalance=async({owner:e,subaccount:r})=>{let n=await this.caller({certified:!0}).update_balance({owner:(0,x.toNullable)(e),subaccount:(0,x.toNullable)(r)});if("Err"in n)throw At(n.Err);return n.Ok};getWithdrawalAccount=()=>this.caller({certified:!0}).get_withdrawal_account();retrieveBtc=async e=>{let r=await this.caller({certified:!0}).retrieve_btc(e);if("Err"in r)throw rt(r.Err);return r.Ok};retrieveBtcWithApproval=async({address:e,amount:r,fromSubaccount:n})=>{let o=await this.caller({certified:!0}).retrieve_btc_with_approval({address:e,amount:r,from_subaccount:(0,x.toNullable)(n)});if("Err"in o)throw Bt(o.Err);return o.Ok};retrieveBtcStatus=({transactionId:e,certified:r})=>this.caller({certified:r}).retrieve_btc_status({block_index:e});retrieveBtcStatusV2ByAccount=async({account:e,certified:r})=>{let{retrieve_btc_status_v2_by_account:n}=this.caller({certified:r});return(await n((0,x.isNullish)(e)?[]:[{owner:e.owner,subaccount:(0,x.toNullable)(e.subaccount)}])).map(({block_index:c,status_v2:a})=>({id:c,status:(0,x.fromNullable)(a)}))};estimateWithdrawalFee=({certified:e,amount:r})=>this.caller({certified:e}).estimate_withdrawal_fee({amount:(0,x.toNullable)(r)});getMinterInfo=({certified:e})=>this.caller({certified:e}).get_minter_info();getKnownUtxos=({owner:e,subaccount:r,certified:n})=>{let{get_known_utxos:o}=this.caller({certified:n});return o({owner:(0,x.toNullable)(e),subaccount:(0,x.toNullable)(r)})}};var Ct=require("@dfinity/utils");function ie(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function at(t,...e){if(!ie(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Pt(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function zt(t,e){at(t);let r=e.outputLen;if(t.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function $(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function ct(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function g(t,e){return t<<32-e|t>>>e}function se(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Tt(t){return typeof t=="string"&&(t=se(t)),at(t),t}var ot=class{};function Qt(t){let e=n=>t().update(Tt(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function le(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let o=BigInt(32),c=BigInt(4294967295),a=Number(r>>o&c),i=Number(r&c),s=n?4:0,p=n?0:4;t.setUint32(e+s,a,n),t.setUint32(e+p,i,n)}function $t(t,e,r){return t&e^~t&r}function jt(t,e,r){return t&e^t&r^e&r}var it=class extends ot{constructor(e,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=ct(this.buffer)}update(e){Pt(this),e=Tt(e),at(e);let{view:r,buffer:n,blockLen:o}=this,c=e.length;for(let a=0;a<c;){let i=Math.min(o-this.pos,c-a);if(i===o){let s=ct(e);for(;o<=c-a;a+=o)this.process(s,a);continue}n.set(e.subarray(a,a+i),this.pos),this.pos+=i,a+=i,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Pt(this),zt(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:c}=this,{pos:a}=this;r[a++]=128,$(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(n,0),a=0);for(let l=a;l<o;l++)r[l]=0;le(n,o-8,BigInt(this.length*8),c),this.process(n,0);let i=ct(e),s=this.outputLen;if(s%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let p=s/4,_=this.get();if(p>_.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<p;l++)i.setUint32(4*l,_[l],c)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:c,destroyed:a,pos:i}=this;return e.destroyed=a,e.finished=c,e.length=o,e.pos=i,o%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}},R=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var ue=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),v=new Uint32Array(64),Ut=class extends it{constructor(e=32){super(64,e,8,!1),this.A=R[0]|0,this.B=R[1]|0,this.C=R[2]|0,this.D=R[3]|0,this.E=R[4]|0,this.F=R[5]|0,this.G=R[6]|0,this.H=R[7]|0}get(){let{A:e,B:r,C:n,D:o,E:c,F:a,G:i,H:s}=this;return[e,r,n,o,c,a,i,s]}set(e,r,n,o,c,a,i,s){this.A=e|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=c|0,this.F=a|0,this.G=i|0,this.H=s|0}process(e,r){for(let l=0;l<16;l++,r+=4)v[l]=e.getUint32(r,!1);for(let l=16;l<64;l++){let d=v[l-15],u=v[l-2],f=g(d,7)^g(d,18)^d>>>3,h=g(u,17)^g(u,19)^u>>>10;v[l]=h+v[l-7]+f+v[l-16]|0}let{A:n,B:o,C:c,D:a,E:i,F:s,G:p,H:_}=this;for(let l=0;l<64;l++){let d=g(i,6)^g(i,11)^g(i,25),u=_+d+$t(i,s,p)+ue[l]+v[l]|0,h=(g(n,2)^g(n,13)^g(n,22))+jt(n,o,c)|0;_=p,p=s,s=i,i=a+u|0,a=c,c=o,o=n,n=u+h|0}n=n+this.A|0,o=o+this.B|0,c=c+this.C|0,a=a+this.D|0,i=i+this.E|0,s=s+this.F|0,p=p+this.G|0,_=_+this.H|0,this.set(n,o,c,a,i,s,p,_)}roundClean(){$(v)}destroy(){this.set(0,0,0,0,0,0,0,0),$(this.buffer)}};var Ft=Qt(()=>new Ut);var de="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Kt=de;function _e(t){if(!t||typeof t!="string")throw new Error(`Expected base58 string but got \u201C${t}\u201D`);if(t.match(/[IOl0]/gmu))throw new Error(`Invalid base58 character \u201C${t.match(/[IOl0]/gmu)}\u201D`);let e=t.match(/^1+/gmu),r=e?e[0].length:0,n=(t.length-r)*(Math.log(58)/Math.log(256))+1>>>0;return new Uint8Array([...new Uint8Array(r),...t.match(/.{1}/gmu).map(o=>Kt.indexOf(o)).reduce((o,c)=>(o=o.map(a=>{let i=a*58+c;return c=i>>8,i}),o),new Uint8Array(n)).reverse().filter((o=>c=>o=o||c)(!1))])}var Et=_e;var j=oe(Zt());var xe=0,me=5,be=111,Ne=196,ge={[xe]:{type:1,networks:[0]},[be]:{type:1,networks:[2,1]},[me]:{type:2,networks:[0]},[Ne]:{type:2,networks:[2,1]}},ye=({address:t,network:e})=>{let n=(_=>{try{return Et(_)}catch{throw new T}})(t),{length:o}=n;if(o!==25)throw new B(`Expected the address to be 25 bytes, got ${o}.`);(_=>{let l=_.slice(o-4,o),d=_.slice(0,o-4),u=Ft.create();u.update(d);let f=Ft.create();f.update(u.digest());let h=f.digest().slice(0,4);if(l.some((m,b)=>m!==h[b]))throw new B(`Checksum mismatch expected ${l}, got ${h}.`)})(n);let[a]=n,i=ge[a];if((0,Ct.isNullish)(i))throw new U;let{type:s,networks:p}=i;if(!p.includes(e))throw new z;return{address:t,network:e,type:s,parser:"base58"}},we=({address:t,network:e})=>{let r=_=>{try{return _.startsWith("bc1p")||_.startsWith("tb1p")||_.startsWith("bcrt1p")?j.bech32m.decode(_):j.bech32.decode(_)}catch{throw new B}},{prefix:n,words:o}=r(t),a={bc:0,tb:2,bcrt:1}[n];if((0,Ct.isNullish)(a))throw new T;if(a!==e)throw new M;let[i,...s]=o;if(i>1)throw new W;switch(j.bech32.fromWords(s).length){case 20:return{address:t,network:e,type:0,parser:"bip-173"};case 32:return{address:t,network:e,type:i===0?3:4,parser:"bip-173"};default:throw new G}},Re=({address:t,network:e=0})=>{switch(t.charAt(0)){case"1":case"2":case"3":case"m":case"n":return ye({address:t,network:e});case"b":case"B":case"t":case"T":return we({address:t,network:e});case"":throw new q;default:throw new U}};0&&(module.exports={BitcoinCanister,BtcAddressType,BtcNetwork,CkBTCMinterCanister,MinterAlreadyProcessingError,MinterAmountTooLowError,MinterGenericError,MinterInsufficientAllowanceError,MinterInsufficientFundsError,MinterMalformedAddressError,MinterNoNewUtxosError,MinterRetrieveBtcError,MinterTemporaryUnavailableError,MinterUpdateBalanceError,ParseBtcAddressBadWitnessLengthError,ParseBtcAddressError,ParseBtcAddressInvalidError,ParseBtcAddressMalformedAddressError,ParseBtcAddressNoDataError,ParseBtcAddressUnexpectedHumanReadablePartError,ParseBtcAddressUnsupportedAddressTypeError,ParseBtcAddressUnsupportedWitnessVersionError,ParseBtcAddressWrongNetworkError,createRetrieveBtcError,createRetrieveBtcWithApprovalError,createUpdateBalanceError,parseBtcAddress,toGetBalanceParams,toGetUtxosParams});
2
2
  /*! Bundled license information:
3
3
 
4
4
  @noble/hashes/esm/utils.js: