@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.
- package/CHANGELOG.md +7 -0
- package/README.md +51 -0
- package/dist/advanced.d.ts +2 -0
- package/dist/advanced.d.ts.map +1 -0
- package/dist/advanced.js +1 -0
- package/dist/advancedBarrel.d.ts +2 -0
- package/dist/advancedBarrel.d.ts.map +1 -0
- package/dist/advancedBarrel.js +1 -0
- package/dist/barrel.d.ts +3 -0
- package/dist/barrel.d.ts.map +1 -0
- package/dist/barrel.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/package.json +3 -0
- package/dist/sat-connect-core/advanced.d.ts +5 -0
- package/dist/sat-connect-core/advanced.d.ts.map +1 -0
- package/dist/sat-connect-core/advanced.js +4 -0
- package/dist/sat-connect-core/btcMethods.advanced.d.ts +280 -0
- package/dist/sat-connect-core/btcMethods.advanced.d.ts.map +1 -0
- package/dist/sat-connect-core/btcMethods.advanced.js +179 -0
- package/dist/sat-connect-core/provider.advanced.d.ts +48 -0
- package/dist/sat-connect-core/provider.advanced.d.ts.map +1 -0
- package/dist/sat-connect-core/provider.advanced.js +21 -0
- package/dist/sat-connect-core/requests.advanced.d.ts +21 -0
- package/dist/sat-connect-core/requests.advanced.d.ts.map +1 -0
- package/dist/sat-connect-core/requests.advanced.js +1 -0
- package/dist/sat-connect-core/types.advanced.d.ts +124 -0
- package/dist/sat-connect-core/types.advanced.d.ts.map +1 -0
- package/dist/sat-connect-core/types.advanced.js +79 -0
- package/dist/sat-connect-core/walletMethods.advanced.d.ts +36 -0
- package/dist/sat-connect-core/walletMethods.advanced.d.ts.map +1 -0
- package/dist/sat-connect-core/walletMethods.advanced.js +37 -0
- package/dist/signer.d.ts +47 -0
- package/dist/signer.d.ts.map +1 -0
- package/dist/signer.js +123 -0
- package/dist/signersFactory.d.ts +13 -0
- package/dist/signersFactory.d.ts.map +1 -0
- package/dist/signersFactory.js +30 -0
- package/dist.commonjs/advanced.d.ts +2 -0
- package/dist.commonjs/advanced.d.ts.map +1 -0
- package/dist.commonjs/advanced.js +27 -0
- package/dist.commonjs/advancedBarrel.d.ts +2 -0
- package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
- package/dist.commonjs/advancedBarrel.js +17 -0
- package/dist.commonjs/barrel.d.ts +3 -0
- package/dist.commonjs/barrel.d.ts.map +1 -0
- package/dist.commonjs/barrel.js +18 -0
- package/dist.commonjs/index.d.ts +2 -0
- package/dist.commonjs/index.d.ts.map +1 -0
- package/dist.commonjs/index.js +27 -0
- package/dist.commonjs/package.json +3 -0
- package/dist.commonjs/sat-connect-core/advanced.d.ts +5 -0
- package/dist.commonjs/sat-connect-core/advanced.d.ts.map +1 -0
- package/dist.commonjs/sat-connect-core/advanced.js +20 -0
- package/dist.commonjs/sat-connect-core/btcMethods.advanced.d.ts +280 -0
- package/dist.commonjs/sat-connect-core/btcMethods.advanced.d.ts.map +1 -0
- package/dist.commonjs/sat-connect-core/btcMethods.advanced.js +205 -0
- package/dist.commonjs/sat-connect-core/provider.advanced.d.ts +48 -0
- package/dist.commonjs/sat-connect-core/provider.advanced.d.ts.map +1 -0
- package/dist.commonjs/sat-connect-core/provider.advanced.js +47 -0
- package/dist.commonjs/sat-connect-core/requests.advanced.d.ts +21 -0
- package/dist.commonjs/sat-connect-core/requests.advanced.d.ts.map +1 -0
- package/dist.commonjs/sat-connect-core/requests.advanced.js +2 -0
- package/dist.commonjs/sat-connect-core/types.advanced.d.ts +124 -0
- package/dist.commonjs/sat-connect-core/types.advanced.d.ts.map +1 -0
- package/dist.commonjs/sat-connect-core/types.advanced.js +105 -0
- package/dist.commonjs/sat-connect-core/walletMethods.advanced.d.ts +36 -0
- package/dist.commonjs/sat-connect-core/walletMethods.advanced.d.ts.map +1 -0
- package/dist.commonjs/sat-connect-core/walletMethods.advanced.js +63 -0
- package/dist.commonjs/signer.d.ts +47 -0
- package/dist.commonjs/signer.d.ts.map +1 -0
- package/dist.commonjs/signer.js +150 -0
- package/dist.commonjs/signersFactory.d.ts +13 -0
- package/dist.commonjs/signersFactory.d.ts.map +1 -0
- package/dist.commonjs/signersFactory.js +34 -0
- package/package.json +57 -0
- package/src/advanced.ts +1 -0
- package/src/advancedBarrel.ts +1 -0
- package/src/barrel.ts +2 -0
- package/src/index.ts +1 -0
- package/src/sat-connect-core/advanced.ts +4 -0
- package/src/sat-connect-core/btcMethods.advanced.ts +304 -0
- package/src/sat-connect-core/provider.advanced.ts +61 -0
- package/src/sat-connect-core/requests.advanced.ts +41 -0
- package/src/sat-connect-core/types.advanced.ts +159 -0
- package/src/sat-connect-core/walletMethods.advanced.ts +58 -0
- package/src/signer.ts +170 -0
- package/src/signersFactory.ts +50 -0
- package/typedoc.json +6 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
// accountChange
|
|
3
|
+
export const accountChangeEventName = "accountChange";
|
|
4
|
+
export const accountChangeSchema = v.object({
|
|
5
|
+
type: v.literal(accountChangeEventName),
|
|
6
|
+
});
|
|
7
|
+
// networkChange
|
|
8
|
+
export const networkChangeEventName = "networkChange";
|
|
9
|
+
export const networkChangeSchema = v.object({
|
|
10
|
+
type: v.literal(networkChangeEventName),
|
|
11
|
+
});
|
|
12
|
+
// disconnect
|
|
13
|
+
export const disconnectEventName = "disconnect";
|
|
14
|
+
export const disconnectSchema = v.object({
|
|
15
|
+
type: v.literal(disconnectEventName),
|
|
16
|
+
});
|
|
17
|
+
export const walletEventSchema = v.variant("type", [
|
|
18
|
+
accountChangeSchema,
|
|
19
|
+
networkChangeSchema,
|
|
20
|
+
disconnectSchema,
|
|
21
|
+
]);
|
|
@@ -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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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,79 @@
|
|
|
1
|
+
// From https://github.com/secretkeylabs/sats-connect-core/
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
export var BitcoinNetworkType;
|
|
4
|
+
(function (BitcoinNetworkType) {
|
|
5
|
+
BitcoinNetworkType["Mainnet"] = "Mainnet";
|
|
6
|
+
BitcoinNetworkType["Testnet"] = "Testnet";
|
|
7
|
+
BitcoinNetworkType["Signet"] = "Signet";
|
|
8
|
+
})(BitcoinNetworkType || (BitcoinNetworkType = {}));
|
|
9
|
+
// RPC Request and Response types
|
|
10
|
+
export const RpcIdSchema = v.optional(v.union([v.string(), v.number(), v.null()]));
|
|
11
|
+
export const rpcRequestMessageSchema = v.object({
|
|
12
|
+
jsonrpc: v.literal("2.0"),
|
|
13
|
+
method: v.string(),
|
|
14
|
+
params: v.optional(v.union([
|
|
15
|
+
v.array(v.unknown()),
|
|
16
|
+
v.looseObject({}),
|
|
17
|
+
// Note: This is to support current incorrect usage of RPC 2.0. Params need
|
|
18
|
+
// to be either an array or an object when provided. Changing this now would
|
|
19
|
+
// be a breaking change, so accepting null values for now. Tracking in
|
|
20
|
+
// https://linear.app/xverseapp/issue/ENG-4538.
|
|
21
|
+
v.null(),
|
|
22
|
+
])),
|
|
23
|
+
id: RpcIdSchema,
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* @enum {number} RpcErrorCode
|
|
27
|
+
* @description JSON-RPC error codes
|
|
28
|
+
* @see https://www.jsonrpc.org/specification#error_object
|
|
29
|
+
*/
|
|
30
|
+
export var RpcErrorCode;
|
|
31
|
+
(function (RpcErrorCode) {
|
|
32
|
+
/**
|
|
33
|
+
* Parse error Invalid JSON
|
|
34
|
+
**/
|
|
35
|
+
RpcErrorCode[RpcErrorCode["PARSE_ERROR"] = -32700] = "PARSE_ERROR";
|
|
36
|
+
/**
|
|
37
|
+
* The JSON sent is not a valid Request object.
|
|
38
|
+
**/
|
|
39
|
+
RpcErrorCode[RpcErrorCode["INVALID_REQUEST"] = -32600] = "INVALID_REQUEST";
|
|
40
|
+
/**
|
|
41
|
+
* The method does not exist/is not available.
|
|
42
|
+
**/
|
|
43
|
+
RpcErrorCode[RpcErrorCode["METHOD_NOT_FOUND"] = -32601] = "METHOD_NOT_FOUND";
|
|
44
|
+
/**
|
|
45
|
+
* Invalid method parameter(s).
|
|
46
|
+
*/
|
|
47
|
+
RpcErrorCode[RpcErrorCode["INVALID_PARAMS"] = -32602] = "INVALID_PARAMS";
|
|
48
|
+
/**
|
|
49
|
+
* Internal JSON-RPC error.
|
|
50
|
+
* This is a generic error, used when the server encounters an error in performing the request.
|
|
51
|
+
**/
|
|
52
|
+
RpcErrorCode[RpcErrorCode["INTERNAL_ERROR"] = -32603] = "INTERNAL_ERROR";
|
|
53
|
+
/**
|
|
54
|
+
* user rejected/canceled the request
|
|
55
|
+
*/
|
|
56
|
+
RpcErrorCode[RpcErrorCode["USER_REJECTION"] = -32000] = "USER_REJECTION";
|
|
57
|
+
/**
|
|
58
|
+
* method is not supported for the address provided
|
|
59
|
+
*/
|
|
60
|
+
RpcErrorCode[RpcErrorCode["METHOD_NOT_SUPPORTED"] = -32001] = "METHOD_NOT_SUPPORTED";
|
|
61
|
+
/**
|
|
62
|
+
* The client does not have permission to access the requested resource.
|
|
63
|
+
*/
|
|
64
|
+
RpcErrorCode[RpcErrorCode["ACCESS_DENIED"] = -32002] = "ACCESS_DENIED";
|
|
65
|
+
})(RpcErrorCode || (RpcErrorCode = {}));
|
|
66
|
+
export const rpcSuccessResponseMessageSchema = v.object({
|
|
67
|
+
jsonrpc: v.literal("2.0"),
|
|
68
|
+
result: v.nonOptional(v.unknown()),
|
|
69
|
+
id: RpcIdSchema,
|
|
70
|
+
});
|
|
71
|
+
export const rpcErrorResponseMessageSchema = v.object({
|
|
72
|
+
jsonrpc: v.literal("2.0"),
|
|
73
|
+
error: v.nonOptional(v.unknown()),
|
|
74
|
+
id: RpcIdSchema,
|
|
75
|
+
});
|
|
76
|
+
export const rpcResponseMessageSchema = v.union([
|
|
77
|
+
rpcSuccessResponseMessageSchema,
|
|
78
|
+
rpcErrorResponseMessageSchema,
|
|
79
|
+
]);
|
|
@@ -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,37 @@
|
|
|
1
|
+
// From https://github.com/secretkeylabs/sats-connect-core/
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import { rpcRequestMessageSchema, } from "./types.advanced.js";
|
|
4
|
+
export const walletTypes = ["software", "ledger"];
|
|
5
|
+
export const walletTypeSchema = v.picklist(walletTypes);
|
|
6
|
+
export const requestPermissionsMethodName = "wallet_requestPermissions";
|
|
7
|
+
export const requestPermissionsParamsSchema = v.undefined();
|
|
8
|
+
export const requestPermissionsResultSchema = v.literal(true);
|
|
9
|
+
export const requestPermissionsRequestMessageSchema = v.object({
|
|
10
|
+
...rpcRequestMessageSchema.entries,
|
|
11
|
+
...v.object({
|
|
12
|
+
method: v.literal(requestPermissionsMethodName),
|
|
13
|
+
params: requestPermissionsParamsSchema,
|
|
14
|
+
id: v.string(),
|
|
15
|
+
}).entries,
|
|
16
|
+
});
|
|
17
|
+
export const renouncePermissionsMethodName = "wallet_renouncePermissions";
|
|
18
|
+
export const renouncePermissionsParamsSchema = v.undefined();
|
|
19
|
+
export const renouncePermissionsResultSchema = v.literal(true);
|
|
20
|
+
export const renouncePermissionsRequestMessageSchema = v.object({
|
|
21
|
+
...rpcRequestMessageSchema.entries,
|
|
22
|
+
...v.object({
|
|
23
|
+
method: v.literal(renouncePermissionsMethodName),
|
|
24
|
+
params: renouncePermissionsParamsSchema,
|
|
25
|
+
id: v.string(),
|
|
26
|
+
}).entries,
|
|
27
|
+
});
|
|
28
|
+
export const getWalletTypeMethodName = "wallet_getWalletType";
|
|
29
|
+
export const getWalletTypeParamsSchema = v.nullish(v.null());
|
|
30
|
+
export const getWalletTypeResultSchema = walletTypeSchema;
|
|
31
|
+
export const getWalletTypeRequestMessageSchema = v.object({
|
|
32
|
+
...rpcRequestMessageSchema.entries,
|
|
33
|
+
...v.object({
|
|
34
|
+
method: v.literal(getWalletTypeMethodName),
|
|
35
|
+
id: v.string(),
|
|
36
|
+
}).entries,
|
|
37
|
+
});
|
package/dist/signer.d.ts
ADDED
|
@@ -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"}
|
package/dist/signer.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { ccc } from "@ckb-ccc/core";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import { AddressPurpose, MessageSigningProtocols, RpcErrorCode, rpcErrorResponseMessageSchema, rpcSuccessResponseMessageSchema, } from "./advancedBarrel.js";
|
|
4
|
+
async function checkResponse(response) {
|
|
5
|
+
const res = await response;
|
|
6
|
+
if (v.is(rpcErrorResponseMessageSchema, res)) {
|
|
7
|
+
throw res.error;
|
|
8
|
+
}
|
|
9
|
+
if (v.is(rpcSuccessResponseMessageSchema, res)) {
|
|
10
|
+
return res.result;
|
|
11
|
+
}
|
|
12
|
+
throw {
|
|
13
|
+
code: RpcErrorCode.INTERNAL_ERROR,
|
|
14
|
+
message: "Received unknown response from provider.",
|
|
15
|
+
data: res,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Class representing a Bitcoin signer that extends SignerBtc
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export class Signer extends ccc.SignerBtc {
|
|
23
|
+
/**
|
|
24
|
+
* Creates an instance of Signer.
|
|
25
|
+
* @param client - The client instance.
|
|
26
|
+
* @param provider - The provider instance.
|
|
27
|
+
*/
|
|
28
|
+
constructor(client, provider, preferredNetworks = [
|
|
29
|
+
{
|
|
30
|
+
addressPrefix: "ckb",
|
|
31
|
+
signerType: ccc.SignerType.BTC,
|
|
32
|
+
network: "btc",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
addressPrefix: "ckt",
|
|
36
|
+
signerType: ccc.SignerType.BTC,
|
|
37
|
+
network: "btcTestnet",
|
|
38
|
+
},
|
|
39
|
+
]) {
|
|
40
|
+
super(client);
|
|
41
|
+
this.provider = provider;
|
|
42
|
+
this.preferredNetworks = preferredNetworks;
|
|
43
|
+
}
|
|
44
|
+
async assertAddress() {
|
|
45
|
+
this.addressCache =
|
|
46
|
+
this.addressCache ??
|
|
47
|
+
(async () => {
|
|
48
|
+
if (!(await this.isConnected())) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
return (await checkResponse(this.provider.request("getAddresses", {
|
|
52
|
+
purposes: [AddressPurpose.Payment],
|
|
53
|
+
}))).addresses[0];
|
|
54
|
+
})();
|
|
55
|
+
const address = await this.addressCache;
|
|
56
|
+
if (address) {
|
|
57
|
+
return address;
|
|
58
|
+
}
|
|
59
|
+
throw Error("Not connected");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Gets the Bitcoin account address.
|
|
63
|
+
* @returns A promise that resolves to the Bitcoin account address.
|
|
64
|
+
*/
|
|
65
|
+
async getBtcAccount() {
|
|
66
|
+
return (await this.assertAddress()).address;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Gets the Bitcoin public key.
|
|
70
|
+
* @returns A promise that resolves to the Bitcoin public key.
|
|
71
|
+
*/
|
|
72
|
+
async getBtcPublicKey() {
|
|
73
|
+
return ccc.hexFrom((await this.assertAddress()).publicKey);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Connects to the provider by requesting accounts.
|
|
77
|
+
* @returns A promise that resolves when the connection is established.
|
|
78
|
+
*/
|
|
79
|
+
async connect() {
|
|
80
|
+
if (await this.isConnected()) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
await checkResponse(this.provider.request("wallet_requestPermissions", undefined));
|
|
84
|
+
}
|
|
85
|
+
async disconnect() {
|
|
86
|
+
this.addressCache = undefined;
|
|
87
|
+
}
|
|
88
|
+
onReplaced(listener) {
|
|
89
|
+
const stop = [];
|
|
90
|
+
const replacer = async () => {
|
|
91
|
+
listener();
|
|
92
|
+
stop[0]?.();
|
|
93
|
+
};
|
|
94
|
+
stop.push(this.provider.addListener("accountChange", replacer), this.provider.addListener("networkChange", replacer));
|
|
95
|
+
return stop[0];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Checks if the signer is connected.
|
|
99
|
+
* @returns A promise that resolves to true if connected, false otherwise.
|
|
100
|
+
*/
|
|
101
|
+
async isConnected() {
|
|
102
|
+
try {
|
|
103
|
+
await checkResponse(this.provider.request("getBalance", undefined));
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Signs a raw message with the Bitcoin account.
|
|
112
|
+
* @param message - The message to sign.
|
|
113
|
+
* @returns A promise that resolves to the signed message.
|
|
114
|
+
*/
|
|
115
|
+
async signMessageRaw(message) {
|
|
116
|
+
const challenge = typeof message === "string" ? message : ccc.hexFrom(message).slice(2);
|
|
117
|
+
return (await checkResponse(this.provider.request("signMessage", {
|
|
118
|
+
message: challenge,
|
|
119
|
+
address: (await this.assertAddress()).address,
|
|
120
|
+
protocol: MessageSigningProtocols.ECDSA,
|
|
121
|
+
}))).signature;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -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,30 @@
|
|
|
1
|
+
import { Signer } from "./signer.js";
|
|
2
|
+
function getProviderById(providerId) {
|
|
3
|
+
return providerId?.split(".").reduce((acc, part) => acc?.[part], window);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Retrieves the Xverse signer if available.
|
|
7
|
+
* @public
|
|
8
|
+
*
|
|
9
|
+
* @param client - The client instance.
|
|
10
|
+
* @returns All Xverse Signer instances
|
|
11
|
+
*/
|
|
12
|
+
export function getXverseSigners(client, preferredNetworks) {
|
|
13
|
+
const windowRef = window;
|
|
14
|
+
const signers = (() => {
|
|
15
|
+
if (windowRef.btc_providers) {
|
|
16
|
+
return windowRef.btc_providers.map((provider) => ({
|
|
17
|
+
wallet: {
|
|
18
|
+
name: provider.name,
|
|
19
|
+
icon: provider.icon,
|
|
20
|
+
},
|
|
21
|
+
signerInfo: {
|
|
22
|
+
name: "BTC",
|
|
23
|
+
signer: new Signer(client, getProviderById(provider.id), preferredNetworks),
|
|
24
|
+
},
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
return [];
|
|
28
|
+
})();
|
|
29
|
+
return signers;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../src/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC"}
|
|
@@ -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 __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.XverseA = void 0;
|
|
27
|
+
exports.XverseA = __importStar(require("./advancedBarrel.js"));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advancedBarrel.d.ts","sourceRoot":"","sources":["../src/advancedBarrel.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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("./sat-connect-core/advanced.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../src/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./signer.js"), exports);
|
|
18
|
+
__exportStar(require("./signersFactory.js"), exports);
|