@sats-connect/core 0.4.0-e7d3e8d → 0.4.0-e8e6a66
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.d.mts +526 -47
- package/dist/index.d.ts +1651 -0
- package/dist/index.js +1888 -0
- package/dist/index.mjs +185 -23
- package/package.json +10 -12
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
// src/provider/index.ts
|
|
2
|
-
import omit from "lodash.omit";
|
|
3
|
-
|
|
4
1
|
// src/provider/types.ts
|
|
5
2
|
import * as v from "valibot";
|
|
6
3
|
var accountChangeEventName = "accountChange";
|
|
@@ -50,11 +47,9 @@ function removeDefaultProvider() {
|
|
|
50
47
|
localStorage.removeItem("sats-connect_defaultProvider");
|
|
51
48
|
}
|
|
52
49
|
function getSupportedWallets() {
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
allProviders.push(DefaultAdaptersInfo[key]);
|
|
57
|
-
}
|
|
50
|
+
const ambientProviders = getProviders();
|
|
51
|
+
const { xverse, ...defaultProviders } = DefaultAdaptersInfo;
|
|
52
|
+
const allProviders = [...ambientProviders, ...Object.values(defaultProviders)];
|
|
58
53
|
const wallets = allProviders.map((provider) => {
|
|
59
54
|
{
|
|
60
55
|
return {
|
|
@@ -120,6 +115,9 @@ var rpcResponseMessageSchema = v2.union([
|
|
|
120
115
|
// src/request/index.ts
|
|
121
116
|
import * as v10 from "valibot";
|
|
122
117
|
|
|
118
|
+
// src/request/types/stxMethods.ts
|
|
119
|
+
import * as v4 from "valibot";
|
|
120
|
+
|
|
123
121
|
// src/addresses/index.ts
|
|
124
122
|
import { createUnsecuredToken } from "jsontokens";
|
|
125
123
|
|
|
@@ -165,7 +163,6 @@ var getAddress = async (options) => {
|
|
|
165
163
|
};
|
|
166
164
|
|
|
167
165
|
// src/request/types/stxMethods.ts
|
|
168
|
-
import * as v4 from "valibot";
|
|
169
166
|
var stxGetAddressesMethodName = "stx_getAddresses";
|
|
170
167
|
var stxGetAddressesParamsSchema = v4.nullish(
|
|
171
168
|
v4.object({
|
|
@@ -325,6 +322,68 @@ var signMessageRequestMessageSchema = v6.object({
|
|
|
325
322
|
id: v6.string()
|
|
326
323
|
}).entries
|
|
327
324
|
});
|
|
325
|
+
var sendTransferMethodName = "sendTransfer";
|
|
326
|
+
var sendTransferParamsSchema = v6.object({
|
|
327
|
+
/**
|
|
328
|
+
* Array of recipients to send to.
|
|
329
|
+
* The amount to send to each recipient is in satoshis.
|
|
330
|
+
*/
|
|
331
|
+
recipients: v6.array(
|
|
332
|
+
v6.object({
|
|
333
|
+
address: v6.string(),
|
|
334
|
+
amount: v6.number()
|
|
335
|
+
})
|
|
336
|
+
)
|
|
337
|
+
});
|
|
338
|
+
var sendTransferResultSchema = v6.object({
|
|
339
|
+
/**
|
|
340
|
+
* The transaction id as a hex-encoded string.
|
|
341
|
+
*/
|
|
342
|
+
txid: v6.string()
|
|
343
|
+
});
|
|
344
|
+
var sendTransferRequestMessageSchema = v6.object({
|
|
345
|
+
...rpcRequestMessageSchema.entries,
|
|
346
|
+
...v6.object({
|
|
347
|
+
method: v6.literal(sendTransferMethodName),
|
|
348
|
+
params: sendTransferParamsSchema,
|
|
349
|
+
id: v6.string()
|
|
350
|
+
}).entries
|
|
351
|
+
});
|
|
352
|
+
var signPsbtMethodName = "signPsbt";
|
|
353
|
+
var signPsbtParamsSchema = v6.object({
|
|
354
|
+
/**
|
|
355
|
+
* The base64 encoded PSBT to sign.
|
|
356
|
+
*/
|
|
357
|
+
psbt: v6.string(),
|
|
358
|
+
/**
|
|
359
|
+
* The inputs to sign.
|
|
360
|
+
* The key is the address and the value is an array of indexes of the inputs to sign.
|
|
361
|
+
*/
|
|
362
|
+
signInputs: v6.record(v6.string(), v6.array(v6.number())),
|
|
363
|
+
/**
|
|
364
|
+
* Whether to broadcast the transaction after signing.
|
|
365
|
+
**/
|
|
366
|
+
broadcast: v6.optional(v6.boolean())
|
|
367
|
+
});
|
|
368
|
+
var signPsbtResultSchema = v6.object({
|
|
369
|
+
/**
|
|
370
|
+
* The base64 encoded PSBT after signing.
|
|
371
|
+
*/
|
|
372
|
+
psbt: v6.string(),
|
|
373
|
+
/**
|
|
374
|
+
* The transaction id as a hex-encoded string.
|
|
375
|
+
* This is only returned if the transaction was broadcast.
|
|
376
|
+
**/
|
|
377
|
+
txid: v6.optional(v6.string())
|
|
378
|
+
});
|
|
379
|
+
var signPsbtRequestMessageSchema = v6.object({
|
|
380
|
+
...rpcRequestMessageSchema.entries,
|
|
381
|
+
...v6.object({
|
|
382
|
+
method: v6.literal(signPsbtMethodName),
|
|
383
|
+
params: signPsbtParamsSchema,
|
|
384
|
+
id: v6.string()
|
|
385
|
+
}).entries
|
|
386
|
+
});
|
|
328
387
|
var getAccountsMethodName = "getAccounts";
|
|
329
388
|
var getAccountsParamsSchema = v6.object({
|
|
330
389
|
/**
|
|
@@ -385,8 +444,19 @@ var getBalanceRequestMessageSchema = v6.object({
|
|
|
385
444
|
|
|
386
445
|
// src/request/types/walletMethods.ts
|
|
387
446
|
import * as v7 from "valibot";
|
|
447
|
+
import { permissions } from "@secretkeylabs/xverse-core";
|
|
448
|
+
var permissionTemplate = v7.variant("type", [
|
|
449
|
+
v7.object({
|
|
450
|
+
...v7.omit(permissions.resources.account.accountPermissionSchema, ["clientId", "actions"]).entries,
|
|
451
|
+
actions: v7.partial(permissions.resources.account.accountActionsSchema)
|
|
452
|
+
}),
|
|
453
|
+
v7.object({
|
|
454
|
+
...v7.omit(permissions.resources.wallet.walletPermissionSchema, ["clientId"]).entries,
|
|
455
|
+
actions: v7.partial(permissions.resources.wallet.walletActionsSchema)
|
|
456
|
+
})
|
|
457
|
+
]);
|
|
388
458
|
var requestPermissionsMethodName = "wallet_requestPermissions";
|
|
389
|
-
var requestPermissionsParamsSchema = v7.
|
|
459
|
+
var requestPermissionsParamsSchema = v7.nullish(v7.array(permissionTemplate));
|
|
390
460
|
var requestPermissionsResultSchema = v7.literal(true);
|
|
391
461
|
var requestPermissionsRequestMessageSchema = v7.object({
|
|
392
462
|
...rpcRequestMessageSchema.entries,
|
|
@@ -397,8 +467,8 @@ var requestPermissionsRequestMessageSchema = v7.object({
|
|
|
397
467
|
}).entries
|
|
398
468
|
});
|
|
399
469
|
var renouncePermissionsMethodName = "wallet_renouncePermissions";
|
|
400
|
-
var renouncePermissionsParamsSchema = v7.
|
|
401
|
-
var renouncePermissionsResultSchema = v7.
|
|
470
|
+
var renouncePermissionsParamsSchema = v7.nullish(v7.null());
|
|
471
|
+
var renouncePermissionsResultSchema = v7.nullish(v7.null());
|
|
402
472
|
var renouncePermissionsRequestMessageSchema = v7.object({
|
|
403
473
|
...rpcRequestMessageSchema.entries,
|
|
404
474
|
...v7.object({
|
|
@@ -407,6 +477,17 @@ var renouncePermissionsRequestMessageSchema = v7.object({
|
|
|
407
477
|
id: v7.string()
|
|
408
478
|
}).entries
|
|
409
479
|
});
|
|
480
|
+
var disconnectMethodName = "wallet_disconnect";
|
|
481
|
+
var disconnectParamsSchema = v7.nullish(v7.null());
|
|
482
|
+
var disconnectResultSchema = v7.nullish(v7.null());
|
|
483
|
+
var disconnectRequestMessageSchema = v7.object({
|
|
484
|
+
...rpcRequestMessageSchema.entries,
|
|
485
|
+
...v7.object({
|
|
486
|
+
method: v7.literal(disconnectMethodName),
|
|
487
|
+
params: disconnectParamsSchema,
|
|
488
|
+
id: v7.string()
|
|
489
|
+
}).entries
|
|
490
|
+
});
|
|
410
491
|
var getWalletTypeMethodName = "wallet_getWalletType";
|
|
411
492
|
var getWalletTypeParamsSchema = v7.nullish(v7.null());
|
|
412
493
|
var getWalletTypeResultSchema = walletTypeSchema;
|
|
@@ -414,16 +495,48 @@ var getWalletTypeRequestMessageSchema = v7.object({
|
|
|
414
495
|
...rpcRequestMessageSchema.entries,
|
|
415
496
|
...v7.object({
|
|
416
497
|
method: v7.literal(getWalletTypeMethodName),
|
|
498
|
+
params: getWalletTypeParamsSchema,
|
|
417
499
|
id: v7.string()
|
|
418
500
|
}).entries
|
|
419
501
|
});
|
|
420
502
|
var getCurrentPermissionsMethodName = "wallet_getCurrentPermissions";
|
|
421
503
|
var getCurrentPermissionsParamsSchema = v7.nullish(v7.null());
|
|
422
|
-
var getCurrentPermissionsResultSchema = v7.array(
|
|
504
|
+
var getCurrentPermissionsResultSchema = v7.array(permissions.store.permission);
|
|
423
505
|
var getCurrentPermissionsRequestMessageSchema = v7.object({
|
|
424
506
|
...rpcRequestMessageSchema.entries,
|
|
425
507
|
...v7.object({
|
|
426
508
|
method: v7.literal(getCurrentPermissionsMethodName),
|
|
509
|
+
params: getCurrentPermissionsParamsSchema,
|
|
510
|
+
id: v7.string()
|
|
511
|
+
}).entries
|
|
512
|
+
});
|
|
513
|
+
var getAccountMethodName = "wallet_getAccount";
|
|
514
|
+
var getAccountParamsSchema = v7.nullish(v7.null());
|
|
515
|
+
var getAccountResultSchema = v7.object({
|
|
516
|
+
id: permissions.utils.account.accountIdSchema,
|
|
517
|
+
addresses: v7.array(addressSchema),
|
|
518
|
+
walletType: walletTypeSchema
|
|
519
|
+
});
|
|
520
|
+
var getAccountRequestMessageSchema = v7.object({
|
|
521
|
+
...rpcRequestMessageSchema.entries,
|
|
522
|
+
...v7.object({
|
|
523
|
+
method: v7.literal(getAccountMethodName),
|
|
524
|
+
params: getAccountParamsSchema,
|
|
525
|
+
id: v7.string()
|
|
526
|
+
}).entries
|
|
527
|
+
});
|
|
528
|
+
var connectMethodName = "wallet_connect";
|
|
529
|
+
var connectParamsSchema = v7.nullish(
|
|
530
|
+
v7.object({
|
|
531
|
+
permissions: v7.optional(v7.array(permissionTemplate))
|
|
532
|
+
})
|
|
533
|
+
);
|
|
534
|
+
var connectResultSchema = getAccountResultSchema;
|
|
535
|
+
var connectRequestMessageSchema = v7.object({
|
|
536
|
+
...rpcRequestMessageSchema.entries,
|
|
537
|
+
...v7.object({
|
|
538
|
+
method: v7.literal(connectMethodName),
|
|
539
|
+
params: connectParamsSchema,
|
|
427
540
|
id: v7.string()
|
|
428
541
|
}).entries
|
|
429
542
|
});
|
|
@@ -1059,17 +1172,16 @@ var XverseAdapter = class extends SatsConnectAdapter {
|
|
|
1059
1172
|
};
|
|
1060
1173
|
|
|
1061
1174
|
// src/adapters/unisat.ts
|
|
1062
|
-
import { Buffer } from "buffer";
|
|
1063
1175
|
import { AddressType as AddressType2, getAddressInfo } from "bitcoin-address-validation";
|
|
1064
|
-
|
|
1176
|
+
import { Buffer } from "buffer";
|
|
1177
|
+
function convertSignInputsToInputType(signInputs) {
|
|
1065
1178
|
let result = [];
|
|
1066
1179
|
for (let address in signInputs) {
|
|
1067
1180
|
let indexes = signInputs[address];
|
|
1068
1181
|
for (let index of indexes) {
|
|
1069
1182
|
result.push({
|
|
1070
1183
|
index,
|
|
1071
|
-
address
|
|
1072
|
-
sighashTypes: allowedSignHash ? [allowedSignHash] : void 0
|
|
1184
|
+
address
|
|
1073
1185
|
});
|
|
1074
1186
|
}
|
|
1075
1187
|
}
|
|
@@ -1101,10 +1213,10 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1101
1213
|
};
|
|
1102
1214
|
const response = [];
|
|
1103
1215
|
if (purposes.includes("payment" /* Payment */)) {
|
|
1104
|
-
response.push(paymentAddress);
|
|
1216
|
+
response.push({ ...paymentAddress, walletType: "software" });
|
|
1105
1217
|
}
|
|
1106
1218
|
if (purposes.includes("ordinals" /* Ordinals */)) {
|
|
1107
|
-
response.push(ordinalsAddress);
|
|
1219
|
+
response.push({ ...ordinalsAddress, walletType: "software" });
|
|
1108
1220
|
}
|
|
1109
1221
|
return response;
|
|
1110
1222
|
}
|
|
@@ -1117,14 +1229,16 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1117
1229
|
return {
|
|
1118
1230
|
address,
|
|
1119
1231
|
messageHash: "",
|
|
1120
|
-
signature: response2
|
|
1232
|
+
signature: response2,
|
|
1233
|
+
protocol: "BIP322" /* BIP322 */
|
|
1121
1234
|
};
|
|
1122
1235
|
}
|
|
1123
1236
|
const response = await window.unisat.signMessage(message, "ecdsa");
|
|
1124
1237
|
return {
|
|
1125
1238
|
address,
|
|
1126
1239
|
messageHash: "",
|
|
1127
|
-
signature: response
|
|
1240
|
+
signature: response,
|
|
1241
|
+
protocol: "ECDSA" /* ECDSA */
|
|
1128
1242
|
};
|
|
1129
1243
|
}
|
|
1130
1244
|
async sendTransfer(params) {
|
|
@@ -1138,11 +1252,11 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1138
1252
|
};
|
|
1139
1253
|
}
|
|
1140
1254
|
async signPsbt(params) {
|
|
1141
|
-
const { psbt, signInputs,
|
|
1255
|
+
const { psbt, signInputs, broadcast } = params;
|
|
1142
1256
|
const psbtHex = Buffer.from(psbt, "base64").toString("hex");
|
|
1143
1257
|
const signedPsbt = await window.unisat.signPsbt(psbtHex, {
|
|
1144
1258
|
autoFinalized: broadcast,
|
|
1145
|
-
toSignInputs: convertSignInputsToInputType(signInputs
|
|
1259
|
+
toSignInputs: convertSignInputsToInputType(signInputs)
|
|
1146
1260
|
});
|
|
1147
1261
|
if (broadcast) {
|
|
1148
1262
|
const txid = await window.unisat.pushPsbt(psbtHex);
|
|
@@ -1212,6 +1326,33 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1212
1326
|
};
|
|
1213
1327
|
}
|
|
1214
1328
|
};
|
|
1329
|
+
addListener = (eventName, cb) => {
|
|
1330
|
+
switch (eventName) {
|
|
1331
|
+
case "accountChange": {
|
|
1332
|
+
const handler = () => {
|
|
1333
|
+
cb({ type: "accountChange" });
|
|
1334
|
+
};
|
|
1335
|
+
window.unisat.on("accountsChanged", handler);
|
|
1336
|
+
return () => {
|
|
1337
|
+
window.unisat.removeListener("accountsChanged", handler);
|
|
1338
|
+
};
|
|
1339
|
+
}
|
|
1340
|
+
case "networkChange": {
|
|
1341
|
+
const handler = () => {
|
|
1342
|
+
cb({ type: "networkChange" });
|
|
1343
|
+
};
|
|
1344
|
+
window.unisat.on("networkChanged", handler);
|
|
1345
|
+
return () => {
|
|
1346
|
+
window.unisat.removeListener("networkChanged", handler);
|
|
1347
|
+
};
|
|
1348
|
+
}
|
|
1349
|
+
default: {
|
|
1350
|
+
console.error("Event not supported by the selected wallet");
|
|
1351
|
+
return () => {
|
|
1352
|
+
};
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
};
|
|
1215
1356
|
};
|
|
1216
1357
|
|
|
1217
1358
|
// src/adapters/BaseAdapter.ts
|
|
@@ -1476,11 +1617,23 @@ export {
|
|
|
1476
1617
|
accountChangeSchema,
|
|
1477
1618
|
addListener,
|
|
1478
1619
|
addressSchema,
|
|
1620
|
+
connectMethodName,
|
|
1621
|
+
connectParamsSchema,
|
|
1622
|
+
connectRequestMessageSchema,
|
|
1623
|
+
connectResultSchema,
|
|
1479
1624
|
createInscription,
|
|
1480
1625
|
createRepeatInscriptions,
|
|
1481
1626
|
defaultAdapters,
|
|
1482
1627
|
disconnectEventName,
|
|
1628
|
+
disconnectMethodName,
|
|
1629
|
+
disconnectParamsSchema,
|
|
1630
|
+
disconnectRequestMessageSchema,
|
|
1631
|
+
disconnectResultSchema,
|
|
1483
1632
|
disconnectSchema,
|
|
1633
|
+
getAccountMethodName,
|
|
1634
|
+
getAccountParamsSchema,
|
|
1635
|
+
getAccountRequestMessageSchema,
|
|
1636
|
+
getAccountResultSchema,
|
|
1484
1637
|
getAccountsMethodName,
|
|
1485
1638
|
getAccountsParamsSchema,
|
|
1486
1639
|
getAccountsRequestMessageSchema,
|
|
@@ -1523,6 +1676,7 @@ export {
|
|
|
1523
1676
|
isProviderInstalled,
|
|
1524
1677
|
networkChangeEventName,
|
|
1525
1678
|
networkChangeSchema,
|
|
1679
|
+
permissionTemplate,
|
|
1526
1680
|
removeDefaultProvider,
|
|
1527
1681
|
renouncePermissionsMethodName,
|
|
1528
1682
|
renouncePermissionsParamsSchema,
|
|
@@ -1542,6 +1696,10 @@ export {
|
|
|
1542
1696
|
sendInscriptionsParamsSchema,
|
|
1543
1697
|
sendInscriptionsResultSchema,
|
|
1544
1698
|
sendInscriptionsSchema,
|
|
1699
|
+
sendTransferMethodName,
|
|
1700
|
+
sendTransferParamsSchema,
|
|
1701
|
+
sendTransferRequestMessageSchema,
|
|
1702
|
+
sendTransferResultSchema,
|
|
1545
1703
|
setDefaultProvider,
|
|
1546
1704
|
signMessage,
|
|
1547
1705
|
signMessageMethodName,
|
|
@@ -1549,6 +1707,10 @@ export {
|
|
|
1549
1707
|
signMessageRequestMessageSchema,
|
|
1550
1708
|
signMessageResultSchema,
|
|
1551
1709
|
signMultipleTransactions,
|
|
1710
|
+
signPsbtMethodName,
|
|
1711
|
+
signPsbtParamsSchema,
|
|
1712
|
+
signPsbtRequestMessageSchema,
|
|
1713
|
+
signPsbtResultSchema,
|
|
1552
1714
|
signTransaction,
|
|
1553
1715
|
stxGetAddressesMethodName,
|
|
1554
1716
|
stxGetAddressesParamsSchema,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sats-connect/core",
|
|
3
|
-
"version": "0.4.0-
|
|
3
|
+
"version": "0.4.0-e8e6a66",
|
|
4
4
|
"main": "dist/index.mjs",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.mts",
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"test": "jest",
|
|
12
|
-
"build
|
|
13
|
-
"build": "
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
12
|
+
"build": "tsup",
|
|
13
|
+
"build:watch": "tsup --watch",
|
|
14
|
+
"check-types": "tsc --noEmit",
|
|
15
|
+
"check-format": "prettier --check .",
|
|
16
|
+
"format": "prettier --write .",
|
|
17
|
+
"ci": "npm run check-types && npm run check-format && npm run build",
|
|
17
18
|
"prepare": "husky install"
|
|
18
19
|
},
|
|
19
20
|
"lint-staged": {
|
|
@@ -25,16 +26,15 @@
|
|
|
25
26
|
]
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|
|
29
|
+
"@secretkeylabs/xverse-core": "24.0.0-4db3b55",
|
|
28
30
|
"axios": "1.7.4",
|
|
29
31
|
"bitcoin-address-validation": "2.2.3",
|
|
30
32
|
"buffer": "6.0.3",
|
|
31
33
|
"jsontokens": "4.0.1",
|
|
32
|
-
"
|
|
33
|
-
"valibot": "0.33.2"
|
|
34
|
+
"valibot": "0.42.1"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/jest": "^29.2.6",
|
|
37
|
-
"@types/lodash.omit": "4.5.9",
|
|
38
38
|
"husky": "^8.0.3",
|
|
39
39
|
"lint-staged": "^13.2.3",
|
|
40
40
|
"prettier": "3.3.3",
|
|
@@ -46,9 +46,7 @@
|
|
|
46
46
|
"tsup": "^8.0.2",
|
|
47
47
|
"typescript": "5.4.5",
|
|
48
48
|
"util": "^0.12.4",
|
|
49
|
-
"vm-browserify": "^1.1.2"
|
|
50
|
-
"webpack": "^5.74.0",
|
|
51
|
-
"webpack-cli": "^4.10.0"
|
|
49
|
+
"vm-browserify": "^1.1.2"
|
|
52
50
|
},
|
|
53
51
|
"repository": {
|
|
54
52
|
"type": "git",
|