@sats-connect/core 0.4.0-b520920 → 0.4.0-bcedde9
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 +467 -24
- package/dist/index.d.ts +1615 -0
- package/dist/index.js +1810 -0
- package/dist/index.mjs +123 -31
- 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({
|
|
@@ -385,8 +382,19 @@ var getBalanceRequestMessageSchema = v6.object({
|
|
|
385
382
|
|
|
386
383
|
// src/request/types/walletMethods.ts
|
|
387
384
|
import * as v7 from "valibot";
|
|
385
|
+
import { permissions } from "@secretkeylabs/xverse-core";
|
|
386
|
+
var permissionTemplate = v7.variant("type", [
|
|
387
|
+
v7.object({
|
|
388
|
+
...v7.omit(permissions.resources.account.accountPermissionSchema, ["clientId", "actions"]).entries,
|
|
389
|
+
actions: v7.partial(permissions.resources.account.accountActionsSchema)
|
|
390
|
+
}),
|
|
391
|
+
v7.object({
|
|
392
|
+
...v7.omit(permissions.resources.wallet.walletPermissionSchema, ["clientId"]).entries,
|
|
393
|
+
actions: v7.partial(permissions.resources.wallet.walletActionsSchema)
|
|
394
|
+
})
|
|
395
|
+
]);
|
|
388
396
|
var requestPermissionsMethodName = "wallet_requestPermissions";
|
|
389
|
-
var requestPermissionsParamsSchema = v7.
|
|
397
|
+
var requestPermissionsParamsSchema = v7.nullish(v7.array(permissionTemplate));
|
|
390
398
|
var requestPermissionsResultSchema = v7.literal(true);
|
|
391
399
|
var requestPermissionsRequestMessageSchema = v7.object({
|
|
392
400
|
...rpcRequestMessageSchema.entries,
|
|
@@ -397,8 +405,8 @@ var requestPermissionsRequestMessageSchema = v7.object({
|
|
|
397
405
|
}).entries
|
|
398
406
|
});
|
|
399
407
|
var renouncePermissionsMethodName = "wallet_renouncePermissions";
|
|
400
|
-
var renouncePermissionsParamsSchema = v7.
|
|
401
|
-
var renouncePermissionsResultSchema = v7.
|
|
408
|
+
var renouncePermissionsParamsSchema = v7.nullish(v7.null());
|
|
409
|
+
var renouncePermissionsResultSchema = v7.nullish(v7.null());
|
|
402
410
|
var renouncePermissionsRequestMessageSchema = v7.object({
|
|
403
411
|
...rpcRequestMessageSchema.entries,
|
|
404
412
|
...v7.object({
|
|
@@ -407,6 +415,17 @@ var renouncePermissionsRequestMessageSchema = v7.object({
|
|
|
407
415
|
id: v7.string()
|
|
408
416
|
}).entries
|
|
409
417
|
});
|
|
418
|
+
var disconnectMethodName = "wallet_disconnect";
|
|
419
|
+
var disconnectParamsSchema = v7.nullish(v7.null());
|
|
420
|
+
var disconnectResultSchema = v7.nullish(v7.null());
|
|
421
|
+
var disconnectRequestMessageSchema = v7.object({
|
|
422
|
+
...rpcRequestMessageSchema.entries,
|
|
423
|
+
...v7.object({
|
|
424
|
+
method: v7.literal(disconnectMethodName),
|
|
425
|
+
params: disconnectParamsSchema,
|
|
426
|
+
id: v7.string()
|
|
427
|
+
}).entries
|
|
428
|
+
});
|
|
410
429
|
var getWalletTypeMethodName = "wallet_getWalletType";
|
|
411
430
|
var getWalletTypeParamsSchema = v7.nullish(v7.null());
|
|
412
431
|
var getWalletTypeResultSchema = walletTypeSchema;
|
|
@@ -414,16 +433,48 @@ var getWalletTypeRequestMessageSchema = v7.object({
|
|
|
414
433
|
...rpcRequestMessageSchema.entries,
|
|
415
434
|
...v7.object({
|
|
416
435
|
method: v7.literal(getWalletTypeMethodName),
|
|
436
|
+
params: getWalletTypeParamsSchema,
|
|
437
|
+
id: v7.string()
|
|
438
|
+
}).entries
|
|
439
|
+
});
|
|
440
|
+
var getCurrentPermissionsMethodName = "wallet_getCurrentPermissions";
|
|
441
|
+
var getCurrentPermissionsParamsSchema = v7.nullish(v7.null());
|
|
442
|
+
var getCurrentPermissionsResultSchema = v7.array(permissions.store.permission);
|
|
443
|
+
var getCurrentPermissionsRequestMessageSchema = v7.object({
|
|
444
|
+
...rpcRequestMessageSchema.entries,
|
|
445
|
+
...v7.object({
|
|
446
|
+
method: v7.literal(getCurrentPermissionsMethodName),
|
|
447
|
+
params: getCurrentPermissionsParamsSchema,
|
|
448
|
+
id: v7.string()
|
|
449
|
+
}).entries
|
|
450
|
+
});
|
|
451
|
+
var getAccountMethodName = "wallet_getAccount";
|
|
452
|
+
var getAccountParamsSchema = v7.nullish(v7.null());
|
|
453
|
+
var getAccountResultSchema = v7.object({
|
|
454
|
+
id: permissions.utils.account.accountIdSchema,
|
|
455
|
+
addresses: v7.array(addressSchema),
|
|
456
|
+
walletType: walletTypeSchema
|
|
457
|
+
});
|
|
458
|
+
var getAccountRequestMessageSchema = v7.object({
|
|
459
|
+
...rpcRequestMessageSchema.entries,
|
|
460
|
+
...v7.object({
|
|
461
|
+
method: v7.literal(getAccountMethodName),
|
|
462
|
+
params: getAccountParamsSchema,
|
|
417
463
|
id: v7.string()
|
|
418
464
|
}).entries
|
|
419
465
|
});
|
|
420
|
-
var
|
|
421
|
-
var
|
|
422
|
-
|
|
423
|
-
|
|
466
|
+
var connectMethodName = "wallet_connect";
|
|
467
|
+
var connectParamsSchema = v7.nullish(
|
|
468
|
+
v7.object({
|
|
469
|
+
permissions: v7.optional(v7.array(permissionTemplate))
|
|
470
|
+
})
|
|
471
|
+
);
|
|
472
|
+
var connectResultSchema = getAccountResultSchema;
|
|
473
|
+
var connectRequestMessageSchema = v7.object({
|
|
424
474
|
...rpcRequestMessageSchema.entries,
|
|
425
475
|
...v7.object({
|
|
426
|
-
method: v7.literal(
|
|
476
|
+
method: v7.literal(connectMethodName),
|
|
477
|
+
params: connectParamsSchema,
|
|
427
478
|
id: v7.string()
|
|
428
479
|
}).entries
|
|
429
480
|
});
|
|
@@ -1059,17 +1110,16 @@ var XverseAdapter = class extends SatsConnectAdapter {
|
|
|
1059
1110
|
};
|
|
1060
1111
|
|
|
1061
1112
|
// src/adapters/unisat.ts
|
|
1062
|
-
import { Buffer } from "buffer";
|
|
1063
1113
|
import { AddressType as AddressType2, getAddressInfo } from "bitcoin-address-validation";
|
|
1064
|
-
|
|
1114
|
+
import { Buffer } from "buffer";
|
|
1115
|
+
function convertSignInputsToInputType(signInputs) {
|
|
1065
1116
|
let result = [];
|
|
1066
1117
|
for (let address in signInputs) {
|
|
1067
1118
|
let indexes = signInputs[address];
|
|
1068
1119
|
for (let index of indexes) {
|
|
1069
1120
|
result.push({
|
|
1070
1121
|
index,
|
|
1071
|
-
address
|
|
1072
|
-
sighashTypes: allowedSignHash ? [allowedSignHash] : void 0
|
|
1122
|
+
address
|
|
1073
1123
|
});
|
|
1074
1124
|
}
|
|
1075
1125
|
}
|
|
@@ -1101,10 +1151,10 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1101
1151
|
};
|
|
1102
1152
|
const response = [];
|
|
1103
1153
|
if (purposes.includes("payment" /* Payment */)) {
|
|
1104
|
-
response.push(paymentAddress);
|
|
1154
|
+
response.push({ ...paymentAddress, walletType: "software" });
|
|
1105
1155
|
}
|
|
1106
1156
|
if (purposes.includes("ordinals" /* Ordinals */)) {
|
|
1107
|
-
response.push(ordinalsAddress);
|
|
1157
|
+
response.push({ ...ordinalsAddress, walletType: "software" });
|
|
1108
1158
|
}
|
|
1109
1159
|
return response;
|
|
1110
1160
|
}
|
|
@@ -1117,14 +1167,16 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1117
1167
|
return {
|
|
1118
1168
|
address,
|
|
1119
1169
|
messageHash: "",
|
|
1120
|
-
signature: response2
|
|
1170
|
+
signature: response2,
|
|
1171
|
+
protocol: "BIP322" /* BIP322 */
|
|
1121
1172
|
};
|
|
1122
1173
|
}
|
|
1123
1174
|
const response = await window.unisat.signMessage(message, "ecdsa");
|
|
1124
1175
|
return {
|
|
1125
1176
|
address,
|
|
1126
1177
|
messageHash: "",
|
|
1127
|
-
signature: response
|
|
1178
|
+
signature: response,
|
|
1179
|
+
protocol: "ECDSA" /* ECDSA */
|
|
1128
1180
|
};
|
|
1129
1181
|
}
|
|
1130
1182
|
async sendTransfer(params) {
|
|
@@ -1138,11 +1190,11 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1138
1190
|
};
|
|
1139
1191
|
}
|
|
1140
1192
|
async signPsbt(params) {
|
|
1141
|
-
const { psbt, signInputs,
|
|
1193
|
+
const { psbt, signInputs, broadcast } = params;
|
|
1142
1194
|
const psbtHex = Buffer.from(psbt, "base64").toString("hex");
|
|
1143
1195
|
const signedPsbt = await window.unisat.signPsbt(psbtHex, {
|
|
1144
1196
|
autoFinalized: broadcast,
|
|
1145
|
-
toSignInputs: convertSignInputsToInputType(signInputs
|
|
1197
|
+
toSignInputs: convertSignInputsToInputType(signInputs)
|
|
1146
1198
|
});
|
|
1147
1199
|
if (broadcast) {
|
|
1148
1200
|
const txid = await window.unisat.pushPsbt(psbtHex);
|
|
@@ -1212,6 +1264,33 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
1212
1264
|
};
|
|
1213
1265
|
}
|
|
1214
1266
|
};
|
|
1267
|
+
addListener = (eventName, cb) => {
|
|
1268
|
+
switch (eventName) {
|
|
1269
|
+
case "accountChange": {
|
|
1270
|
+
const handler = () => {
|
|
1271
|
+
cb({ type: "accountChange" });
|
|
1272
|
+
};
|
|
1273
|
+
window.unisat.on("accountsChanged", handler);
|
|
1274
|
+
return () => {
|
|
1275
|
+
window.unisat.removeListener("accountsChanged", handler);
|
|
1276
|
+
};
|
|
1277
|
+
}
|
|
1278
|
+
case "networkChange": {
|
|
1279
|
+
const handler = () => {
|
|
1280
|
+
cb({ type: "networkChange" });
|
|
1281
|
+
};
|
|
1282
|
+
window.unisat.on("networkChanged", handler);
|
|
1283
|
+
return () => {
|
|
1284
|
+
window.unisat.removeListener("networkChanged", handler);
|
|
1285
|
+
};
|
|
1286
|
+
}
|
|
1287
|
+
default: {
|
|
1288
|
+
console.error("Event not supported by the selected wallet");
|
|
1289
|
+
return () => {
|
|
1290
|
+
};
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
};
|
|
1215
1294
|
};
|
|
1216
1295
|
|
|
1217
1296
|
// src/adapters/BaseAdapter.ts
|
|
@@ -1476,11 +1555,23 @@ export {
|
|
|
1476
1555
|
accountChangeSchema,
|
|
1477
1556
|
addListener,
|
|
1478
1557
|
addressSchema,
|
|
1558
|
+
connectMethodName,
|
|
1559
|
+
connectParamsSchema,
|
|
1560
|
+
connectRequestMessageSchema,
|
|
1561
|
+
connectResultSchema,
|
|
1479
1562
|
createInscription,
|
|
1480
1563
|
createRepeatInscriptions,
|
|
1481
1564
|
defaultAdapters,
|
|
1482
1565
|
disconnectEventName,
|
|
1566
|
+
disconnectMethodName,
|
|
1567
|
+
disconnectParamsSchema,
|
|
1568
|
+
disconnectRequestMessageSchema,
|
|
1569
|
+
disconnectResultSchema,
|
|
1483
1570
|
disconnectSchema,
|
|
1571
|
+
getAccountMethodName,
|
|
1572
|
+
getAccountParamsSchema,
|
|
1573
|
+
getAccountRequestMessageSchema,
|
|
1574
|
+
getAccountResultSchema,
|
|
1484
1575
|
getAccountsMethodName,
|
|
1485
1576
|
getAccountsParamsSchema,
|
|
1486
1577
|
getAccountsRequestMessageSchema,
|
|
@@ -1495,6 +1586,10 @@ export {
|
|
|
1495
1586
|
getBalanceRequestMessageSchema,
|
|
1496
1587
|
getBalanceResultSchema,
|
|
1497
1588
|
getCapabilities,
|
|
1589
|
+
getCurrentPermissionsMethodName,
|
|
1590
|
+
getCurrentPermissionsParamsSchema,
|
|
1591
|
+
getCurrentPermissionsRequestMessageSchema,
|
|
1592
|
+
getCurrentPermissionsResultSchema,
|
|
1498
1593
|
getDefaultProvider,
|
|
1499
1594
|
getInfoMethodName,
|
|
1500
1595
|
getInfoParamsSchema,
|
|
@@ -1504,10 +1599,6 @@ export {
|
|
|
1504
1599
|
getInscriptionsParamsSchema,
|
|
1505
1600
|
getInscriptionsResultSchema,
|
|
1506
1601
|
getInscriptionsSchema,
|
|
1507
|
-
getPermissionsMethodName,
|
|
1508
|
-
getPermissionsParamsSchema,
|
|
1509
|
-
getPermissionsRequestMessageSchema,
|
|
1510
|
-
getPermissionsResultSchema,
|
|
1511
1602
|
getProviderById,
|
|
1512
1603
|
getProviderOrThrow,
|
|
1513
1604
|
getProviders,
|
|
@@ -1523,6 +1614,7 @@ export {
|
|
|
1523
1614
|
isProviderInstalled,
|
|
1524
1615
|
networkChangeEventName,
|
|
1525
1616
|
networkChangeSchema,
|
|
1617
|
+
permissionTemplate,
|
|
1526
1618
|
removeDefaultProvider,
|
|
1527
1619
|
renouncePermissionsMethodName,
|
|
1528
1620
|
renouncePermissionsParamsSchema,
|
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-bcedde9",
|
|
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",
|