@sats-connect/core 0.4.0-8f3e1e5 → 0.4.0-954ad8d

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,69 @@ 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
+ allowedSignHash: v6.optional(v6.number()),
364
+ /**
365
+ * Whether to broadcast the transaction after signing.
366
+ **/
367
+ broadcast: v6.optional(v6.boolean())
368
+ });
369
+ var signPsbtResultSchema = v6.object({
370
+ /**
371
+ * The base64 encoded PSBT after signing.
372
+ */
373
+ psbt: v6.string(),
374
+ /**
375
+ * The transaction id as a hex-encoded string.
376
+ * This is only returned if the transaction was broadcast.
377
+ **/
378
+ txid: v6.optional(v6.string())
379
+ });
380
+ var signPsbtRequestMessageSchema = v6.object({
381
+ ...rpcRequestMessageSchema.entries,
382
+ ...v6.object({
383
+ method: v6.literal(signPsbtMethodName),
384
+ params: signPsbtParamsSchema,
385
+ id: v6.string()
386
+ }).entries
387
+ });
328
388
  var getAccountsMethodName = "getAccounts";
329
389
  var getAccountsParamsSchema = v6.object({
330
390
  /**
@@ -466,27 +526,10 @@ var getAccountRequestMessageSchema = v7.object({
466
526
  id: v7.string()
467
527
  }).entries
468
528
  });
469
- var registerClientMethodName = "wallet_registerClient";
470
- var registerClientParamsSchema = v7.object({
471
- name: v7.optional(v7.string()),
472
- description: v7.optional(v7.string())
473
- });
474
- var registerClientResultSchema = v7.object({
475
- id: v7.string()
476
- });
477
- var registerClientRequestMessageSchema = v7.object({
478
- ...rpcRequestMessageSchema.entries,
479
- ...v7.object({
480
- method: v7.literal(registerClientMethodName),
481
- params: registerClientParamsSchema,
482
- id: v7.string()
483
- }).entries
484
- });
485
529
  var connectMethodName = "wallet_connect";
486
530
  var connectParamsSchema = v7.nullish(
487
531
  v7.object({
488
- permissions: v7.optional(v7.array(permissionTemplate)),
489
- clientInfo: registerClientParamsSchema
532
+ permissions: v7.optional(v7.array(permissionTemplate))
490
533
  })
491
534
  );
492
535
  var connectResultSchema = getAccountResultSchema;
@@ -1130,17 +1173,16 @@ var XverseAdapter = class extends SatsConnectAdapter {
1130
1173
  };
1131
1174
 
1132
1175
  // src/adapters/unisat.ts
1133
- import { Buffer } from "buffer";
1134
1176
  import { AddressType as AddressType2, getAddressInfo } from "bitcoin-address-validation";
1135
- function convertSignInputsToInputType(signInputs, allowedSignHash) {
1177
+ import { Buffer } from "buffer";
1178
+ function convertSignInputsToInputType(signInputs) {
1136
1179
  let result = [];
1137
1180
  for (let address in signInputs) {
1138
1181
  let indexes = signInputs[address];
1139
1182
  for (let index of indexes) {
1140
1183
  result.push({
1141
1184
  index,
1142
- address,
1143
- sighashTypes: allowedSignHash ? [allowedSignHash] : void 0
1185
+ address
1144
1186
  });
1145
1187
  }
1146
1188
  }
@@ -1172,10 +1214,10 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1172
1214
  };
1173
1215
  const response = [];
1174
1216
  if (purposes.includes("payment" /* Payment */)) {
1175
- response.push(paymentAddress);
1217
+ response.push({ ...paymentAddress, walletType: "software" });
1176
1218
  }
1177
1219
  if (purposes.includes("ordinals" /* Ordinals */)) {
1178
- response.push(ordinalsAddress);
1220
+ response.push({ ...ordinalsAddress, walletType: "software" });
1179
1221
  }
1180
1222
  return response;
1181
1223
  }
@@ -1188,14 +1230,16 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1188
1230
  return {
1189
1231
  address,
1190
1232
  messageHash: "",
1191
- signature: response2
1233
+ signature: response2,
1234
+ protocol: "BIP322" /* BIP322 */
1192
1235
  };
1193
1236
  }
1194
1237
  const response = await window.unisat.signMessage(message, "ecdsa");
1195
1238
  return {
1196
1239
  address,
1197
1240
  messageHash: "",
1198
- signature: response
1241
+ signature: response,
1242
+ protocol: "ECDSA" /* ECDSA */
1199
1243
  };
1200
1244
  }
1201
1245
  async sendTransfer(params) {
@@ -1209,11 +1253,11 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1209
1253
  };
1210
1254
  }
1211
1255
  async signPsbt(params) {
1212
- const { psbt, signInputs, allowedSignHash, broadcast } = params;
1256
+ const { psbt, signInputs, broadcast } = params;
1213
1257
  const psbtHex = Buffer.from(psbt, "base64").toString("hex");
1214
1258
  const signedPsbt = await window.unisat.signPsbt(psbtHex, {
1215
1259
  autoFinalized: broadcast,
1216
- toSignInputs: convertSignInputsToInputType(signInputs, allowedSignHash)
1260
+ toSignInputs: convertSignInputsToInputType(signInputs)
1217
1261
  });
1218
1262
  if (broadcast) {
1219
1263
  const txid = await window.unisat.pushPsbt(psbtHex);
@@ -1283,6 +1327,33 @@ var UnisatAdapter = class extends SatsConnectAdapter {
1283
1327
  };
1284
1328
  }
1285
1329
  };
1330
+ addListener = (eventName, cb) => {
1331
+ switch (eventName) {
1332
+ case "accountChange": {
1333
+ const handler = () => {
1334
+ cb({ type: "accountChange" });
1335
+ };
1336
+ window.unisat.on("accountsChanged", handler);
1337
+ return () => {
1338
+ window.unisat.removeListener("accountsChanged", handler);
1339
+ };
1340
+ }
1341
+ case "networkChange": {
1342
+ const handler = () => {
1343
+ cb({ type: "networkChange" });
1344
+ };
1345
+ window.unisat.on("networkChanged", handler);
1346
+ return () => {
1347
+ window.unisat.removeListener("networkChanged", handler);
1348
+ };
1349
+ }
1350
+ default: {
1351
+ console.error("Event not supported by the selected wallet");
1352
+ return () => {
1353
+ };
1354
+ }
1355
+ }
1356
+ };
1286
1357
  };
1287
1358
 
1288
1359
  // src/adapters/BaseAdapter.ts
@@ -1607,10 +1678,6 @@ export {
1607
1678
  networkChangeEventName,
1608
1679
  networkChangeSchema,
1609
1680
  permissionTemplate,
1610
- registerClientMethodName,
1611
- registerClientParamsSchema,
1612
- registerClientRequestMessageSchema,
1613
- registerClientResultSchema,
1614
1681
  removeDefaultProvider,
1615
1682
  renouncePermissionsMethodName,
1616
1683
  renouncePermissionsParamsSchema,
@@ -1630,6 +1697,10 @@ export {
1630
1697
  sendInscriptionsParamsSchema,
1631
1698
  sendInscriptionsResultSchema,
1632
1699
  sendInscriptionsSchema,
1700
+ sendTransferMethodName,
1701
+ sendTransferParamsSchema,
1702
+ sendTransferRequestMessageSchema,
1703
+ sendTransferResultSchema,
1633
1704
  setDefaultProvider,
1634
1705
  signMessage,
1635
1706
  signMessageMethodName,
@@ -1637,6 +1708,10 @@ export {
1637
1708
  signMessageRequestMessageSchema,
1638
1709
  signMessageResultSchema,
1639
1710
  signMultipleTransactions,
1711
+ signPsbtMethodName,
1712
+ signPsbtParamsSchema,
1713
+ signPsbtRequestMessageSchema,
1714
+ signPsbtResultSchema,
1640
1715
  signTransaction,
1641
1716
  stxGetAddressesMethodName,
1642
1717
  stxGetAddressesParamsSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sats-connect/core",
3
- "version": "0.4.0-8f3e1e5",
3
+ "version": "0.4.0-954ad8d",
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": "24.0.0-30944ea",
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",