@sats-connect/core 0.4.0-9b65d1d → 0.4.0-bce9762

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
@@ -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 btc_providers = getProviders();
54
- const allProviders = [...btc_providers];
55
- for (const key in omit(DefaultAdaptersInfo, ["xverse"])) {
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,33 @@ 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
+ });
328
352
  var getAccountsMethodName = "getAccounts";
329
353
  var getAccountsParamsSchema = v6.object({
330
354
  /**
@@ -386,12 +410,18 @@ var getBalanceRequestMessageSchema = v6.object({
386
410
  // src/request/types/walletMethods.ts
387
411
  import * as v7 from "valibot";
388
412
  import { permissions } from "@secretkeylabs/xverse-core";
389
- var permissionWithoutClientId = v7.variant("type", [
390
- v7.omit(permissions.resources.account.accountPermissionSchema, ["clientId"]),
391
- v7.omit(permissions.resources.wallet.walletPermissionSchema, ["clientId"])
413
+ var permissionTemplate = v7.variant("type", [
414
+ v7.object({
415
+ ...v7.omit(permissions.resources.account.accountPermissionSchema, ["clientId", "actions"]).entries,
416
+ actions: v7.partial(permissions.resources.account.accountActionsSchema)
417
+ }),
418
+ v7.object({
419
+ ...v7.omit(permissions.resources.wallet.walletPermissionSchema, ["clientId"]).entries,
420
+ actions: v7.partial(permissions.resources.wallet.walletActionsSchema)
421
+ })
392
422
  ]);
393
423
  var requestPermissionsMethodName = "wallet_requestPermissions";
394
- var requestPermissionsParamsSchema = v7.nullish(v7.array(permissionWithoutClientId));
424
+ var requestPermissionsParamsSchema = v7.nullish(v7.array(permissionTemplate));
395
425
  var requestPermissionsResultSchema = v7.literal(true);
396
426
  var requestPermissionsRequestMessageSchema = v7.object({
397
427
  ...rpcRequestMessageSchema.entries,
@@ -460,27 +490,10 @@ var getAccountRequestMessageSchema = v7.object({
460
490
  id: v7.string()
461
491
  }).entries
462
492
  });
463
- var registerClientMethodName = "wallet_registerClient";
464
- var registerClientParamsSchema = v7.object({
465
- name: v7.optional(v7.string()),
466
- description: v7.optional(v7.string())
467
- });
468
- var registerClientResultSchema = v7.object({
469
- id: v7.string()
470
- });
471
- var registerClientRequestMessageSchema = v7.object({
472
- ...rpcRequestMessageSchema.entries,
473
- ...v7.object({
474
- method: v7.literal(registerClientMethodName),
475
- params: registerClientParamsSchema,
476
- id: v7.string()
477
- }).entries
478
- });
479
493
  var connectMethodName = "wallet_connect";
480
494
  var connectParamsSchema = v7.nullish(
481
495
  v7.object({
482
- permissions: v7.optional(v7.array(permissionWithoutClientId)),
483
- clientInfo: registerClientParamsSchema
496
+ permissions: v7.optional(v7.array(permissionTemplate))
484
497
  })
485
498
  );
486
499
  var connectResultSchema = getAccountResultSchema;
@@ -1124,17 +1137,16 @@ var XverseAdapter = class extends SatsConnectAdapter {
1124
1137
  };
1125
1138
 
1126
1139
  // src/adapters/unisat.ts
1127
- import { Buffer } from "buffer";
1128
1140
  import { AddressType as AddressType2, getAddressInfo } from "bitcoin-address-validation";
1129
- function convertSignInputsToInputType(signInputs, allowedSignHash) {
1141
+ import { Buffer } from "buffer";
1142
+ function convertSignInputsToInputType(signInputs) {
1130
1143
  let result = [];
1131
1144
  for (let address in signInputs) {
1132
1145
  let indexes = signInputs[address];
1133
1146
  for (let index of indexes) {
1134
1147
  result.push({
1135
1148
  index,
1136
- address,
1137
- sighashTypes: allowedSignHash ? [allowedSignHash] : void 0
1149
+ address
1138
1150
  });
1139
1151
  }
1140
1152
  }
@@ -1166,10 +1178,10 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1166
1178
  };
1167
1179
  const response = [];
1168
1180
  if (purposes.includes("payment" /* Payment */)) {
1169
- response.push(paymentAddress);
1181
+ response.push({ ...paymentAddress, walletType: "software" });
1170
1182
  }
1171
1183
  if (purposes.includes("ordinals" /* Ordinals */)) {
1172
- response.push(ordinalsAddress);
1184
+ response.push({ ...ordinalsAddress, walletType: "software" });
1173
1185
  }
1174
1186
  return response;
1175
1187
  }
@@ -1182,14 +1194,16 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1182
1194
  return {
1183
1195
  address,
1184
1196
  messageHash: "",
1185
- signature: response2
1197
+ signature: response2,
1198
+ protocol: "BIP322" /* BIP322 */
1186
1199
  };
1187
1200
  }
1188
1201
  const response = await window.unisat.signMessage(message, "ecdsa");
1189
1202
  return {
1190
1203
  address,
1191
1204
  messageHash: "",
1192
- signature: response
1205
+ signature: response,
1206
+ protocol: "ECDSA" /* ECDSA */
1193
1207
  };
1194
1208
  }
1195
1209
  async sendTransfer(params) {
@@ -1203,11 +1217,11 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1203
1217
  };
1204
1218
  }
1205
1219
  async signPsbt(params) {
1206
- const { psbt, signInputs, allowedSignHash, broadcast } = params;
1220
+ const { psbt, signInputs, broadcast } = params;
1207
1221
  const psbtHex = Buffer.from(psbt, "base64").toString("hex");
1208
1222
  const signedPsbt = await window.unisat.signPsbt(psbtHex, {
1209
1223
  autoFinalized: broadcast,
1210
- toSignInputs: convertSignInputsToInputType(signInputs, allowedSignHash)
1224
+ toSignInputs: convertSignInputsToInputType(signInputs)
1211
1225
  });
1212
1226
  if (broadcast) {
1213
1227
  const txid = await window.unisat.pushPsbt(psbtHex);
@@ -1277,6 +1291,33 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1277
1291
  };
1278
1292
  }
1279
1293
  };
1294
+ addListener = (eventName, cb) => {
1295
+ switch (eventName) {
1296
+ case "accountChange": {
1297
+ const handler = () => {
1298
+ cb({ type: "accountChange" });
1299
+ };
1300
+ window.unisat.on("accountsChanged", handler);
1301
+ return () => {
1302
+ window.unisat.removeListener("accountsChanged", handler);
1303
+ };
1304
+ }
1305
+ case "networkChange": {
1306
+ const handler = () => {
1307
+ cb({ type: "networkChange" });
1308
+ };
1309
+ window.unisat.on("networkChanged", handler);
1310
+ return () => {
1311
+ window.unisat.removeListener("networkChanged", handler);
1312
+ };
1313
+ }
1314
+ default: {
1315
+ console.error("Event not supported by the selected wallet");
1316
+ return () => {
1317
+ };
1318
+ }
1319
+ }
1320
+ };
1280
1321
  };
1281
1322
 
1282
1323
  // src/adapters/BaseAdapter.ts
@@ -1600,11 +1641,7 @@ export {
1600
1641
  isProviderInstalled,
1601
1642
  networkChangeEventName,
1602
1643
  networkChangeSchema,
1603
- permissionWithoutClientId,
1604
- registerClientMethodName,
1605
- registerClientParamsSchema,
1606
- registerClientRequestMessageSchema,
1607
- registerClientResultSchema,
1644
+ permissionTemplate,
1608
1645
  removeDefaultProvider,
1609
1646
  renouncePermissionsMethodName,
1610
1647
  renouncePermissionsParamsSchema,
@@ -1624,6 +1661,10 @@ export {
1624
1661
  sendInscriptionsParamsSchema,
1625
1662
  sendInscriptionsResultSchema,
1626
1663
  sendInscriptionsSchema,
1664
+ sendTransferMethodName,
1665
+ sendTransferParamsSchema,
1666
+ sendTransferRequestMessageSchema,
1667
+ sendTransferResultSchema,
1627
1668
  setDefaultProvider,
1628
1669
  signMessage,
1629
1670
  signMessageMethodName,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sats-connect/core",
3
- "version": "0.4.0-9b65d1d",
3
+ "version": "0.4.0-bce9762",
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-debug": "webpack --mode development",
13
- "build": "npm run clean && tsup src/index.ts --format esm --dts",
14
- "build:watch": "npm run clean && tsup src/index.ts --format esm --dts --watch",
15
- "clean": "rimraf dist",
16
- "lint": "prettier --write .",
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,17 +26,15 @@
25
26
  ]
26
27
  },
27
28
  "dependencies": {
28
- "@secretkeylabs/xverse-core": "23.0.1-6bee860",
29
+ "@secretkeylabs/xverse-core": "24.0.0-4db3b55",
29
30
  "axios": "1.7.4",
30
31
  "bitcoin-address-validation": "2.2.3",
31
32
  "buffer": "6.0.3",
32
33
  "jsontokens": "4.0.1",
33
- "lodash.omit": "4.5.0",
34
34
  "valibot": "0.42.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/jest": "^29.2.6",
38
- "@types/lodash.omit": "4.5.9",
39
38
  "husky": "^8.0.3",
40
39
  "lint-staged": "^13.2.3",
41
40
  "prettier": "3.3.3",
@@ -47,9 +46,7 @@
47
46
  "tsup": "^8.0.2",
48
47
  "typescript": "5.4.5",
49
48
  "util": "^0.12.4",
50
- "vm-browserify": "^1.1.2",
51
- "webpack": "^5.74.0",
52
- "webpack-cli": "^4.10.0"
49
+ "vm-browserify": "^1.1.2"
53
50
  },
54
51
  "repository": {
55
52
  "type": "git",