sats-connect 2.0.0 → 2.1.0-440ffac

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 (77) hide show
  1. package/README.md +24 -2
  2. package/dist/index.d.mts +16 -0
  3. package/dist/index.mjs +90 -0
  4. package/package.json +10 -15
  5. package/dist/addresses/index.d.ts +0 -3
  6. package/dist/addresses/index.js +0 -38
  7. package/dist/addresses/index.js.map +0 -1
  8. package/dist/addresses/types.d.ts +0 -28
  9. package/dist/addresses/types.js +0 -19
  10. package/dist/addresses/types.js.map +0 -1
  11. package/dist/capabilities/index.d.ts +0 -3
  12. package/dist/capabilities/index.js +0 -70
  13. package/dist/capabilities/index.js.map +0 -1
  14. package/dist/capabilities/types.d.ts +0 -6
  15. package/dist/capabilities/types.js +0 -3
  16. package/dist/capabilities/types.js.map +0 -1
  17. package/dist/index.d.ts +0 -8
  18. package/dist/index.js +0 -25
  19. package/dist/index.js.map +0 -1
  20. package/dist/inscriptions/createInscription.d.ts +0 -2
  21. package/dist/inscriptions/createInscription.js +0 -22
  22. package/dist/inscriptions/createInscription.js.map +0 -1
  23. package/dist/inscriptions/createRepeatInscriptions.d.ts +0 -2
  24. package/dist/inscriptions/createRepeatInscriptions.js +0 -22
  25. package/dist/inscriptions/createRepeatInscriptions.js.map +0 -1
  26. package/dist/inscriptions/index.d.ts +0 -3
  27. package/dist/inscriptions/index.js +0 -20
  28. package/dist/inscriptions/index.js.map +0 -1
  29. package/dist/inscriptions/types.d.ts +0 -21
  30. package/dist/inscriptions/types.js +0 -3
  31. package/dist/inscriptions/types.js.map +0 -1
  32. package/dist/inscriptions/utils.d.ts +0 -2
  33. package/dist/inscriptions/utils.js +0 -26
  34. package/dist/inscriptions/utils.js.map +0 -1
  35. package/dist/messages/index.d.ts +0 -3
  36. package/dist/messages/index.js +0 -41
  37. package/dist/messages/index.js.map +0 -1
  38. package/dist/messages/types.d.ts +0 -7
  39. package/dist/messages/types.js +0 -3
  40. package/dist/messages/types.js.map +0 -1
  41. package/dist/provider/index.d.ts +0 -5
  42. package/dist/provider/index.js +0 -44
  43. package/dist/provider/index.js.map +0 -1
  44. package/dist/provider/types.d.ts +0 -43
  45. package/dist/provider/types.js +0 -3
  46. package/dist/provider/types.js.map +0 -1
  47. package/dist/request/index.d.ts +0 -4
  48. package/dist/request/index.js +0 -47
  49. package/dist/request/index.js.map +0 -1
  50. package/dist/request/types/btcMethods.d.ts +0 -111
  51. package/dist/request/types/btcMethods.js +0 -6
  52. package/dist/request/types/btcMethods.js.map +0 -1
  53. package/dist/request/types/index.d.ts +0 -26
  54. package/dist/request/types/index.js +0 -19
  55. package/dist/request/types/index.js.map +0 -1
  56. package/dist/request/types/stxMethods.d.ts +0 -193
  57. package/dist/request/types/stxMethods.js +0 -3
  58. package/dist/request/types/stxMethods.js.map +0 -1
  59. package/dist/transactions/index.d.ts +0 -4
  60. package/dist/transactions/index.js +0 -21
  61. package/dist/transactions/index.js.map +0 -1
  62. package/dist/transactions/sendBtcTransaction.d.ts +0 -2
  63. package/dist/transactions/sendBtcTransaction.js +0 -45
  64. package/dist/transactions/sendBtcTransaction.js.map +0 -1
  65. package/dist/transactions/signMultipleTransactions.d.ts +0 -2
  66. package/dist/transactions/signMultipleTransactions.js +0 -26
  67. package/dist/transactions/signMultipleTransactions.js.map +0 -1
  68. package/dist/transactions/signTransaction.d.ts +0 -2
  69. package/dist/transactions/signTransaction.js +0 -26
  70. package/dist/transactions/signTransaction.js.map +0 -1
  71. package/dist/transactions/types.d.ts +0 -46
  72. package/dist/transactions/types.js +0 -3
  73. package/dist/transactions/types.js.map +0 -1
  74. package/dist/tsconfig.tsbuildinfo +0 -1
  75. package/dist/types.d.ts +0 -87
  76. package/dist/types.js +0 -46
  77. package/dist/types.js.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,27 @@
1
- # Sats Connect
1
+ ![logo](/example/public/sats-connect.svg)
2
2
 
3
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
4
 
5
- [Read the docs](https://docs.xverse.app/sats-connect/)
5
+ Developers building apps on the Bitcoin ecosystem can use Sats connect to interact with users' wallets:
6
+
7
+ 1. Retrieve users' wallet address(es)
8
+
9
+ 2. Request the signature of arbitrary messages for authentication purposes
10
+
11
+ 3. Request the signature of partially signed Bitcoin transactions (PSBT)
12
+
13
+ 4. Request BTC or Stacks transfers to one or multiple recipients
14
+
15
+ 5. Request Stacks contract interactions and deployments
16
+
17
+ 6. Inscribe sats with arbitrary content for ordinals & BRC-20 use cases
18
+
19
+ ## Quick start
20
+
21
+ ```bash
22
+ npm i sats-connect
23
+ ```
24
+
25
+ ## Documentation
26
+
27
+ For full documentation, visit [docs.xverse.app](https://docs.xverse.app/sats-connect/).
@@ -0,0 +1,16 @@
1
+ import { SupportedWallet, Requests, Params, RpcResult } from '@sats-connect/core';
2
+ export * from '@sats-connect/core';
3
+ import { Config } from '@sats-connect/ui';
4
+
5
+ declare class Wallet {
6
+ private static providerId;
7
+ private static defaultAdapters;
8
+ static createCustomConfig?: (providers: SupportedWallet[]) => Config;
9
+ private static isProviderSet;
10
+ static setCreateCustomConfig(createCustomConfig: (providers: SupportedWallet[]) => Config): void;
11
+ static selectProvider(): Promise<void>;
12
+ static disconnect(): Promise<void>;
13
+ static request<Method extends keyof Requests>(method: Method, params: Params<Method>): Promise<RpcResult<Method>>;
14
+ }
15
+
16
+ export { Wallet as default };
package/dist/index.mjs ADDED
@@ -0,0 +1,90 @@
1
+ // src/index.ts
2
+ import {
3
+ defaultAdapters,
4
+ getSupportedWallets,
5
+ setDefaultProvider,
6
+ getDefaultProvider,
7
+ removeDefaultProvider,
8
+ RpcErrorCode,
9
+ BaseAdapter,
10
+ createDefaultConfig
11
+ } from "@sats-connect/core";
12
+ import {
13
+ loadSelector,
14
+ selectWalletProvider,
15
+ close,
16
+ walletOpen,
17
+ walletClose
18
+ } from "@sats-connect/ui";
19
+ export * from "@sats-connect/core";
20
+ loadSelector();
21
+ var Wallet = class {
22
+ static providerId;
23
+ static defaultAdapters = defaultAdapters;
24
+ static createCustomConfig;
25
+ static isProviderSet() {
26
+ return !!this.providerId;
27
+ }
28
+ static setCreateCustomConfig(createCustomConfig) {
29
+ this.createCustomConfig = createCustomConfig;
30
+ }
31
+ static async selectProvider() {
32
+ const providers = getSupportedWallets();
33
+ if (providers.length === 0) {
34
+ throw new Error("No wallets detected, may want to prompt user to install a wallet.");
35
+ }
36
+ const selectorConfig = this.createCustomConfig ? this.createCustomConfig(providers) : createDefaultConfig(providers);
37
+ const nextProviderId = await selectWalletProvider(selectorConfig);
38
+ this.providerId = nextProviderId;
39
+ }
40
+ static async disconnect() {
41
+ this.providerId = void 0;
42
+ removeDefaultProvider();
43
+ }
44
+ static async request(method, params) {
45
+ const defaultProvider = getDefaultProvider();
46
+ if (!this.isProviderSet()) {
47
+ if (defaultProvider) {
48
+ this.providerId = defaultProvider;
49
+ } else {
50
+ try {
51
+ await this.selectProvider();
52
+ } catch {
53
+ return {
54
+ status: "error",
55
+ error: {
56
+ code: RpcErrorCode.INTERNAL_ERROR,
57
+ message: "Failed to select the provider. User may have cancelled the selection prompt."
58
+ }
59
+ };
60
+ }
61
+ }
62
+ }
63
+ const adapter = this.defaultAdapters[this.providerId];
64
+ walletOpen(this.providerId);
65
+ const response = adapter ? await new adapter().request(method, params) : await new BaseAdapter(this.providerId).request(method, params);
66
+ walletClose();
67
+ if (response?.status === "error" && response.error?.code === RpcErrorCode.USER_REJECTION) {
68
+ if (!defaultProvider) {
69
+ this.providerId = void 0;
70
+ }
71
+ } else {
72
+ setDefaultProvider(this.providerId);
73
+ }
74
+ close();
75
+ if (!response) {
76
+ return {
77
+ status: "error",
78
+ error: {
79
+ code: RpcErrorCode.INTERNAL_ERROR,
80
+ message: "Wallet Error processing the request"
81
+ }
82
+ };
83
+ }
84
+ return response;
85
+ }
86
+ };
87
+ var src_default = Wallet;
88
+ export {
89
+ src_default as default
90
+ };
package/package.json CHANGED
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "name": "sats-connect",
3
- "version": "2.0.0",
4
- "main": "dist/index.js",
3
+ "version": "2.1.0-440ffac",
4
+ "main": "dist/index.mjs",
5
+ "types": "dist/index.d.mts",
6
+ "module": "dist/index.mjs",
5
7
  "files": [
6
8
  "dist"
7
9
  ],
8
10
  "scripts": {
9
11
  "test": "jest",
10
- "build-debug": "webpack --mode development",
11
- "build": "npm run clean && tsc",
12
+ "build": "npm run clean && tsup src/index.ts --format esm --dts",
13
+ "dev:example": "cd example && npm start",
12
14
  "clean": "rimraf dist",
13
15
  "lint": "prettier --write .",
14
16
  "prepare": "husky install"
@@ -22,24 +24,17 @@
22
24
  ]
23
25
  },
24
26
  "dependencies": {
25
- "jsontokens": "^4.0.1",
26
- "process": "^0.11.10",
27
- "util": "^0.12.4"
27
+ "@sats-connect/core": "0.0.3",
28
+ "@sats-connect/ui": "0.0.2-42ab886"
28
29
  },
29
30
  "devDependencies": {
30
- "@types/jest": "^29.2.6",
31
31
  "husky": "^8.0.3",
32
32
  "lint-staged": "^13.2.3",
33
33
  "prettier": "^2.8.4",
34
- "process": "^0.11.10",
35
34
  "rimraf": "^3.0.2",
36
- "stream-browserify": "^3.0.0",
37
35
  "ts-jest": "^29.0.5",
38
- "ts-loader": "^9.4.1",
39
- "typescript": "^4.9.4",
40
- "vm-browserify": "^1.1.2",
41
- "webpack": "^5.74.0",
42
- "webpack-cli": "^4.10.0"
36
+ "tsup": "^8.0.2",
37
+ "typescript": "^4.9.4"
43
38
  },
44
39
  "repository": {
45
40
  "type": "git",
@@ -1,3 +0,0 @@
1
- import type { GetAddressOptions } from './types';
2
- export declare const getAddress: (options: GetAddressOptions) => Promise<void>;
3
- export * from './types';
@@ -1,38 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,28 +0,0 @@
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>;
@@ -1,19 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,3 +0,0 @@
1
- import type { GetCapabilitiesOptions } from './types';
2
- export declare const getCapabilities: (options: GetCapabilitiesOptions) => Promise<void>;
3
- export * from './types';
@@ -1,70 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,6 +0,0 @@
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>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export * from './addresses';
2
- export * from './request';
3
- export * from './capabilities';
4
- export * from './inscriptions';
5
- export * from './messages';
6
- export * from './provider';
7
- export * from './transactions';
8
- export * from './types';
package/dist/index.js DELETED
@@ -1,25 +0,0 @@
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("./addresses"), exports);
18
- __exportStar(require("./request"), exports);
19
- __exportStar(require("./capabilities"), exports);
20
- __exportStar(require("./inscriptions"), exports);
21
- __exportStar(require("./messages"), exports);
22
- __exportStar(require("./provider"), exports);
23
- __exportStar(require("./transactions"), exports);
24
- __exportStar(require("./types"), exports);
25
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,iDAA+B;AAC/B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,0CAAwB"}
@@ -1,2 +0,0 @@
1
- import { CreateInscriptionOptions } from './types';
2
- export declare const createInscription: (options: CreateInscriptionOptions) => Promise<void>;
@@ -1,22 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"createInscription.js","sourceRoot":"","sources":["../../src/inscriptions/createInscription.ts"],"names":[],"mappings":";;;AACA,2CAAkD;AAElD,0CAAiD;AAEjD,mCAAqD;AAE9C,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAiC,EAAE,EAAE;IAC3E,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,WAAW,CAAC,CAAC;IAEvD,IAAA,kCAA0B,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI;QACF,MAAM,OAAO,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,OAA0B,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;KACtB;AACH,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B"}
@@ -1,2 +0,0 @@
1
- import { CreateRepeatInscriptionsOptions } from './types';
2
- export declare const createRepeatInscriptions: (options: CreateRepeatInscriptionsOptions) => Promise<void>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRepeatInscriptions = void 0;
4
- const provider_1 = require("../provider");
5
- const jsontokens_1 = require("jsontokens");
6
- const utils_1 = require("./utils");
7
- const createRepeatInscriptions = 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.createRepeatInscriptions(request);
14
- options.onFinish?.(response);
15
- }
16
- catch (error) {
17
- console.error('[Connect] Error during create repeat inscriptions', error);
18
- options.onCancel?.();
19
- }
20
- };
21
- exports.createRepeatInscriptions = createRepeatInscriptions;
22
- //# sourceMappingURL=createRepeatInscriptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRepeatInscriptions.js","sourceRoot":"","sources":["../../src/inscriptions/createRepeatInscriptions.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAEjD,2CAAwD;AACxD,mCAAqD;AAE9C,MAAM,wBAAwB,GAAG,KAAK,EAAE,OAAwC,EAAE,EAAE;IACzF,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,WAAW,CAAC,CAAC;IAEvD,IAAA,kCAA0B,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI;QACF,MAAM,OAAO,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,OAA0B,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;QAC1E,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;KACtB;AACH,CAAC,CAAC;AAdW,QAAA,wBAAwB,4BAcnC"}
@@ -1,3 +0,0 @@
1
- export * from './createInscription';
2
- export * from './createRepeatInscriptions';
3
- export * from './types';
@@ -1,20 +0,0 @@
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("./createInscription"), exports);
18
- __exportStar(require("./createRepeatInscriptions"), exports);
19
- __exportStar(require("./types"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inscriptions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,6DAA2C;AAC3C,0CAAwB"}
@@ -1,21 +0,0 @@
1
- import type { RequestOptions, RequestPayload } from '../types';
2
- export interface CreateInscriptionPayload extends RequestPayload {
3
- contentType: string;
4
- content: string;
5
- payloadType: 'PLAIN_TEXT' | 'BASE_64';
6
- appFee?: number;
7
- appFeeAddress?: string;
8
- suggestedMinerFeeRate?: number;
9
- token?: string;
10
- }
11
- export interface CreateRepeatInscriptionsPayload extends CreateInscriptionPayload {
12
- repeat: number;
13
- }
14
- export type CreateInscriptionResponse = {
15
- txId: string;
16
- };
17
- export type CreateRepeatInscriptionsResponse = {
18
- txId: string;
19
- };
20
- export type CreateInscriptionOptions = RequestOptions<CreateInscriptionPayload, CreateInscriptionResponse>;
21
- export type CreateRepeatInscriptionsOptions = RequestOptions<CreateRepeatInscriptionsPayload, CreateRepeatInscriptionsResponse>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/inscriptions/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import { CreateInscriptionPayload } from './types';
2
- export declare const validateInscriptionPayload: (payload: CreateInscriptionPayload) => void;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateInscriptionPayload = void 0;
4
- const MAX_CONTENT_LENGTH_MAINNET = 400e3; // 400kb is the max miners will mine
5
- const MAX_CONTENT_LENGTH_TESTNET = 60e3; // 60kb limit on Testnet to prevent spam
6
- const validateInscriptionPayload = (payload) => {
7
- const { contentType, content, payloadType, network, appFeeAddress, appFee } = payload;
8
- if (!/^[a-z]+\/[a-z0-9\-\.\+]+(?=;.*|$)/.test(contentType)) {
9
- throw new Error('Invalid content type detected');
10
- }
11
- if (!content || content.length === 0) {
12
- throw new Error('Empty content not allowed');
13
- }
14
- if (!payloadType || (payloadType !== 'BASE_64' && payloadType !== 'PLAIN_TEXT')) {
15
- throw new Error('Empty invalid payloadType specified');
16
- }
17
- if (content.length >
18
- (network.type === 'Mainnet' ? MAX_CONTENT_LENGTH_MAINNET : MAX_CONTENT_LENGTH_TESTNET)) {
19
- throw new Error('Content too large');
20
- }
21
- if ((appFeeAddress?.length ?? 0) > 0 && (appFee ?? 0) <= 0) {
22
- throw new Error('Invalid combination of app fee address and fee provided');
23
- }
24
- };
25
- exports.validateInscriptionPayload = validateInscriptionPayload;
26
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/inscriptions/utils.ts"],"names":[],"mappings":";;;AAEA,MAAM,0BAA0B,GAAG,KAAK,CAAC,CAAC,oCAAoC;AAC9E,MAAM,0BAA0B,GAAG,IAAI,CAAC,CAAC,wCAAwC;AAE1E,MAAM,0BAA0B,GAAG,CAAC,OAAiC,EAAE,EAAE;IAC9E,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACtF,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,YAAY,CAAC,EAAE;QAC/E,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IAED,IACE,OAAO,CAAC,MAAM;QACd,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,0BAA0B,CAAC,EACtF;QACA,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACtC;IAED,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;AACH,CAAC,CAAC;AAxBW,QAAA,0BAA0B,8BAwBrC"}
@@ -1,3 +0,0 @@
1
- import type { SignMessageOptions } from './types';
2
- export declare const signMessage: (options: SignMessageOptions) => Promise<void>;
3
- export * from './types';
@@ -1,41 +0,0 @@
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.signMessage = void 0;
18
- const jsontokens_1 = require("jsontokens");
19
- const provider_1 = require("../provider");
20
- const signMessage = async (options) => {
21
- const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);
22
- const { address, message } = options.payload;
23
- if (!address) {
24
- throw new Error('An address is required to sign a message');
25
- }
26
- if (!message) {
27
- throw new Error('A message to be signed is required');
28
- }
29
- try {
30
- const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);
31
- const response = await provider.signMessage(request);
32
- options.onFinish?.(response);
33
- }
34
- catch (error) {
35
- console.error('[Connect] Error during sign message request', error);
36
- options.onCancel?.();
37
- }
38
- };
39
- exports.signMessage = signMessage;
40
- __exportStar(require("./types"), exports);
41
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2CAAkD;AAElD,0CAAiD;AAG1C,MAAM,WAAW,GAAG,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC/D,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IAED,IAAI;QACF,MAAM,OAAO,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,OAA0B,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC9B;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;AAnBW,QAAA,WAAW,eAmBtB;AAEF,0CAAwB"}