@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.mjs CHANGED
@@ -61,9 +61,12 @@ var __forAwait = (obj, it, method) => {
61
61
 
62
62
  // src/consts/networks.ts
63
63
  var XVERSE_NETWORK = "Mainnet";
64
- var UNISAT_MAINNET = "livenet";
65
- var UNISAT_TESTNET = "testnet";
66
- var UNISAT_FRACTAL_TESTNET = "unknown";
64
+ var UNISAT_MAINNET = "BITCOIN_MAINNET";
65
+ var UNISAT_TESTNET = "BITCOIN_TESTNET";
66
+ var UNISAT_TESTNET4 = "BITCOIN_TESTNET4";
67
+ var UNISAT_SIGNET = "BITCOIN_SIGNET";
68
+ var UNISAT_FRACTAL_MAINNET = "FRACTAL_BITCOIN_MAINNET";
69
+ var UNISAT_FRACTAL_TESTNET = "FRACTAL_BITCOIN_TESTNET";
67
70
  var OP_WALLET_MAINNET = "livenet";
68
71
  var OP_WALLET_TESTNET = "testnet";
69
72
  var XVERSE_MAINNET = "Mainnet";
@@ -73,11 +76,15 @@ var OKX_MAINNET = "livenet";
73
76
  var OKX_TESTNET = "testnet";
74
77
  var WIZZ_MAINNET = "livenet";
75
78
  var WIZZ_TESTNET = "testnet";
79
+ var WIZZ_TESTNET4 = "testnet4";
80
+ var WIZZ_SIGNET = "signet";
76
81
  var LEATHER_MAINNET = "mainnet";
77
82
  var LEATHER_TESTNET = "testnet";
78
83
  var MAINNET = "mainnet";
79
84
  var SIGNET = "signet";
80
85
  var TESTNET = "testnet";
86
+ var TESTNET4 = "testnet4";
87
+ var FRACTAL_MAINNET = "fractal_mainnet";
81
88
  var FRACTAL_TESTNET = "fractal_testnet";
82
89
  var REGTEST = "regtest";
83
90
  var getXverseNetwork = (network) => {
@@ -101,6 +108,12 @@ var getUnisatNetwork = (network) => {
101
108
  return UNISAT_MAINNET;
102
109
  if (network === TESTNET)
103
110
  return UNISAT_TESTNET;
111
+ if (network === TESTNET4)
112
+ return UNISAT_TESTNET4;
113
+ if (network === SIGNET)
114
+ return UNISAT_SIGNET;
115
+ if (network === FRACTAL_MAINNET)
116
+ return UNISAT_FRACTAL_MAINNET;
104
117
  if (network === FRACTAL_TESTNET)
105
118
  return UNISAT_FRACTAL_TESTNET;
106
119
  return UNISAT_MAINNET;
@@ -110,6 +123,14 @@ var getWizzNetwork = (network) => {
110
123
  return WIZZ_MAINNET;
111
124
  if (network === TESTNET)
112
125
  return WIZZ_TESTNET;
126
+ if (network === TESTNET4)
127
+ return WIZZ_TESTNET4;
128
+ if (network === SIGNET)
129
+ return WIZZ_SIGNET;
130
+ if (network === FRACTAL_TESTNET)
131
+ return WIZZ_TESTNET;
132
+ if (network === FRACTAL_MAINNET)
133
+ return WIZZ_MAINNET;
113
134
  return WIZZ_MAINNET;
114
135
  };
115
136
  var getNetworkForUnisat = (network) => {
@@ -117,6 +138,12 @@ var getNetworkForUnisat = (network) => {
117
138
  return MAINNET;
118
139
  if (network === UNISAT_TESTNET)
119
140
  return TESTNET;
141
+ if (network === UNISAT_TESTNET4)
142
+ return TESTNET4;
143
+ if (network === UNISAT_SIGNET)
144
+ return SIGNET;
145
+ if (network === UNISAT_FRACTAL_MAINNET)
146
+ return FRACTAL_MAINNET;
120
147
  if (network === UNISAT_FRACTAL_TESTNET)
121
148
  return FRACTAL_TESTNET;
122
149
  return MAINNET;
@@ -147,6 +174,14 @@ var getNetworkForWizz = (network) => {
147
174
  return MAINNET;
148
175
  if (network === WIZZ_TESTNET)
149
176
  return TESTNET;
177
+ if (network === WIZZ_TESTNET4)
178
+ return TESTNET4;
179
+ if (network === WIZZ_SIGNET)
180
+ return SIGNET;
181
+ if (network === FRACTAL_TESTNET)
182
+ return TESTNET;
183
+ if (network === FRACTAL_MAINNET)
184
+ return MAINNET;
150
185
  return MAINNET;
151
186
  };
152
187
  var MEMPOOL_SPACE_URL = "https://mempool.space";
@@ -293,18 +328,18 @@ import axios from "axios";
293
328
  // src/lib/urls.ts
294
329
  var MEMPOOL_SPACE_URL2 = "https://mempool.space";
295
330
  var MEMPOOL_SPACE_TESTNET_URL2 = "https://mempool.space/testnet";
296
- var getMempoolSpaceUrl2 = (network) => network === TESTNET ? MEMPOOL_SPACE_TESTNET_URL2 : MEMPOOL_SPACE_URL2;
331
+ var MEMPOOL_SPACE_TESTNET4_URL = "https://mempool.space/testnet4";
332
+ var MEMPOOL_SPACE_SIGNET_URL2 = "https://mempool.space/signet";
333
+ var MEMPOOL_SPACE_FRACTAL_MAINNET_URL = "https://mempool.fractalbitcoin.io";
334
+ var MEMPOOL_SPACE_FRACTAL_TESTNET_URL = "https://mempool-testnet.fractalbitcoin.io/";
335
+ 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;
297
336
 
298
337
  // src/lib/helpers.ts
299
338
  import * as ecc from "@bitcoinerlab/secp256k1";
300
339
  bitcoin.initEccLib(ecc);
301
340
  var getBitcoinNetwork = (network) => {
302
- if (network === TESTNET || network === FRACTAL_TESTNET) {
341
+ if (network === TESTNET || network === TESTNET4 || network === SIGNET) {
303
342
  return bitcoin.networks.testnet;
304
- } else if (network === SIGNET) {
305
- return bitcoin.networks.testnet;
306
- } else if (network === REGTEST) {
307
- return bitcoin.networks.regtest;
308
343
  } else {
309
344
  return bitcoin.networks.bitcoin;
310
345
  }
@@ -319,9 +354,15 @@ var findPaymentAddress = (addresses) => {
319
354
  ({ purpose }) => purpose === "payment"
320
355
  );
321
356
  };
322
- var getBTCBalance = (address2) => __async(void 0, null, function* () {
357
+ var getBTCBalance = (address2, network) => __async(void 0, null, function* () {
323
358
  try {
324
- return yield axios.get(`https://blockchain.info/q/addressbalance/${address2}`).then((response) => response.data);
359
+ const utxos = yield getAddressUtxos(
360
+ address2,
361
+ network
362
+ );
363
+ if (!utxos)
364
+ return 0;
365
+ return utxos.reduce((acc, utxo) => acc + utxo.value, 0);
325
366
  } catch (error) {
326
367
  console.error("Error fetching BTC balance:", error);
327
368
  throw new Error("Failed to fetch BTC balance");
@@ -350,13 +391,33 @@ function estimateTxSize(taprootInputCount, nonTaprootInputCount, outputCount) {
350
391
  const totalOutputSize = outputCount * outputSize;
351
392
  return baseTxSize + totalInputSize + totalOutputSize;
352
393
  }
394
+ function getAddressUtxos(address2, network) {
395
+ return __async(this, null, function* () {
396
+ if (address2.startsWith("t")) {
397
+ console.log("starts with t");
398
+ if (network === MAINNET) {
399
+ return [];
400
+ }
401
+ if (network === FRACTAL_MAINNET) {
402
+ return [];
403
+ }
404
+ if (network === FRACTAL_TESTNET) {
405
+ return [];
406
+ }
407
+ }
408
+ return yield axios.get(`${getMempoolSpaceUrl2(network)}/api/address/${address2}/utxo`).then((response) => response.data);
409
+ });
410
+ }
353
411
  function createSendBtcPsbt(address2, paymentAddress, recipientAddress, amount, paymentPublicKey, network, feeRate = 7) {
354
412
  return __async(this, null, function* () {
355
413
  const isTaprootOnly = address2 === paymentAddress;
356
- const mempoolUrl = `${getMempoolSpaceUrl2(
414
+ const utxos = yield getAddressUtxos(
415
+ paymentAddress,
357
416
  network
358
- )}/api/address/${paymentAddress}/utxo`;
359
- const utxos = yield axios.get(mempoolUrl).then((response) => response.data);
417
+ );
418
+ if (!utxos) {
419
+ throw new Error("No UTXOs found");
420
+ }
360
421
  const sortedUtxos = utxos.sort(
361
422
  (a, b) => b.value - a.value
362
423
  );
@@ -480,17 +541,17 @@ var LaserEyesProvider = ({
480
541
  const [hasLeather, setHasLeather] = useState(false);
481
542
  const [hasPhantom, setHasPhantom] = useState(false);
482
543
  const [hasWizz, setHasWizz] = useState(false);
483
- const [network, setNetwork] = useLocalStorage("network", MAINNET, {
484
- initializeWithValue: false
485
- });
544
+ const [network, setNetwork] = useLocalStorage("network", (config == null ? void 0 : config.network) || MAINNET);
486
545
  useEffect(() => {
487
- if (config) {
546
+ if (config && config.network) {
488
547
  setNetwork(config.network);
489
548
  getNetwork().then((foundNetwork) => {
490
- if (config.network !== foundNetwork) {
491
- switchNetwork(network);
492
- } else if (network !== foundNetwork) {
493
- setNetwork(network);
549
+ try {
550
+ if (config.network !== foundNetwork) {
551
+ switchNetwork(network);
552
+ }
553
+ } catch (e) {
554
+ disconnect();
494
555
  }
495
556
  });
496
557
  }
@@ -557,9 +618,9 @@ var LaserEyesProvider = ({
557
618
  const observer = new MutationObserver(() => {
558
619
  var _a, _b;
559
620
  let foundOkx;
560
- if (network === TESTNET || network === FRACTAL_TESTNET) {
621
+ if (network === TESTNET || network === TESTNET4 || network === SIGNET || network === FRACTAL_TESTNET) {
561
622
  foundOkx = (_a = window == null ? void 0 : window.okxwallet) == null ? void 0 : _a.bitcoinTestnet;
562
- } else if (network === MAINNET) {
623
+ } else if (network === MAINNET || network === FRACTAL_MAINNET) {
563
624
  foundOkx = (_b = window == null ? void 0 : window.okxwallet) == null ? void 0 : _b.bitcoin;
564
625
  }
565
626
  if (foundOkx) {
@@ -665,13 +726,20 @@ var LaserEyesProvider = ({
665
726
  const unisatPubKey = yield lib.getPublicKey();
666
727
  if (!unisatPubKey)
667
728
  throw new Error("No public key found");
668
- const foundNetwork = yield getNetwork();
669
729
  setAccounts(unisatAccounts);
670
730
  setAddress(unisatAccounts[0]);
671
731
  setPaymentAddress(unisatAccounts[0]);
672
732
  setPublicKey(unisatPubKey);
673
733
  setPaymentPublicKey(unisatPubKey);
674
734
  setLibrary(lib);
735
+ yield getNetwork().then((network2) => {
736
+ if (config.network !== network2) {
737
+ switchNetwork(network2);
738
+ }
739
+ });
740
+ getBTCBalance(unisatAccounts[0], network).then((totalBalance) => {
741
+ setBalance(totalBalance);
742
+ });
675
743
  setProvider(UNISAT);
676
744
  setConnected(true);
677
745
  const balance2 = yield lib == null ? void 0 : lib.getBalance();
@@ -679,7 +747,7 @@ var LaserEyesProvider = ({
679
747
  } catch (error) {
680
748
  throw error;
681
749
  }
682
- }), [hasUnisat]);
750
+ }), [hasUnisat, network]);
683
751
  const connectXverse = useCallback(() => __async(void 0, null, function* () {
684
752
  try {
685
753
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, XVERSE);
@@ -703,9 +771,11 @@ var LaserEyesProvider = ({
703
771
  setProvider(XVERSE);
704
772
  setLibrary(window.BitcoinProvider);
705
773
  }
706
- getBTCBalance(foundPaymentAddress.address).then((totalBalance) => {
707
- setBalance(totalBalance);
708
- });
774
+ getBTCBalance(foundPaymentAddress.address, network).then(
775
+ (totalBalance) => {
776
+ setBalance(totalBalance);
777
+ }
778
+ );
709
779
  },
710
780
  onCancel: () => {
711
781
  throw new Error(`User canceled lasereyes to ${XVERSE} wallet`);
@@ -734,7 +804,7 @@ var LaserEyesProvider = ({
734
804
  setProvider(OYL);
735
805
  handleAccountsChanged(result);
736
806
  setConnected(true);
737
- getBTCBalance(result[1]).then((totalBalance) => {
807
+ getBTCBalance(result[1], network).then((totalBalance) => {
738
808
  setBalance(totalBalance);
739
809
  });
740
810
  } catch (error) {
@@ -767,9 +837,11 @@ var LaserEyesProvider = ({
767
837
  setProvider(MAGIC_EDEN);
768
838
  setLibrary(window.magicEden.bitcoin);
769
839
  }
770
- getBTCBalance(foundPaymentAddress.address).then((totalBalance) => {
771
- setBalance(totalBalance);
772
- });
840
+ getBTCBalance(foundPaymentAddress.address, network).then(
841
+ (totalBalance) => {
842
+ setBalance(totalBalance);
843
+ }
844
+ );
773
845
  },
774
846
  onCancel: () => {
775
847
  throw new Error(`User canceled lasereyes to ${MAGIC_EDEN} wallet`);
@@ -778,7 +850,6 @@ var LaserEyesProvider = ({
778
850
  throw new Error(`Can't lasereyes to ${MAGIC_EDEN} wallet`);
779
851
  }
780
852
  };
781
- console.log(JSON.stringify(getAddressOptions));
782
853
  yield getAddress(getAddressOptions);
783
854
  setConnected(true);
784
855
  } catch (error) {
@@ -786,31 +857,38 @@ var LaserEyesProvider = ({
786
857
  throw error;
787
858
  }
788
859
  });
789
- const connectOkx = () => __async(void 0, null, function* () {
860
+ const connectOkx = useCallback(() => __async(void 0, null, function* () {
861
+ var _a;
790
862
  try {
791
863
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, OKX);
792
- const lib = network === TESTNET || network === FRACTAL_TESTNET ? window.okxwallet.bitcoinTestnet : window.okxwallet.bitcoin;
793
- const okxAccounts = yield lib.requestAccounts();
864
+ console.log("connecting", network);
865
+ const lib = network === TESTNET || network === TESTNET4 || network === FRACTAL_TESTNET ? window.okxwallet.bitcoinTestnet : network === SIGNET ? window.okxwallet.bitcoinSignet : window.okxwallet.bitcoin;
866
+ const okxAccounts = yield lib.connect();
794
867
  if (!okxAccounts)
795
868
  throw new Error("No accounts found");
796
- const okxPubKey = yield lib.getPublicKey();
797
- if (!okxPubKey)
798
- throw new Error("No public key found");
799
- setAccounts(okxAccounts);
800
- setAddress(okxAccounts[0]);
801
- setPaymentAddress(okxAccounts[0]);
802
- setPublicKey(okxPubKey);
803
- setPaymentPublicKey(okxPubKey);
869
+ setAccounts([okxAccounts]);
870
+ setAddress(okxAccounts.address);
871
+ if (((_a = String(okxAccounts.address)) == null ? void 0 : _a.startsWith("tb")) && network !== TESTNET && network !== TESTNET4 && network !== SIGNET) {
872
+ console.log("err");
873
+ throw new Error(
874
+ `Please switch networks to ${network} in the wallet settings.`
875
+ );
876
+ }
877
+ setPaymentAddress(okxAccounts.address);
878
+ setPublicKey(okxAccounts.publicKey);
879
+ setPaymentPublicKey(okxAccounts.publicKey);
804
880
  setLibrary(lib);
805
881
  setProvider(OKX);
806
882
  setConnected(true);
807
883
  const balance2 = yield lib == null ? void 0 : lib.getBalance();
808
884
  setBalance(balance2 == null ? void 0 : balance2.total);
809
885
  } catch (error) {
886
+ console.log("error", error);
810
887
  throw error;
811
888
  }
812
- });
889
+ }), [hasOkx, network]);
813
890
  const connectLeather = useCallback(() => __async(void 0, null, function* () {
891
+ var _a;
814
892
  try {
815
893
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
816
894
  const lib = window.LeatherProvider;
@@ -828,6 +906,11 @@ var LaserEyesProvider = ({
828
906
  const segwitAddress = addresses.find(
829
907
  (address3) => address3.type === P2WPKH
830
908
  );
909
+ if (((_a = String(taprootAddress == null ? void 0 : taprootAddress.address)) == null ? void 0 : _a.startsWith("tb")) && network !== TESTNET && network !== TESTNET4 && network !== SIGNET) {
910
+ throw new Error(
911
+ `Please switch networks to ${network} in the wallet settings.`
912
+ );
913
+ }
831
914
  setAccounts(leatherAccountsParsed);
832
915
  setAddress(String(taprootAddress == null ? void 0 : taprootAddress.address));
833
916
  setPublicKey(String(taprootAddress == null ? void 0 : taprootAddress.publicKey));
@@ -835,20 +918,18 @@ var LaserEyesProvider = ({
835
918
  setPaymentPublicKey(String(segwitAddress == null ? void 0 : segwitAddress.publicKey));
836
919
  setLibrary(lib);
837
920
  setProvider(LEATHER);
838
- const balance2 = yield getBTCBalance(String(segwitAddress == null ? void 0 : segwitAddress.address));
921
+ const balance2 = yield getBTCBalance(
922
+ String(segwitAddress == null ? void 0 : segwitAddress.address),
923
+ network
924
+ );
839
925
  setBalance(balance2);
840
926
  handleAccountsChanged(leatherAccountsParsed);
841
927
  setConnected(true);
842
928
  yield getNetwork().then((network2) => {
843
- if (!network2) {
844
- setNetwork(MAINNET);
845
- } else {
846
- setNetwork(network2);
847
- }
848
929
  });
849
930
  setConnected(true);
850
931
  } catch (error) {
851
- new Error(`Can't lasereyes to ${LEATHER} wallet`);
932
+ throw error;
852
933
  }
853
934
  }), [hasLeather]);
854
935
  const connectPhantom = () => __async(void 0, null, function* () {
@@ -872,7 +953,10 @@ var LaserEyesProvider = ({
872
953
  setPaymentPublicKey(paymentAccount == null ? void 0 : paymentAccount.publicKey);
873
954
  setLibrary(lib);
874
955
  setProvider(PHANTOM);
875
- const balance2 = yield getBTCBalance(String(paymentAccount == null ? void 0 : paymentAccount.address));
956
+ const balance2 = yield getBTCBalance(
957
+ String(paymentAccount == null ? void 0 : paymentAccount.address),
958
+ network
959
+ );
876
960
  setBalance(balance2);
877
961
  setConnected(true);
878
962
  } catch (error) {
@@ -896,9 +980,14 @@ var LaserEyesProvider = ({
896
980
  setPaymentPublicKey(wizzPubKey);
897
981
  setLibrary(lib);
898
982
  setProvider(WIZZ);
983
+ yield getNetwork().then((network2) => {
984
+ if (config.network !== network2) {
985
+ switchNetwork(network2);
986
+ }
987
+ });
988
+ const balance2 = yield getBTCBalance(String(wizzAccounts[0]), network);
989
+ setBalance(balance2);
899
990
  setConnected(true);
900
- const balance2 = yield lib == null ? void 0 : lib.getBalance();
901
- setBalance(balance2 == null ? void 0 : balance2.total);
902
991
  } catch (error) {
903
992
  throw error;
904
993
  }
@@ -916,8 +1005,14 @@ var LaserEyesProvider = ({
916
1005
  yield connectOyl();
917
1006
  } else if (walletName === MAGIC_EDEN) {
918
1007
  yield connectMagicEden();
1008
+ } else if (walletName === OKX) {
1009
+ yield connectOkx();
919
1010
  } else if (walletName === LEATHER) {
920
1011
  yield connectLeather();
1012
+ } else if (walletName === PHANTOM) {
1013
+ yield connectPhantom();
1014
+ } else if (walletName === WIZZ) {
1015
+ yield connectWizz();
921
1016
  } else {
922
1017
  throw new Error("Unsupported wallet..");
923
1018
  }
@@ -925,6 +1020,7 @@ var LaserEyesProvider = ({
925
1020
  } catch (error) {
926
1021
  setIsConnecting(false);
927
1022
  disconnect();
1023
+ console.log("e", error == null ? void 0 : error.message);
928
1024
  throw error;
929
1025
  } finally {
930
1026
  setIsConnecting(false);
@@ -961,7 +1057,7 @@ var LaserEyesProvider = ({
961
1057
  };
962
1058
  const handleNetworkChanged = (network2) => {
963
1059
  try {
964
- let foundNetwork = MAINNET;
1060
+ let foundNetwork;
965
1061
  if (provider === UNISAT) {
966
1062
  foundNetwork = getNetworkForUnisat(network2);
967
1063
  setNetwork(foundNetwork);
@@ -970,10 +1066,12 @@ var LaserEyesProvider = ({
970
1066
  throw new Error("Not implemented");
971
1067
  } else if (provider === WIZZ) {
972
1068
  foundNetwork = getNetworkForWizz(network2);
973
- setNetwork(foundNetwork);
974
1069
  connect(provider);
975
1070
  } else {
976
- throw new Error("The connected wallet doesn't support this method..");
1071
+ disconnect();
1072
+ throw new Error(
1073
+ "The connected wallet doesn't support programmatic network changes.."
1074
+ );
977
1075
  }
978
1076
  } catch (error) {
979
1077
  throw error;
@@ -982,7 +1080,7 @@ var LaserEyesProvider = ({
982
1080
  const requestAccounts = () => __async(void 0, null, function* () {
983
1081
  try {
984
1082
  if (!library)
985
- return;
1083
+ throw new Error("No wallet connected");
986
1084
  if (provider === UNISAT) {
987
1085
  return yield library.requestAccounts();
988
1086
  } else if (provider === XVERSE) {
@@ -1011,6 +1109,9 @@ var LaserEyesProvider = ({
1011
1109
  } else if (provider === OYL) {
1012
1110
  return yield library.requestAccounts();
1013
1111
  } else if (provider === OKX) {
1112
+ if (network === TESTNET || network === TESTNET4 || network === FRACTAL_TESTNET) {
1113
+ return yield library.connect();
1114
+ }
1014
1115
  return yield library.requestAccounts();
1015
1116
  } else if (provider === LEATHER) {
1016
1117
  localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
@@ -1036,6 +1137,11 @@ var LaserEyesProvider = ({
1036
1137
  setProvider(LEATHER);
1037
1138
  handleAccountsChanged(leatherAccountsParsed);
1038
1139
  setConnected(true);
1140
+ const balance2 = yield getBTCBalance(
1141
+ String(segwitAddress == null ? void 0 : segwitAddress.address),
1142
+ network
1143
+ );
1144
+ setBalance(balance2);
1039
1145
  yield getNetwork().then((network2) => {
1040
1146
  if (!network2) {
1041
1147
  setNetwork(MAINNET);
@@ -1059,19 +1165,26 @@ var LaserEyesProvider = ({
1059
1165
  throw error;
1060
1166
  }
1061
1167
  });
1062
- const getNetwork = () => __async(void 0, null, function* () {
1063
- var _a;
1168
+ const getNetwork = useCallback(() => __async(void 0, null, function* () {
1169
+ var _a, _b;
1064
1170
  try {
1065
- if (!library)
1066
- return;
1067
1171
  if (provider === UNISAT) {
1068
- const unisatNetwork = yield library == null ? void 0 : library.getNetwork();
1069
- const foundNetwork = getNetworkForUnisat(unisatNetwork);
1070
- setNetwork(foundNetwork);
1071
- return foundNetwork;
1172
+ const unisatNetwork = yield library == null ? void 0 : library.getChain();
1173
+ if (!unisatNetwork) {
1174
+ return (_a = config == null ? void 0 : config.network) != null ? _a : MAINNET;
1175
+ }
1176
+ return getNetworkForUnisat(unisatNetwork.enum);
1072
1177
  } else if (provider === XVERSE) {
1073
1178
  if (address2.slice(0, 1) === "t") {
1074
- return TESTNET;
1179
+ if (network === TESTNET) {
1180
+ return TESTNET;
1181
+ } else if (network === TESTNET4) {
1182
+ return TESTNET4;
1183
+ } else if (network === SIGNET) {
1184
+ return SIGNET;
1185
+ } else if (network === FRACTAL_TESTNET) {
1186
+ return FRACTAL_TESTNET;
1187
+ }
1075
1188
  }
1076
1189
  return MAINNET;
1077
1190
  } else if (provider === OYL) {
@@ -1085,12 +1198,32 @@ var LaserEyesProvider = ({
1085
1198
  }
1086
1199
  return MAINNET;
1087
1200
  } else if (provider === OKX) {
1201
+ if (address2.slice(0, 1) === "t") {
1202
+ if (network === TESTNET) {
1203
+ return TESTNET;
1204
+ } else if (network === TESTNET4) {
1205
+ return TESTNET4;
1206
+ } else if (network === SIGNET) {
1207
+ return SIGNET;
1208
+ } else if (network === FRACTAL_TESTNET) {
1209
+ return FRACTAL_TESTNET;
1210
+ }
1211
+ return TESTNET;
1212
+ }
1088
1213
  const okxNetwork = yield library == null ? void 0 : library.getNetwork();
1089
1214
  const foundNetwork = getNetworkForOkx(okxNetwork);
1090
1215
  setNetwork(foundNetwork);
1091
1216
  } else if (provider === LEATHER) {
1092
1217
  if (address2.slice(0, 1) === "t") {
1093
- return TESTNET;
1218
+ if (network === TESTNET) {
1219
+ return TESTNET;
1220
+ } else if (network === TESTNET4) {
1221
+ return TESTNET4;
1222
+ } else if (network === SIGNET) {
1223
+ return SIGNET;
1224
+ } else if (network === FRACTAL_TESTNET) {
1225
+ return FRACTAL_TESTNET;
1226
+ }
1094
1227
  }
1095
1228
  return MAINNET;
1096
1229
  } else if (provider === PHANTOM) {
@@ -1100,28 +1233,33 @@ var LaserEyesProvider = ({
1100
1233
  return MAINNET;
1101
1234
  } else if (provider === WIZZ) {
1102
1235
  const wizzNetwork = yield library == null ? void 0 : library.getNetwork();
1103
- const foundNetwork = getNetworkForWizz(wizzNetwork);
1104
- setNetwork(foundNetwork);
1236
+ return getNetworkForWizz(wizzNetwork);
1105
1237
  }
1106
- return (_a = config == null ? void 0 : config.network) != null ? _a : MAINNET;
1238
+ return (_b = config == null ? void 0 : config.network) != null ? _b : MAINNET;
1107
1239
  } catch (error) {
1108
1240
  throw error;
1109
1241
  }
1110
- });
1242
+ }), [address2, provider, library]);
1111
1243
  const switchNetwork = (network2) => __async(void 0, null, function* () {
1112
1244
  try {
1113
1245
  if (!library)
1114
1246
  return;
1115
1247
  if (provider === UNISAT) {
1116
- const wantedNetwork = getWizzNetwork(network2);
1117
- yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
1248
+ const wantedNetwork = getUnisatNetwork(network2);
1249
+ yield library == null ? void 0 : library.switchChain(wantedNetwork);
1118
1250
  setNetwork(network2);
1119
1251
  } else if (provider === WIZZ) {
1252
+ if (network2 === FRACTAL_TESTNET || network2 === FRACTAL_MAINNET) {
1253
+ return yield library.switchNetwork(WIZZ_MAINNET);
1254
+ }
1120
1255
  const wantedNetwork = getNetworkForWizz(network2);
1121
1256
  yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
1122
1257
  setNetwork(network2);
1123
1258
  } else {
1124
- throw new Error("The connected wallet doesn't support this method..");
1259
+ disconnect();
1260
+ throw new Error(
1261
+ "The connected wallet doesn't support programmatic network changes.."
1262
+ );
1125
1263
  }
1126
1264
  } catch (error) {
1127
1265
  throw error;
@@ -1153,18 +1291,18 @@ var LaserEyesProvider = ({
1153
1291
  if (provider === UNISAT) {
1154
1292
  return yield library.getBalance();
1155
1293
  } else if (provider === XVERSE) {
1156
- return yield getBTCBalance(paymentAddress);
1294
+ return yield getBTCBalance(paymentAddress, network);
1157
1295
  } else if (provider === OYL) {
1158
1296
  const balanceResponse = yield library.getBalance();
1159
1297
  return balanceResponse.btc.total * 1e8;
1160
1298
  } else if (provider === MAGIC_EDEN) {
1161
- return yield getBTCBalance(paymentAddress);
1299
+ return yield getBTCBalance(paymentAddress, network);
1162
1300
  } else if (provider === OKX) {
1163
- return yield getBTCBalance(paymentAddress);
1301
+ return yield getBTCBalance(paymentAddress, network);
1164
1302
  } else if (provider === LEATHER) {
1165
- return yield getBTCBalance(paymentAddress);
1303
+ return yield getBTCBalance(paymentAddress, network);
1166
1304
  } else if (provider === PHANTOM) {
1167
- return yield getBTCBalance(paymentAddress);
1305
+ return yield getBTCBalance(paymentAddress, network);
1168
1306
  } else if (provider === WIZZ) {
1169
1307
  const balanceResponse = yield library.getBalance();
1170
1308
  return balanceResponse.total * 1e8;
@@ -1359,7 +1497,6 @@ var LaserEyesProvider = ({
1359
1497
  message,
1360
1498
  paymentType
1361
1499
  });
1362
- console.log("signed", signed);
1363
1500
  return (_a = signed == null ? void 0 : signed.result) == null ? void 0 : _a.signature;
1364
1501
  } else if (provider === PHANTOM) {
1365
1502
  const utf8Bytes = new TextEncoder().encode(message);
@@ -1492,7 +1629,6 @@ var LaserEyesProvider = ({
1492
1629
  };
1493
1630
  } else if (provider === OYL) {
1494
1631
  const signedPsbt = yield library == null ? void 0 : library.signPsbt(psbtHex, true, true);
1495
- console.log({ signedPsbt });
1496
1632
  const psbtSignedPsbt = bitcoin2.Psbt.fromHex(signedPsbt);
1497
1633
  if (broadcast) {
1498
1634
  const txId = yield pushPsbt(psbtSignedPsbt.toHex());
@@ -2516,6 +2652,7 @@ var WalletIcon = ({
2516
2652
  }
2517
2653
  };
2518
2654
  export {
2655
+ FRACTAL_MAINNET,
2519
2656
  FRACTAL_TESTNET,
2520
2657
  LEATHER,
2521
2658
  LEATHER_MAINNET,
@@ -2547,15 +2684,21 @@ export {
2547
2684
  REGTEST,
2548
2685
  SIGNET,
2549
2686
  TESTNET,
2687
+ TESTNET4,
2550
2688
  UNISAT,
2689
+ UNISAT_FRACTAL_MAINNET,
2551
2690
  UNISAT_FRACTAL_TESTNET,
2552
2691
  UNISAT_MAINNET,
2692
+ UNISAT_SIGNET,
2553
2693
  UNISAT_TESTNET,
2694
+ UNISAT_TESTNET4,
2554
2695
  UnisatLogo,
2555
2696
  WALLETS,
2556
2697
  WIZZ,
2557
2698
  WIZZ_MAINNET,
2699
+ WIZZ_SIGNET,
2558
2700
  WIZZ_TESTNET,
2701
+ WIZZ_TESTNET4,
2559
2702
  WalletIcon,
2560
2703
  WizzLogo,
2561
2704
  XVERSE,
@@ -2570,6 +2713,7 @@ export {
2570
2713
  estimateTxSize,
2571
2714
  findOrdinalsAddress,
2572
2715
  findPaymentAddress,
2716
+ getAddressUtxos,
2573
2717
  getBTCBalance,
2574
2718
  getBitcoinNetwork,
2575
2719
  getLeatherNetwork,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnisat/lasereyes",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "sideEffects": false,
5
5
  "private": false,
6
6
  "license": "MIT",