@ckb-ccc/xverse 0.0.15-alpha.0

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 (90) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +51 -0
  3. package/dist/advanced.d.ts +2 -0
  4. package/dist/advanced.d.ts.map +1 -0
  5. package/dist/advanced.js +1 -0
  6. package/dist/advancedBarrel.d.ts +2 -0
  7. package/dist/advancedBarrel.d.ts.map +1 -0
  8. package/dist/advancedBarrel.js +1 -0
  9. package/dist/barrel.d.ts +3 -0
  10. package/dist/barrel.d.ts.map +1 -0
  11. package/dist/barrel.js +2 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +1 -0
  15. package/dist/package.json +3 -0
  16. package/dist/sat-connect-core/advanced.d.ts +5 -0
  17. package/dist/sat-connect-core/advanced.d.ts.map +1 -0
  18. package/dist/sat-connect-core/advanced.js +4 -0
  19. package/dist/sat-connect-core/btcMethods.advanced.d.ts +280 -0
  20. package/dist/sat-connect-core/btcMethods.advanced.d.ts.map +1 -0
  21. package/dist/sat-connect-core/btcMethods.advanced.js +179 -0
  22. package/dist/sat-connect-core/provider.advanced.d.ts +48 -0
  23. package/dist/sat-connect-core/provider.advanced.d.ts.map +1 -0
  24. package/dist/sat-connect-core/provider.advanced.js +21 -0
  25. package/dist/sat-connect-core/requests.advanced.d.ts +21 -0
  26. package/dist/sat-connect-core/requests.advanced.d.ts.map +1 -0
  27. package/dist/sat-connect-core/requests.advanced.js +1 -0
  28. package/dist/sat-connect-core/types.advanced.d.ts +124 -0
  29. package/dist/sat-connect-core/types.advanced.d.ts.map +1 -0
  30. package/dist/sat-connect-core/types.advanced.js +79 -0
  31. package/dist/sat-connect-core/walletMethods.advanced.d.ts +36 -0
  32. package/dist/sat-connect-core/walletMethods.advanced.d.ts.map +1 -0
  33. package/dist/sat-connect-core/walletMethods.advanced.js +37 -0
  34. package/dist/signer.d.ts +47 -0
  35. package/dist/signer.d.ts.map +1 -0
  36. package/dist/signer.js +123 -0
  37. package/dist/signersFactory.d.ts +13 -0
  38. package/dist/signersFactory.d.ts.map +1 -0
  39. package/dist/signersFactory.js +30 -0
  40. package/dist.commonjs/advanced.d.ts +2 -0
  41. package/dist.commonjs/advanced.d.ts.map +1 -0
  42. package/dist.commonjs/advanced.js +27 -0
  43. package/dist.commonjs/advancedBarrel.d.ts +2 -0
  44. package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
  45. package/dist.commonjs/advancedBarrel.js +17 -0
  46. package/dist.commonjs/barrel.d.ts +3 -0
  47. package/dist.commonjs/barrel.d.ts.map +1 -0
  48. package/dist.commonjs/barrel.js +18 -0
  49. package/dist.commonjs/index.d.ts +2 -0
  50. package/dist.commonjs/index.d.ts.map +1 -0
  51. package/dist.commonjs/index.js +27 -0
  52. package/dist.commonjs/package.json +3 -0
  53. package/dist.commonjs/sat-connect-core/advanced.d.ts +5 -0
  54. package/dist.commonjs/sat-connect-core/advanced.d.ts.map +1 -0
  55. package/dist.commonjs/sat-connect-core/advanced.js +20 -0
  56. package/dist.commonjs/sat-connect-core/btcMethods.advanced.d.ts +280 -0
  57. package/dist.commonjs/sat-connect-core/btcMethods.advanced.d.ts.map +1 -0
  58. package/dist.commonjs/sat-connect-core/btcMethods.advanced.js +205 -0
  59. package/dist.commonjs/sat-connect-core/provider.advanced.d.ts +48 -0
  60. package/dist.commonjs/sat-connect-core/provider.advanced.d.ts.map +1 -0
  61. package/dist.commonjs/sat-connect-core/provider.advanced.js +47 -0
  62. package/dist.commonjs/sat-connect-core/requests.advanced.d.ts +21 -0
  63. package/dist.commonjs/sat-connect-core/requests.advanced.d.ts.map +1 -0
  64. package/dist.commonjs/sat-connect-core/requests.advanced.js +2 -0
  65. package/dist.commonjs/sat-connect-core/types.advanced.d.ts +124 -0
  66. package/dist.commonjs/sat-connect-core/types.advanced.d.ts.map +1 -0
  67. package/dist.commonjs/sat-connect-core/types.advanced.js +105 -0
  68. package/dist.commonjs/sat-connect-core/walletMethods.advanced.d.ts +36 -0
  69. package/dist.commonjs/sat-connect-core/walletMethods.advanced.d.ts.map +1 -0
  70. package/dist.commonjs/sat-connect-core/walletMethods.advanced.js +63 -0
  71. package/dist.commonjs/signer.d.ts +47 -0
  72. package/dist.commonjs/signer.d.ts.map +1 -0
  73. package/dist.commonjs/signer.js +150 -0
  74. package/dist.commonjs/signersFactory.d.ts +13 -0
  75. package/dist.commonjs/signersFactory.d.ts.map +1 -0
  76. package/dist.commonjs/signersFactory.js +34 -0
  77. package/package.json +57 -0
  78. package/src/advanced.ts +1 -0
  79. package/src/advancedBarrel.ts +1 -0
  80. package/src/barrel.ts +2 -0
  81. package/src/index.ts +1 -0
  82. package/src/sat-connect-core/advanced.ts +4 -0
  83. package/src/sat-connect-core/btcMethods.advanced.ts +304 -0
  84. package/src/sat-connect-core/provider.advanced.ts +61 -0
  85. package/src/sat-connect-core/requests.advanced.ts +41 -0
  86. package/src/sat-connect-core/types.advanced.ts +159 -0
  87. package/src/sat-connect-core/walletMethods.advanced.ts +58 -0
  88. package/src/signer.ts +170 -0
  89. package/src/signersFactory.ts +50 -0
  90. package/typedoc.json +6 -0
@@ -0,0 +1,21 @@
1
+ import { GetAccounts, GetAddresses, GetBalance, GetInfo, SendTransfer, SignMessage, SignPsbt } from "./btcMethods.advanced";
2
+ import { GetWalletType, RenouncePermissions, RequestPermissions } from "./walletMethods.advanced";
3
+ export interface BtcRequests {
4
+ getInfo: GetInfo;
5
+ getAddresses: GetAddresses;
6
+ getAccounts: GetAccounts;
7
+ getBalance: GetBalance;
8
+ signMessage: SignMessage;
9
+ sendTransfer: SendTransfer;
10
+ signPsbt: SignPsbt;
11
+ }
12
+ export type BtcRequestMethod = keyof BtcRequests;
13
+ export interface WalletRequests {
14
+ wallet_requestPermissions: RequestPermissions;
15
+ wallet_renouncePermissions: RenouncePermissions;
16
+ wallet_getWalletType: GetWalletType;
17
+ }
18
+ export type Requests = BtcRequests & WalletRequests;
19
+ export type Return<Method> = Method extends keyof Requests ? Requests[Method]["result"] : never;
20
+ export type Params<Method> = Method extends keyof Requests ? Requests[Method]["params"] : never;
21
+ //# sourceMappingURL=requests.advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.advanced.d.ts","sourceRoot":"","sources":["../../src/sat-connect-core/requests.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,0BAA0B,EAAE,mBAAmB,CAAC;IAChD,oBAAoB,EAAE,aAAa,CAAC;CACrC;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC;AAEpD,MAAM,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,SAAS,MAAM,QAAQ,GACtD,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAC1B,KAAK,CAAC;AACV,MAAM,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,SAAS,MAAM,QAAQ,GACtD,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAC1B,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,124 @@
1
+ import * as v from "valibot";
2
+ import type { BtcProvider } from "./provider.advanced";
3
+ import type { Requests, Return } from "./requests.advanced";
4
+ export declare enum BitcoinNetworkType {
5
+ Mainnet = "Mainnet",
6
+ Testnet = "Testnet",
7
+ Signet = "Signet"
8
+ }
9
+ export interface BitcoinNetwork {
10
+ type: BitcoinNetworkType;
11
+ address?: string;
12
+ }
13
+ export interface RequestPayload {
14
+ network: BitcoinNetwork;
15
+ }
16
+ export interface RequestOptions<Payload extends RequestPayload, Response> {
17
+ onFinish: (response: Response) => void;
18
+ onCancel: () => void;
19
+ payload: Payload;
20
+ getProvider?: () => Promise<BtcProvider | undefined>;
21
+ }
22
+ export declare const RpcIdSchema: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>, v.NullSchema<undefined>], undefined>, never>;
23
+ export type RpcId = v.InferOutput<typeof RpcIdSchema>;
24
+ export declare const rpcRequestMessageSchema: v.ObjectSchema<{
25
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
26
+ readonly method: v.StringSchema<undefined>;
27
+ readonly params: v.OptionalSchema<v.UnionSchema<[v.ArraySchema<v.UnknownSchema, undefined>, v.LooseObjectSchema<{}, undefined>, v.NullSchema<undefined>], undefined>, never>;
28
+ readonly id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>, v.NullSchema<undefined>], undefined>, never>;
29
+ }, undefined>;
30
+ export type RpcRequestMessage = v.InferOutput<typeof rpcRequestMessageSchema>;
31
+ export interface RpcBase {
32
+ jsonrpc: "2.0";
33
+ id: RpcId;
34
+ }
35
+ export interface RpcRequest<T extends string, U> extends RpcBase {
36
+ method: T;
37
+ params: U;
38
+ }
39
+ export interface MethodParamsAndResult<TParams, TResult> {
40
+ params: TParams;
41
+ result: TResult;
42
+ }
43
+ /**
44
+ * @enum {number} RpcErrorCode
45
+ * @description JSON-RPC error codes
46
+ * @see https://www.jsonrpc.org/specification#error_object
47
+ */
48
+ export declare enum RpcErrorCode {
49
+ /**
50
+ * Parse error Invalid JSON
51
+ **/
52
+ PARSE_ERROR = -32700,
53
+ /**
54
+ * The JSON sent is not a valid Request object.
55
+ **/
56
+ INVALID_REQUEST = -32600,
57
+ /**
58
+ * The method does not exist/is not available.
59
+ **/
60
+ METHOD_NOT_FOUND = -32601,
61
+ /**
62
+ * Invalid method parameter(s).
63
+ */
64
+ INVALID_PARAMS = -32602,
65
+ /**
66
+ * Internal JSON-RPC error.
67
+ * This is a generic error, used when the server encounters an error in performing the request.
68
+ **/
69
+ INTERNAL_ERROR = -32603,
70
+ /**
71
+ * user rejected/canceled the request
72
+ */
73
+ USER_REJECTION = -32000,
74
+ /**
75
+ * method is not supported for the address provided
76
+ */
77
+ METHOD_NOT_SUPPORTED = -32001,
78
+ /**
79
+ * The client does not have permission to access the requested resource.
80
+ */
81
+ ACCESS_DENIED = -32002
82
+ }
83
+ export declare const rpcSuccessResponseMessageSchema: v.ObjectSchema<{
84
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
85
+ readonly result: v.NonOptionalSchema<v.UnknownSchema, undefined>;
86
+ readonly id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>, v.NullSchema<undefined>], undefined>, never>;
87
+ }, undefined>;
88
+ export type RpcSuccessResponseMessage = v.InferOutput<typeof rpcSuccessResponseMessageSchema>;
89
+ export declare const rpcErrorResponseMessageSchema: v.ObjectSchema<{
90
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
91
+ readonly error: v.NonOptionalSchema<v.UnknownSchema, undefined>;
92
+ readonly id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>, v.NullSchema<undefined>], undefined>, never>;
93
+ }, undefined>;
94
+ export type RpcErrorResponseMessage = v.InferOutput<typeof rpcErrorResponseMessageSchema>;
95
+ export declare const rpcResponseMessageSchema: v.UnionSchema<[v.ObjectSchema<{
96
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
97
+ readonly result: v.NonOptionalSchema<v.UnknownSchema, undefined>;
98
+ readonly id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>, v.NullSchema<undefined>], undefined>, never>;
99
+ }, undefined>, v.ObjectSchema<{
100
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
101
+ readonly error: v.NonOptionalSchema<v.UnknownSchema, undefined>;
102
+ readonly id: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>, v.NullSchema<undefined>], undefined>, never>;
103
+ }, undefined>], undefined>;
104
+ export type RpcResponseMessage = v.InferOutput<typeof rpcResponseMessageSchema>;
105
+ export interface RpcError {
106
+ code: number | RpcErrorCode;
107
+ message: string;
108
+ data?: any;
109
+ }
110
+ export interface RpcErrorResponse<TError extends RpcError = RpcError> extends RpcBase {
111
+ error: TError;
112
+ }
113
+ export interface RpcSuccessResponse<Method extends keyof Requests> extends RpcBase {
114
+ result: Return<Method>;
115
+ }
116
+ export type RpcResponse<Method extends keyof Requests> = RpcSuccessResponse<Method> | RpcErrorResponse;
117
+ export type RpcResult<Method extends keyof Requests> = {
118
+ result: RpcSuccessResponse<Method>["result"];
119
+ status: "success";
120
+ } | {
121
+ error: RpcErrorResponse["error"];
122
+ status: "error";
123
+ };
124
+ //# sourceMappingURL=types.advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.advanced.d.ts","sourceRoot":"","sources":["../../src/sat-connect-core/types.advanced.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ // From https://github.com/secretkeylabs/sats-connect-core/
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.rpcResponseMessageSchema = exports.rpcErrorResponseMessageSchema = exports.rpcSuccessResponseMessageSchema = exports.RpcErrorCode = exports.rpcRequestMessageSchema = exports.RpcIdSchema = exports.BitcoinNetworkType = void 0;
28
+ const v = __importStar(require("valibot"));
29
+ var BitcoinNetworkType;
30
+ (function (BitcoinNetworkType) {
31
+ BitcoinNetworkType["Mainnet"] = "Mainnet";
32
+ BitcoinNetworkType["Testnet"] = "Testnet";
33
+ BitcoinNetworkType["Signet"] = "Signet";
34
+ })(BitcoinNetworkType || (exports.BitcoinNetworkType = BitcoinNetworkType = {}));
35
+ // RPC Request and Response types
36
+ exports.RpcIdSchema = v.optional(v.union([v.string(), v.number(), v.null()]));
37
+ exports.rpcRequestMessageSchema = v.object({
38
+ jsonrpc: v.literal("2.0"),
39
+ method: v.string(),
40
+ params: v.optional(v.union([
41
+ v.array(v.unknown()),
42
+ v.looseObject({}),
43
+ // Note: This is to support current incorrect usage of RPC 2.0. Params need
44
+ // to be either an array or an object when provided. Changing this now would
45
+ // be a breaking change, so accepting null values for now. Tracking in
46
+ // https://linear.app/xverseapp/issue/ENG-4538.
47
+ v.null(),
48
+ ])),
49
+ id: exports.RpcIdSchema,
50
+ });
51
+ /**
52
+ * @enum {number} RpcErrorCode
53
+ * @description JSON-RPC error codes
54
+ * @see https://www.jsonrpc.org/specification#error_object
55
+ */
56
+ var RpcErrorCode;
57
+ (function (RpcErrorCode) {
58
+ /**
59
+ * Parse error Invalid JSON
60
+ **/
61
+ RpcErrorCode[RpcErrorCode["PARSE_ERROR"] = -32700] = "PARSE_ERROR";
62
+ /**
63
+ * The JSON sent is not a valid Request object.
64
+ **/
65
+ RpcErrorCode[RpcErrorCode["INVALID_REQUEST"] = -32600] = "INVALID_REQUEST";
66
+ /**
67
+ * The method does not exist/is not available.
68
+ **/
69
+ RpcErrorCode[RpcErrorCode["METHOD_NOT_FOUND"] = -32601] = "METHOD_NOT_FOUND";
70
+ /**
71
+ * Invalid method parameter(s).
72
+ */
73
+ RpcErrorCode[RpcErrorCode["INVALID_PARAMS"] = -32602] = "INVALID_PARAMS";
74
+ /**
75
+ * Internal JSON-RPC error.
76
+ * This is a generic error, used when the server encounters an error in performing the request.
77
+ **/
78
+ RpcErrorCode[RpcErrorCode["INTERNAL_ERROR"] = -32603] = "INTERNAL_ERROR";
79
+ /**
80
+ * user rejected/canceled the request
81
+ */
82
+ RpcErrorCode[RpcErrorCode["USER_REJECTION"] = -32000] = "USER_REJECTION";
83
+ /**
84
+ * method is not supported for the address provided
85
+ */
86
+ RpcErrorCode[RpcErrorCode["METHOD_NOT_SUPPORTED"] = -32001] = "METHOD_NOT_SUPPORTED";
87
+ /**
88
+ * The client does not have permission to access the requested resource.
89
+ */
90
+ RpcErrorCode[RpcErrorCode["ACCESS_DENIED"] = -32002] = "ACCESS_DENIED";
91
+ })(RpcErrorCode || (exports.RpcErrorCode = RpcErrorCode = {}));
92
+ exports.rpcSuccessResponseMessageSchema = v.object({
93
+ jsonrpc: v.literal("2.0"),
94
+ result: v.nonOptional(v.unknown()),
95
+ id: exports.RpcIdSchema,
96
+ });
97
+ exports.rpcErrorResponseMessageSchema = v.object({
98
+ jsonrpc: v.literal("2.0"),
99
+ error: v.nonOptional(v.unknown()),
100
+ id: exports.RpcIdSchema,
101
+ });
102
+ exports.rpcResponseMessageSchema = v.union([
103
+ exports.rpcSuccessResponseMessageSchema,
104
+ exports.rpcErrorResponseMessageSchema,
105
+ ]);
@@ -0,0 +1,36 @@
1
+ import * as v from "valibot";
2
+ import { MethodParamsAndResult } from "./types.advanced.js";
3
+ export declare const walletTypes: readonly ["software", "ledger"];
4
+ export declare const walletTypeSchema: v.PicklistSchema<readonly ["software", "ledger"], undefined>;
5
+ export type WalletType = v.InferOutput<typeof walletTypeSchema>;
6
+ export declare const requestPermissionsMethodName = "wallet_requestPermissions";
7
+ export declare const requestPermissionsParamsSchema: v.UndefinedSchema<undefined>;
8
+ export declare const requestPermissionsResultSchema: v.LiteralSchema<true, undefined>;
9
+ export declare const requestPermissionsRequestMessageSchema: v.ObjectSchema<{
10
+ readonly method: v.LiteralSchema<"wallet_requestPermissions", undefined>;
11
+ readonly params: v.UndefinedSchema<undefined>;
12
+ readonly id: v.StringSchema<undefined>;
13
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
14
+ }, undefined>;
15
+ export type RequestPermissions = MethodParamsAndResult<v.InferOutput<typeof requestPermissionsParamsSchema>, v.InferOutput<typeof requestPermissionsResultSchema>>;
16
+ export declare const renouncePermissionsMethodName = "wallet_renouncePermissions";
17
+ export declare const renouncePermissionsParamsSchema: v.UndefinedSchema<undefined>;
18
+ export declare const renouncePermissionsResultSchema: v.LiteralSchema<true, undefined>;
19
+ export declare const renouncePermissionsRequestMessageSchema: v.ObjectSchema<{
20
+ readonly method: v.LiteralSchema<"wallet_renouncePermissions", undefined>;
21
+ readonly params: v.UndefinedSchema<undefined>;
22
+ readonly id: v.StringSchema<undefined>;
23
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
24
+ }, undefined>;
25
+ export type RenouncePermissions = MethodParamsAndResult<v.InferOutput<typeof renouncePermissionsParamsSchema>, v.InferOutput<typeof renouncePermissionsResultSchema>>;
26
+ export declare const getWalletTypeMethodName = "wallet_getWalletType";
27
+ export declare const getWalletTypeParamsSchema: v.NullishSchema<v.NullSchema<undefined>, never>;
28
+ export declare const getWalletTypeResultSchema: v.PicklistSchema<readonly ["software", "ledger"], undefined>;
29
+ export declare const getWalletTypeRequestMessageSchema: v.ObjectSchema<{
30
+ readonly method: v.LiteralSchema<"wallet_getWalletType", undefined>;
31
+ readonly id: v.StringSchema<undefined>;
32
+ readonly jsonrpc: v.LiteralSchema<"2.0", undefined>;
33
+ readonly params: v.OptionalSchema<v.UnionSchema<[v.ArraySchema<v.UnknownSchema, undefined>, v.LooseObjectSchema<{}, undefined>, v.NullSchema<undefined>], undefined>, never>;
34
+ }, undefined>;
35
+ export type GetWalletType = MethodParamsAndResult<v.InferOutput<typeof getWalletTypeParamsSchema>, v.InferOutput<typeof getWalletTypeResultSchema>>;
36
+ //# sourceMappingURL=walletMethods.advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletMethods.advanced.d.ts","sourceRoot":"","sources":["../../src/sat-connect-core/walletMethods.advanced.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EACL,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,WAAW,iCAAkC,CAAC;AAC3D,eAAO,MAAM,gBAAgB,8DAA0B,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,4BAA4B,8BAA8B,CAAC;AACxE,eAAO,MAAM,8BAA8B,8BAAgB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,kCAAkB,CAAC;AAC9D,eAAO,MAAM,sCAAsC;;;;;aAOjD,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CACpD,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,EACpD,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CACrD,CAAC;AAEF,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAC1E,eAAO,MAAM,+BAA+B,8BAAgB,CAAC;AAC7D,eAAO,MAAM,+BAA+B,kCAAkB,CAAC;AAC/D,eAAO,MAAM,uCAAuC;;;;;aAOlD,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CACrD,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,EACrD,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CACtD,CAAC;AAEF,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAC9D,eAAO,MAAM,yBAAyB,iDAAsB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,8DAAmB,CAAC;AAC1D,eAAO,MAAM,iCAAiC;;;;;aAM5C,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAC/C,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,EAC/C,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAChD,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ // From https://github.com/secretkeylabs/sats-connect-core/
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.getWalletTypeRequestMessageSchema = exports.getWalletTypeResultSchema = exports.getWalletTypeParamsSchema = exports.getWalletTypeMethodName = exports.renouncePermissionsRequestMessageSchema = exports.renouncePermissionsResultSchema = exports.renouncePermissionsParamsSchema = exports.renouncePermissionsMethodName = exports.requestPermissionsRequestMessageSchema = exports.requestPermissionsResultSchema = exports.requestPermissionsParamsSchema = exports.requestPermissionsMethodName = exports.walletTypeSchema = exports.walletTypes = void 0;
28
+ const v = __importStar(require("valibot"));
29
+ const types_advanced_js_1 = require("./types.advanced.js");
30
+ exports.walletTypes = ["software", "ledger"];
31
+ exports.walletTypeSchema = v.picklist(exports.walletTypes);
32
+ exports.requestPermissionsMethodName = "wallet_requestPermissions";
33
+ exports.requestPermissionsParamsSchema = v.undefined();
34
+ exports.requestPermissionsResultSchema = v.literal(true);
35
+ exports.requestPermissionsRequestMessageSchema = v.object({
36
+ ...types_advanced_js_1.rpcRequestMessageSchema.entries,
37
+ ...v.object({
38
+ method: v.literal(exports.requestPermissionsMethodName),
39
+ params: exports.requestPermissionsParamsSchema,
40
+ id: v.string(),
41
+ }).entries,
42
+ });
43
+ exports.renouncePermissionsMethodName = "wallet_renouncePermissions";
44
+ exports.renouncePermissionsParamsSchema = v.undefined();
45
+ exports.renouncePermissionsResultSchema = v.literal(true);
46
+ exports.renouncePermissionsRequestMessageSchema = v.object({
47
+ ...types_advanced_js_1.rpcRequestMessageSchema.entries,
48
+ ...v.object({
49
+ method: v.literal(exports.renouncePermissionsMethodName),
50
+ params: exports.renouncePermissionsParamsSchema,
51
+ id: v.string(),
52
+ }).entries,
53
+ });
54
+ exports.getWalletTypeMethodName = "wallet_getWalletType";
55
+ exports.getWalletTypeParamsSchema = v.nullish(v.null());
56
+ exports.getWalletTypeResultSchema = exports.walletTypeSchema;
57
+ exports.getWalletTypeRequestMessageSchema = v.object({
58
+ ...types_advanced_js_1.rpcRequestMessageSchema.entries,
59
+ ...v.object({
60
+ method: v.literal(exports.getWalletTypeMethodName),
61
+ id: v.string(),
62
+ }).entries,
63
+ });
@@ -0,0 +1,47 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { Address, BtcProvider } from "./advancedBarrel.js";
3
+ /**
4
+ * Class representing a Bitcoin signer that extends SignerBtc
5
+ * @public
6
+ */
7
+ export declare class Signer extends ccc.SignerBtc {
8
+ readonly provider: BtcProvider;
9
+ private readonly preferredNetworks;
10
+ private addressCache;
11
+ /**
12
+ * Creates an instance of Signer.
13
+ * @param client - The client instance.
14
+ * @param provider - The provider instance.
15
+ */
16
+ constructor(client: ccc.Client, provider: BtcProvider, preferredNetworks?: ccc.NetworkPreference[]);
17
+ assertAddress(): Promise<Address>;
18
+ /**
19
+ * Gets the Bitcoin account address.
20
+ * @returns A promise that resolves to the Bitcoin account address.
21
+ */
22
+ getBtcAccount(): Promise<string>;
23
+ /**
24
+ * Gets the Bitcoin public key.
25
+ * @returns A promise that resolves to the Bitcoin public key.
26
+ */
27
+ getBtcPublicKey(): Promise<ccc.Hex>;
28
+ /**
29
+ * Connects to the provider by requesting accounts.
30
+ * @returns A promise that resolves when the connection is established.
31
+ */
32
+ connect(): Promise<void>;
33
+ disconnect(): Promise<void>;
34
+ onReplaced(listener: () => void): () => void;
35
+ /**
36
+ * Checks if the signer is connected.
37
+ * @returns A promise that resolves to true if connected, false otherwise.
38
+ */
39
+ isConnected(): Promise<boolean>;
40
+ /**
41
+ * Signs a raw message with the Bitcoin account.
42
+ * @param message - The message to sign.
43
+ * @returns A promise that resolves to the signed message.
44
+ */
45
+ signMessageRaw(message: string | ccc.BytesLike): Promise<string>;
46
+ }
47
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EACL,OAAO,EAEP,WAAW,EAQZ,MAAM,qBAAqB,CAAC;AAqB7B;;;GAGG;AACH,qBAAa,MAAO,SAAQ,GAAG,CAAC,SAAS;aAUrB,QAAQ,EAAE,WAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAVpC,OAAO,CAAC,YAAY,CAA2C;IAE/D;;;;OAIG;gBAED,MAAM,EAAE,GAAG,CAAC,MAAM,EACF,QAAQ,EAAE,WAAW,EACpB,iBAAiB,GAAE,GAAG,CAAC,iBAAiB,EAWxD;IAKG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBvC;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAIzC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAc5C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAcvE"}
@@ -0,0 +1,150 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Signer = void 0;
27
+ const core_1 = require("@ckb-ccc/core");
28
+ const v = __importStar(require("valibot"));
29
+ const advancedBarrel_js_1 = require("./advancedBarrel.js");
30
+ async function checkResponse(response) {
31
+ const res = await response;
32
+ if (v.is(advancedBarrel_js_1.rpcErrorResponseMessageSchema, res)) {
33
+ throw res.error;
34
+ }
35
+ if (v.is(advancedBarrel_js_1.rpcSuccessResponseMessageSchema, res)) {
36
+ return res.result;
37
+ }
38
+ throw {
39
+ code: advancedBarrel_js_1.RpcErrorCode.INTERNAL_ERROR,
40
+ message: "Received unknown response from provider.",
41
+ data: res,
42
+ };
43
+ }
44
+ /**
45
+ * Class representing a Bitcoin signer that extends SignerBtc
46
+ * @public
47
+ */
48
+ class Signer extends core_1.ccc.SignerBtc {
49
+ /**
50
+ * Creates an instance of Signer.
51
+ * @param client - The client instance.
52
+ * @param provider - The provider instance.
53
+ */
54
+ constructor(client, provider, preferredNetworks = [
55
+ {
56
+ addressPrefix: "ckb",
57
+ signerType: core_1.ccc.SignerType.BTC,
58
+ network: "btc",
59
+ },
60
+ {
61
+ addressPrefix: "ckt",
62
+ signerType: core_1.ccc.SignerType.BTC,
63
+ network: "btcTestnet",
64
+ },
65
+ ]) {
66
+ super(client);
67
+ this.provider = provider;
68
+ this.preferredNetworks = preferredNetworks;
69
+ }
70
+ async assertAddress() {
71
+ this.addressCache =
72
+ this.addressCache ??
73
+ (async () => {
74
+ if (!(await this.isConnected())) {
75
+ return;
76
+ }
77
+ return (await checkResponse(this.provider.request("getAddresses", {
78
+ purposes: [advancedBarrel_js_1.AddressPurpose.Payment],
79
+ }))).addresses[0];
80
+ })();
81
+ const address = await this.addressCache;
82
+ if (address) {
83
+ return address;
84
+ }
85
+ throw Error("Not connected");
86
+ }
87
+ /**
88
+ * Gets the Bitcoin account address.
89
+ * @returns A promise that resolves to the Bitcoin account address.
90
+ */
91
+ async getBtcAccount() {
92
+ return (await this.assertAddress()).address;
93
+ }
94
+ /**
95
+ * Gets the Bitcoin public key.
96
+ * @returns A promise that resolves to the Bitcoin public key.
97
+ */
98
+ async getBtcPublicKey() {
99
+ return core_1.ccc.hexFrom((await this.assertAddress()).publicKey);
100
+ }
101
+ /**
102
+ * Connects to the provider by requesting accounts.
103
+ * @returns A promise that resolves when the connection is established.
104
+ */
105
+ async connect() {
106
+ if (await this.isConnected()) {
107
+ return;
108
+ }
109
+ await checkResponse(this.provider.request("wallet_requestPermissions", undefined));
110
+ }
111
+ async disconnect() {
112
+ this.addressCache = undefined;
113
+ }
114
+ onReplaced(listener) {
115
+ const stop = [];
116
+ const replacer = async () => {
117
+ listener();
118
+ stop[0]?.();
119
+ };
120
+ stop.push(this.provider.addListener("accountChange", replacer), this.provider.addListener("networkChange", replacer));
121
+ return stop[0];
122
+ }
123
+ /**
124
+ * Checks if the signer is connected.
125
+ * @returns A promise that resolves to true if connected, false otherwise.
126
+ */
127
+ async isConnected() {
128
+ try {
129
+ await checkResponse(this.provider.request("getBalance", undefined));
130
+ return true;
131
+ }
132
+ catch (error) {
133
+ return false;
134
+ }
135
+ }
136
+ /**
137
+ * Signs a raw message with the Bitcoin account.
138
+ * @param message - The message to sign.
139
+ * @returns A promise that resolves to the signed message.
140
+ */
141
+ async signMessageRaw(message) {
142
+ const challenge = typeof message === "string" ? message : core_1.ccc.hexFrom(message).slice(2);
143
+ return (await checkResponse(this.provider.request("signMessage", {
144
+ message: challenge,
145
+ address: (await this.assertAddress()).address,
146
+ protocol: advancedBarrel_js_1.MessageSigningProtocols.ECDSA,
147
+ }))).signature;
148
+ }
149
+ }
150
+ exports.Signer = Signer;
@@ -0,0 +1,13 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ /**
3
+ * Retrieves the Xverse signer if available.
4
+ * @public
5
+ *
6
+ * @param client - The client instance.
7
+ * @returns All Xverse Signer instances
8
+ */
9
+ export declare function getXverseSigners(client: ccc.Client, preferredNetworks?: ccc.NetworkPreference[]): {
10
+ wallet: ccc.Wallet;
11
+ signerInfo: ccc.SignerInfo;
12
+ }[];
13
+ //# sourceMappingURL=signersFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signersFactory.d.ts","sourceRoot":"","sources":["../src/signersFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAQpC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,iBAAiB,CAAC,EAAE,GAAG,CAAC,iBAAiB,EAAE,GAC1C;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAA;CAAE,EAAE,CA+BtD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getXverseSigners = void 0;
4
+ const signer_js_1 = require("./signer.js");
5
+ function getProviderById(providerId) {
6
+ return providerId?.split(".").reduce((acc, part) => acc?.[part], window);
7
+ }
8
+ /**
9
+ * Retrieves the Xverse signer if available.
10
+ * @public
11
+ *
12
+ * @param client - The client instance.
13
+ * @returns All Xverse Signer instances
14
+ */
15
+ function getXverseSigners(client, preferredNetworks) {
16
+ const windowRef = window;
17
+ const signers = (() => {
18
+ if (windowRef.btc_providers) {
19
+ return windowRef.btc_providers.map((provider) => ({
20
+ wallet: {
21
+ name: provider.name,
22
+ icon: provider.icon,
23
+ },
24
+ signerInfo: {
25
+ name: "BTC",
26
+ signer: new signer_js_1.Signer(client, getProviderById(provider.id), preferredNetworks),
27
+ },
28
+ }));
29
+ }
30
+ return [];
31
+ })();
32
+ return signers;
33
+ }
34
+ exports.getXverseSigners = getXverseSigners;