@dynamic-labs-wallet/browser-wallet-client 0.0.0-beta.3 → 0.0.1
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/index.cjs.js +504 -207
- package/index.esm.js +494 -185
- package/package.json +7 -6
- package/src/client/client.d.ts +37 -87
- package/src/client/client.d.ts.map +1 -1
- package/src/client/iframeManager/IframeManager.d.ts +90 -0
- package/src/client/iframeManager/IframeManager.d.ts.map +1 -0
- package/src/client/iframeManager/index.d.ts +2 -0
- package/src/client/iframeManager/index.d.ts.map +1 -0
- package/src/client/index.d.ts +1 -0
- package/src/client/index.d.ts.map +1 -1
- package/src/index.d.ts +0 -1
- package/src/index.d.ts.map +1 -1
- package/src/services/iframeMessageHandler.d.ts +9 -8
- package/src/services/iframeMessageHandler.d.ts.map +1 -1
- package/internal/core/bip340.d.ts +0 -22
- package/internal/core/bip340.js +0 -1
- package/internal/core/common.d.ts +0 -1
- package/internal/core/common.js +0 -1
- package/internal/core/ecdsa.d.ts +0 -23
- package/internal/core/ecdsa.js +0 -1
- package/internal/core/ed25519.d.ts +0 -22
- package/internal/core/ed25519.js +0 -1
- package/internal/core/index.d.ts +0 -6
- package/internal/core/index.js +0 -1
- package/internal/core/native.d.ts +0 -103
- package/internal/core/native.js +0 -1
- package/internal/core/types.d.ts +0 -58
- package/internal/core/types.js +0 -1
- package/internal/web/generated/libmpc_executor.d.ts +0 -130
- package/internal/web/generated/libmpc_executor.js +0 -2
- package/internal/web/generated/libmpc_executor_bg.wasm +0 -0
- package/internal/web/generated/libmpc_executor_bg.wasm.d.ts +0 -64
- package/internal/web/index.d.ts +0 -11
- package/internal/web/index.js +0 -1
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/browser-wallet-client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"dependencies": {
|
|
6
|
-
"@dynamic-labs-wallet/core": "0.0.
|
|
7
|
-
"@dynamic-labs/
|
|
8
|
-
"@dynamic-labs/
|
|
9
|
-
"
|
|
7
|
+
"@dynamic-labs-wallet/core": "0.0.1",
|
|
8
|
+
"@dynamic-labs/logger": "^4.25.3",
|
|
9
|
+
"@dynamic-labs/message-transport": "^4.25.3",
|
|
10
|
+
"uuid": "11.1.0"
|
|
10
11
|
},
|
|
11
12
|
"nx": {
|
|
12
13
|
"sourceRoot": "packages/browser-wallet-client/src",
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
"types": "./index.esm.d.ts",
|
|
26
27
|
"import": "./index.esm.js",
|
|
27
28
|
"require": "./index.cjs.js",
|
|
28
|
-
"default": "./index.
|
|
29
|
+
"default": "./index.esm.js"
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
}
|
package/src/client/client.d.ts
CHANGED
|
@@ -1,83 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
protected chainName: string;
|
|
7
|
-
protected logger: import("@dynamic-labs/logger").Logger;
|
|
8
|
-
instanceId: string | null;
|
|
9
|
-
iframeDomain: string | null;
|
|
10
|
-
environmentId: string;
|
|
11
|
-
authToken: string;
|
|
12
|
-
baseApiUrl: string;
|
|
13
|
-
baseMPCRelayApiUrl: string;
|
|
14
|
-
protected messageTransport: MessageTransportWithDefaultOrigin | null;
|
|
15
|
-
protected iframeMessageHandler: iframeMessageHandler | null;
|
|
16
|
-
private iframeLoadPromise;
|
|
17
|
-
protected iframe: HTMLIFrameElement | null;
|
|
18
|
-
private debug;
|
|
19
|
-
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, debug, }: {
|
|
1
|
+
import type { BackupKeySharesToGoogleDriveRequest, CreateWalletAccountRequest, CreateWalletAccountResponse, DelegateKeySharesRequest, ExportClientKeysharesRequest, GetWalletResponse, ImportPrivateKeyRequest, IsPasswordEncryptedRequest, OfflineExportPrivateKeyResponse, RefreshWalletAccountSharesRequest, RequiresPasswordForOperationRequest, ReshareRequest, SignMessageRequestBrowser, SignRawMessageRequest, SignTransactionRequest, SignTypedDataRequest, UpdatePasswordRequest, VerifyPasswordRequest } from '@dynamic-labs-wallet/core';
|
|
2
|
+
import { AuthMode, WalletOperation } from '@dynamic-labs-wallet/core';
|
|
3
|
+
import { IframeManager } from './iframeManager';
|
|
4
|
+
export declare class DynamicWalletClient extends IframeManager {
|
|
5
|
+
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, debug, authMode, }: {
|
|
20
6
|
environmentId: string;
|
|
21
7
|
authToken: string;
|
|
22
8
|
baseApiUrl: string;
|
|
23
9
|
baseMPCRelayApiUrl: string;
|
|
24
10
|
chainName: string;
|
|
11
|
+
sdkVersion?: string;
|
|
25
12
|
debug?: boolean;
|
|
13
|
+
authMode?: AuthMode;
|
|
26
14
|
});
|
|
27
|
-
initialize(): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* this is called on class construction time
|
|
30
|
-
* @returns {Promise<void>} that resolves when the iframe is loaded and the message transport and iframe storage are initialized
|
|
31
|
-
*/
|
|
32
|
-
initializeIframeCommunication(): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* initialize the iframe communication by awaiting the iframe load promise
|
|
35
|
-
* and initializing the message transport and iframe storage after iframe is successfully loaded
|
|
36
|
-
*/
|
|
37
|
-
private doInitializeIframeCommunication;
|
|
38
|
-
/**
|
|
39
|
-
* initialize the message transport after iframe is successfully loaded
|
|
40
|
-
*/
|
|
41
|
-
private initializeMessageTransport;
|
|
42
|
-
/**
|
|
43
|
-
* securely exchange the auth token with iframe securely
|
|
44
|
-
*/
|
|
45
|
-
private initAuthToken;
|
|
46
|
-
private loadIframe;
|
|
47
|
-
/**
|
|
48
|
-
* Load an iframe for a specific container
|
|
49
|
-
* @param {HTMLElement} container - The container to which the iframe will be attached
|
|
50
|
-
* @returns {Promise<HTMLIFrameElement>} that resolves when the iframe is loaded
|
|
51
|
-
*/
|
|
52
|
-
private loadIframeForContainer;
|
|
53
|
-
/**
|
|
54
|
-
* Initializes the iframe display for a specific container.
|
|
55
|
-
*
|
|
56
|
-
* @param {HTMLElement} container - The container to which the iframe will be attached.
|
|
57
|
-
* @returns:
|
|
58
|
-
* iframe: HTMLIFrameElement;
|
|
59
|
-
* iframeDisplay: IframeDisplayChannelAdapter;
|
|
60
|
-
* cleanup: () => void;
|
|
61
|
-
*/
|
|
62
|
-
initializeIframeDisplayForContainer({ container, }: {
|
|
63
|
-
container: HTMLElement;
|
|
64
|
-
}): Promise<{
|
|
65
|
-
iframe: HTMLIFrameElement;
|
|
66
|
-
iframeDisplay: iframeMessageHandler;
|
|
67
|
-
cleanup: () => void;
|
|
68
|
-
}>;
|
|
69
15
|
getWallets(): Promise<GetWalletResponse[]>;
|
|
70
|
-
getWallet({ accountAddress, walletOperation, }: {
|
|
16
|
+
getWallet({ accountAddress, walletOperation, signedSessionId, authToken, }: {
|
|
71
17
|
accountAddress: string;
|
|
72
|
-
walletOperation
|
|
18
|
+
walletOperation?: WalletOperation;
|
|
19
|
+
signedSessionId: string;
|
|
20
|
+
authToken?: string;
|
|
73
21
|
}): Promise<GetWalletResponse>;
|
|
74
|
-
createWalletAccount({ thresholdSignatureScheme, password, }:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}): Promise<
|
|
78
|
-
|
|
79
|
-
isPasswordEncrypted({ accountAddress, }: IsPasswordEncryptedRequest): Promise<boolean>;
|
|
80
|
-
signMessage({ message, accountAddress, password, }: SignMessageRequest): Promise<string>;
|
|
22
|
+
createWalletAccount({ thresholdSignatureScheme, password, signedSessionId, authToken, }: Omit<CreateWalletAccountRequest, 'chainName'>): Promise<CreateWalletAccountResponse>;
|
|
23
|
+
requiresPasswordForOperation({ accountAddress, walletOperation, authToken, }: Omit<RequiresPasswordForOperationRequest, 'chainName'>): Promise<boolean>;
|
|
24
|
+
isPasswordEncrypted({ accountAddress, authToken, }: Omit<IsPasswordEncryptedRequest, 'chainName'>): Promise<boolean>;
|
|
25
|
+
signMessage({ message, accountAddress, password, signedSessionId, authToken, mfaToken, context, }: Omit<SignMessageRequestBrowser, 'chainName'>): Promise<string>;
|
|
26
|
+
signRawMessage({ message, accountAddress, password, signedSessionId, authToken, mfaToken, context, }: Omit<SignRawMessageRequest, 'chainName'>): Promise<string>;
|
|
81
27
|
/**
|
|
82
28
|
* Signs a transaction and returns the signature, @transaction is a string of the serialized transaction
|
|
83
29
|
* EVM:
|
|
@@ -89,32 +35,36 @@ export declare class DynamicWalletClient {
|
|
|
89
35
|
* const txBytes = await txb.build({ client });
|
|
90
36
|
* const txString = Buffer.from(txBytes).toString("hex");
|
|
91
37
|
*/
|
|
92
|
-
signTransaction({ senderAddress, transaction, password, }:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
backupKeySharesToGoogleDrive(request: BackupKeySharesToGoogleDriveRequest): Promise<void>;
|
|
98
|
-
restoreBackupFromGoogleDrive({ accountAddress, oauthAccountId, displayContainer, name, password, }: {
|
|
38
|
+
signTransaction({ senderAddress, transaction, password, signedSessionId, authToken, mfaToken, chainId, }: Omit<SignTransactionRequest, 'chainName'>): Promise<string>;
|
|
39
|
+
signTypedData({ accountAddress, typedData, password, signedSessionId, authToken, mfaToken, }: Omit<SignTypedDataRequest, 'chainName'>): Promise<string>;
|
|
40
|
+
backupKeySharesToGoogleDrive({ accountAddress, password, signedSessionId, authToken, }: Omit<BackupKeySharesToGoogleDriveRequest, 'chainName'>): Promise<void>;
|
|
41
|
+
delegateKeyShares({ accountAddress, password, signedSessionId, authToken, mfaToken, }: Omit<DelegateKeySharesRequest, 'chainName'>): Promise<void>;
|
|
42
|
+
restoreBackupFromGoogleDrive({ accountAddress, displayContainer, password, signedSessionId, authToken, }: {
|
|
99
43
|
accountAddress: string;
|
|
100
|
-
oauthAccountId: string;
|
|
101
44
|
displayContainer: HTMLElement;
|
|
102
|
-
name?: string;
|
|
103
45
|
password?: string;
|
|
46
|
+
signedSessionId: string;
|
|
47
|
+
authToken?: string;
|
|
104
48
|
}): Promise<void>;
|
|
105
|
-
refreshWalletAccountShares(
|
|
106
|
-
reshare(
|
|
107
|
-
exportPrivateKey({ accountAddress, displayContainer, password, }: {
|
|
49
|
+
refreshWalletAccountShares({ accountAddress, password, signedSessionId, authToken, mfaToken, }: Omit<RefreshWalletAccountSharesRequest, 'chainName'>): Promise<void>;
|
|
50
|
+
reshare({ accountAddress, oldThresholdSignatureScheme, newThresholdSignatureScheme, password, signedSessionId, authToken, mfaToken, }: Omit<ReshareRequest, 'chainName'>): Promise<void>;
|
|
51
|
+
exportPrivateKey({ accountAddress, displayContainer, password, signedSessionId, authToken, mfaToken, }: {
|
|
108
52
|
accountAddress: string;
|
|
109
53
|
displayContainer: HTMLElement;
|
|
110
54
|
password?: string;
|
|
55
|
+
signedSessionId: string;
|
|
56
|
+
authToken?: string;
|
|
57
|
+
mfaToken?: string;
|
|
111
58
|
}): Promise<void>;
|
|
112
|
-
verifyPassword({ accountAddress, password, walletOperation, }: VerifyPasswordRequest): Promise<void>;
|
|
113
|
-
updatePassword({ accountAddress, existingPassword, newPassword, }: UpdatePasswordRequest): Promise<void>;
|
|
114
|
-
importPrivateKey({ privateKey,
|
|
115
|
-
exportClientKeyshares({ accountAddress, password, }: ExportClientKeysharesRequest): Promise<void>;
|
|
59
|
+
verifyPassword({ accountAddress, password, walletOperation, signedSessionId, authToken, }: Omit<VerifyPasswordRequest, 'chainName'>): Promise<void>;
|
|
60
|
+
updatePassword({ accountAddress, existingPassword, newPassword, signedSessionId, authToken, }: Omit<UpdatePasswordRequest, 'chainName'>): Promise<void>;
|
|
61
|
+
importPrivateKey({ privateKey, thresholdSignatureScheme, signedSessionId, authToken, }: Omit<ImportPrivateKeyRequest, 'chainName'>): Promise<CreateWalletAccountResponse>;
|
|
62
|
+
exportClientKeyshares({ accountAddress, password, signedSessionId, authToken, }: Omit<ExportClientKeysharesRequest, 'chainName'>): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* keyShares is stringified list of EcdsaKeygenResult[] and Ed25519KeygenResult[]
|
|
65
|
+
*/
|
|
116
66
|
offlineExportPrivateKey({ keyShares, derivationPath, }: {
|
|
117
|
-
keyShares:
|
|
67
|
+
keyShares: string[];
|
|
118
68
|
derivationPath?: string;
|
|
119
69
|
}): Promise<OfflineExportPrivateKeyResponse>;
|
|
120
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { AuthMode } from '@dynamic-labs-wallet/core';
|
|
2
|
+
import { type MessageTransportWithDefaultOrigin } from '@dynamic-labs/message-transport';
|
|
3
|
+
import { iframeMessageHandler } from '../../services/iframeMessageHandler';
|
|
4
|
+
export declare class IframeManager {
|
|
5
|
+
protected chainName: string;
|
|
6
|
+
protected logger: import("@dynamic-labs/logger").Logger;
|
|
7
|
+
instanceId: string | null;
|
|
8
|
+
iframeDomain: string | null;
|
|
9
|
+
environmentId: string;
|
|
10
|
+
private readonly authToken;
|
|
11
|
+
private readonly authMode;
|
|
12
|
+
baseApiUrl: string;
|
|
13
|
+
baseMPCRelayApiUrl: string;
|
|
14
|
+
protected messageTransport: MessageTransportWithDefaultOrigin | null;
|
|
15
|
+
protected iframeMessageHandler: iframeMessageHandler | null;
|
|
16
|
+
private static iframeLoadPromise;
|
|
17
|
+
protected iframe: HTMLIFrameElement | null;
|
|
18
|
+
private readonly debug;
|
|
19
|
+
static iframeLoadTimeout: number;
|
|
20
|
+
private static iframeLoadAttempts;
|
|
21
|
+
private static readonly maxRetryAttempts;
|
|
22
|
+
private static sharedIframe;
|
|
23
|
+
private static iframeInstanceCount;
|
|
24
|
+
sdkVersion: string | undefined;
|
|
25
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode, authToken, debug, }: {
|
|
26
|
+
environmentId: string;
|
|
27
|
+
authMode: AuthMode;
|
|
28
|
+
authToken?: string;
|
|
29
|
+
baseApiUrl: string;
|
|
30
|
+
baseMPCRelayApiUrl: string;
|
|
31
|
+
chainName: string;
|
|
32
|
+
sdkVersion?: string;
|
|
33
|
+
debug?: boolean;
|
|
34
|
+
});
|
|
35
|
+
initialize(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* this is called on class construction time
|
|
38
|
+
* @returns {Promise<void>} that resolves when the iframe is loaded and the message transport and iframe storage are initialized
|
|
39
|
+
*/
|
|
40
|
+
initializeIframeCommunication(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* initialize the iframe communication by awaiting the iframe load promise
|
|
43
|
+
* and initializing the message transport and iframe storage after iframe is successfully loaded
|
|
44
|
+
*/
|
|
45
|
+
private doInitializeIframeCommunication;
|
|
46
|
+
/**
|
|
47
|
+
* initialize the message transport after iframe is successfully loaded
|
|
48
|
+
*/
|
|
49
|
+
protected initializeMessageTransport(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* securely exchange the auth token with iframe securely
|
|
52
|
+
*/
|
|
53
|
+
private initAuthToken;
|
|
54
|
+
/**
|
|
55
|
+
* Reset the shared iframe and iframe load promise, and iframe instance count
|
|
56
|
+
*/
|
|
57
|
+
private resetSharedIframe;
|
|
58
|
+
private loadIframe;
|
|
59
|
+
private assignExistingIframe;
|
|
60
|
+
private createIframeLoadPromise;
|
|
61
|
+
private setupIframeEventHandlersWithRetry;
|
|
62
|
+
private getIframeContext;
|
|
63
|
+
private createMessageListener;
|
|
64
|
+
private configureIframe;
|
|
65
|
+
private setIframeSource;
|
|
66
|
+
/**
|
|
67
|
+
* Load an iframe for a specific container
|
|
68
|
+
* @param {HTMLElement} container - The container to which the iframe will be attached
|
|
69
|
+
* @returns {Promise<HTMLIFrameElement>} that resolves when the iframe is loaded
|
|
70
|
+
*/
|
|
71
|
+
private loadIframeForContainer;
|
|
72
|
+
/**
|
|
73
|
+
* Initializes the iframe display for a specific container.
|
|
74
|
+
*
|
|
75
|
+
* @param {HTMLElement} container - The container to which the iframe will be attached.
|
|
76
|
+
* @returns:
|
|
77
|
+
* iframe: HTMLIFrameElement;
|
|
78
|
+
* iframeDisplay: IframeDisplayChannelAdapter;
|
|
79
|
+
* cleanup: () => void;
|
|
80
|
+
*/
|
|
81
|
+
initializeIframeDisplayForContainer({ container, }: {
|
|
82
|
+
container: HTMLElement;
|
|
83
|
+
}): Promise<{
|
|
84
|
+
iframe: HTMLIFrameElement;
|
|
85
|
+
iframeDisplay: iframeMessageHandler;
|
|
86
|
+
cleanup: () => void;
|
|
87
|
+
}>;
|
|
88
|
+
cleanup(): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=IframeManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAGT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,iCAAiC,EACvC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAI3E,qBAAa,aAAa;IACxB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,MAAM,wCAAU;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,aAAa,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,gBAAgB,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAC5E,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACnE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;IAC9D,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAc,iBAAiB,SAAS;IACxC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAK;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAK;IAE7C,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkC;IAC7D,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAK;IAChC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE1B,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,QAA0B,EAC1B,SAAS,EACT,KAAK,GACN,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;IAuBK,UAAU;IAIhB;;;OAGG;IACH,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9C;;;OAGG;YACW,+BAA+B;IAS7C;;OAEG;cACa,0BAA0B;IAgC1C;;OAEG;YACW,aAAa;IAe3B;;OAEG;YACW,iBAAiB;YAcjB,UAAU;IAkBxB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,uBAAuB;IAuD/B,OAAO,CAAC,iCAAiC;IA0DzC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;IAcvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAyG9B;;;;;;;;OAQG;IACG,mCAAmC,CAAC,EACxC,SAAS,GACV,EAAE;QACD,SAAS,EAAE,WAAW,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,iBAAiB,CAAC;QAC1B,aAAa,EAAE,oBAAoB,CAAC;QACpC,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;IAqCW,OAAO;CAqBrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
package/src/client/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
|
package/src/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export * from './client';
|
|
2
|
-
export { EcdsaKeygenResult, Ed25519KeygenResult, BIP340KeygenResult, EcdsaSignature, } from '../../internal/web';
|
|
3
2
|
export { ThresholdSignatureScheme, WalletOperation, MPC_RELAY_PROD_API_URL, MPC_RELAY_PREPROD_API_URL, } from '@dynamic-labs-wallet/core';
|
|
4
3
|
//# sourceMappingURL=index.d.ts.map
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { type MessageTransportWithDefaultOrigin, type RequestChannel } from '@dynamic-labs/message-transport';
|
|
2
|
-
import type {
|
|
2
|
+
import type { IframeRequestMessages, GetWalletResponse, CreateWalletAccountResponse, SignMessageRequest, RequiresPasswordForOperationRequest, SignTransactionRequest, IsPasswordEncryptedRequest, BackupKeySharesToGoogleDriveRequest, RestoreBackupFromGoogleDriveRequest, RefreshWalletAccountSharesRequest, ReshareRequest, ExportPrivateKeyRequest, VerifyPasswordRequest, UpdatePasswordRequest, ImportPrivateKeyRequest, ExportClientKeysharesRequest, OfflineExportPrivateKeyRequest, OfflineExportPrivateKeyResponse, SignRawMessageRequest, GetWalletsRequest, CreateWalletAccountRequest, GetWalletRequest, SignTypedDataRequest, DelegateKeySharesRequest, AuthMode } from '@dynamic-labs-wallet/core';
|
|
3
3
|
export declare class iframeMessageHandler {
|
|
4
4
|
requestChannel: RequestChannel<IframeRequestMessages>;
|
|
5
5
|
constructor(messageTransport: MessageTransportWithDefaultOrigin);
|
|
6
|
-
getWallets(): Promise<GetWalletResponse[]>;
|
|
7
|
-
getWallet(
|
|
8
|
-
|
|
9
|
-
walletOperation: WalletOperation;
|
|
10
|
-
}): Promise<GetWalletResponse>;
|
|
11
|
-
createWalletAccount(thresholdSignatureScheme: ThresholdSignatureScheme, password?: string): Promise<CreateWalletAccountResponse>;
|
|
6
|
+
getWallets(request: GetWalletsRequest): Promise<GetWalletResponse[]>;
|
|
7
|
+
getWallet(request: GetWalletRequest): Promise<GetWalletResponse>;
|
|
8
|
+
createWalletAccount(request: CreateWalletAccountRequest): Promise<CreateWalletAccountResponse>;
|
|
12
9
|
requiresPasswordForOperation(request: RequiresPasswordForOperationRequest): Promise<boolean>;
|
|
13
10
|
signMessage(request: SignMessageRequest): Promise<string>;
|
|
11
|
+
signRawMessage(request: SignRawMessageRequest): Promise<string>;
|
|
14
12
|
signTransaction(request: SignTransactionRequest): Promise<string>;
|
|
15
13
|
isPasswordEncrypted(request: IsPasswordEncryptedRequest): Promise<boolean>;
|
|
16
14
|
backupKeySharesToGoogleDrive(request: BackupKeySharesToGoogleDriveRequest): Promise<void>;
|
|
15
|
+
delegateKeyShares(request: DelegateKeySharesRequest): Promise<void>;
|
|
17
16
|
restoreBackupFromGoogleDrive(request: RestoreBackupFromGoogleDriveRequest): Promise<void>;
|
|
18
17
|
refreshWalletAccountShares(request: RefreshWalletAccountSharesRequest): Promise<void>;
|
|
19
18
|
reshare(request: ReshareRequest): Promise<void>;
|
|
@@ -21,8 +20,10 @@ export declare class iframeMessageHandler {
|
|
|
21
20
|
verifyPassword(request: VerifyPasswordRequest): Promise<void>;
|
|
22
21
|
updatePassword(request: UpdatePasswordRequest): Promise<void>;
|
|
23
22
|
importPrivateKey(request: ImportPrivateKeyRequest): Promise<CreateWalletAccountResponse>;
|
|
24
|
-
sendAuthToken(token
|
|
23
|
+
sendAuthToken(token?: string, authMode?: AuthMode): Promise<void>;
|
|
25
24
|
exportClientKeyshares(request: ExportClientKeysharesRequest): Promise<void>;
|
|
26
25
|
offlineExportPrivateKey(request: OfflineExportPrivateKeyRequest): Promise<OfflineExportPrivateKeyResponse>;
|
|
26
|
+
signTypedData(request: SignTypedDataRequest): Promise<string>;
|
|
27
|
+
cleanup(): Promise<void>;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=iframeMessageHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframeMessageHandler.d.ts","sourceRoot":"","sources":["../../src/services/iframeMessageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iCAAiC,EACtC,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"iframeMessageHandler.d.ts","sourceRoot":"","sources":["../../src/services/iframeMessageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iCAAiC,EACtC,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,mCAAmC,EACnC,sBAAsB,EACtB,0BAA0B,EAC1B,mCAAmC,EACnC,mCAAmC,EACnC,iCAAiC,EACjC,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,QAAQ,EACT,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,oBAAoB;IAC/B,cAAc,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;gBAE1C,gBAAgB,EAAE,iCAAiC;IAKzD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIpE,SAAS,CAAC,OAAO,EAAE,gBAAgB;IAInC,mBAAmB,CACvB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,2BAA2B,CAAC;IAIjC,4BAA4B,CAChC,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,OAAO,CAAC;IAIb,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzD,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/D,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE,mBAAmB,CACvB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,OAAO,CAAC;IAIb,4BAA4B,CAChC,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAIV,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,4BAA4B,CAChC,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,IAAI,CAAC;IAIV,0BAA0B,CAC9B,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,IAAI,CAAC;IAIV,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,gBAAgB,CACpB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,2BAA2B,CAAC;IAIjC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC;IAIV,uBAAuB,CAC3B,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAIrC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7D,OAAO;CAGd"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { BIP340InitKeygenResult, BIP340KeygenResult, DynamicNativeSdkInterface } from '.';
|
|
2
|
-
export declare class BIP340 {
|
|
3
|
-
protected readonly NATIVE: Promise<DynamicNativeSdkInterface>;
|
|
4
|
-
protected readonly URL: string;
|
|
5
|
-
protected constructor(native: Promise<DynamicNativeSdkInterface>, url: string);
|
|
6
|
-
initKeygen(): Promise<BIP340InitKeygenResult>;
|
|
7
|
-
exportID(keygenResult: BIP340KeygenResult | string): Promise<string>;
|
|
8
|
-
createRoom(numParties: number, apiKey: string): Promise<string>;
|
|
9
|
-
keygen(roomUuid: string, numParties: number, threshold: number, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
|
|
10
|
-
sign(roomUuid: string, keygenResult: BIP340KeygenResult | string, msg: Uint8Array | string, derivationPath?: Uint32Array, tweak?: Uint8Array | string): Promise<Uint8Array>;
|
|
11
|
-
refresh(roomUuid: string, keygenResult: BIP340KeygenResult | string): Promise<BIP340KeygenResult>;
|
|
12
|
-
reshareNewParty(roomUuid: string, oldThreshold: number, newThreshold: number, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
|
|
13
|
-
reshareRemainingParty(roomUuid: string, newThreshold: number, keygenResult: BIP340KeygenResult | string, keygenIds: string[]): Promise<BIP340KeygenResult>;
|
|
14
|
-
deriveTweakPubkey(keygenResult: BIP340KeygenResult | string, derivationPath?: Uint32Array, tweak?: Uint8Array | string): Promise<Uint8Array>;
|
|
15
|
-
getXpub(keygenResult: BIP340KeygenResult | string): Promise<string>;
|
|
16
|
-
deriveTweakPubkeyFromXpub(Xpub: string, derivationPath?: Uint32Array, tweak?: Uint8Array | string): Promise<Uint8Array>;
|
|
17
|
-
exportFullPrivateKey(roomUuid: string, keygenResult: BIP340KeygenResult | string, toExportID: string): Promise<string | undefined>;
|
|
18
|
-
derivePrivateKeyFromXpriv(xpriv: string, derivationPath?: Uint32Array): Promise<string>;
|
|
19
|
-
offlineExportFullPrivateKey(keygenResults: BIP340KeygenResult[] | string[]): Promise<string>;
|
|
20
|
-
importPrivateKeyRecipient(roomUuid: string, threshold: number, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
|
|
21
|
-
importPrivateKeyImporter(roomUuid: string, threshold: number, privateKey: string, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
|
|
22
|
-
}
|
package/internal/core/bip340.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.BIP340=void 0;let _1=require("."),utils_1=require("@noble/hashes/utils"),common_1=require("./common");function getTweak(e){if(0!==(e="string"!=typeof e?(0,utils_1.bytesToHex)(e):e).length&&64!==e.length)throw new Error("Tweak must be 32 bytes long");return e}class BIP340{constructor(e,t){this.NATIVE=e,this.URL=t}async initKeygen(){var e=await(await this.NATIVE).initKeygen();return new _1.BIP340InitKeygenResult(e.pubkey,e.keypair)}async exportID(e){e="string"==typeof e?e:e.secretShare;return(await this.NATIVE).bip340GetExportID(e)}async createRoom(e,t){return(0,common_1.sanitizeNumberOfParties)(e),(await this.NATIVE).createRoom(this.URL,e,t)}async keygen(e,t,r,i,a){if((0,common_1.sanitizeNumberOfParties)(t,r),a.length!==t-1)throw new Error(`keygenIds length must be exactly: ${t-1}, it is: `+a.length);e=await(await this.NATIVE).bip340Keygen(e,this.URL,t,r,i.keygenSecret,a);if(e.pubkey&&e.secret_share)return t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share,new _1.BIP340KeygenResult(t,r);throw new Error("Keygen failed, no public key or secret share was returned.")}async sign(e,t,r,i=new Uint32Array,a=new Uint8Array){t="string"==typeof t?t:t.secretShare,"string"!=typeof r&&(r=(0,utils_1.bytesToHex)(r)),a=getTweak(a),e=await(await this.NATIVE).bip340Sign(e,this.URL,t,r,Array.from(i),a);return(0,utils_1.hexToBytes)(e)}async refresh(e,t){var t="string"==typeof t?t:t.secretShare,e=await(await this.NATIVE).bip340Refresh(e,this.URL,t);if(e.pubkey&&e.secret_share)return t=(0,utils_1.hexToBytes)(e.pubkey),e=e.secret_share,new _1.BIP340KeygenResult(t,e);throw new Error("Keygen failed, no public key or secret share was returned.")}async reshareNewParty(e,t,r,i,a){e=await(await this.NATIVE).bip340ReshareNewParty(e,this.URL,t,r,i.keygenSecret,a),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.BIP340KeygenResult(t,r)}async reshareRemainingParty(e,t,r,i){r="string"==typeof r?r:r.secretShare,e=await(await this.NATIVE).bip340ReshareRemainingParty(e,this.URL,t,r,i),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.BIP340KeygenResult(t,r)}async deriveTweakPubkey(e,t=new Uint32Array,r=new Uint8Array){e="string"==typeof e?e:e.secretShare,e=await(await this.NATIVE).bip340DeriveTweakPubkey(e,Array.from(t),getTweak(r));return(0,utils_1.hexToBytes)(e)}async getXpub(e){e="string"==typeof e?e:e.secretShare;return(await this.NATIVE).bip340GetXpub(e)}async deriveTweakPubkeyFromXpub(e,t=new Uint32Array,r=new Uint8Array){e=await(await this.NATIVE).bip340DeriveTweakPubkeyFromXpub(e,Array.from(t),getTweak(r));return(0,utils_1.hexToBytes)(e)}async exportFullPrivateKey(e,t,r){t="string"==typeof t?t:t.secretShare;return(await this.NATIVE).bip340ExportFullPrivateKey(e,this.URL,t,r)}async derivePrivateKeyFromXpriv(e,t=new Uint32Array){return(await this.NATIVE).bip340DerivePrivateKeyFromXpriv(e,Array.from(t))}async offlineExportFullPrivateKey(e){e=e.map(e=>{if("string"==typeof e)return e;if(e instanceof _1.BIP340KeygenResult)return e.secretShare;throw"UnknownType"});return(await this.NATIVE).bip340OfflineExportFullPrivateKey(e)}async importPrivateKeyRecipient(e,t,r,i){e=await(await this.NATIVE).bip340ImportPrivateKeyRecipient(e,this.URL,t,r.keygenSecret,i),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.BIP340KeygenResult(t,r)}async importPrivateKeyImporter(e,t,r,i,a){e=await(await this.NATIVE).bip340ImportPrivateKeyImporter(e,this.URL,t,r,i.keygenSecret,a),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.BIP340KeygenResult(t,r)}}exports.BIP340=BIP340;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function sanitizeNumberOfParties(...numberOfParties: number[]): void;
|
package/internal/core/common.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function sanitizeNumberOfParties(...e){for(var r of e)if(!Number.isInteger(r)||r<1||65535<r)throw new RangeError(`numberOfParties should be an integer in the range: 1..65_535, instead got: ${r} `)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.sanitizeNumberOfParties=sanitizeNumberOfParties;
|
package/internal/core/ecdsa.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { EcdsaInitKeygenResult, EcdsaKeygenResult, EcdsaPublicKey, EcdsaSignature, MessageHash, DynamicNativeSdkInterface } from './';
|
|
2
|
-
export declare class Ecdsa {
|
|
3
|
-
protected readonly NATIVE: Promise<DynamicNativeSdkInterface>;
|
|
4
|
-
protected readonly URL: string;
|
|
5
|
-
protected constructor(native: Promise<DynamicNativeSdkInterface>, hostUrl: string);
|
|
6
|
-
createRoom(numParties: number, apiKey: string): Promise<string>;
|
|
7
|
-
initKeygen(): Promise<EcdsaInitKeygenResult>;
|
|
8
|
-
exportID(keygenResult: EcdsaKeygenResult | string): Promise<string>;
|
|
9
|
-
keygen(roomUuid: string, numParties: number, threshold: number, keygenInit: EcdsaInitKeygenResult, keygenIds: string[]): Promise<EcdsaKeygenResult>;
|
|
10
|
-
sign(roomUuid: string, keygenResult: EcdsaKeygenResult | string, msgHash: MessageHash, derivationPath?: Uint32Array): Promise<EcdsaSignature>;
|
|
11
|
-
refresh(roomUuid: string, keygenResult: EcdsaKeygenResult | string): Promise<EcdsaKeygenResult>;
|
|
12
|
-
reshareNewParty(roomUuid: string, oldThreshold: number, newThreshold: number, keygenInit: EcdsaInitKeygenResult, keygenIds: string[]): Promise<EcdsaKeygenResult>;
|
|
13
|
-
reshareRemainingParty(roomUuid: string, newThreshold: number, keygenResult: EcdsaKeygenResult | string, keygenIds: string[]): Promise<EcdsaKeygenResult>;
|
|
14
|
-
derivePubkey(keygenResult: EcdsaKeygenResult | string, derivationPath?: Uint32Array): Promise<EcdsaPublicKey>;
|
|
15
|
-
getXpub(keygenResult: EcdsaKeygenResult | string): Promise<string>;
|
|
16
|
-
derivePubkeyFromXpub(Xpub: string, derivationPath?: Uint32Array): Promise<EcdsaPublicKey>;
|
|
17
|
-
exportFullPrivateKey(roomUuid: string, keygenResult: EcdsaKeygenResult | string, toExportID: string): Promise<string | undefined>;
|
|
18
|
-
derivePrivateKeyFromXpriv(xpriv: string, derivationPath?: Uint32Array): Promise<string>;
|
|
19
|
-
offlineExportFullPrivateKey(keygenResults: (EcdsaKeygenResult[] | string[])): Promise<string>;
|
|
20
|
-
importPrivateKeyRecipient(roomUuid: string, threshold: number, keygenInit: EcdsaInitKeygenResult, keygenIds: string[]): Promise<EcdsaKeygenResult>;
|
|
21
|
-
importPrivateKeyImporter(roomUuid: string, threshold: number, privateKey: string, keygenInit: EcdsaInitKeygenResult, keygenIds: string[]): Promise<EcdsaKeygenResult>;
|
|
22
|
-
protected getHostUrl(path?: string): string;
|
|
23
|
-
}
|
package/internal/core/ecdsa.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.Ecdsa=void 0;let _1=require("./"),common_1=require("./common");class Ecdsa{constructor(e,t){this.NATIVE=e,this.URL=t}async createRoom(e,t){return(0,common_1.sanitizeNumberOfParties)(e),(await this.NATIVE).createRoom(this.URL,e,t)}async initKeygen(){var e=await(await this.NATIVE).initKeygen();return new _1.EcdsaInitKeygenResult(e.pubkey,e.keypair)}async exportID(e){e="string"==typeof e?e:e.secretShare;return(await this.NATIVE).ecdsaGetExportID(e)}async keygen(e,t,r,a,s){if((0,common_1.sanitizeNumberOfParties)(t,r),s.length!==t-1)throw new Error(`keygenIds length must be exactly: ${t-1}, it is: `+s.length);e=await(await this.NATIVE).ecdsaKeygen(e,this.URL,t,r,a.keygenSecret,s),t=new _1.EcdsaPublicKey(e.pubkey),r=e.secret_share;return new _1.EcdsaKeygenResult(t,r)}async sign(e,t,r,a=new Uint32Array){t="string"==typeof t?t:t.secretShare,e=await(await this.NATIVE).ecdsaSign(e,this.URL,t,r.toHex(),Array.from(a));return _1.EcdsaSignature.fromBuffer(e)}async refresh(e,t){t="string"==typeof t?t:t.secretShare,e=await(await this.NATIVE).ecdsaRefresh(e,this.URL,t),t=new _1.EcdsaPublicKey(e.pubkey),e=e.secret_share;return new _1.EcdsaKeygenResult(t,e)}async reshareNewParty(e,t,r,a,s){e=await(await this.NATIVE).ecdsaReshareNewParty(e,this.URL,t,r,a.keygenSecret,s),t=new _1.EcdsaPublicKey(e.pubkey),r=e.secret_share;return new _1.EcdsaKeygenResult(t,r)}async reshareRemainingParty(e,t,r,a){r="string"==typeof r?r:r.secretShare,e=await(await this.NATIVE).ecdsaReshareRemainingParty(e,this.URL,t,r,a),t=new _1.EcdsaPublicKey(e.pubkey),r=e.secret_share;return new _1.EcdsaKeygenResult(t,r)}async derivePubkey(e,t=new Uint32Array){e="string"==typeof e?e:e.secretShare,e=await(await this.NATIVE).ecdsaDerivePubkey(e,Array.from(t));return new _1.EcdsaPublicKey(e)}async getXpub(e){e="string"==typeof e?e:e.secretShare;return(await this.NATIVE).ecdsaGetXpub(e)}async derivePubkeyFromXpub(e,t=new Uint32Array){e=await(await this.NATIVE).ecdsaDerivePubkeyFromXpub(e,Array.from(t));return new _1.EcdsaPublicKey(e)}async exportFullPrivateKey(e,t,r){t="string"==typeof t?t:t.secretShare;return(await this.NATIVE).ecdsaExportFullPrivateKey(e,this.URL,t,r)}async derivePrivateKeyFromXpriv(e,t=new Uint32Array){return(await this.NATIVE).ecdsaDerivePrivateKeyFromXpriv(e,Array.from(t))}async offlineExportFullPrivateKey(e){e=e.map(e=>{if("string"==typeof e)return e;if(e instanceof _1.EcdsaKeygenResult)return e.secretShare;throw"UnknownType"});return(await this.NATIVE).ecdsaOfflineExportFullPrivateKey(e)}async importPrivateKeyRecipient(e,t,r,a){e=await(await this.NATIVE).ecdsaImportPrivateKeyRecipient(e,this.URL,t,r.keygenSecret,a),t=new _1.EcdsaPublicKey(e.pubkey),r=e.secret_share;return new _1.EcdsaKeygenResult(t,r)}async importPrivateKeyImporter(e,t,r,a,s){e=await(await this.NATIVE).ecdsaImportPrivateKeyImporter(e,this.URL,t,r,a.keygenSecret,s),t=new _1.EcdsaPublicKey(e.pubkey),r=e.secret_share;return new _1.EcdsaKeygenResult(t,r)}getHostUrl(e){return e||this.URL}}exports.Ecdsa=Ecdsa;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Ed25519InitKeygenResult, Ed25519KeygenResult, DynamicNativeSdkInterface } from './';
|
|
2
|
-
export declare class Ed25519 {
|
|
3
|
-
protected readonly NATIVE: Promise<DynamicNativeSdkInterface>;
|
|
4
|
-
protected readonly URL: string;
|
|
5
|
-
protected constructor(native: Promise<DynamicNativeSdkInterface>, url: string);
|
|
6
|
-
initKeygen(): Promise<Ed25519InitKeygenResult>;
|
|
7
|
-
exportID(keygenResult: Ed25519KeygenResult | string): Promise<string>;
|
|
8
|
-
createRoom(numParties: number, apiKey: string): Promise<string>;
|
|
9
|
-
keygen(roomUuid: string, numParties: number, threshold: number, keygenInit: Ed25519InitKeygenResult, keygenIds: string[]): Promise<Ed25519KeygenResult>;
|
|
10
|
-
sign(roomUuid: string, keygenResult: Ed25519KeygenResult | string, msg: Uint8Array | string, derivationPath?: Uint32Array): Promise<Uint8Array>;
|
|
11
|
-
refresh(roomUuid: string, keygenResult: Ed25519KeygenResult | string): Promise<Ed25519KeygenResult>;
|
|
12
|
-
reshareNewParty(roomUuid: string, oldThreshold: number, newThreshold: number, keygenInit: Ed25519InitKeygenResult, keygenIds: string[]): Promise<Ed25519KeygenResult>;
|
|
13
|
-
reshareRemainingParty(roomUuid: string, newThreshold: number, keygenResult: Ed25519KeygenResult | string, keygenIds: string[]): Promise<Ed25519KeygenResult>;
|
|
14
|
-
derivePubkey(keygenResult: Ed25519KeygenResult | string, derivationPath?: Uint32Array): Promise<Uint8Array>;
|
|
15
|
-
getSpub(keygenResult: Ed25519KeygenResult | string): Promise<string>;
|
|
16
|
-
derivePubkeyFromSpub(spub: string, derivation: Uint32Array): Promise<Uint8Array>;
|
|
17
|
-
exportFullPrivateKey(roomUuid: string, keygenResult: Ed25519KeygenResult | string, toExportID: string): Promise<string | undefined>;
|
|
18
|
-
derivePrivateKeyFromSpriv(spriv: string, derivationPath?: Uint32Array): Promise<string>;
|
|
19
|
-
offlineExportFullPrivateKey(keygenResults: Ed25519KeygenResult[] | string[]): Promise<string>;
|
|
20
|
-
importPrivateKeyRecipient(roomUuid: string, threshold: number, keygenInit: Ed25519InitKeygenResult, keygenIds: string[]): Promise<Ed25519KeygenResult>;
|
|
21
|
-
importPrivateKeyImporter(roomUuid: string, threshold: number, privateKey: string, keygenInit: Ed25519InitKeygenResult, keygenIds: string[], isPrivateKeyRaw?: boolean): Promise<Ed25519KeygenResult>;
|
|
22
|
-
}
|
package/internal/core/ed25519.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.Ed25519=void 0;let _1=require("./"),utils_1=require("@noble/hashes/utils"),common_1=require("./common");class Ed25519{constructor(e,t){this.NATIVE=e,this.URL=t}async initKeygen(){var e=await(await this.NATIVE).initKeygen();return new _1.Ed25519InitKeygenResult(e.pubkey,e.keypair)}async exportID(e){e="string"==typeof e?e:e.secretShare;return(await this.NATIVE).ed25519GetExportID(e)}async createRoom(e,t){return(0,common_1.sanitizeNumberOfParties)(e),(await this.NATIVE).createRoom(this.URL,e,t)}async keygen(e,t,r,i,s){if((0,common_1.sanitizeNumberOfParties)(t,r),s.length!==t-1)throw new Error(`keygenIds length must be exactly: ${t-1}, it is: `+s.length);e=await(await this.NATIVE).ed25519Keygen(e,this.URL,t,r,i.keygenSecret,s);if(e.pubkey&&e.secret_share)return t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share,new _1.Ed25519KeygenResult(t,r);throw new Error("Keygen failed, no public key or secret share was returned.")}async sign(e,t,r,i=new Uint32Array){"string"!=typeof r&&(r=(0,utils_1.bytesToHex)(r));t="string"==typeof t?t:t.secretShare,e=await(await this.NATIVE).ed25519Sign(e,this.URL,t,r,Array.from(i));return(0,utils_1.hexToBytes)(e)}async refresh(e,t){var t="string"==typeof t?t:t.secretShare,e=await(await this.NATIVE).ed25519Refresh(e,this.URL,t);if(e.pubkey&&e.secret_share)return t=(0,utils_1.hexToBytes)(e.pubkey),e=e.secret_share,new _1.Ed25519KeygenResult(t,e);throw new Error("Keygen failed, no public key or secret share was returned.")}async reshareNewParty(e,t,r,i,s){e=await(await this.NATIVE).ed25519ReshareNewParty(e,this.URL,t,r,i.keygenSecret,s),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.Ed25519KeygenResult(t,r)}async reshareRemainingParty(e,t,r,i){r="string"==typeof r?r:r.secretShare,e=await(await this.NATIVE).ed25519ReshareRemainingParty(e,this.URL,t,r,i),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.Ed25519KeygenResult(t,r)}async derivePubkey(e,t=new Uint32Array){e="string"==typeof e?e:e.secretShare,e=await(await this.NATIVE).ed25519DerivePubkey(e,Array.from(t));return(0,utils_1.hexToBytes)(e)}async getSpub(e){e="string"==typeof e?e:e.secretShare;return(await this.NATIVE).ed25519GetSpub(e)}async derivePubkeyFromSpub(e,t){e=await(await this.NATIVE).ed25519DerivePubkeyFromSpub(e,Array.from(t));return(0,utils_1.hexToBytes)(e)}async exportFullPrivateKey(e,t,r){t="string"==typeof t?t:t.secretShare;return(await this.NATIVE).ed25519ExportFullPrivateKey(e,this.URL,t,r)}async derivePrivateKeyFromSpriv(e,t=new Uint32Array){return(await this.NATIVE).ed25519DerivePrivateKeyFromSpriv(e,Array.from(t))}async offlineExportFullPrivateKey(e){e=e.map(e=>{if("string"==typeof e)return e;if(e instanceof _1.Ed25519KeygenResult)return e.secretShare;throw"UnknownType"});return(await this.NATIVE).ed25519OfflineExportFullPrivateKey(e)}async importPrivateKeyRecipient(e,t,r,i){e=await(await this.NATIVE).ed25519ImportPrivateKeyRecipient(e,this.URL,t,r.keygenSecret,i),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.Ed25519KeygenResult(t,r)}async importPrivateKeyImporter(e,t,r,i,s,a=!1){e=await(await this.NATIVE).ed25519ImportPrivateKeyImporter(e,this.URL,t,r,i.keygenSecret,s,a),t=(0,utils_1.hexToBytes)(e.pubkey),r=e.secret_share;return new _1.Ed25519KeygenResult(t,r)}}exports.Ed25519=Ed25519;
|
package/internal/core/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { EcdsaInitKeygenResult, EcdsaKeygenResult, EcdsaPublicKey, EcdsaSignature, Ed25519InitKeygenResult, Ed25519KeygenResult, BIP340InitKeygenResult, BIP340KeygenResult, MessageHash } from './types';
|
|
2
|
-
import { Ecdsa } from './ecdsa';
|
|
3
|
-
import { Ed25519 } from './ed25519';
|
|
4
|
-
import { BIP340 } from './bip340';
|
|
5
|
-
import { DynamicNativeSdkInterface } from './native';
|
|
6
|
-
export { DynamicNativeSdkInterface, EcdsaInitKeygenResult, EcdsaKeygenResult, EcdsaPublicKey, EcdsaSignature, Ed25519InitKeygenResult, Ed25519KeygenResult, BIP340InitKeygenResult, BIP340KeygenResult, MessageHash, Ecdsa, Ed25519, BIP340, };
|
package/internal/core/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.BIP340=exports.Ed25519=exports.Ecdsa=exports.MessageHash=exports.BIP340KeygenResult=exports.BIP340InitKeygenResult=exports.Ed25519KeygenResult=exports.Ed25519InitKeygenResult=exports.EcdsaSignature=exports.EcdsaPublicKey=exports.EcdsaKeygenResult=exports.EcdsaInitKeygenResult=void 0;let types_1=require("./types"),ecdsa_1=(Object.defineProperty(exports,"EcdsaInitKeygenResult",{enumerable:!0,get:function(){return types_1.EcdsaInitKeygenResult}}),Object.defineProperty(exports,"EcdsaKeygenResult",{enumerable:!0,get:function(){return types_1.EcdsaKeygenResult}}),Object.defineProperty(exports,"EcdsaPublicKey",{enumerable:!0,get:function(){return types_1.EcdsaPublicKey}}),Object.defineProperty(exports,"EcdsaSignature",{enumerable:!0,get:function(){return types_1.EcdsaSignature}}),Object.defineProperty(exports,"Ed25519InitKeygenResult",{enumerable:!0,get:function(){return types_1.Ed25519InitKeygenResult}}),Object.defineProperty(exports,"Ed25519KeygenResult",{enumerable:!0,get:function(){return types_1.Ed25519KeygenResult}}),Object.defineProperty(exports,"BIP340InitKeygenResult",{enumerable:!0,get:function(){return types_1.BIP340InitKeygenResult}}),Object.defineProperty(exports,"BIP340KeygenResult",{enumerable:!0,get:function(){return types_1.BIP340KeygenResult}}),Object.defineProperty(exports,"MessageHash",{enumerable:!0,get:function(){return types_1.MessageHash}}),require("./ecdsa")),ed25519_1=(Object.defineProperty(exports,"Ecdsa",{enumerable:!0,get:function(){return ecdsa_1.Ecdsa}}),require("./ed25519")),bip340_1=(Object.defineProperty(exports,"Ed25519",{enumerable:!0,get:function(){return ed25519_1.Ed25519}}),require("./bip340"));Object.defineProperty(exports,"BIP340",{enumerable:!0,get:function(){return bip340_1.BIP340}});
|