btc-wallet 0.3.4 → 0.3.5

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/dist/index.js CHANGED
@@ -523,7 +523,7 @@ var _network2, _event2;
523
523
  var MagicEdenConnector = class extends BaseConnector {
524
524
  constructor() {
525
525
  super();
526
- __privateAdd(this, _network2, "Testnet");
526
+ __privateAdd(this, _network2, "Mainnet");
527
527
  __privateAdd(this, _event2, new import_events2.default());
528
528
  this.metadata = {
529
529
  id: "magicEden",
@@ -1362,6 +1362,27 @@ var checkBTCVersion = (accountContracts, accountContractKey, version) => {
1362
1362
  return accountContracts[accountContractKey].some((item) => item.version === version);
1363
1363
  };
1364
1364
  var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
1365
+ function retryOperation(_0, _1) {
1366
+ return __async(this, arguments, function* (operation, shouldStop, {
1367
+ maxRetries = 3,
1368
+ delayMs = 1e3
1369
+ } = {}) {
1370
+ let retries = 0;
1371
+ while (retries <= maxRetries) {
1372
+ const result = yield operation();
1373
+ if (shouldStop(result)) {
1374
+ return result;
1375
+ }
1376
+ if (retries === maxRetries) {
1377
+ console.warn("Max retries reached");
1378
+ return result;
1379
+ }
1380
+ retries++;
1381
+ yield delay(delayMs);
1382
+ }
1383
+ throw new Error("Unexpected execution path");
1384
+ });
1385
+ }
1365
1386
 
1366
1387
  // src/utils/ethereumUtils.ts
1367
1388
  var import_util2 = require("@ethereumjs/util");
@@ -2768,7 +2789,7 @@ function request(url, options) {
2768
2789
  body,
2769
2790
  method
2770
2791
  });
2771
- const retryCount2 = (_a = options == null ? void 0 : options.retryCount) != null ? _a : 1;
2792
+ const retryCount = (_a = options == null ? void 0 : options.retryCount) != null ? _a : 1;
2772
2793
  const controller = new AbortController();
2773
2794
  const timeout = (options == null ? void 0 : options.timeout) || 2e4;
2774
2795
  const timeoutId = setTimeout(() => controller.abort(), timeout);
@@ -2791,16 +2812,16 @@ function request(url, options) {
2791
2812
  return data;
2792
2813
  } catch (err) {
2793
2814
  console.error(err);
2794
- if (retryCount2 > 0) {
2795
- console.log(`Retrying... attempts left: ${retryCount2}`);
2796
- return request(url, __spreadProps(__spreadValues({}, options), { retryCount: retryCount2 - 1 }));
2815
+ if (retryCount > 0) {
2816
+ console.log(`Retrying... attempts left: ${retryCount}`);
2817
+ return request(url, __spreadProps(__spreadValues({}, options), { retryCount: retryCount - 1 }));
2797
2818
  } else if ((options == null ? void 0 : options.pollingInterval) && (options == null ? void 0 : options.maxPollingAttempts)) {
2798
2819
  if (options.maxPollingAttempts > 0) {
2799
2820
  console.log(`Polling... attempts left: ${options.maxPollingAttempts}`);
2800
2821
  yield new Promise((resolve) => setTimeout(resolve, options.pollingInterval));
2801
2822
  return request(url, __spreadProps(__spreadValues({}, options), {
2802
2823
  maxPollingAttempts: options.maxPollingAttempts - 1,
2803
- retryCount: retryCount2
2824
+ retryCount
2804
2825
  }));
2805
2826
  }
2806
2827
  }
@@ -2951,8 +2972,15 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2951
2972
  }
2952
2973
  ];
2953
2974
  }
2954
- const btcAccount = yield btcContext.login();
2955
- const btcPublicKey = yield btcContext.getPublicKey();
2975
+ yield btcContext.login();
2976
+ const btcPublicKey = yield retryOperation(btcContext.getPublicKey, (res) => !!res, {
2977
+ maxRetries: 40,
2978
+ delayMs: 3e3
2979
+ });
2980
+ console.log("btcPublicKey:", btcPublicKey);
2981
+ if (!btcPublicKey) {
2982
+ throw new Error("No connected BTC wallet, please connect your BTC wallet first.");
2983
+ }
2956
2984
  const { nearTempAddress, nearTempPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
2957
2985
  return [
2958
2986
  {
@@ -3274,24 +3302,21 @@ function getBtcGasPrice() {
3274
3302
  }
3275
3303
  });
3276
3304
  }
3277
- var retryCount = 0;
3278
3305
  function getBtcBalance() {
3279
3306
  return __async(this, null, function* () {
3280
- const { account } = getBtcProvider();
3307
+ var _a;
3308
+ const { account } = yield retryOperation(getBtcProvider, (res2) => !!res2.account);
3281
3309
  if (!account) {
3282
- retryCount++;
3283
- if (retryCount > 3) {
3284
- throw new Error("BTC Account is not available.");
3285
- }
3286
- yield delay(1e3);
3287
- return getBtcBalance();
3310
+ console.error("BTC Account is not available.");
3311
+ return { rawBalance: 0, balance: 0 };
3288
3312
  }
3289
- retryCount = 0;
3290
3313
  const btcRpcUrl = yield getBtcRpcUrl();
3291
3314
  const res = yield fetch(`${btcRpcUrl}/address/${account}/utxo`).then((res2) => res2.json());
3292
- const rawBalance = res.reduce((acc, cur) => acc + cur.value, 0);
3315
+ const rawBalance = (_a = res.filter((item) => {
3316
+ var _a2;
3317
+ return (_a2 = item == null ? void 0 : item.status) == null ? void 0 : _a2.confirmed;
3318
+ })) == null ? void 0 : _a.reduce((acc, cur) => acc + cur.value, 0);
3293
3319
  const balance = rawBalance / __pow(10, 8);
3294
- console.log("btc balance:", balance);
3295
3320
  return { rawBalance, balance };
3296
3321
  });
3297
3322
  }
@@ -3333,7 +3358,7 @@ function executeBurrowSupply(_0) {
3333
3358
 
3334
3359
  // src/index.ts
3335
3360
  var getVersion = () => {
3336
- return "0.3.4";
3361
+ return "0.3.5";
3337
3362
  };
3338
3363
  if (typeof window !== "undefined") {
3339
3364
  window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();