@dynamic-labs-wallet/core 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.esm.d.ts +1 -0
- package/index.esm.js +186 -0
- package/package.json +27 -0
- package/src/api/api.d.ts +32 -0
- package/src/api/api.d.ts.map +1 -0
- package/src/api/client.d.ts +12 -0
- package/src/api/client.d.ts.map +1 -0
- package/src/api/index.d.ts +2 -0
- package/src/api/index.d.ts.map +1 -0
- package/src/constants.d.ts +3 -0
- package/src/constants.d.ts.map +1 -0
- package/src/index.d.ts +4 -0
- package/src/index.d.ts.map +1 -0
- package/src/mpc/constants.d.ts +38 -0
- package/src/mpc/constants.d.ts.map +1 -0
- package/src/mpc/index.d.ts +2 -0
- package/src/mpc/index.d.ts.map +1 -0
- package/src/types.d.ts +9 -0
- package/src/types.d.ts.map +1 -0
package/index.esm.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/index";
|
package/index.esm.js
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
|
|
3
|
+
const RELAY_API_URL = 'relay.dynamic-preprod.xyz';
|
|
4
|
+
const DYNAMIC_AUTH_BASE_API_URL = 'https://app.dynamicauth.com';
|
|
5
|
+
|
|
6
|
+
var SigningAlgorithm;
|
|
7
|
+
(function(SigningAlgorithm) {
|
|
8
|
+
SigningAlgorithm["ECDSA"] = "ECDSA";
|
|
9
|
+
SigningAlgorithm["ED25519"] = "ED25519";
|
|
10
|
+
SigningAlgorithm["BIP340"] = "BIP340";
|
|
11
|
+
})(SigningAlgorithm || (SigningAlgorithm = {}));
|
|
12
|
+
const BITCOIN_DERIVATION_PATHS = {
|
|
13
|
+
LEGACY: [
|
|
14
|
+
44,
|
|
15
|
+
0,
|
|
16
|
+
0,
|
|
17
|
+
0,
|
|
18
|
+
0
|
|
19
|
+
],
|
|
20
|
+
// m/49'/0'/0'/0/0 - SegWit (P2SH-P2WPKH)
|
|
21
|
+
NATIVE_SEGWIT: [
|
|
22
|
+
84,
|
|
23
|
+
0,
|
|
24
|
+
0,
|
|
25
|
+
0,
|
|
26
|
+
0
|
|
27
|
+
],
|
|
28
|
+
// m/44'/0'/0'/0/0 - Legacy (P2PKH)
|
|
29
|
+
SEGWIT: [
|
|
30
|
+
49,
|
|
31
|
+
0,
|
|
32
|
+
0,
|
|
33
|
+
0,
|
|
34
|
+
0
|
|
35
|
+
]
|
|
36
|
+
};
|
|
37
|
+
const MPC_CHAIN_CONFIG = {
|
|
38
|
+
EVM: {
|
|
39
|
+
// Uses secp256k1 ECDSA
|
|
40
|
+
derivationPath: [
|
|
41
|
+
44,
|
|
42
|
+
60,
|
|
43
|
+
0,
|
|
44
|
+
0,
|
|
45
|
+
0
|
|
46
|
+
],
|
|
47
|
+
signingAlgorithm: "ECDSA"
|
|
48
|
+
},
|
|
49
|
+
SOL: {
|
|
50
|
+
// Uses Ed25519
|
|
51
|
+
derivationPath: [
|
|
52
|
+
44,
|
|
53
|
+
501,
|
|
54
|
+
0,
|
|
55
|
+
0,
|
|
56
|
+
0
|
|
57
|
+
],
|
|
58
|
+
signingAlgorithm: "ED25519"
|
|
59
|
+
},
|
|
60
|
+
BTC: {
|
|
61
|
+
// Uses secp256k1 BIP340
|
|
62
|
+
derivationPath: BITCOIN_DERIVATION_PATHS.NATIVE_SEGWIT,
|
|
63
|
+
signingAlgorithm: "BIP340"
|
|
64
|
+
},
|
|
65
|
+
COSMOS: {
|
|
66
|
+
// Uses Ed25519
|
|
67
|
+
derivationPath: [
|
|
68
|
+
44,
|
|
69
|
+
118,
|
|
70
|
+
0,
|
|
71
|
+
0,
|
|
72
|
+
0
|
|
73
|
+
],
|
|
74
|
+
signingAlgorithm: "ED25519"
|
|
75
|
+
},
|
|
76
|
+
FLOW: {
|
|
77
|
+
// Uses Ed25519
|
|
78
|
+
derivationPath: [
|
|
79
|
+
44,
|
|
80
|
+
539,
|
|
81
|
+
0,
|
|
82
|
+
0,
|
|
83
|
+
0
|
|
84
|
+
],
|
|
85
|
+
signingAlgorithm: "ED25519"
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
const getMPCChainConfig = (chainName)=>{
|
|
89
|
+
const chainConfig = MPC_CHAIN_CONFIG[chainName];
|
|
90
|
+
if (!chainConfig) {
|
|
91
|
+
throw new Error(`Chain ${chainName} not supported`);
|
|
92
|
+
}
|
|
93
|
+
return chainConfig;
|
|
94
|
+
};
|
|
95
|
+
var ThresholdSignatureScheme;
|
|
96
|
+
(function(ThresholdSignatureScheme) {
|
|
97
|
+
ThresholdSignatureScheme["TWO_OF_TWO"] = "TWO_OF_TWO";
|
|
98
|
+
ThresholdSignatureScheme["TWO_OF_THREE"] = "TWO_OF_THREE";
|
|
99
|
+
ThresholdSignatureScheme["THREE_OF_FIVE"] = "THREE_OF_FIVE";
|
|
100
|
+
})(ThresholdSignatureScheme || (ThresholdSignatureScheme = {}));
|
|
101
|
+
const MPC_CONFIG = {
|
|
102
|
+
["TWO_OF_TWO"]: {
|
|
103
|
+
numberOfParties: 2,
|
|
104
|
+
threshold: 2
|
|
105
|
+
},
|
|
106
|
+
["TWO_OF_THREE"]: {
|
|
107
|
+
numberOfParties: 3,
|
|
108
|
+
threshold: 2
|
|
109
|
+
},
|
|
110
|
+
["THREE_OF_FIVE"]: {
|
|
111
|
+
numberOfParties: 5,
|
|
112
|
+
threshold: 3
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
class BaseClient {
|
|
117
|
+
constructor({ environmentId, baseApiUrl, authToken }){
|
|
118
|
+
const headers = {};
|
|
119
|
+
headers['Authorization'] = authToken ? `Bearer ${authToken}` : undefined;
|
|
120
|
+
this.environmentId = environmentId;
|
|
121
|
+
this.baseApiUrl = baseApiUrl || DYNAMIC_AUTH_BASE_API_URL;
|
|
122
|
+
this.apiClient = axios.create({
|
|
123
|
+
baseURL: this.baseApiUrl,
|
|
124
|
+
headers
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
class DynamicApiClient extends BaseClient {
|
|
130
|
+
async createWalletAccount({ chainName, clientPrimaryKeygenId, clientSecondaryKeygenId }) {
|
|
131
|
+
// Initilize keygen, create room, and create the wallet account on the server
|
|
132
|
+
const { data } = await this.apiClient.post(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/createWalletAccount`, {
|
|
133
|
+
chain: chainName,
|
|
134
|
+
clientPrimaryKeygenId,
|
|
135
|
+
clientSecondaryKeygenId
|
|
136
|
+
});
|
|
137
|
+
return data;
|
|
138
|
+
}
|
|
139
|
+
async signMessage({ messageToSign }) {
|
|
140
|
+
const { data } = await this.apiClient.post(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/signMessage`, {
|
|
141
|
+
messageToSign
|
|
142
|
+
});
|
|
143
|
+
return data;
|
|
144
|
+
}
|
|
145
|
+
async refreshWalletAccountShares() {
|
|
146
|
+
const { data } = await this.apiClient.post(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/refreshShares`);
|
|
147
|
+
return data;
|
|
148
|
+
}
|
|
149
|
+
async reshareRemainingParty({ clientPrimaryKeygenId, clientSecondaryKeygenId }) {
|
|
150
|
+
const { data } = await this.apiClient.post(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/reshareRemainingParty`, {
|
|
151
|
+
clientPrimaryKeygenId,
|
|
152
|
+
clientSecondaryKeygenId
|
|
153
|
+
});
|
|
154
|
+
return data;
|
|
155
|
+
}
|
|
156
|
+
async exportKey({ exportId }) {
|
|
157
|
+
const { data } = await this.apiClient.post(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/exportKey`, {
|
|
158
|
+
exportId
|
|
159
|
+
});
|
|
160
|
+
return data;
|
|
161
|
+
}
|
|
162
|
+
async storeEncryptedBackup({ keyShare }) {
|
|
163
|
+
const { data } = await this.apiClient.post(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/storeEncryptedBackup`, {
|
|
164
|
+
keyShare
|
|
165
|
+
});
|
|
166
|
+
return data;
|
|
167
|
+
}
|
|
168
|
+
async recoverEncryptedBackup() {
|
|
169
|
+
const { data } = await this.apiClient.get(`/api/v0/sdk/${this.environmentId}/embeddedWalletV3/recoverEncryptedBackup`);
|
|
170
|
+
return data;
|
|
171
|
+
}
|
|
172
|
+
async getAccessToken({ oauthAccountId }) {
|
|
173
|
+
const { data } = await this.apiClient.get(`/api/v0/sdk/${this.environmentId}/oauthAccounts/${oauthAccountId}/accessToken`);
|
|
174
|
+
console.log('data', data);
|
|
175
|
+
return data.accessToken;
|
|
176
|
+
}
|
|
177
|
+
constructor({ environmentId, authToken, baseApiUrl }){
|
|
178
|
+
super({
|
|
179
|
+
environmentId,
|
|
180
|
+
authToken,
|
|
181
|
+
baseApiUrl
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export { BITCOIN_DERIVATION_PATHS, DYNAMIC_AUTH_BASE_API_URL, DynamicApiClient, MPC_CHAIN_CONFIG, MPC_CONFIG, RELAY_API_URL, SigningAlgorithm, ThresholdSignatureScheme, getMPCChainConfig };
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dynamic-labs-wallet/core",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"axios": "1.7.9"
|
|
6
|
+
},
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "restricted"
|
|
9
|
+
},
|
|
10
|
+
"nx": {
|
|
11
|
+
"sourceRoot": "packages/core/src",
|
|
12
|
+
"projectType": "library",
|
|
13
|
+
"name": "core"
|
|
14
|
+
},
|
|
15
|
+
"main": "./index.esm.js",
|
|
16
|
+
"module": "./index.esm.js",
|
|
17
|
+
"types": "./index.esm.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": "./package.json",
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./index.esm.d.ts",
|
|
22
|
+
"import": "./index.esm.js",
|
|
23
|
+
"default": "./index.esm.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"type": "module"
|
|
27
|
+
}
|
package/src/api/api.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BaseClient } from './client';
|
|
2
|
+
export declare class DynamicApiClient extends BaseClient {
|
|
3
|
+
constructor({ environmentId, authToken, baseApiUrl, }: {
|
|
4
|
+
environmentId: string;
|
|
5
|
+
authToken: string;
|
|
6
|
+
baseApiUrl?: string;
|
|
7
|
+
});
|
|
8
|
+
createWalletAccount({ chainName, clientPrimaryKeygenId, clientSecondaryKeygenId, }: {
|
|
9
|
+
chainName: string;
|
|
10
|
+
clientPrimaryKeygenId: string;
|
|
11
|
+
clientSecondaryKeygenId: string;
|
|
12
|
+
}): Promise<any>;
|
|
13
|
+
signMessage({ messageToSign }: {
|
|
14
|
+
messageToSign: string;
|
|
15
|
+
}): Promise<any>;
|
|
16
|
+
refreshWalletAccountShares(): Promise<any>;
|
|
17
|
+
reshareRemainingParty({ clientPrimaryKeygenId, clientSecondaryKeygenId, }: {
|
|
18
|
+
clientPrimaryKeygenId: string;
|
|
19
|
+
clientSecondaryKeygenId: string;
|
|
20
|
+
}): Promise<any>;
|
|
21
|
+
exportKey({ exportId }: {
|
|
22
|
+
exportId: string;
|
|
23
|
+
}): Promise<any>;
|
|
24
|
+
storeEncryptedBackup({ keyShare }: {
|
|
25
|
+
keyShare: string;
|
|
26
|
+
}): Promise<any>;
|
|
27
|
+
recoverEncryptedBackup(): Promise<any>;
|
|
28
|
+
getAccessToken({ oauthAccountId }: {
|
|
29
|
+
oauthAccountId: string;
|
|
30
|
+
}): Promise<any>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,EACV,aAAa,EACb,SAAS,EACT,UAAU,GACX,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IAIK,mBAAmB,CAAC,EACxB,SAAS,EACT,qBAAqB,EACrB,uBAAuB,GACxB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,uBAAuB,EAAE,MAAM,CAAC;KACjC;IAaK,WAAW,CAAC,EAAE,aAAa,EAAE,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE;IAUxD,0BAA0B;IAO1B,qBAAqB,CAAC,EAC1B,qBAAqB,EACrB,uBAAuB,GACxB,EAAE;QACD,qBAAqB,EAAE,MAAM,CAAC;QAC9B,uBAAuB,EAAE,MAAM,CAAC;KACjC;IAWK,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAU5C,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAUvD,sBAAsB;IAOtB,cAAc,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;CAOpE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
export declare class BaseClient {
|
|
3
|
+
apiClient: AxiosInstance;
|
|
4
|
+
baseApiUrl: string;
|
|
5
|
+
environmentId: string;
|
|
6
|
+
constructor({ environmentId, baseApiUrl, authToken, }: {
|
|
7
|
+
environmentId: string;
|
|
8
|
+
baseApiUrl?: string;
|
|
9
|
+
authToken?: string;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C,qBAAa,UAAU;IACd,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;gBAEjB,EACV,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CAWF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,8BAA8B,CAAC;AAEzD,eAAO,MAAM,yBAAyB,gCAAgC,CAAC"}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare enum SigningAlgorithm {
|
|
2
|
+
ECDSA = "ECDSA",
|
|
3
|
+
ED25519 = "ED25519",
|
|
4
|
+
BIP340 = "BIP340"
|
|
5
|
+
}
|
|
6
|
+
export declare const BITCOIN_DERIVATION_PATHS: {
|
|
7
|
+
LEGACY: number[];
|
|
8
|
+
NATIVE_SEGWIT: number[];
|
|
9
|
+
SEGWIT: number[];
|
|
10
|
+
};
|
|
11
|
+
export declare const MPC_CHAIN_CONFIG: Record<string, {
|
|
12
|
+
derivationPath: number[];
|
|
13
|
+
signingAlgorithm: SigningAlgorithm;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const getMPCChainConfig: (chainName: string) => {
|
|
16
|
+
derivationPath: number[];
|
|
17
|
+
signingAlgorithm: SigningAlgorithm;
|
|
18
|
+
};
|
|
19
|
+
export declare enum ThresholdSignatureScheme {
|
|
20
|
+
TWO_OF_TWO = "TWO_OF_TWO",
|
|
21
|
+
TWO_OF_THREE = "TWO_OF_THREE",
|
|
22
|
+
THREE_OF_FIVE = "THREE_OF_FIVE"
|
|
23
|
+
}
|
|
24
|
+
export declare const MPC_CONFIG: {
|
|
25
|
+
TWO_OF_TWO: {
|
|
26
|
+
numberOfParties: number;
|
|
27
|
+
threshold: number;
|
|
28
|
+
};
|
|
29
|
+
TWO_OF_THREE: {
|
|
30
|
+
numberOfParties: number;
|
|
31
|
+
threshold: number;
|
|
32
|
+
};
|
|
33
|
+
THREE_OF_FIVE: {
|
|
34
|
+
numberOfParties: number;
|
|
35
|
+
threshold: number;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/mpc/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,wBAAwB;;;;CAMpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,MAAM,EACN;IAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,CA2BjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,MAAM;oBA7B/B,MAAM,EAAE;sBAAoB,gBAAgB;CAmC/D,CAAC;AAEF,oBAAY,wBAAwB;IAClC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAChC;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
package/src/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC"}
|