@omnisat/lasereyes 0.0.42 → 0.0.44

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
@@ -88,6 +88,7 @@ var __forAwait = (obj, it, method) => {
88
88
  // src/index.tsx
89
89
  var src_exports = {};
90
90
  __export(src_exports, {
91
+ FRACTAL_MAINNET: () => FRACTAL_MAINNET,
91
92
  FRACTAL_TESTNET: () => FRACTAL_TESTNET,
92
93
  LEATHER: () => LEATHER,
93
94
  LEATHER_MAINNET: () => LEATHER_MAINNET,
@@ -119,15 +120,21 @@ __export(src_exports, {
119
120
  REGTEST: () => REGTEST,
120
121
  SIGNET: () => SIGNET,
121
122
  TESTNET: () => TESTNET,
123
+ TESTNET4: () => TESTNET4,
122
124
  UNISAT: () => UNISAT,
125
+ UNISAT_FRACTAL_MAINNET: () => UNISAT_FRACTAL_MAINNET,
123
126
  UNISAT_FRACTAL_TESTNET: () => UNISAT_FRACTAL_TESTNET,
124
127
  UNISAT_MAINNET: () => UNISAT_MAINNET,
128
+ UNISAT_SIGNET: () => UNISAT_SIGNET,
125
129
  UNISAT_TESTNET: () => UNISAT_TESTNET,
130
+ UNISAT_TESTNET4: () => UNISAT_TESTNET4,
126
131
  UnisatLogo: () => UnisatLogo,
127
132
  WALLETS: () => WALLETS,
128
133
  WIZZ: () => WIZZ,
129
134
  WIZZ_MAINNET: () => WIZZ_MAINNET,
135
+ WIZZ_SIGNET: () => WIZZ_SIGNET,
130
136
  WIZZ_TESTNET: () => WIZZ_TESTNET,
137
+ WIZZ_TESTNET4: () => WIZZ_TESTNET4,
131
138
  WalletIcon: () => WalletIcon,
132
139
  WizzLogo: () => WizzLogo,
133
140
  XVERSE: () => XVERSE,
@@ -142,6 +149,7 @@ __export(src_exports, {
142
149
  estimateTxSize: () => estimateTxSize,
143
150
  findOrdinalsAddress: () => findOrdinalsAddress,
144
151
  findPaymentAddress: () => findPaymentAddress,
152
+ getAddressUtxos: () => getAddressUtxos,
145
153
  getBTCBalance: () => getBTCBalance,
146
154
  getBitcoinNetwork: () => getBitcoinNetwork,
147
155
  getLeatherNetwork: () => getLeatherNetwork,
@@ -165,9 +173,12 @@ module.exports = __toCommonJS(src_exports);
165
173
 
166
174
  // src/consts/networks.ts
167
175
  var XVERSE_NETWORK = "Mainnet";
168
- var UNISAT_MAINNET = "livenet";
169
- var UNISAT_TESTNET = "testnet";
170
- var UNISAT_FRACTAL_TESTNET = "unknown";
176
+ var UNISAT_MAINNET = "BITCOIN_MAINNET";
177
+ var UNISAT_TESTNET = "BITCOIN_TESTNET";
178
+ var UNISAT_TESTNET4 = "BITCOIN_TESTNET4";
179
+ var UNISAT_SIGNET = "BITCOIN_SIGNET";
180
+ var UNISAT_FRACTAL_MAINNET = "FRACTAL_BITCOIN_MAINNET";
181
+ var UNISAT_FRACTAL_TESTNET = "FRACTAL_BITCOIN_TESTNET";
171
182
  var OP_WALLET_MAINNET = "livenet";
172
183
  var OP_WALLET_TESTNET = "testnet";
173
184
  var XVERSE_MAINNET = "Mainnet";
@@ -177,11 +188,15 @@ var OKX_MAINNET = "livenet";
177
188
  var OKX_TESTNET = "testnet";
178
189
  var WIZZ_MAINNET = "livenet";
179
190
  var WIZZ_TESTNET = "testnet";
191
+ var WIZZ_TESTNET4 = "testnet4";
192
+ var WIZZ_SIGNET = "signet";
180
193
  var LEATHER_MAINNET = "mainnet";
181
194
  var LEATHER_TESTNET = "testnet";
182
195
  var MAINNET = "mainnet";
183
196
  var SIGNET = "signet";
184
197
  var TESTNET = "testnet";
198
+ var TESTNET4 = "testnet4";
199
+ var FRACTAL_MAINNET = "fractal_mainnet";
185
200
  var FRACTAL_TESTNET = "fractal_testnet";
186
201
  var REGTEST = "regtest";
187
202
  var getXverseNetwork = (network) => {
@@ -205,6 +220,12 @@ var getUnisatNetwork = (network) => {
205
220
  return UNISAT_MAINNET;
206
221
  if (network === TESTNET)
207
222
  return UNISAT_TESTNET;
223
+ if (network === TESTNET4)
224
+ return UNISAT_TESTNET4;
225
+ if (network === SIGNET)
226
+ return UNISAT_SIGNET;
227
+ if (network === FRACTAL_MAINNET)
228
+ return UNISAT_FRACTAL_MAINNET;
208
229
  if (network === FRACTAL_TESTNET)
209
230
  return UNISAT_FRACTAL_TESTNET;
210
231
  return UNISAT_MAINNET;
@@ -214,6 +235,14 @@ var getWizzNetwork = (network) => {
214
235
  return WIZZ_MAINNET;
215
236
  if (network === TESTNET)
216
237
  return WIZZ_TESTNET;
238
+ if (network === TESTNET4)
239
+ return WIZZ_TESTNET4;
240
+ if (network === SIGNET)
241
+ return WIZZ_SIGNET;
242
+ if (network === FRACTAL_TESTNET)
243
+ return WIZZ_TESTNET;
244
+ if (network === FRACTAL_MAINNET)
245
+ return WIZZ_MAINNET;
217
246
  return WIZZ_MAINNET;
218
247
  };
219
248
  var getNetworkForUnisat = (network) => {
@@ -221,6 +250,12 @@ var getNetworkForUnisat = (network) => {
221
250
  return MAINNET;
222
251
  if (network === UNISAT_TESTNET)
223
252
  return TESTNET;
253
+ if (network === UNISAT_TESTNET4)
254
+ return TESTNET4;
255
+ if (network === UNISAT_SIGNET)
256
+ return SIGNET;
257
+ if (network === UNISAT_FRACTAL_MAINNET)
258
+ return FRACTAL_MAINNET;
224
259
  if (network === UNISAT_FRACTAL_TESTNET)
225
260
  return FRACTAL_TESTNET;
226
261
  return MAINNET;
@@ -251,6 +286,14 @@ var getNetworkForWizz = (network) => {
251
286
  return MAINNET;
252
287
  if (network === WIZZ_TESTNET)
253
288
  return TESTNET;
289
+ if (network === WIZZ_TESTNET4)
290
+ return TESTNET4;
291
+ if (network === WIZZ_SIGNET)
292
+ return SIGNET;
293
+ if (network === FRACTAL_TESTNET)
294
+ return TESTNET;
295
+ if (network === FRACTAL_MAINNET)
296
+ return MAINNET;
254
297
  return MAINNET;
255
298
  };
256
299
  var MEMPOOL_SPACE_URL = "https://mempool.space";
@@ -310,7 +353,7 @@ var createConfig = (config) => {
310
353
  };
311
354
 
312
355
  // src/providers/LaserEyesProvider.tsx
313
- var import_react = _toESM(require("react"));
356
+ var import_react = require("react");
314
357
  var bitcoin2 = __toESM(require("bitcoinjs-lib"));
315
358
 
316
359
  // src/consts/settings.ts
@@ -381,7 +424,7 @@ var initialWalletContext = {
381
424
  };
382
425
 
383
426
  // src/providers/LaserEyesProvider.tsx
384
- var import_usehooks_ts = _toESM(require("usehooks-ts"));
427
+ var import_usehooks_ts = require("usehooks-ts");
385
428
 
386
429
  // src/lib/helpers.ts
387
430
  var bitcoin = __toESM(require("bitcoinjs-lib"));
@@ -390,18 +433,18 @@ var import_axios = __toESM(require("axios"));
390
433
  // src/lib/urls.ts
391
434
  var MEMPOOL_SPACE_URL2 = "https://mempool.space";
392
435
  var MEMPOOL_SPACE_TESTNET_URL2 = "https://mempool.space/testnet";
393
- var getMempoolSpaceUrl2 = (network) => network === TESTNET ? MEMPOOL_SPACE_TESTNET_URL2 : MEMPOOL_SPACE_URL2;
436
+ var MEMPOOL_SPACE_TESTNET4_URL = "https://mempool.space/testnet4";
437
+ var MEMPOOL_SPACE_SIGNET_URL2 = "https://mempool.space/signet";
438
+ var MEMPOOL_SPACE_FRACTAL_MAINNET_URL = "https://mempool.fractalbitcoin.io";
439
+ var MEMPOOL_SPACE_FRACTAL_TESTNET_URL = "https://mempool-testnet.fractalbitcoin.io/";
440
+ var getMempoolSpaceUrl2 = (network) => network === TESTNET ? MEMPOOL_SPACE_TESTNET_URL2 : network === TESTNET4 ? MEMPOOL_SPACE_TESTNET4_URL : network === SIGNET ? MEMPOOL_SPACE_SIGNET_URL2 : network === FRACTAL_MAINNET ? MEMPOOL_SPACE_FRACTAL_MAINNET_URL : network === FRACTAL_TESTNET ? MEMPOOL_SPACE_FRACTAL_TESTNET_URL : MEMPOOL_SPACE_URL2;
394
441
 
395
442
  // src/lib/helpers.ts
396
443
  var ecc = __toESM(require("@bitcoinerlab/secp256k1"));
397
444
  bitcoin.initEccLib(ecc);
398
445
  var getBitcoinNetwork = (network) => {
399
- if (network === TESTNET || network === FRACTAL_TESTNET) {
446
+ if (network === TESTNET || network === TESTNET4 || network === SIGNET) {
400
447
  return bitcoin.networks.testnet;
401
- } else if (network === SIGNET) {
402
- return bitcoin.networks.testnet;
403
- } else if (network === REGTEST) {
404
- return bitcoin.networks.regtest;
405
448
  } else {
406
449
  return bitcoin.networks.bitcoin;
407
450
  }
@@ -416,9 +459,15 @@ var findPaymentAddress = (addresses) => {
416
459
  ({ purpose }) => purpose === "payment"
417
460
  );
418
461
  };
419
- var getBTCBalance = (address2) => __async(void 0, null, function* () {
462
+ var getBTCBalance = (address2, network) => __async(void 0, null, function* () {
420
463
  try {
421
- return yield import_axios.default.get(`https://blockchain.info/q/addressbalance/${address2}`).then((response) => response.data);
464
+ const utxos = yield getAddressUtxos(
465
+ address2,
466
+ network
467
+ );
468
+ if (!utxos)
469
+ return 0;
470
+ return utxos.reduce((acc, utxo) => acc + utxo.value, 0);
422
471
  } catch (error) {
423
472
  console.error("Error fetching BTC balance:", error);
424
473
  throw new Error("Failed to fetch BTC balance");
@@ -447,13 +496,33 @@ function estimateTxSize(taprootInputCount, nonTaprootInputCount, outputCount) {
447
496
  const totalOutputSize = outputCount * outputSize;
448
497
  return baseTxSize + totalInputSize + totalOutputSize;
449
498
  }
499
+ function getAddressUtxos(address2, network) {
500
+ return __async(this, null, function* () {
501
+ if (address2.startsWith("t")) {
502
+ console.log("starts with t");
503
+ if (network === MAINNET) {
504
+ return [];
505
+ }
506
+ if (network === FRACTAL_MAINNET) {
507
+ return [];
508
+ }
509
+ if (network === FRACTAL_TESTNET) {
510
+ return [];
511
+ }
512
+ }
513
+ return yield import_axios.default.get(`${getMempoolSpaceUrl2(network)}/api/address/${address2}/utxo`).then((response) => response.data);
514
+ });
515
+ }
450
516
  function createSendBtcPsbt(address2, paymentAddress, recipientAddress, amount, paymentPublicKey, network, feeRate = 7) {
451
517
  return __async(this, null, function* () {
452
518
  const isTaprootOnly = address2 === paymentAddress;
453
- const mempoolUrl = `${getMempoolSpaceUrl2(
519
+ const utxos = yield getAddressUtxos(
520
+ paymentAddress,
454
521
  network
455
- )}/api/address/${paymentAddress}/utxo`;
456
- const utxos = yield import_axios.default.get(mempoolUrl).then((response) => response.data);
522
+ );
523
+ if (!utxos) {
524
+ throw new Error("No UTXOs found");
525
+ }
457
526
  const sortedUtxos = utxos.sort(
458
527
  (a, b) => b.value - a.value
459
528
  );
@@ -533,10 +602,10 @@ function delay(ms) {
533
602
  }
534
603
 
535
604
  // src/providers/LaserEyesProvider.tsx
536
- var import_sats_connect = _toESM(require("sats-connect"));
537
- var import_address = _toESM(require("bitcoinjs-lib/src/address"));
605
+ var import_sats_connect = require("sats-connect");
606
+ var import_address = require("bitcoinjs-lib/src/address");
538
607
  var import_axios2 = __toESM(require("axios"));
539
- var import_jsx_runtime = _toESM(require("react/jsx-runtime"));
608
+ var import_jsx_runtime = require("react/jsx-runtime");
540
609
  var LaserEyesContext = (0, import_react.createContext)(initialWalletContext);
541
610
  var useLaserEyes = () => {
542
611
  return (0, import_react.useContext)(LaserEyesContext);
@@ -568,17 +637,17 @@ var LaserEyesProvider = ({
568
637
  const [hasLeather, setHasLeather] = (0, import_react.useState)(false);
569
638
  const [hasPhantom, setHasPhantom] = (0, import_react.useState)(false);
570
639
  const [hasWizz, setHasWizz] = (0, import_react.useState)(false);
571
- const [network, setNetwork] = (0, import_usehooks_ts.useLocalStorage)("network", MAINNET, {
572
- initializeWithValue: false
573
- });
640
+ const [network, setNetwork] = (0, import_usehooks_ts.useLocalStorage)("network", (config == null ? void 0 : config.network) || MAINNET);
574
641
  (0, import_react.useEffect)(() => {
575
- if (config) {
642
+ if (config && config.network) {
576
643
  setNetwork(config.network);
577
644
  getNetwork().then((foundNetwork) => {
578
- if (config.network !== foundNetwork) {
579
- switchNetwork(network);
580
- } else if (network !== foundNetwork) {
581
- setNetwork(network);
645
+ try {
646
+ if (config.network !== foundNetwork) {
647
+ switchNetwork(network);
648
+ }
649
+ } catch (e) {
650
+ disconnect();
582
651
  }
583
652
  });
584
653
  }
@@ -645,9 +714,9 @@ var LaserEyesProvider = ({
645
714
  const observer = new MutationObserver(() => {
646
715
  var _a, _b;
647
716
  let foundOkx;
648
- if (network === TESTNET || network === FRACTAL_TESTNET) {
717
+ if (network === TESTNET || network === TESTNET4 || network === SIGNET || network === FRACTAL_TESTNET) {
649
718
  foundOkx = (_a = window == null ? void 0 : window.okxwallet) == null ? void 0 : _a.bitcoinTestnet;
650
- } else if (network === MAINNET) {
719
+ } else if (network === MAINNET || network === FRACTAL_MAINNET) {
651
720
  foundOkx = (_b = window == null ? void 0 : window.okxwallet) == null ? void 0 : _b.bitcoin;
652
721
  }
653
722
  if (foundOkx) {
@@ -753,13 +822,20 @@ var LaserEyesProvider = ({
753
822
  const unisatPubKey = yield lib.getPublicKey();
754
823
  if (!unisatPubKey)
755
824
  throw new Error("No public key found");
756
- const foundNetwork = yield getNetwork();
757
825
  setAccounts(unisatAccounts);
758
826
  setAddress(unisatAccounts[0]);
759
827
  setPaymentAddress(unisatAccounts[0]);
760
828
  setPublicKey(unisatPubKey);
761
829
  setPaymentPublicKey(unisatPubKey);
762
830
  setLibrary(lib);
831
+ yield getNetwork().then((network2) => {
832
+ if (config.network !== network2) {
833
+ switchNetwork(network2);
834
+ }
835
+ });
836
+ getBTCBalance(unisatAccounts[0], network).then((totalBalance) => {
837
+ setBalance(totalBalance);
838
+ });
763
839
  setProvider(UNISAT);
764
840
  setConnected(true);
765
841
  const balance2 = yield lib == null ? void 0 : lib.getBalance();
@@ -767,7 +843,7 @@ var LaserEyesProvider = ({
767
843
  } catch (error) {
768
844
  throw error;
769
845
  }
770
- }), [hasUnisat]);
846
+ }), [hasUnisat, network]);
771
847
  const connectXverse = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
772
848
  try {
773
849
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, XVERSE);
@@ -791,9 +867,11 @@ var LaserEyesProvider = ({
791
867
  setProvider(XVERSE);
792
868
  setLibrary(window.BitcoinProvider);
793
869
  }
794
- getBTCBalance(foundPaymentAddress.address).then((totalBalance) => {
795
- setBalance(totalBalance);
796
- });
870
+ getBTCBalance(foundPaymentAddress.address, network).then(
871
+ (totalBalance) => {
872
+ setBalance(totalBalance);
873
+ }
874
+ );
797
875
  },
798
876
  onCancel: () => {
799
877
  throw new Error(`User canceled lasereyes to ${XVERSE} wallet`);
@@ -822,7 +900,7 @@ var LaserEyesProvider = ({
822
900
  setProvider(OYL);
823
901
  handleAccountsChanged(result);
824
902
  setConnected(true);
825
- getBTCBalance(result[1]).then((totalBalance) => {
903
+ getBTCBalance(result[1], network).then((totalBalance) => {
826
904
  setBalance(totalBalance);
827
905
  });
828
906
  } catch (error) {
@@ -855,9 +933,11 @@ var LaserEyesProvider = ({
855
933
  setProvider(MAGIC_EDEN);
856
934
  setLibrary(window.magicEden.bitcoin);
857
935
  }
858
- getBTCBalance(foundPaymentAddress.address).then((totalBalance) => {
859
- setBalance(totalBalance);
860
- });
936
+ getBTCBalance(foundPaymentAddress.address, network).then(
937
+ (totalBalance) => {
938
+ setBalance(totalBalance);
939
+ }
940
+ );
861
941
  },
862
942
  onCancel: () => {
863
943
  throw new Error(`User canceled lasereyes to ${MAGIC_EDEN} wallet`);
@@ -866,7 +946,6 @@ var LaserEyesProvider = ({
866
946
  throw new Error(`Can't lasereyes to ${MAGIC_EDEN} wallet`);
867
947
  }
868
948
  };
869
- console.log(JSON.stringify(getAddressOptions));
870
949
  yield (0, import_sats_connect.getAddress)(getAddressOptions);
871
950
  setConnected(true);
872
951
  } catch (error) {
@@ -874,31 +953,38 @@ var LaserEyesProvider = ({
874
953
  throw error;
875
954
  }
876
955
  });
877
- const connectOkx = () => __async(void 0, null, function* () {
956
+ const connectOkx = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
957
+ var _a;
878
958
  try {
879
959
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, OKX);
880
- const lib = network === TESTNET || network === FRACTAL_TESTNET ? window.okxwallet.bitcoinTestnet : window.okxwallet.bitcoin;
881
- const okxAccounts = yield lib.requestAccounts();
960
+ console.log("connecting", network);
961
+ const lib = network === TESTNET || network === TESTNET4 || network === FRACTAL_TESTNET ? window.okxwallet.bitcoinTestnet : network === SIGNET ? window.okxwallet.bitcoinSignet : window.okxwallet.bitcoin;
962
+ const okxAccounts = yield lib.connect();
882
963
  if (!okxAccounts)
883
964
  throw new Error("No accounts found");
884
- const okxPubKey = yield lib.getPublicKey();
885
- if (!okxPubKey)
886
- throw new Error("No public key found");
887
- setAccounts(okxAccounts);
888
- setAddress(okxAccounts[0]);
889
- setPaymentAddress(okxAccounts[0]);
890
- setPublicKey(okxPubKey);
891
- setPaymentPublicKey(okxPubKey);
965
+ setAccounts([okxAccounts]);
966
+ setAddress(okxAccounts.address);
967
+ if (((_a = String(okxAccounts.address)) == null ? void 0 : _a.startsWith("tb")) && network !== TESTNET && network !== TESTNET4 && network !== SIGNET) {
968
+ console.log("err");
969
+ throw new Error(
970
+ `Please switch networks to ${network} in the wallet settings.`
971
+ );
972
+ }
973
+ setPaymentAddress(okxAccounts.address);
974
+ setPublicKey(okxAccounts.publicKey);
975
+ setPaymentPublicKey(okxAccounts.publicKey);
892
976
  setLibrary(lib);
893
977
  setProvider(OKX);
894
978
  setConnected(true);
895
979
  const balance2 = yield lib == null ? void 0 : lib.getBalance();
896
980
  setBalance(balance2 == null ? void 0 : balance2.total);
897
981
  } catch (error) {
982
+ console.log("error", error);
898
983
  throw error;
899
984
  }
900
- });
985
+ }), [hasOkx, network]);
901
986
  const connectLeather = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
987
+ var _a;
902
988
  try {
903
989
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
904
990
  const lib = window.LeatherProvider;
@@ -916,6 +1002,11 @@ var LaserEyesProvider = ({
916
1002
  const segwitAddress = addresses.find(
917
1003
  (address3) => address3.type === P2WPKH
918
1004
  );
1005
+ if (((_a = String(taprootAddress == null ? void 0 : taprootAddress.address)) == null ? void 0 : _a.startsWith("tb")) && network !== TESTNET && network !== TESTNET4 && network !== SIGNET) {
1006
+ throw new Error(
1007
+ `Please switch networks to ${network} in the wallet settings.`
1008
+ );
1009
+ }
919
1010
  setAccounts(leatherAccountsParsed);
920
1011
  setAddress(String(taprootAddress == null ? void 0 : taprootAddress.address));
921
1012
  setPublicKey(String(taprootAddress == null ? void 0 : taprootAddress.publicKey));
@@ -923,20 +1014,18 @@ var LaserEyesProvider = ({
923
1014
  setPaymentPublicKey(String(segwitAddress == null ? void 0 : segwitAddress.publicKey));
924
1015
  setLibrary(lib);
925
1016
  setProvider(LEATHER);
926
- const balance2 = yield getBTCBalance(String(segwitAddress == null ? void 0 : segwitAddress.address));
1017
+ const balance2 = yield getBTCBalance(
1018
+ String(segwitAddress == null ? void 0 : segwitAddress.address),
1019
+ network
1020
+ );
927
1021
  setBalance(balance2);
928
1022
  handleAccountsChanged(leatherAccountsParsed);
929
1023
  setConnected(true);
930
1024
  yield getNetwork().then((network2) => {
931
- if (!network2) {
932
- setNetwork(MAINNET);
933
- } else {
934
- setNetwork(network2);
935
- }
936
1025
  });
937
1026
  setConnected(true);
938
1027
  } catch (error) {
939
- new Error(`Can't lasereyes to ${LEATHER} wallet`);
1028
+ throw error;
940
1029
  }
941
1030
  }), [hasLeather]);
942
1031
  const connectPhantom = () => __async(void 0, null, function* () {
@@ -960,7 +1049,10 @@ var LaserEyesProvider = ({
960
1049
  setPaymentPublicKey(paymentAccount == null ? void 0 : paymentAccount.publicKey);
961
1050
  setLibrary(lib);
962
1051
  setProvider(PHANTOM);
963
- const balance2 = yield getBTCBalance(String(paymentAccount == null ? void 0 : paymentAccount.address));
1052
+ const balance2 = yield getBTCBalance(
1053
+ String(paymentAccount == null ? void 0 : paymentAccount.address),
1054
+ network
1055
+ );
964
1056
  setBalance(balance2);
965
1057
  setConnected(true);
966
1058
  } catch (error) {
@@ -984,9 +1076,14 @@ var LaserEyesProvider = ({
984
1076
  setPaymentPublicKey(wizzPubKey);
985
1077
  setLibrary(lib);
986
1078
  setProvider(WIZZ);
1079
+ yield getNetwork().then((network2) => {
1080
+ if (config.network !== network2) {
1081
+ switchNetwork(network2);
1082
+ }
1083
+ });
1084
+ const balance2 = yield getBTCBalance(String(wizzAccounts[0]), network);
1085
+ setBalance(balance2);
987
1086
  setConnected(true);
988
- const balance2 = yield lib == null ? void 0 : lib.getBalance();
989
- setBalance(balance2 == null ? void 0 : balance2.total);
990
1087
  } catch (error) {
991
1088
  throw error;
992
1089
  }
@@ -1004,8 +1101,14 @@ var LaserEyesProvider = ({
1004
1101
  yield connectOyl();
1005
1102
  } else if (walletName === MAGIC_EDEN) {
1006
1103
  yield connectMagicEden();
1104
+ } else if (walletName === OKX) {
1105
+ yield connectOkx();
1007
1106
  } else if (walletName === LEATHER) {
1008
1107
  yield connectLeather();
1108
+ } else if (walletName === PHANTOM) {
1109
+ yield connectPhantom();
1110
+ } else if (walletName === WIZZ) {
1111
+ yield connectWizz();
1009
1112
  } else {
1010
1113
  throw new Error("Unsupported wallet..");
1011
1114
  }
@@ -1013,6 +1116,7 @@ var LaserEyesProvider = ({
1013
1116
  } catch (error) {
1014
1117
  setIsConnecting(false);
1015
1118
  disconnect();
1119
+ console.log("e", error == null ? void 0 : error.message);
1016
1120
  throw error;
1017
1121
  } finally {
1018
1122
  setIsConnecting(false);
@@ -1049,7 +1153,7 @@ var LaserEyesProvider = ({
1049
1153
  };
1050
1154
  const handleNetworkChanged = (network2) => {
1051
1155
  try {
1052
- let foundNetwork = MAINNET;
1156
+ let foundNetwork;
1053
1157
  if (provider === UNISAT) {
1054
1158
  foundNetwork = getNetworkForUnisat(network2);
1055
1159
  setNetwork(foundNetwork);
@@ -1058,10 +1162,12 @@ var LaserEyesProvider = ({
1058
1162
  throw new Error("Not implemented");
1059
1163
  } else if (provider === WIZZ) {
1060
1164
  foundNetwork = getNetworkForWizz(network2);
1061
- setNetwork(foundNetwork);
1062
1165
  connect(provider);
1063
1166
  } else {
1064
- throw new Error("The connected wallet doesn't support this method..");
1167
+ disconnect();
1168
+ throw new Error(
1169
+ "The connected wallet doesn't support programmatic network changes.."
1170
+ );
1065
1171
  }
1066
1172
  } catch (error) {
1067
1173
  throw error;
@@ -1070,7 +1176,7 @@ var LaserEyesProvider = ({
1070
1176
  const requestAccounts = () => __async(void 0, null, function* () {
1071
1177
  try {
1072
1178
  if (!library)
1073
- return;
1179
+ throw new Error("No wallet connected");
1074
1180
  if (provider === UNISAT) {
1075
1181
  return yield library.requestAccounts();
1076
1182
  } else if (provider === XVERSE) {
@@ -1099,6 +1205,9 @@ var LaserEyesProvider = ({
1099
1205
  } else if (provider === OYL) {
1100
1206
  return yield library.requestAccounts();
1101
1207
  } else if (provider === OKX) {
1208
+ if (network === TESTNET || network === TESTNET4 || network === FRACTAL_TESTNET) {
1209
+ return yield library.connect();
1210
+ }
1102
1211
  return yield library.requestAccounts();
1103
1212
  } else if (provider === LEATHER) {
1104
1213
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
@@ -1124,6 +1233,11 @@ var LaserEyesProvider = ({
1124
1233
  setProvider(LEATHER);
1125
1234
  handleAccountsChanged(leatherAccountsParsed);
1126
1235
  setConnected(true);
1236
+ const balance2 = yield getBTCBalance(
1237
+ String(segwitAddress == null ? void 0 : segwitAddress.address),
1238
+ network
1239
+ );
1240
+ setBalance(balance2);
1127
1241
  yield getNetwork().then((network2) => {
1128
1242
  if (!network2) {
1129
1243
  setNetwork(MAINNET);
@@ -1147,19 +1261,26 @@ var LaserEyesProvider = ({
1147
1261
  throw error;
1148
1262
  }
1149
1263
  });
1150
- const getNetwork = () => __async(void 0, null, function* () {
1151
- var _a;
1264
+ const getNetwork = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
1265
+ var _a, _b;
1152
1266
  try {
1153
- if (!library)
1154
- return;
1155
1267
  if (provider === UNISAT) {
1156
- const unisatNetwork = yield library == null ? void 0 : library.getNetwork();
1157
- const foundNetwork = getNetworkForUnisat(unisatNetwork);
1158
- setNetwork(foundNetwork);
1159
- return foundNetwork;
1268
+ const unisatNetwork = yield library == null ? void 0 : library.getChain();
1269
+ if (!unisatNetwork) {
1270
+ return (_a = config == null ? void 0 : config.network) != null ? _a : MAINNET;
1271
+ }
1272
+ return getNetworkForUnisat(unisatNetwork.enum);
1160
1273
  } else if (provider === XVERSE) {
1161
1274
  if (address2.slice(0, 1) === "t") {
1162
- return TESTNET;
1275
+ if (network === TESTNET) {
1276
+ return TESTNET;
1277
+ } else if (network === TESTNET4) {
1278
+ return TESTNET4;
1279
+ } else if (network === SIGNET) {
1280
+ return SIGNET;
1281
+ } else if (network === FRACTAL_TESTNET) {
1282
+ return FRACTAL_TESTNET;
1283
+ }
1163
1284
  }
1164
1285
  return MAINNET;
1165
1286
  } else if (provider === OYL) {
@@ -1173,12 +1294,32 @@ var LaserEyesProvider = ({
1173
1294
  }
1174
1295
  return MAINNET;
1175
1296
  } else if (provider === OKX) {
1297
+ if (address2.slice(0, 1) === "t") {
1298
+ if (network === TESTNET) {
1299
+ return TESTNET;
1300
+ } else if (network === TESTNET4) {
1301
+ return TESTNET4;
1302
+ } else if (network === SIGNET) {
1303
+ return SIGNET;
1304
+ } else if (network === FRACTAL_TESTNET) {
1305
+ return FRACTAL_TESTNET;
1306
+ }
1307
+ return TESTNET;
1308
+ }
1176
1309
  const okxNetwork = yield library == null ? void 0 : library.getNetwork();
1177
1310
  const foundNetwork = getNetworkForOkx(okxNetwork);
1178
1311
  setNetwork(foundNetwork);
1179
1312
  } else if (provider === LEATHER) {
1180
1313
  if (address2.slice(0, 1) === "t") {
1181
- return TESTNET;
1314
+ if (network === TESTNET) {
1315
+ return TESTNET;
1316
+ } else if (network === TESTNET4) {
1317
+ return TESTNET4;
1318
+ } else if (network === SIGNET) {
1319
+ return SIGNET;
1320
+ } else if (network === FRACTAL_TESTNET) {
1321
+ return FRACTAL_TESTNET;
1322
+ }
1182
1323
  }
1183
1324
  return MAINNET;
1184
1325
  } else if (provider === PHANTOM) {
@@ -1188,28 +1329,33 @@ var LaserEyesProvider = ({
1188
1329
  return MAINNET;
1189
1330
  } else if (provider === WIZZ) {
1190
1331
  const wizzNetwork = yield library == null ? void 0 : library.getNetwork();
1191
- const foundNetwork = getNetworkForWizz(wizzNetwork);
1192
- setNetwork(foundNetwork);
1332
+ return getNetworkForWizz(wizzNetwork);
1193
1333
  }
1194
- return (_a = config == null ? void 0 : config.network) != null ? _a : MAINNET;
1334
+ return (_b = config == null ? void 0 : config.network) != null ? _b : MAINNET;
1195
1335
  } catch (error) {
1196
1336
  throw error;
1197
1337
  }
1198
- });
1338
+ }), [address2, provider, library]);
1199
1339
  const switchNetwork = (network2) => __async(void 0, null, function* () {
1200
1340
  try {
1201
1341
  if (!library)
1202
1342
  return;
1203
1343
  if (provider === UNISAT) {
1204
- const wantedNetwork = getWizzNetwork(network2);
1205
- yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
1344
+ const wantedNetwork = getUnisatNetwork(network2);
1345
+ yield library == null ? void 0 : library.switchChain(wantedNetwork);
1206
1346
  setNetwork(network2);
1207
1347
  } else if (provider === WIZZ) {
1348
+ if (network2 === FRACTAL_TESTNET || network2 === FRACTAL_MAINNET) {
1349
+ return yield library.switchNetwork(WIZZ_MAINNET);
1350
+ }
1208
1351
  const wantedNetwork = getNetworkForWizz(network2);
1209
1352
  yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
1210
1353
  setNetwork(network2);
1211
1354
  } else {
1212
- throw new Error("The connected wallet doesn't support this method..");
1355
+ disconnect();
1356
+ throw new Error(
1357
+ "The connected wallet doesn't support programmatic network changes.."
1358
+ );
1213
1359
  }
1214
1360
  } catch (error) {
1215
1361
  throw error;
@@ -1241,18 +1387,18 @@ var LaserEyesProvider = ({
1241
1387
  if (provider === UNISAT) {
1242
1388
  return yield library.getBalance();
1243
1389
  } else if (provider === XVERSE) {
1244
- return yield getBTCBalance(paymentAddress);
1390
+ return yield getBTCBalance(paymentAddress, network);
1245
1391
  } else if (provider === OYL) {
1246
1392
  const balanceResponse = yield library.getBalance();
1247
1393
  return balanceResponse.btc.total * 1e8;
1248
1394
  } else if (provider === MAGIC_EDEN) {
1249
- return yield getBTCBalance(paymentAddress);
1395
+ return yield getBTCBalance(paymentAddress, network);
1250
1396
  } else if (provider === OKX) {
1251
- return yield getBTCBalance(paymentAddress);
1397
+ return yield getBTCBalance(paymentAddress, network);
1252
1398
  } else if (provider === LEATHER) {
1253
- return yield getBTCBalance(paymentAddress);
1399
+ return yield getBTCBalance(paymentAddress, network);
1254
1400
  } else if (provider === PHANTOM) {
1255
- return yield getBTCBalance(paymentAddress);
1401
+ return yield getBTCBalance(paymentAddress, network);
1256
1402
  } else if (provider === WIZZ) {
1257
1403
  const balanceResponse = yield library.getBalance();
1258
1404
  return balanceResponse.total * 1e8;
@@ -1447,7 +1593,6 @@ var LaserEyesProvider = ({
1447
1593
  message,
1448
1594
  paymentType
1449
1595
  });
1450
- console.log("signed", signed);
1451
1596
  return (_a = signed == null ? void 0 : signed.result) == null ? void 0 : _a.signature;
1452
1597
  } else if (provider === PHANTOM) {
1453
1598
  const utf8Bytes = new TextEncoder().encode(message);
@@ -1580,7 +1725,6 @@ var LaserEyesProvider = ({
1580
1725
  };
1581
1726
  } else if (provider === OYL) {
1582
1727
  const signedPsbt = yield library == null ? void 0 : library.signPsbt(psbtHex, true, true);
1583
- console.log({ signedPsbt });
1584
1728
  const psbtSignedPsbt = bitcoin2.Psbt.fromHex(signedPsbt);
1585
1729
  if (broadcast) {
1586
1730
  const txId = yield pushPsbt(psbtSignedPsbt.toHex());
@@ -1844,7 +1988,7 @@ var LaserEyesProvider = ({
1844
1988
  };
1845
1989
 
1846
1990
  // src/hooks/useInscriber.ts
1847
- var import_react2 = _toESM(require("react"));
1991
+ var import_react2 = require("react");
1848
1992
 
1849
1993
  // src/consts/inscribe.ts
1850
1994
  var MIME_TYPE_TEXT = "text/plain;charset=utf-8";
@@ -2004,7 +2148,7 @@ var useInscriber = ({
2004
2148
  };
2005
2149
 
2006
2150
  // src/icons/oyl.tsx
2007
- var import_jsx_runtime2 = _toESM(require("react/jsx-runtime"));
2151
+ var import_jsx_runtime2 = require("react/jsx-runtime");
2008
2152
  var OylLogo = (_a) => {
2009
2153
  var _b = _a, {
2010
2154
  size = 42,
@@ -2084,7 +2228,7 @@ var OylLogo = (_a) => {
2084
2228
  };
2085
2229
 
2086
2230
  // src/icons/leather.tsx
2087
- var import_jsx_runtime3 = _toESM(require("react/jsx-runtime"));
2231
+ var import_jsx_runtime3 = require("react/jsx-runtime");
2088
2232
  var LeatherLogo = (_a) => {
2089
2233
  var _b = _a, {
2090
2234
  size = 42,
@@ -2144,7 +2288,7 @@ var LeatherLogo = (_a) => {
2144
2288
  };
2145
2289
 
2146
2290
  // src/icons/phantom.tsx
2147
- var import_jsx_runtime4 = _toESM(require("react/jsx-runtime"));
2291
+ var import_jsx_runtime4 = require("react/jsx-runtime");
2148
2292
  var PhantomLogo = (_a) => {
2149
2293
  var _b = _a, {
2150
2294
  size = 42,
@@ -2226,7 +2370,7 @@ var PhantomLogo = (_a) => {
2226
2370
  };
2227
2371
 
2228
2372
  // src/icons/xverse.tsx
2229
- var import_jsx_runtime5 = _toESM(require("react/jsx-runtime"));
2373
+ var import_jsx_runtime5 = require("react/jsx-runtime");
2230
2374
  var XverseLogo = (_a) => {
2231
2375
  var _b = _a, {
2232
2376
  size = 42,
@@ -2278,7 +2422,7 @@ var XverseLogo = (_a) => {
2278
2422
  };
2279
2423
 
2280
2424
  // src/icons/unisat.tsx
2281
- var import_jsx_runtime6 = _toESM(require("react/jsx-runtime"));
2425
+ var import_jsx_runtime6 = require("react/jsx-runtime");
2282
2426
  var UnisatLogo = (_a) => {
2283
2427
  var _b = _a, {
2284
2428
  size = 42,
@@ -2390,7 +2534,7 @@ var UnisatLogo = (_a) => {
2390
2534
  };
2391
2535
 
2392
2536
  // src/icons/wizz.tsx
2393
- var import_jsx_runtime7 = _toESM(require("react/jsx-runtime"));
2537
+ var import_jsx_runtime7 = require("react/jsx-runtime");
2394
2538
  var WizzLogo = (_a) => {
2395
2539
  var _b = _a, {
2396
2540
  size = 42,
@@ -2461,7 +2605,7 @@ var WizzLogo = (_a) => {
2461
2605
  };
2462
2606
 
2463
2607
  // src/icons/okx.tsx
2464
- var import_jsx_runtime8 = _toESM(require("react/jsx-runtime"));
2608
+ var import_jsx_runtime8 = require("react/jsx-runtime");
2465
2609
  var OkxLogo = (_a) => {
2466
2610
  var _b = _a, {
2467
2611
  size = 42,
@@ -2503,7 +2647,7 @@ var OkxLogo = (_a) => {
2503
2647
  };
2504
2648
 
2505
2649
  // src/icons/magiceden.tsx
2506
- var import_jsx_runtime9 = _toESM(require("react/jsx-runtime"));
2650
+ var import_jsx_runtime9 = require("react/jsx-runtime");
2507
2651
  var MagicEdenLogo = (_a) => {
2508
2652
  var _b = _a, {
2509
2653
  size = 42,
@@ -2576,7 +2720,7 @@ var MagicEdenLogo = (_a) => {
2576
2720
  };
2577
2721
 
2578
2722
  // src/icons/walletIcon.tsx
2579
- var import_jsx_runtime10 = _toESM(require("react/jsx-runtime"));
2723
+ var import_jsx_runtime10 = require("react/jsx-runtime");
2580
2724
  var WalletIcon = ({
2581
2725
  size,
2582
2726
  className,
@@ -2605,6 +2749,7 @@ var WalletIcon = ({
2605
2749
  };
2606
2750
  // Annotate the CommonJS export names for ESM import in node:
2607
2751
  0 && (module.exports = {
2752
+ FRACTAL_MAINNET,
2608
2753
  FRACTAL_TESTNET,
2609
2754
  LEATHER,
2610
2755
  LEATHER_MAINNET,
@@ -2636,15 +2781,21 @@ var WalletIcon = ({
2636
2781
  REGTEST,
2637
2782
  SIGNET,
2638
2783
  TESTNET,
2784
+ TESTNET4,
2639
2785
  UNISAT,
2786
+ UNISAT_FRACTAL_MAINNET,
2640
2787
  UNISAT_FRACTAL_TESTNET,
2641
2788
  UNISAT_MAINNET,
2789
+ UNISAT_SIGNET,
2642
2790
  UNISAT_TESTNET,
2791
+ UNISAT_TESTNET4,
2643
2792
  UnisatLogo,
2644
2793
  WALLETS,
2645
2794
  WIZZ,
2646
2795
  WIZZ_MAINNET,
2796
+ WIZZ_SIGNET,
2647
2797
  WIZZ_TESTNET,
2798
+ WIZZ_TESTNET4,
2648
2799
  WalletIcon,
2649
2800
  WizzLogo,
2650
2801
  XVERSE,
@@ -2659,6 +2810,7 @@ var WalletIcon = ({
2659
2810
  estimateTxSize,
2660
2811
  findOrdinalsAddress,
2661
2812
  findPaymentAddress,
2813
+ getAddressUtxos,
2662
2814
  getBTCBalance,
2663
2815
  getBitcoinNetwork,
2664
2816
  getLeatherNetwork,