@omnisat/lasereyes 0.0.4 → 0.0.6
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/README.md +43 -70
- package/dist/index.d.ts +4 -9
- package/dist/index.js +296 -590
- package/dist/index.mjs +285 -590
- package/package.json +11 -9
package/dist/index.js
CHANGED
|
@@ -60,15 +60,6 @@ var __async = (__this, __arguments, generator) => {
|
|
|
60
60
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
61
61
|
});
|
|
62
62
|
};
|
|
63
|
-
var __forAwait = (obj, it, method) => {
|
|
64
|
-
it = obj[Symbol.asyncIterator];
|
|
65
|
-
method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((resolve, reject, done) => {
|
|
66
|
-
arg = fn.call(obj, arg);
|
|
67
|
-
done = arg.done;
|
|
68
|
-
return Promise.resolve(arg.value).then((value) => resolve({ value, done }), reject);
|
|
69
|
-
}));
|
|
70
|
-
return it ? it.call(obj) : (obj = obj[Symbol.iterator](), it = {}, method("next"), method("return"), it);
|
|
71
|
-
};
|
|
72
63
|
|
|
73
64
|
// src/index.tsx
|
|
74
65
|
var src_exports = {};
|
|
@@ -78,6 +69,8 @@ __export(src_exports, {
|
|
|
78
69
|
LEATHER_TESTNET: () => LEATHER_TESTNET,
|
|
79
70
|
LaserEyesProvider: () => LaserEyesProvider,
|
|
80
71
|
MAINNET: () => MAINNET,
|
|
72
|
+
MEMPOOL_SPACE_TESTNET_URL: () => MEMPOOL_SPACE_TESTNET_URL,
|
|
73
|
+
MEMPOOL_SPACE_URL: () => MEMPOOL_SPACE_URL,
|
|
81
74
|
OYL: () => OYL,
|
|
82
75
|
P2PKH: () => P2PKH,
|
|
83
76
|
P2SH: () => P2SH,
|
|
@@ -85,6 +78,7 @@ __export(src_exports, {
|
|
|
85
78
|
P2WPKH: () => P2WPKH,
|
|
86
79
|
P2WSH: () => P2WSH,
|
|
87
80
|
PHANTOM: () => PHANTOM,
|
|
81
|
+
REGTEST: () => REGTEST,
|
|
88
82
|
TESTNET: () => TESTNET,
|
|
89
83
|
UNISAT: () => UNISAT,
|
|
90
84
|
UNISAT_MAINNET: () => UNISAT_MAINNET,
|
|
@@ -95,22 +89,25 @@ __export(src_exports, {
|
|
|
95
89
|
XVERSE_NETWORK: () => XVERSE_NETWORK,
|
|
96
90
|
XVERSE_TESTNET: () => XVERSE_TESTNET,
|
|
97
91
|
createConfig: () => createConfig,
|
|
92
|
+
findOrdinalsAddress: () => findOrdinalsAddress,
|
|
93
|
+
findPaymentAddress: () => findPaymentAddress,
|
|
94
|
+
getBTCBalance: () => getBTCBalance,
|
|
95
|
+
getBitcoinNetwork: () => getBitcoinNetwork,
|
|
98
96
|
getLeatherNetwork: () => getLeatherNetwork,
|
|
97
|
+
getMempoolSpaceUrl: () => getMempoolSpaceUrl,
|
|
99
98
|
getNetworkForLeather: () => getNetworkForLeather,
|
|
100
99
|
getNetworkForUnisat: () => getNetworkForUnisat,
|
|
101
100
|
getNetworkForXverse: () => getNetworkForXverse,
|
|
102
101
|
getUnisatNetwork: () => getUnisatNetwork,
|
|
103
102
|
getXverseNetwork: () => getXverseNetwork,
|
|
103
|
+
isBase64: () => isBase64,
|
|
104
|
+
isHex: () => isHex,
|
|
105
|
+
satoshisToBTC: () => satoshisToBTC,
|
|
104
106
|
useLaserEyes: () => useLaserEyes
|
|
105
107
|
});
|
|
106
108
|
module.exports = __toCommonJS(src_exports);
|
|
107
109
|
|
|
108
|
-
// src/consts/
|
|
109
|
-
var OYL = "oyl";
|
|
110
|
-
var UNISAT = "unisat";
|
|
111
|
-
var XVERSE = "xverse";
|
|
112
|
-
var PHANTOM = "phantom";
|
|
113
|
-
var LEATHER = "leather";
|
|
110
|
+
// src/consts/networks.ts
|
|
114
111
|
var XVERSE_NETWORK = "Mainnet";
|
|
115
112
|
var UNISAT_MAINNET = "livenet";
|
|
116
113
|
var UNISAT_TESTNET = "testnet";
|
|
@@ -120,6 +117,7 @@ var LEATHER_MAINNET = "mainnet";
|
|
|
120
117
|
var LEATHER_TESTNET = "testnet";
|
|
121
118
|
var MAINNET = "mainnet";
|
|
122
119
|
var TESTNET = "testnet";
|
|
120
|
+
var REGTEST = "regtest";
|
|
123
121
|
var getXverseNetwork = (network) => {
|
|
124
122
|
if (network === MAINNET)
|
|
125
123
|
return XVERSE_MAINNET;
|
|
@@ -162,6 +160,16 @@ var getNetworkForLeather = (network) => {
|
|
|
162
160
|
return TESTNET;
|
|
163
161
|
return MAINNET;
|
|
164
162
|
};
|
|
163
|
+
var MEMPOOL_SPACE_URL = "https://mempool.space";
|
|
164
|
+
var MEMPOOL_SPACE_TESTNET_URL = "https://mempool.space/testnet";
|
|
165
|
+
var getMempoolSpaceUrl = (network) => network === TESTNET ? MEMPOOL_SPACE_TESTNET_URL : MEMPOOL_SPACE_URL;
|
|
166
|
+
|
|
167
|
+
// src/consts/wallets.ts
|
|
168
|
+
var OYL = "oyl";
|
|
169
|
+
var UNISAT = "unisat";
|
|
170
|
+
var XVERSE = "xverse";
|
|
171
|
+
var PHANTOM = "phantom";
|
|
172
|
+
var LEATHER = "leather";
|
|
165
173
|
var P2TR = "p2tr";
|
|
166
174
|
var P2PKH = "p2pkh";
|
|
167
175
|
var P2WPKH = "p2wpkh";
|
|
@@ -205,17 +213,10 @@ var createConfig = (config) => {
|
|
|
205
213
|
|
|
206
214
|
// src/providers/LaserEyesProvider.tsx
|
|
207
215
|
var import_react = require("react");
|
|
208
|
-
var
|
|
209
|
-
var import_sats_connect = require("sats-connect");
|
|
216
|
+
var bitcoin2 = __toESM(require("bitcoinjs-lib"));
|
|
210
217
|
|
|
211
218
|
// src/consts/settings.ts
|
|
212
219
|
var LOCAL_STORAGE_DEFAULT_WALLET = "defaultWallet";
|
|
213
|
-
var NETWORK = TESTNET;
|
|
214
|
-
|
|
215
|
-
// src/providers/LaserEyesProvider.tsx
|
|
216
|
-
var import_address = require("bitcoinjs-lib/src/address");
|
|
217
|
-
var import_usehooks_ts = require("usehooks-ts");
|
|
218
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
219
220
|
var initialWalletContext = {
|
|
220
221
|
hasOyl: false,
|
|
221
222
|
hasUnisat: false,
|
|
@@ -224,29 +225,14 @@ var initialWalletContext = {
|
|
|
224
225
|
connected: false,
|
|
225
226
|
isConnecting: false,
|
|
226
227
|
publicKey: "",
|
|
227
|
-
// Empty string as the public key is unknown
|
|
228
228
|
address: "",
|
|
229
|
-
// Empty string as the address is unknown
|
|
230
229
|
paymentAddress: "",
|
|
231
|
-
// Empty string as the address is unknown
|
|
232
230
|
paymentPublicKey: "",
|
|
233
|
-
balance:
|
|
234
|
-
|
|
235
|
-
// Initial confirmed balance is zero
|
|
236
|
-
unconfirmed: 0,
|
|
237
|
-
// Initial unconfirmed balance is zero
|
|
238
|
-
total: 0
|
|
239
|
-
// Initial total balance is zero
|
|
240
|
-
},
|
|
241
|
-
network: "",
|
|
242
|
-
// Empty string as the network is unknown
|
|
231
|
+
balance: void 0,
|
|
232
|
+
network: MAINNET,
|
|
243
233
|
library: null,
|
|
244
|
-
// Initial library is null, assuming it will be an object once initialized
|
|
245
234
|
provider: null,
|
|
246
|
-
// Initial provider is null, assuming it will be an object once initialized
|
|
247
235
|
accounts: [],
|
|
248
|
-
// Initially, there are no accounts
|
|
249
|
-
// Placeholder functions for wallet operations. These should be replaced with actual implementations.
|
|
250
236
|
connect: (walletName) => __async(void 0, null, function* () {
|
|
251
237
|
}),
|
|
252
238
|
disconnect: () => {
|
|
@@ -255,10 +241,9 @@ var initialWalletContext = {
|
|
|
255
241
|
return [];
|
|
256
242
|
}),
|
|
257
243
|
getNetwork: () => __async(void 0, null, function* () {
|
|
258
|
-
return
|
|
244
|
+
return MAINNET;
|
|
259
245
|
}),
|
|
260
246
|
switchNetwork: (network) => __async(void 0, null, function* () {
|
|
261
|
-
return "";
|
|
262
247
|
}),
|
|
263
248
|
getPublicKey: () => __async(void 0, null, function* () {
|
|
264
249
|
return "";
|
|
@@ -267,34 +252,90 @@ var initialWalletContext = {
|
|
|
267
252
|
return "";
|
|
268
253
|
}),
|
|
269
254
|
getInscriptions: () => __async(void 0, null, function* () {
|
|
270
|
-
|
|
271
|
-
getAllBRC20Tokens: () => __async(void 0, null, function* () {
|
|
255
|
+
return [];
|
|
272
256
|
}),
|
|
273
257
|
sendBTC: (to, amount) => __async(void 0, null, function* () {
|
|
274
258
|
return "";
|
|
275
259
|
}),
|
|
276
|
-
payInscribe: () => __async(void 0, null, function* () {
|
|
277
|
-
}),
|
|
278
|
-
deploy: () => __async(void 0, null, function* () {
|
|
279
|
-
}),
|
|
280
|
-
mint: () => __async(void 0, null, function* () {
|
|
281
|
-
}),
|
|
282
260
|
signMessage: (message) => __async(void 0, null, function* () {
|
|
283
261
|
return "";
|
|
284
262
|
}),
|
|
285
263
|
signPsbt: (tx) => __async(void 0, null, function* () {
|
|
286
|
-
return
|
|
264
|
+
return {
|
|
265
|
+
signedPsbtHex: "",
|
|
266
|
+
signedPsbtBase64: "",
|
|
267
|
+
txId: ""
|
|
268
|
+
};
|
|
287
269
|
}),
|
|
288
270
|
pushPsbt: (tx) => __async(void 0, null, function* () {
|
|
289
271
|
return "";
|
|
290
272
|
})
|
|
291
|
-
// signPsbts: async () => { /* Implementation */ },
|
|
292
273
|
};
|
|
274
|
+
|
|
275
|
+
// src/providers/LaserEyesProvider.tsx
|
|
276
|
+
var import_usehooks_ts = require("usehooks-ts");
|
|
277
|
+
|
|
278
|
+
// src/lib/helpers.ts
|
|
279
|
+
var bitcoin = __toESM(require("bitcoinjs-lib"));
|
|
280
|
+
var import_axios = __toESM(require("axios"));
|
|
281
|
+
var getBitcoinNetwork = (network) => {
|
|
282
|
+
if (network === TESTNET) {
|
|
283
|
+
return bitcoin.networks.testnet;
|
|
284
|
+
} else if (network === REGTEST) {
|
|
285
|
+
return bitcoin.networks.regtest;
|
|
286
|
+
} else {
|
|
287
|
+
return bitcoin.networks.bitcoin;
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
var findOrdinalsAddress = (addresses) => {
|
|
291
|
+
return addresses.find(
|
|
292
|
+
({ purpose }) => purpose === "ordinals"
|
|
293
|
+
);
|
|
294
|
+
};
|
|
295
|
+
var findPaymentAddress = (addresses) => {
|
|
296
|
+
return addresses.find(
|
|
297
|
+
({ purpose }) => purpose === "payment"
|
|
298
|
+
);
|
|
299
|
+
};
|
|
300
|
+
var getBTCBalance = (address) => __async(void 0, null, function* () {
|
|
301
|
+
try {
|
|
302
|
+
return yield import_axios.default.get(`https://blockchain.info/q/addressbalance/${address}`).then((response) => response.data);
|
|
303
|
+
} catch (error) {
|
|
304
|
+
console.error("Error fetching BTC balance:", error);
|
|
305
|
+
throw new Error("Failed to fetch BTC balance");
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
var satoshisToBTC = (satoshis) => {
|
|
309
|
+
if (Number.isNaN(satoshis) || satoshis === void 0)
|
|
310
|
+
return "--";
|
|
311
|
+
const btcValue = satoshis / 1e8;
|
|
312
|
+
return btcValue.toFixed(8);
|
|
313
|
+
};
|
|
314
|
+
var isBase64 = (str) => {
|
|
315
|
+
const base64Regex = /^(?:[A-Za-z0-9+\/]{4})*?(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/;
|
|
316
|
+
return base64Regex.test(str);
|
|
317
|
+
};
|
|
318
|
+
var isHex = (str) => {
|
|
319
|
+
const hexRegex = /^[a-fA-F0-9]+$/;
|
|
320
|
+
return hexRegex.test(str);
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
// src/providers/LaserEyesProvider.tsx
|
|
324
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
293
325
|
var LaserEyesContext = (0, import_react.createContext)(initialWalletContext);
|
|
294
326
|
var useLaserEyes = () => {
|
|
295
327
|
return (0, import_react.useContext)(LaserEyesContext);
|
|
296
328
|
};
|
|
297
|
-
var LaserEyesProvider = ({
|
|
329
|
+
var LaserEyesProvider = ({
|
|
330
|
+
children,
|
|
331
|
+
config
|
|
332
|
+
}) => {
|
|
333
|
+
const selfRef = (0, import_react.useRef)({
|
|
334
|
+
accounts: []
|
|
335
|
+
});
|
|
336
|
+
const self = selfRef.current;
|
|
337
|
+
const [library, setLibrary] = (0, import_react.useState)(null);
|
|
338
|
+
const [provider, setProvider] = (0, import_react.useState)();
|
|
298
339
|
const [connected, setConnected] = (0, import_react.useState)(false);
|
|
299
340
|
const [isConnecting, setIsConnecting] = (0, import_react.useState)(false);
|
|
300
341
|
const [accounts, setAccounts] = (0, import_react.useState)([]);
|
|
@@ -302,158 +343,30 @@ var LaserEyesProvider = ({ children }) => {
|
|
|
302
343
|
const [paymentPublicKey, setPaymentPublicKey] = (0, import_react.useState)("");
|
|
303
344
|
const [address, setAddress] = (0, import_react.useState)("");
|
|
304
345
|
const [paymentAddress, setPaymentAddress] = (0, import_react.useState)("");
|
|
305
|
-
const [balance, setBalance] = (0, import_react.useState)(
|
|
306
|
-
confirmed: 0,
|
|
307
|
-
unconfirmed: 0,
|
|
308
|
-
total: 0
|
|
309
|
-
});
|
|
310
|
-
const [network, setNetwork] = (0, import_usehooks_ts.useLocalStorage)("network", NETWORK);
|
|
311
|
-
const [library, setLibrary] = (0, import_react.useState)(null);
|
|
312
|
-
const [provider, setProvider] = (0, import_react.useState)("");
|
|
313
|
-
const [hasOyl, setHasOyl] = (0, import_react.useState)(false);
|
|
346
|
+
const [balance, setBalance] = (0, import_react.useState)();
|
|
314
347
|
const [hasUnisat, setHasUnisat] = (0, import_react.useState)(false);
|
|
315
|
-
const [
|
|
316
|
-
|
|
348
|
+
const [network, setNetwork] = (0, import_usehooks_ts.useLocalStorage)("network", MAINNET, {
|
|
349
|
+
initializeWithValue: false
|
|
350
|
+
});
|
|
317
351
|
(0, import_react.useEffect)(() => {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
352
|
+
if (config) {
|
|
353
|
+
setNetwork(config.network);
|
|
354
|
+
getNetwork().then((foundNetwork) => {
|
|
355
|
+
if (config.network !== foundNetwork) {
|
|
356
|
+
switchNetwork(network);
|
|
357
|
+
} else if (network !== foundNetwork) {
|
|
358
|
+
setNetwork(network);
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
}, [config, library]);
|
|
321
363
|
(0, import_react.useEffect)(() => {
|
|
322
364
|
const unisatLib = window == null ? void 0 : window.unisat;
|
|
323
365
|
setHasUnisat(!!unisatLib);
|
|
324
366
|
}, []);
|
|
325
367
|
(0, import_react.useEffect)(() => {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
setHasXverse(!!xverseLib);
|
|
329
|
-
}, []);
|
|
330
|
-
(0, import_react.useEffect)(() => {
|
|
331
|
-
const leatherLib = window == null ? void 0 : window.LeatherProvider;
|
|
332
|
-
setHasLeather(!!leatherLib);
|
|
333
|
-
}, []);
|
|
334
|
-
const selfRef = (0, import_react.useRef)({
|
|
335
|
-
accounts: []
|
|
336
|
-
});
|
|
337
|
-
const self = selfRef.current;
|
|
338
|
-
const connectOyl = () => __async(void 0, null, function* () {
|
|
339
|
-
try {
|
|
340
|
-
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, OYL);
|
|
341
|
-
const lib = window.oyl;
|
|
342
|
-
const result = yield lib.requestAccounts();
|
|
343
|
-
setAccounts(result);
|
|
344
|
-
setAddress(result[0]);
|
|
345
|
-
setPaymentAddress(result[0]);
|
|
346
|
-
setLibrary(lib);
|
|
347
|
-
setProvider(OYL);
|
|
348
|
-
handleAccountsChanged(result);
|
|
349
|
-
setConnected(true);
|
|
350
|
-
} catch (error) {
|
|
351
|
-
new Error("Can't lasereyes to wallet");
|
|
352
|
-
}
|
|
353
|
-
});
|
|
354
|
-
const connectUnisat = () => __async(void 0, null, function* () {
|
|
355
|
-
try {
|
|
356
|
-
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, UNISAT);
|
|
357
|
-
const lib = window.unisat;
|
|
358
|
-
const result = yield lib.requestAccounts();
|
|
359
|
-
setAccounts(result);
|
|
360
|
-
setAddress(result[0]);
|
|
361
|
-
setPaymentAddress(result[0]);
|
|
362
|
-
setLibrary(lib);
|
|
363
|
-
setProvider(UNISAT);
|
|
364
|
-
handleAccountsChanged(result);
|
|
365
|
-
setConnected(true);
|
|
366
|
-
yield getNetwork().then((network2) => {
|
|
367
|
-
const foundNetwork = getNetworkForUnisat(String(network2));
|
|
368
|
-
setNetwork(foundNetwork);
|
|
369
|
-
});
|
|
370
|
-
} catch (error) {
|
|
371
|
-
new Error("Can't lasereyes to wallet");
|
|
372
|
-
}
|
|
373
|
-
});
|
|
374
|
-
const connectXverse = () => __async(void 0, null, function* () {
|
|
375
|
-
try {
|
|
376
|
-
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, XVERSE);
|
|
377
|
-
let xverseNetwork = getXverseNetwork(NETWORK);
|
|
378
|
-
const getAddressOptions = {
|
|
379
|
-
payload: {
|
|
380
|
-
purposes: ["ordinals", "payment"],
|
|
381
|
-
message: "Address for receiving Ordinals and payments",
|
|
382
|
-
network: {
|
|
383
|
-
type: xverseNetwork
|
|
384
|
-
}
|
|
385
|
-
},
|
|
386
|
-
onFinish: (response) => {
|
|
387
|
-
setPublicKey(String(response.addresses[0].publicKey));
|
|
388
|
-
setPaymentPublicKey(String(response.addresses[1].publicKey));
|
|
389
|
-
const foundAddress = findOrdinalsAddress(response.addresses);
|
|
390
|
-
const foundPaymentAddress = findPaymentAddress(response.addresses);
|
|
391
|
-
if (foundAddress && foundPaymentAddress) {
|
|
392
|
-
setAddress(foundAddress.address);
|
|
393
|
-
setPaymentAddress(foundPaymentAddress.address);
|
|
394
|
-
setProvider(XVERSE);
|
|
395
|
-
setLibrary(window.BitcoinProvider);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
};
|
|
399
|
-
yield (0, import_sats_connect.getAddress)(getAddressOptions);
|
|
400
|
-
setConnected(true);
|
|
401
|
-
} catch (error) {
|
|
402
|
-
new Error(`Can't lasereyes to ${XVERSE} wallet`);
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
const connectLeather = () => __async(void 0, null, function* () {
|
|
406
|
-
try {
|
|
407
|
-
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
|
|
408
|
-
const lib = window.LeatherProvider;
|
|
409
|
-
const getAddressesResponse = yield lib.request(
|
|
410
|
-
"getAddresses"
|
|
411
|
-
);
|
|
412
|
-
const addressesResponse = getAddressesResponse.result;
|
|
413
|
-
const addresses = addressesResponse.addresses;
|
|
414
|
-
const leatherAccountsParsed = addresses.map(
|
|
415
|
-
(address2) => address2.address
|
|
416
|
-
);
|
|
417
|
-
const taprootAddress = addresses.find(
|
|
418
|
-
(address2) => address2.type === P2TR
|
|
419
|
-
);
|
|
420
|
-
const segwitAddress = addresses.find(
|
|
421
|
-
(address2) => address2.type === P2WPKH
|
|
422
|
-
);
|
|
423
|
-
setAccounts(leatherAccountsParsed);
|
|
424
|
-
setAddress(String(taprootAddress == null ? void 0 : taprootAddress.address));
|
|
425
|
-
setPaymentAddress(String(segwitAddress == null ? void 0 : segwitAddress.address));
|
|
426
|
-
setLibrary(lib);
|
|
427
|
-
setProvider(LEATHER);
|
|
428
|
-
handleAccountsChanged(leatherAccountsParsed);
|
|
429
|
-
setConnected(true);
|
|
430
|
-
yield getNetwork().then((network2) => {
|
|
431
|
-
if (!network2) {
|
|
432
|
-
setNetwork(MAINNET);
|
|
433
|
-
} else {
|
|
434
|
-
setNetwork(network2);
|
|
435
|
-
}
|
|
436
|
-
});
|
|
437
|
-
setConnected(true);
|
|
438
|
-
} catch (error) {
|
|
439
|
-
new Error(`Can't lasereyes to ${LEATHER} wallet`);
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
const handleAccountsChanged = (_accounts) => {
|
|
443
|
-
if (self.accounts[0] === _accounts[0]) {
|
|
444
|
-
return;
|
|
445
|
-
}
|
|
446
|
-
self.accounts = _accounts;
|
|
447
|
-
if (_accounts.length > 0) {
|
|
448
|
-
setAccounts(_accounts);
|
|
449
|
-
setConnected(true);
|
|
450
|
-
setAddress(_accounts[0]);
|
|
451
|
-
setPaymentAddress(_accounts[0]);
|
|
452
|
-
getBasicInfo();
|
|
453
|
-
} else {
|
|
454
|
-
setConnected(false);
|
|
455
|
-
}
|
|
456
|
-
};
|
|
368
|
+
setBalance(void 0);
|
|
369
|
+
}, [network]);
|
|
457
370
|
(0, import_react.useEffect)(() => {
|
|
458
371
|
if (provider !== UNISAT) {
|
|
459
372
|
return;
|
|
@@ -472,11 +385,50 @@ var LaserEyesProvider = ({ children }) => {
|
|
|
472
385
|
const defaultWallet = localStorage == null ? void 0 : localStorage.getItem(
|
|
473
386
|
LOCAL_STORAGE_DEFAULT_WALLET
|
|
474
387
|
);
|
|
475
|
-
if (defaultWallet) {
|
|
388
|
+
if (defaultWallet && !isConnecting) {
|
|
476
389
|
setProvider(defaultWallet);
|
|
477
390
|
connect(defaultWallet);
|
|
478
391
|
}
|
|
479
392
|
}, []);
|
|
393
|
+
const connectUnisat = () => __async(void 0, null, function* () {
|
|
394
|
+
try {
|
|
395
|
+
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, UNISAT);
|
|
396
|
+
const lib = window.unisat;
|
|
397
|
+
const unisatAccounts = yield lib.requestAccounts();
|
|
398
|
+
if (!unisatAccounts)
|
|
399
|
+
throw new Error("No accounts found");
|
|
400
|
+
const unisatPubKey = yield lib.getPublicKey();
|
|
401
|
+
if (!unisatPubKey)
|
|
402
|
+
throw new Error("No public key found");
|
|
403
|
+
setAccounts(unisatAccounts);
|
|
404
|
+
setAddress(unisatAccounts[0]);
|
|
405
|
+
setPaymentAddress(unisatAccounts[0]);
|
|
406
|
+
setPublicKey(unisatPubKey);
|
|
407
|
+
setPaymentPublicKey(unisatPubKey);
|
|
408
|
+
setLibrary(lib);
|
|
409
|
+
setProvider(UNISAT);
|
|
410
|
+
setConnected(true);
|
|
411
|
+
const balance2 = yield lib == null ? void 0 : lib.getBalance();
|
|
412
|
+
setBalance(balance2 == null ? void 0 : balance2.total);
|
|
413
|
+
} catch (error) {
|
|
414
|
+
throw new Error(`Can't lasereyes to ${UNISAT} wallet`);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
const handleAccountsChanged = (_accounts) => {
|
|
418
|
+
if (!_accounts.length) {
|
|
419
|
+
disconnect();
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
if (self.accounts[0] === _accounts[0]) {
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
self.accounts = _accounts;
|
|
426
|
+
if (_accounts.length > 0) {
|
|
427
|
+
connect(UNISAT);
|
|
428
|
+
} else {
|
|
429
|
+
setConnected(false);
|
|
430
|
+
}
|
|
431
|
+
};
|
|
480
432
|
const getBasicInfo = () => __async(void 0, null, function* () {
|
|
481
433
|
if (provider !== UNISAT)
|
|
482
434
|
return;
|
|
@@ -486,511 +438,254 @@ var LaserEyesProvider = ({ children }) => {
|
|
|
486
438
|
setBalance(balance2);
|
|
487
439
|
const network2 = yield library == null ? void 0 : library.getNetwork();
|
|
488
440
|
if (network2) {
|
|
489
|
-
|
|
441
|
+
const foundNetwork = getNetworkForUnisat(String(network2));
|
|
442
|
+
setNetwork(foundNetwork);
|
|
490
443
|
}
|
|
491
444
|
});
|
|
492
445
|
const handleNetworkChanged = (network2) => {
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
446
|
+
try {
|
|
447
|
+
let foundNetwork = MAINNET;
|
|
448
|
+
if (provider === UNISAT) {
|
|
449
|
+
foundNetwork = getNetworkForUnisat(network2);
|
|
450
|
+
setNetwork(foundNetwork);
|
|
451
|
+
connect(provider);
|
|
452
|
+
} else {
|
|
453
|
+
throw new Error("Unsupported wallet");
|
|
454
|
+
}
|
|
455
|
+
} catch (error) {
|
|
456
|
+
throw error;
|
|
502
457
|
}
|
|
503
|
-
setNetwork(foundNetwork);
|
|
504
|
-
getBasicInfo();
|
|
505
|
-
};
|
|
506
|
-
const findOrdinalsAddress = (addresses) => {
|
|
507
|
-
return addresses.find(
|
|
508
|
-
({ purpose }) => purpose === "ordinals"
|
|
509
|
-
);
|
|
510
|
-
};
|
|
511
|
-
const findPaymentAddress = (addresses) => {
|
|
512
|
-
return addresses.find(
|
|
513
|
-
({ purpose }) => purpose === "payment"
|
|
514
|
-
);
|
|
515
458
|
};
|
|
516
459
|
const connect = (walletName) => __async(void 0, null, function* () {
|
|
517
460
|
setIsConnecting(true);
|
|
518
461
|
try {
|
|
519
462
|
if (!walletName)
|
|
520
|
-
new Error("No wallet provided");
|
|
521
|
-
if (walletName ===
|
|
522
|
-
yield connectOyl();
|
|
523
|
-
} else if (walletName === UNISAT) {
|
|
463
|
+
throw new Error("No wallet provided");
|
|
464
|
+
if (walletName === UNISAT) {
|
|
524
465
|
yield connectUnisat();
|
|
525
|
-
} else if (walletName === XVERSE) {
|
|
526
|
-
yield connectXverse();
|
|
527
|
-
} else if (walletName === LEATHER) {
|
|
528
|
-
yield connectLeather();
|
|
529
466
|
} else {
|
|
530
|
-
new Error("
|
|
467
|
+
throw new Error("Unsupported wallet!");
|
|
531
468
|
}
|
|
532
469
|
setConnected(true);
|
|
533
470
|
} catch (error) {
|
|
534
|
-
|
|
471
|
+
setIsConnecting(false);
|
|
535
472
|
disconnect();
|
|
536
|
-
new Error("Can't lasereyes to wallet");
|
|
473
|
+
throw new Error("Can't lasereyes to wallet");
|
|
537
474
|
} finally {
|
|
538
475
|
setIsConnecting(false);
|
|
539
476
|
}
|
|
540
477
|
});
|
|
541
478
|
const disconnect = () => {
|
|
542
479
|
setAddress("");
|
|
480
|
+
setPaymentAddress("");
|
|
481
|
+
setPublicKey("");
|
|
543
482
|
setAccounts([]);
|
|
544
|
-
setProvider(
|
|
483
|
+
setProvider(void 0);
|
|
545
484
|
setLibrary(null);
|
|
546
485
|
setConnected(false);
|
|
486
|
+
setBalance(void 0);
|
|
547
487
|
localStorage == null ? void 0 : localStorage.removeItem(LOCAL_STORAGE_DEFAULT_WALLET);
|
|
548
488
|
};
|
|
549
489
|
const requestAccounts = () => __async(void 0, null, function* () {
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
purposes: ["ordinals", "payment"],
|
|
561
|
-
message: "Address for receiving Ordinals and payments",
|
|
562
|
-
network: {
|
|
563
|
-
type: XVERSE_NETWORK
|
|
564
|
-
}
|
|
565
|
-
},
|
|
566
|
-
onFinish: (response) => __async(void 0, null, function* () {
|
|
567
|
-
const foundAddress = findOrdinalsAddress(response.addresses);
|
|
568
|
-
setAddress(foundAddress.address);
|
|
569
|
-
const foundPaymentAddress = findPaymentAddress(response.addresses);
|
|
570
|
-
setPaymentAddress(foundPaymentAddress);
|
|
571
|
-
setPublicKey(String(response.addresses[0].publicKey));
|
|
572
|
-
setPaymentPublicKey(String(response.addresses[1].publicKey));
|
|
573
|
-
}),
|
|
574
|
-
onCancel: () => {
|
|
575
|
-
console.log("CANCELLED");
|
|
576
|
-
}
|
|
577
|
-
};
|
|
578
|
-
return [address];
|
|
579
|
-
} else if (provider === LEATHER) {
|
|
580
|
-
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_DEFAULT_WALLET, LEATHER);
|
|
581
|
-
const lib = window.LeatherProvider;
|
|
582
|
-
const getAddressesResponse = yield lib.request(
|
|
583
|
-
"getAddresses"
|
|
584
|
-
);
|
|
585
|
-
const addressesResponse = getAddressesResponse.result;
|
|
586
|
-
const addresses = addressesResponse.addresses;
|
|
587
|
-
const leatherAccountsParsed = addresses.map(
|
|
588
|
-
(address2) => address2.address
|
|
589
|
-
);
|
|
590
|
-
const taprootAddress = addresses.find(
|
|
591
|
-
(address2) => address2.type === P2TR
|
|
592
|
-
);
|
|
593
|
-
const segwitAddress = addresses.find(
|
|
594
|
-
(address2) => address2.type === P2WPKH
|
|
595
|
-
);
|
|
596
|
-
setAccounts(leatherAccountsParsed);
|
|
597
|
-
setAddress(String(taprootAddress == null ? void 0 : taprootAddress.address));
|
|
598
|
-
setPaymentAddress(String(segwitAddress == null ? void 0 : segwitAddress.address));
|
|
599
|
-
setLibrary(lib);
|
|
600
|
-
setProvider(LEATHER);
|
|
601
|
-
handleAccountsChanged(leatherAccountsParsed);
|
|
602
|
-
setConnected(true);
|
|
603
|
-
yield getNetwork().then((network2) => {
|
|
604
|
-
if (!network2) {
|
|
605
|
-
setNetwork(MAINNET);
|
|
606
|
-
} else {
|
|
607
|
-
setNetwork(network2);
|
|
608
|
-
}
|
|
609
|
-
});
|
|
610
|
-
setConnected(true);
|
|
611
|
-
} else {
|
|
612
|
-
console.log("NO WALLET CONNECTED");
|
|
490
|
+
try {
|
|
491
|
+
if (!library)
|
|
492
|
+
return;
|
|
493
|
+
if (provider === UNISAT) {
|
|
494
|
+
return yield library.requestAccounts();
|
|
495
|
+
} else {
|
|
496
|
+
throw new Error("Unsupported wallet");
|
|
497
|
+
}
|
|
498
|
+
} catch (error) {
|
|
499
|
+
throw error;
|
|
613
500
|
}
|
|
614
501
|
});
|
|
615
502
|
const getNetwork = () => __async(void 0, null, function* () {
|
|
616
503
|
try {
|
|
617
504
|
if (!library)
|
|
618
505
|
return;
|
|
619
|
-
if (provider ===
|
|
620
|
-
new Error("Not implemented");
|
|
621
|
-
} else if (provider === UNISAT) {
|
|
506
|
+
if (provider === UNISAT) {
|
|
622
507
|
const unisatNetwork = yield library == null ? void 0 : library.getNetwork();
|
|
623
508
|
const foundNetwork = getNetworkForUnisat(unisatNetwork);
|
|
624
509
|
setNetwork(foundNetwork);
|
|
625
510
|
return foundNetwork;
|
|
626
|
-
} else
|
|
627
|
-
|
|
628
|
-
return TESTNET;
|
|
629
|
-
}
|
|
630
|
-
return MAINNET;
|
|
631
|
-
} else if (provider === LEATHER) {
|
|
632
|
-
if (address.slice(0, 1) === "t") {
|
|
633
|
-
return TESTNET;
|
|
634
|
-
}
|
|
635
|
-
return MAINNET;
|
|
511
|
+
} else {
|
|
512
|
+
throw new Error("Unsupported wallet");
|
|
636
513
|
}
|
|
637
514
|
} catch (error) {
|
|
638
|
-
|
|
515
|
+
throw error;
|
|
639
516
|
}
|
|
640
517
|
});
|
|
641
518
|
const switchNetwork = (network2) => __async(void 0, null, function* () {
|
|
642
519
|
try {
|
|
643
520
|
if (!library)
|
|
644
521
|
return;
|
|
645
|
-
if (provider ===
|
|
646
|
-
new Error("Not implemented");
|
|
647
|
-
} else if (provider === UNISAT) {
|
|
522
|
+
if (provider === UNISAT) {
|
|
648
523
|
const wantedNetwork = getUnisatNetwork(network2);
|
|
649
524
|
yield library == null ? void 0 : library.switchNetwork(wantedNetwork);
|
|
650
525
|
setNetwork(network2);
|
|
651
|
-
} else
|
|
652
|
-
|
|
653
|
-
} else if (provider === LEATHER) {
|
|
654
|
-
return NETWORK;
|
|
526
|
+
} else {
|
|
527
|
+
throw new Error("Unsupported wallet");
|
|
655
528
|
}
|
|
656
529
|
} catch (error) {
|
|
657
|
-
|
|
530
|
+
throw error;
|
|
658
531
|
}
|
|
659
532
|
});
|
|
660
533
|
const getPublicKey = () => __async(void 0, null, function* () {
|
|
661
534
|
try {
|
|
662
535
|
if (!library)
|
|
663
536
|
return;
|
|
664
|
-
if (provider ===
|
|
665
|
-
|
|
666
|
-
} else if (provider === UNISAT) {
|
|
537
|
+
if (provider === UNISAT) {
|
|
538
|
+
const pub = yield library == null ? void 0 : library.getPublicKey();
|
|
667
539
|
return yield library == null ? void 0 : library.getPublicKey();
|
|
668
|
-
} else
|
|
669
|
-
new Error("
|
|
670
|
-
} else if (provider === LEATHER) {
|
|
671
|
-
new Error("Not implemented");
|
|
540
|
+
} else {
|
|
541
|
+
throw new Error("Unsupported wallet");
|
|
672
542
|
}
|
|
673
543
|
} catch (error) {
|
|
674
|
-
|
|
544
|
+
throw error;
|
|
675
545
|
}
|
|
676
546
|
});
|
|
677
547
|
const getBalance = () => __async(void 0, null, function* () {
|
|
678
548
|
try {
|
|
679
549
|
if (!library)
|
|
680
550
|
return;
|
|
681
|
-
if (provider ===
|
|
551
|
+
if (provider === UNISAT) {
|
|
682
552
|
return yield library.getBalance();
|
|
683
|
-
} else
|
|
684
|
-
|
|
685
|
-
} else if (provider === XVERSE) {
|
|
686
|
-
new Error("Not implemented");
|
|
687
|
-
} else if (provider === LEATHER) {
|
|
688
|
-
new Error("Not implemented");
|
|
553
|
+
} else {
|
|
554
|
+
throw new Error("Unsupported wallet");
|
|
689
555
|
}
|
|
690
556
|
} catch (error) {
|
|
691
|
-
|
|
557
|
+
throw error;
|
|
692
558
|
}
|
|
693
559
|
});
|
|
694
560
|
const getInscriptions = () => __async(void 0, null, function* () {
|
|
695
561
|
try {
|
|
696
562
|
if (!library)
|
|
697
563
|
return;
|
|
698
|
-
if (provider ===
|
|
564
|
+
if (provider === UNISAT) {
|
|
699
565
|
return yield library.getInscriptions(0, 10);
|
|
700
|
-
} else
|
|
701
|
-
|
|
702
|
-
} else if (provider === XVERSE) {
|
|
703
|
-
new Error("Not implemented");
|
|
704
|
-
} else if (provider === LEATHER) {
|
|
705
|
-
new Error("Not implemented");
|
|
706
|
-
}
|
|
707
|
-
} catch (error) {
|
|
708
|
-
console.error("error", error);
|
|
709
|
-
}
|
|
710
|
-
});
|
|
711
|
-
const getAllBRC20Tokens = () => __async(void 0, null, function* () {
|
|
712
|
-
try {
|
|
713
|
-
if (!library)
|
|
714
|
-
return;
|
|
715
|
-
if (provider === OYL) {
|
|
716
|
-
new Error("Not implemented");
|
|
717
|
-
} else if (provider === UNISAT) {
|
|
718
|
-
new Error("Not implemented");
|
|
719
|
-
} else if (provider === XVERSE) {
|
|
720
|
-
new Error("Not implemented");
|
|
721
|
-
} else if (provider === LEATHER) {
|
|
722
|
-
new Error("Not implemented");
|
|
566
|
+
} else {
|
|
567
|
+
throw new Error("Unsupported wallet");
|
|
723
568
|
}
|
|
724
569
|
} catch (error) {
|
|
725
|
-
|
|
570
|
+
throw error;
|
|
726
571
|
}
|
|
727
572
|
});
|
|
728
573
|
const sendBTC = (to, amount) => __async(void 0, null, function* () {
|
|
729
574
|
try {
|
|
730
|
-
if (
|
|
731
|
-
new Error("
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
} else if (provider === XVERSE) {
|
|
735
|
-
new Error("Not implemented");
|
|
736
|
-
} else if (provider === LEATHER) {
|
|
737
|
-
return yield library == null ? void 0 : library.request("sendTransfer", {
|
|
738
|
-
address: to,
|
|
739
|
-
amount: amount.toString()
|
|
740
|
-
});
|
|
741
|
-
}
|
|
742
|
-
} catch (error) {
|
|
743
|
-
console.error("error", error);
|
|
744
|
-
}
|
|
745
|
-
});
|
|
746
|
-
const payInscribe = () => __async(void 0, null, function* () {
|
|
747
|
-
try {
|
|
748
|
-
if (!library)
|
|
749
|
-
return;
|
|
750
|
-
if (provider === OYL) {
|
|
751
|
-
new Error("Not implemented");
|
|
752
|
-
} else if (provider === UNISAT) {
|
|
753
|
-
new Error("Not implemented");
|
|
754
|
-
} else if (provider === XVERSE) {
|
|
755
|
-
new Error("Not implemented");
|
|
756
|
-
} else if (provider === LEATHER) {
|
|
757
|
-
new Error("Not implemented");
|
|
758
|
-
}
|
|
759
|
-
} catch (error) {
|
|
760
|
-
console.error("error", error);
|
|
761
|
-
}
|
|
762
|
-
});
|
|
763
|
-
const deploy = () => __async(void 0, null, function* () {
|
|
764
|
-
try {
|
|
765
|
-
if (!library)
|
|
766
|
-
return;
|
|
767
|
-
if (provider === OYL) {
|
|
768
|
-
new Error("Not implemented");
|
|
769
|
-
} else if (provider === UNISAT) {
|
|
770
|
-
new Error("Not implemented");
|
|
771
|
-
} else if (provider === XVERSE) {
|
|
772
|
-
new Error("Not implemented");
|
|
773
|
-
} else if (provider === LEATHER) {
|
|
774
|
-
new Error("Not implemented");
|
|
775
|
-
}
|
|
776
|
-
} catch (error) {
|
|
777
|
-
console.error("error", error);
|
|
778
|
-
}
|
|
779
|
-
});
|
|
780
|
-
const mint = () => __async(void 0, null, function* () {
|
|
781
|
-
try {
|
|
575
|
+
if (amount <= 0)
|
|
576
|
+
throw new Error("Amount must be greater than 0");
|
|
577
|
+
if (!Number.isInteger(amount))
|
|
578
|
+
throw new Error("Amount must be an integer");
|
|
782
579
|
if (!library)
|
|
783
|
-
|
|
784
|
-
if (provider ===
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
new Error("Not implemented");
|
|
580
|
+
throw new Error("Library not found");
|
|
581
|
+
if (provider === UNISAT) {
|
|
582
|
+
const txId = yield library == null ? void 0 : library.sendBitcoin(to, amount);
|
|
583
|
+
if (!txId)
|
|
584
|
+
throw new Error("Transaction failed");
|
|
585
|
+
return txId;
|
|
586
|
+
} else {
|
|
587
|
+
throw new Error("Unsupported wallet");
|
|
792
588
|
}
|
|
793
589
|
} catch (error) {
|
|
794
|
-
|
|
590
|
+
throw error;
|
|
795
591
|
}
|
|
796
592
|
});
|
|
797
593
|
const signMessage = (message) => __async(void 0, null, function* () {
|
|
798
594
|
try {
|
|
799
595
|
if (!library)
|
|
800
596
|
return;
|
|
801
|
-
if (provider ===
|
|
802
|
-
new Error("Not implemented");
|
|
803
|
-
} else if (provider === UNISAT) {
|
|
597
|
+
if (provider === UNISAT) {
|
|
804
598
|
return yield library == null ? void 0 : library.signMessage(message);
|
|
805
|
-
} else
|
|
806
|
-
new Error("
|
|
807
|
-
} else if (provider === LEATHER) {
|
|
808
|
-
return yield library == null ? void 0 : library.request("signMessage", {
|
|
809
|
-
message,
|
|
810
|
-
paymentType: P2TR
|
|
811
|
-
});
|
|
599
|
+
} else {
|
|
600
|
+
throw new Error("Unsupported wallet");
|
|
812
601
|
}
|
|
813
602
|
} catch (error) {
|
|
814
|
-
|
|
603
|
+
throw error;
|
|
815
604
|
}
|
|
816
605
|
});
|
|
817
606
|
const signPsbt = (psbt, finalize = false, broadcast = true) => __async(void 0, null, function* () {
|
|
818
607
|
try {
|
|
608
|
+
let psbtHex, psbtBase64;
|
|
819
609
|
if (!library)
|
|
820
610
|
return;
|
|
821
|
-
if (
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
} else if (
|
|
825
|
-
|
|
611
|
+
if (isHex(psbt)) {
|
|
612
|
+
psbtBase64 = bitcoin2.Psbt.fromHex(psbt).toBase64();
|
|
613
|
+
psbtHex = psbt;
|
|
614
|
+
} else if (isBase64(psbt)) {
|
|
615
|
+
psbtHex = bitcoin2.Psbt.fromBase64(psbt).toHex();
|
|
616
|
+
psbtBase64 = psbt;
|
|
617
|
+
} else {
|
|
618
|
+
throw new Error("Invalid PSBT format");
|
|
619
|
+
}
|
|
620
|
+
if (provider === UNISAT) {
|
|
621
|
+
const signedPsbt = yield library == null ? void 0 : library.signPsbt(psbtHex, {
|
|
826
622
|
autoFinalized: finalize
|
|
827
623
|
});
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
address,
|
|
836
|
-
signingIndexes: []
|
|
837
|
-
};
|
|
838
|
-
const paymentsAddressData = {
|
|
839
|
-
address: paymentAddress,
|
|
840
|
-
signingIndexes: []
|
|
841
|
-
};
|
|
842
|
-
let counter = 0;
|
|
843
|
-
try {
|
|
844
|
-
for (var iter = __forAwait(inputs), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
|
|
845
|
-
let input = temp.value;
|
|
846
|
-
const { script } = input.witnessUtxo;
|
|
847
|
-
const addressFromScript = (0, import_address.fromOutputScript)(
|
|
848
|
-
script,
|
|
849
|
-
bitcoin.networks.testnet
|
|
850
|
-
);
|
|
851
|
-
if (addressFromScript === paymentAddress) {
|
|
852
|
-
paymentsAddressData.signingIndexes.push(Number(counter));
|
|
853
|
-
} else if (addressFromScript === address) {
|
|
854
|
-
ordinalAddressData.signingIndexes.push(Number(counter));
|
|
855
|
-
}
|
|
856
|
-
counter++;
|
|
857
|
-
}
|
|
858
|
-
} catch (temp) {
|
|
859
|
-
error = [temp];
|
|
860
|
-
} finally {
|
|
861
|
-
try {
|
|
862
|
-
more && (temp = iter.return) && (yield temp.call(iter));
|
|
863
|
-
} finally {
|
|
864
|
-
if (error)
|
|
865
|
-
throw error[0];
|
|
866
|
-
}
|
|
624
|
+
if (broadcast) {
|
|
625
|
+
const txId = yield pushPsbt(signedPsbt);
|
|
626
|
+
return {
|
|
627
|
+
signedPsbtHex: signedPsbt.toHex(),
|
|
628
|
+
signedPsbtBase64: signedPsbt.toBase64(),
|
|
629
|
+
txId
|
|
630
|
+
};
|
|
867
631
|
}
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
if (paymentsAddressData.signingIndexes.length > 0) {
|
|
872
|
-
inputsToSign.push(paymentsAddressData);
|
|
873
|
-
}
|
|
874
|
-
let txId = "";
|
|
875
|
-
const xverseNetwork = getXverseNetwork(network);
|
|
876
|
-
const signPsbtOptions = {
|
|
877
|
-
payload: {
|
|
878
|
-
network: {
|
|
879
|
-
type: xverseNetwork
|
|
880
|
-
},
|
|
881
|
-
message: "Sign Transaction",
|
|
882
|
-
psbtBase64: toSignPsbt.toBase64(),
|
|
883
|
-
broadcast,
|
|
884
|
-
inputsToSign
|
|
885
|
-
},
|
|
886
|
-
onFinish: (response) => {
|
|
887
|
-
if (response.txId) {
|
|
888
|
-
txId = response.txId;
|
|
889
|
-
} else if (response.psbtBase64) {
|
|
890
|
-
const signedPsbt = bitcoin.Psbt.fromBase64(
|
|
891
|
-
String(response.psbtBase64),
|
|
892
|
-
{
|
|
893
|
-
network: bitcoin.networks.testnet
|
|
894
|
-
}
|
|
895
|
-
);
|
|
896
|
-
txId = signedPsbt.toHex();
|
|
897
|
-
}
|
|
898
|
-
},
|
|
899
|
-
onCancel: () => console.log("Canceled")
|
|
632
|
+
return {
|
|
633
|
+
signedPsbtHex: signedPsbt.toHex(),
|
|
634
|
+
signedPsbtBase64: signedPsbt.toBase64()
|
|
900
635
|
};
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
} else if (provider === LEATHER) {
|
|
904
|
-
const requestParams = { hex: psbt, broadcast };
|
|
905
|
-
const response = yield library == null ? void 0 : library.request(
|
|
906
|
-
"signPsbt",
|
|
907
|
-
requestParams
|
|
908
|
-
);
|
|
909
|
-
const leatherHexResult = response.result;
|
|
910
|
-
const signedTx = leatherHexResult.hex;
|
|
911
|
-
if (!broadcast) {
|
|
912
|
-
return signedTx;
|
|
913
|
-
}
|
|
914
|
-
const toSignPsbt = bitcoin.Psbt.fromHex(String(signedTx), {
|
|
915
|
-
network: bitcoin.networks.testnet
|
|
916
|
-
});
|
|
917
|
-
toSignPsbt.finalizeAllInputs();
|
|
918
|
-
const txId = toSignPsbt.extractTransaction().getId();
|
|
919
|
-
return txId;
|
|
636
|
+
} else {
|
|
637
|
+
throw new Error("Unsupported wallet");
|
|
920
638
|
}
|
|
921
|
-
} catch (
|
|
922
|
-
|
|
639
|
+
} catch (error) {
|
|
640
|
+
throw error;
|
|
923
641
|
}
|
|
924
642
|
});
|
|
925
|
-
const pushPsbt = (psbt
|
|
643
|
+
const pushPsbt = (psbt) => __async(void 0, null, function* () {
|
|
926
644
|
try {
|
|
927
645
|
if (!library)
|
|
928
646
|
return;
|
|
929
|
-
if (provider ===
|
|
930
|
-
return yield library == null ? void 0 : library.pushPsbt(psbt);
|
|
931
|
-
} else if (provider === UNISAT) {
|
|
647
|
+
if (provider === UNISAT) {
|
|
932
648
|
return yield library == null ? void 0 : library.pushPsbt(psbt);
|
|
933
|
-
} else
|
|
934
|
-
|
|
935
|
-
payload: {
|
|
936
|
-
network: {
|
|
937
|
-
type: NETWORK
|
|
938
|
-
},
|
|
939
|
-
message: "Sign Transaction",
|
|
940
|
-
psbtBase64: `cHNidP8BAJwCAmO+JvQJxhVDDpm3tV5PmPfzvJOSL4GOdjEOpAAAAAAnrAAA==`,
|
|
941
|
-
broadcast: false,
|
|
942
|
-
inputsToSign: [
|
|
943
|
-
{
|
|
944
|
-
address: "33TKH4kkiFPyTLDNmdNsLggyLeAYre57Qm",
|
|
945
|
-
signingIndexes: [1]
|
|
946
|
-
}
|
|
947
|
-
]
|
|
948
|
-
},
|
|
949
|
-
onFinish: (response) => {
|
|
950
|
-
},
|
|
951
|
-
onCancel: () => console.log("Canceled")
|
|
952
|
-
};
|
|
953
|
-
yield (0, import_sats_connect.signTransaction)(signPsbtOptions);
|
|
649
|
+
} else {
|
|
650
|
+
throw new Error("Unsupported wallet");
|
|
954
651
|
}
|
|
955
652
|
} catch (error) {
|
|
956
|
-
|
|
653
|
+
throw error;
|
|
957
654
|
}
|
|
958
655
|
});
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
};
|
|
993
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LaserEyesContext.Provider, { value: contextValue, children });
|
|
656
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
657
|
+
LaserEyesContext.Provider,
|
|
658
|
+
{
|
|
659
|
+
value: {
|
|
660
|
+
library,
|
|
661
|
+
accounts,
|
|
662
|
+
publicKey,
|
|
663
|
+
address,
|
|
664
|
+
paymentAddress,
|
|
665
|
+
paymentPublicKey,
|
|
666
|
+
provider,
|
|
667
|
+
balance,
|
|
668
|
+
network,
|
|
669
|
+
connected,
|
|
670
|
+
isConnecting,
|
|
671
|
+
hasUnisat,
|
|
672
|
+
// functions
|
|
673
|
+
connect,
|
|
674
|
+
disconnect,
|
|
675
|
+
requestAccounts,
|
|
676
|
+
getNetwork,
|
|
677
|
+
switchNetwork,
|
|
678
|
+
getPublicKey,
|
|
679
|
+
getBalance,
|
|
680
|
+
getInscriptions,
|
|
681
|
+
sendBTC,
|
|
682
|
+
signPsbt,
|
|
683
|
+
pushPsbt,
|
|
684
|
+
signMessage
|
|
685
|
+
},
|
|
686
|
+
children
|
|
687
|
+
}
|
|
688
|
+
);
|
|
994
689
|
};
|
|
995
690
|
// Annotate the CommonJS export names for ESM import in node:
|
|
996
691
|
0 && (module.exports = {
|
|
@@ -999,6 +694,8 @@ var LaserEyesProvider = ({ children }) => {
|
|
|
999
694
|
LEATHER_TESTNET,
|
|
1000
695
|
LaserEyesProvider,
|
|
1001
696
|
MAINNET,
|
|
697
|
+
MEMPOOL_SPACE_TESTNET_URL,
|
|
698
|
+
MEMPOOL_SPACE_URL,
|
|
1002
699
|
OYL,
|
|
1003
700
|
P2PKH,
|
|
1004
701
|
P2SH,
|
|
@@ -1006,6 +703,7 @@ var LaserEyesProvider = ({ children }) => {
|
|
|
1006
703
|
P2WPKH,
|
|
1007
704
|
P2WSH,
|
|
1008
705
|
PHANTOM,
|
|
706
|
+
REGTEST,
|
|
1009
707
|
TESTNET,
|
|
1010
708
|
UNISAT,
|
|
1011
709
|
UNISAT_MAINNET,
|
|
@@ -1016,11 +714,19 @@ var LaserEyesProvider = ({ children }) => {
|
|
|
1016
714
|
XVERSE_NETWORK,
|
|
1017
715
|
XVERSE_TESTNET,
|
|
1018
716
|
createConfig,
|
|
717
|
+
findOrdinalsAddress,
|
|
718
|
+
findPaymentAddress,
|
|
719
|
+
getBTCBalance,
|
|
720
|
+
getBitcoinNetwork,
|
|
1019
721
|
getLeatherNetwork,
|
|
722
|
+
getMempoolSpaceUrl,
|
|
1020
723
|
getNetworkForLeather,
|
|
1021
724
|
getNetworkForUnisat,
|
|
1022
725
|
getNetworkForXverse,
|
|
1023
726
|
getUnisatNetwork,
|
|
1024
727
|
getXverseNetwork,
|
|
728
|
+
isBase64,
|
|
729
|
+
isHex,
|
|
730
|
+
satoshisToBTC,
|
|
1025
731
|
useLaserEyes
|
|
1026
732
|
});
|