@omnisat/lasereyes 0.0.41 → 0.0.43

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,10 @@ 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(address2, network);
465
+ return utxos.reduce((acc, utxo) => acc + utxo.value, 0);
422
466
  } catch (error) {
423
467
  console.error("Error fetching BTC balance:", error);
424
468
  throw new Error("Failed to fetch BTC balance");
@@ -447,13 +491,15 @@ function estimateTxSize(taprootInputCount, nonTaprootInputCount, outputCount) {
447
491
  const totalOutputSize = outputCount * outputSize;
448
492
  return baseTxSize + totalInputSize + totalOutputSize;
449
493
  }
494
+ function getAddressUtxos(address2, network) {
495
+ return __async(this, null, function* () {
496
+ return yield import_axios.default.get(`${getMempoolSpaceUrl2(network)}/api/address/${address2}/utxo`).then((response) => response.data);
497
+ });
498
+ }
450
499
  function createSendBtcPsbt(address2, paymentAddress, recipientAddress, amount, paymentPublicKey, network, feeRate = 7) {
451
500
  return __async(this, null, function* () {
452
501
  const isTaprootOnly = address2 === paymentAddress;
453
- const mempoolUrl = `${getMempoolSpaceUrl2(
454
- network
455
- )}/api/address/${paymentAddress}/utxo`;
456
- const utxos = yield import_axios.default.get(mempoolUrl).then((response) => response.data);
502
+ const utxos = yield getAddressUtxos(paymentAddress, network);
457
503
  const sortedUtxos = utxos.sort(
458
504
  (a, b) => b.value - a.value
459
505
  );
@@ -533,10 +579,10 @@ function delay(ms) {
533
579
  }
534
580
 
535
581
  // src/providers/LaserEyesProvider.tsx
536
- var import_sats_connect = _toESM(require("sats-connect"));
537
- var import_address = _toESM(require("bitcoinjs-lib/src/address"));
582
+ var import_sats_connect = require("sats-connect");
583
+ var import_address = require("bitcoinjs-lib/src/address");
538
584
  var import_axios2 = __toESM(require("axios"));
539
- var import_jsx_runtime = _toESM(require("react/jsx-runtime"));
585
+ var import_jsx_runtime = require("react/jsx-runtime");
540
586
  var LaserEyesContext = (0, import_react.createContext)(initialWalletContext);
541
587
  var useLaserEyes = () => {
542
588
  return (0, import_react.useContext)(LaserEyesContext);
@@ -545,6 +591,7 @@ var LaserEyesProvider = ({
545
591
  children,
546
592
  config
547
593
  }) => {
594
+ var _a;
548
595
  const selfRef = (0, import_react.useRef)({
549
596
  accounts: []
550
597
  });
@@ -568,17 +615,19 @@ var LaserEyesProvider = ({
568
615
  const [hasLeather, setHasLeather] = (0, import_react.useState)(false);
569
616
  const [hasPhantom, setHasPhantom] = (0, import_react.useState)(false);
570
617
  const [hasWizz, setHasWizz] = (0, import_react.useState)(false);
571
- const [network, setNetwork] = (0, import_usehooks_ts.useLocalStorage)("network", MAINNET, {
618
+ const [network, setNetwork] = (0, import_usehooks_ts.useLocalStorage)("network", (_a = config == null ? void 0 : config.network) != null ? _a : MAINNET, {
572
619
  initializeWithValue: false
573
620
  });
574
621
  (0, import_react.useEffect)(() => {
575
622
  if (config) {
576
623
  setNetwork(config.network);
577
624
  getNetwork().then((foundNetwork) => {
578
- if (config.network !== foundNetwork) {
579
- switchNetwork(network);
580
- } else if (network !== foundNetwork) {
581
- setNetwork(network);
625
+ try {
626
+ if (config.network !== foundNetwork) {
627
+ switchNetwork(network);
628
+ }
629
+ } catch (e) {
630
+ disconnect();
582
631
  }
583
632
  });
584
633
  }
@@ -603,8 +652,8 @@ var LaserEyesProvider = ({
603
652
  }, []);
604
653
  (0, import_react.useEffect)(() => {
605
654
  const observer = new MutationObserver(() => {
606
- var _a;
607
- const xverseLib = (_a = window == null ? void 0 : window.XverseProviders) == null ? void 0 : _a.BitcoinProvider;
655
+ var _a2;
656
+ const xverseLib = (_a2 = window == null ? void 0 : window.XverseProviders) == null ? void 0 : _a2.BitcoinProvider;
608
657
  if (xverseLib) {
609
658
  setHasXverse(true);
610
659
  observer.disconnect();
@@ -643,11 +692,11 @@ var LaserEyesProvider = ({
643
692
  }, []);
644
693
  (0, import_react.useEffect)(() => {
645
694
  const observer = new MutationObserver(() => {
646
- var _a, _b;
695
+ var _a2, _b;
647
696
  let foundOkx;
648
- if (network === TESTNET || network === FRACTAL_TESTNET) {
649
- foundOkx = (_a = window == null ? void 0 : window.okxwallet) == null ? void 0 : _a.bitcoinTestnet;
650
- } else if (network === MAINNET) {
697
+ if (network === TESTNET || network === TESTNET4 || network === SIGNET || network === FRACTAL_TESTNET) {
698
+ foundOkx = (_a2 = window == null ? void 0 : window.okxwallet) == null ? void 0 : _a2.bitcoinTestnet;
699
+ } else if (network === MAINNET || network === FRACTAL_MAINNET) {
651
700
  foundOkx = (_b = window == null ? void 0 : window.okxwallet) == null ? void 0 : _b.bitcoin;
652
701
  }
653
702
  if (foundOkx) {
@@ -675,8 +724,8 @@ var LaserEyesProvider = ({
675
724
  }, []);
676
725
  (0, import_react.useEffect)(() => {
677
726
  const observer = new MutationObserver(() => {
678
- var _a;
679
- const phantomLib = (_a = window == null ? void 0 : window.phantom) == null ? void 0 : _a.bitcoin;
727
+ var _a2;
728
+ const phantomLib = (_a2 = window == null ? void 0 : window.phantom) == null ? void 0 : _a2.bitcoin;
680
729
  if (phantomLib && phantomLib.isPhantom) {
681
730
  setHasPhantom(true);
682
731
  observer.disconnect();
@@ -753,13 +802,20 @@ var LaserEyesProvider = ({
753
802
  const unisatPubKey = yield lib.getPublicKey();
754
803
  if (!unisatPubKey)
755
804
  throw new Error("No public key found");
756
- const foundNetwork = yield getNetwork();
757
805
  setAccounts(unisatAccounts);
758
806
  setAddress(unisatAccounts[0]);
759
807
  setPaymentAddress(unisatAccounts[0]);
760
808
  setPublicKey(unisatPubKey);
761
809
  setPaymentPublicKey(unisatPubKey);
762
810
  setLibrary(lib);
811
+ yield getNetwork().then((network2) => {
812
+ if (config.network !== network2) {
813
+ switchNetwork(network2);
814
+ }
815
+ });
816
+ getBTCBalance(unisatAccounts[0], network).then((totalBalance) => {
817
+ setBalance(totalBalance);
818
+ });
763
819
  setProvider(UNISAT);
764
820
  setConnected(true);
765
821
  const balance2 = yield lib == null ? void 0 : lib.getBalance();
@@ -767,7 +823,7 @@ var LaserEyesProvider = ({
767
823
  } catch (error) {
768
824
  throw error;
769
825
  }
770
- }), [hasUnisat]);
826
+ }), [hasUnisat, network]);
771
827
  const connectXverse = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
772
828
  try {
773
829
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, XVERSE);
@@ -791,9 +847,11 @@ var LaserEyesProvider = ({
791
847
  setProvider(XVERSE);
792
848
  setLibrary(window.BitcoinProvider);
793
849
  }
794
- getBTCBalance(foundPaymentAddress.address).then((totalBalance) => {
795
- setBalance(totalBalance);
796
- });
850
+ getBTCBalance(foundPaymentAddress.address, network).then(
851
+ (totalBalance) => {
852
+ setBalance(totalBalance);
853
+ }
854
+ );
797
855
  },
798
856
  onCancel: () => {
799
857
  throw new Error(`User canceled lasereyes to ${XVERSE} wallet`);
@@ -822,7 +880,7 @@ var LaserEyesProvider = ({
822
880
  setProvider(OYL);
823
881
  handleAccountsChanged(result);
824
882
  setConnected(true);
825
- getBTCBalance(result[1]).then((totalBalance) => {
883
+ getBTCBalance(result[1], network).then((totalBalance) => {
826
884
  setBalance(totalBalance);
827
885
  });
828
886
  } catch (error) {
@@ -855,9 +913,11 @@ var LaserEyesProvider = ({
855
913
  setProvider(MAGIC_EDEN);
856
914
  setLibrary(window.magicEden.bitcoin);
857
915
  }
858
- getBTCBalance(foundPaymentAddress.address).then((totalBalance) => {
859
- setBalance(totalBalance);
860
- });
916
+ getBTCBalance(foundPaymentAddress.address, network).then(
917
+ (totalBalance) => {
918
+ setBalance(totalBalance);
919
+ }
920
+ );
861
921
  },
862
922
  onCancel: () => {
863
923
  throw new Error(`User canceled lasereyes to ${MAGIC_EDEN} wallet`);
@@ -866,7 +926,6 @@ var LaserEyesProvider = ({
866
926
  throw new Error(`Can't lasereyes to ${MAGIC_EDEN} wallet`);
867
927
  }
868
928
  };
869
- console.log(JSON.stringify(getAddressOptions));
870
929
  yield (0, import_sats_connect.getAddress)(getAddressOptions);
871
930
  setConnected(true);
872
931
  } catch (error) {
@@ -877,28 +936,27 @@ var LaserEyesProvider = ({
877
936
  const connectOkx = () => __async(void 0, null, function* () {
878
937
  try {
879
938
  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();
939
+ const lib = network === TESTNET || network === TESTNET4 || network === FRACTAL_TESTNET ? window.okxwallet.bitcoinTestnet : network === SIGNET ? window.okxwallet.bitcoinSignet : window.okxwallet.bitcoin;
940
+ const okxAccounts = yield lib.connect();
882
941
  if (!okxAccounts)
883
942
  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);
943
+ setAccounts([okxAccounts]);
944
+ setAddress(okxAccounts.address);
945
+ setPaymentAddress(okxAccounts.address);
946
+ setPublicKey(okxAccounts.publicKey);
947
+ setPaymentPublicKey(okxAccounts.publicKey);
892
948
  setLibrary(lib);
893
949
  setProvider(OKX);
894
950
  setConnected(true);
895
951
  const balance2 = yield lib == null ? void 0 : lib.getBalance();
896
952
  setBalance(balance2 == null ? void 0 : balance2.total);
897
953
  } catch (error) {
954
+ console.log("error", error);
898
955
  throw error;
899
956
  }
900
957
  });
901
958
  const connectLeather = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
959
+ var _a2;
902
960
  try {
903
961
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
904
962
  const lib = window.LeatherProvider;
@@ -916,6 +974,11 @@ var LaserEyesProvider = ({
916
974
  const segwitAddress = addresses.find(
917
975
  (address3) => address3.type === P2WPKH
918
976
  );
977
+ if (((_a2 = String(taprootAddress)) == null ? void 0 : _a2.startsWith("tb")) && network !== TESTNET && network !== TESTNET4 && network !== SIGNET) {
978
+ throw new Error(
979
+ "Please switch networks to testnet in the wallet settings."
980
+ );
981
+ }
919
982
  setAccounts(leatherAccountsParsed);
920
983
  setAddress(String(taprootAddress == null ? void 0 : taprootAddress.address));
921
984
  setPublicKey(String(taprootAddress == null ? void 0 : taprootAddress.publicKey));
@@ -923,20 +986,18 @@ var LaserEyesProvider = ({
923
986
  setPaymentPublicKey(String(segwitAddress == null ? void 0 : segwitAddress.publicKey));
924
987
  setLibrary(lib);
925
988
  setProvider(LEATHER);
926
- const balance2 = yield getBTCBalance(String(segwitAddress == null ? void 0 : segwitAddress.address));
989
+ const balance2 = yield getBTCBalance(
990
+ String(segwitAddress == null ? void 0 : segwitAddress.address),
991
+ network
992
+ );
927
993
  setBalance(balance2);
928
994
  handleAccountsChanged(leatherAccountsParsed);
929
995
  setConnected(true);
930
996
  yield getNetwork().then((network2) => {
931
- if (!network2) {
932
- setNetwork(MAINNET);
933
- } else {
934
- setNetwork(network2);
935
- }
936
997
  });
937
998
  setConnected(true);
938
999
  } catch (error) {
939
- new Error(`Can't lasereyes to ${LEATHER} wallet`);
1000
+ throw error;
940
1001
  }
941
1002
  }), [hasLeather]);
942
1003
  const connectPhantom = () => __async(void 0, null, function* () {
@@ -960,7 +1021,10 @@ var LaserEyesProvider = ({
960
1021
  setPaymentPublicKey(paymentAccount == null ? void 0 : paymentAccount.publicKey);
961
1022
  setLibrary(lib);
962
1023
  setProvider(PHANTOM);
963
- const balance2 = yield getBTCBalance(String(paymentAccount == null ? void 0 : paymentAccount.address));
1024
+ const balance2 = yield getBTCBalance(
1025
+ String(paymentAccount == null ? void 0 : paymentAccount.address),
1026
+ network
1027
+ );
964
1028
  setBalance(balance2);
965
1029
  setConnected(true);
966
1030
  } catch (error) {
@@ -984,9 +1048,14 @@ var LaserEyesProvider = ({
984
1048
  setPaymentPublicKey(wizzPubKey);
985
1049
  setLibrary(lib);
986
1050
  setProvider(WIZZ);
1051
+ yield getNetwork().then((network2) => {
1052
+ if (config.network !== network2) {
1053
+ switchNetwork(network2);
1054
+ }
1055
+ });
1056
+ const balance2 = yield getBTCBalance(String(wizzAccounts[0]), network);
1057
+ setBalance(balance2);
987
1058
  setConnected(true);
988
- const balance2 = yield lib == null ? void 0 : lib.getBalance();
989
- setBalance(balance2 == null ? void 0 : balance2.total);
990
1059
  } catch (error) {
991
1060
  throw error;
992
1061
  }
@@ -1004,8 +1073,14 @@ var LaserEyesProvider = ({
1004
1073
  yield connectOyl();
1005
1074
  } else if (walletName === MAGIC_EDEN) {
1006
1075
  yield connectMagicEden();
1076
+ } else if (walletName === OKX) {
1077
+ yield connectOkx();
1007
1078
  } else if (walletName === LEATHER) {
1008
1079
  yield connectLeather();
1080
+ } else if (walletName === PHANTOM) {
1081
+ yield connectPhantom();
1082
+ } else if (walletName === WIZZ) {
1083
+ yield connectWizz();
1009
1084
  } else {
1010
1085
  throw new Error("Unsupported wallet..");
1011
1086
  }
@@ -1013,6 +1088,7 @@ var LaserEyesProvider = ({
1013
1088
  } catch (error) {
1014
1089
  setIsConnecting(false);
1015
1090
  disconnect();
1091
+ console.log("e", error == null ? void 0 : error.message);
1016
1092
  throw error;
1017
1093
  } finally {
1018
1094
  setIsConnecting(false);
@@ -1049,7 +1125,7 @@ var LaserEyesProvider = ({
1049
1125
  };
1050
1126
  const handleNetworkChanged = (network2) => {
1051
1127
  try {
1052
- let foundNetwork = MAINNET;
1128
+ let foundNetwork;
1053
1129
  if (provider === UNISAT) {
1054
1130
  foundNetwork = getNetworkForUnisat(network2);
1055
1131
  setNetwork(foundNetwork);
@@ -1058,10 +1134,12 @@ var LaserEyesProvider = ({
1058
1134
  throw new Error("Not implemented");
1059
1135
  } else if (provider === WIZZ) {
1060
1136
  foundNetwork = getNetworkForWizz(network2);
1061
- setNetwork(foundNetwork);
1062
1137
  connect(provider);
1063
1138
  } else {
1064
- throw new Error("The connected wallet doesn't support this method..");
1139
+ disconnect();
1140
+ throw new Error(
1141
+ "The connected wallet doesn't support programmatic network changes.."
1142
+ );
1065
1143
  }
1066
1144
  } catch (error) {
1067
1145
  throw error;
@@ -1070,7 +1148,7 @@ var LaserEyesProvider = ({
1070
1148
  const requestAccounts = () => __async(void 0, null, function* () {
1071
1149
  try {
1072
1150
  if (!library)
1073
- return;
1151
+ throw new Error("No wallet connected");
1074
1152
  if (provider === UNISAT) {
1075
1153
  return yield library.requestAccounts();
1076
1154
  } else if (provider === XVERSE) {
@@ -1099,6 +1177,9 @@ var LaserEyesProvider = ({
1099
1177
  } else if (provider === OYL) {
1100
1178
  return yield library.requestAccounts();
1101
1179
  } else if (provider === OKX) {
1180
+ if (network === TESTNET || network === TESTNET4 || network === FRACTAL_TESTNET) {
1181
+ return yield library.connect();
1182
+ }
1102
1183
  return yield library.requestAccounts();
1103
1184
  } else if (provider === LEATHER) {
1104
1185
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
@@ -1124,6 +1205,11 @@ var LaserEyesProvider = ({
1124
1205
  setProvider(LEATHER);
1125
1206
  handleAccountsChanged(leatherAccountsParsed);
1126
1207
  setConnected(true);
1208
+ const balance2 = yield getBTCBalance(
1209
+ String(segwitAddress == null ? void 0 : segwitAddress.address),
1210
+ network
1211
+ );
1212
+ setBalance(balance2);
1127
1213
  yield getNetwork().then((network2) => {
1128
1214
  if (!network2) {
1129
1215
  setNetwork(MAINNET);
@@ -1147,19 +1233,23 @@ var LaserEyesProvider = ({
1147
1233
  throw error;
1148
1234
  }
1149
1235
  });
1150
- const getNetwork = () => __async(void 0, null, function* () {
1151
- var _a;
1236
+ const getNetwork = (0, import_react.useCallback)(() => __async(void 0, null, function* () {
1237
+ var _a2;
1152
1238
  try {
1153
- if (!library)
1154
- return;
1155
1239
  if (provider === UNISAT) {
1156
- const unisatNetwork = yield library == null ? void 0 : library.getNetwork();
1157
- const foundNetwork = getNetworkForUnisat(unisatNetwork);
1158
- setNetwork(foundNetwork);
1159
- return foundNetwork;
1240
+ const unisatNetwork = yield library == null ? void 0 : library.getChain();
1241
+ return getNetworkForUnisat(unisatNetwork.enum);
1160
1242
  } else if (provider === XVERSE) {
1161
1243
  if (address2.slice(0, 1) === "t") {
1162
- return TESTNET;
1244
+ if (network === TESTNET) {
1245
+ return TESTNET;
1246
+ } else if (network === TESTNET4) {
1247
+ return TESTNET4;
1248
+ } else if (network === SIGNET) {
1249
+ return SIGNET;
1250
+ } else if (network === FRACTAL_TESTNET) {
1251
+ return FRACTAL_TESTNET;
1252
+ }
1163
1253
  }
1164
1254
  return MAINNET;
1165
1255
  } else if (provider === OYL) {
@@ -1173,12 +1263,32 @@ var LaserEyesProvider = ({
1173
1263
  }
1174
1264
  return MAINNET;
1175
1265
  } else if (provider === OKX) {
1266
+ if (address2.slice(0, 1) === "t") {
1267
+ if (network === TESTNET) {
1268
+ return TESTNET;
1269
+ } else if (network === TESTNET4) {
1270
+ return TESTNET4;
1271
+ } else if (network === SIGNET) {
1272
+ return SIGNET;
1273
+ } else if (network === FRACTAL_TESTNET) {
1274
+ return FRACTAL_TESTNET;
1275
+ }
1276
+ return TESTNET;
1277
+ }
1176
1278
  const okxNetwork = yield library == null ? void 0 : library.getNetwork();
1177
1279
  const foundNetwork = getNetworkForOkx(okxNetwork);
1178
1280
  setNetwork(foundNetwork);
1179
1281
  } else if (provider === LEATHER) {
1180
1282
  if (address2.slice(0, 1) === "t") {
1181
- return TESTNET;
1283
+ if (network === TESTNET) {
1284
+ return TESTNET;
1285
+ } else if (network === TESTNET4) {
1286
+ return TESTNET4;
1287
+ } else if (network === SIGNET) {
1288
+ return SIGNET;
1289
+ } else if (network === FRACTAL_TESTNET) {
1290
+ return FRACTAL_TESTNET;
1291
+ }
1182
1292
  }
1183
1293
  return MAINNET;
1184
1294
  } else if (provider === PHANTOM) {
@@ -1188,28 +1298,33 @@ var LaserEyesProvider = ({
1188
1298
  return MAINNET;
1189
1299
  } else if (provider === WIZZ) {
1190
1300
  const wizzNetwork = yield library == null ? void 0 : library.getNetwork();
1191
- const foundNetwork = getNetworkForWizz(wizzNetwork);
1192
- setNetwork(foundNetwork);
1301
+ return getNetworkForWizz(wizzNetwork);
1193
1302
  }
1194
- return (_a = config == null ? void 0 : config.network) != null ? _a : MAINNET;
1303
+ return (_a2 = config == null ? void 0 : config.network) != null ? _a2 : MAINNET;
1195
1304
  } catch (error) {
1196
1305
  throw error;
1197
1306
  }
1198
- });
1307
+ }), [address2, provider, library]);
1199
1308
  const switchNetwork = (network2) => __async(void 0, null, function* () {
1200
1309
  try {
1201
1310
  if (!library)
1202
1311
  return;
1203
1312
  if (provider === UNISAT) {
1204
- const wantedNetwork = getWizzNetwork(network2);
1205
- yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
1313
+ const wantedNetwork = getUnisatNetwork(network2);
1314
+ yield library == null ? void 0 : library.switchChain(wantedNetwork);
1206
1315
  setNetwork(network2);
1207
1316
  } else if (provider === WIZZ) {
1317
+ if (network2 === FRACTAL_TESTNET || network2 === FRACTAL_MAINNET) {
1318
+ return yield library.switchNetwork(WIZZ_MAINNET);
1319
+ }
1208
1320
  const wantedNetwork = getNetworkForWizz(network2);
1209
1321
  yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
1210
1322
  setNetwork(network2);
1211
1323
  } else {
1212
- throw new Error("The connected wallet doesn't support this method..");
1324
+ disconnect();
1325
+ throw new Error(
1326
+ "The connected wallet doesn't support programmatic network changes.."
1327
+ );
1213
1328
  }
1214
1329
  } catch (error) {
1215
1330
  throw error;
@@ -1239,20 +1354,23 @@ var LaserEyesProvider = ({
1239
1354
  if (!library)
1240
1355
  return;
1241
1356
  if (provider === UNISAT) {
1357
+ if (network === TESTNET) {
1358
+ return yield getBTCBalance(paymentAddress, network);
1359
+ }
1242
1360
  return yield library.getBalance();
1243
1361
  } else if (provider === XVERSE) {
1244
- return yield getBTCBalance(paymentAddress);
1362
+ return yield getBTCBalance(paymentAddress, network);
1245
1363
  } else if (provider === OYL) {
1246
1364
  const balanceResponse = yield library.getBalance();
1247
1365
  return balanceResponse.btc.total * 1e8;
1248
1366
  } else if (provider === MAGIC_EDEN) {
1249
- return yield getBTCBalance(paymentAddress);
1367
+ return yield getBTCBalance(paymentAddress, network);
1250
1368
  } else if (provider === OKX) {
1251
- return yield getBTCBalance(paymentAddress);
1369
+ return yield getBTCBalance(paymentAddress, network);
1252
1370
  } else if (provider === LEATHER) {
1253
- return yield getBTCBalance(paymentAddress);
1371
+ return yield getBTCBalance(paymentAddress, network);
1254
1372
  } else if (provider === PHANTOM) {
1255
- return yield getBTCBalance(paymentAddress);
1373
+ return yield getBTCBalance(paymentAddress, network);
1256
1374
  } else if (provider === WIZZ) {
1257
1375
  const balanceResponse = yield library.getBalance();
1258
1376
  return balanceResponse.total * 1e8;
@@ -1281,7 +1399,7 @@ var LaserEyesProvider = ({
1281
1399
  }
1282
1400
  });
1283
1401
  const sendBTC = (to, amount) => __async(void 0, null, function* () {
1284
- var _a;
1402
+ var _a2;
1285
1403
  try {
1286
1404
  if (amount <= 0)
1287
1405
  throw new Error("Amount must be greater than 0");
@@ -1367,7 +1485,7 @@ var LaserEyesProvider = ({
1367
1485
  }
1368
1486
  ]
1369
1487
  });
1370
- if ((_a = response == null ? void 0 : response.result) == null ? void 0 : _a.txid) {
1488
+ if ((_a2 = response == null ? void 0 : response.result) == null ? void 0 : _a2.txid) {
1371
1489
  return response.result.txid;
1372
1490
  } else {
1373
1491
  if (response.error.code === import_sats_connect.RpcErrorCode.USER_REJECTION) {
@@ -1389,7 +1507,7 @@ var LaserEyesProvider = ({
1389
1507
  }
1390
1508
  });
1391
1509
  const signMessage = (message, toSignAddress) => __async(void 0, null, function* () {
1392
- var _a;
1510
+ var _a2;
1393
1511
  try {
1394
1512
  if (!library)
1395
1513
  return;
@@ -1447,8 +1565,7 @@ var LaserEyesProvider = ({
1447
1565
  message,
1448
1566
  paymentType
1449
1567
  });
1450
- console.log("signed", signed);
1451
- return (_a = signed == null ? void 0 : signed.result) == null ? void 0 : _a.signature;
1568
+ return (_a2 = signed == null ? void 0 : signed.result) == null ? void 0 : _a2.signature;
1452
1569
  } else if (provider === PHANTOM) {
1453
1570
  const utf8Bytes = new TextEncoder().encode(message);
1454
1571
  const uintArray = new Uint8Array(utf8Bytes);
@@ -1580,7 +1697,6 @@ var LaserEyesProvider = ({
1580
1697
  };
1581
1698
  } else if (provider === OYL) {
1582
1699
  const signedPsbt = yield library == null ? void 0 : library.signPsbt(psbtHex, true, true);
1583
- console.log({ signedPsbt });
1584
1700
  const psbtSignedPsbt = bitcoin2.Psbt.fromHex(signedPsbt);
1585
1701
  if (broadcast) {
1586
1702
  const txId = yield pushPsbt(psbtSignedPsbt.toHex());
@@ -1844,7 +1960,7 @@ var LaserEyesProvider = ({
1844
1960
  };
1845
1961
 
1846
1962
  // src/hooks/useInscriber.ts
1847
- var import_react2 = _toESM(require("react"));
1963
+ var import_react2 = require("react");
1848
1964
 
1849
1965
  // src/consts/inscribe.ts
1850
1966
  var MIME_TYPE_TEXT = "text/plain;charset=utf-8";
@@ -2004,7 +2120,7 @@ var useInscriber = ({
2004
2120
  };
2005
2121
 
2006
2122
  // src/icons/oyl.tsx
2007
- var import_jsx_runtime2 = _toESM(require("react/jsx-runtime"));
2123
+ var import_jsx_runtime2 = require("react/jsx-runtime");
2008
2124
  var OylLogo = (_a) => {
2009
2125
  var _b = _a, {
2010
2126
  size = 42,
@@ -2084,7 +2200,7 @@ var OylLogo = (_a) => {
2084
2200
  };
2085
2201
 
2086
2202
  // src/icons/leather.tsx
2087
- var import_jsx_runtime3 = _toESM(require("react/jsx-runtime"));
2203
+ var import_jsx_runtime3 = require("react/jsx-runtime");
2088
2204
  var LeatherLogo = (_a) => {
2089
2205
  var _b = _a, {
2090
2206
  size = 42,
@@ -2144,7 +2260,7 @@ var LeatherLogo = (_a) => {
2144
2260
  };
2145
2261
 
2146
2262
  // src/icons/phantom.tsx
2147
- var import_jsx_runtime4 = _toESM(require("react/jsx-runtime"));
2263
+ var import_jsx_runtime4 = require("react/jsx-runtime");
2148
2264
  var PhantomLogo = (_a) => {
2149
2265
  var _b = _a, {
2150
2266
  size = 42,
@@ -2226,7 +2342,7 @@ var PhantomLogo = (_a) => {
2226
2342
  };
2227
2343
 
2228
2344
  // src/icons/xverse.tsx
2229
- var import_jsx_runtime5 = _toESM(require("react/jsx-runtime"));
2345
+ var import_jsx_runtime5 = require("react/jsx-runtime");
2230
2346
  var XverseLogo = (_a) => {
2231
2347
  var _b = _a, {
2232
2348
  size = 42,
@@ -2278,7 +2394,7 @@ var XverseLogo = (_a) => {
2278
2394
  };
2279
2395
 
2280
2396
  // src/icons/unisat.tsx
2281
- var import_jsx_runtime6 = _toESM(require("react/jsx-runtime"));
2397
+ var import_jsx_runtime6 = require("react/jsx-runtime");
2282
2398
  var UnisatLogo = (_a) => {
2283
2399
  var _b = _a, {
2284
2400
  size = 42,
@@ -2390,7 +2506,7 @@ var UnisatLogo = (_a) => {
2390
2506
  };
2391
2507
 
2392
2508
  // src/icons/wizz.tsx
2393
- var import_jsx_runtime7 = _toESM(require("react/jsx-runtime"));
2509
+ var import_jsx_runtime7 = require("react/jsx-runtime");
2394
2510
  var WizzLogo = (_a) => {
2395
2511
  var _b = _a, {
2396
2512
  size = 42,
@@ -2461,7 +2577,7 @@ var WizzLogo = (_a) => {
2461
2577
  };
2462
2578
 
2463
2579
  // src/icons/okx.tsx
2464
- var import_jsx_runtime8 = _toESM(require("react/jsx-runtime"));
2580
+ var import_jsx_runtime8 = require("react/jsx-runtime");
2465
2581
  var OkxLogo = (_a) => {
2466
2582
  var _b = _a, {
2467
2583
  size = 42,
@@ -2503,7 +2619,7 @@ var OkxLogo = (_a) => {
2503
2619
  };
2504
2620
 
2505
2621
  // src/icons/magiceden.tsx
2506
- var import_jsx_runtime9 = _toESM(require("react/jsx-runtime"));
2622
+ var import_jsx_runtime9 = require("react/jsx-runtime");
2507
2623
  var MagicEdenLogo = (_a) => {
2508
2624
  var _b = _a, {
2509
2625
  size = 42,
@@ -2576,7 +2692,7 @@ var MagicEdenLogo = (_a) => {
2576
2692
  };
2577
2693
 
2578
2694
  // src/icons/walletIcon.tsx
2579
- var import_jsx_runtime10 = _toESM(require("react/jsx-runtime"));
2695
+ var import_jsx_runtime10 = require("react/jsx-runtime");
2580
2696
  var WalletIcon = ({
2581
2697
  size,
2582
2698
  className,
@@ -2605,6 +2721,7 @@ var WalletIcon = ({
2605
2721
  };
2606
2722
  // Annotate the CommonJS export names for ESM import in node:
2607
2723
  0 && (module.exports = {
2724
+ FRACTAL_MAINNET,
2608
2725
  FRACTAL_TESTNET,
2609
2726
  LEATHER,
2610
2727
  LEATHER_MAINNET,
@@ -2636,15 +2753,21 @@ var WalletIcon = ({
2636
2753
  REGTEST,
2637
2754
  SIGNET,
2638
2755
  TESTNET,
2756
+ TESTNET4,
2639
2757
  UNISAT,
2758
+ UNISAT_FRACTAL_MAINNET,
2640
2759
  UNISAT_FRACTAL_TESTNET,
2641
2760
  UNISAT_MAINNET,
2761
+ UNISAT_SIGNET,
2642
2762
  UNISAT_TESTNET,
2763
+ UNISAT_TESTNET4,
2643
2764
  UnisatLogo,
2644
2765
  WALLETS,
2645
2766
  WIZZ,
2646
2767
  WIZZ_MAINNET,
2768
+ WIZZ_SIGNET,
2647
2769
  WIZZ_TESTNET,
2770
+ WIZZ_TESTNET4,
2648
2771
  WalletIcon,
2649
2772
  WizzLogo,
2650
2773
  XVERSE,
@@ -2659,6 +2782,7 @@ var WalletIcon = ({
2659
2782
  estimateTxSize,
2660
2783
  findOrdinalsAddress,
2661
2784
  findPaymentAddress,
2785
+ getAddressUtxos,
2662
2786
  getBTCBalance,
2663
2787
  getBitcoinNetwork,
2664
2788
  getLeatherNetwork,