@sats-connect/core 0.0.1-80ec315

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.
Files changed (93) hide show
  1. package/README.md +16 -0
  2. package/dist/adapters/BaseAdapter.d.ts +9 -0
  3. package/dist/adapters/BaseAdapter.js +17 -0
  4. package/dist/adapters/BaseAdapter.js.map +1 -0
  5. package/dist/adapters/index.d.ts +6 -0
  6. package/dist/adapters/index.js +41 -0
  7. package/dist/adapters/index.js.map +1 -0
  8. package/dist/adapters/satsConnectAdapter.d.ts +7 -0
  9. package/dist/adapters/satsConnectAdapter.js +7 -0
  10. package/dist/adapters/satsConnectAdapter.js.map +1 -0
  11. package/dist/adapters/unisat.d.ts +38 -0
  12. package/dist/adapters/unisat.js +156 -0
  13. package/dist/adapters/unisat.js.map +1 -0
  14. package/dist/adapters/xverse.d.ts +8 -0
  15. package/dist/adapters/xverse.js +13 -0
  16. package/dist/adapters/xverse.js.map +1 -0
  17. package/dist/addresses/index.d.ts +3 -0
  18. package/dist/addresses/index.js +38 -0
  19. package/dist/addresses/index.js.map +1 -0
  20. package/dist/addresses/types.d.ts +28 -0
  21. package/dist/addresses/types.js +19 -0
  22. package/dist/addresses/types.js.map +1 -0
  23. package/dist/capabilities/index.d.ts +3 -0
  24. package/dist/capabilities/index.js +70 -0
  25. package/dist/capabilities/index.js.map +1 -0
  26. package/dist/capabilities/types.d.ts +6 -0
  27. package/dist/capabilities/types.js +3 -0
  28. package/dist/capabilities/types.js.map +1 -0
  29. package/dist/index.d.ts +10 -0
  30. package/dist/index.js +27 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/inscriptions/createInscription.d.ts +2 -0
  33. package/dist/inscriptions/createInscription.js +22 -0
  34. package/dist/inscriptions/createInscription.js.map +1 -0
  35. package/dist/inscriptions/createRepeatInscriptions.d.ts +2 -0
  36. package/dist/inscriptions/createRepeatInscriptions.js +22 -0
  37. package/dist/inscriptions/createRepeatInscriptions.js.map +1 -0
  38. package/dist/inscriptions/index.d.ts +3 -0
  39. package/dist/inscriptions/index.js +20 -0
  40. package/dist/inscriptions/index.js.map +1 -0
  41. package/dist/inscriptions/types.d.ts +21 -0
  42. package/dist/inscriptions/types.js +3 -0
  43. package/dist/inscriptions/types.js.map +1 -0
  44. package/dist/inscriptions/utils.d.ts +2 -0
  45. package/dist/inscriptions/utils.js +26 -0
  46. package/dist/inscriptions/utils.js.map +1 -0
  47. package/dist/messages/index.d.ts +3 -0
  48. package/dist/messages/index.js +41 -0
  49. package/dist/messages/index.js.map +1 -0
  50. package/dist/messages/types.d.ts +7 -0
  51. package/dist/messages/types.js +3 -0
  52. package/dist/messages/types.js.map +1 -0
  53. package/dist/provider/index.d.ts +10 -0
  54. package/dist/provider/index.js +74 -0
  55. package/dist/provider/index.js.map +1 -0
  56. package/dist/provider/types.d.ts +46 -0
  57. package/dist/provider/types.js +3 -0
  58. package/dist/provider/types.js.map +1 -0
  59. package/dist/request/index.d.ts +4 -0
  60. package/dist/request/index.js +47 -0
  61. package/dist/request/index.js.map +1 -0
  62. package/dist/request/types/btcMethods.d.ts +127 -0
  63. package/dist/request/types/btcMethods.js +6 -0
  64. package/dist/request/types/btcMethods.js.map +1 -0
  65. package/dist/request/types/index.d.ts +27 -0
  66. package/dist/request/types/index.js +19 -0
  67. package/dist/request/types/index.js.map +1 -0
  68. package/dist/request/types/stxMethods.d.ts +181 -0
  69. package/dist/request/types/stxMethods.js +3 -0
  70. package/dist/request/types/stxMethods.js.map +1 -0
  71. package/dist/transactions/index.d.ts +4 -0
  72. package/dist/transactions/index.js +21 -0
  73. package/dist/transactions/index.js.map +1 -0
  74. package/dist/transactions/sendBtcTransaction.d.ts +2 -0
  75. package/dist/transactions/sendBtcTransaction.js +45 -0
  76. package/dist/transactions/sendBtcTransaction.js.map +1 -0
  77. package/dist/transactions/signMultipleTransactions.d.ts +2 -0
  78. package/dist/transactions/signMultipleTransactions.js +26 -0
  79. package/dist/transactions/signMultipleTransactions.js.map +1 -0
  80. package/dist/transactions/signTransaction.d.ts +2 -0
  81. package/dist/transactions/signTransaction.js +26 -0
  82. package/dist/transactions/signTransaction.js.map +1 -0
  83. package/dist/transactions/types.d.ts +46 -0
  84. package/dist/transactions/types.js +3 -0
  85. package/dist/transactions/types.js.map +1 -0
  86. package/dist/tsconfig.tsbuildinfo +1 -0
  87. package/dist/types.d.ts +87 -0
  88. package/dist/types.js +46 -0
  89. package/dist/types.js.map +1 -0
  90. package/dist/ui/index.d.ts +6 -0
  91. package/dist/ui/index.js +33 -0
  92. package/dist/ui/index.js.map +1 -0
  93. package/package.json +56 -0
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # `@sats-connect/core`
2
+
3
+ Sats connect is a simple javascript library that connects apps to Bitcoin wallets like Xverse to retrieve user wallet addresses and sign transactions (PSBTs).
4
+
5
+
6
+ # Building the `@sats-connect/core` package
7
+
8
+ To build the `@sats-connect/core` package, run
9
+
10
+ ```bash
11
+ npm run build
12
+ ```
13
+
14
+ # Docs
15
+
16
+ [Developer Docs](https://docs.xverse.app/sats-connect/)
@@ -0,0 +1,9 @@
1
+ import { Params } from '../request';
2
+ import { SatsConnectAdapter } from './satsConnectAdapter';
3
+ import { RpcResult } from '../types';
4
+ declare class BaseAdapter extends SatsConnectAdapter {
5
+ id: string;
6
+ constructor(providerId: string);
7
+ request: <Method extends keyof import("../request").BtcRequests | keyof import("../request").StxRequests>(method: Method, params: Params<Method>) => Promise<RpcResult<Method> | undefined>;
8
+ }
9
+ export { BaseAdapter };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseAdapter = void 0;
4
+ const satsConnectAdapter_1 = require("./satsConnectAdapter");
5
+ const request_1 = require("../request");
6
+ class BaseAdapter extends satsConnectAdapter_1.SatsConnectAdapter {
7
+ id = '';
8
+ constructor(providerId) {
9
+ super();
10
+ this.id = providerId;
11
+ }
12
+ request = async (method, params) => {
13
+ return (0, request_1.request)(method, params, this.id);
14
+ };
15
+ }
16
+ exports.BaseAdapter = BaseAdapter;
17
+ //# sourceMappingURL=BaseAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAdapter.js","sourceRoot":"","sources":["../../src/adapters/BaseAdapter.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAC1D,wCAAqC;AAGrC,MAAM,WAAY,SAAQ,uCAAkB;IAC1C,EAAE,GAAG,EAAE,CAAC;IAER,YAAY,UAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,KAAK,EACb,MAAc,EACd,MAAsB,EACkB,EAAE;QAC1C,OAAO,IAAA,iBAAO,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;CACH;AAEQ,kCAAW"}
@@ -0,0 +1,6 @@
1
+ import { SatsConnectAdapter } from './satsConnectAdapter';
2
+ import { Provider } from '../provider';
3
+ export declare const DefaultAdaptersInfo: Record<string, Provider>;
4
+ export declare const defaultAdapters: Record<string, new () => SatsConnectAdapter>;
5
+ export * from './satsConnectAdapter';
6
+ export * from './BaseAdapter';
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.defaultAdapters = exports.DefaultAdaptersInfo = void 0;
18
+ const xverse_1 = require("./xverse");
19
+ const unisat_1 = require("./unisat");
20
+ exports.DefaultAdaptersInfo = {
21
+ xverse: {
22
+ id: 'XverseProviders.BitcoinProvider',
23
+ name: 'Xverse',
24
+ webUrl: 'https://www.xverse.app/',
25
+ chromeWebStoreUrl: 'https://chromewebstore.google.com/detail/xverse-wallet/idnnbdplmphpflfnlkomgpfbpcgelopg',
26
+ icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyIiBoZWlnaHQ9IjEwMiIgdmlld0JveD0iMCAwIDEwMiAxMDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJJY29uX0FydCAoRWRpdCBNZSkiPgo8cmVjdCB3aWR0aD0iMTAyIiBoZWlnaHQ9IjEwMiIgZmlsbD0iIzE4MTgxOCIvPgo8ZyBpZD0iTG9nby9FbWJsZW0iIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMF8xMjIzKSI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik03NC42NTQyIDczLjg4ODNWNjUuMjMxMkM3NC42NTQyIDY0Ljg4OCA3NC41MTc3IDY0LjU2MDYgNzQuMjc0NSA2NC4zMTc0TDM3LjQzOTcgMjcuNDgyNUMzNy4xOTY1IDI3LjIzOTIgMzYuODY5MSAyNy4xMDI4IDM2LjUyNTggMjcuMTAyOEgyNy44NjlDMjcuNDQxNiAyNy4xMDI4IDI3LjA5MzggMjcuNDUwNiAyNy4wOTM4IDI3Ljg3OFYzNS45MjExQzI3LjA5MzggMzYuMjY0NCAyNy4yMzAyIDM2LjU5MTcgMjcuNDczNCAzNi44MzVMNDAuNjk1MiA1MC4wNTY3QzQwLjk5NzUgNTAuMzU5MSA0MC45OTc1IDUwLjg1MDEgNDAuNjk1MiA1MS4xNTI0TDI3LjMyMTEgNjQuNTI2NUMyNy4xNzU2IDY0LjY3MiAyNy4wOTM4IDY0Ljg2OTggMjcuMDkzOCA2NS4wNzQ0VjczLjg4ODNDMjcuMDkzOCA3NC4zMTUzIDI3LjQ0MTYgNzQuNjYzNSAyNy44NjkgNzQuNjYzNUg0Mi4zMzQyQzQyLjc2MTYgNzQuNjYzNSA0My4xMDk0IDc0LjMxNTMgNDMuMTA5NCA3My44ODgzVjY4LjY5NThDNDMuMTA5NCA2OC40OTEyIDQzLjE5MTIgNjguMjkzNSA0My4zMzY4IDY4LjE0NzlMNTAuNTExNCA2MC45NzMzQzUwLjgxMzggNjAuNjcwOSA1MS4zMDQ4IDYwLjY3MDkgNTEuNjA3MiA2MC45NzMzTDY0LjkxOTggNzQuMjg2MUM2NS4xNjMxIDc0LjUyOTMgNjUuNDkwNCA3NC42NjU4IDY1LjgzMzcgNzQuNjY1OEg3My44NzY3Qzc0LjMwNDIgNzQuNjY1OCA3NC42NTE5IDc0LjMxNzYgNzQuNjUxOSA3My44OTA2TDc0LjY1NDIgNzMuODg4M1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGlkPSJWZWN0b3JfMiIgZD0iTTU1LjM1OCAzOC41NjcySDYyLjYwMzFDNjMuMDMyOCAzOC41NjcyIDYzLjM4MjkgMzguOTE3MyA2My4zODI5IDM5LjM0NjlWNDYuNTkyMUM2My4zODI5IDQ3LjI4NzcgNjQuMjI0IDQ3LjYzNTUgNjQuNzE1MSA0Ny4xNDIyTDc0LjY1NDEgMzcuMTg3M0M3NC43OTk0IDM3LjA0MTggNzQuODgxNiAzNi44NDQgNzQuODgxNiAzNi42MzcxVjI3LjkxODlDNzQuODgxNiAyNy40ODkyIDc0LjUzMzQgMjcuMTM5MSA3NC4xMDE3IDI3LjEzOTFMNjUuMjUzOCAyNy4xMjc3QzY1LjA0NyAyNy4xMjc3IDY0Ljg0OTIgMjcuMjA5NiA2NC43MDE0IDI3LjM1NTFMNTQuODA1NiAzNy4yMzVDNTQuMzE0NSAzNy43MjYgNTQuNjYyMyAzOC41NjcyIDU1LjM1NTcgMzguNTY3Mkg1NS4zNThaIiBmaWxsPSIjRUU3QTMwIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMF8xMjIzIj4KPHJlY3Qgd2lkdGg9IjQ3LjgxMjUiIGhlaWdodD0iNDcuODEyNSIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3LjA5MzggMjcuMDkzOCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K',
27
+ },
28
+ unisat: {
29
+ id: 'unisat',
30
+ name: 'Unisat',
31
+ webUrl: 'https://unisat.io/',
32
+ icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE4MCAxODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxODAiIGhlaWdodD0iMTgwIiBmaWxsPSJibGFjayIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAwNTBfNDE3MSkiPgo8cGF0aCBkPSJNMTEzLjY2IDI5LjI4OTdMMTQzLjk3IDU5LjMwOTdDMTQ2LjU1IDYxLjg1OTcgMTQ3LjgyIDY0LjQzOTcgMTQ3Ljc4IDY3LjAzOTdDMTQ3Ljc0IDY5LjYzOTcgMTQ2LjYzIDcyLjAwOTcgMTQ0LjQ2IDc0LjE1OTdDMTQyLjE5IDc2LjQwOTcgMTM5Ljc0IDc3LjU0OTcgMTM3LjEyIDc3LjU5OTdDMTM0LjUgNzcuNjM5NyAxMzEuOSA3Ni4zNzk3IDEyOS4zMiA3My44Mjk3TDk4LjMxOTkgNDMuMTI5N0M5NC43OTk5IDM5LjYzOTcgOTEuMzk5OSAzNy4xNjk3IDg4LjEyOTkgMzUuNzE5N0M4NC44NTk5IDM0LjI2OTcgODEuNDE5OSAzNC4wMzk3IDc3LjgxOTkgMzUuMDM5N0M3NC4yMDk5IDM2LjAyOTcgNzAuMzM5OSAzOC41Nzk3IDY2LjE4OTkgNDIuNjc5N0M2MC40Njk5IDQ4LjM0OTcgNTcuNzM5OSA1My42Njk3IDU4LjAxOTkgNTguNjM5N0M1OC4yOTk5IDYzLjYwOTcgNjEuMTM5OSA2OC43Njk3IDY2LjUyOTkgNzQuMDk5N0w5Ny43Nzk5IDEwNS4wNkMxMDAuMzkgMTA3LjY0IDEwMS42NyAxMTAuMjIgMTAxLjYzIDExMi43OEMxMDEuNTkgMTE1LjM1IDEwMC40NyAxMTcuNzIgOTguMjU5OSAxMTkuOTFDOTYuMDU5OSAxMjIuMDkgOTMuNjI5OSAxMjMuMjMgOTAuOTg5OSAxMjMuMzJDODguMzQ5OSAxMjMuNDEgODUuNzE5OSAxMjIuMTYgODMuMTE5OSAxMTkuNThMNTIuODA5OSA4OS41NTk3QzQ3Ljg3OTkgODQuNjc5NyA0NC4zMTk5IDgwLjA1OTcgNDIuMTI5OSA3NS42OTk3QzM5LjkzOTkgNzEuMzM5NyAzOS4xMTk5IDY2LjQwOTcgMzkuNjg5OSA2MC45MDk3QzQwLjE5OTkgNTYuMTk5NyA0MS43MDk5IDUxLjYzOTcgNDQuMjI5OSA0Ny4yMTk3QzQ2LjczOTkgNDIuNzk5NyA1MC4zMzk5IDM4LjI3OTcgNTUuMDA5OSAzMy42NDk3QzYwLjU2OTkgMjguMTM5NyA2NS44Nzk5IDIzLjkxOTcgNzAuOTM5OSAyMC45Nzk3Qzc1Ljk4OTkgMTguMDM5NyA4MC44Nzk5IDE2LjQwOTcgODUuNTk5OSAxNi4wNjk3QzkwLjMyOTkgMTUuNzI5NyA5NC45ODk5IDE2LjY2OTcgOTkuNTk5OSAxOC44ODk3QzEwNC4yMSAyMS4xMDk3IDEwOC44OSAyNC41Njk3IDExMy42NSAyOS4yODk3SDExMy42NloiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xMDA1MF80MTcxKSIvPgo8cGF0aCBkPSJNNjYuMTA5OSAxNTAuNDJMMzUuODA5OSAxMjAuNEMzMy4yMjk5IDExNy44NCAzMS45NTk5IDExNS4yNyAzMS45OTk5IDExMi42N0MzMi4wMzk5IDExMC4wNyAzMy4xNDk5IDEwNy43IDM1LjMxOTkgMTA1LjU1QzM3LjU4OTkgMTAzLjMgNDAuMDM5OSAxMDIuMTYgNDIuNjU5OSAxMDIuMTFDNDUuMjc5OSAxMDIuMDcgNDcuODc5OSAxMDMuMzIgNTAuNDU5OSAxMDUuODhMODEuNDQ5OSAxMzYuNThDODQuOTc5OSAxNDAuMDcgODguMzY5OSAxNDIuNTQgOTEuNjM5OSAxNDMuOTlDOTQuOTA5OSAxNDUuNDQgOTguMzQ5OSAxNDUuNjYgMTAxLjk2IDE0NC42N0MxMDUuNTcgMTQzLjY4IDEwOS40NCAxNDEuMTMgMTEzLjU5IDEzNy4wMkMxMTkuMzEgMTMxLjM1IDEyMi4wNCAxMjYuMDMgMTIxLjc2IDEyMS4wNkMxMjEuNDggMTE2LjA5IDExOC42NCAxMTAuOTMgMTEzLjI1IDEwNS41OUw5Ni41OTk5IDg5LjI0MDFDOTMuOTg5OSA4Ni42NjAxIDkyLjcwOTkgODQuMDgwMSA5Mi43NDk5IDgxLjUyMDFDOTIuNzg5OSA3OC45NTAxIDkzLjkwOTkgNzYuNTgwMSA5Ni4xMTk5IDc0LjM5MDFDOTguMzE5OSA3Mi4yMTAxIDEwMC43NSA3MS4wNzAxIDEwMy4zOSA3MC45ODAxQzEwNi4wMyA3MC44OTAxIDEwOC42NiA3Mi4xNDAxIDExMS4yNiA3NC43MjAxTDEyNi45NiA5MC4xMzAxQzEzMS44OSA5NS4wMTAxIDEzNS40NSA5OS42MzAxIDEzNy42NCAxMDMuOTlDMTM5LjgzIDEwOC4zNSAxNDAuNjUgMTEzLjI4IDE0MC4wOCAxMTguNzhDMTM5LjU3IDEyMy40OSAxMzguMDYgMTI4LjA1IDEzNS41NCAxMzIuNDdDMTMzLjAzIDEzNi44OSAxMjkuNDMgMTQxLjQxIDEyNC43NiAxNDYuMDRDMTE5LjIgMTUxLjU1IDExMy44OSAxNTUuNzcgMTA4LjgzIDE1OC43MUMxMDMuNzcgMTYxLjY1IDk4Ljg3OTkgMTYzLjI5IDk0LjE0OTkgMTYzLjYzQzg5LjQxOTkgMTYzLjk3IDg0Ljc1OTkgMTYzLjAzIDgwLjE0OTkgMTYwLjgxQzc1LjUzOTkgMTU4LjU5IDcwLjg1OTkgMTU1LjEzIDY2LjA5OTkgMTUwLjQxTDY2LjEwOTkgMTUwLjQyWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzEwMDUwXzQxNzEpIi8+CjxwYXRoIGQ9Ik04NS4wMDk5IDcyLjk1OTJDOTEuMTU2OCA3Mi45NTkyIDk2LjEzOTkgNjcuOTc2MSA5Ni4xMzk5IDYxLjgyOTJDOTYuMTM5OSA1NS42ODIzIDkxLjE1NjggNTAuNjk5MiA4NS4wMDk5IDUwLjY5OTJDNzguODYzIDUwLjY5OTIgNzMuODc5OSA1NS42ODIzIDczLjg3OTkgNjEuODI5MkM3My44Nzk5IDY3Ljk3NjEgNzguODYzIDcyLjk1OTIgODUuMDA5OSA3Mi45NTkyWiIgZmlsbD0idXJsKCNwYWludDJfcmFkaWFsXzEwMDUwXzQxNzEpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xMDA1MF80MTcxIiB4MT0iMTM4Ljk4NSIgeTE9IjQ2Ljc3OTUiIHgyPSI0NS4wNTI5IiB5Mj0iODguNTIzMyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjAxQzFCIi8+CjxzdG9wIG9mZnNldD0iMC4zNiIgc3RvcC1jb2xvcj0iIzc3MzkwRCIvPgo8c3RvcCBvZmZzZXQ9IjAuNjciIHN0b3AtY29sb3I9IiNFQTgxMDEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRjRCODUyIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMDA1MF80MTcxIiB4MT0iNDMuMzgxMiIgeTE9IjEzNC4xNjciIHgyPSIxNTIuMjMxIiB5Mj0iMTAxLjc3MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUYxRDFDIi8+CjxzdG9wIG9mZnNldD0iMC4zNyIgc3RvcC1jb2xvcj0iIzc3MzkwRCIvPgo8c3RvcCBvZmZzZXQ9IjAuNjciIHN0b3AtY29sb3I9IiNFQTgxMDEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRjRGQjUyIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQyX3JhZGlhbF8xMDA1MF80MTcxIiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDg1LjAwOTkgNjEuODM5Mikgc2NhbGUoMTEuMTMpIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0Y0Qjg1MiIvPgo8c3RvcCBvZmZzZXQ9IjAuMzMiIHN0b3AtY29sb3I9IiNFQTgxMDEiLz4KPHN0b3Agb2Zmc2V0PSIwLjY0IiBzdG9wLWNvbG9yPSIjNzczOTBEIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzIxMUMxRCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEwMDUwXzQxNzEiPgo8cmVjdCB3aWR0aD0iMTE1Ljc3IiBoZWlnaHQ9IjE0Ny43IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIgMTYpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==',
33
+ },
34
+ };
35
+ exports.defaultAdapters = {
36
+ [exports.DefaultAdaptersInfo.xverse.id]: xverse_1.XverseAdapter,
37
+ [exports.DefaultAdaptersInfo.unisat.id]: unisat_1.UnisatAdapter,
38
+ };
39
+ __exportStar(require("./satsConnectAdapter"), exports);
40
+ __exportStar(require("./BaseAdapter"), exports);
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAyC;AAEzC,qCAAyC;AAG5B,QAAA,mBAAmB,GAA6B;IAC3D,MAAM,EAAE;QACN,EAAE,EAAE,iCAAiC;QACrC,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,yBAAyB;QACjC,iBAAiB,EACf,yFAAyF;QAC3F,IAAI,EAAE,wmEAAwmE;KAC/mE;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,g3JAAg3J;KACv3J;CACF,CAAC;AAEW,QAAA,eAAe,GAAiD;IAC3E,CAAC,2BAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,sBAAa;IAC9C,CAAC,2BAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,sBAAa;CAC/C,CAAC;AAEF,uDAAqC;AACrC,gDAA8B"}
@@ -0,0 +1,7 @@
1
+ import { Params, Requests } from '../request';
2
+ import { RpcResult } from '../types';
3
+ declare abstract class SatsConnectAdapter {
4
+ abstract readonly id: string;
5
+ abstract request<Method extends keyof Requests>(method: Method, params: Params<Method>): Promise<RpcResult<Method> | undefined>;
6
+ }
7
+ export { SatsConnectAdapter };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SatsConnectAdapter = void 0;
4
+ class SatsConnectAdapter {
5
+ }
6
+ exports.SatsConnectAdapter = SatsConnectAdapter;
7
+ //# sourceMappingURL=satsConnectAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"satsConnectAdapter.js","sourceRoot":"","sources":["../../src/adapters/satsConnectAdapter.ts"],"names":[],"mappings":";;;AAGA,MAAe,kBAAkB;CAOhC;AACQ,gDAAkB"}
@@ -0,0 +1,38 @@
1
+ import { Params } from '../request';
2
+ import { SatsConnectAdapter } from './satsConnectAdapter';
3
+ import { RpcResult } from '../types';
4
+ type InputType = {
5
+ index: number;
6
+ address?: string;
7
+ publicKey?: string;
8
+ sighashTypes?: number[];
9
+ disableTweakSigner?: boolean;
10
+ }[];
11
+ type Unisat = {
12
+ requestAccounts: () => Promise<string[]>;
13
+ getAccounts: () => Promise<string[]>;
14
+ signMessage: (message: string, type?: 'ecdsa' | 'bip322-simple') => Promise<string>;
15
+ getPublicKey: () => Promise<string>;
16
+ sendBitcoin: (address: string, atomicAmount: number, options?: {
17
+ feeRate: number;
18
+ }) => Promise<string>;
19
+ signPsbt: (psbtHex: string, options?: {
20
+ autoFinalized?: boolean;
21
+ toSignInputs: InputType;
22
+ }) => Promise<string>;
23
+ pushPsbt: (psbtHex: string) => Promise<string>;
24
+ };
25
+ declare global {
26
+ interface Window {
27
+ unisat: Unisat;
28
+ }
29
+ }
30
+ declare class UnisatAdapter extends SatsConnectAdapter {
31
+ id: string;
32
+ private getAccounts;
33
+ private signMessage;
34
+ private sendTransfer;
35
+ private signPsbt;
36
+ request: <Method extends keyof import("../request").BtcRequests | keyof import("../request").StxRequests>(method: Method, params: Params<Method>) => Promise<RpcResult<Method> | undefined>;
37
+ }
38
+ export { UnisatAdapter };
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnisatAdapter = void 0;
4
+ const satsConnectAdapter_1 = require("./satsConnectAdapter");
5
+ const types_1 = require("../types");
6
+ const bitcoin_address_validation_1 = require("bitcoin-address-validation");
7
+ const addresses_1 = require("../addresses");
8
+ function convertSignInputsToInputType(signInputs, allowedSignHash) {
9
+ let result = [];
10
+ for (let address in signInputs) {
11
+ let indexes = signInputs[address];
12
+ for (let index of indexes) {
13
+ result.push({
14
+ index: index,
15
+ address: address,
16
+ sighashTypes: allowedSignHash ? [allowedSignHash] : undefined,
17
+ });
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ class UnisatAdapter extends satsConnectAdapter_1.SatsConnectAdapter {
23
+ id = 'unisat';
24
+ async getAccounts(params) {
25
+ const { purposes } = params;
26
+ if (!purposes.includes(addresses_1.AddressPurpose.Stacks)) {
27
+ throw new Error('Only bitcoin addresses are supported');
28
+ }
29
+ const [accounts, publicKey] = await Promise.all([
30
+ window.unisat.requestAccounts(),
31
+ window.unisat.getPublicKey(),
32
+ ]);
33
+ const address = accounts[0];
34
+ const addressType = (0, bitcoin_address_validation_1.getAddressInfo)(accounts[0]).type;
35
+ const paymentAddress = {
36
+ address,
37
+ publicKey,
38
+ addressType,
39
+ purpose: addresses_1.AddressPurpose.Payment,
40
+ };
41
+ const ordinalsAddress = {
42
+ address,
43
+ publicKey,
44
+ addressType,
45
+ purpose: addresses_1.AddressPurpose.Ordinals,
46
+ };
47
+ const response = [];
48
+ if (purposes.includes(addresses_1.AddressPurpose.Payment)) {
49
+ response.push(paymentAddress);
50
+ }
51
+ if (purposes.includes(addresses_1.AddressPurpose.Ordinals)) {
52
+ response.push(ordinalsAddress);
53
+ }
54
+ return response;
55
+ }
56
+ async signMessage(params) {
57
+ const { message, address } = params;
58
+ const addressType = (0, bitcoin_address_validation_1.getAddressInfo)(address).type;
59
+ const Bip322supportedTypes = [bitcoin_address_validation_1.AddressType.p2wpkh, bitcoin_address_validation_1.AddressType.p2tr];
60
+ if (Bip322supportedTypes.includes(addressType)) {
61
+ const response = await window.unisat.signMessage(message, 'bip322-simple');
62
+ return {
63
+ address,
64
+ messageHash: '',
65
+ signature: response,
66
+ };
67
+ }
68
+ const response = await window.unisat.signMessage(message, 'ecdsa');
69
+ return {
70
+ address,
71
+ messageHash: '',
72
+ signature: response,
73
+ };
74
+ }
75
+ async sendTransfer(params) {
76
+ const { recipients } = params;
77
+ const response = await Promise.all(recipients.map((recipient) => window.unisat.sendBitcoin(recipient.address, recipient.amount)));
78
+ return {
79
+ txid: response[0],
80
+ };
81
+ }
82
+ async signPsbt(params) {
83
+ const { psbt, signInputs, allowedSignHash, broadcast } = params;
84
+ const psbtHex = Buffer.from(psbt, 'base64').toString('hex');
85
+ const signedPsbt = await window.unisat.signPsbt(psbtHex, {
86
+ autoFinalized: broadcast,
87
+ toSignInputs: convertSignInputsToInputType(signInputs, allowedSignHash),
88
+ });
89
+ if (broadcast) {
90
+ const txid = await window.unisat.pushPsbt(psbtHex);
91
+ return {
92
+ psbt: signedPsbt,
93
+ txid,
94
+ };
95
+ }
96
+ return {
97
+ psbt: psbtHex,
98
+ };
99
+ }
100
+ request = async (method, params) => {
101
+ try {
102
+ switch (method) {
103
+ case 'getAccounts': {
104
+ const response = await this.getAccounts(params);
105
+ return {
106
+ status: 'success',
107
+ result: response,
108
+ };
109
+ }
110
+ case 'sendTransfer': {
111
+ const response = await this.sendTransfer(params);
112
+ return {
113
+ status: 'success',
114
+ result: response,
115
+ };
116
+ }
117
+ case 'signMessage': {
118
+ const response = await this.signMessage(params);
119
+ return {
120
+ status: 'success',
121
+ result: response,
122
+ };
123
+ }
124
+ case 'signPsbt': {
125
+ const response = await this.signPsbt(params);
126
+ return {
127
+ status: 'success',
128
+ result: response,
129
+ };
130
+ }
131
+ default: {
132
+ return {
133
+ status: 'error',
134
+ error: {
135
+ code: types_1.RpcErrorCode.METHOD_NOT_SUPPORTED,
136
+ message: 'Method not supported by the selected wallet',
137
+ },
138
+ };
139
+ }
140
+ }
141
+ }
142
+ catch (error) {
143
+ console.error('Error calling the method', error);
144
+ return {
145
+ status: 'error',
146
+ error: {
147
+ code: types_1.RpcErrorCode.INTERNAL_ERROR,
148
+ message: 'Wallet Error processing the request',
149
+ data: error,
150
+ },
151
+ };
152
+ }
153
+ };
154
+ }
155
+ exports.UnisatAdapter = UnisatAdapter;
156
+ //# sourceMappingURL=unisat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unisat.js","sourceRoot":"","sources":["../../src/adapters/unisat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Params } from '../request';
2
+ import { SatsConnectAdapter } from './satsConnectAdapter';
3
+ import { RpcResult } from '../types';
4
+ declare class XverseAdapter extends SatsConnectAdapter {
5
+ id: string;
6
+ request: <Method extends keyof import("../request").BtcRequests | keyof import("../request").StxRequests>(method: Method, params: Params<Method>) => Promise<RpcResult<Method> | undefined>;
7
+ }
8
+ export { XverseAdapter };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XverseAdapter = void 0;
4
+ const satsConnectAdapter_1 = require("./satsConnectAdapter");
5
+ const request_1 = require("../request");
6
+ class XverseAdapter extends satsConnectAdapter_1.SatsConnectAdapter {
7
+ id = 'XverseProviders.BitcoinProvider';
8
+ request = async (method, params) => {
9
+ return (0, request_1.request)(method, params, this.id);
10
+ };
11
+ }
12
+ exports.XverseAdapter = XverseAdapter;
13
+ //# sourceMappingURL=xverse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xverse.js","sourceRoot":"","sources":["../../src/adapters/xverse.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAC1D,wCAAqC;AAGrC,MAAM,aAAc,SAAQ,uCAAkB;IAC5C,EAAE,GAAG,iCAAiC,CAAC;IAEvC,OAAO,GAAG,KAAK,EACb,MAAc,EACd,MAAsB,EACkB,EAAE;QAC1C,OAAO,IAAA,iBAAO,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;CACH;AAEQ,sCAAa"}
@@ -0,0 +1,3 @@
1
+ import type { GetAddressOptions } from './types';
2
+ export declare const getAddress: (options: GetAddressOptions) => Promise<void>;
3
+ export * from './types';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.getAddress = void 0;
18
+ const jsontokens_1 = require("jsontokens");
19
+ const provider_1 = require("../provider");
20
+ const getAddress = async (options) => {
21
+ const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);
22
+ const { purposes } = options.payload;
23
+ if (!purposes) {
24
+ throw new Error('Address purposes are required');
25
+ }
26
+ try {
27
+ const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);
28
+ const response = await provider.connect(request);
29
+ options.onFinish?.(response);
30
+ }
31
+ catch (error) {
32
+ console.error('[Connect] Error during address request', error);
33
+ options.onCancel?.();
34
+ }
35
+ };
36
+ exports.getAddress = getAddress;
37
+ __exportStar(require("./types"), exports);
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/addresses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2CAAkD;AAElD,0CAAiD;AAG1C,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC7D,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,IAAI;QACF,MAAM,OAAO,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,OAA0B,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;KACtB;AACH,CAAC,CAAC;AAhBW,QAAA,UAAU,cAgBrB;AAEF,0CAAwB"}
@@ -0,0 +1,28 @@
1
+ import type { RequestOptions, RequestPayload } from '../types';
2
+ export declare enum AddressPurpose {
3
+ Ordinals = "ordinals",
4
+ Payment = "payment",
5
+ Stacks = "stacks"
6
+ }
7
+ export interface GetAddressPayload extends RequestPayload {
8
+ purposes: AddressPurpose[];
9
+ message: string;
10
+ }
11
+ export declare enum AddressType {
12
+ p2pkh = "p2pkh",
13
+ p2sh = "p2sh",
14
+ p2wpkh = "p2wpkh",
15
+ p2wsh = "p2wsh",
16
+ p2tr = "p2tr",
17
+ stacks = "stacks"
18
+ }
19
+ export interface Address {
20
+ address: string;
21
+ publicKey: string;
22
+ purpose?: AddressPurpose;
23
+ addressType?: AddressType;
24
+ }
25
+ export interface GetAddressResponse {
26
+ addresses: Address[];
27
+ }
28
+ export type GetAddressOptions = RequestOptions<GetAddressPayload, GetAddressResponse>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddressType = exports.AddressPurpose = void 0;
4
+ var AddressPurpose;
5
+ (function (AddressPurpose) {
6
+ AddressPurpose["Ordinals"] = "ordinals";
7
+ AddressPurpose["Payment"] = "payment";
8
+ AddressPurpose["Stacks"] = "stacks";
9
+ })(AddressPurpose = exports.AddressPurpose || (exports.AddressPurpose = {}));
10
+ var AddressType;
11
+ (function (AddressType) {
12
+ AddressType["p2pkh"] = "p2pkh";
13
+ AddressType["p2sh"] = "p2sh";
14
+ AddressType["p2wpkh"] = "p2wpkh";
15
+ AddressType["p2wsh"] = "p2wsh";
16
+ AddressType["p2tr"] = "p2tr";
17
+ AddressType["stacks"] = "stacks";
18
+ })(AddressType = exports.AddressType || (exports.AddressType = {}));
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/addresses/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;AACnB,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB;AAOD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB"}
@@ -0,0 +1,3 @@
1
+ import type { GetCapabilitiesOptions } from './types';
2
+ export declare const getCapabilities: (options: GetCapabilitiesOptions) => Promise<void>;
3
+ export * from './types';
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.getCapabilities = void 0;
18
+ const jsontokens_1 = require("jsontokens");
19
+ const provider_1 = require("../provider");
20
+ const extractOrValidateCapabilities = (provider, reportedCapabilities) => {
21
+ const validateCapability = (capability) => {
22
+ if (!provider[capability]) {
23
+ return false;
24
+ }
25
+ // The provider might have the method implemented but not ready for use
26
+ if (reportedCapabilities && !reportedCapabilities.has(capability)) {
27
+ return false;
28
+ }
29
+ return true;
30
+ };
31
+ const capabilityMap = {
32
+ request: validateCapability('request'),
33
+ connect: validateCapability('connect'),
34
+ signMessage: validateCapability('signMessage'),
35
+ signTransaction: validateCapability('signTransaction'),
36
+ sendBtcTransaction: validateCapability('sendBtcTransaction'),
37
+ createInscription: validateCapability('createInscription'),
38
+ createRepeatInscriptions: validateCapability('createRepeatInscriptions'),
39
+ signMultipleTransactions: validateCapability('signMultipleTransactions'),
40
+ };
41
+ return Object.entries(capabilityMap).reduce((acc, [capability, value]) => {
42
+ if (value)
43
+ return [...acc, capability];
44
+ return acc;
45
+ }, []);
46
+ };
47
+ const getCapabilities = async (options) => {
48
+ const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);
49
+ const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);
50
+ if (provider.getCapabilities) {
51
+ try {
52
+ const response = await provider.getCapabilities(request);
53
+ options.onFinish?.(extractOrValidateCapabilities(provider, new Set(response)));
54
+ }
55
+ catch (error) {
56
+ console.error('[Connect] Error during capabilities request', error);
57
+ }
58
+ }
59
+ try {
60
+ const inferredCapabilities = extractOrValidateCapabilities(provider);
61
+ options.onFinish?.(inferredCapabilities);
62
+ }
63
+ catch (error) {
64
+ console.error('[Connect] Error during capabilities request', error);
65
+ options.onCancel?.();
66
+ }
67
+ };
68
+ exports.getCapabilities = getCapabilities;
69
+ __exportStar(require("./types"), exports);
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2CAAkD;AAElD,0CAA8E;AAS9E,MAAM,6BAA6B,GAAG,CACpC,QAAyB,EACzB,oBAAsC,EACxB,EAAE;IAChB,MAAM,kBAAkB,GAAG,CAAC,UAAsB,EAAE,EAAE;QACpD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,uEAAuE;QACvE,IAAI,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjE,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,aAAa,GAAkB;QACnC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACtC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACtC,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAC9C,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;QACtD,kBAAkB,EAAE,kBAAkB,CAAC,oBAAoB,CAAC;QAC5D,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC;QAC1D,wBAAwB,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;QACxE,wBAAwB,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;KACzE,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;QACvE,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,GAAG,EAAE,UAAwB,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAkB,CAAC,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,KAAK,EAAE,OAA+B,EAAE,EAAE;IACvE,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,OAA0B,CAAC,CAAC;IAEzE,IAAI,QAAQ,CAAC,eAAe,EAAE;QAC5B,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzD,OAAO,CAAC,QAAQ,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAChF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;SACrE;KACF;IAED,IAAI;QACF,MAAM,oBAAoB,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QACrE,OAAO,CAAC,QAAQ,EAAE,CAAC,oBAAoB,CAAC,CAAC;KAC1C;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;QACpE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;KACtB;AACH,CAAC,CAAC;AAtBW,QAAA,eAAe,mBAsB1B;AAEF,0CAAwB"}
@@ -0,0 +1,6 @@
1
+ import type { Capability } from '../provider';
2
+ import type { RequestOptions, RequestPayload } from '../types';
3
+ export interface GetCapabilitiesPayload extends RequestPayload {
4
+ }
5
+ export type GetCapabilitiesResponse = Capability[];
6
+ export type GetCapabilitiesOptions = RequestOptions<GetCapabilitiesPayload, GetCapabilitiesResponse>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export * from './adapters';
2
+ export * from './addresses';
3
+ export * from './capabilities';
4
+ export * from './inscriptions';
5
+ export * from './messages';
6
+ export * from './provider';
7
+ export * from './request';
8
+ export * from './transactions';
9
+ export * from './types';
10
+ export * from './ui';
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./adapters"), exports);
18
+ __exportStar(require("./addresses"), exports);
19
+ __exportStar(require("./capabilities"), exports);
20
+ __exportStar(require("./inscriptions"), exports);
21
+ __exportStar(require("./messages"), exports);
22
+ __exportStar(require("./provider"), exports);
23
+ __exportStar(require("./request"), exports);
24
+ __exportStar(require("./transactions"), exports);
25
+ __exportStar(require("./types"), exports);
26
+ __exportStar(require("./ui"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,iDAA+B;AAC/B,0CAAwB;AACxB,uCAAqB"}
@@ -0,0 +1,2 @@
1
+ import { CreateInscriptionOptions } from './types';
2
+ export declare const createInscription: (options: CreateInscriptionOptions) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInscription = void 0;
4
+ const jsontokens_1 = require("jsontokens");
5
+ const provider_1 = require("../provider");
6
+ const utils_1 = require("./utils");
7
+ const createInscription = async (options) => {
8
+ const { getProvider } = options;
9
+ const provider = await (0, provider_1.getProviderOrThrow)(getProvider);
10
+ (0, utils_1.validateInscriptionPayload)(options.payload);
11
+ try {
12
+ const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);
13
+ const response = await provider.createInscription(request);
14
+ options.onFinish?.(response);
15
+ }
16
+ catch (error) {
17
+ console.error('[Connect] Error during create inscription', error);
18
+ options.onCancel?.();
19
+ }
20
+ };
21
+ exports.createInscription = createInscription;
22
+ //# sourceMappingURL=createInscription.js.map