@dynamic-labs-wallet/browser 1.1.19 → 1.1.21
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 +15 -35
- package/index.esm.js +16 -36
- package/package.json +3 -3
- package/src/services/signedSession.d.ts.map +1 -1
- package/src/utils.d.ts +10 -0
- package/src/utils.d.ts.map +1 -1
package/index.cjs
CHANGED
|
@@ -667,6 +667,12 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
667
667
|
* retried. `alsoRetry` lets callers opt into additional retryable statuses
|
|
668
668
|
* (e.g. 429 / 5xx) on top of the nonce refresh.
|
|
669
669
|
*/ refreshShouldRetry({ onRefreshed, operationName, logContext, alsoRetry }) {
|
|
670
|
+
// Per-operation state: a slow-but-succeeding attempt can consume the nonce
|
|
671
|
+
// after the client already moved on (e.g. a transient error on attempt 1
|
|
672
|
+
// triggered an `alsoRetry`), so the replay 400 can land on any attempt, not
|
|
673
|
+
// just the first. Refresh on the first such 400 seen, whichever attempt
|
|
674
|
+
// it's on, and never again — preserves the single-refresh-per-operation limit.
|
|
675
|
+
let hasRefreshed = false;
|
|
670
676
|
return async (error, attempt)=>{
|
|
671
677
|
const status = getHttpStatus(error);
|
|
672
678
|
// A 400 is a refreshable replay nonce; a 401 is a session-key mismatch the
|
|
@@ -677,7 +683,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
677
683
|
const isSessionSignatureFailure = status === 401 && SESSION_SIGNATURE_FAILURE_REASONS.has(classifyNonceFailure(readErrorBody(error)));
|
|
678
684
|
const shouldInstrument = status === 400 || isSessionSignatureFailure;
|
|
679
685
|
if (shouldInstrument) {
|
|
680
|
-
const willRefresh = status === 400 &&
|
|
686
|
+
const willRefresh = status === 400 && !hasRefreshed && this.canRefresh && this.supportsReverseChannel();
|
|
681
687
|
this.instrumentNonceFailure({
|
|
682
688
|
error,
|
|
683
689
|
attempt,
|
|
@@ -687,7 +693,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
687
693
|
logContext
|
|
688
694
|
});
|
|
689
695
|
}
|
|
690
|
-
if (status === 400 &&
|
|
696
|
+
if (status === 400 && !hasRefreshed && this.canRefresh) {
|
|
691
697
|
// canRefresh only proves a local callback exists, not that the host answers it.
|
|
692
698
|
if (!this.supportsReverseChannel()) {
|
|
693
699
|
this.logger.warn(`[${operationName}] host SDK version predates the signed-session reverse channel, declining nonce refresh`, _extends({
|
|
@@ -697,6 +703,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
697
703
|
}, logContext));
|
|
698
704
|
return alsoRetry ? alsoRetry(status) : false;
|
|
699
705
|
}
|
|
706
|
+
hasRefreshed = true;
|
|
700
707
|
onRefreshed(await this.resolve());
|
|
701
708
|
this.logger.info(`[${operationName}] refreshed signed session, retrying`, _extends({
|
|
702
709
|
http: {
|
|
@@ -1686,34 +1693,7 @@ const isHexString = (str)=>{
|
|
|
1686
1693
|
* Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
|
|
1687
1694
|
* TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
|
|
1688
1695
|
* algorithm is applied inside the MPC signer, not here.
|
|
1689
|
-
*/ const
|
|
1690
|
-
if (typeof message !== 'string') {
|
|
1691
|
-
return message;
|
|
1692
|
-
}
|
|
1693
|
-
if (isHexString(message)) {
|
|
1694
|
-
return new Uint8Array(Buffer.from(message, 'hex'));
|
|
1695
|
-
}
|
|
1696
|
-
return Buffer.from(message).toString('hex');
|
|
1697
|
-
};
|
|
1698
|
-
const formatSolanaMessage = (message)=>formatRawBytesMessage(message);
|
|
1699
|
-
const formatTonMessage = (message)=>formatRawBytesMessage(message);
|
|
1700
|
-
const formatStellarMessage = (message)=>formatRawBytesMessage(message);
|
|
1701
|
-
const formatMidnightMessage = (message)=>formatRawBytesMessage(message);
|
|
1702
|
-
/**
|
|
1703
|
-
* EdBls12377.signBytes takes a raw Uint8Array (no hex-string form accepted),
|
|
1704
|
-
* unlike formatRawBytesMessage's other consumers — so hex input decodes to
|
|
1705
|
-
* bytes and plain text UTF-8-encodes to bytes, instead of staying a string.
|
|
1706
|
-
*/ const formatAleoMessage = (message)=>{
|
|
1707
|
-
if (typeof message !== 'string') {
|
|
1708
|
-
return message;
|
|
1709
|
-
}
|
|
1710
|
-
if (isHexString(message)) {
|
|
1711
|
-
const hex = message.startsWith('0x') ? message.slice(2) : message;
|
|
1712
|
-
return new Uint8Array(Buffer.from(hex, 'hex'));
|
|
1713
|
-
}
|
|
1714
|
-
return new Uint8Array(Buffer.from(message, 'utf-8'));
|
|
1715
|
-
};
|
|
1716
|
-
const formatMessage = (chainName, message)=>{
|
|
1696
|
+
*/ const formatMessage = (chainName, message)=>{
|
|
1717
1697
|
switch(chainName){
|
|
1718
1698
|
case 'EVM':
|
|
1719
1699
|
case 'TEMPO':
|
|
@@ -1721,17 +1701,17 @@ const formatMessage = (chainName, message)=>{
|
|
|
1721
1701
|
case 'TRON':
|
|
1722
1702
|
return formatTronMessage(message);
|
|
1723
1703
|
case 'SVM':
|
|
1724
|
-
return
|
|
1704
|
+
return core.formatRawMessageForSigning('SVM', message);
|
|
1725
1705
|
case 'SUI':
|
|
1726
1706
|
return message;
|
|
1727
1707
|
case 'TON':
|
|
1728
|
-
return
|
|
1708
|
+
return core.formatRawMessageForSigning('TON', message);
|
|
1729
1709
|
case 'STELLAR':
|
|
1730
|
-
return
|
|
1710
|
+
return core.formatRawMessageForSigning('STELLAR', message);
|
|
1731
1711
|
case 'MIDNIGHT':
|
|
1732
|
-
return
|
|
1712
|
+
return core.formatRawMessageForSigning('MIDNIGHT', message);
|
|
1733
1713
|
case 'ALEO':
|
|
1734
|
-
return
|
|
1714
|
+
return core.formatRawMessageForSigning('ALEO', message);
|
|
1735
1715
|
default:
|
|
1736
1716
|
throw new Error('Unsupported chain name');
|
|
1737
1717
|
}
|
package/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, DEFAULT_ED25519_VARIANT, getMPCChainConfig, parseNamespacedVersion, WalletApiError, NETWORK_ERROR_STATUS, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, handleAxiosError, WalletOperation, ThresholdSignatureScheme, WalletReadyState, classifyForwardMpcError, isRecoveredForwardMpcConnectionChurn, FEATURE_FLAGS, getClientThreshold, MPC_CONFIG, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, serializeError, createRejectablePromise, getReshareConfig, isBusinessAccountActionRequired, getRequiredExternalKeyShareId, verifiedCredentialNameToChainEnum, AuthMode, NoopLogger, DynamicApiClient, BusinessAccountClient, getEnvironmentFromUrl, IFRAME_DOMAIN_MAP } from '@dynamic-labs-wallet/core';
|
|
1
|
+
import { BitcoinAddressType, MPC_RELAY_PROD_API_URL, DEFAULT_ED25519_VARIANT, getMPCChainConfig, parseNamespacedVersion, WalletApiError, NETWORK_ERROR_STATUS, formatRawMessageForSigning, BackupLocation, ENCRYPTED_SHARES_STORAGE_SUFFIX, Logger, handleAxiosError, WalletOperation, ThresholdSignatureScheme, WalletReadyState, classifyForwardMpcError, isRecoveredForwardMpcConnectionChurn, FEATURE_FLAGS, getClientThreshold, MPC_CONFIG, getTSSConfig, serializeMessageForForwardMPC, isEvmCompatibleChain, serializeError, createRejectablePromise, getReshareConfig, isBusinessAccountActionRequired, 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, Ed25519, ExportableEd25519, Ecdsa, MessageHash, EcdsaSignature, EcdsaKeygenResult, ExportableEd25519KeygenResult, Ed25519KeygenResult, BIP340KeygenResult } from '#internal/web';
|
|
@@ -668,6 +668,12 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
668
668
|
* retried. `alsoRetry` lets callers opt into additional retryable statuses
|
|
669
669
|
* (e.g. 429 / 5xx) on top of the nonce refresh.
|
|
670
670
|
*/ refreshShouldRetry({ onRefreshed, operationName, logContext, alsoRetry }) {
|
|
671
|
+
// Per-operation state: a slow-but-succeeding attempt can consume the nonce
|
|
672
|
+
// after the client already moved on (e.g. a transient error on attempt 1
|
|
673
|
+
// triggered an `alsoRetry`), so the replay 400 can land on any attempt, not
|
|
674
|
+
// just the first. Refresh on the first such 400 seen, whichever attempt
|
|
675
|
+
// it's on, and never again — preserves the single-refresh-per-operation limit.
|
|
676
|
+
let hasRefreshed = false;
|
|
671
677
|
return async (error, attempt)=>{
|
|
672
678
|
const status = getHttpStatus(error);
|
|
673
679
|
// A 400 is a refreshable replay nonce; a 401 is a session-key mismatch the
|
|
@@ -678,7 +684,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
678
684
|
const isSessionSignatureFailure = status === 401 && SESSION_SIGNATURE_FAILURE_REASONS.has(classifyNonceFailure(readErrorBody(error)));
|
|
679
685
|
const shouldInstrument = status === 400 || isSessionSignatureFailure;
|
|
680
686
|
if (shouldInstrument) {
|
|
681
|
-
const willRefresh = status === 400 &&
|
|
687
|
+
const willRefresh = status === 400 && !hasRefreshed && this.canRefresh && this.supportsReverseChannel();
|
|
682
688
|
this.instrumentNonceFailure({
|
|
683
689
|
error,
|
|
684
690
|
attempt,
|
|
@@ -688,7 +694,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
688
694
|
logContext
|
|
689
695
|
});
|
|
690
696
|
}
|
|
691
|
-
if (status === 400 &&
|
|
697
|
+
if (status === 400 && !hasRefreshed && this.canRefresh) {
|
|
692
698
|
// canRefresh only proves a local callback exists, not that the host answers it.
|
|
693
699
|
if (!this.supportsReverseChannel()) {
|
|
694
700
|
this.logger.warn(`[${operationName}] host SDK version predates the signed-session reverse channel, declining nonce refresh`, _extends({
|
|
@@ -698,6 +704,7 @@ function meetsMinVersion(sdkVersion, { minVersionByNamespace, fallbackMinVersion
|
|
|
698
704
|
}, logContext));
|
|
699
705
|
return alsoRetry ? alsoRetry(status) : false;
|
|
700
706
|
}
|
|
707
|
+
hasRefreshed = true;
|
|
701
708
|
onRefreshed(await this.resolve());
|
|
702
709
|
this.logger.info(`[${operationName}] refreshed signed session, retrying`, _extends({
|
|
703
710
|
http: {
|
|
@@ -1687,34 +1694,7 @@ const isHexString = (str)=>{
|
|
|
1687
1694
|
* Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
|
|
1688
1695
|
* TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
|
|
1689
1696
|
* algorithm is applied inside the MPC signer, not here.
|
|
1690
|
-
*/ const
|
|
1691
|
-
if (typeof message !== 'string') {
|
|
1692
|
-
return message;
|
|
1693
|
-
}
|
|
1694
|
-
if (isHexString(message)) {
|
|
1695
|
-
return new Uint8Array(Buffer.from(message, 'hex'));
|
|
1696
|
-
}
|
|
1697
|
-
return Buffer.from(message).toString('hex');
|
|
1698
|
-
};
|
|
1699
|
-
const formatSolanaMessage = (message)=>formatRawBytesMessage(message);
|
|
1700
|
-
const formatTonMessage = (message)=>formatRawBytesMessage(message);
|
|
1701
|
-
const formatStellarMessage = (message)=>formatRawBytesMessage(message);
|
|
1702
|
-
const formatMidnightMessage = (message)=>formatRawBytesMessage(message);
|
|
1703
|
-
/**
|
|
1704
|
-
* EdBls12377.signBytes takes a raw Uint8Array (no hex-string form accepted),
|
|
1705
|
-
* unlike formatRawBytesMessage's other consumers — so hex input decodes to
|
|
1706
|
-
* bytes and plain text UTF-8-encodes to bytes, instead of staying a string.
|
|
1707
|
-
*/ const formatAleoMessage = (message)=>{
|
|
1708
|
-
if (typeof message !== 'string') {
|
|
1709
|
-
return message;
|
|
1710
|
-
}
|
|
1711
|
-
if (isHexString(message)) {
|
|
1712
|
-
const hex = message.startsWith('0x') ? message.slice(2) : message;
|
|
1713
|
-
return new Uint8Array(Buffer.from(hex, 'hex'));
|
|
1714
|
-
}
|
|
1715
|
-
return new Uint8Array(Buffer.from(message, 'utf-8'));
|
|
1716
|
-
};
|
|
1717
|
-
const formatMessage = (chainName, message)=>{
|
|
1697
|
+
*/ const formatMessage = (chainName, message)=>{
|
|
1718
1698
|
switch(chainName){
|
|
1719
1699
|
case 'EVM':
|
|
1720
1700
|
case 'TEMPO':
|
|
@@ -1722,17 +1702,17 @@ const formatMessage = (chainName, message)=>{
|
|
|
1722
1702
|
case 'TRON':
|
|
1723
1703
|
return formatTronMessage(message);
|
|
1724
1704
|
case 'SVM':
|
|
1725
|
-
return
|
|
1705
|
+
return formatRawMessageForSigning('SVM', message);
|
|
1726
1706
|
case 'SUI':
|
|
1727
1707
|
return message;
|
|
1728
1708
|
case 'TON':
|
|
1729
|
-
return
|
|
1709
|
+
return formatRawMessageForSigning('TON', message);
|
|
1730
1710
|
case 'STELLAR':
|
|
1731
|
-
return
|
|
1711
|
+
return formatRawMessageForSigning('STELLAR', message);
|
|
1732
1712
|
case 'MIDNIGHT':
|
|
1733
|
-
return
|
|
1713
|
+
return formatRawMessageForSigning('MIDNIGHT', message);
|
|
1734
1714
|
case 'ALEO':
|
|
1735
|
-
return
|
|
1715
|
+
return formatRawMessageForSigning('ALEO', message);
|
|
1736
1716
|
default:
|
|
1737
1717
|
throw new Error('Unsupported chain name');
|
|
1738
1718
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/browser",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.21",
|
|
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.1.
|
|
7
|
+
"@dynamic-labs-wallet/core": "1.1.21",
|
|
8
8
|
"@dynamic-labs-wallet/forward-mpc-client": "2.0.2",
|
|
9
|
-
"@dynamic-labs-wallet/primitives": "1.1.
|
|
9
|
+
"@dynamic-labs-wallet/primitives": "1.1.21",
|
|
10
10
|
"@dynamic-labs/sdk-api-core": "0.50.0",
|
|
11
11
|
"@noble/curves": "1.8.0",
|
|
12
12
|
"argon2id": "1.0.1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signedSession.d.ts","sourceRoot":"","sources":["../../src/services/signedSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,gEAAgE;AAChE,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,2BAA2B,GAC3B,oBAAoB,GACpB,OAAO,CAAC;AAkCZ,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,sBAAuB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,kBAoB7F,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IAGxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;gBAEtC,EACV,MAAM,EACN,UAAU,EACV,WAAW,GACZ,EAAE;QACD,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;KACxD;IAQD,+EAA+E;IAC/E,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;IACG,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAaxD,uEAAuE;IACvE,UAAU,IAAI,OAAO;IAIrB,2GAA2G;IAC3G,sBAAsB,IAAI,OAAO;IAIjC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE;QACD,WAAW,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;KACrD,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"signedSession.d.ts","sourceRoot":"","sources":["../../src/services/signedSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,gEAAgE;AAChE,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,2BAA2B,GAC3B,oBAAoB,GACpB,OAAO,CAAC;AAkCZ,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,sBAAuB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,kBAoB7F,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IAGxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;gBAEtC,EACV,MAAM,EACN,UAAU,EACV,WAAW,GACZ,EAAE;QACD,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;KACxD;IAQD,+EAA+E;IAC/E,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;IACG,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAaxD,uEAAuE;IACvE,UAAU,IAAI,OAAO;IAIrB,2GAA2G;IAC3G,sBAAsB,IAAI,OAAO;IAIjC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE;QACD,WAAW,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;KACrD,GAAG,WAAW;IA2Cf;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CA+B/B"}
|
package/src/utils.d.ts
CHANGED
|
@@ -117,6 +117,16 @@ export declare const formatEvmMessage: (message: string | Uint8Array) => Message
|
|
|
117
117
|
*/
|
|
118
118
|
export declare const formatTronMessage: (message: string | Uint8Array) => MessageHash;
|
|
119
119
|
export declare const isHexString: (str: string) => boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Normalizes a message to the bytes/hex form an MPC signer consumes:
|
|
122
|
+
* - string + hex charset → Uint8Array
|
|
123
|
+
* - string + plain text → hex-encoded string
|
|
124
|
+
* - Uint8Array → passthrough
|
|
125
|
+
*
|
|
126
|
+
* Chain-agnostic: used by every chain whose signer takes raw bytes (Solana,
|
|
127
|
+
* TON, Stellar — Ed25519 — and Midnight — BIP340 Schnorr). The signing
|
|
128
|
+
* algorithm is applied inside the MPC signer, not here.
|
|
129
|
+
*/
|
|
120
130
|
export declare const formatMessage: (chainName: string, message: string | Uint8Array) => string | Uint8Array | MessageHash;
|
|
121
131
|
export declare const getGoogleOAuthAccountId: (verifiedCredentials: JwtVerifiedCredential[]) => string | undefined;
|
|
122
132
|
export declare const createBackupData: ({ encryptedKeyShares, accountAddress, thresholdSignatureScheme, hasPassword, }: {
|
package/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../packages/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,cAAc,EAKd,KAAK,kBAAkB,EAEvB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkBhD,eAAO,MAAM,SAAS,eAAwC,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,GAAG,KAAG,UAAU,GAAG,cAsBxD,CAAC;AAEF,4EAA4E;AAC5E,KAAK,qBAAqB,GAAG;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAUtF,eAAO,MAAM,+BAA+B,6DAIzC,qBAAqB,GAAG;IACzB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC;CACxB,WAGS,CAAC;AAEX,eAAO,MAAM,2BAA2B,YAAa;IACnD,gBAAgB,EAAE,oBAAoB,CAAC;CACxC,KAAG,kBAmCH,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oCAAoC,aACrC,kBAAkB,aACjB,kBAAkB,KAC5B,kBAMD,CAAC;AAEH,eAAO,MAAM,cAAc,2BAAyC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,qBAI1G,CAAC;AAMF,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E;AA+BD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAAW,OAAO;;;;;;;CAI9C,CAAC;AA2CH;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,EAAE,WAAe,EAAE,aAAmB,EAAE,aAA2B,EAAE,UAAe,EAAE,WAAW,EAAE,GAAE,WAAgB,GACpH,OAAO,CAAC,CAAC,CAAC,CA4DZ;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,UAAW,OAAO,KAAG,OAc5D,CAAC;AA0CF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kCAAkC,UAAW,OAAO,KAAG,OAoBnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,IAI9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,MAAM,GAAG,UAAU,gBAO5D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,YAAa,MAAM,GAAG,UAAU,gBAA8B,CAAC;AAE7F,eAAO,MAAM,WAAW,QAAS,MAAM,YAKtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,cAAe,MAAM,WAAW,MAAM,GAAG,UAAU,KAAG,MAAM,GAAG,UAAU,GAAG,WAsBrG,CAAC;AAEF,eAAO,MAAM,uBAAuB,wBAAyB,qBAAqB,EAAE,KAAG,MAAM,GAAG,SAM/F,CAAC;AAEF,eAAO,MAAM,gBAAgB,mFAK1B;IACD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;;;;;;;;;;;CAaA,CAAC;AAEF,eAAO,MAAM,oBAAoB,qCAI9B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,SAQA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,6CAIlC;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC/E,KAAG,OAAO,CAAC,OAAO,CAOlB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAKzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAKzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,OAKzD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,0BAA0B,gHAKpC;IACD,2BAA2B,EAAE,wBAAwB,CAAC;IACtD,2BAA2B,EAAE,wBAAwB,CAAC;IACtD,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC,KAAG,OAKH,CAAC"}
|