@dynamic-labs-wallet/browser 1.0.28 → 1.0.29
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 +272 -29
- package/index.esm.js +273 -30
- package/package.json +4 -4
- package/src/client.d.ts +27 -4
- package/src/client.d.ts.map +1 -1
package/index.cjs
CHANGED
|
@@ -2760,7 +2760,7 @@ class DynamicWalletClient {
|
|
|
2760
2760
|
};
|
|
2761
2761
|
}
|
|
2762
2762
|
}
|
|
2763
|
-
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete }) {
|
|
2763
|
+
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
|
|
2764
2764
|
// Initialize keygen, create room, and create the wallet account on the server
|
|
2765
2765
|
const data = await this.apiClient.createWalletAccount({
|
|
2766
2766
|
chainName,
|
|
@@ -2768,6 +2768,7 @@ class DynamicWalletClient {
|
|
|
2768
2768
|
dynamicRequestId,
|
|
2769
2769
|
thresholdSignatureScheme,
|
|
2770
2770
|
bitcoinConfig,
|
|
2771
|
+
businessAccountId,
|
|
2771
2772
|
onError,
|
|
2772
2773
|
onCeremonyComplete
|
|
2773
2774
|
});
|
|
@@ -2992,7 +2993,7 @@ class DynamicWalletClient {
|
|
|
2992
2993
|
shouldRetry: (error)=>!isNonRetryableCeremonyError(error)
|
|
2993
2994
|
});
|
|
2994
2995
|
}
|
|
2995
|
-
async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, onCeremonyComplete, traceContext, password, signedSessionId }) {
|
|
2996
|
+
async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
|
|
2996
2997
|
const dynamicRequestId = uuid.v4();
|
|
2997
2998
|
try {
|
|
2998
2999
|
this.assertPasswordRequired(password);
|
|
@@ -3022,6 +3023,7 @@ class DynamicWalletClient {
|
|
|
3022
3023
|
dynamicRequestId,
|
|
3023
3024
|
thresholdSignatureScheme,
|
|
3024
3025
|
bitcoinConfig,
|
|
3026
|
+
businessAccountId,
|
|
3025
3027
|
onCeremonyComplete
|
|
3026
3028
|
});
|
|
3027
3029
|
this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
|
|
@@ -3052,6 +3054,7 @@ class DynamicWalletClient {
|
|
|
3052
3054
|
dynamicRequestId,
|
|
3053
3055
|
thresholdSignatureScheme,
|
|
3054
3056
|
bitcoinConfig,
|
|
3057
|
+
businessAccountId,
|
|
3055
3058
|
onCeremonyComplete
|
|
3056
3059
|
})
|
|
3057
3060
|
});
|
|
@@ -3729,7 +3732,7 @@ class DynamicWalletClient {
|
|
|
3729
3732
|
// would race ceremony_complete and the atomic swap could target the stale
|
|
3730
3733
|
// row. refresh's API call returns on room_created (not the local MPC
|
|
3731
3734
|
// result), so the gate await sits between the local MPC and the backup.
|
|
3732
|
-
const ceremonyGate = this.createCeremonyTerminalGate((
|
|
3735
|
+
const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
|
|
3733
3736
|
this.logger.info('[WaasRefresh] ceremony_complete received', {
|
|
3734
3737
|
context: {
|
|
3735
3738
|
walletId: wallet.walletId,
|
|
@@ -3949,6 +3952,227 @@ class DynamicWalletClient {
|
|
|
3949
3952
|
googleDriveTokenSource
|
|
3950
3953
|
}));
|
|
3951
3954
|
}
|
|
3955
|
+
/** Reshare into a new 2/2 share set for the target signer; seed it to CKS
|
|
3956
|
+
* on their behalf via a single-use grant. Does not touch the caller's set. */ async reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType = 'endUser', targetSignerIdentity, password = undefined, signedSessionId }) {
|
|
3957
|
+
var _backup_keyShareIds;
|
|
3958
|
+
const dynamicRequestId = uuid.v4();
|
|
3959
|
+
const ceremonyStartTime = Date.now();
|
|
3960
|
+
// Log identifier shape only — value may be email/phone.
|
|
3961
|
+
const logContext = {
|
|
3962
|
+
dynamicRequestId,
|
|
3963
|
+
businessAccountId,
|
|
3964
|
+
chainName,
|
|
3965
|
+
accountAddress,
|
|
3966
|
+
signerType,
|
|
3967
|
+
identityMode: targetSignerIdentity.userId ? 'userId' : 'identifier',
|
|
3968
|
+
identifierType: targetSignerIdentity.identifierType
|
|
3969
|
+
};
|
|
3970
|
+
this.logger.info('[BusinessAccountAddSigner] start reshareToNewSignerShareSet', {
|
|
3971
|
+
context: logContext
|
|
3972
|
+
});
|
|
3973
|
+
const wallet = await this.getWallet({
|
|
3974
|
+
accountAddress,
|
|
3975
|
+
walletOperation: core.WalletOperation.REACH_ALL_PARTIES,
|
|
3976
|
+
password,
|
|
3977
|
+
signedSessionId
|
|
3978
|
+
});
|
|
3979
|
+
const walletId = wallet.walletId;
|
|
3980
|
+
const currentScheme = this.getWalletFromMap(accountAddress).thresholdSignatureScheme;
|
|
3981
|
+
const bitcoinConfig = this.getBitcoinConfigForChain(chainName, accountAddress);
|
|
3982
|
+
// Same-parties reshare — only the caller's share participates.
|
|
3983
|
+
const [existingClientShare] = await this.ensureClientShare(accountAddress);
|
|
3984
|
+
const existingClientKeygenId = await this.getExportId({
|
|
3985
|
+
chainName,
|
|
3986
|
+
clientKeyShare: existingClientShare,
|
|
3987
|
+
bitcoinConfig
|
|
3988
|
+
});
|
|
3989
|
+
// Gate matches internalRefresh/Reshare — SSE error rejects awaitTerminal.
|
|
3990
|
+
let newShareSetId;
|
|
3991
|
+
let resolvedTargetUserId;
|
|
3992
|
+
let clientKeyshareBackupGrant;
|
|
3993
|
+
const ceremonyGate = this.createCeremonyTerminalGate((payload)=>{
|
|
3994
|
+
newShareSetId = payload.shareSetId;
|
|
3995
|
+
resolvedTargetUserId = payload.targetUserId;
|
|
3996
|
+
clientKeyshareBackupGrant = payload.clientKeyshareBackupGrant;
|
|
3997
|
+
this.logger.info('[BusinessAccountAddSigner] ceremony_complete received', {
|
|
3998
|
+
context: _extends({}, logContext, {
|
|
3999
|
+
walletId,
|
|
4000
|
+
newShareSetId: payload.shareSetId,
|
|
4001
|
+
shareSetType: payload.shareSetType,
|
|
4002
|
+
hasTargetUserId: !!payload.targetUserId,
|
|
4003
|
+
hasClientKeyshareBackupGrant: !!payload.clientKeyshareBackupGrant
|
|
4004
|
+
})
|
|
4005
|
+
});
|
|
4006
|
+
});
|
|
4007
|
+
const data = await this.apiClient.addBusinessAccountSignerCeremony({
|
|
4008
|
+
businessAccountId,
|
|
4009
|
+
walletId,
|
|
4010
|
+
clientKeygenIds: [
|
|
4011
|
+
existingClientKeygenId
|
|
4012
|
+
],
|
|
4013
|
+
oldThresholdSignatureScheme: currentScheme,
|
|
4014
|
+
signerType,
|
|
4015
|
+
userId: targetSignerIdentity.userId,
|
|
4016
|
+
identifier: targetSignerIdentity.identifier,
|
|
4017
|
+
identifierType: targetSignerIdentity.identifierType,
|
|
4018
|
+
dynamicRequestId,
|
|
4019
|
+
onError: ceremonyGate.onError,
|
|
4020
|
+
onCeremonyComplete: ceremonyGate.onCeremonyComplete
|
|
4021
|
+
});
|
|
4022
|
+
const { roomId, serverKeygenIds, newServerKeygenIds = [] } = data;
|
|
4023
|
+
const newMpcConfig = core.MPC_CONFIG[core.ThresholdSignatureScheme.TWO_OF_TWO];
|
|
4024
|
+
const allPartyKeygenIds = [
|
|
4025
|
+
existingClientKeygenId,
|
|
4026
|
+
...serverKeygenIds,
|
|
4027
|
+
...newServerKeygenIds
|
|
4028
|
+
];
|
|
4029
|
+
const mpcSigner = getMPCSigner({
|
|
4030
|
+
chainName,
|
|
4031
|
+
baseRelayUrl: this.baseMPCRelayApiUrl,
|
|
4032
|
+
bitcoinConfig
|
|
4033
|
+
});
|
|
4034
|
+
const newSignerClientShare = await mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, existingClientShare, allPartyKeygenIds);
|
|
4035
|
+
try {
|
|
4036
|
+
await ceremonyGate.awaitTerminal();
|
|
4037
|
+
} catch (streamError) {
|
|
4038
|
+
this.logger.error('[BusinessAccountAddSigner] ceremony stream error', {
|
|
4039
|
+
context: _extends({}, logContext, {
|
|
4040
|
+
walletId,
|
|
4041
|
+
roomId,
|
|
4042
|
+
error: streamError instanceof Error ? streamError.message : String(streamError),
|
|
4043
|
+
failure_reason: 'ceremony_stream_error'
|
|
4044
|
+
})
|
|
4045
|
+
});
|
|
4046
|
+
throw streamError;
|
|
4047
|
+
}
|
|
4048
|
+
if (!newShareSetId) {
|
|
4049
|
+
this.logger.error('[BusinessAccountAddSigner] ceremony_complete missing shareSetId', {
|
|
4050
|
+
context: _extends({}, logContext, {
|
|
4051
|
+
walletId,
|
|
4052
|
+
roomId,
|
|
4053
|
+
failure_reason: 'ceremony_complete_missing_share_set_id'
|
|
4054
|
+
})
|
|
4055
|
+
});
|
|
4056
|
+
throw new Error('addSigner reshare did not return a shareSetId');
|
|
4057
|
+
}
|
|
4058
|
+
// Target has no password yet — encryptKeyShare falls back to the env-default key.
|
|
4059
|
+
const encrypted = await this.encryptKeyShare({
|
|
4060
|
+
keyShare: newSignerClientShare
|
|
4061
|
+
});
|
|
4062
|
+
// Server contract: targetUserId is always set on successful ceremony_complete.
|
|
4063
|
+
if (!resolvedTargetUserId) {
|
|
4064
|
+
this.logger.error('[BusinessAccountAddSigner] no target userId resolved for on-behalf backup', {
|
|
4065
|
+
context: _extends({}, logContext, {
|
|
4066
|
+
walletId,
|
|
4067
|
+
newShareSetId,
|
|
4068
|
+
failure_reason: 'no_target_user_id_resolved'
|
|
4069
|
+
})
|
|
4070
|
+
});
|
|
4071
|
+
throw new Error('addSigner ceremony did not resolve a target userId for the on-behalf backup');
|
|
4072
|
+
}
|
|
4073
|
+
const targetUserId = resolvedTargetUserId;
|
|
4074
|
+
this.logger.info('[BusinessAccountAddSigner] backupOnBehalfOfAddedSigner -> client-keyshare-service', {
|
|
4075
|
+
context: _extends({}, logContext, {
|
|
4076
|
+
walletId,
|
|
4077
|
+
newShareSetId,
|
|
4078
|
+
hasClientKeyshareBackupGrant: !!clientKeyshareBackupGrant
|
|
4079
|
+
})
|
|
4080
|
+
});
|
|
4081
|
+
// Grant is primary auth; signedSession is belt-and-suspenders. Refresh-on-400
|
|
4082
|
+
// handles nonce reuse; transient 429/5xx retry via alsoRetry. 401/403 = grant
|
|
4083
|
+
// rejected (single-use, not replayable) → caller must re-run addSigner.
|
|
4084
|
+
let backup;
|
|
4085
|
+
try {
|
|
4086
|
+
let resolvedSignedSessionId = signedSessionId;
|
|
4087
|
+
backup = await retryPromise(()=>this.apiClient.backupOnBehalfOfAddedSigner({
|
|
4088
|
+
walletId,
|
|
4089
|
+
targetUserId,
|
|
4090
|
+
encryptedAccountCredentials: [
|
|
4091
|
+
encrypted
|
|
4092
|
+
],
|
|
4093
|
+
passwordEncrypted: false,
|
|
4094
|
+
encryptionVersion: ENCRYPTION_VERSION_CURRENT,
|
|
4095
|
+
clientKeyshareBackupGrant,
|
|
4096
|
+
signedSessionId: resolvedSignedSessionId,
|
|
4097
|
+
dynamicRequestId
|
|
4098
|
+
}), {
|
|
4099
|
+
operationName: 'backupOnBehalfOfAddedSigner',
|
|
4100
|
+
shouldRetry: this.signedSession.refreshShouldRetry({
|
|
4101
|
+
onRefreshed: (id)=>{
|
|
4102
|
+
resolvedSignedSessionId = id;
|
|
4103
|
+
},
|
|
4104
|
+
operationName: 'backupOnBehalfOfAddedSigner',
|
|
4105
|
+
logContext: _extends({}, logContext, {
|
|
4106
|
+
walletId,
|
|
4107
|
+
dynamicRequestId
|
|
4108
|
+
}),
|
|
4109
|
+
alsoRetry: (status)=>status === undefined || status === 429 || status !== undefined && status >= 500
|
|
4110
|
+
})
|
|
4111
|
+
});
|
|
4112
|
+
} catch (err) {
|
|
4113
|
+
var _err_response;
|
|
4114
|
+
const status = err == null ? void 0 : (_err_response = err.response) == null ? void 0 : _err_response.status;
|
|
4115
|
+
if (clientKeyshareBackupGrant && (status === 401 || status === 403)) {
|
|
4116
|
+
this.logger.error('[BusinessAccountAddSigner] client_keyshare_backup_grant_exhausted', {
|
|
4117
|
+
context: _extends({}, logContext, {
|
|
4118
|
+
walletId,
|
|
4119
|
+
newShareSetId,
|
|
4120
|
+
status,
|
|
4121
|
+
failure_reason: 'grant_exhausted'
|
|
4122
|
+
})
|
|
4123
|
+
});
|
|
4124
|
+
}
|
|
4125
|
+
throw err;
|
|
4126
|
+
}
|
|
4127
|
+
const externalKeyShareId = (_backup_keyShareIds = backup.keyShareIds) == null ? void 0 : _backup_keyShareIds[0];
|
|
4128
|
+
if (!externalKeyShareId) {
|
|
4129
|
+
this.logger.error('[BusinessAccountAddSigner] on-behalf backup returned no keyShareId', {
|
|
4130
|
+
context: _extends({}, logContext, {
|
|
4131
|
+
walletId,
|
|
4132
|
+
newShareSetId,
|
|
4133
|
+
failure_reason: 'cks_write_no_keyshare_id'
|
|
4134
|
+
})
|
|
4135
|
+
});
|
|
4136
|
+
throw new Error('on-behalf backup did not return a keyShareId');
|
|
4137
|
+
}
|
|
4138
|
+
this.logger.info('[BusinessAccountAddSigner] on-behalf backup stored', {
|
|
4139
|
+
context: _extends({}, logContext, {
|
|
4140
|
+
walletId,
|
|
4141
|
+
newShareSetId,
|
|
4142
|
+
externalKeyShareId
|
|
4143
|
+
})
|
|
4144
|
+
});
|
|
4145
|
+
// Activate the share-set ↔ keyShareId mapping on redcoast.
|
|
4146
|
+
await retryPromise(()=>this.apiClient.markKeySharesAsBackedUp({
|
|
4147
|
+
walletId,
|
|
4148
|
+
shareSetId: newShareSetId,
|
|
4149
|
+
locations: [
|
|
4150
|
+
{
|
|
4151
|
+
location: core.BackupLocation.DYNAMIC,
|
|
4152
|
+
externalKeyShareId
|
|
4153
|
+
}
|
|
4154
|
+
],
|
|
4155
|
+
dynamicRequestId,
|
|
4156
|
+
businessAccountId
|
|
4157
|
+
}), {
|
|
4158
|
+
operationName: 'addSigner.markKeySharesAsBackedUp',
|
|
4159
|
+
shouldRetry: (error)=>{
|
|
4160
|
+
const status = getHttpStatus(error);
|
|
4161
|
+
return status === undefined || status === 429 || status !== undefined && status >= 500;
|
|
4162
|
+
}
|
|
4163
|
+
});
|
|
4164
|
+
this.logger.info('[BusinessAccountAddSigner] done — share set activated', {
|
|
4165
|
+
context: _extends({}, logContext, {
|
|
4166
|
+
walletId,
|
|
4167
|
+
newShareSetId,
|
|
4168
|
+
externalKeyShareId,
|
|
4169
|
+
ceremony_duration_ms: Date.now() - ceremonyStartTime
|
|
4170
|
+
})
|
|
4171
|
+
});
|
|
4172
|
+
return {
|
|
4173
|
+
shareSetId: newShareSetId
|
|
4174
|
+
};
|
|
4175
|
+
}
|
|
3952
4176
|
// Surfaces server-side bugs in the ceremony_complete payload without
|
|
3953
4177
|
// breaking the operation. The two cases:
|
|
3954
4178
|
//
|
|
@@ -4002,7 +4226,10 @@ class DynamicWalletClient {
|
|
|
4002
4226
|
// The reject handle is wired synchronously (Promise executors run inline)
|
|
4003
4227
|
// before the API call starts, so an immediate onError can never be dropped.
|
|
4004
4228
|
// The lost branch's rejection is swallowed so it never surfaces as unhandled.
|
|
4005
|
-
|
|
4229
|
+
/**
|
|
4230
|
+
* Ceremony-complete payload — typed object so addSigner-only fields are
|
|
4231
|
+
* namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
|
|
4232
|
+
*/ createCeremonyTerminalGate(onCeremonyComplete) {
|
|
4006
4233
|
let resolveComplete;
|
|
4007
4234
|
const completePromise = new Promise((resolve)=>{
|
|
4008
4235
|
resolveComplete = resolve;
|
|
@@ -4016,9 +4243,19 @@ class DynamicWalletClient {
|
|
|
4016
4243
|
let fired = false;
|
|
4017
4244
|
return {
|
|
4018
4245
|
onError: rejectOnError,
|
|
4019
|
-
|
|
4246
|
+
// Positional shape preserved at the wire boundary — eventStream/utils
|
|
4247
|
+
// invokes this with positional args. Translates to the typed object
|
|
4248
|
+
// for the caller-supplied cb.
|
|
4249
|
+
onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType, targetUserId, clientKeyshareBackupGrant)=>{
|
|
4020
4250
|
fired = true;
|
|
4021
|
-
onCeremonyComplete == null ? void 0 : onCeremonyComplete(
|
|
4251
|
+
onCeremonyComplete == null ? void 0 : onCeremonyComplete({
|
|
4252
|
+
accountAddress,
|
|
4253
|
+
walletId,
|
|
4254
|
+
shareSetId,
|
|
4255
|
+
shareSetType,
|
|
4256
|
+
targetUserId,
|
|
4257
|
+
clientKeyshareBackupGrant
|
|
4258
|
+
});
|
|
4022
4259
|
resolveComplete();
|
|
4023
4260
|
},
|
|
4024
4261
|
awaitTerminal: ()=>Promise.race([
|
|
@@ -4266,7 +4503,7 @@ class DynamicWalletClient {
|
|
|
4266
4503
|
// walletMap.shareSetId rotation lands before storeEncryptedBackupByWallet
|
|
4267
4504
|
// reads it; without it, backup would race ceremony_complete and the atomic
|
|
4268
4505
|
// swap could target the stale row.
|
|
4269
|
-
const ceremonyGate = this.createCeremonyTerminalGate((
|
|
4506
|
+
const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
|
|
4270
4507
|
this.logger.info('[WaasReshare] ceremony_complete received', {
|
|
4271
4508
|
context: {
|
|
4272
4509
|
walletId: wallet.walletId,
|
|
@@ -4988,21 +5225,10 @@ class DynamicWalletClient {
|
|
|
4988
5225
|
accountAddress,
|
|
4989
5226
|
shareCount: expectedShares.length
|
|
4990
5227
|
});
|
|
4991
|
-
// The preceding `/backup` upload consumed the caller's signed-session nonce, so
|
|
4992
|
-
// the verify fetch needs a freshly-minted one — only possible over the reverse
|
|
4993
|
-
// channel. Without one, skip the check (with a warning) rather than abort an
|
|
4994
|
-
// otherwise-successful backup.
|
|
4995
|
-
if (!this.getSignedSessionIdCallback) {
|
|
4996
|
-
this.logger.warn('[keyshare-recovery-verify] skipped: no reverse channel to mint a fresh nonce for the verify fetch', {
|
|
4997
|
-
walletId,
|
|
4998
|
-
accountAddress
|
|
4999
|
-
});
|
|
5000
|
-
return;
|
|
5001
|
-
}
|
|
5002
5228
|
let data;
|
|
5003
5229
|
try {
|
|
5004
|
-
//
|
|
5005
|
-
//
|
|
5230
|
+
// Mint a fresh session (the backup consumed the caller's). A missing reverse
|
|
5231
|
+
// channel is skipped below; any other failure rethrows.
|
|
5006
5232
|
const verifySignedSessionId = await this.signedSession.resolve();
|
|
5007
5233
|
data = await this.recoverEncryptedSharesWithNonceRetry({
|
|
5008
5234
|
walletId,
|
|
@@ -5015,13 +5241,18 @@ class DynamicWalletClient {
|
|
|
5015
5241
|
context: 'verify-backup-recoverable'
|
|
5016
5242
|
});
|
|
5017
5243
|
} catch (error) {
|
|
5018
|
-
//
|
|
5019
|
-
|
|
5244
|
+
// Only a missing reverse channel (no callback, or the host registered no
|
|
5245
|
+
// getSignedSessionId handler) is a benign "can't run" — skip without aborting a
|
|
5246
|
+
// successful backup. Anything else (fetch / transient) is rethrown.
|
|
5247
|
+
const message = error instanceof Error && error.message || '';
|
|
5248
|
+
const noReverseChannel = !this.getSignedSessionIdCallback || message.includes('No handlers were registered') || message.includes('no callback is configured');
|
|
5249
|
+
if (!noReverseChannel) throw error;
|
|
5250
|
+
this.logger.warn('[keyshare-recovery-verify] no reverse channel for verify nonce, skipping', {
|
|
5020
5251
|
walletId,
|
|
5021
5252
|
accountAddress,
|
|
5022
5253
|
errorName: error instanceof Error ? error.name : undefined
|
|
5023
5254
|
});
|
|
5024
|
-
|
|
5255
|
+
return;
|
|
5025
5256
|
}
|
|
5026
5257
|
try {
|
|
5027
5258
|
var _data_keyShares;
|
|
@@ -5412,7 +5643,7 @@ class DynamicWalletClient {
|
|
|
5412
5643
|
}
|
|
5413
5644
|
return location;
|
|
5414
5645
|
}
|
|
5415
|
-
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
5646
|
+
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
5416
5647
|
const dynamicRequestId = uuid.v4();
|
|
5417
5648
|
// Get wallet data early for logging context (also used in catch block)
|
|
5418
5649
|
const walletData = this.getWalletFromMap(accountAddress);
|
|
@@ -5630,7 +5861,8 @@ class DynamicWalletClient {
|
|
|
5630
5861
|
shareSetId: targetShareSetId,
|
|
5631
5862
|
locations,
|
|
5632
5863
|
dynamicRequestId,
|
|
5633
|
-
passwordUpdateBatchId
|
|
5864
|
+
passwordUpdateBatchId,
|
|
5865
|
+
businessAccountId
|
|
5634
5866
|
}), {
|
|
5635
5867
|
operationName: BACKUP_OPERATION.MarkBackedUp,
|
|
5636
5868
|
shouldRetry: (error)=>{
|
|
@@ -5821,7 +6053,7 @@ class DynamicWalletClient {
|
|
|
5821
6053
|
* @param params.signedSessionId - Optional signed session ID for authentication
|
|
5822
6054
|
* @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
|
|
5823
6055
|
* @returns Promise with backup metadata including share locations and IDs
|
|
5824
|
-
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
6056
|
+
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
5825
6057
|
var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
|
|
5826
6058
|
const hasProvidedShares = clientKeyShares !== undefined;
|
|
5827
6059
|
const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
|
|
@@ -5895,7 +6127,8 @@ class DynamicWalletClient {
|
|
|
5895
6127
|
preserveDelegatedLocation,
|
|
5896
6128
|
passwordUpdateBatchId,
|
|
5897
6129
|
googleDriveAccessToken,
|
|
5898
|
-
googleDriveTokenSource
|
|
6130
|
+
googleDriveTokenSource,
|
|
6131
|
+
businessAccountId
|
|
5899
6132
|
});
|
|
5900
6133
|
var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
|
|
5901
6134
|
return _extends({}, backupData, {
|
|
@@ -7693,6 +7926,12 @@ class DynamicWalletClient {
|
|
|
7693
7926
|
logger: this.logger,
|
|
7694
7927
|
onUnauthorized: internalOptions == null ? void 0 : internalOptions.onUnauthorized
|
|
7695
7928
|
});
|
|
7929
|
+
// `reshare` left unbound until the signer-reshare flavor (reshare into a new
|
|
7930
|
+
// signer's pending share set) exists; addSigner is stubbed until then.
|
|
7931
|
+
this.businessAccounts = new core.BusinessAccountClient({
|
|
7932
|
+
apiClient: this.apiClient,
|
|
7933
|
+
logger: this.logger
|
|
7934
|
+
});
|
|
7696
7935
|
this.debug = Boolean(debug);
|
|
7697
7936
|
this.featureFlags = featureFlags || {};
|
|
7698
7937
|
// setup storage for walletMap metadata (used regardless of secureStorage)
|
|
@@ -7719,11 +7958,15 @@ class DynamicWalletClient {
|
|
|
7719
7958
|
durationMs: Date.now() - forwardMPCConnectStartedAt
|
|
7720
7959
|
});
|
|
7721
7960
|
}).catch((error)=>{
|
|
7722
|
-
|
|
7961
|
+
const errorInfo = core.classifyForwardMpcError(error);
|
|
7962
|
+
// A rate-limited upgrade falls back to relay → warn, not error, so the
|
|
7963
|
+
// recovered case doesn't pollute error triage.
|
|
7964
|
+
const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
|
|
7965
|
+
this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
|
|
7723
7966
|
error,
|
|
7724
7967
|
environmentId: this.environmentId,
|
|
7725
7968
|
durationMs: Date.now() - forwardMPCConnectStartedAt
|
|
7726
|
-
});
|
|
7969
|
+
}));
|
|
7727
7970
|
});
|
|
7728
7971
|
}
|
|
7729
7972
|
}
|
package/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, getMPCChainConfig, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, WalletApiError, handleAxiosError, WalletOperation, parseNamespacedVersion, WalletReadyState, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, classifyForwardMpcError, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
|
|
1
|
+
import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, getMPCChainConfig, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, WalletApiError, handleAxiosError, WalletOperation, parseNamespacedVersion, WalletReadyState, FEATURE_FLAGS, ThresholdSignatureScheme, getClientThreshold, MPC_CONFIG, classifyForwardMpcError, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, getReshareConfig, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, BusinessAccountClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
|
|
2
2
|
export * from '@dynamic-labs-wallet/core';
|
|
3
3
|
export { Logger } from '@dynamic-labs-wallet/core';
|
|
4
4
|
import { EdBls12377, BIP340, ExportableEd25519, Ecdsa, MessageHash, EcdsaSignature, EcdsaKeygenResult, ExportableEd25519KeygenResult, BIP340KeygenResult } from '#internal/web';
|
|
@@ -2761,7 +2761,7 @@ class DynamicWalletClient {
|
|
|
2761
2761
|
};
|
|
2762
2762
|
}
|
|
2763
2763
|
}
|
|
2764
|
-
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete }) {
|
|
2764
|
+
async serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete }) {
|
|
2765
2765
|
// Initialize keygen, create room, and create the wallet account on the server
|
|
2766
2766
|
const data = await this.apiClient.createWalletAccount({
|
|
2767
2767
|
chainName,
|
|
@@ -2769,6 +2769,7 @@ class DynamicWalletClient {
|
|
|
2769
2769
|
dynamicRequestId,
|
|
2770
2770
|
thresholdSignatureScheme,
|
|
2771
2771
|
bitcoinConfig,
|
|
2772
|
+
businessAccountId,
|
|
2772
2773
|
onError,
|
|
2773
2774
|
onCeremonyComplete
|
|
2774
2775
|
});
|
|
@@ -2993,7 +2994,7 @@ class DynamicWalletClient {
|
|
|
2993
2994
|
shouldRetry: (error)=>!isNonRetryableCeremonyError(error)
|
|
2994
2995
|
});
|
|
2995
2996
|
}
|
|
2996
|
-
async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, onCeremonyComplete, traceContext, password, signedSessionId }) {
|
|
2997
|
+
async runKeyGenAttempt({ chainName, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onCeremonyComplete, traceContext, password, signedSessionId }) {
|
|
2997
2998
|
const dynamicRequestId = v4();
|
|
2998
2999
|
try {
|
|
2999
3000
|
this.assertPasswordRequired(password);
|
|
@@ -3023,6 +3024,7 @@ class DynamicWalletClient {
|
|
|
3023
3024
|
dynamicRequestId,
|
|
3024
3025
|
thresholdSignatureScheme,
|
|
3025
3026
|
bitcoinConfig,
|
|
3027
|
+
businessAccountId,
|
|
3026
3028
|
onCeremonyComplete
|
|
3027
3029
|
});
|
|
3028
3030
|
this.logger.info('[DynamicWaasWalletClient] Server key generation initialized', _extends({
|
|
@@ -3053,6 +3055,7 @@ class DynamicWalletClient {
|
|
|
3053
3055
|
dynamicRequestId,
|
|
3054
3056
|
thresholdSignatureScheme,
|
|
3055
3057
|
bitcoinConfig,
|
|
3058
|
+
businessAccountId,
|
|
3056
3059
|
onCeremonyComplete
|
|
3057
3060
|
})
|
|
3058
3061
|
});
|
|
@@ -3730,7 +3733,7 @@ class DynamicWalletClient {
|
|
|
3730
3733
|
// would race ceremony_complete and the atomic swap could target the stale
|
|
3731
3734
|
// row. refresh's API call returns on room_created (not the local MPC
|
|
3732
3735
|
// result), so the gate await sits between the local MPC and the backup.
|
|
3733
|
-
const ceremonyGate = this.createCeremonyTerminalGate((
|
|
3736
|
+
const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
|
|
3734
3737
|
this.logger.info('[WaasRefresh] ceremony_complete received', {
|
|
3735
3738
|
context: {
|
|
3736
3739
|
walletId: wallet.walletId,
|
|
@@ -3950,6 +3953,227 @@ class DynamicWalletClient {
|
|
|
3950
3953
|
googleDriveTokenSource
|
|
3951
3954
|
}));
|
|
3952
3955
|
}
|
|
3956
|
+
/** Reshare into a new 2/2 share set for the target signer; seed it to CKS
|
|
3957
|
+
* on their behalf via a single-use grant. Does not touch the caller's set. */ async reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType = 'endUser', targetSignerIdentity, password = undefined, signedSessionId }) {
|
|
3958
|
+
var _backup_keyShareIds;
|
|
3959
|
+
const dynamicRequestId = v4();
|
|
3960
|
+
const ceremonyStartTime = Date.now();
|
|
3961
|
+
// Log identifier shape only — value may be email/phone.
|
|
3962
|
+
const logContext = {
|
|
3963
|
+
dynamicRequestId,
|
|
3964
|
+
businessAccountId,
|
|
3965
|
+
chainName,
|
|
3966
|
+
accountAddress,
|
|
3967
|
+
signerType,
|
|
3968
|
+
identityMode: targetSignerIdentity.userId ? 'userId' : 'identifier',
|
|
3969
|
+
identifierType: targetSignerIdentity.identifierType
|
|
3970
|
+
};
|
|
3971
|
+
this.logger.info('[BusinessAccountAddSigner] start reshareToNewSignerShareSet', {
|
|
3972
|
+
context: logContext
|
|
3973
|
+
});
|
|
3974
|
+
const wallet = await this.getWallet({
|
|
3975
|
+
accountAddress,
|
|
3976
|
+
walletOperation: WalletOperation.REACH_ALL_PARTIES,
|
|
3977
|
+
password,
|
|
3978
|
+
signedSessionId
|
|
3979
|
+
});
|
|
3980
|
+
const walletId = wallet.walletId;
|
|
3981
|
+
const currentScheme = this.getWalletFromMap(accountAddress).thresholdSignatureScheme;
|
|
3982
|
+
const bitcoinConfig = this.getBitcoinConfigForChain(chainName, accountAddress);
|
|
3983
|
+
// Same-parties reshare — only the caller's share participates.
|
|
3984
|
+
const [existingClientShare] = await this.ensureClientShare(accountAddress);
|
|
3985
|
+
const existingClientKeygenId = await this.getExportId({
|
|
3986
|
+
chainName,
|
|
3987
|
+
clientKeyShare: existingClientShare,
|
|
3988
|
+
bitcoinConfig
|
|
3989
|
+
});
|
|
3990
|
+
// Gate matches internalRefresh/Reshare — SSE error rejects awaitTerminal.
|
|
3991
|
+
let newShareSetId;
|
|
3992
|
+
let resolvedTargetUserId;
|
|
3993
|
+
let clientKeyshareBackupGrant;
|
|
3994
|
+
const ceremonyGate = this.createCeremonyTerminalGate((payload)=>{
|
|
3995
|
+
newShareSetId = payload.shareSetId;
|
|
3996
|
+
resolvedTargetUserId = payload.targetUserId;
|
|
3997
|
+
clientKeyshareBackupGrant = payload.clientKeyshareBackupGrant;
|
|
3998
|
+
this.logger.info('[BusinessAccountAddSigner] ceremony_complete received', {
|
|
3999
|
+
context: _extends({}, logContext, {
|
|
4000
|
+
walletId,
|
|
4001
|
+
newShareSetId: payload.shareSetId,
|
|
4002
|
+
shareSetType: payload.shareSetType,
|
|
4003
|
+
hasTargetUserId: !!payload.targetUserId,
|
|
4004
|
+
hasClientKeyshareBackupGrant: !!payload.clientKeyshareBackupGrant
|
|
4005
|
+
})
|
|
4006
|
+
});
|
|
4007
|
+
});
|
|
4008
|
+
const data = await this.apiClient.addBusinessAccountSignerCeremony({
|
|
4009
|
+
businessAccountId,
|
|
4010
|
+
walletId,
|
|
4011
|
+
clientKeygenIds: [
|
|
4012
|
+
existingClientKeygenId
|
|
4013
|
+
],
|
|
4014
|
+
oldThresholdSignatureScheme: currentScheme,
|
|
4015
|
+
signerType,
|
|
4016
|
+
userId: targetSignerIdentity.userId,
|
|
4017
|
+
identifier: targetSignerIdentity.identifier,
|
|
4018
|
+
identifierType: targetSignerIdentity.identifierType,
|
|
4019
|
+
dynamicRequestId,
|
|
4020
|
+
onError: ceremonyGate.onError,
|
|
4021
|
+
onCeremonyComplete: ceremonyGate.onCeremonyComplete
|
|
4022
|
+
});
|
|
4023
|
+
const { roomId, serverKeygenIds, newServerKeygenIds = [] } = data;
|
|
4024
|
+
const newMpcConfig = MPC_CONFIG[ThresholdSignatureScheme.TWO_OF_TWO];
|
|
4025
|
+
const allPartyKeygenIds = [
|
|
4026
|
+
existingClientKeygenId,
|
|
4027
|
+
...serverKeygenIds,
|
|
4028
|
+
...newServerKeygenIds
|
|
4029
|
+
];
|
|
4030
|
+
const mpcSigner = getMPCSigner({
|
|
4031
|
+
chainName,
|
|
4032
|
+
baseRelayUrl: this.baseMPCRelayApiUrl,
|
|
4033
|
+
bitcoinConfig
|
|
4034
|
+
});
|
|
4035
|
+
const newSignerClientShare = await mpcSigner.reshareRemainingParty(roomId, newMpcConfig.threshold, existingClientShare, allPartyKeygenIds);
|
|
4036
|
+
try {
|
|
4037
|
+
await ceremonyGate.awaitTerminal();
|
|
4038
|
+
} catch (streamError) {
|
|
4039
|
+
this.logger.error('[BusinessAccountAddSigner] ceremony stream error', {
|
|
4040
|
+
context: _extends({}, logContext, {
|
|
4041
|
+
walletId,
|
|
4042
|
+
roomId,
|
|
4043
|
+
error: streamError instanceof Error ? streamError.message : String(streamError),
|
|
4044
|
+
failure_reason: 'ceremony_stream_error'
|
|
4045
|
+
})
|
|
4046
|
+
});
|
|
4047
|
+
throw streamError;
|
|
4048
|
+
}
|
|
4049
|
+
if (!newShareSetId) {
|
|
4050
|
+
this.logger.error('[BusinessAccountAddSigner] ceremony_complete missing shareSetId', {
|
|
4051
|
+
context: _extends({}, logContext, {
|
|
4052
|
+
walletId,
|
|
4053
|
+
roomId,
|
|
4054
|
+
failure_reason: 'ceremony_complete_missing_share_set_id'
|
|
4055
|
+
})
|
|
4056
|
+
});
|
|
4057
|
+
throw new Error('addSigner reshare did not return a shareSetId');
|
|
4058
|
+
}
|
|
4059
|
+
// Target has no password yet — encryptKeyShare falls back to the env-default key.
|
|
4060
|
+
const encrypted = await this.encryptKeyShare({
|
|
4061
|
+
keyShare: newSignerClientShare
|
|
4062
|
+
});
|
|
4063
|
+
// Server contract: targetUserId is always set on successful ceremony_complete.
|
|
4064
|
+
if (!resolvedTargetUserId) {
|
|
4065
|
+
this.logger.error('[BusinessAccountAddSigner] no target userId resolved for on-behalf backup', {
|
|
4066
|
+
context: _extends({}, logContext, {
|
|
4067
|
+
walletId,
|
|
4068
|
+
newShareSetId,
|
|
4069
|
+
failure_reason: 'no_target_user_id_resolved'
|
|
4070
|
+
})
|
|
4071
|
+
});
|
|
4072
|
+
throw new Error('addSigner ceremony did not resolve a target userId for the on-behalf backup');
|
|
4073
|
+
}
|
|
4074
|
+
const targetUserId = resolvedTargetUserId;
|
|
4075
|
+
this.logger.info('[BusinessAccountAddSigner] backupOnBehalfOfAddedSigner -> client-keyshare-service', {
|
|
4076
|
+
context: _extends({}, logContext, {
|
|
4077
|
+
walletId,
|
|
4078
|
+
newShareSetId,
|
|
4079
|
+
hasClientKeyshareBackupGrant: !!clientKeyshareBackupGrant
|
|
4080
|
+
})
|
|
4081
|
+
});
|
|
4082
|
+
// Grant is primary auth; signedSession is belt-and-suspenders. Refresh-on-400
|
|
4083
|
+
// handles nonce reuse; transient 429/5xx retry via alsoRetry. 401/403 = grant
|
|
4084
|
+
// rejected (single-use, not replayable) → caller must re-run addSigner.
|
|
4085
|
+
let backup;
|
|
4086
|
+
try {
|
|
4087
|
+
let resolvedSignedSessionId = signedSessionId;
|
|
4088
|
+
backup = await retryPromise(()=>this.apiClient.backupOnBehalfOfAddedSigner({
|
|
4089
|
+
walletId,
|
|
4090
|
+
targetUserId,
|
|
4091
|
+
encryptedAccountCredentials: [
|
|
4092
|
+
encrypted
|
|
4093
|
+
],
|
|
4094
|
+
passwordEncrypted: false,
|
|
4095
|
+
encryptionVersion: ENCRYPTION_VERSION_CURRENT,
|
|
4096
|
+
clientKeyshareBackupGrant,
|
|
4097
|
+
signedSessionId: resolvedSignedSessionId,
|
|
4098
|
+
dynamicRequestId
|
|
4099
|
+
}), {
|
|
4100
|
+
operationName: 'backupOnBehalfOfAddedSigner',
|
|
4101
|
+
shouldRetry: this.signedSession.refreshShouldRetry({
|
|
4102
|
+
onRefreshed: (id)=>{
|
|
4103
|
+
resolvedSignedSessionId = id;
|
|
4104
|
+
},
|
|
4105
|
+
operationName: 'backupOnBehalfOfAddedSigner',
|
|
4106
|
+
logContext: _extends({}, logContext, {
|
|
4107
|
+
walletId,
|
|
4108
|
+
dynamicRequestId
|
|
4109
|
+
}),
|
|
4110
|
+
alsoRetry: (status)=>status === undefined || status === 429 || status !== undefined && status >= 500
|
|
4111
|
+
})
|
|
4112
|
+
});
|
|
4113
|
+
} catch (err) {
|
|
4114
|
+
var _err_response;
|
|
4115
|
+
const status = err == null ? void 0 : (_err_response = err.response) == null ? void 0 : _err_response.status;
|
|
4116
|
+
if (clientKeyshareBackupGrant && (status === 401 || status === 403)) {
|
|
4117
|
+
this.logger.error('[BusinessAccountAddSigner] client_keyshare_backup_grant_exhausted', {
|
|
4118
|
+
context: _extends({}, logContext, {
|
|
4119
|
+
walletId,
|
|
4120
|
+
newShareSetId,
|
|
4121
|
+
status,
|
|
4122
|
+
failure_reason: 'grant_exhausted'
|
|
4123
|
+
})
|
|
4124
|
+
});
|
|
4125
|
+
}
|
|
4126
|
+
throw err;
|
|
4127
|
+
}
|
|
4128
|
+
const externalKeyShareId = (_backup_keyShareIds = backup.keyShareIds) == null ? void 0 : _backup_keyShareIds[0];
|
|
4129
|
+
if (!externalKeyShareId) {
|
|
4130
|
+
this.logger.error('[BusinessAccountAddSigner] on-behalf backup returned no keyShareId', {
|
|
4131
|
+
context: _extends({}, logContext, {
|
|
4132
|
+
walletId,
|
|
4133
|
+
newShareSetId,
|
|
4134
|
+
failure_reason: 'cks_write_no_keyshare_id'
|
|
4135
|
+
})
|
|
4136
|
+
});
|
|
4137
|
+
throw new Error('on-behalf backup did not return a keyShareId');
|
|
4138
|
+
}
|
|
4139
|
+
this.logger.info('[BusinessAccountAddSigner] on-behalf backup stored', {
|
|
4140
|
+
context: _extends({}, logContext, {
|
|
4141
|
+
walletId,
|
|
4142
|
+
newShareSetId,
|
|
4143
|
+
externalKeyShareId
|
|
4144
|
+
})
|
|
4145
|
+
});
|
|
4146
|
+
// Activate the share-set ↔ keyShareId mapping on redcoast.
|
|
4147
|
+
await retryPromise(()=>this.apiClient.markKeySharesAsBackedUp({
|
|
4148
|
+
walletId,
|
|
4149
|
+
shareSetId: newShareSetId,
|
|
4150
|
+
locations: [
|
|
4151
|
+
{
|
|
4152
|
+
location: BackupLocation.DYNAMIC,
|
|
4153
|
+
externalKeyShareId
|
|
4154
|
+
}
|
|
4155
|
+
],
|
|
4156
|
+
dynamicRequestId,
|
|
4157
|
+
businessAccountId
|
|
4158
|
+
}), {
|
|
4159
|
+
operationName: 'addSigner.markKeySharesAsBackedUp',
|
|
4160
|
+
shouldRetry: (error)=>{
|
|
4161
|
+
const status = getHttpStatus(error);
|
|
4162
|
+
return status === undefined || status === 429 || status !== undefined && status >= 500;
|
|
4163
|
+
}
|
|
4164
|
+
});
|
|
4165
|
+
this.logger.info('[BusinessAccountAddSigner] done — share set activated', {
|
|
4166
|
+
context: _extends({}, logContext, {
|
|
4167
|
+
walletId,
|
|
4168
|
+
newShareSetId,
|
|
4169
|
+
externalKeyShareId,
|
|
4170
|
+
ceremony_duration_ms: Date.now() - ceremonyStartTime
|
|
4171
|
+
})
|
|
4172
|
+
});
|
|
4173
|
+
return {
|
|
4174
|
+
shareSetId: newShareSetId
|
|
4175
|
+
};
|
|
4176
|
+
}
|
|
3953
4177
|
// Surfaces server-side bugs in the ceremony_complete payload without
|
|
3954
4178
|
// breaking the operation. The two cases:
|
|
3955
4179
|
//
|
|
@@ -4003,7 +4227,10 @@ class DynamicWalletClient {
|
|
|
4003
4227
|
// The reject handle is wired synchronously (Promise executors run inline)
|
|
4004
4228
|
// before the API call starts, so an immediate onError can never be dropped.
|
|
4005
4229
|
// The lost branch's rejection is swallowed so it never surfaces as unhandled.
|
|
4006
|
-
|
|
4230
|
+
/**
|
|
4231
|
+
* Ceremony-complete payload — typed object so addSigner-only fields are
|
|
4232
|
+
* namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
|
|
4233
|
+
*/ createCeremonyTerminalGate(onCeremonyComplete) {
|
|
4007
4234
|
let resolveComplete;
|
|
4008
4235
|
const completePromise = new Promise((resolve)=>{
|
|
4009
4236
|
resolveComplete = resolve;
|
|
@@ -4017,9 +4244,19 @@ class DynamicWalletClient {
|
|
|
4017
4244
|
let fired = false;
|
|
4018
4245
|
return {
|
|
4019
4246
|
onError: rejectOnError,
|
|
4020
|
-
|
|
4247
|
+
// Positional shape preserved at the wire boundary — eventStream/utils
|
|
4248
|
+
// invokes this with positional args. Translates to the typed object
|
|
4249
|
+
// for the caller-supplied cb.
|
|
4250
|
+
onCeremonyComplete: (accountAddress, walletId, shareSetId, shareSetType, targetUserId, clientKeyshareBackupGrant)=>{
|
|
4021
4251
|
fired = true;
|
|
4022
|
-
onCeremonyComplete == null ? void 0 : onCeremonyComplete(
|
|
4252
|
+
onCeremonyComplete == null ? void 0 : onCeremonyComplete({
|
|
4253
|
+
accountAddress,
|
|
4254
|
+
walletId,
|
|
4255
|
+
shareSetId,
|
|
4256
|
+
shareSetType,
|
|
4257
|
+
targetUserId,
|
|
4258
|
+
clientKeyshareBackupGrant
|
|
4259
|
+
});
|
|
4023
4260
|
resolveComplete();
|
|
4024
4261
|
},
|
|
4025
4262
|
awaitTerminal: ()=>Promise.race([
|
|
@@ -4267,7 +4504,7 @@ class DynamicWalletClient {
|
|
|
4267
4504
|
// walletMap.shareSetId rotation lands before storeEncryptedBackupByWallet
|
|
4268
4505
|
// reads it; without it, backup would race ceremony_complete and the atomic
|
|
4269
4506
|
// swap could target the stale row.
|
|
4270
|
-
const ceremonyGate = this.createCeremonyTerminalGate((
|
|
4507
|
+
const ceremonyGate = this.createCeremonyTerminalGate(({ shareSetId, shareSetType })=>{
|
|
4271
4508
|
this.logger.info('[WaasReshare] ceremony_complete received', {
|
|
4272
4509
|
context: {
|
|
4273
4510
|
walletId: wallet.walletId,
|
|
@@ -4989,21 +5226,10 @@ class DynamicWalletClient {
|
|
|
4989
5226
|
accountAddress,
|
|
4990
5227
|
shareCount: expectedShares.length
|
|
4991
5228
|
});
|
|
4992
|
-
// The preceding `/backup` upload consumed the caller's signed-session nonce, so
|
|
4993
|
-
// the verify fetch needs a freshly-minted one — only possible over the reverse
|
|
4994
|
-
// channel. Without one, skip the check (with a warning) rather than abort an
|
|
4995
|
-
// otherwise-successful backup.
|
|
4996
|
-
if (!this.getSignedSessionIdCallback) {
|
|
4997
|
-
this.logger.warn('[keyshare-recovery-verify] skipped: no reverse channel to mint a fresh nonce for the verify fetch', {
|
|
4998
|
-
walletId,
|
|
4999
|
-
accountAddress
|
|
5000
|
-
});
|
|
5001
|
-
return;
|
|
5002
|
-
}
|
|
5003
5229
|
let data;
|
|
5004
5230
|
try {
|
|
5005
|
-
//
|
|
5006
|
-
//
|
|
5231
|
+
// Mint a fresh session (the backup consumed the caller's). A missing reverse
|
|
5232
|
+
// channel is skipped below; any other failure rethrows.
|
|
5007
5233
|
const verifySignedSessionId = await this.signedSession.resolve();
|
|
5008
5234
|
data = await this.recoverEncryptedSharesWithNonceRetry({
|
|
5009
5235
|
walletId,
|
|
@@ -5016,13 +5242,18 @@ class DynamicWalletClient {
|
|
|
5016
5242
|
context: 'verify-backup-recoverable'
|
|
5017
5243
|
});
|
|
5018
5244
|
} catch (error) {
|
|
5019
|
-
//
|
|
5020
|
-
|
|
5245
|
+
// Only a missing reverse channel (no callback, or the host registered no
|
|
5246
|
+
// getSignedSessionId handler) is a benign "can't run" — skip without aborting a
|
|
5247
|
+
// successful backup. Anything else (fetch / transient) is rethrown.
|
|
5248
|
+
const message = error instanceof Error && error.message || '';
|
|
5249
|
+
const noReverseChannel = !this.getSignedSessionIdCallback || message.includes('No handlers were registered') || message.includes('no callback is configured');
|
|
5250
|
+
if (!noReverseChannel) throw error;
|
|
5251
|
+
this.logger.warn('[keyshare-recovery-verify] no reverse channel for verify nonce, skipping', {
|
|
5021
5252
|
walletId,
|
|
5022
5253
|
accountAddress,
|
|
5023
5254
|
errorName: error instanceof Error ? error.name : undefined
|
|
5024
5255
|
});
|
|
5025
|
-
|
|
5256
|
+
return;
|
|
5026
5257
|
}
|
|
5027
5258
|
try {
|
|
5028
5259
|
var _data_keyShares;
|
|
@@ -5413,7 +5644,7 @@ class DynamicWalletClient {
|
|
|
5413
5644
|
}
|
|
5414
5645
|
return location;
|
|
5415
5646
|
}
|
|
5416
|
-
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
5647
|
+
async backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation = false, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
5417
5648
|
const dynamicRequestId = v4();
|
|
5418
5649
|
// Get wallet data early for logging context (also used in catch block)
|
|
5419
5650
|
const walletData = this.getWalletFromMap(accountAddress);
|
|
@@ -5631,7 +5862,8 @@ class DynamicWalletClient {
|
|
|
5631
5862
|
shareSetId: targetShareSetId,
|
|
5632
5863
|
locations,
|
|
5633
5864
|
dynamicRequestId,
|
|
5634
|
-
passwordUpdateBatchId
|
|
5865
|
+
passwordUpdateBatchId,
|
|
5866
|
+
businessAccountId
|
|
5635
5867
|
}), {
|
|
5636
5868
|
operationName: BACKUP_OPERATION.MarkBackedUp,
|
|
5637
5869
|
shouldRetry: (error)=>{
|
|
@@ -5822,7 +6054,7 @@ class DynamicWalletClient {
|
|
|
5822
6054
|
* @param params.signedSessionId - Optional signed session ID for authentication
|
|
5823
6055
|
* @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
|
|
5824
6056
|
* @returns Promise with backup metadata including share locations and IDs
|
|
5825
|
-
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource }) {
|
|
6057
|
+
*/ async storeEncryptedBackupByWallet({ accountAddress, clientKeyShares = undefined, password = undefined, signedSessionId, cloudProviders = [], delegatedKeyshare = undefined, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId }) {
|
|
5826
6058
|
var _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
|
|
5827
6059
|
const hasProvidedShares = clientKeyShares !== undefined;
|
|
5828
6060
|
const keySharesToBackup = clientKeyShares != null ? clientKeyShares : await this.getClientKeySharesFromStorage({
|
|
@@ -5896,7 +6128,8 @@ class DynamicWalletClient {
|
|
|
5896
6128
|
preserveDelegatedLocation,
|
|
5897
6129
|
passwordUpdateBatchId,
|
|
5898
6130
|
googleDriveAccessToken,
|
|
5899
|
-
googleDriveTokenSource
|
|
6131
|
+
googleDriveTokenSource,
|
|
6132
|
+
businessAccountId
|
|
5900
6133
|
});
|
|
5901
6134
|
var _backupData_locationsWithKeyShares_map, _backupData_locationsWithKeyShares_map1;
|
|
5902
6135
|
return _extends({}, backupData, {
|
|
@@ -7694,6 +7927,12 @@ class DynamicWalletClient {
|
|
|
7694
7927
|
logger: this.logger,
|
|
7695
7928
|
onUnauthorized: internalOptions == null ? void 0 : internalOptions.onUnauthorized
|
|
7696
7929
|
});
|
|
7930
|
+
// `reshare` left unbound until the signer-reshare flavor (reshare into a new
|
|
7931
|
+
// signer's pending share set) exists; addSigner is stubbed until then.
|
|
7932
|
+
this.businessAccounts = new BusinessAccountClient({
|
|
7933
|
+
apiClient: this.apiClient,
|
|
7934
|
+
logger: this.logger
|
|
7935
|
+
});
|
|
7697
7936
|
this.debug = Boolean(debug);
|
|
7698
7937
|
this.featureFlags = featureFlags || {};
|
|
7699
7938
|
// setup storage for walletMap metadata (used regardless of secureStorage)
|
|
@@ -7720,11 +7959,15 @@ class DynamicWalletClient {
|
|
|
7720
7959
|
durationMs: Date.now() - forwardMPCConnectStartedAt
|
|
7721
7960
|
});
|
|
7722
7961
|
}).catch((error)=>{
|
|
7723
|
-
|
|
7962
|
+
const errorInfo = classifyForwardMpcError(error);
|
|
7963
|
+
// A rate-limited upgrade falls back to relay → warn, not error, so the
|
|
7964
|
+
// recovered case doesn't pollute error triage.
|
|
7965
|
+
const level = errorInfo.errorType === 'RATE_LIMITED' ? 'warn' : 'error';
|
|
7966
|
+
this.logger[level]('Error connecting to ForwardMPC enclave optimistically', _extends({}, errorInfo, {
|
|
7724
7967
|
error,
|
|
7725
7968
|
environmentId: this.environmentId,
|
|
7726
7969
|
durationMs: Date.now() - forwardMPCConnectStartedAt
|
|
7727
|
-
});
|
|
7970
|
+
}));
|
|
7728
7971
|
});
|
|
7729
7972
|
}
|
|
7730
7973
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/browser",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.29",
|
|
4
4
|
"license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@dynamic-labs-wallet/core": "1.0.
|
|
8
|
-
"@dynamic-labs-wallet/forward-mpc-client": "0.
|
|
9
|
-
"@dynamic-labs-wallet/primitives": "1.0.
|
|
7
|
+
"@dynamic-labs-wallet/core": "1.0.29",
|
|
8
|
+
"@dynamic-labs-wallet/forward-mpc-client": "0.12.0",
|
|
9
|
+
"@dynamic-labs-wallet/primitives": "1.0.29",
|
|
10
10
|
"@dynamic-labs/sdk-api-core": "^0.0.984",
|
|
11
11
|
"argon2id": "1.0.1",
|
|
12
12
|
"axios": "1.16.0",
|
package/src/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EcdsaSignature, MessageHash, type EcdsaPublicKey } from '#internal/web';
|
|
2
|
-
import { AuthMode, BackupLocation, DynamicApiClient, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
|
|
2
|
+
import { AuthMode, BackupLocation, DynamicApiClient, BusinessAccountClient, type TargetSignerIdentity, type BusinessAccountSignerType, ThresholdSignatureScheme, WalletOperation, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
|
|
3
3
|
import { RoomTypeEnum, type SignMessageContext } from '@dynamic-labs/sdk-api-core';
|
|
4
4
|
import type { DerivationInputFingerprint } from './backup/encryption/types.js';
|
|
5
5
|
import type { ClientInitKeygenResult, ClientKeyShare, MPCSigner } from './mpc/types.js';
|
|
@@ -35,6 +35,8 @@ export declare class DynamicWalletClient {
|
|
|
35
35
|
protected initializePromise: Promise<InitializeResult> | null;
|
|
36
36
|
protected logger: ILogger;
|
|
37
37
|
protected apiClient: DynamicApiClient;
|
|
38
|
+
/** Business-account orchestration (create/list/get + member/signer ops). */
|
|
39
|
+
readonly businessAccounts: BusinessAccountClient;
|
|
38
40
|
protected walletMap: Record<string, WalletProperties>;
|
|
39
41
|
protected storage: SupportedStorage;
|
|
40
42
|
protected memoryStorage: {
|
|
@@ -131,12 +133,13 @@ export declare class DynamicWalletClient {
|
|
|
131
133
|
* Client initialization logic
|
|
132
134
|
*/
|
|
133
135
|
protected _initialize(traceContext?: TraceContext): Promise<InitializeResult>;
|
|
134
|
-
serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, onError, onCeremonyComplete, }: {
|
|
136
|
+
serverInitializeKeyGen({ chainName, clientKeygenIds, dynamicRequestId, thresholdSignatureScheme, bitcoinConfig, businessAccountId, onError, onCeremonyComplete, }: {
|
|
135
137
|
chainName: string;
|
|
136
138
|
clientKeygenIds: string[];
|
|
137
139
|
dynamicRequestId: string;
|
|
138
140
|
thresholdSignatureScheme: ThresholdSignatureScheme;
|
|
139
141
|
bitcoinConfig?: BitcoinConfig;
|
|
142
|
+
businessAccountId?: string;
|
|
140
143
|
onError?: (error: Error) => void;
|
|
141
144
|
onCeremonyComplete?: (accountAddress: string, walletId: string, shareSetId?: string) => void;
|
|
142
145
|
}): Promise<import("@dynamic-labs-wallet/core").KeygenCompleteResponse>;
|
|
@@ -209,6 +212,7 @@ export declare class DynamicWalletClient {
|
|
|
209
212
|
chainName: string;
|
|
210
213
|
thresholdSignatureScheme: ThresholdSignatureScheme;
|
|
211
214
|
bitcoinConfig?: BitcoinConfig;
|
|
215
|
+
businessAccountId?: string;
|
|
212
216
|
onError?: (error: Error) => void;
|
|
213
217
|
onCeremonyComplete?: (accountAddress: string, walletId: string) => void;
|
|
214
218
|
traceContext?: TraceContext;
|
|
@@ -380,7 +384,24 @@ export declare class DynamicWalletClient {
|
|
|
380
384
|
googleDriveAccessToken?: string;
|
|
381
385
|
googleDriveTokenSource?: 'external' | 'stored_oauth';
|
|
382
386
|
}): Promise<void>;
|
|
387
|
+
/** Reshare into a new 2/2 share set for the target signer; seed it to CKS
|
|
388
|
+
* on their behalf via a single-use grant. Does not touch the caller's set. */
|
|
389
|
+
reshareToNewSignerShareSet({ chainName, accountAddress, businessAccountId, signerType, targetSignerIdentity, password, signedSessionId, }: {
|
|
390
|
+
chainName: string;
|
|
391
|
+
accountAddress: string;
|
|
392
|
+
businessAccountId: string;
|
|
393
|
+
signerType?: BusinessAccountSignerType;
|
|
394
|
+
targetSignerIdentity: TargetSignerIdentity;
|
|
395
|
+
password?: string;
|
|
396
|
+
signedSessionId: string;
|
|
397
|
+
}): Promise<{
|
|
398
|
+
shareSetId: string;
|
|
399
|
+
}>;
|
|
383
400
|
private logOnMalformedCeremonyPayload;
|
|
401
|
+
/**
|
|
402
|
+
* Ceremony-complete payload — typed object so addSigner-only fields are
|
|
403
|
+
* namespaced and `clientKeyshareBackupGrant` never sits in a positional slot.
|
|
404
|
+
*/
|
|
384
405
|
private createCeremonyTerminalGate;
|
|
385
406
|
private runBackupWithRotationRollback;
|
|
386
407
|
private rotateRootUserShareSetIdIfChanged;
|
|
@@ -536,7 +557,7 @@ export declare class DynamicWalletClient {
|
|
|
536
557
|
private backupToCloudProvider;
|
|
537
558
|
private publishDelegatedShare;
|
|
538
559
|
private createPreservedDelegatedLocation;
|
|
539
|
-
backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, }: {
|
|
560
|
+
backupSharesWithDistribution({ accountAddress, password, signedSessionId, distribution, preserveDelegatedLocation, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
|
|
540
561
|
accountAddress: string;
|
|
541
562
|
password?: string;
|
|
542
563
|
signedSessionId?: string;
|
|
@@ -545,6 +566,7 @@ export declare class DynamicWalletClient {
|
|
|
545
566
|
passwordUpdateBatchId?: string;
|
|
546
567
|
googleDriveAccessToken?: string;
|
|
547
568
|
googleDriveTokenSource?: 'external' | 'stored_oauth';
|
|
569
|
+
businessAccountId?: string;
|
|
548
570
|
}): Promise<{
|
|
549
571
|
message: string;
|
|
550
572
|
walletId: string;
|
|
@@ -588,7 +610,7 @@ export declare class DynamicWalletClient {
|
|
|
588
610
|
* @param params.backupToGoogleDrive - Whether to backup to Google Drive (defaults to false)
|
|
589
611
|
* @returns Promise with backup metadata including share locations and IDs
|
|
590
612
|
*/
|
|
591
|
-
storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, }: {
|
|
613
|
+
storeEncryptedBackupByWallet({ accountAddress, clientKeyShares, password, signedSessionId, cloudProviders, delegatedKeyshare, passwordUpdateBatchId, googleDriveAccessToken, googleDriveTokenSource, businessAccountId, }: {
|
|
592
614
|
accountAddress: string;
|
|
593
615
|
clientKeyShares?: ClientKeyShare[];
|
|
594
616
|
password?: string;
|
|
@@ -598,6 +620,7 @@ export declare class DynamicWalletClient {
|
|
|
598
620
|
passwordUpdateBatchId?: string;
|
|
599
621
|
googleDriveAccessToken?: string;
|
|
600
622
|
googleDriveTokenSource?: 'external' | 'stored_oauth';
|
|
623
|
+
businessAccountId?: string;
|
|
601
624
|
}): Promise<{
|
|
602
625
|
keyShareIds: string[];
|
|
603
626
|
keygenIds: string[];
|
package/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGd,WAAW,EACX,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAO9B,wBAAwB,EACxB,eAAe,EAUf,KAAK,oCAAoC,EAEzC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAInF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAiC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiBxF,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EASL,eAAe,EACf,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAgCpB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,qBAAa,mBAAmB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAQ;IACrE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACtC,4EAA4E;IAC5E,SAAgB,gBAAgB,EAAE,qBAAqB,CAAC;IACxD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAM;IAC3D,SAAS,CAAC,OAAO,EAAG,gBAAgB,CAAC;IACrC,SAAS,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IACjE,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,SAAS,CAAC,iBAAiB,UAAS;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAM;IACzC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAClD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAM;IACpD,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IAIpE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IAEnC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAuB;IAEtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAwB;IAEpE,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGnD,EACE,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,QAA0B,EAC1B,SAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,MAAM,GACP,EAAE,wBAAwB,EAC3B,eAAe,CAAC,EAAE,kCAAkC;IAqGtD;;OAEG;WACW,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIlE;;OAEG;WACW,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;WACW,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInE;;;;;;;;OAQG;WACW,aAAa,IAAI,IAAI;IAMnC;;;;OAIG;WACW,gBAAgB,IAAI,IAAI;IAKtC;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhF;;;;OAIG;cACa,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBjH;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQpF,WAAW,IAAI,QAAQ;IAI9B;;;OAGG;IACU,sBAAsB;IAInC;;;;OAIG;IACH,2CAA2C;IAC3C,OAAO,CAAC,uBAAuB;IAIzB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IA8CnC,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxE;;OAEG;cACa,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB7E,sBAAsB,CAAC,EAC3B,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,kBAAkB,GACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9F;IAsBK,sBAAsB,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACxB,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmB/B,eAAe,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAiB7D;;;;;;;;;;;;;;OAcG;IACG,sBAAsB,CAAC,EAC3B,SAAS,EACT,MAAM,EACN,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IAwEF,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB;IAItB,YAAY,CAAC,EACjB,SAAS,EACT,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,sBAAsB,EACvC,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KAC5E,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IA0HI,MAAM,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAkBY,gBAAgB;IA2IxB,mBAAmB,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,4DAA4D;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAeY,6BAA6B;IAqJrC,UAAU,CAAC,EACf,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAO5B,oBAAoB,CAAC,EACzB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,gBAAgB,EAAE,aAAa,CAAC;QAChC,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAiDlC,UAAU,CAAC,EACf,SAAS,EACT,OAAO,EACP,MAAM,EAAE,aAAa,EACrB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAgHxC;;;;;;OAMG;YACW,0BAA0B;IAoDlC,IAAI,CAAC,EACT,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAoB,EACpB,WAAmB,EACnB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,aAAa,GACd,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;YAmB1B,YAAY;IAuMpB,0BAA0B,CAAC,EAC/B,cAAc,EACd,SAAS,EACT,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAcD;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;YAclB,kCAAkC;YAwLlC,mBAAmB;IAQ3B,WAAW,CAAC,EAChB,SAAS,EACT,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;QAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,EACpB,SAAS,EACT,MAAM,EACN,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,4BAA4B,CAAC,EAAE,OAAO,CAAC;KACxC,GAAG,OAAO,CAAC;QACV,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;QACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,cAAc,EAAE,CAAC;KAC3C,CAAC;IAgDI,OAAO,CAAC,EACZ,SAAS,EACT,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,4BAAoC,EACpC,QAAQ,EACR,mBAAmB,EACnB,gBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACvB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;KACtD;IAoBD;mFAC+E;IACzE,0BAA0B,CAAC,EAC/B,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAmD,EACnD,oBAAoB,EACpB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,yBAAyB,CAAC;QACvC,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA+NnC,OAAO,CAAC,6BAA6B;IA8CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;YAiFpB,6BAA6B;IA4C3C,OAAO,CAAC,iCAAiC;IAyEzC,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,oCAAoC;YAkC9B,eAAe;YA2Xf,0BAA0B;IAwElC,iBAAiB,CAAC,EACtB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAyCK,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAyDD,OAAO,CAAC,kBAAkB;IAgBpB,SAAS,CAAC,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;;;cA8Ee,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;cAsBrE,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;cA0BH,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAgBzG,gBAAgB,CAAC,EACrB,SAAS,EACT,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,cAAc,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;KAChE,CAAC;YA0DY,yBAAyB;IAmEvC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IA8H9B;;;;;;;;;;;;OAYG;YACW,2BAA2B;IA4FnC,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yGAAyG;QACzG,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,CAAC;KACvF;IAaD;;OAEG;YACW,kCAAkC;IAsChD;;;OAGG;IACG,6BAA6B,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiC9G;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAoB,GACrB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,GAAG,IAAI;IAwBR;;;OAGG;IACH;;OAEG;IACH,OAAO,CAAC,mBAAmB;YAgBb,gCAAgC;IAe9C;;;;;;;OAOG;IACG,2BAA2B,CAAC,EAChC,cAAc,EACd,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjB;;;;;;;OAOG;YACW,iBAAiB;YAYjB,sBAAsB;YAuEtB,0BAA0B;IAqCxC;;;;;;;OAOG;YACW,4BAA4B;YAY5B,qBAAqB;YAoDrB,qBAAqB;IA4DnC,OAAO,CAAC,gCAAgC;IAsBlC,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,yBAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,iBAAiB,CAAC;QAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;;;;;;;;8BAznIS,CAAC;;;YAy+IG,yBAAyB;IAiGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,iBAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,iBAAiB,CAAC,EAAE,cAAc,CAAC;QACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;;;;;;;;;;8BA/nJS,CAAC;;;YA+tJG,mBAAmB;IAcjC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,2BAA2B;IAqB7B,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAkDK,WAAW,CAAC,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAyCK,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yGAAyG;QACzG,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,CAAC;KACvF,GAAG,OAAO,CAAC,cAAc,CAAC;IAwC3B;;;;;;;OAOG;IACH;;;;OAIG;YACW,sCAAsC;IAgEpD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;cAMd,uCAAuC,CAAC,EACtD,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;;OAIG;cACa,iCAAiC,CAAC,EAChD,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjB;;;;;OAKG;YACW,8BAA8B;YAmC9B,2BAA2B;IAKzC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,UAAsB,GACvB,EAAE;QACD,wBAAwB,EAAE,kBAAkB,CAAC;QAC7C,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,eAAe,EAAE,eAAe,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG;QACF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IA2CK,8BAA8B,CAAC,EACnC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAsB,EACtB,oBAA2B,EAC3B,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,eAAe,CAAC;QACjC,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAc7B;;;;;OAKG;YACW,oCAAoC;YAoCpC,sCAAsC;IA6F9C,cAAc;IAmCpB;;;;OAIG;YACW,8BAA8B;IA8D5C;;;;;;;;;;;OAWG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CjB;;;;;;;;OAQG;YACW,0BAA0B;IAyCxC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,EAC5B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IASjB;;;;;;;OAOG;YACW,qBAAqB;IA8BnC;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAsD1C;;;;;;OAMG;YACW,uBAAuB;IAkC/B,oCAAoC,CAAC,EACzC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGX,qBAAqB,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAmCK,kBAAkB,CAAC,EACvB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAYD;;;;;OAKG;YACW,iBAAiB;IAsD/B;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAwBK,mBAAmB,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;OAEG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpB;;OAEG;IACG,uCAAuC,CAAC,EAC5C,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;YAsBN,+BAA+B;IASvC,iCAAiC,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAwBtG,0BAA0B;IAYlC,SAAS,CAAC,EACd,cAAc,EACd,eAA8C,EAC9C,UAAsB,EACtB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2L7B;;;;;;;;;;;;;;;OAeG;IACG,sBAAsB,CAAC,EAC3B,cAAc,EACd,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4ChC;;;;;OAKG;YACW,4BAA4B;IAiD1C;;;;;;;;OAQG;IACG,YAAY,CAAC,EACjB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmI7B;;OAEG;YACW,2BAA2B;IA8BnC,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI7C,UAAU;IAoFhB;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM;IAQzB,WAAW,CAAC,EAChB,QAAQ,EACR,wBAAwB,EACxB,SAAa,GACd,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC;QACvB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsEK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAiC/C,QAAQ,CACZ,QAAQ,CAAC,EAAE,YAAY,EACvB,wBAAwB,CAAC,EAAE,wBAAwB,GAClD,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAQrC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAKrD;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,MAAM;IAKhG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA0DpH,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ3F"}
|