btc-wallet 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +45 -20
- package/dist/index.js.map +3 -3
- package/dist/utils/index.d.ts +4 -0
- package/esm/index.js +45 -20
- package/esm/index.js.map +3 -3
- package/package.json +1 -1
package/dist/utils/index.d.ts
CHANGED
@@ -5,3 +5,7 @@ export declare const defaultTokenIcon = "https://static.particle.network/token-l
|
|
5
5
|
export declare const ipfsToSrc: (ipfs: string) => string;
|
6
6
|
export declare const checkBTCVersion: (accountContracts: AAOptions["accountContracts"], accountContractKey: string, version: string) => boolean;
|
7
7
|
export declare const delay: (ms: number) => Promise<unknown>;
|
8
|
+
export declare function retryOperation<T>(operation: () => Promise<T> | T, shouldStop: (result: T) => boolean, { maxRetries, delayMs, }?: {
|
9
|
+
maxRetries?: number;
|
10
|
+
delayMs?: number;
|
11
|
+
}): Promise<T>;
|
package/esm/index.js
CHANGED
@@ -470,7 +470,7 @@ var _network2, _event2;
|
|
470
470
|
var MagicEdenConnector = class extends BaseConnector {
|
471
471
|
constructor() {
|
472
472
|
super();
|
473
|
-
__privateAdd(this, _network2, "
|
473
|
+
__privateAdd(this, _network2, "Mainnet");
|
474
474
|
__privateAdd(this, _event2, new EventEmitter2());
|
475
475
|
this.metadata = {
|
476
476
|
id: "magicEden",
|
@@ -1309,6 +1309,27 @@ var checkBTCVersion = (accountContracts, accountContractKey, version) => {
|
|
1309
1309
|
return accountContracts[accountContractKey].some((item) => item.version === version);
|
1310
1310
|
};
|
1311
1311
|
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
1312
|
+
function retryOperation(_0, _1) {
|
1313
|
+
return __async(this, arguments, function* (operation, shouldStop, {
|
1314
|
+
maxRetries = 3,
|
1315
|
+
delayMs = 1e3
|
1316
|
+
} = {}) {
|
1317
|
+
let retries = 0;
|
1318
|
+
while (retries <= maxRetries) {
|
1319
|
+
const result = yield operation();
|
1320
|
+
if (shouldStop(result)) {
|
1321
|
+
return result;
|
1322
|
+
}
|
1323
|
+
if (retries === maxRetries) {
|
1324
|
+
console.warn("Max retries reached");
|
1325
|
+
return result;
|
1326
|
+
}
|
1327
|
+
retries++;
|
1328
|
+
yield delay(delayMs);
|
1329
|
+
}
|
1330
|
+
throw new Error("Unexpected execution path");
|
1331
|
+
});
|
1332
|
+
}
|
1312
1333
|
|
1313
1334
|
// src/utils/ethereumUtils.ts
|
1314
1335
|
import {
|
@@ -2729,7 +2750,7 @@ function request(url, options) {
|
|
2729
2750
|
body,
|
2730
2751
|
method
|
2731
2752
|
});
|
2732
|
-
const
|
2753
|
+
const retryCount = (_a = options == null ? void 0 : options.retryCount) != null ? _a : 1;
|
2733
2754
|
const controller = new AbortController();
|
2734
2755
|
const timeout = (options == null ? void 0 : options.timeout) || 2e4;
|
2735
2756
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
@@ -2752,16 +2773,16 @@ function request(url, options) {
|
|
2752
2773
|
return data;
|
2753
2774
|
} catch (err) {
|
2754
2775
|
console.error(err);
|
2755
|
-
if (
|
2756
|
-
console.log(`Retrying... attempts left: ${
|
2757
|
-
return request(url, __spreadProps(__spreadValues({}, options), { retryCount:
|
2776
|
+
if (retryCount > 0) {
|
2777
|
+
console.log(`Retrying... attempts left: ${retryCount}`);
|
2778
|
+
return request(url, __spreadProps(__spreadValues({}, options), { retryCount: retryCount - 1 }));
|
2758
2779
|
} else if ((options == null ? void 0 : options.pollingInterval) && (options == null ? void 0 : options.maxPollingAttempts)) {
|
2759
2780
|
if (options.maxPollingAttempts > 0) {
|
2760
2781
|
console.log(`Polling... attempts left: ${options.maxPollingAttempts}`);
|
2761
2782
|
yield new Promise((resolve) => setTimeout(resolve, options.pollingInterval));
|
2762
2783
|
return request(url, __spreadProps(__spreadValues({}, options), {
|
2763
2784
|
maxPollingAttempts: options.maxPollingAttempts - 1,
|
2764
|
-
retryCount
|
2785
|
+
retryCount
|
2765
2786
|
}));
|
2766
2787
|
}
|
2767
2788
|
}
|
@@ -2912,8 +2933,15 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2912
2933
|
}
|
2913
2934
|
];
|
2914
2935
|
}
|
2915
|
-
|
2916
|
-
const btcPublicKey = yield btcContext.getPublicKey()
|
2936
|
+
yield btcContext.login();
|
2937
|
+
const btcPublicKey = yield retryOperation(btcContext.getPublicKey, (res) => !!res, {
|
2938
|
+
maxRetries: 40,
|
2939
|
+
delayMs: 3e3
|
2940
|
+
});
|
2941
|
+
console.log("btcPublicKey:", btcPublicKey);
|
2942
|
+
if (!btcPublicKey) {
|
2943
|
+
throw new Error("No connected BTC wallet, please connect your BTC wallet first.");
|
2944
|
+
}
|
2917
2945
|
const { nearTempAddress, nearTempPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
|
2918
2946
|
return [
|
2919
2947
|
{
|
@@ -3235,24 +3263,21 @@ function getBtcGasPrice() {
|
|
3235
3263
|
}
|
3236
3264
|
});
|
3237
3265
|
}
|
3238
|
-
var retryCount = 0;
|
3239
3266
|
function getBtcBalance() {
|
3240
3267
|
return __async(this, null, function* () {
|
3241
|
-
|
3268
|
+
var _a;
|
3269
|
+
const { account } = yield retryOperation(getBtcProvider, (res2) => !!res2.account);
|
3242
3270
|
if (!account) {
|
3243
|
-
|
3244
|
-
|
3245
|
-
throw new Error("BTC Account is not available.");
|
3246
|
-
}
|
3247
|
-
yield delay(1e3);
|
3248
|
-
return getBtcBalance();
|
3271
|
+
console.error("BTC Account is not available.");
|
3272
|
+
return { rawBalance: 0, balance: 0 };
|
3249
3273
|
}
|
3250
|
-
retryCount = 0;
|
3251
3274
|
const btcRpcUrl = yield getBtcRpcUrl();
|
3252
3275
|
const res = yield fetch(`${btcRpcUrl}/address/${account}/utxo`).then((res2) => res2.json());
|
3253
|
-
const rawBalance = res.
|
3276
|
+
const rawBalance = (_a = res.filter((item) => {
|
3277
|
+
var _a2;
|
3278
|
+
return (_a2 = item == null ? void 0 : item.status) == null ? void 0 : _a2.confirmed;
|
3279
|
+
})) == null ? void 0 : _a.reduce((acc, cur) => acc + cur.value, 0);
|
3254
3280
|
const balance = rawBalance / __pow(10, 8);
|
3255
|
-
console.log("btc balance:", balance);
|
3256
3281
|
return { rawBalance, balance };
|
3257
3282
|
});
|
3258
3283
|
}
|
@@ -3294,7 +3319,7 @@ function executeBurrowSupply(_0) {
|
|
3294
3319
|
|
3295
3320
|
// src/index.ts
|
3296
3321
|
var getVersion = () => {
|
3297
|
-
return "0.3.
|
3322
|
+
return "0.3.5";
|
3298
3323
|
};
|
3299
3324
|
if (typeof window !== "undefined") {
|
3300
3325
|
window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();
|