btc-wallet 0.3.21 → 0.3.23

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.
@@ -17,6 +17,7 @@ type CheckGasTokenArrearsReturnType<T extends boolean> = T extends true ? void :
17
17
  msg: string;
18
18
  } | undefined;
19
19
  export declare function checkGasTokenArrears<T extends boolean>(debtInfo: DebtInfo | undefined, isDev: boolean, autoDeposit?: T): Promise<CheckGasTokenArrearsReturnType<T>>;
20
+ export declare function queryGasTokenArrears(isDev?: boolean): Promise<DebtInfo | undefined>;
20
21
  export declare function getBtcGasPrice(): Promise<number>;
21
22
  export declare function getBtcBalance(): Promise<{
22
23
  rawBalance: number;
@@ -41,6 +42,7 @@ export declare function getDepositAmount(amount: string, option?: {
41
42
  receiveAmount: number;
42
43
  fee: number;
43
44
  }>;
45
+ export declare function getCsnaAccountId(isDev?: boolean): Promise<string>;
44
46
  interface ExecuteBTCDepositAndActionParams<T extends boolean = true> {
45
47
  action?: {
46
48
  receiver_id: string;
package/dist/index.js CHANGED
@@ -97,8 +97,10 @@ __export(src_exports, {
97
97
  getAccountInfo: () => getAccountInfo,
98
98
  getBtcBalance: () => getBtcBalance,
99
99
  getBtcGasPrice: () => getBtcGasPrice,
100
+ getCsnaAccountId: () => getCsnaAccountId,
100
101
  getDepositAmount: () => getDepositAmount,
101
102
  getVersion: () => getVersion,
103
+ queryGasTokenArrears: () => queryGasTokenArrears,
102
104
  sendBitcoin: () => sendBitcoin,
103
105
  setupBTCWallet: () => setupBTCWallet,
104
106
  useAccountContract: () => useAccountContract,
@@ -2832,10 +2834,10 @@ function pollTransactionStatuses(network, hashes) {
2832
2834
  currentAttempt++;
2833
2835
  const promises = Array.from(pendingHashes).map((hash) => __async(this, null, function* () {
2834
2836
  try {
2835
- const result = yield provider.txStatus(hash, "unused", "FINAL");
2836
- if (result && result.status) {
2837
- console.log(`Transaction ${hash} result:`, result);
2838
- results.set(hash, result);
2837
+ const result2 = yield provider.txStatus(hash, "unused", "FINAL");
2838
+ if (result2 && result2.status) {
2839
+ console.log(`Transaction ${hash} result:`, result2);
2840
+ results.set(hash, result2);
2839
2841
  pendingHashes.delete(hash);
2840
2842
  }
2841
2843
  } catch (error) {
@@ -2855,7 +2857,8 @@ function pollTransactionStatuses(network, hashes) {
2855
2857
  yield delay(1e4);
2856
2858
  }
2857
2859
  }
2858
- return hashes.map((hash) => results.get(hash));
2860
+ const result = hashes.map((hash) => results.get(hash)).filter(Boolean);
2861
+ return result;
2859
2862
  });
2860
2863
  }
2861
2864
 
@@ -3306,6 +3309,14 @@ function checkGasTokenArrears(debtInfo, isDev, autoDeposit) {
3306
3309
  }
3307
3310
  });
3308
3311
  }
3312
+ function queryGasTokenArrears(isDev) {
3313
+ return __async(this, null, function* () {
3314
+ const config = yield getConfig(isDev || false);
3315
+ const csna = yield getCsnaAccountId(isDev);
3316
+ const accountInfo = yield getAccountInfo(csna, config.accountContractId);
3317
+ return accountInfo == null ? void 0 : accountInfo.debt_info;
3318
+ });
3319
+ }
3309
3320
  function getBtcGasPrice() {
3310
3321
  return __async(this, null, function* () {
3311
3322
  const network = yield getNetwork();
@@ -3381,6 +3392,21 @@ function getDepositAmount(amount, option) {
3381
3392
  };
3382
3393
  });
3383
3394
  }
3395
+ function getCsnaAccountId(isDev) {
3396
+ return __async(this, null, function* () {
3397
+ const config = yield getConfig(isDev || false);
3398
+ const { getPublicKey } = getBtcProvider();
3399
+ const btcPublicKey = yield getPublicKey();
3400
+ const csna = yield nearCall(
3401
+ config.accountContractId,
3402
+ "get_chain_signature_near_account_id",
3403
+ {
3404
+ btc_public_key: btcPublicKey
3405
+ }
3406
+ );
3407
+ return csna;
3408
+ });
3409
+ }
3384
3410
  function executeBTCDepositAndAction(_0) {
3385
3411
  return __async(this, arguments, function* ({
3386
3412
  action,
@@ -3401,13 +3427,7 @@ function executeBTCDepositAndAction(_0) {
3401
3427
  if (!amount && !action) {
3402
3428
  throw new Error("amount or action is required");
3403
3429
  }
3404
- const csna = yield nearCall(
3405
- config.accountContractId,
3406
- "get_chain_signature_near_account_id",
3407
- {
3408
- btc_public_key: btcPublicKey
3409
- }
3410
- );
3430
+ const csna = yield getCsnaAccountId(isDev);
3411
3431
  const rawDepositAmount = (_a = action ? action.amount : amount) != null ? _a : "0";
3412
3432
  if (new import_big.default(rawDepositAmount).lt(0)) {
3413
3433
  throw new Error("amount must be greater than 0");
@@ -3424,11 +3444,18 @@ function executeBTCDepositAndAction(_0) {
3424
3444
  gas: gasLimit
3425
3445
  }));
3426
3446
  }
3427
- if (action) {
3428
- newActions.push(__spreadProps(__spreadValues({}, action), {
3429
- amount: (repayAction == null ? void 0 : repayAction.amount) && !fixedAmount ? new import_big.default(receiveAmount).minus(repayAction.amount).toString() : receiveAmount.toString(),
3430
- gas: gasLimit
3431
- }));
3447
+ if (action || !action && new import_big.default((accountInfo == null ? void 0 : accountInfo.gas_token[config.token]) || 0).lt(MINIMUM_DEPOSIT_AMOUNT_BASE)) {
3448
+ newActions.push(
3449
+ action ? __spreadProps(__spreadValues({}, action), {
3450
+ amount: (repayAction == null ? void 0 : repayAction.amount) && !fixedAmount ? new import_big.default(receiveAmount).minus(repayAction.amount).toString() : receiveAmount.toString(),
3451
+ gas: gasLimit
3452
+ }) : {
3453
+ receiver_id: config.accountContractId,
3454
+ amount: MINIMUM_DEPOSIT_AMOUNT_BASE.toString(),
3455
+ msg: JSON.stringify("Deposit"),
3456
+ gas: gasLimit
3457
+ }
3458
+ );
3432
3459
  }
3433
3460
  const depositMsg = {
3434
3461
  recipient_id: csna,
@@ -3618,21 +3645,17 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3618
3645
  }
3619
3646
  function getNearAccountByBtcPublicKey(btcPublicKey) {
3620
3647
  return __async(this, null, function* () {
3621
- const nearAddress = yield nearCall2(
3622
- currentConfig.accountContractId,
3623
- "get_chain_signature_near_account_id",
3624
- { btc_public_key: btcPublicKey }
3625
- );
3648
+ const csna = yield getCsnaAccountId(isDev);
3626
3649
  const nearPublicKey = yield nearCall2(
3627
3650
  currentConfig.accountContractId,
3628
3651
  "get_chain_signature_near_account_public_key",
3629
3652
  { btc_public_key: btcPublicKey }
3630
3653
  );
3631
- state.saveAccount(nearAddress);
3654
+ state.saveAccount(csna);
3632
3655
  state.savePublicKey(nearPublicKey);
3633
3656
  state.saveBtcPublicKey(btcPublicKey);
3634
3657
  return {
3635
- nearAddress,
3658
+ nearAddress: csna,
3636
3659
  nearPublicKey
3637
3660
  };
3638
3661
  });
@@ -3971,7 +3994,7 @@ function setupBTCWallet({
3971
3994
 
3972
3995
  // src/index.ts
3973
3996
  var getVersion = () => {
3974
- return "0.3.21";
3997
+ return "0.3.23";
3975
3998
  };
3976
3999
  if (typeof window !== "undefined") {
3977
4000
  window.__BTC_WALLET_VERSION = getVersion();