@dfinity/ckbtc 4.0.0-next-2025-08-14 → 4.0.1

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/LICENSE CHANGED
@@ -174,28 +174,3 @@
174
174
  of your accepting any such warranty or additional liability.
175
175
 
176
176
  END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright 2025 DFINITY Stiftung.
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.
@@ -91,6 +91,10 @@ export const idlFactory = ({ IDL }) => {
91
91
  'kyt_provider' : IDL.Principal,
92
92
  }),
93
93
  });
94
+ const WithdrawalFee = IDL.Record({
95
+ 'minter_fee' : IDL.Nat64,
96
+ 'bitcoin_fee' : IDL.Nat64,
97
+ });
94
98
  const SuspendedReason = IDL.Variant({
95
99
  'ValueTooSmall' : IDL.Null,
96
100
  'Quarantined' : IDL.Null,
@@ -102,6 +106,19 @@ export const idlFactory = ({ IDL }) => {
102
106
  'p2wpkh_v0' : IDL.Vec(IDL.Nat8),
103
107
  'p2pkh' : IDL.Vec(IDL.Nat8),
104
108
  });
109
+ const InvalidTransactionError = IDL.Variant({
110
+ 'too_many_inputs' : IDL.Record({
111
+ 'max_num_inputs' : IDL.Nat64,
112
+ 'num_inputs' : IDL.Nat64,
113
+ }),
114
+ });
115
+ const WithdrawalReimbursementReason = IDL.Variant({
116
+ 'invalid_transaction' : InvalidTransactionError,
117
+ });
118
+ const ReplacedReason = IDL.Variant({
119
+ 'to_cancel' : IDL.Record({ 'reason' : WithdrawalReimbursementReason }),
120
+ 'to_retry' : IDL.Null,
121
+ });
105
122
  const EventType = IDL.Variant({
106
123
  'received_utxos' : IDL.Record({
107
124
  'to_account' : Account,
@@ -120,6 +137,7 @@ export const idlFactory = ({ IDL }) => {
120
137
  IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 })
121
138
  ),
122
139
  'txid' : IDL.Vec(IDL.Nat8),
140
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
123
141
  'utxos' : IDL.Vec(Utxo),
124
142
  'requests' : IDL.Vec(IDL.Nat64),
125
143
  'submitted_at' : IDL.Nat64,
@@ -158,14 +176,26 @@ export const idlFactory = ({ IDL }) => {
158
176
  'uuid' : IDL.Text,
159
177
  'kyt_provider' : IDL.Opt(IDL.Principal),
160
178
  }),
179
+ 'schedule_withdrawal_reimbursement' : IDL.Record({
180
+ 'burn_block_index' : IDL.Nat64,
181
+ 'account' : Account,
182
+ 'amount' : IDL.Nat64,
183
+ 'reason' : WithdrawalReimbursementReason,
184
+ }),
185
+ 'quarantined_withdrawal_reimbursement' : IDL.Record({
186
+ 'burn_block_index' : IDL.Nat64,
187
+ }),
161
188
  'removed_retrieve_btc_request' : IDL.Record({ 'block_index' : IDL.Nat64 }),
162
189
  'confirmed_transaction' : IDL.Record({ 'txid' : IDL.Vec(IDL.Nat8) }),
163
190
  'replaced_transaction' : IDL.Record({
164
191
  'fee' : IDL.Nat64,
165
192
  'change_output' : IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 }),
193
+ 'new_utxos' : IDL.Opt(IDL.Vec(Utxo)),
166
194
  'old_txid' : IDL.Vec(IDL.Nat8),
195
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
167
196
  'new_txid' : IDL.Vec(IDL.Nat8),
168
197
  'submitted_at' : IDL.Nat64,
198
+ 'reason' : IDL.Opt(ReplacedReason),
169
199
  }),
170
200
  'checked_utxo_v2' : IDL.Record({ 'utxo' : Utxo, 'account' : Account }),
171
201
  'ignored_utxo' : IDL.Record({ 'utxo' : Utxo }),
@@ -177,6 +207,10 @@ export const idlFactory = ({ IDL }) => {
177
207
  'burn_block_index' : IDL.Nat64,
178
208
  'mint_block_index' : IDL.Nat64,
179
209
  }),
210
+ 'reimbursed_withdrawal' : IDL.Record({
211
+ 'burn_block_index' : IDL.Nat64,
212
+ 'mint_block_index' : IDL.Nat64,
213
+ }),
180
214
  });
181
215
  const Event = IDL.Record({
182
216
  'timestamp' : IDL.Opt(IDL.Nat64),
@@ -64,6 +64,7 @@ export type EventType =
64
64
  fee: [] | [bigint];
65
65
  change_output: [] | [{ value: bigint; vout: number }];
66
66
  txid: Uint8Array | number[];
67
+ withdrawal_fee: [] | [WithdrawalFee];
67
68
  utxos: Array<Utxo>;
68
69
  requests: BigUint64Array | bigint[];
69
70
  submitted_at: bigint;
@@ -113,15 +114,27 @@ export type EventType =
113
114
  kyt_provider: [] | [Principal];
114
115
  };
115
116
  }
117
+ | {
118
+ schedule_withdrawal_reimbursement: {
119
+ burn_block_index: bigint;
120
+ account: Account;
121
+ amount: bigint;
122
+ reason: WithdrawalReimbursementReason;
123
+ };
124
+ }
125
+ | { quarantined_withdrawal_reimbursement: { burn_block_index: bigint } }
116
126
  | { removed_retrieve_btc_request: { block_index: bigint } }
117
127
  | { confirmed_transaction: { txid: Uint8Array | number[] } }
118
128
  | {
119
129
  replaced_transaction: {
120
130
  fee: bigint;
121
131
  change_output: { value: bigint; vout: number };
132
+ new_utxos: [] | [Array<Utxo>];
122
133
  old_txid: Uint8Array | number[];
134
+ withdrawal_fee: [] | [WithdrawalFee];
123
135
  new_txid: Uint8Array | number[];
124
136
  submitted_at: bigint;
137
+ reason: [] | [ReplacedReason];
125
138
  };
126
139
  }
127
140
  | { checked_utxo_v2: { utxo: Utxo; account: Account } }
@@ -132,6 +145,12 @@ export type EventType =
132
145
  burn_block_index: bigint;
133
146
  mint_block_index: bigint;
134
147
  };
148
+ }
149
+ | {
150
+ reimbursed_withdrawal: {
151
+ burn_block_index: bigint;
152
+ mint_block_index: bigint;
153
+ };
135
154
  };
136
155
  export interface InitArgs {
137
156
  get_utxos_cache_expiration_seconds: [] | [bigint];
@@ -147,6 +166,9 @@ export interface InitArgs {
147
166
  min_confirmations: [] | [number];
148
167
  kyt_fee: [] | [bigint];
149
168
  }
169
+ export type InvalidTransactionError = {
170
+ too_many_inputs: { max_num_inputs: bigint; num_inputs: bigint };
171
+ };
150
172
  export type LogVisibility =
151
173
  | { controllers: null }
152
174
  | { public: null }
@@ -187,6 +209,11 @@ export interface ReimbursementRequest {
187
209
  amount: bigint;
188
210
  reason: ReimbursementReason;
189
211
  }
212
+ export type ReplacedReason =
213
+ | {
214
+ to_cancel: { reason: WithdrawalReimbursementReason };
215
+ }
216
+ | { to_retry: null };
190
217
  export interface RetrieveBtcArgs {
191
218
  address: string;
192
219
  amount: bigint;
@@ -280,6 +307,13 @@ export type UtxoStatus =
280
307
  };
281
308
  }
282
309
  | { Checked: Utxo };
310
+ export interface WithdrawalFee {
311
+ minter_fee: bigint;
312
+ bitcoin_fee: bigint;
313
+ }
314
+ export type WithdrawalReimbursementReason = {
315
+ invalid_transaction: InvalidTransactionError;
316
+ };
283
317
  export interface _SERVICE {
284
318
  estimate_withdrawal_fee: ActorMethod<
285
319
  [{ 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 9173238 (2025-08-18 tags: release-2025-08-28_03-17-snapshot-feature) '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
 
@@ -350,6 +350,24 @@ type ReimbursementReason = variant {
350
350
  };
351
351
  };
352
352
 
353
+ type ReplacedReason = variant {
354
+ to_retry;
355
+ to_cancel : record {
356
+ reason : WithdrawalReimbursementReason;
357
+ };
358
+ };
359
+
360
+ type WithdrawalReimbursementReason = variant {
361
+ invalid_transaction : InvalidTransactionError;
362
+ };
363
+
364
+ type InvalidTransactionError = variant {
365
+ too_many_inputs : record {
366
+ num_inputs : nat64;
367
+ max_num_inputs : nat64;
368
+ };
369
+ };
370
+
353
371
  type SuspendedReason = variant {
354
372
  // The minter ignored this UTXO because UTXO's value is too small to pay
355
373
  // the check fees.
@@ -358,6 +376,11 @@ type SuspendedReason = variant {
358
376
  Quarantined;
359
377
  };
360
378
 
379
+ type WithdrawalFee = record {
380
+ minter_fee : nat64;
381
+ bitcoin_fee : nat64;
382
+ };
383
+
361
384
  type Event = record {
362
385
  timestamp : opt nat64;
363
386
  payload : EventType;
@@ -388,13 +411,17 @@ type EventType = variant {
388
411
  change_output : opt record { vout : nat32; value : nat64 };
389
412
  submitted_at : nat64;
390
413
  fee: opt nat64;
414
+ withdrawal_fee : opt WithdrawalFee;
391
415
  };
392
416
  replaced_transaction : record {
393
417
  new_txid : blob;
394
418
  old_txid : blob;
395
419
  change_output : record { vout : nat32; value : nat64 };
396
420
  submitted_at : nat64;
397
- fee: nat64;
421
+ fee : nat64;
422
+ withdrawal_fee : opt WithdrawalFee;
423
+ reason : opt ReplacedReason;
424
+ new_utxos : opt vec Utxo;
398
425
  };
399
426
  confirmed_transaction : record { txid : blob };
400
427
  checked_utxo : record {
@@ -428,6 +455,19 @@ type EventType = variant {
428
455
  reason : ReimbursementReason;
429
456
  };
430
457
  reimbursed_failed_deposit : record { burn_block_index : nat64; mint_block_index : nat64 };
458
+ schedule_withdrawal_reimbursement : record {
459
+ account : Account;
460
+ burn_block_index : nat64;
461
+ amount : nat64;
462
+ reason : WithdrawalReimbursementReason;
463
+ };
464
+ quarantined_withdrawal_reimbursement : record {
465
+ burn_block_index : nat64;
466
+ };
467
+ reimbursed_withdrawal : record {
468
+ burn_block_index : nat64;
469
+ mint_block_index : nat64;
470
+ };
431
471
  };
432
472
 
433
473
  type MinterArg = variant {
@@ -91,6 +91,10 @@ export const idlFactory = ({ IDL }) => {
91
91
  'kyt_provider' : IDL.Principal,
92
92
  }),
93
93
  });
94
+ const WithdrawalFee = IDL.Record({
95
+ 'minter_fee' : IDL.Nat64,
96
+ 'bitcoin_fee' : IDL.Nat64,
97
+ });
94
98
  const SuspendedReason = IDL.Variant({
95
99
  'ValueTooSmall' : IDL.Null,
96
100
  'Quarantined' : IDL.Null,
@@ -102,6 +106,19 @@ export const idlFactory = ({ IDL }) => {
102
106
  'p2wpkh_v0' : IDL.Vec(IDL.Nat8),
103
107
  'p2pkh' : IDL.Vec(IDL.Nat8),
104
108
  });
109
+ const InvalidTransactionError = IDL.Variant({
110
+ 'too_many_inputs' : IDL.Record({
111
+ 'max_num_inputs' : IDL.Nat64,
112
+ 'num_inputs' : IDL.Nat64,
113
+ }),
114
+ });
115
+ const WithdrawalReimbursementReason = IDL.Variant({
116
+ 'invalid_transaction' : InvalidTransactionError,
117
+ });
118
+ const ReplacedReason = IDL.Variant({
119
+ 'to_cancel' : IDL.Record({ 'reason' : WithdrawalReimbursementReason }),
120
+ 'to_retry' : IDL.Null,
121
+ });
105
122
  const EventType = IDL.Variant({
106
123
  'received_utxos' : IDL.Record({
107
124
  'to_account' : Account,
@@ -120,6 +137,7 @@ export const idlFactory = ({ IDL }) => {
120
137
  IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 })
121
138
  ),
122
139
  'txid' : IDL.Vec(IDL.Nat8),
140
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
123
141
  'utxos' : IDL.Vec(Utxo),
124
142
  'requests' : IDL.Vec(IDL.Nat64),
125
143
  'submitted_at' : IDL.Nat64,
@@ -158,14 +176,26 @@ export const idlFactory = ({ IDL }) => {
158
176
  'uuid' : IDL.Text,
159
177
  'kyt_provider' : IDL.Opt(IDL.Principal),
160
178
  }),
179
+ 'schedule_withdrawal_reimbursement' : IDL.Record({
180
+ 'burn_block_index' : IDL.Nat64,
181
+ 'account' : Account,
182
+ 'amount' : IDL.Nat64,
183
+ 'reason' : WithdrawalReimbursementReason,
184
+ }),
185
+ 'quarantined_withdrawal_reimbursement' : IDL.Record({
186
+ 'burn_block_index' : IDL.Nat64,
187
+ }),
161
188
  'removed_retrieve_btc_request' : IDL.Record({ 'block_index' : IDL.Nat64 }),
162
189
  'confirmed_transaction' : IDL.Record({ 'txid' : IDL.Vec(IDL.Nat8) }),
163
190
  'replaced_transaction' : IDL.Record({
164
191
  'fee' : IDL.Nat64,
165
192
  'change_output' : IDL.Record({ 'value' : IDL.Nat64, 'vout' : IDL.Nat32 }),
193
+ 'new_utxos' : IDL.Opt(IDL.Vec(Utxo)),
166
194
  'old_txid' : IDL.Vec(IDL.Nat8),
195
+ 'withdrawal_fee' : IDL.Opt(WithdrawalFee),
167
196
  'new_txid' : IDL.Vec(IDL.Nat8),
168
197
  'submitted_at' : IDL.Nat64,
198
+ 'reason' : IDL.Opt(ReplacedReason),
169
199
  }),
170
200
  'checked_utxo_v2' : IDL.Record({ 'utxo' : Utxo, 'account' : Account }),
171
201
  'ignored_utxo' : IDL.Record({ 'utxo' : Utxo }),
@@ -177,6 +207,10 @@ export const idlFactory = ({ IDL }) => {
177
207
  'burn_block_index' : IDL.Nat64,
178
208
  'mint_block_index' : IDL.Nat64,
179
209
  }),
210
+ 'reimbursed_withdrawal' : IDL.Record({
211
+ 'burn_block_index' : IDL.Nat64,
212
+ 'mint_block_index' : IDL.Nat64,
213
+ }),
180
214
  });
181
215
  const Event = IDL.Record({
182
216
  '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 Zt=Object.create;var K=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames;var Dt=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var ee=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),re=(t,e)=>{for(var r in e)K(t,r,{get:e[r],enumerable:!0})},Ct=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Lt(e))!te.call(t,o)&&o!==r&&K(t,o,{get:()=>e[o],enumerable:!(n=It(e,o))||n.enumerable});return t};var ne=(t,e,r)=>(r=t!=null?Zt(Dt(t)):{},Ct(e||!t||!t.__esModule?K(r,"default",{value:t,enumerable:!0}):r,t)),oe=t=>Ct(K({},"__esModule",{value:!0}),t);var Yt=ee(S=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0});S.bech32m=S.bech32=void 0;var st="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Xt={};for(let t=0;t<st.length;t++){let e=st.charAt(t);Xt[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 Kt(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 Et(t,e,r,n){let o=0,i=0,a=(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&a);if(n)i>0&&s.push(o<<r-i&a);else{if(i>=e)return"Excess padding";if(o<<r-i&a)return"Non-zero padding"}return s}function _e(t){return Et(t,8,5,!0)}function pe(t){let e=Et(t,5,8,!1);if(Array.isArray(e))return e}function fe(t){let e=Et(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}function Jt(t){let e;t==="bech32"?e=1:e=734539939;function r(a,s,l){if(l=l||90,a.length+7+s.length>l)throw new TypeError("Exceeds length limit");a=a.toLowerCase();let _=Kt(a);if(typeof _=="string")throw new Error(_);let d=a+"1";for(let c=0;c<s.length;++c){let u=s[c];if(u>>5!==0)throw new Error("Non 5-bit word");_=E(_)^u,d+=st.charAt(u)}for(let c=0;c<6;++c)_=E(_);_^=e;for(let c=0;c<6;++c){let u=_>>(5-c)*5&31;d+=st.charAt(u)}return d}function n(a,s){if(s=s||90,a.length<8)return a+" too short";if(a.length>s)return"Exceeds length limit";let l=a.toLowerCase(),_=a.toUpperCase();if(a!==l&&a!==_)return"Mixed-case string "+a;a=l;let d=a.lastIndexOf("1");if(d===-1)return"No separator character for "+a;if(d===0)return"Missing prefix for "+a;let c=a.slice(0,d),u=a.slice(d+1);if(u.length<6)return"Data too short";let p=Kt(c);if(typeof p=="string")return p;let x=[];for(let f=0;f<u.length;++f){let m=u.charAt(f),b=Xt[m];if(b===void 0)return"Unknown character "+m;p=E(p)^b,!(f+6>=u.length)&&x.push(b)}return p!==e?"Invalid checksum for "+a:{prefix:c,words:x}}function o(a,s){let l=n(a,s);if(typeof l=="object")return l}function i(a,s){let l=n(a,s);if(typeof l=="object")return l;throw new Error(l)}return{decodeUnsafe:o,decode:i,encode:r,toWords:_e,fromWordsUnsafe:pe,fromWords:fe}}S.bech32=Jt("bech32");S.bech32m=Jt("bech32m")});var Re={};re(Re,{BitcoinCanister:()=>X,BtcAddressType:()=>Ot,BtcNetwork:()=>kt,CkBTCMinterCanister:()=>nt,MinterAlreadyProcessingError:()=>Z,MinterAmountTooLowError:()=>D,MinterGenericError:()=>R,MinterInsufficientAllowanceError:()=>et,MinterInsufficientFundsError:()=>tt,MinterMalformedAddressError:()=>L,MinterNoNewUtxosError:()=>I,MinterRetrieveBtcError:()=>k,MinterTemporaryUnavailableError:()=>Y,MinterUpdateBalanceError:()=>Q,ParseBtcAddressBadWitnessLengthError:()=>G,ParseBtcAddressError:()=>g,ParseBtcAddressInvalidError:()=>T,ParseBtcAddressMalformedAddressError:()=>B,ParseBtcAddressNoDataError:()=>q,ParseBtcAddressUnexpectedHumanReadablePartError:()=>M,ParseBtcAddressUnsupportedAddressTypeError:()=>U,ParseBtcAddressUnsupportedWitnessVersionError:()=>W,ParseBtcAddressWrongNetworkError:()=>z,createRetrieveBtcError:()=>rt,createRetrieveBtcWithApprovalError:()=>At,createUpdateBalanceError:()=>Vt,parseBtcAddress:()=>we,toGetBalanceParams:()=>Rt,toGetUtxosParams:()=>wt});module.exports=oe(Re);var J=require("@dfinity/utils");var Ht=({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,a=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),c=t.Record({tip_height:l,block_headers:t.Vec(d)}),u=t.Record({network:n}),p=t.Nat64,x=t.Record({network:n,filter:t.Opt(t.Variant({page:t.Vec(t.Nat8),min_confirmations:t.Nat32})),address:i}),f=t.Vec(t.Nat8),m=t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32}),b=t.Record({height:l,value:s,outpoint:m}),N=t.Record({next_page:t.Opt(t.Vec(t.Nat8)),tip_height:l,tip_block_hash:f,utxos:t.Vec(b)}),v=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],[s],[]),bitcoin_get_balance_query:t.Func([a],[s],[]),bitcoin_get_block_headers:t.Func([_],[c],[]),bitcoin_get_current_fee_percentiles:t.Func([u],[t.Vec(p)],[]),bitcoin_get_utxos:t.Func([x],[N],[]),bitcoin_get_utxos_query:t.Func([x],[N],[]),bitcoin_send_transaction:t.Func([v],[],[]),get_config:t.Func([],[V],[]),set_config:t.Func([A],[],[])})};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)}),i=t.Text,a=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),c=t.Record({tip_height:l,block_headers:t.Vec(d)}),u=t.Record({network:n}),p=t.Nat64,x=t.Record({network:n,filter:t.Opt(t.Variant({page:t.Vec(t.Nat8),min_confirmations:t.Nat32})),address:i}),f=t.Vec(t.Nat8),m=t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32}),b=t.Record({height:l,value:s,outpoint:m}),N=t.Record({next_page:t.Opt(t.Vec(t.Nat8)),tip_height:l,tip_block_hash:f,utxos:t.Vec(b)}),v=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],[s],[]),bitcoin_get_balance_query:t.Func([a],[s],["query"]),bitcoin_get_block_headers:t.Func([_],[c],[]),bitcoin_get_current_fee_percentiles:t.Func([u],[t.Vec(p)],[]),bitcoin_get_utxos:t.Func([x],[N],[]),bitcoin_get_utxos_query:t.Func([x],[N],["query"]),bitcoin_send_transaction:t.Func([v],[],[]),get_config:t.Func([],[V],["query"]),set_config:t.Func([A],[],[])})};var P=require("@dfinity/utils"),ae={mainnet:{mainnet:null},testnet:{testnet:null},regtest:{regtest:null}},wt=({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}),Rt=({network:t,minConfirmations:e,...r})=>({min_confirmations:(0,P.toNullable)(e),network:ae[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:qt,certifiedIdlFactory:Ht});return new t(o,r,n)}getUtxosQuery=({...e})=>{let{bitcoin_get_utxos_query:r}=this.caller({certified:!1});return r(wt(e))};getBalanceQuery=({...e})=>{let{bitcoin_get_balance_query:r}=this.caller({certified:!1});return r(Rt(e))}};var kt=(n=>(n[n.Mainnet=0]="Mainnet",n[n.Regtest=1]="Regtest",n[n.Testnet=2]="Testnet",n))(kt||{}),Ot=(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))(Ot||{});var g=class extends Error{},T=class extends g{},q=class extends g{},U=class extends g{},G=class extends g{},W=class extends g{},M=class extends g{},B=class extends g{},z=class extends g{};var F=require("@dfinity/utils"),R=class extends Error{},Y=class extends R{},Z=class extends R{},Q=class extends R{},I=class extends Q{pendingUtxos;requiredConfirmations;constructor({pending_utxos:e,required_confirmations:r}){super(),this.pendingUtxos=(0,F.fromNullable)(e)??[],this.requiredConfirmations=r}},k=class extends R{},L=class extends k{},D=class extends k{},tt=class extends k{},et=class extends k{},vt=t=>{if("GenericError"in t){let{GenericError:{error_message:e,error_code:r}}=t;return new R(`${e} (${r})`)}if("TemporarilyUnavailable"in t)return new Y(t.TemporarilyUnavailable);if("AlreadyProcessing"in t)return new Z},Vt=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 k(`Unsupported response type in minter.retrieveBtc ${JSON.stringify(t)}`)},At=t=>{let e=vt(t);return(0,F.nonNullish)(e)?e:"InsufficientAllowance"in t?new et(`${t.InsufficientAllowance.allowance}`):rt(t)};var h=require("@dfinity/utils");var Gt=({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}),a=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:a,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}),c=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})}),x=t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64}),f=t.Variant({ValueTooSmall:t.Null,Quarantined:t.Null}),m=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)}),b=t.Variant({too_many_inputs:t.Record({max_num_inputs:t.Nat64,num_inputs:t.Nat64})}),N=t.Variant({invalid_transaction:b}),v=t.Variant({to_cancel:t.Record({reason:N}),to_retry:t.Null}),V=t.Variant({received_utxos:t.Record({to_account:c,mint_txid:t.Opt(t.Nat64),utxos:t.Vec(u)}),schedule_deposit_reimbursement:t.Record({burn_block_index:t.Nat64,account:c,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),withdrawal_fee:t.Opt(x),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:c,reason:f}),accepted_retrieve_btc_request:t.Record({received_at:t.Nat64,block_index:t.Nat64,address:m,reimbursement_account:t.Opt(c),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:c,amount:t.Nat64,reason:N}),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(x),new_txid:t.Vec(t.Nat8),submitted_at:t.Nat64,reason:t.Opt(v)}),checked_utxo_v2:t.Record({utxo:u,account:c}),ignored_utxo:t.Record({utxo:u}),checked_utxo_mint_unknown:t.Record({utxo:u,account:c}),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})}),A=t.Record({timestamp:t.Opt(t.Nat64),payload:V}),lt=t.Record({retrieve_btc_min_amount:t.Nat64,min_confirmations:t.Nat32,kyt_fee:t.Nat64}),ut=t.Record({address:t.Text,amount:t.Nat64}),C=t.Record({block_index:t.Nat64}),dt=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})}),_t=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}),pt=t.Record({account:c,amount:t.Nat64,reason:p}),ft=t.Record({account:c,mint_block_index:t.Nat64,amount:t.Nat64,reason:p}),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:pt,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Reimbursed:ft,Pending:t.Null}),xt=t.Record({from_subaccount:t.Opt(t.Vec(t.Nat8)),address:t.Text,amount:t.Nat64}),ht=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}),mt=t.Nat64,Nt=t.Record({utxo:u,earliest_retry:mt,reason:f}),gt=t.Record({confirmations:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),yt=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(Nt)),required_confirmations:t.Nat32,pending_utxos:t.Opt(t.Vec(gt)),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(A)],[]),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([],[lt],[]),get_withdrawal_account:t.Func([],[c],[]),retrieve_btc:t.Func([ut],[t.Variant({Ok:C,Err:dt})],[]),retrieve_btc_status:t.Func([t.Record({block_index:t.Nat64})],[_t],[]),retrieve_btc_status_v2:t.Func([t.Record({block_index:t.Nat64})],[H],[]),retrieve_btc_status_v2_by_account:t.Func([t.Opt(c)],[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:ht})],[]),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:yt})],[])})};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)}),i=t.Variant({Upgrade:t.Opt(r),Init:o}),a=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:a,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}),c=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})}),x=t.Record({minter_fee:t.Nat64,bitcoin_fee:t.Nat64}),f=t.Variant({ValueTooSmall:t.Null,Quarantined:t.Null}),m=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)}),b=t.Variant({too_many_inputs:t.Record({max_num_inputs:t.Nat64,num_inputs:t.Nat64})}),N=t.Variant({invalid_transaction:b}),v=t.Variant({to_cancel:t.Record({reason:N}),to_retry:t.Null}),V=t.Variant({received_utxos:t.Record({to_account:c,mint_txid:t.Opt(t.Nat64),utxos:t.Vec(u)}),schedule_deposit_reimbursement:t.Record({burn_block_index:t.Nat64,account:c,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),withdrawal_fee:t.Opt(x),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:c,reason:f}),accepted_retrieve_btc_request:t.Record({received_at:t.Nat64,block_index:t.Nat64,address:m,reimbursement_account:t.Opt(c),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:c,amount:t.Nat64,reason:N}),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(x),new_txid:t.Vec(t.Nat8),submitted_at:t.Nat64,reason:t.Opt(v)}),checked_utxo_v2:t.Record({utxo:u,account:c}),ignored_utxo:t.Record({utxo:u}),checked_utxo_mint_unknown:t.Record({utxo:u,account:c}),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})}),A=t.Record({timestamp:t.Opt(t.Nat64),payload:V}),lt=t.Record({retrieve_btc_min_amount:t.Nat64,min_confirmations:t.Nat32,kyt_fee:t.Nat64}),ut=t.Record({address:t.Text,amount:t.Nat64}),C=t.Record({block_index:t.Nat64}),dt=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})}),_t=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}),pt=t.Record({account:c,amount:t.Nat64,reason:p}),ft=t.Record({account:c,mint_block_index:t.Nat64,amount:t.Nat64,reason:p}),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:pt,Unknown:t.Null,Submitted:t.Record({txid:t.Vec(t.Nat8)}),Reimbursed:ft,Pending:t.Null}),xt=t.Record({from_subaccount:t.Opt(t.Vec(t.Nat8)),address:t.Text,amount:t.Nat64}),ht=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}),mt=t.Nat64,Nt=t.Record({utxo:u,earliest_retry:mt,reason:f}),gt=t.Record({confirmations:t.Nat32,value:t.Nat64,outpoint:t.Record({txid:t.Vec(t.Nat8),vout:t.Nat32})}),yt=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(Nt)),required_confirmations:t.Nat32,pending_utxos:t.Opt(t.Vec(gt)),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(A)],["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([],[lt],["query"]),get_withdrawal_account:t.Func([],[c],[]),retrieve_btc:t.Func([ut],[t.Variant({Ok:C,Err:dt})],[]),retrieve_btc_status:t.Func([t.Record({block_index:t.Nat64})],[_t],["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(c)],[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:ht})],[]),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:yt})],[])})};var nt=class t extends h.Canister{static create(e){let{service:r,certifiedService:n,canisterId:o}=(0,h.createServices)({options:e,idlFactory:Wt,certifiedIdlFactory:Gt});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 Vt(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,h.toNullable)(n)});if("Err"in o)throw At(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:a})=>({id:i,status:(0,h.fromNullable)(a)}))};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 St=require("@dfinity/utils");function ce(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function at(t,...e){if(!ce(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 Bt(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 Mt(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 y(t,e){return t<<32-e|t>>>e}function ie(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Pt(t){return typeof t=="string"&&(t=ie(t)),at(t),t}var ot=class{};function zt(t){let e=n=>t().update(Pt(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function se(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let o=BigInt(32),i=BigInt(4294967295),a=Number(r>>o&i),s=Number(r&i),l=n?4:0,_=n?0:4;t.setUint32(e+l,a,n),t.setUint32(e+_,s,n)}function Qt(t,e,r){return t&e^~t&r}function $t(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){Bt(this),e=Pt(e),at(e);let{view:r,buffer:n,blockLen:o}=this,i=e.length;for(let a=0;a<i;){let s=Math.min(o-this.pos,i-a);if(s===o){let l=ct(e);for(;o<=i-a;a+=o)this.process(l,a);continue}n.set(e.subarray(a,a+s),this.pos),this.pos+=s,a+=s,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Bt(this),Mt(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:i}=this,{pos:a}=this;r[a++]=128,$(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(n,0),a=0);for(let c=a;c<o;c++)r[c]=0;se(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 c=0;c<_;c++)s.setUint32(4*c,d[c],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:a,pos:s}=this;return e.destroyed=a,e.finished=i,e.length=o,e.pos=s,o%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}},w=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var le=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]),O=new Uint32Array(64),Tt=class extends it{constructor(e=32){super(64,e,8,!1),this.A=w[0]|0,this.B=w[1]|0,this.C=w[2]|0,this.D=w[3]|0,this.E=w[4]|0,this.F=w[5]|0,this.G=w[6]|0,this.H=w[7]|0}get(){let{A:e,B:r,C:n,D:o,E:i,F:a,G:s,H:l}=this;return[e,r,n,o,i,a,s,l]}set(e,r,n,o,i,a,s,l){this.A=e|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=a|0,this.G=s|0,this.H=l|0}process(e,r){for(let c=0;c<16;c++,r+=4)O[c]=e.getUint32(r,!1);for(let c=16;c<64;c++){let u=O[c-15],p=O[c-2],x=y(u,7)^y(u,18)^u>>>3,f=y(p,17)^y(p,19)^p>>>10;O[c]=f+O[c-7]+x+O[c-16]|0}let{A:n,B:o,C:i,D:a,E:s,F:l,G:_,H:d}=this;for(let c=0;c<64;c++){let u=y(s,6)^y(s,11)^y(s,25),p=d+u+Qt(s,l,_)+le[c]+O[c]|0,f=(y(n,2)^y(n,13)^y(n,22))+$t(n,o,i)|0;d=_,_=l,l=s,s=a+p|0,a=i,i=o,o=n,n=p+f|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,a=a+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,a,s,l,_,d)}roundClean(){$(O)}destroy(){this.set(0,0,0,0,0,0,0,0),$(this.buffer)}};var Ut=zt(()=>new Tt);var ue="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",jt=ue;function de(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=>jt.indexOf(o)).reduce((o,i)=>(o=o.map(a=>{let s=a*58+i;return i=s>>8,s}),o),new Uint8Array(n)).reverse().filter((o=>i=>o=o||i)(!1))])}var Ft=de;var j=ne(Yt());var xe=0,he=5,be=111,me=196,Ne={[xe]:{type:1,networks:[0]},[be]:{type:1,networks:[2,1]},[he]:{type:2,networks:[0]},[me]:{type:2,networks:[2,1]}},ge=({address:t,network:e})=>{let n=(d=>{try{return Ft(d)}catch{throw new T}})(t),{length:o}=n;if(o!==25)throw new B(`Expected the address to be 25 bytes, got ${o}.`);(d=>{let c=d.slice(o-4,o),u=d.slice(0,o-4),p=Ut.create();p.update(u);let x=Ut.create();x.update(p.digest());let f=x.digest().slice(0,4);if(c.some((m,b)=>m!==f[b]))throw new B(`Checksum mismatch expected ${c}, got ${f}.`)})(n);let[a]=n,s=Ne[a];if((0,St.isNullish)(s))throw new U;let{type:l,networks:_}=s;if(!_.includes(e))throw new z;return{address:t,network:e,type:l,parser:"base58"}},ye=({address:t,network:e})=>{let r=d=>{try{return d.startsWith("bc1p")||d.startsWith("tb1p")||d.startsWith("bcrt1p")?j.bech32m.decode(d):j.bech32.decode(d)}catch{throw new B}},{prefix:n,words:o}=r(t),a={bc:0,tb:2,bcrt:1}[n];if((0,St.isNullish)(a))throw new T;if(a!==e)throw new M;let[s,...l]=o;if(s>1)throw new W;switch(j.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 G}},we=({address:t,network:e=0})=>{switch(t.charAt(0)){case"1":case"2":case"3":case"m":case"n":return ge({address:t,network:e});case"b":case"B":case"t":case"T":return ye({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: