@dynamic-labs-sdk/client 1.20.0 → 1.21.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/dist/{updateAuthFromVerifyResponse-DGrmo9MJ.native.esm.js → NativeModuleNotLinkedError-DsfdAti9.native.esm.js} +33 -4
- package/dist/NativeModuleNotLinkedError-DsfdAti9.native.esm.js.map +1 -0
- package/dist/client/createDynamicClient/assertClientProps/assertClientProps.d.ts +16 -0
- package/dist/client/createDynamicClient/assertClientProps/assertClientProps.d.ts.map +1 -0
- package/dist/client/createDynamicClient/assertClientProps/index.d.ts +2 -0
- package/dist/client/createDynamicClient/assertClientProps/index.d.ts.map +1 -0
- package/dist/client/createDynamicClient/createDynamicClient.d.ts.map +1 -1
- package/dist/client/types/DynamicClientConfig.d.ts +35 -0
- package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/dist/consumeMfaTokenIfRequiredForAction-CblIF3QS.esm.js +12 -0
- package/dist/consumeMfaTokenIfRequiredForAction-CblIF3QS.esm.js.map +1 -0
- package/dist/consumeMfaTokenIfRequiredForAction-CrdEGCJs.cjs +17 -0
- package/dist/consumeMfaTokenIfRequiredForAction-CrdEGCJs.cjs.map +1 -0
- package/dist/core.cjs +9 -8
- package/dist/core.cjs.map +1 -1
- package/dist/core.esm.js +6 -5
- package/dist/core.esm.js.map +1 -1
- package/dist/core.native.esm.js +5 -5
- package/dist/errors/WaasLoadFailedError.d.ts +45 -0
- package/dist/errors/WaasLoadFailedError.d.ts.map +1 -0
- package/dist/exports/index.d.ts +1 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +10 -0
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-xmoBE1cZ.native.esm.js → getNetworkProviderFromNetworkId-CA5-rcb9.native.esm.js} +2 -3
- package/dist/{getNetworkProviderFromNetworkId-xmoBE1cZ.native.esm.js.map → getNetworkProviderFromNetworkId-CA5-rcb9.native.esm.js.map} +1 -1
- package/dist/{getNetworkProviderFromNetworkId-DaVOUpiF.cjs → getNetworkProviderFromNetworkId-DksFqRIB.cjs} +48 -13
- package/dist/getNetworkProviderFromNetworkId-DksFqRIB.cjs.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-BlBx4Zh2.esm.js → getNetworkProviderFromNetworkId-DlOQ94mF.esm.js} +48 -13
- package/dist/getNetworkProviderFromNetworkId-DlOQ94mF.esm.js.map +1 -0
- package/dist/{getSignedSessionId-BVc-sgeN.esm.js → getSignedSessionId-BHGXB2ZS.native.esm.js} +3 -3
- package/dist/{getSignedSessionId-DlmNVy-g.native.esm.js.map → getSignedSessionId-BHGXB2ZS.native.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-3L_aMxVD.cjs → getSignedSessionId-BWTQMtk6.cjs} +2 -17
- package/dist/getSignedSessionId-BWTQMtk6.cjs.map +1 -0
- package/dist/{getSignedSessionId-DlmNVy-g.native.esm.js → getSignedSessionId-C4igTuKk.esm.js} +3 -12
- package/dist/getSignedSessionId-C4igTuKk.esm.js.map +1 -0
- package/dist/{getWalletProviderByKey-BilyW5Jr.cjs → getWalletProviderByKey--ChkWHSF.cjs} +2 -2
- package/dist/{getWalletProviderByKey-BilyW5Jr.cjs.map → getWalletProviderByKey--ChkWHSF.cjs.map} +1 -1
- package/dist/{getWalletProviderByKey-PIO1ygzj.esm.js → getWalletProviderByKey-CXC1EXpO.esm.js} +2 -2
- package/dist/{getWalletProviderByKey-PIO1ygzj.esm.js.map → getWalletProviderByKey-CXC1EXpO.esm.js.map} +1 -1
- package/dist/{getWalletProviderByKey-Ccx26JsF.native.esm.js → getWalletProviderByKey-CeY5t5tY.native.esm.js} +2 -2
- package/dist/{getWalletProviderByKey-Ccx26JsF.native.esm.js.map → getWalletProviderByKey-CeY5t5tY.native.esm.js.map} +1 -1
- package/dist/index.cjs +48 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +34 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/index.native.esm.js +34 -7
- package/dist/index.native.esm.js.map +1 -1
- package/dist/{isDynamicWaasEnabled-C4oPJ0fw.native.esm.js → isDynamicWaasEnabled-CsNM4kzO.native.esm.js} +2 -2
- package/dist/{isDynamicWaasEnabled-C4oPJ0fw.native.esm.js.map → isDynamicWaasEnabled-CsNM4kzO.native.esm.js.map} +1 -1
- package/dist/{isDynamicWaasEnabled-JpnXC0f7.esm.js → isDynamicWaasEnabled-DwY38pjA.esm.js} +2 -2
- package/dist/{isDynamicWaasEnabled-JpnXC0f7.esm.js.map → isDynamicWaasEnabled-DwY38pjA.esm.js.map} +1 -1
- package/dist/{isDynamicWaasEnabled-DXVcXa66.cjs → isDynamicWaasEnabled-v7x1B-0g.cjs} +2 -2
- package/dist/{isDynamicWaasEnabled-DXVcXa66.cjs.map → isDynamicWaasEnabled-v7x1B-0g.cjs.map} +1 -1
- package/dist/{isMfaRequiredForAction-D6rt_Tzn.native.esm.js → isMfaRequiredForAction-C-wDmRZj.native.esm.js} +3 -32
- package/dist/isMfaRequiredForAction-C-wDmRZj.native.esm.js.map +1 -0
- package/dist/isMfaRequiredForAction-C_a46AcW.esm.js +77 -0
- package/dist/isMfaRequiredForAction-C_a46AcW.esm.js.map +1 -0
- package/dist/isMfaRequiredForAction-m43LQlLi.cjs +94 -0
- package/dist/isMfaRequiredForAction-m43LQlLi.cjs.map +1 -0
- package/dist/{isUserOnboardingComplete-diGA1wlX.esm.js → isUserOnboardingComplete-CUZO4avc.esm.js} +44 -4
- package/dist/isUserOnboardingComplete-CUZO4avc.esm.js.map +1 -0
- package/dist/{isUserOnboardingComplete-DnExOJu7.native.esm.js → isUserOnboardingComplete-CzyupoSE.native.esm.js} +44 -4
- package/dist/{isUserOnboardingComplete-CsoV3ae7.cjs.map → isUserOnboardingComplete-CzyupoSE.native.esm.js.map} +1 -1
- package/dist/{isUserOnboardingComplete-CsoV3ae7.cjs → isUserOnboardingComplete-D_O53a98.cjs} +49 -3
- package/dist/isUserOnboardingComplete-D_O53a98.cjs.map +1 -0
- package/dist/{migrateFromFireblocks-BrWXstt8.cjs → migrateFromFireblocks-BbRj_YOv.cjs} +54 -3
- package/dist/migrateFromFireblocks-BbRj_YOv.cjs.map +1 -0
- package/dist/{migrateFromFireblocks-CqL5l58Q.native.esm.js → migrateFromFireblocks-Vic3tb61.esm.js} +43 -4
- package/dist/migrateFromFireblocks-Vic3tb61.esm.js.map +1 -0
- package/dist/migrateFromFireblocks-hfh_j7wm.native.esm.js +321 -0
- package/dist/migrateFromFireblocks-hfh_j7wm.native.esm.js.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts +25 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/addBusinessAccountSigner.d.ts +35 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/addBusinessAccountSigner.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts +19 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts +184 -0
- package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/createBusinessAccount.d.ts +16 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/createBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/createWalletForBusinessAccount.d.ts +36 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/createWalletForBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/getBusinessAccount.d.ts +15 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/getBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/getBusinessAccountsClient.d.ts +12 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/getBusinessAccountsClient.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/listBusinessAccounts.d.ts +10 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/listBusinessAccounts.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts +33 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts +37 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts.map +1 -0
- package/dist/modules/waas/createWaasClient/createWaasClient.d.ts.map +1 -1
- package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/dist/modules/waas/createWaasProvider/isWaasLoadExhaustionError.d.ts +11 -0
- package/dist/modules/waas/createWaasProvider/isWaasLoadExhaustionError.d.ts.map +1 -0
- package/dist/modules/waas/waas.types.d.ts +11 -0
- package/dist/modules/waas/waas.types.d.ts.map +1 -1
- package/dist/services/keychain/createKeychainService/utils/openDatabase.d.ts +9 -1
- package/dist/services/keychain/createKeychainService/utils/openDatabase.d.ts.map +1 -1
- package/dist/services/keychain/createKeychainService/utils/withDatabase/withDatabase.d.ts +2 -1
- package/dist/services/keychain/createKeychainService/utils/withDatabase/withDatabase.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/{updateAuthFromVerifyResponse-CVDQVEQM.esm.js → updateAuthFromVerifyResponse-BEoc7f0m.esm.js} +262 -4
- package/dist/updateAuthFromVerifyResponse-BEoc7f0m.esm.js.map +1 -0
- package/dist/{updateAuthFromVerifyResponse-B0K1VJ8b.cjs → updateAuthFromVerifyResponse-Dg8THxkT.cjs} +289 -19
- package/dist/updateAuthFromVerifyResponse-Dg8THxkT.cjs.map +1 -0
- package/dist/utils/createTranslateRejection/createTranslateRejection.d.ts +29 -0
- package/dist/utils/createTranslateRejection/createTranslateRejection.d.ts.map +1 -0
- package/dist/utils/createTranslateRejection/index.d.ts +3 -0
- package/dist/utils/createTranslateRejection/index.d.ts.map +1 -0
- package/dist/waas.cjs +281 -17
- package/dist/waas.cjs.map +1 -1
- package/dist/waas.esm.js +273 -18
- package/dist/waas.esm.js.map +1 -1
- package/dist/waas.native.esm.js +272 -18
- package/dist/waas.native.esm.js.map +1 -1
- package/dist/waasCore.cjs +291 -170
- package/dist/waasCore.cjs.map +1 -1
- package/dist/waasCore.esm.js +285 -164
- package/dist/waasCore.esm.js.map +1 -1
- package/dist/waasCore.native.esm.js +273 -371
- package/dist/waasCore.native.esm.js.map +1 -1
- package/ios/DynamicClientScreenshotProtection.mm +70 -32
- package/package.json +4 -4
- package/dist/getNetworkProviderFromNetworkId-BlBx4Zh2.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-DaVOUpiF.cjs.map +0 -1
- package/dist/getSignedSessionId-3L_aMxVD.cjs.map +0 -1
- package/dist/getSignedSessionId-BVc-sgeN.esm.js.map +0 -1
- package/dist/isMfaRequiredForAction-20E6GsSc.esm.js +0 -336
- package/dist/isMfaRequiredForAction-20E6GsSc.esm.js.map +0 -1
- package/dist/isMfaRequiredForAction-9bYtZcve.cjs +0 -384
- package/dist/isMfaRequiredForAction-9bYtZcve.cjs.map +0 -1
- package/dist/isMfaRequiredForAction-D6rt_Tzn.native.esm.js.map +0 -1
- package/dist/isUserOnboardingComplete-DnExOJu7.native.esm.js.map +0 -1
- package/dist/isUserOnboardingComplete-diGA1wlX.esm.js.map +0 -1
- package/dist/migrateFromFireblocks--G-432sl.esm.js +0 -65
- package/dist/migrateFromFireblocks--G-432sl.esm.js.map +0 -1
- package/dist/migrateFromFireblocks-BrWXstt8.cjs.map +0 -1
- package/dist/migrateFromFireblocks-CqL5l58Q.native.esm.js.map +0 -1
- package/dist/updateAuthFromVerifyResponse-B0K1VJ8b.cjs.map +0 -1
- package/dist/updateAuthFromVerifyResponse-CVDQVEQM.esm.js.map +0 -1
- package/dist/updateAuthFromVerifyResponse-DGrmo9MJ.native.esm.js.map +0 -1
package/dist/waasCore.esm.js
CHANGED
|
@@ -1,46 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { Ct as name, I as getChainFromVerifiedCredentialChain, St as getCore, d as DYNAMIC_WAAS_METADATA, ft as getElevatedAccessToken, i as InvalidParamError, wt as version } from "./updateAuthFromVerifyResponse-BEoc7f0m.esm.js";
|
|
2
|
+
import "./isDynamicWaasEnabled-DwY38pjA.esm.js";
|
|
3
|
+
import { a as WaasOnboardingIncompleteError, i as preconnectWaasIframe, o as WaasLoadFailedError, t as isUserOnboardingComplete } from "./isUserOnboardingComplete-CUZO4avc.esm.js";
|
|
4
|
+
import "./isMfaRequiredForAction-C_a46AcW.esm.js";
|
|
5
|
+
import { t as consumeMfaTokenIfRequiredForAction } from "./consumeMfaTokenIfRequiredForAction-CblIF3QS.esm.js";
|
|
6
|
+
import { t as getSignedSessionId } from "./getSignedSessionId-C4igTuKk.esm.js";
|
|
7
|
+
import { i as createWaasClient, n as getWaasWalletProviderFromWalletAccount, r as getWaasChainNameFromChain, t as migrateFromFireblocks } from "./migrateFromFireblocks-Vic3tb61.esm.js";
|
|
7
8
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
8
9
|
import { MFAAction, TokenScope, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
9
|
-
import {
|
|
10
|
+
import { ThresholdSignatureScheme, WalletOperation } from "@dynamic-labs-wallet/browser-wallet-client";
|
|
10
11
|
|
|
11
|
-
//#region src/
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
});
|
|
12
|
+
//#region src/utils/createTranslateRejection/createTranslateRejection.ts
|
|
13
|
+
/**
|
|
14
|
+
* Builds a reusable decorator, bound once to a `match`/`mapTo` pair, that wraps
|
|
15
|
+
* any async function so a matching rejection is rethrown as `mapTo(error)`
|
|
16
|
+
* while every other rejection — and every resolved value — passes through
|
|
17
|
+
* untouched. Unmatched errors are rethrown by reference, so the decorator can
|
|
18
|
+
* never swallow or reshape an error it was not asked to translate.
|
|
19
|
+
*
|
|
20
|
+
* Binding `match`/`mapTo` up front keeps the generic wrapping machinery here
|
|
21
|
+
* instead of at the call site: consumers get a plain `(fn) => wrappedFn`
|
|
22
|
+
* decorator they can apply to many functions of differing signatures, each of
|
|
23
|
+
* which keeps its own argument and return types.
|
|
24
|
+
*
|
|
25
|
+
* @notInstrumented
|
|
26
|
+
*/
|
|
27
|
+
const createTranslateRejection = ({ match, mapTo }) => (fn) => async (...args) => {
|
|
28
|
+
try {
|
|
29
|
+
return await fn(...args);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
if (match(error)) throw mapTo(error);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
36
34
|
};
|
|
37
35
|
|
|
38
36
|
//#endregion
|
|
39
|
-
//#region src/modules/waas/
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
//#region src/modules/waas/createWaasProvider/isWaasLoadExhaustionError.ts
|
|
38
|
+
/**
|
|
39
|
+
* Exact message prefix of the rejection thrown by
|
|
40
|
+
* `@dynamic-labs-wallet/browser-wallet-client` when the secure container load
|
|
41
|
+
* exhausts all retry attempts. The upstream library throws a plain `Error`
|
|
42
|
+
* with no code, so message matching is the only detection mechanism available;
|
|
43
|
+
* the dependency is pinned to an exact version and the spec pins this string
|
|
44
|
+
* so drift is caught at upgrade time.
|
|
45
|
+
*/
|
|
46
|
+
const UPSTREAM_LOAD_EXHAUSTION_MESSAGE_PREFIX = "Failed to load iframe after all retry attempts";
|
|
47
|
+
/**
|
|
48
|
+
* True when `error` is the upstream "load retry attempts exhausted" rejection
|
|
49
|
+
* from the embedded (WaaS) wallet's secure container load. Narrows to `Error`
|
|
50
|
+
* so the matched value can be forwarded as a typed error cause without a cast,
|
|
51
|
+
* and guards `instanceof Error` before reading `.message` so a non-`Error`
|
|
52
|
+
* rejection never throws during detection.
|
|
53
|
+
*
|
|
54
|
+
* @notInstrumented
|
|
55
|
+
*/
|
|
56
|
+
const isWaasLoadExhaustionError = (error) => error instanceof Error && error.message.startsWith(UPSTREAM_LOAD_EXHAUSTION_MESSAGE_PREFIX);
|
|
44
57
|
|
|
45
58
|
//#endregion
|
|
46
59
|
//#region src/modules/waas/createWaasProvider/createWaasProvider.ts
|
|
@@ -50,25 +63,49 @@ const createWaasProvider = ({ sdkClient, chain }) => {
|
|
|
50
63
|
const logger = getCore(sdkClient).logger;
|
|
51
64
|
let _waasClient;
|
|
52
65
|
let _waasClientSessionId;
|
|
66
|
+
const resetClientIfCurrent = (client) => {
|
|
67
|
+
if (_waasClient === client) {
|
|
68
|
+
_waasClient = void 0;
|
|
69
|
+
_waasClientSessionId = void 0;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
53
72
|
const getWaasClient = async () => {
|
|
54
73
|
const currentSessionId = getCore(sdkClient).state.get().user?.sessionId;
|
|
55
74
|
if (_waasClient && currentSessionId !== _waasClientSessionId) _waasClient = void 0;
|
|
56
75
|
if (!_waasClient) {
|
|
57
76
|
if (!isUserOnboardingComplete(sdkClient)) throw new WaasOnboardingIncompleteError();
|
|
58
|
-
|
|
77
|
+
const builtClient = createWaasClient({ chainName: getWaasChainNameFromChain(chain) }, sdkClient);
|
|
78
|
+
_waasClient = builtClient;
|
|
59
79
|
_waasClientSessionId = currentSessionId;
|
|
60
|
-
|
|
80
|
+
try {
|
|
81
|
+
await builtClient.initialize();
|
|
82
|
+
} catch (error) {
|
|
83
|
+
resetClientIfCurrent(builtClient);
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
61
86
|
}
|
|
62
87
|
return _waasClient;
|
|
63
88
|
};
|
|
89
|
+
const discardClientOnLoadFailure = async ({ waasClient, operation }) => {
|
|
90
|
+
try {
|
|
91
|
+
return await operation();
|
|
92
|
+
} catch (error) {
|
|
93
|
+
if (isWaasLoadExhaustionError(error)) resetClientIfCurrent(waasClient);
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
64
97
|
const backupKeySharesToGoogleDrive = async ({ googleDriveAccessToken, password, walletAccount }) => {
|
|
65
98
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
99
|
+
const waasClient = await getWaasClient();
|
|
100
|
+
return discardClientOnLoadFailure({
|
|
101
|
+
operation: () => waasClient.backupKeySharesToGoogleDrive({
|
|
102
|
+
accountAddress: walletAccount.address,
|
|
103
|
+
authToken: sdkClient.token ?? void 0,
|
|
104
|
+
googleDriveAccessToken,
|
|
105
|
+
password,
|
|
106
|
+
signedSessionId
|
|
107
|
+
}),
|
|
108
|
+
waasClient
|
|
72
109
|
});
|
|
73
110
|
};
|
|
74
111
|
const createWalletAccount = async (args = {}) => {
|
|
@@ -77,30 +114,43 @@ const createWaasProvider = ({ sdkClient, chain }) => {
|
|
|
77
114
|
thresholdSignatureScheme: args.thresholdSignatureScheme
|
|
78
115
|
});
|
|
79
116
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
117
|
+
const waasClient = await getWaasClient();
|
|
118
|
+
return await discardClientOnLoadFailure({
|
|
119
|
+
operation: () => waasClient.createWalletAccount({
|
|
120
|
+
authToken: sdkClient.token ?? void 0,
|
|
121
|
+
bitcoinConfig: args.bitcoinConfig,
|
|
122
|
+
businessAccountId: args.businessAccountId,
|
|
123
|
+
password: args.password,
|
|
124
|
+
signedSessionId,
|
|
125
|
+
thresholdSignatureScheme: args.thresholdSignatureScheme ?? ThresholdSignatureScheme.TWO_OF_TWO
|
|
126
|
+
}),
|
|
127
|
+
waasClient
|
|
86
128
|
});
|
|
87
129
|
};
|
|
88
130
|
const delegateKeyShares = async ({ password, walletAccount }) => {
|
|
89
131
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
132
|
+
const waasClient = await getWaasClient();
|
|
133
|
+
return discardClientOnLoadFailure({
|
|
134
|
+
operation: () => waasClient.delegateKeyShares({
|
|
135
|
+
accountAddress: walletAccount.address,
|
|
136
|
+
authToken: sdkClient.token ?? void 0,
|
|
137
|
+
password,
|
|
138
|
+
signedSessionId
|
|
139
|
+
}),
|
|
140
|
+
waasClient
|
|
95
141
|
});
|
|
96
142
|
};
|
|
97
143
|
const exportClientKeyshares = async ({ password, walletAccount }) => {
|
|
98
144
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
145
|
+
const waasClient = await getWaasClient();
|
|
146
|
+
await discardClientOnLoadFailure({
|
|
147
|
+
operation: () => waasClient.exportClientKeyshares({
|
|
148
|
+
accountAddress: walletAccount.address,
|
|
149
|
+
authToken: sdkClient.token ?? void 0,
|
|
150
|
+
password,
|
|
151
|
+
signedSessionId
|
|
152
|
+
}),
|
|
153
|
+
waasClient
|
|
104
154
|
});
|
|
105
155
|
};
|
|
106
156
|
const exportPrivateKey = async ({ container, displayContainer, walletAccount, password }) => {
|
|
@@ -108,78 +158,120 @@ const createWaasProvider = ({ sdkClient, chain }) => {
|
|
|
108
158
|
const waasClient = await getWaasClient();
|
|
109
159
|
const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasExport }, sdkClient);
|
|
110
160
|
const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletexport }, sdkClient);
|
|
111
|
-
await
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
161
|
+
await discardClientOnLoadFailure({
|
|
162
|
+
operation: () => waasClient.exportPrivateKey({
|
|
163
|
+
accountAddress: walletAccount.address,
|
|
164
|
+
authToken: sdkClient.token ?? void 0,
|
|
165
|
+
container,
|
|
166
|
+
displayContainer,
|
|
167
|
+
elevatedAccessToken,
|
|
168
|
+
mfaToken,
|
|
169
|
+
password,
|
|
170
|
+
signedSessionId
|
|
171
|
+
}),
|
|
172
|
+
waasClient
|
|
120
173
|
});
|
|
121
174
|
};
|
|
122
175
|
const restoreUserShareForWalletAccount = async ({ walletAccount }) => {
|
|
123
176
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
177
|
+
const waasClient = await getWaasClient();
|
|
178
|
+
await discardClientOnLoadFailure({
|
|
179
|
+
operation: () => waasClient.getWallet({
|
|
180
|
+
accountAddress: walletAccount.address,
|
|
181
|
+
authToken: sdkClient.token ?? void 0,
|
|
182
|
+
signedSessionId,
|
|
183
|
+
walletOperation: WalletOperation.SIGN_MESSAGE
|
|
184
|
+
}),
|
|
185
|
+
waasClient
|
|
129
186
|
});
|
|
130
187
|
};
|
|
131
188
|
const importPrivateKey = async ({ privateKey, thresholdSignatureScheme = ThresholdSignatureScheme.TWO_OF_TWO }) => {
|
|
132
189
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
190
|
+
const walletClient = await getWaasClient();
|
|
191
|
+
await discardClientOnLoadFailure({
|
|
192
|
+
operation: () => walletClient.importPrivateKey({
|
|
193
|
+
authToken: sdkClient.token ?? void 0,
|
|
194
|
+
privateKey,
|
|
195
|
+
signedSessionId,
|
|
196
|
+
thresholdSignatureScheme
|
|
197
|
+
}),
|
|
198
|
+
waasClient: walletClient
|
|
138
199
|
});
|
|
139
200
|
};
|
|
140
201
|
const migrateFromFireblocks$1 = async ({ coinTypes, deviceId, expectedAddresses, jwt, password, storage }) => {
|
|
141
202
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
203
|
+
const walletClient = await getWaasClient();
|
|
204
|
+
return discardClientOnLoadFailure({
|
|
205
|
+
operation: () => walletClient.migrateFromFireblocks({
|
|
206
|
+
authToken: sdkClient.token ?? void 0,
|
|
207
|
+
fireblocks: {
|
|
208
|
+
deviceId,
|
|
209
|
+
expectedAddresses,
|
|
210
|
+
jwt,
|
|
211
|
+
ncwStorage: storage,
|
|
212
|
+
walletPassword: password,
|
|
213
|
+
...coinTypes ? { coinTypes } : {}
|
|
214
|
+
},
|
|
215
|
+
signedSessionId
|
|
216
|
+
}),
|
|
217
|
+
waasClient: walletClient
|
|
153
218
|
});
|
|
154
219
|
};
|
|
155
220
|
const refreshWalletAccountShares = async ({ password, walletAccount }) => {
|
|
156
221
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
157
222
|
const walletClient = await getWaasClient();
|
|
158
223
|
const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasRefresh }, sdkClient);
|
|
159
|
-
return
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
224
|
+
return discardClientOnLoadFailure({
|
|
225
|
+
operation: () => walletClient.refreshWalletAccountShares({
|
|
226
|
+
accountAddress: walletAccount.address,
|
|
227
|
+
authToken: sdkClient.token ?? void 0,
|
|
228
|
+
mfaToken,
|
|
229
|
+
password,
|
|
230
|
+
signedSessionId
|
|
231
|
+
}),
|
|
232
|
+
waasClient: walletClient
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
const reshareToNewSignerShareSet = async ({ businessAccountId, password, signerType, targetSignerIdentity, walletAccount }) => {
|
|
236
|
+
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
237
|
+
const waasClient = await getWaasClient();
|
|
238
|
+
return discardClientOnLoadFailure({
|
|
239
|
+
operation: () => waasClient.reshareToNewSignerShareSet({
|
|
240
|
+
accountAddress: walletAccount.address,
|
|
241
|
+
authToken: sdkClient.token ?? void 0,
|
|
242
|
+
businessAccountId,
|
|
243
|
+
password,
|
|
244
|
+
signedSessionId,
|
|
245
|
+
signerType,
|
|
246
|
+
targetSignerIdentity
|
|
247
|
+
}),
|
|
248
|
+
waasClient
|
|
165
249
|
});
|
|
166
250
|
};
|
|
167
251
|
const revokeDelegation = async ({ password, walletAccount }) => {
|
|
168
252
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
253
|
+
const waasClient = await getWaasClient();
|
|
254
|
+
return discardClientOnLoadFailure({
|
|
255
|
+
operation: () => waasClient.revokeDelegation({
|
|
256
|
+
accountAddress: walletAccount.address,
|
|
257
|
+
authToken: sdkClient.token ?? void 0,
|
|
258
|
+
password,
|
|
259
|
+
signedSessionId
|
|
260
|
+
}),
|
|
261
|
+
waasClient
|
|
174
262
|
});
|
|
175
263
|
};
|
|
176
264
|
const setWaasWalletAccountPassword = async ({ password, walletAccount }) => {
|
|
177
265
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
266
|
+
const waasClient = await getWaasClient();
|
|
267
|
+
return discardClientOnLoadFailure({
|
|
268
|
+
operation: () => waasClient.setPassword({
|
|
269
|
+
accountAddress: walletAccount.address,
|
|
270
|
+
authToken: sdkClient.token ?? void 0,
|
|
271
|
+
newPassword: password,
|
|
272
|
+
signedSessionId
|
|
273
|
+
}),
|
|
274
|
+
waasClient
|
|
183
275
|
});
|
|
184
276
|
};
|
|
185
277
|
const signRawMessage = async ({ message, password, walletAccount }) => {
|
|
@@ -187,14 +279,18 @@ const createWaasProvider = ({ sdkClient, chain }) => {
|
|
|
187
279
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
188
280
|
const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, sdkClient);
|
|
189
281
|
const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, sdkClient);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
282
|
+
const walletClient = await getWaasClient();
|
|
283
|
+
return { signature: await discardClientOnLoadFailure({
|
|
284
|
+
operation: () => walletClient.signRawMessage({
|
|
285
|
+
accountAddress: walletAccount.address,
|
|
286
|
+
authToken: sdkClient.token ?? void 0,
|
|
287
|
+
elevatedAccessToken,
|
|
288
|
+
message,
|
|
289
|
+
mfaToken,
|
|
290
|
+
password,
|
|
291
|
+
signedSessionId
|
|
292
|
+
}),
|
|
293
|
+
waasClient: walletClient
|
|
198
294
|
}) };
|
|
199
295
|
};
|
|
200
296
|
const destroy = async (args) => {
|
|
@@ -205,78 +301,103 @@ const createWaasProvider = ({ sdkClient, chain }) => {
|
|
|
205
301
|
};
|
|
206
302
|
const updatePassword = async ({ walletAccount, currentPassword, newPassword }) => {
|
|
207
303
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
304
|
+
const waasClient = await getWaasClient();
|
|
305
|
+
return discardClientOnLoadFailure({
|
|
306
|
+
operation: () => waasClient.updatePassword({
|
|
307
|
+
accountAddress: walletAccount.address,
|
|
308
|
+
authToken: sdkClient.token ?? void 0,
|
|
309
|
+
existingPassword: currentPassword,
|
|
310
|
+
newPassword,
|
|
311
|
+
signedSessionId
|
|
312
|
+
}),
|
|
313
|
+
waasClient
|
|
214
314
|
});
|
|
215
315
|
};
|
|
216
316
|
const signMessage = async ({ message, walletAccount }) => {
|
|
217
317
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
218
318
|
const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, sdkClient);
|
|
219
319
|
const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, sdkClient);
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
320
|
+
const waasClient = await getWaasClient();
|
|
321
|
+
return { signature: await discardClientOnLoadFailure({
|
|
322
|
+
operation: () => waasClient.signMessage({
|
|
323
|
+
accountAddress: walletAccount.address,
|
|
324
|
+
authToken: sdkClient.token ?? void 0,
|
|
325
|
+
elevatedAccessToken,
|
|
326
|
+
message,
|
|
327
|
+
mfaToken,
|
|
328
|
+
signedSessionId
|
|
329
|
+
}),
|
|
330
|
+
waasClient
|
|
227
331
|
}) };
|
|
228
332
|
};
|
|
229
333
|
const signSerializedTransaction = async ({ chainId, serializedTransaction, walletAccount }) => {
|
|
230
334
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
231
335
|
const mfaToken = await consumeMfaTokenIfRequiredForAction({ mfaAction: MFAAction.WalletWaasSign }, sdkClient);
|
|
232
336
|
const elevatedAccessToken = getElevatedAccessToken({ scope: TokenScope.Walletsign }, sdkClient);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
337
|
+
const waasClient = await getWaasClient();
|
|
338
|
+
return { signature: await discardClientOnLoadFailure({
|
|
339
|
+
operation: () => waasClient.signTransaction({
|
|
340
|
+
authToken: sdkClient.token ?? void 0,
|
|
341
|
+
chainId,
|
|
342
|
+
elevatedAccessToken,
|
|
343
|
+
mfaToken,
|
|
344
|
+
senderAddress: walletAccount.address,
|
|
345
|
+
signedSessionId,
|
|
346
|
+
transaction: serializedTransaction
|
|
347
|
+
}),
|
|
348
|
+
waasClient
|
|
241
349
|
}) };
|
|
242
350
|
};
|
|
243
351
|
const getWalletRecoveryState = async ({ walletAccount }) => {
|
|
244
352
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
353
|
+
const waasClient = await getWaasClient();
|
|
354
|
+
return discardClientOnLoadFailure({
|
|
355
|
+
operation: () => waasClient.getWalletRecoveryState({
|
|
356
|
+
accountAddress: walletAccount.address,
|
|
357
|
+
authToken: sdkClient.token ?? void 0,
|
|
358
|
+
signedSessionId
|
|
359
|
+
}),
|
|
360
|
+
waasClient
|
|
249
361
|
});
|
|
250
362
|
};
|
|
251
363
|
const unlockWallet = async ({ password, walletAccount }) => {
|
|
252
364
|
const { signature: signedSessionId } = await getSignedSessionId(sdkClient);
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
365
|
+
const waasClient = await getWaasClient();
|
|
366
|
+
return discardClientOnLoadFailure({
|
|
367
|
+
operation: () => waasClient.unlockWallet({
|
|
368
|
+
accountAddress: walletAccount.address,
|
|
369
|
+
authToken: sdkClient.token ?? void 0,
|
|
370
|
+
password,
|
|
371
|
+
signedSessionId
|
|
372
|
+
}),
|
|
373
|
+
waasClient
|
|
258
374
|
});
|
|
259
375
|
};
|
|
376
|
+
const translateLoadFailure = createTranslateRejection({
|
|
377
|
+
mapTo: (error) => new WaasLoadFailedError({ cause: error }),
|
|
378
|
+
match: isWaasLoadExhaustionError
|
|
379
|
+
});
|
|
260
380
|
return {
|
|
261
|
-
backupKeySharesToGoogleDrive,
|
|
262
|
-
createWalletAccount,
|
|
263
|
-
delegateKeyShares,
|
|
264
|
-
destroy,
|
|
265
|
-
exportClientKeyshares,
|
|
266
|
-
exportPrivateKey,
|
|
267
|
-
getWaasClient,
|
|
268
|
-
getWalletRecoveryState,
|
|
269
|
-
importPrivateKey,
|
|
270
|
-
migrateFromFireblocks: migrateFromFireblocks$1,
|
|
271
|
-
refreshWalletAccountShares,
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
381
|
+
backupKeySharesToGoogleDrive: translateLoadFailure(backupKeySharesToGoogleDrive),
|
|
382
|
+
createWalletAccount: translateLoadFailure(createWalletAccount),
|
|
383
|
+
delegateKeyShares: translateLoadFailure(delegateKeyShares),
|
|
384
|
+
destroy: translateLoadFailure(destroy),
|
|
385
|
+
exportClientKeyshares: translateLoadFailure(exportClientKeyshares),
|
|
386
|
+
exportPrivateKey: translateLoadFailure(exportPrivateKey),
|
|
387
|
+
getWaasClient: translateLoadFailure(getWaasClient),
|
|
388
|
+
getWalletRecoveryState: translateLoadFailure(getWalletRecoveryState),
|
|
389
|
+
importPrivateKey: translateLoadFailure(importPrivateKey),
|
|
390
|
+
migrateFromFireblocks: translateLoadFailure(migrateFromFireblocks$1),
|
|
391
|
+
refreshWalletAccountShares: translateLoadFailure(refreshWalletAccountShares),
|
|
392
|
+
reshareToNewSignerShareSet: translateLoadFailure(reshareToNewSignerShareSet),
|
|
393
|
+
restoreUserShareForWalletAccount: translateLoadFailure(restoreUserShareForWalletAccount),
|
|
394
|
+
revokeDelegation: translateLoadFailure(revokeDelegation),
|
|
395
|
+
setWaasWalletAccountPassword: translateLoadFailure(setWaasWalletAccountPassword),
|
|
396
|
+
signMessage: translateLoadFailure(signMessage),
|
|
397
|
+
signRawMessage: translateLoadFailure(signRawMessage),
|
|
398
|
+
signSerializedTransaction: translateLoadFailure(signSerializedTransaction),
|
|
399
|
+
unlockWallet: translateLoadFailure(unlockWallet),
|
|
400
|
+
updatePassword: translateLoadFailure(updatePassword)
|
|
280
401
|
};
|
|
281
402
|
};
|
|
282
403
|
|