@ledgerhq/revault-api 1.100.0 → 1.100.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -838,7 +838,7 @@ declare const zRefreshPskData: z$1.ZodObject<{
|
|
|
838
838
|
type RefreshPskData = z$1.infer<typeof zRefreshPskData>;
|
|
839
839
|
//#endregion
|
|
840
840
|
//#region src/services/hsm/hsm-requests-types.d.ts
|
|
841
|
-
declare const HSM_OBJECT_TYPES: readonly ["Account", "AdminGroup", "AssetManager", "Exchange", "Group", "Partition", "PledgeState", "Policy", "AccountRuleSet", "Tradelink", "User", "WalletAccountList", "Whitelist"];
|
|
841
|
+
declare const HSM_OBJECT_TYPES: readonly ["Account", "AdminGroup", "AssetManager", "Exchange", "FiatThresholdRule", "Group", "Partition", "PledgeState", "Policy", "AccountRuleSet", "Tradelink", "User", "WalletAccountList", "Whitelist"];
|
|
842
842
|
type HsmObjectType = (typeof HSM_OBJECT_TYPES)[number];
|
|
843
843
|
declare const zObjectsVersionResponse: z.ZodObject<{
|
|
844
844
|
cid: z.ZodCoercedString<unknown>;
|
|
@@ -60163,4 +60163,4 @@ type AuditLogSortBy = z.infer<typeof zAuditLogSortBy>;
|
|
|
60163
60163
|
declare const EMPTY_UUID = "00000000-0000-0000-0000-000000000000";
|
|
60164
60164
|
//#endregion
|
|
60165
60165
|
export { zTokenizationListRowsInput as $, CARDANO_STAKING_BLOCKING_REQUEST_TYPES as $a, zWebhookResponse as $i, MaintenanceMode as $n, DEFAULT_PAGE_SIZE as $o, zAdminRulesResponse as $r, zApiUserCredentialsResponse as $s, Challenge as $t, zUserRegistrationCreateInput as A, EstimatedFees as Aa, CurrencyResponse as Ai, zPortfoliosByAccountIdsResponse as An, EthereumLikeEip1559FeeStrategy as Ao, LegalContentBlock as Ar, RefreshPskInputData as As, RequestDataOf as At, zTradelinkNetworkResponse as B, zAccountLiveData as Ba, WebhookDetailResponse as Bi, AllowedAction$1 as Bn, getFiatMinorUnitExponent as Bo, zPrivacyNoticeResponse as Br, zUserRegistrationChallenge as Bs, zCreateClassicAccountWithPolicyIdInput as Bt, zAdminResponse as C, HsmWorkspaceComparison as Ca, zRawSigningPublicKeyResponse as Ci, zPortfolioHistoryEntryResponse as Cn, CARDANO_NETWORK as Co, zPolicyResponse as Cr, HsmCertificate as Cs, zRequestSortByField as Ct, zUserSortBy as D, isTransactionCheckSupportedType as Da, zSignedMessageResponse as Di, zPortfolioSummary as Dn, zCantonTransferProposal as Do, zAllowedActionsResponse as Dr, PsdSignature as Ds, PotentialDuplicateTransaction as Dt, zUserResponse as E, RequestView as Ea, zUtxosPageResponse as Ei, zPortfolioStatusFilter as En, CantonTransferProposal as Eo, AllowedResourcesResponse as Er, PsdPairingInputData as Es, EnsureNameAvailableInput as Et, TradelinkEntityResponse as F, TransactionResponse as Fa, zCurrencyResponse as Fi, AccountGovernanceType as Fn, NetworkFamily as Fo, SubProcessorRow as Fr, zPsdPairingInputData as Fs, VaultRequestResponseBase as Ft, zTokenTemplateResponse as G, zSendOnlyTransactionData as Ga, zReplayFailedResponse as Gi, GateAccountType as Gn, NatsEventBackfillItem as Go, zGroupSortByField as Gr, LesWalletRegistrationScope as Gs, zSignDigestsRequestInput as Gt, AppRouter as H, zAccountStakingFields as Ha, zCreateWebhookPayload as Hi, ChallengeType as Hn, Note as Ho, zPrivacyNoticeSectionId as Hr, zUserRegistrationDeviceData as Hs, zPotentialDuplicateTransactionsInput as Ht, TradelinkNetworkResponse as I, TransactionType as Ia, zTokenResponse as Ii, AccountType$1 as In, zCommonLiveData as Io, SubProcessorsResponse as Ir, zPsdSignature as Is, WebVaultRequestResponse as It, zTokenizationEstimateDeploymentFeeInput as J, zTransactionType as Ja, zWebhookDeliveriesFilters as Ji, GateReviewConfigType as Jn, NatsEventBackfillScope as Jo, zGroupResponse as Jr, OidcConfig as Js, zVaultRequestResponse as Jt, zTokenizationCreateDeploymentRequestInput as K, zTransactionData as Ka, zRotateWebhookSecretResponse as Ki, GateGroupType as Kn, NatsEventBackfillPreview as Ko, GroupResponse as Kr, BackofficeClaims as Ks, zSignMessageRequestInput as Kt, TradelinkSettlementWithAccountAndExchangeInfoResponse as L, TransactionTypeOf as La, CreateWebhookPayload as Li, ActivationStatus$1 as Ln, zTransactionStatus as Lo, zLegalContentBlock as Lr, zPubKey as Ls, genTransactionSchemas as Lt, OperationHistoryResponse as M, StakingDataOf as Ma, zAllAssetsResponse as Mi, PortfolioAppliedState as Mn, Validator as Mo, LegalInlineContent as Mr, UserRegistrationChallengeResponse as Ms, RequestSortBy as Mt, OperationMilestoneResponse as N, TransactionData as Na, zAssetCapabilitiesResponse as Ni, normalizePortfolioName as Nn, zEthereumLikeEip1559FeeStrategy as No, PrivacyNoticeResponse as Nr, UserRegistrationDeviceData as Ns, VaultRequestCreateInput as Nt, UserRegistrationCreateInput as O, AccountNetworkInfoFields as Oa, AllAssetsResponse as Oi, zPortfolioUpdateInput as On, BITCOIN_SPEC as Oo, zAllowedResourcesResponse as Or, PubKey as Os, PotentialDuplicateTransactionsInput as Ot, TradelinkCustodianResponse as P, TransactionDataOf as Pa, zAssetResponse as Pi, zPortfolioAppliedState as Pn, zStakingProvisioning as Po, PrivacyNoticeSection as Pr, zPsdPairingData as Ps, VaultRequestResponse as Pt, zTokenizationListDeploymentsResponse as Q, CARDANO_STAKE_KEY_STATUSES as Qa, zWebhookListFilters as Qi, HsmHostingMode as Qn, CursorPaginated as Qo, WorkspaceRulesResponse as Qr, AuthResponse as Qs, OperationMetadataResponse as Qt, zTradelinkCustodianResponse as R, convertTxToGovernableIntent as Ra, DeleteWebhookResponse as Ri, AddressDerivationMode as Rn, zGovernableAction as Ro, zLegalInline as Rr, zRefreshPskData as Rs, zApproveVaultRequestInput as Rt, UserSortBy as S, HsmCompareReason as Sa, zStakingValidatorSortBy as Sc, zCantonTransferProposalResponse as Si, zPortfolioCurrentUserAccessResponse as Sn, ETHEREUM_SPEC as So, PolicySortBy as Sr, ApiChallenge as Ss, ActivityTracer as St, zQuorumAccountSourceResponse as T, WebhookWithHealth as Ta, zTransactionWithMetaResponse as Ti, zPortfolioSortBy as Tn, CANTON_SPEC as To, AllowedActionsResponse as Tr, PsdPairingData as Ts, ChallengeResponse as Tt, TokenizationEstimateDeploymentFeeInput as U, zEstimatedFees as Ua, zCreateWebhookResponse as Ui, ClaimedRole as Un, zTransactionScanSummary as Uo, zSubProcessorRow as Ur, LesWalletRegistrableSummary as Us, zPotentialDuplicateTransactionsResponse as Ut, zTradelinkSettlementWithAccountAndExchangeInfoResponse as V, zAccountNetworkInfoFields as Va, WebhookResponse as Vi, AuditLogType$1 as Vn, zFiatCurrency as Vo, zPrivacyNoticeSection as Vr, zUserRegistrationChallengeResponse as Vs, zEnsureNameAvailableInput as Vt, zTokenTemplateListResponse as W, zNetworkAssetFields as Wa, zDeleteWebhookResponse as Wi, EventAction$1 as Wn, NatsEventBackfillFailure as Wo, zSubProcessorsResponse as Wr, LesWalletRegistrationResult as Ws, zRequestSortBy as Wt, zTokenizationGetRowInput as X, CARDANO_DREP_ALWAYS_ABSTAIN as Xa, zWebhookDeliveryResponse as Xi, GateWhitelistType as Xn, NATS_EVENT_BACKFILL_LIST_LIMIT as Xo, RootWorkspaceRuleResponse as Xr, zOidcConfig as Xs, OutgoingTransactionMeta as Xt, zTokenizationEstimateDeploymentFeeResponse as Y, CARDANO_CREATABLE_VOTE_DELEGATIONS as Ya, zWebhookDeliveryDetailResponse as Yi, GateUserType as Yn, NATS_EVENT_BACKFILL_EVENT_TYPES as Yo, zGroupSortBy as Yr, zExchangeCredentialsResponse as Ys, zWebVaultRequestResponse as Yt, zTokenizationListDeploymentsInput as Z, CARDANO_DREP_ALWAYS_VOTE_NO as Za, zWebhookDetailResponse as Zi, GateWorkspaceRuleType as Zn, NatsEventBackfillEventType as Zo, WorkspaceRuleResponse as Zr, BackofficePermission as Zs, RequestMeta as Zt, zUserSortByField as _, HSM_COMPARATORS as _a, zIndexedSelectionCapability as _c, zAccountAllowedActionsResponse as _i, PortfolioSummary as _n, zRippleDestinationTag as _o, WebhookRetryStrategy$1 as _r, HSM_OBJECT_TYPES as _s, zDeleteTradelinkOrgEntityInput as _t, zAuditLogSortBy as a, OnboardingFullState as aa, AccountLiveDataResponse as ac, EntitySortBy as ai, ReportResponse as an, isValidCardanoPoolId as ao, PsdModel as ar, fetchAllCursorPages as as, TokenizationDeploymentEstimateInput as at, QuorumAccountSourceResponse as b, HsmCompareAnomaly as ba, zStakesPage as bc, zAccountSortBy as bi, zPortfolioAdminResponse as bn, isErc20Address as bo, zPolicySortByField as br, ObjectsVersionResponse as bs, zTradelinkOrgEntityResponse as bt, zWhitelistSortByField as c, OnboardingSeedFragment as ca, IndexedReceiveAddressSelection as cc, PsdAuthChallengeData as ci, zReportResponse as cn, TEZOS_SPEC as co, RequestReviewStatus as cr, serializePage as cs, ReviewStepWithUsers as ct, WhitelistResponse as d, zOnboardingFullState as da, zAccountLiveDataResponse as dc, zStakeSortByField as di, PortfolioAdminResponse as dn, StellarMemo as do, ResourceType as dr, zCursorQuery as ds, DeleteTradelinkExchangeInput as dt, BackofficeAuditLogInput as ea, zAuthResponse as ec, zRootWorkspaceRuleResponse as ei, EnsureNameAvailableOutput as en, CARDANO_STAKING_TRANSACTION_TYPES as eo, MessageType as er, MAX_PAGE_SIZE as es, zTokenizationListRowsResponse as et, WhitelistSortBy as f, zOnboardingId as fa, zAddressIndex as fc, AccountAllowedActionsResponse as fi, PortfolioCreateInput as fn, zStellarMemo as fo, RevaultMode as fr, zPageQuery as fs, PledgeResponse as ft, zWhitelistSortBy as g, AccountWorkspaceScope as ga, zIndexedReceiveAddressSelection as gc, TransactionWithMetaResponse as gi, PortfolioStatusFilter$1 as gn, RIPPLE_SPEC as go, UserRole as gr, GetObjectsInfoResponse as gs, zCreateTradelinkOrgEntityInput as gt, zWhitelistResponse as h, AccountAssetFilter as ha, zIndexedReceiveAddressInput as hc, RawSigningPublicKeyResponse as hi, PortfolioSortBy$1 as hn, isSplTokenTransaction as ho, UserRegistrationState as hr, RiskLevel as hs, zCreateTradelinkNetworkBlueprintInput as ht, zAuditLogResponse as i, DeviceClaim as ia, admitsStakeOperation as ic, EntityResponse as ii, ReportInput as in, isCardanoStakingTransactionType as io, PortfolioHistoryAction as ir, emptyPage as is, TokenizationCreateDeploymentRequestInput as it, zUserRegistrationResponse as j, SendOnlyTransactionData as ja, TokenResponse as ji, PORTFOLIO_NAME_MAX_LENGTH as jn, StakingProvisioning as jo, LegalInline as jr, UserRegistrationChallenge as js, RequestReview as jt, UserRegistrationResponse as k, AccountStakingFields as ka, AssetResponse as ki, zPortfoliosByAccountIdsInput as kn, BitcoinLikeBalance as ko, zOpenApiResourceType as kr, RefreshPskData as ks, PotentialDuplicateTransactionsResponse as kt, WhitelistAddressResponse as l, WrappingKeyResponse as la, IndexedSelectionCapability as lc, zPsdAuthChallengeData as li, zVisibleReportStatus as ln, SUI_SPEC as lo, RequestState$1 as lr, stableOrdering as ls, zReviewStepsArray as lt, zWhitelistAddressSortBy as m, zOnboardingSeedFragment as ma, zFreshReceiveAddress as mc, AccountSortBy as mi, PortfolioHistoryEntryResponse as mn, isSolanaWalletAddress as mo, UserDeviceType as mr, zSortOrder as ms, TradelinkOrgEntityResponse as mt, AuditLogResponse as n, RequestListFilters as na, EthereumStakingNetwork as nc, zWorkspaceRuleResponse as ni, zEnsureNameAvailableOutput as nn, CardanoStakingTransactionType as no, OnboardingStep as nr, Paginated as ns, RuntimeApiCapabilities as nt, WorkspaceResponse as o, OnboardingOpts as oa, FreshReceiveAddress as oc, zEntityResponse as oi, zReportDownloadUrlResponse as on, toCanonicalCardanoPoolId as oo, ReportStatus$1 as or, fetchAllPages as os, TokenizationFeeEstimate as ot, zWhitelistAddressResponse as p, zOnboardingOpts as pa, zBalance as pc, AccountResponse as pi, PortfolioCurrentUserAccessResponse as pn, SOLANA_SPEC as po, ReviewConfigType as pr, zPaginated as ps, TradelinkNetworkBlueprintResponse as pt, zTokenizationCreateDeploymentRequestResponse as q, zTransactionResponse as qa, zUpdateWebhookPayload as qi, GatePolicyType as qn, NatsEventBackfillReport as qo, GroupSortBy as qr, ExtendedPrismaClient as qs, zVaultRequestCreateInput as qt, AuditLogSortBy as r, startOnboarding as ra, isEthereumStakingNetwork as rc, zWorkspaceRulesResponse as ri, ReportDownloadUrlResponse as rn, isCardanoStakeKeyRegistered as ro, OutgoingTransactionStatus$1 as rr, SortOrder as rs, TokenTemplateResponse as rt, zWorkspaceResponse as s, OnboardingSeedChallenge as sa, IndexedReceiveAddressInput as sc, zEntitySortBy as si, zReportInput as sn, TRON_SPEC as so, ReportType$1 as sr, paginate as ss, zTokenizationRowDetail as st, EMPTY_UUID as t, WhitelistSortBy$1 as ta, ETHEREUM_STAKING_NETWORKS as tc, zWorkspaceRuleMemberResponse as ti, SoftChallenge as tn, CardanoStakeKeyStatus as to, OnboardedUserRole as tr, PageQuery as ts, TrpcMeta as tt, WhitelistAddressSortBy as u, zDeviceClaim as ua, ReceiveAddressSelection as uc, zAccountSortByField as ui, zPortfolioSortByField as un, STELLAR_SPEC as uo, RequestType$1 as ur, zCursorPaginated as us, CreateTradelinkOrgEntityInput as ut, AdminResponse as v, HSM_COMPARE_REASONS as va, zStake as vc, zAccountCommonFields as vi, PortfolioUpdateInput as vn, POLKADOT_SPEC as vo, WebhookStatus$1 as vr, HsmObjectType as vs, zPledgeResponse as vt, zQuorumAccountEntryResponse as w, WebhookListFilters as wa, zStakeSortBy as wi, zPortfolioName as wn, CARDANO_SPEC as wo, zPolicySortBy as wr, PsdChallenge as ws, ApproveVaultRequestInput as wt, UserResponse as x, HsmCompareDetail as xa, zStakingValidator as xc, zCantonPreApprovalStateResponse as xi, zPortfolioCreateInput as xn, GENERIC_SPEC as xo, PolicyResponse as xr, VersionedObjectInfo as xs, zTradelinkWhitelist as xt, QuorumAccountEntryResponse as y, HsmComparator as ya, zStakeState as yc, zAccountResponse as yi, PortfoliosByAccountIdsResponse as yn, HEDERA_SPEC as yo, WhitelistType as yr, ObjectsContentResponse as ys, zTradelinkNetworkBlueprintResponse as yt, zTradelinkEntityResponse as z, getTxHsmProps as za, UpdateWebhookPayload as zi, AdminPermission$1 as zn, FiatCurrency as zo, zLegalInlineContent as zr, zRefreshPskInputData as zs, zChallengeResponse as zt };
|
|
60166
|
-
//# sourceMappingURL=app-lib-
|
|
60166
|
+
//# sourceMappingURL=app-lib-JND8Jt8a.d.mts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $n as MaintenanceMode, Ca as HsmWorkspaceComparison, Cs as HsmCertificate, Ea as RequestView, Fn as AccountGovernanceType, Gn as GateAccountType, Gs as LesWalletRegistrationScope, Ho as Note, In as AccountType$1, Jn as GateReviewConfigType, Jo as NatsEventBackfillScope, Kn as GateGroupType, Ko as NatsEventBackfillPreview, Ks as BackofficeClaims, Ln as ActivationStatus$1, Na as TransactionData, Pt as VaultRequestResponse, Qn as HsmHostingMode, Rn as AddressDerivationMode, St as ActivityTracer, Ta as WebhookWithHealth, Un as ClaimedRole, Us as LesWalletRegistrableSummary, Vn as AuditLogType$1, Wn as EventAction$1, Xn as GateWhitelistType, Xs as zOidcConfig, Yn as GateUserType, Zn as GateWorkspaceRuleType, Zs as BackofficePermission, _r as WebhookRetryStrategy$1, ar as PsdModel, ea as BackofficeAuditLogInput, fr as RevaultMode, ga as AccountWorkspaceScope, gr as UserRole, ha as AccountAssetFilter, hr as UserRegistrationState, ja as SendOnlyTransactionData, jt as RequestReview, mr as UserDeviceType, na as RequestListFilters, nr as OnboardingStep, nt as RuntimeApiCapabilities, or as ReportStatus$1, pr as ReviewConfigType, qn as GatePolicyType, qo as NatsEventBackfillReport, qs as ExtendedPrismaClient, ra as startOnboarding, rr as OutgoingTransactionStatus$1, rs as SortOrder, sr as ReportType$1, ta as WhitelistSortBy, tr as OnboardedUserRole, tt as TrpcMeta, ur as RequestType$1, vr as WebhookStatus$1, wa as WebhookListFilters, ya as HsmComparator, yr as WhitelistType, zn as AdminPermission$1 } from "../../app-lib-
|
|
1
|
+
import { $n as MaintenanceMode, Ca as HsmWorkspaceComparison, Cs as HsmCertificate, Ea as RequestView, Fn as AccountGovernanceType, Gn as GateAccountType, Gs as LesWalletRegistrationScope, Ho as Note, In as AccountType$1, Jn as GateReviewConfigType, Jo as NatsEventBackfillScope, Kn as GateGroupType, Ko as NatsEventBackfillPreview, Ks as BackofficeClaims, Ln as ActivationStatus$1, Na as TransactionData, Pt as VaultRequestResponse, Qn as HsmHostingMode, Rn as AddressDerivationMode, St as ActivityTracer, Ta as WebhookWithHealth, Un as ClaimedRole, Us as LesWalletRegistrableSummary, Vn as AuditLogType$1, Wn as EventAction$1, Xn as GateWhitelistType, Xs as zOidcConfig, Yn as GateUserType, Zn as GateWorkspaceRuleType, Zs as BackofficePermission, _r as WebhookRetryStrategy$1, ar as PsdModel, ea as BackofficeAuditLogInput, fr as RevaultMode, ga as AccountWorkspaceScope, gr as UserRole, ha as AccountAssetFilter, hr as UserRegistrationState, ja as SendOnlyTransactionData, jt as RequestReview, mr as UserDeviceType, na as RequestListFilters, nr as OnboardingStep, nt as RuntimeApiCapabilities, or as ReportStatus$1, pr as ReviewConfigType, qn as GatePolicyType, qo as NatsEventBackfillReport, qs as ExtendedPrismaClient, ra as startOnboarding, rr as OutgoingTransactionStatus$1, rs as SortOrder, sr as ReportType$1, ta as WhitelistSortBy, tr as OnboardedUserRole, tt as TrpcMeta, ur as RequestType$1, vr as WebhookStatus$1, wa as WebhookListFilters, ya as HsmComparator, yr as WhitelistType, zn as AdminPermission$1 } from "../../app-lib-JND8Jt8a.mjs";
|
|
2
2
|
import z from "zod";
|
|
3
3
|
import { AllowedAction, FiatValuation, PrismaClient } from "@/generated/prisma/client";
|
|
4
4
|
import "trpc-to-openapi";
|
|
@@ -7207,7 +7207,7 @@ declare const internalAppRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
7207
7207
|
input: {
|
|
7208
7208
|
workspaceName: string;
|
|
7209
7209
|
uid?: string | undefined;
|
|
7210
|
-
objectTypes?: ("Account" | "AccountRuleSet" | "AdminGroup" | "AssetManager" | "Exchange" | "Group" | "Partition" | "PledgeState" | "Policy" | "Tradelink" | "User" | "WalletAccountList" | "Whitelist")[] | undefined;
|
|
7210
|
+
objectTypes?: ("Account" | "AccountRuleSet" | "AdminGroup" | "AssetManager" | "Exchange" | "FiatThresholdRule" | "Group" | "Partition" | "PledgeState" | "Policy" | "Tradelink" | "User" | "WalletAccountList" | "Whitelist")[] | undefined;
|
|
7211
7211
|
};
|
|
7212
7212
|
output: {
|
|
7213
7213
|
cid: string;
|
|
@@ -7241,7 +7241,7 @@ declare const internalAppRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
7241
7241
|
input: {
|
|
7242
7242
|
workspaceName: string;
|
|
7243
7243
|
uid?: string | undefined;
|
|
7244
|
-
objectTypes?: ("Account" | "AccountRuleSet" | "AdminGroup" | "AssetManager" | "Exchange" | "Group" | "Partition" | "PledgeState" | "Policy" | "Tradelink" | "User" | "WalletAccountList" | "Whitelist")[] | undefined;
|
|
7244
|
+
objectTypes?: ("Account" | "AccountRuleSet" | "AdminGroup" | "AssetManager" | "Exchange" | "FiatThresholdRule" | "Group" | "Partition" | "PledgeState" | "Policy" | "Tradelink" | "User" | "WalletAccountList" | "Whitelist")[] | undefined;
|
|
7245
7245
|
};
|
|
7246
7246
|
output: {
|
|
7247
7247
|
cid: string;
|
package/lib/fakes.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { At as RequestDataOf, In as AccountType, Kr as GroupResponse, Nt as VaultRequestCreateInput, Pa as TransactionDataOf, Pt as VaultRequestResponse, d as WhitelistResponse, er as MessageType, ka as AccountStakingFields, pi as AccountResponse, x as UserResponse } from "./app-lib-
|
|
1
|
+
import { At as RequestDataOf, In as AccountType, Kr as GroupResponse, Nt as VaultRequestCreateInput, Pa as TransactionDataOf, Pt as VaultRequestResponse, d as WhitelistResponse, er as MessageType, ka as AccountStakingFields, pi as AccountResponse, x as UserResponse } from "./app-lib-JND8Jt8a.mjs";
|
|
2
2
|
//#region src/__fakes__/trpc/inputs.d.ts
|
|
3
3
|
type RequestInputDataOf<T extends VaultRequestCreateInput["request"]["type"]> = Extract<VaultRequestCreateInput["request"], {
|
|
4
4
|
type: T;
|
package/lib/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as zTokenizationListRowsInput, $a as CARDANO_STAKING_BLOCKING_REQUEST_TYPES, $i as zWebhookResponse, $n as MaintenanceMode, $o as DEFAULT_PAGE_SIZE, $r as zAdminRulesResponse, $s as zApiUserCredentialsResponse, $t as Challenge, A as zUserRegistrationCreateInput, Aa as EstimatedFees, Ai as CurrencyResponse, An as zPortfoliosByAccountIdsResponse, Ao as EthereumLikeEip1559FeeStrategy, Ar as LegalContentBlock, As as RefreshPskInputData, At as RequestDataOf, B as zTradelinkNetworkResponse, Ba as zAccountLiveData, Bi as WebhookDetailResponse, Bn as AllowedAction, Bo as getFiatMinorUnitExponent, Br as zPrivacyNoticeResponse, Bs as zUserRegistrationChallenge, Bt as zCreateClassicAccountWithPolicyIdInput, C as zAdminResponse, Ca as HsmWorkspaceComparison, Ci as zRawSigningPublicKeyResponse, Cn as zPortfolioHistoryEntryResponse, Co as CARDANO_NETWORK, Cr as zPolicyResponse, Cs as HsmCertificate, Ct as zRequestSortByField, D as zUserSortBy, Da as isTransactionCheckSupportedType, Di as zSignedMessageResponse, Dn as zPortfolioSummary, Do as zCantonTransferProposal, Dr as zAllowedActionsResponse, Ds as PsdSignature, Dt as PotentialDuplicateTransaction, E as zUserResponse, Ei as zUtxosPageResponse, En as zPortfolioStatusFilter, Eo as CantonTransferProposal, Er as AllowedResourcesResponse, Es as PsdPairingInputData, Et as EnsureNameAvailableInput, F as TradelinkEntityResponse, Fa as TransactionResponse, Fi as zCurrencyResponse, Fo as NetworkFamily, Fr as SubProcessorRow, Fs as zPsdPairingInputData, Ft as VaultRequestResponseBase, G as zTokenTemplateResponse, Ga as zSendOnlyTransactionData, Gi as zReplayFailedResponse, Go as NatsEventBackfillItem, Gr as zGroupSortByField, Gt as zSignDigestsRequestInput, H as AppRouter, Ha as zAccountStakingFields, Hi as zCreateWebhookPayload, Hn as ChallengeType, Hr as zPrivacyNoticeSectionId, Hs as zUserRegistrationDeviceData, Ht as zPotentialDuplicateTransactionsInput, I as TradelinkNetworkResponse, Ia as TransactionType, Ii as zTokenResponse, In as AccountType, Io as zCommonLiveData, Ir as SubProcessorsResponse, Is as zPsdSignature, It as WebVaultRequestResponse, J as zTokenizationEstimateDeploymentFeeInput, Ja as zTransactionType, Ji as zWebhookDeliveriesFilters, Jr as zGroupResponse, Js as OidcConfig, Jt as zVaultRequestResponse, K as zTokenizationCreateDeploymentRequestInput, Ka as zTransactionData, Ki as zRotateWebhookSecretResponse, Ko as NatsEventBackfillPreview, Kr as GroupResponse, Kt as zSignMessageRequestInput, L as TradelinkSettlementWithAccountAndExchangeInfoResponse, La as TransactionTypeOf, Li as CreateWebhookPayload, Ln as ActivationStatus, Lo as zTransactionStatus, Lr as zLegalContentBlock, Ls as zPubKey, Lt as genTransactionSchemas, M as OperationHistoryResponse, Ma as StakingDataOf, Mi as zAllAssetsResponse, Mn as PortfolioAppliedState, Mo as Validator, Mr as LegalInlineContent, Ms as UserRegistrationChallengeResponse, Mt as RequestSortBy, N as OperationMilestoneResponse, Na as TransactionData, Ni as zAssetCapabilitiesResponse, Nn as normalizePortfolioName, No as zEthereumLikeEip1559FeeStrategy, Nr as PrivacyNoticeResponse, Ns as UserRegistrationDeviceData, Nt as VaultRequestCreateInput, O as UserRegistrationCreateInput, Oa as AccountNetworkInfoFields, Oi as AllAssetsResponse, On as zPortfolioUpdateInput, Oo as BITCOIN_SPEC, Or as zAllowedResourcesResponse, Os as PubKey, Ot as PotentialDuplicateTransactionsInput, P as TradelinkCustodianResponse, Pa as TransactionDataOf, Pi as zAssetResponse, Pn as zPortfolioAppliedState, Po as zStakingProvisioning, Pr as PrivacyNoticeSection, Ps as zPsdPairingData, Pt as VaultRequestResponse, Q as zTokenizationListDeploymentsResponse, Qa as CARDANO_STAKE_KEY_STATUSES, Qi as zWebhookListFilters, Qn as HsmHostingMode, Qo as CursorPaginated, Qr as WorkspaceRulesResponse, Qs as AuthResponse, Qt as OperationMetadataResponse, R as zTradelinkCustodianResponse, Ra as convertTxToGovernableIntent, Ri as DeleteWebhookResponse, Ro as zGovernableAction, Rr as zLegalInline, Rs as zRefreshPskData, Rt as zApproveVaultRequestInput, S as UserSortBy, Sa as HsmCompareReason, Sc as zStakingValidatorSortBy, Si as zCantonTransferProposalResponse, Sn as zPortfolioCurrentUserAccessResponse, So as ETHEREUM_SPEC, Sr as PolicySortBy, Ss as ApiChallenge, T as zQuorumAccountSourceResponse, Ti as zTransactionWithMetaResponse, Tn as zPortfolioSortBy, To as CANTON_SPEC, Tr as AllowedActionsResponse, Ts as PsdPairingData, Tt as ChallengeResponse, U as TokenizationEstimateDeploymentFeeInput, Ua as zEstimatedFees, Ui as zCreateWebhookResponse, Un as ClaimedRole, Uo as zTransactionScanSummary, Ur as zSubProcessorRow, Ut as zPotentialDuplicateTransactionsResponse, V as zTradelinkSettlementWithAccountAndExchangeInfoResponse, Va as zAccountNetworkInfoFields, Vi as WebhookResponse, Vn as AuditLogType, Vo as zFiatCurrency, Vr as zPrivacyNoticeSection, Vs as zUserRegistrationChallengeResponse, Vt as zEnsureNameAvailableInput, W as zTokenTemplateListResponse, Wa as zNetworkAssetFields, Wi as zDeleteWebhookResponse, Wo as NatsEventBackfillFailure, Wr as zSubProcessorsResponse, Ws as LesWalletRegistrationResult, Wt as zRequestSortBy, X as zTokenizationGetRowInput, Xa as CARDANO_DREP_ALWAYS_ABSTAIN, Xi as zWebhookDeliveryResponse, Xo as NATS_EVENT_BACKFILL_LIST_LIMIT, Xr as RootWorkspaceRuleResponse, Xs as zOidcConfig, Xt as OutgoingTransactionMeta, Y as zTokenizationEstimateDeploymentFeeResponse, Ya as CARDANO_CREATABLE_VOTE_DELEGATIONS, Yi as zWebhookDeliveryDetailResponse, Yo as NATS_EVENT_BACKFILL_EVENT_TYPES, Yr as zGroupSortBy, Ys as zExchangeCredentialsResponse, Yt as zWebVaultRequestResponse, Z as zTokenizationListDeploymentsInput, Za as CARDANO_DREP_ALWAYS_VOTE_NO, Zi as zWebhookDetailResponse, Zo as NatsEventBackfillEventType, Zr as WorkspaceRuleResponse, Zt as RequestMeta, _ as zUserSortByField, _a as HSM_COMPARATORS, _c as zIndexedSelectionCapability, _i as zAccountAllowedActionsResponse, _n as PortfolioSummary, _o as zRippleDestinationTag, _s as HSM_OBJECT_TYPES, _t as zDeleteTradelinkOrgEntityInput, a as zAuditLogSortBy, aa as OnboardingFullState, ac as AccountLiveDataResponse, ai as EntitySortBy, an as ReportResponse, ao as isValidCardanoPoolId, ar as PsdModel, as as fetchAllCursorPages, at as TokenizationDeploymentEstimateInput, b as QuorumAccountSourceResponse, ba as HsmCompareAnomaly, bc as zStakesPage, bi as zAccountSortBy, bn as zPortfolioAdminResponse, bo as isErc20Address, br as zPolicySortByField, bs as ObjectsVersionResponse, bt as zTradelinkOrgEntityResponse, c as zWhitelistSortByField, ca as OnboardingSeedFragment, cc as IndexedReceiveAddressSelection, ci as PsdAuthChallengeData, cn as zReportResponse, co as TEZOS_SPEC, cr as RequestReviewStatus, cs as serializePage, ct as ReviewStepWithUsers, d as WhitelistResponse, da as zOnboardingFullState, dc as zAccountLiveDataResponse, di as zStakeSortByField, dn as PortfolioAdminResponse, do as StellarMemo, dr as ResourceType, ds as zCursorQuery, dt as DeleteTradelinkExchangeInput, ec as zAuthResponse, ei as zRootWorkspaceRuleResponse, en as EnsureNameAvailableOutput, eo as CARDANO_STAKING_TRANSACTION_TYPES, er as MessageType, es as MAX_PAGE_SIZE, et as zTokenizationListRowsResponse, f as WhitelistSortBy, fa as zOnboardingId, fc as zAddressIndex, fi as AccountAllowedActionsResponse, fn as PortfolioCreateInput, fo as zStellarMemo, fr as RevaultMode, fs as zPageQuery, ft as PledgeResponse, g as zWhitelistSortBy, gc as zIndexedReceiveAddressSelection, gi as TransactionWithMetaResponse, gn as PortfolioStatusFilter, go as RIPPLE_SPEC, gr as UserRole, gs as GetObjectsInfoResponse, gt as zCreateTradelinkOrgEntityInput, h as zWhitelistResponse, hc as zIndexedReceiveAddressInput, hi as RawSigningPublicKeyResponse, hn as PortfolioSortBy, ho as isSplTokenTransaction, hs as RiskLevel, ht as zCreateTradelinkNetworkBlueprintInput, i as zAuditLogResponse, ia as DeviceClaim, ic as admitsStakeOperation, ii as EntityResponse, in as ReportInput, io as isCardanoStakingTransactionType, ir as PortfolioHistoryAction, is as emptyPage, it as TokenizationCreateDeploymentRequestInput, j as zUserRegistrationResponse, ja as SendOnlyTransactionData, ji as TokenResponse, jn as PORTFOLIO_NAME_MAX_LENGTH, jo as StakingProvisioning, jr as LegalInline, js as UserRegistrationChallenge, jt as RequestReview, k as UserRegistrationResponse, ka as AccountStakingFields, ki as AssetResponse, kn as zPortfoliosByAccountIdsInput, ko as BitcoinLikeBalance, kr as zOpenApiResourceType, ks as RefreshPskData, kt as PotentialDuplicateTransactionsResponse, l as WhitelistAddressResponse, la as WrappingKeyResponse, lc as IndexedSelectionCapability, li as zPsdAuthChallengeData, ln as zVisibleReportStatus, lo as SUI_SPEC, lr as RequestState, ls as stableOrdering, lt as zReviewStepsArray, m as zWhitelistAddressSortBy, ma as zOnboardingSeedFragment, mc as zFreshReceiveAddress, mi as AccountSortBy, mn as PortfolioHistoryEntryResponse, mo as isSolanaWalletAddress, mr as UserDeviceType, ms as zSortOrder, mt as TradelinkOrgEntityResponse, n as AuditLogResponse, nc as EthereumStakingNetwork, ni as zWorkspaceRuleResponse, nn as zEnsureNameAvailableOutput, no as CardanoStakingTransactionType, nr as OnboardingStep, ns as Paginated, o as WorkspaceResponse, oa as OnboardingOpts, oc as FreshReceiveAddress, oi as zEntityResponse, on as zReportDownloadUrlResponse, oo as toCanonicalCardanoPoolId, or as ReportStatus, os as fetchAllPages, ot as TokenizationFeeEstimate, p as zWhitelistAddressResponse, pa as zOnboardingOpts, pc as zBalance, pi as AccountResponse, pn as PortfolioCurrentUserAccessResponse, po as SOLANA_SPEC, pr as ReviewConfigType, ps as zPaginated, pt as TradelinkNetworkBlueprintResponse, q as zTokenizationCreateDeploymentRequestResponse, qa as zTransactionResponse, qi as zUpdateWebhookPayload, qo as NatsEventBackfillReport, qr as GroupSortBy, qt as zVaultRequestCreateInput, r as AuditLogSortBy, rc as isEthereumStakingNetwork, ri as zWorkspaceRulesResponse, rn as ReportDownloadUrlResponse, ro as isCardanoStakeKeyRegistered, rr as OutgoingTransactionStatus, rs as SortOrder, rt as TokenTemplateResponse, s as zWorkspaceResponse, sa as OnboardingSeedChallenge, sc as IndexedReceiveAddressInput, si as zEntitySortBy, sn as zReportInput, so as TRON_SPEC, ss as paginate, st as zTokenizationRowDetail, t as EMPTY_UUID, tc as ETHEREUM_STAKING_NETWORKS, ti as zWorkspaceRuleMemberResponse, tn as SoftChallenge, to as CardanoStakeKeyStatus, tr as OnboardedUserRole, ts as PageQuery, u as WhitelistAddressSortBy, ua as zDeviceClaim, uc as ReceiveAddressSelection, ui as zAccountSortByField, un as zPortfolioSortByField, uo as STELLAR_SPEC, ur as RequestType, us as zCursorPaginated, ut as CreateTradelinkOrgEntityInput, v as AdminResponse, va as HSM_COMPARE_REASONS, vc as zStake, vi as zAccountCommonFields, vn as PortfolioUpdateInput, vo as POLKADOT_SPEC, vs as HsmObjectType, vt as zPledgeResponse, w as zQuorumAccountEntryResponse, wi as zStakeSortBy, wn as zPortfolioName, wo as CARDANO_SPEC, wr as zPolicySortBy, ws as PsdChallenge, wt as ApproveVaultRequestInput, x as UserResponse, xa as HsmCompareDetail, xc as zStakingValidator, xi as zCantonPreApprovalStateResponse, xn as zPortfolioCreateInput, xo as GENERIC_SPEC, xr as PolicyResponse, xs as VersionedObjectInfo, xt as zTradelinkWhitelist, y as QuorumAccountEntryResponse, ya as HsmComparator, yc as zStakeState, yi as zAccountResponse, yn as PortfoliosByAccountIdsResponse, yo as HEDERA_SPEC, yr as WhitelistType, ys as ObjectsContentResponse, yt as zTradelinkNetworkBlueprintResponse, z as zTradelinkEntityResponse, za as getTxHsmProps, zi as UpdateWebhookPayload, zn as AdminPermission, zo as FiatCurrency, zr as zLegalInlineContent, zs as zRefreshPskInputData, zt as zChallengeResponse } from "./app-lib-BJhNaXn-.mjs";
|
|
1
|
+
import { $ as zTokenizationListRowsInput, $a as CARDANO_STAKING_BLOCKING_REQUEST_TYPES, $i as zWebhookResponse, $n as MaintenanceMode, $o as DEFAULT_PAGE_SIZE, $r as zAdminRulesResponse, $s as zApiUserCredentialsResponse, $t as Challenge, A as zUserRegistrationCreateInput, Aa as EstimatedFees, Ai as CurrencyResponse, An as zPortfoliosByAccountIdsResponse, Ao as EthereumLikeEip1559FeeStrategy, Ar as LegalContentBlock, As as RefreshPskInputData, At as RequestDataOf, B as zTradelinkNetworkResponse, Ba as zAccountLiveData, Bi as WebhookDetailResponse, Bn as AllowedAction, Bo as getFiatMinorUnitExponent, Br as zPrivacyNoticeResponse, Bs as zUserRegistrationChallenge, Bt as zCreateClassicAccountWithPolicyIdInput, C as zAdminResponse, Ca as HsmWorkspaceComparison, Ci as zRawSigningPublicKeyResponse, Cn as zPortfolioHistoryEntryResponse, Co as CARDANO_NETWORK, Cr as zPolicyResponse, Cs as HsmCertificate, Ct as zRequestSortByField, D as zUserSortBy, Da as isTransactionCheckSupportedType, Di as zSignedMessageResponse, Dn as zPortfolioSummary, Do as zCantonTransferProposal, Dr as zAllowedActionsResponse, Ds as PsdSignature, Dt as PotentialDuplicateTransaction, E as zUserResponse, Ei as zUtxosPageResponse, En as zPortfolioStatusFilter, Eo as CantonTransferProposal, Er as AllowedResourcesResponse, Es as PsdPairingInputData, Et as EnsureNameAvailableInput, F as TradelinkEntityResponse, Fa as TransactionResponse, Fi as zCurrencyResponse, Fo as NetworkFamily, Fr as SubProcessorRow, Fs as zPsdPairingInputData, Ft as VaultRequestResponseBase, G as zTokenTemplateResponse, Ga as zSendOnlyTransactionData, Gi as zReplayFailedResponse, Go as NatsEventBackfillItem, Gr as zGroupSortByField, Gt as zSignDigestsRequestInput, H as AppRouter, Ha as zAccountStakingFields, Hi as zCreateWebhookPayload, Hn as ChallengeType, Hr as zPrivacyNoticeSectionId, Hs as zUserRegistrationDeviceData, Ht as zPotentialDuplicateTransactionsInput, I as TradelinkNetworkResponse, Ia as TransactionType, Ii as zTokenResponse, In as AccountType, Io as zCommonLiveData, Ir as SubProcessorsResponse, Is as zPsdSignature, It as WebVaultRequestResponse, J as zTokenizationEstimateDeploymentFeeInput, Ja as zTransactionType, Ji as zWebhookDeliveriesFilters, Jr as zGroupResponse, Js as OidcConfig, Jt as zVaultRequestResponse, K as zTokenizationCreateDeploymentRequestInput, Ka as zTransactionData, Ki as zRotateWebhookSecretResponse, Ko as NatsEventBackfillPreview, Kr as GroupResponse, Kt as zSignMessageRequestInput, L as TradelinkSettlementWithAccountAndExchangeInfoResponse, La as TransactionTypeOf, Li as CreateWebhookPayload, Ln as ActivationStatus, Lo as zTransactionStatus, Lr as zLegalContentBlock, Ls as zPubKey, Lt as genTransactionSchemas, M as OperationHistoryResponse, Ma as StakingDataOf, Mi as zAllAssetsResponse, Mn as PortfolioAppliedState, Mo as Validator, Mr as LegalInlineContent, Ms as UserRegistrationChallengeResponse, Mt as RequestSortBy, N as OperationMilestoneResponse, Na as TransactionData, Ni as zAssetCapabilitiesResponse, Nn as normalizePortfolioName, No as zEthereumLikeEip1559FeeStrategy, Nr as PrivacyNoticeResponse, Ns as UserRegistrationDeviceData, Nt as VaultRequestCreateInput, O as UserRegistrationCreateInput, Oa as AccountNetworkInfoFields, Oi as AllAssetsResponse, On as zPortfolioUpdateInput, Oo as BITCOIN_SPEC, Or as zAllowedResourcesResponse, Os as PubKey, Ot as PotentialDuplicateTransactionsInput, P as TradelinkCustodianResponse, Pa as TransactionDataOf, Pi as zAssetResponse, Pn as zPortfolioAppliedState, Po as zStakingProvisioning, Pr as PrivacyNoticeSection, Ps as zPsdPairingData, Pt as VaultRequestResponse, Q as zTokenizationListDeploymentsResponse, Qa as CARDANO_STAKE_KEY_STATUSES, Qi as zWebhookListFilters, Qn as HsmHostingMode, Qo as CursorPaginated, Qr as WorkspaceRulesResponse, Qs as AuthResponse, Qt as OperationMetadataResponse, R as zTradelinkCustodianResponse, Ra as convertTxToGovernableIntent, Ri as DeleteWebhookResponse, Ro as zGovernableAction, Rr as zLegalInline, Rs as zRefreshPskData, Rt as zApproveVaultRequestInput, S as UserSortBy, Sa as HsmCompareReason, Sc as zStakingValidatorSortBy, Si as zCantonTransferProposalResponse, Sn as zPortfolioCurrentUserAccessResponse, So as ETHEREUM_SPEC, Sr as PolicySortBy, Ss as ApiChallenge, T as zQuorumAccountSourceResponse, Ti as zTransactionWithMetaResponse, Tn as zPortfolioSortBy, To as CANTON_SPEC, Tr as AllowedActionsResponse, Ts as PsdPairingData, Tt as ChallengeResponse, U as TokenizationEstimateDeploymentFeeInput, Ua as zEstimatedFees, Ui as zCreateWebhookResponse, Un as ClaimedRole, Uo as zTransactionScanSummary, Ur as zSubProcessorRow, Ut as zPotentialDuplicateTransactionsResponse, V as zTradelinkSettlementWithAccountAndExchangeInfoResponse, Va as zAccountNetworkInfoFields, Vi as WebhookResponse, Vn as AuditLogType, Vo as zFiatCurrency, Vr as zPrivacyNoticeSection, Vs as zUserRegistrationChallengeResponse, Vt as zEnsureNameAvailableInput, W as zTokenTemplateListResponse, Wa as zNetworkAssetFields, Wi as zDeleteWebhookResponse, Wo as NatsEventBackfillFailure, Wr as zSubProcessorsResponse, Ws as LesWalletRegistrationResult, Wt as zRequestSortBy, X as zTokenizationGetRowInput, Xa as CARDANO_DREP_ALWAYS_ABSTAIN, Xi as zWebhookDeliveryResponse, Xo as NATS_EVENT_BACKFILL_LIST_LIMIT, Xr as RootWorkspaceRuleResponse, Xs as zOidcConfig, Xt as OutgoingTransactionMeta, Y as zTokenizationEstimateDeploymentFeeResponse, Ya as CARDANO_CREATABLE_VOTE_DELEGATIONS, Yi as zWebhookDeliveryDetailResponse, Yo as NATS_EVENT_BACKFILL_EVENT_TYPES, Yr as zGroupSortBy, Ys as zExchangeCredentialsResponse, Yt as zWebVaultRequestResponse, Z as zTokenizationListDeploymentsInput, Za as CARDANO_DREP_ALWAYS_VOTE_NO, Zi as zWebhookDetailResponse, Zo as NatsEventBackfillEventType, Zr as WorkspaceRuleResponse, Zt as RequestMeta, _ as zUserSortByField, _a as HSM_COMPARATORS, _c as zIndexedSelectionCapability, _i as zAccountAllowedActionsResponse, _n as PortfolioSummary, _o as zRippleDestinationTag, _s as HSM_OBJECT_TYPES, _t as zDeleteTradelinkOrgEntityInput, a as zAuditLogSortBy, aa as OnboardingFullState, ac as AccountLiveDataResponse, ai as EntitySortBy, an as ReportResponse, ao as isValidCardanoPoolId, ar as PsdModel, as as fetchAllCursorPages, at as TokenizationDeploymentEstimateInput, b as QuorumAccountSourceResponse, ba as HsmCompareAnomaly, bc as zStakesPage, bi as zAccountSortBy, bn as zPortfolioAdminResponse, bo as isErc20Address, br as zPolicySortByField, bs as ObjectsVersionResponse, bt as zTradelinkOrgEntityResponse, c as zWhitelistSortByField, ca as OnboardingSeedFragment, cc as IndexedReceiveAddressSelection, ci as PsdAuthChallengeData, cn as zReportResponse, co as TEZOS_SPEC, cr as RequestReviewStatus, cs as serializePage, ct as ReviewStepWithUsers, d as WhitelistResponse, da as zOnboardingFullState, dc as zAccountLiveDataResponse, di as zStakeSortByField, dn as PortfolioAdminResponse, do as StellarMemo, dr as ResourceType, ds as zCursorQuery, dt as DeleteTradelinkExchangeInput, ec as zAuthResponse, ei as zRootWorkspaceRuleResponse, en as EnsureNameAvailableOutput, eo as CARDANO_STAKING_TRANSACTION_TYPES, er as MessageType, es as MAX_PAGE_SIZE, et as zTokenizationListRowsResponse, f as WhitelistSortBy, fa as zOnboardingId, fc as zAddressIndex, fi as AccountAllowedActionsResponse, fn as PortfolioCreateInput, fo as zStellarMemo, fr as RevaultMode, fs as zPageQuery, ft as PledgeResponse, g as zWhitelistSortBy, gc as zIndexedReceiveAddressSelection, gi as TransactionWithMetaResponse, gn as PortfolioStatusFilter, go as RIPPLE_SPEC, gr as UserRole, gs as GetObjectsInfoResponse, gt as zCreateTradelinkOrgEntityInput, h as zWhitelistResponse, hc as zIndexedReceiveAddressInput, hi as RawSigningPublicKeyResponse, hn as PortfolioSortBy, ho as isSplTokenTransaction, hs as RiskLevel, ht as zCreateTradelinkNetworkBlueprintInput, i as zAuditLogResponse, ia as DeviceClaim, ic as admitsStakeOperation, ii as EntityResponse, in as ReportInput, io as isCardanoStakingTransactionType, ir as PortfolioHistoryAction, is as emptyPage, it as TokenizationCreateDeploymentRequestInput, j as zUserRegistrationResponse, ja as SendOnlyTransactionData, ji as TokenResponse, jn as PORTFOLIO_NAME_MAX_LENGTH, jo as StakingProvisioning, jr as LegalInline, js as UserRegistrationChallenge, jt as RequestReview, k as UserRegistrationResponse, ka as AccountStakingFields, ki as AssetResponse, kn as zPortfoliosByAccountIdsInput, ko as BitcoinLikeBalance, kr as zOpenApiResourceType, ks as RefreshPskData, kt as PotentialDuplicateTransactionsResponse, l as WhitelistAddressResponse, la as WrappingKeyResponse, lc as IndexedSelectionCapability, li as zPsdAuthChallengeData, ln as zVisibleReportStatus, lo as SUI_SPEC, lr as RequestState, ls as stableOrdering, lt as zReviewStepsArray, m as zWhitelistAddressSortBy, ma as zOnboardingSeedFragment, mc as zFreshReceiveAddress, mi as AccountSortBy, mn as PortfolioHistoryEntryResponse, mo as isSolanaWalletAddress, mr as UserDeviceType, ms as zSortOrder, mt as TradelinkOrgEntityResponse, n as AuditLogResponse, nc as EthereumStakingNetwork, ni as zWorkspaceRuleResponse, nn as zEnsureNameAvailableOutput, no as CardanoStakingTransactionType, nr as OnboardingStep, ns as Paginated, o as WorkspaceResponse, oa as OnboardingOpts, oc as FreshReceiveAddress, oi as zEntityResponse, on as zReportDownloadUrlResponse, oo as toCanonicalCardanoPoolId, or as ReportStatus, os as fetchAllPages, ot as TokenizationFeeEstimate, p as zWhitelistAddressResponse, pa as zOnboardingOpts, pc as zBalance, pi as AccountResponse, pn as PortfolioCurrentUserAccessResponse, po as SOLANA_SPEC, pr as ReviewConfigType, ps as zPaginated, pt as TradelinkNetworkBlueprintResponse, q as zTokenizationCreateDeploymentRequestResponse, qa as zTransactionResponse, qi as zUpdateWebhookPayload, qo as NatsEventBackfillReport, qr as GroupSortBy, qt as zVaultRequestCreateInput, r as AuditLogSortBy, rc as isEthereumStakingNetwork, ri as zWorkspaceRulesResponse, rn as ReportDownloadUrlResponse, ro as isCardanoStakeKeyRegistered, rr as OutgoingTransactionStatus, rs as SortOrder, rt as TokenTemplateResponse, s as zWorkspaceResponse, sa as OnboardingSeedChallenge, sc as IndexedReceiveAddressInput, si as zEntitySortBy, sn as zReportInput, so as TRON_SPEC, ss as paginate, st as zTokenizationRowDetail, t as EMPTY_UUID, tc as ETHEREUM_STAKING_NETWORKS, ti as zWorkspaceRuleMemberResponse, tn as SoftChallenge, to as CardanoStakeKeyStatus, tr as OnboardedUserRole, ts as PageQuery, u as WhitelistAddressSortBy, ua as zDeviceClaim, uc as ReceiveAddressSelection, ui as zAccountSortByField, un as zPortfolioSortByField, uo as STELLAR_SPEC, ur as RequestType, us as zCursorPaginated, ut as CreateTradelinkOrgEntityInput, v as AdminResponse, va as HSM_COMPARE_REASONS, vc as zStake, vi as zAccountCommonFields, vn as PortfolioUpdateInput, vo as POLKADOT_SPEC, vs as HsmObjectType, vt as zPledgeResponse, w as zQuorumAccountEntryResponse, wi as zStakeSortBy, wn as zPortfolioName, wo as CARDANO_SPEC, wr as zPolicySortBy, ws as PsdChallenge, wt as ApproveVaultRequestInput, x as UserResponse, xa as HsmCompareDetail, xc as zStakingValidator, xi as zCantonPreApprovalStateResponse, xn as zPortfolioCreateInput, xo as GENERIC_SPEC, xr as PolicyResponse, xs as VersionedObjectInfo, xt as zTradelinkWhitelist, y as QuorumAccountEntryResponse, ya as HsmComparator, yc as zStakeState, yi as zAccountResponse, yn as PortfoliosByAccountIdsResponse, yo as HEDERA_SPEC, yr as WhitelistType, ys as ObjectsContentResponse, yt as zTradelinkNetworkBlueprintResponse, z as zTradelinkEntityResponse, za as getTxHsmProps, zi as UpdateWebhookPayload, zn as AdminPermission, zo as FiatCurrency, zr as zLegalInlineContent, zs as zRefreshPskInputData, zt as zChallengeResponse } from "./app-lib-JND8Jt8a.mjs";
|
|
2
2
|
export { type AccountAllowedActionsResponse, type AccountLiveDataResponse, type AccountNetworkInfoFields, type AccountResponse, type AccountSortBy, type AccountStakingFields, type AccountType, type ActivationStatus, type AdminPermission, type AdminResponse, type AllAssetsResponse, type AllowedAction, type AllowedActionsResponse, type AllowedResourcesResponse, type ApiChallenge, type AppRouter, type ApproveVaultRequestInput, type AssetResponse, type AuditLogResponse, type AuditLogSortBy, type AuditLogType, type AuthResponse, type BITCOIN_SPEC, type BitcoinLikeBalance, type CANTON_SPEC, CARDANO_CREATABLE_VOTE_DELEGATIONS, CARDANO_DREP_ALWAYS_ABSTAIN, type CARDANO_DREP_ALWAYS_VOTE_NO, type CARDANO_NETWORK, type CARDANO_SPEC, type CARDANO_STAKE_KEY_STATUSES, CARDANO_STAKING_BLOCKING_REQUEST_TYPES, CARDANO_STAKING_TRANSACTION_TYPES, type CantonTransferProposal, type CardanoStakeKeyStatus, type CardanoStakingTransactionType, type Challenge, type ChallengeResponse, type ChallengeType, type ClaimedRole, type CreateTradelinkOrgEntityInput as CreateTradelinkExchangeInput, type CreateWebhookPayload, type CurrencyResponse, type CursorPaginated, type DEFAULT_PAGE_SIZE, type DeleteTradelinkExchangeInput, type DeleteWebhookResponse, type DeviceClaim, EMPTY_UUID, type ETHEREUM_SPEC, ETHEREUM_STAKING_NETWORKS, type EnsureNameAvailableInput, type EnsureNameAvailableOutput, type EntityResponse, type EntitySortBy, type EstimatedFees, type EthereumLikeEip1559FeeStrategy, type EthereumStakingNetwork, type FiatCurrency, type FreshReceiveAddress, type GENERIC_SPEC, type GetObjectsInfoResponse, type GroupResponse, type GroupSortBy, type HEDERA_SPEC, HSM_COMPARATORS, HSM_COMPARE_REASONS, HSM_OBJECT_TYPES, type HsmCertificate, type HsmComparator, type HsmCompareAnomaly, type HsmCompareDetail, type HsmCompareReason, type HsmHostingMode, type HsmObjectType, type HsmWorkspaceComparison, type IndexedReceiveAddressInput, type IndexedReceiveAddressSelection, type IndexedSelectionCapability, type LegalContentBlock, type LegalInline, type LegalInlineContent, type LesWalletRegistrationResult, type MAX_PAGE_SIZE, type MaintenanceMode, type MessageType, NATS_EVENT_BACKFILL_EVENT_TYPES, NATS_EVENT_BACKFILL_LIST_LIMIT, type NatsEventBackfillEventType, type NatsEventBackfillFailure, type NatsEventBackfillItem, type NatsEventBackfillPreview, type NatsEventBackfillReport, type NetworkFamily, type ObjectsContentResponse, type ObjectsVersionResponse, type OidcConfig, type OnboardedUserRole, type OnboardingFullState as OnboardingFullStateResponse, type OnboardingOpts, type OnboardingSeedChallenge, type OnboardingSeedFragment, type OnboardingStep, type OperationHistoryResponse, type OperationMetadataResponse, type OperationMilestoneResponse, type OutgoingTransactionMeta, type OutgoingTransactionStatus, type POLKADOT_SPEC, type PORTFOLIO_NAME_MAX_LENGTH, type PageQuery, type Paginated, type PledgeResponse, type PolicyResponse, type PolicySortBy, type PortfolioAdminResponse, type PortfolioAppliedState, type PortfolioCreateInput, type PortfolioCurrentUserAccessResponse, type PortfolioHistoryAction, type PortfolioHistoryEntryResponse, type PortfolioSortBy, type PortfolioStatusFilter, type PortfolioSummary, type PortfolioUpdateInput, type PortfoliosByAccountIdsResponse, type PotentialDuplicateTransaction, type PotentialDuplicateTransactionsInput, type PotentialDuplicateTransactionsResponse, type PrivacyNoticeResponse, type PrivacyNoticeSection, type PsdAuthChallengeData as PsdAuthChallengeResponse, type PsdChallenge, type PsdModel, type PsdPairingData, type PsdPairingInputData, type PsdSignature, type PubKey, type QuorumAccountEntryResponse, type QuorumAccountSourceResponse, type RIPPLE_SPEC, type RawSigningPublicKeyResponse, type ReceiveAddressSelection, type RefreshPskData, type RefreshPskInputData, type ReportDownloadUrlResponse, type ReportInput, type ReportResponse, type ReportStatus, type RequestDataOf, type RequestMeta, type RequestReview, type RequestReviewStatus, type RequestSortBy, type RequestState, type RequestType, type ResourceType, type RevaultMode, type ReviewConfigType, type ReviewStepWithUsers, type RiskLevel, type RootWorkspaceRuleResponse, type SOLANA_SPEC, type STELLAR_SPEC, type SUI_SPEC, type SendOnlyTransactionData, type SoftChallenge, type SortOrder, type StakingDataOf, type StakingProvisioning, type StellarMemo, type SubProcessorRow, type SubProcessorsResponse, type TEZOS_SPEC, type TRON_SPEC, type TokenResponse, type TokenTemplateResponse, type TokenizationCreateDeploymentRequestInput, type TokenizationDeploymentEstimateInput, type TokenizationEstimateDeploymentFeeInput, type TokenizationFeeEstimate, type TradelinkCustodianResponse, type TradelinkEntityResponse, type TradelinkNetworkBlueprintResponse, type TradelinkNetworkResponse, type TradelinkOrgEntityResponse, type TradelinkSettlementWithAccountAndExchangeInfoResponse, type TransactionData, type TransactionDataOf, type TransactionResponse, type TransactionType, type TransactionTypeOf, type TransactionWithMetaResponse, type UpdateWebhookPayload, type UserDeviceType, type UserRegistrationChallenge, type UserRegistrationChallengeResponse, type UserRegistrationCreateInput, type UserRegistrationDeviceData, type UserRegistrationResponse, type UserResponse, type UserRole, type UserSortBy, type Validator, type VaultRequestCreateInput, type VaultRequestResponse, type VaultRequestResponseBase, type VersionedObjectInfo, type WebVaultRequestResponse, type WebhookDetailResponse, type WebhookResponse, type WhitelistAddressResponse, type WhitelistAddressSortBy, type WhitelistResponse, type WhitelistSortBy, type WhitelistType, type WorkspaceResponse, type WorkspaceRuleResponse, type WorkspaceRulesResponse, type WrappingKeyResponse, admitsStakeOperation, type convertTxToGovernableIntent, type emptyPage, type fetchAllCursorPages, type fetchAllPages, type genTransactionSchemas, getFiatMinorUnitExponent, type getTxHsmProps, isCardanoStakeKeyRegistered, type isCardanoStakingTransactionType, type isErc20Address, isEthereumStakingNetwork, type isSolanaWalletAddress, type isSplTokenTransaction, isTransactionCheckSupportedType, isValidCardanoPoolId, type normalizePortfolioName, type paginate, type serializePage, type stableOrdering, toCanonicalCardanoPoolId, type zAccountAllowedActionsResponse, type zAccountCommonFields, type zAccountLiveData, type zAccountLiveDataResponse, type zAccountNetworkInfoFields, type zAccountResponse, type zAccountSortBy, zAccountSortByField, type zAccountStakingFields, type zAddressIndex, type zAdminResponse, type zAdminRulesResponse, type zAllAssetsResponse, type zAllowedActionsResponse, type zAllowedResourcesResponse, type zApiUserCredentialsResponse, type zApproveVaultRequestInput, type zAssetCapabilitiesResponse, type zAssetResponse, type zAuditLogResponse, type zAuditLogSortBy, type zAuthResponse, type zBalance, type zCantonPreApprovalStateResponse, type zCantonTransferProposal, type zCantonTransferProposalResponse, type zChallengeResponse, type zCommonLiveData, type zCreateClassicAccountWithPolicyIdInput, type zCreateTradelinkNetworkBlueprintInput, type zCreateTradelinkOrgEntityInput, type zCreateWebhookPayload, type zCreateWebhookResponse, type zCurrencyResponse, type zCursorPaginated, type zCursorQuery, type zDeleteTradelinkOrgEntityInput, type zDeleteWebhookResponse, type zDeviceClaim, type zEnsureNameAvailableInput, type zEnsureNameAvailableOutput, type zEntityResponse, type zEntitySortBy, type zEstimatedFees as zEstimateFeesResponse, type zEstimatedFees, zEthereumLikeEip1559FeeStrategy, type zExchangeCredentialsResponse, zFiatCurrency, type zFreshReceiveAddress, type zGovernableAction, type zGroupResponse, type zGroupSortBy, zGroupSortByField, type zIndexedReceiveAddressInput, type zIndexedReceiveAddressSelection, type zIndexedSelectionCapability, type zLegalContentBlock, type zLegalInline, type zLegalInlineContent, type zNetworkAssetFields, type zOidcConfig, type zOnboardingFullState as zOnboardingFullStateResponse, type zOnboardingId, type zOnboardingOpts, type zOnboardingSeedFragment, type zOpenApiResourceType, type zPageQuery, type zPaginated, type zPledgeResponse, type zPolicyResponse, type zPolicySortBy, zPolicySortByField, type zPortfolioAdminResponse, type zPortfolioAppliedState, type zPortfolioCreateInput, type zPortfolioCurrentUserAccessResponse, type zPortfolioHistoryEntryResponse, type zPortfolioName, type zPortfolioSortBy, zPortfolioSortByField, type zPortfolioStatusFilter, type zPortfolioSummary, type zPortfolioUpdateInput, type zPortfoliosByAccountIdsInput, type zPortfoliosByAccountIdsResponse, type zPotentialDuplicateTransactionsInput, type zPotentialDuplicateTransactionsResponse, type zPrivacyNoticeResponse, type zPrivacyNoticeSection, type zPrivacyNoticeSectionId, type zPsdAuthChallengeData as zPsdAuthChallengeResponse, type zPsdPairingData, type zPsdPairingInputData, type zPsdSignature, type zPubKey, type zQuorumAccountEntryResponse, type zQuorumAccountSourceResponse, type zRawSigningPublicKeyResponse, type zRefreshPskData, type zRefreshPskInputData, type zReplayFailedResponse, type zReportDownloadUrlResponse, type zReportInput, type zReportResponse, type zRequestSortBy, zRequestSortByField, type zReviewStepsArray, type zRippleDestinationTag, type zRootWorkspaceRuleResponse, type zRotateWebhookSecretResponse, type zSendOnlyTransactionData, type zSignDigestsRequestInput, type zSignMessageRequestInput, type zSignedMessageResponse, type zSortOrder, type zStake, type zStakeSortBy, zStakeSortByField, type zStakeState, type zStakesPage, type zStakingProvisioning, type zStakingValidator, type zStakingValidatorSortBy, type zStellarMemo, type zSubProcessorRow, type zSubProcessorsResponse, type zTokenResponse, type zTokenTemplateListResponse, type zTokenTemplateResponse, type zTokenizationCreateDeploymentRequestInput, type zTokenizationCreateDeploymentRequestResponse, type zTokenizationEstimateDeploymentFeeInput, type zTokenizationEstimateDeploymentFeeResponse, type zTokenizationGetRowInput, type zTokenizationListDeploymentsInput, type zTokenizationListDeploymentsResponse, type zTokenizationListRowsInput, type zTokenizationListRowsResponse, type zTokenizationRowDetail, type zTradelinkCustodianResponse, type zTradelinkEntityResponse, type zTradelinkNetworkBlueprintResponse, type zTradelinkNetworkResponse, type zTradelinkOrgEntityResponse, type zTradelinkSettlementWithAccountAndExchangeInfoResponse, type zTradelinkWhitelist, type zTransactionData, type zTransactionResponse, type zTransactionScanSummary, type zTransactionStatus, type zTransactionType, type zTransactionWithMetaResponse, type zUpdateWebhookPayload, type zUserRegistrationChallenge, type zUserRegistrationChallengeResponse, type zUserRegistrationCreateInput, type zUserRegistrationDeviceData, type zUserRegistrationResponse, type zUserResponse, type zUserSortBy, zUserSortByField, type zUtxosPageResponse, type zVaultRequestCreateInput, type zVaultRequestResponse, type zVisibleReportStatus, type zWebVaultRequestResponse, type zWebhookDeliveriesFilters, type zWebhookDeliveryDetailResponse, type zWebhookDeliveryResponse, type zWebhookDetailResponse, type zWebhookListFilters, type zWebhookResponse, type zWhitelistAddressResponse, type zWhitelistAddressSortBy, type zWhitelistResponse, type zWhitelistSortBy, zWhitelistSortByField, type zWorkspaceResponse, type zWorkspaceRuleMemberResponse, type zWorkspaceRuleResponse, type zWorkspaceRulesResponse };
|
package/lib/index.mjs
CHANGED
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["z","z","z","z","z","z","z","z"],"sources":["../src/core/accounts/stake-admission.ts","../src/shared/ethereum-staking-networks.ts","../src/core/hsm-comparison.ts","../src/shared/zod-utils.ts","../src/core/networks/common.ts","../src/core/networks/cardano/staking.ts","../src/core/networks/ethereum/schemas.ts","../src/core/networks/cardano/pool-id.ts","../src/core/scan/supported-types.ts","../src/core/types/fiat-currency.ts","../src/core/accounts/stake-sort.ts","../src/entrypoints/api/accounts/sort.ts","../src/entrypoints/api/groups/sort.ts","../src/services/hsm/hsm-requests-types.ts","../src/entrypoints/api/policies/sort.ts","../src/entrypoints/api/portfolios/sort.ts","../src/entrypoints/api/requests/sort.ts","../src/entrypoints/api/users/sort.ts","../src/entrypoints/api/whitelists/sort.ts","../src/shared/empty-uuid.ts","../src/shared/nats-event-backfill.ts"],"sourcesContent":["import type { Stake, StakeOperation } from \"./read-models\";\n\n/**\n * Whether `operation` may still be started on this position, per the backend that enforces the\n * blocking matrix. Shared with the front-end so the rule has one reading, and kept trivial on\n * purpose: the verdict is computed where the matrix lives, not here.\n *\n * A null `admissibleOperations` means admission is not reported — an older backend, or a chain\n * that has no such notion — and is deliberately permissive: refusing every action on a missing\n * verdict would disable a whole account, while the broadcast 409 remains the backstop. A pending\n * credential upgrade is still honoured then: it is reported, not missing, and locks the position.\n *\n * Lives apart from `read-models` so `app-lib` can publish it without the bundler following that\n * module's runtime imports into every consumer of this package. The imports here are types only,\n * and erased.\n */\nexport const admitsStakeOperation = (\n // Optional so callers passing only `admissibleOperations` keep compiling.\n position: Pick<Stake, \"admissibleOperations\"> & Partial<Pick<Stake, \"pendingOperations\">>,\n operation: StakeOperation,\n): boolean =>\n position.admissibleOperations == null\n ? !position.pendingOperations?.some((_) => _.kind === \"CREDENTIAL_UPGRADE\")\n : position.admissibleOperations.includes(operation);\n","/**\n * Networks where Ethereum staking is served. `ETHEREUM_LIKE` covers every EVM chain, so this list\n * is what separates a chain the product stakes on from Polygon, BSC and the rest — including the\n * testnets LAMA would answer for but the product does not offer. Published through `app-lib` so\n * the front-end gates its Staking UI on the same list.\n */\nexport const ETHEREUM_STAKING_NETWORKS = [\"ethereum\", \"ethereum_hoodi\"] as const;\n\nexport type EthereumStakingNetwork = (typeof ETHEREUM_STAKING_NETWORKS)[number];\n\nexport const isEthereumStakingNetwork = (network: string): network is EthereumStakingNetwork =>\n (ETHEREUM_STAKING_NETWORKS as readonly string[]).includes(network);\n","/** Comparators offered by the backoffice \"Compare with HSM\" diagnostic, one run at a time. */\nexport const HSM_COMPARATORS = [\"whitelists\", \"workspace-name\"] as const;\n\nexport type HsmComparator = (typeof HSM_COMPARATORS)[number];\n\n/**\n * Why a compared object diverges. Reasons are comparator-specific, but they share a single enum so\n * the backoffice can count and group anomalies without knowing which comparator produced them.\n */\nexport const HSM_COMPARE_REASONS = [\n \"has-diffs\",\n \"missing-in-hsm\",\n \"missing-in-revault\",\n \"fetch-failed\",\n \"name-mismatch\",\n \"no-partition-found\",\n \"multiple-partitions-found\",\n] as const;\n\nexport type HsmCompareReason = (typeof HSM_COMPARE_REASONS)[number];\n\n/**\n * One line of evidence under an anomaly. Values are stringified here rather than formatted, so the\n * backoffice owns how a divergence reads on screen.\n */\nexport type HsmCompareDetail =\n | {\n kind: \"field-diff\";\n /** Entry the field belongs to, or null when the field is on the object itself. */\n scope: string | null;\n field: string;\n revault: string;\n hsm: string;\n }\n | { kind: \"only-in-revault\"; entry: string }\n | { kind: \"only-in-hsm\"; entry: string };\n\nexport type HsmCompareAnomaly = {\n reason: HsmCompareReason;\n /** HSM object id, null for anomalies that are not about a single identified object. */\n hsmId: string | null;\n /** Revault-side name, null when only the HSM knows the object. */\n name: string | null;\n details: HsmCompareDetail[];\n};\n\nexport type HsmWorkspaceComparison = {\n workspaceName: string;\n /** Objects actually compared on both sides. Zero means there was nothing to compare. */\n checked: number;\n anomalies: HsmCompareAnomaly[];\n};\n","import { z } from \"zod\";\n\nexport const zHexString = z.string().regex(/^[0-9a-fA-F]+$/);\n\nexport const zIntString = z\n .string()\n .nonempty()\n .regex(/^(-?[1-9]\\d*|0)$/);\n\nexport const zUnsignedIntString = z\n .string()\n .nonempty()\n .regex(/^([1-9]\\d*|0)$/);\n\nexport const zCurrencyString = z\n .string()\n .nonempty()\n .max(40)\n .regex(/^\\w+$/)\n .meta({ description: \"Will be deprecated soon, use network instead. Currency\" });\n\nexport const zNetwork = z\n .string()\n .nonempty()\n .max(40)\n .regex(/^\\w+$/)\n .meta({ description: \"Network identifier\" });\n\nexport const zCurrency = z.object({\n network: zNetwork,\n contractAddress: z.string().nonempty().nullable().meta({ description: \"Token issuer\" }),\n tokenIdentifier: z.string().nonempty().nullable().meta({ description: \"Token identifier\" }),\n});\n\nexport const zObjectId = z\n .string()\n .regex(/^[\\w-]+$/) // UUID, GUID, NanoID, CUID... or just a slug\n .nonempty();\n\nexport type ObjectId = z.infer<typeof zObjectId>;\n\nexport const zHsmObjectId = z\n .string()\n .regex(/^[\\w-]+$/) // TODO: what is the exact format of an HSM ID?\n .nonempty();\n\nexport type HsmObjectId = z.infer<typeof zHsmObjectId>;\n\nexport const zHsmObjectName = z.string().min(1).max(45).meta({ description: \"HSM object name\" });\n\n/** DNS hostname or label conforming to RFC 1123. */\nexport const zDns1123Label = z\n .string()\n .min(1)\n .max(63)\n .regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/);\n\n/* v8 ignore next -- @preserve */\nexport const zDateCodec = z.codec(z.iso.datetime(), z.date(), {\n decode: (isoString) => new Date(isoString), // ISO string → Date\n encode: (date) => date.toISOString(), // Date → ISO string\n});\n","import z from \"zod\";\n\nimport type { AccountType } from \"@/generated/prisma/client\";\nimport { zCurrencyString, zUnsignedIntString } from \"@/shared/zod-utils\";\n\n// #region ---------- Utils -----------------------------------------------------------------------\n\nexport type NetworkFamily = Exclude<AccountType, \"RAW_SIGNING\">;\n\nexport const NetworkFamily = {\n BITCOIN_LIKE: \"BITCOIN_LIKE\",\n CANTON_LIKE: \"CANTON_LIKE\",\n CARDANO_LIKE: \"CARDANO_LIKE\",\n ETHEREUM_LIKE: \"ETHEREUM_LIKE\",\n GENERIC_LIKE: \"GENERIC_LIKE\",\n HEDERA_LIKE: \"HEDERA_LIKE\",\n POLKADOT_LIKE: \"POLKADOT_LIKE\",\n RIPPLE_LIKE: \"RIPPLE_LIKE\",\n SOLANA_LIKE: \"SOLANA_LIKE\",\n STELLAR_LIKE: \"STELLAR_LIKE\",\n SUI_LIKE: \"SUI_LIKE\",\n TEZOS_LIKE: \"TEZOS_LIKE\",\n TRON_LIKE: \"TRON_LIKE\",\n} satisfies Record<NetworkFamily, NetworkFamily>;\n\n/**\n * Ensure that this is a hex string and transform it to lowercase with 0x prefix.\n * Not to be used for EIP-55 addresses or other attributes where letter casing is important!\n */\n/* v8 ignore next -- @preserve */\nexport const zHexDataString = z.codec(z.string().regex(/^(?:0x|0X)?[a-fA-F0-9]+$/), z.string(), {\n decode: (hex) => `0x${hex.toLowerCase().replace(\"0x\", \"\")}`,\n encode: (hex) => hex,\n});\n\n// #endregion\n\n// #region ---------- Live Data -------------------------------------------------------------------\n\nexport const zCommonLiveData = z.object({\n id: z.string().meta({ description: \"Account internal unique identifier\" }),\n balance: z\n .object({\n total: z.string().meta({ description: \"Total balance\" }),\n pending: z.string().meta({ description: \"Pending balance\" }),\n reserved: z\n .string()\n .meta({ description: \"Minimum balance the account must always keep (0 if none)\" }),\n })\n .meta({ description: \"Balance fields\" }),\n});\n\n// #endregion\n\n// #region ---------- Transaction Data ------------------------------------------------------------\n\n/**\n * Schema of `Request.data.transaction`\n */\nexport const zCommonTransactionData = z.object({\n amount: zUnsignedIntString.meta({ description: \"Transaction amount\" }),\n currency: zCurrencyString.meta({\n description: \"Will be deprecated soon, use Account.network. Transaction currency\",\n }), // TODO: to remove, use account.network instead\n maxFee: zUnsignedIntString.nullable().meta({ description: \"Transaction max fee\" }),\n recipient: z.string().nonempty().meta({ description: \"Transaction recipient\" }),\n});\n\nexport const zFeeStrategyCustom = z.object({\n type: z.enum([\"SLOW\", \"NORMAL\", \"FAST\", \"CUSTOM\"]),\n});\n\nexport const zFeeStrategy = z.object({\n type: z.enum([\"SLOW\", \"NORMAL\", \"FAST\"]),\n});\n\n// #endregion\n\n// #region ---------- Transaction Response --------------------------------------------------------\n\nexport const zTransactionStatus = z.enum([\"SUCCESSFUL\", \"FAILED\", \"PENDING\", \"UNKNOWN\"]);\n\nexport const zCommonTransactionResponse = z.object({\n id: z.string().meta({ description: \"Internal unique identifier\" }),\n hash: z.string().meta({ description: \"Transaction hash\" }),\n block: z.object({\n height: z.string().nullable().meta({ description: \"Transaction block height\" }),\n time: z.string().nullable().meta({ description: \"Transaction block time\" }),\n }),\n status: zTransactionStatus.meta({ description: \"Transaction status\" }),\n confirmations: z.string().meta({ description: \"Block confirmations\" }),\n amount: z.string().meta({ description: \"Transaction amount\" }),\n fee: z.string().meta({ description: \"Transaction fee\" }),\n senders: z\n .array(z.string())\n .meta({ description: \"Senders (can be multiple for UTXOs-based accounts)\" }),\n recipients: z\n .array(z.string())\n .meta({ description: \"Recipients (can be multiple for multi-output transactions)\" }),\n});\n\n// #endregion\n","/**\n * Cardano staking rules shared by the API and the web.\n *\n * Pure data and functions, with no runtime dependency, so the web reads the same rules from\n * `@ledgerhq/revault-api` instead of copying them.\n */\n\n/** The five Cardano staking operations, all governed by the account's single STAKE rule. */\nexport const CARDANO_STAKING_TRANSACTION_TYPES = [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n \"CARDANO_LIKE_DELEGATE_VOTE_TO_DREP\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n] as const;\n\nexport type CardanoStakingTransactionType = (typeof CARDANO_STAKING_TRANSACTION_TYPES)[number];\n\nexport const isCardanoStakingTransactionType = (\n type: string,\n): type is CardanoStakingTransactionType =>\n (CARDANO_STAKING_TRANSACTION_TYPES as readonly string[]).includes(type);\n\n/**\n * Pending staking requests that block the creation of another staking request on the same account,\n * keyed by the type being created: the legacy matrix (`CardanoRequestValidator.FORBIDDEN_PATH`,\n * shared decision n°11). A request is pending until it completes (`PRE_COMPLETION_STATES`).\n *\n * A send is never blocked: delegation locks nothing.\n */\nexport const CARDANO_STAKING_BLOCKING_REQUEST_TYPES: Readonly<\n Record<CardanoStakingTransactionType, readonly CardanoStakingTransactionType[]>\n> = {\n CARDANO_LIKE_STAKING_REGISTER: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n \"CARDANO_LIKE_DELEGATE_VOTE_TO_DREP\",\n ],\n CARDANO_LIKE_STAKING_DEREGISTER: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n \"CARDANO_LIKE_DELEGATE_VOTE_TO_DREP\",\n ],\n CARDANO_LIKE_STAKING_DELEGATE: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n ],\n CARDANO_LIKE_STAKING_WITHDRAW: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n ],\n CARDANO_LIKE_DELEGATE_VOTE_TO_DREP: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n ],\n};\n\n/** Vote delegation to the predefined Abstain DRep, as the Gate and the HSM intent name it. */\nexport const CARDANO_DREP_ALWAYS_ABSTAIN = \"ALWAYS ABSTAIN\";\n\n/** Vote delegation to the predefined No Confidence DRep, as the Gate and the HSM intent name it. */\nexport const CARDANO_DREP_ALWAYS_VOTE_NO = \"ALWAYS VOTE NO\";\n\n/**\n * Vote delegations a request may create. Phase 1, at legacy parity: always Abstain, its only\n * purpose being to unlock the withdrawal of the rewards. Requests synchronized from the Gate may\n * carry the others.\n */\nexport const CARDANO_CREATABLE_VOTE_DELEGATIONS: readonly string[] = [CARDANO_DREP_ALWAYS_ABSTAIN];\n\n/**\n * On-chain state of the account stake key: never registered, registered (deposit paid, not\n * delegated), delegated to a pool, or deregistered (deposit refunded).\n */\nexport const CARDANO_STAKE_KEY_STATUSES = [\n \"NOT_REGISTERED\",\n \"REGISTERED\",\n \"DELEGATED\",\n \"DEREGISTERED\",\n] as const;\n\nexport type CardanoStakeKeyStatus = (typeof CARDANO_STAKE_KEY_STATUSES)[number];\n\n/** Whether the stake key holds a deposit: it can then be delegated, withdrawn from, deregistered. */\nexport const isCardanoStakeKeyRegistered = (status: CardanoStakeKeyStatus): boolean =>\n status === \"REGISTERED\" || status === \"DELEGATED\";\n","import z from \"zod\";\n\nimport { zIntString, zUnsignedIntString } from \"@/shared/zod-utils\";\n\nimport {\n NetworkFamily,\n zCommonLiveData,\n zCommonTransactionData,\n zCommonTransactionResponse,\n zFeeStrategyCustom,\n zHexDataString,\n} from \"../common\";\n\n// #region ---------- Asset Fields ----------------------------------------------------------------\n\nexport const zEthereumLikeAssetFields = z\n .object({\n type: z.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: \"Account type\" }),\n address: z.string().nullable().meta({ description: \"Account address\" }),\n })\n .meta({ description: \"Ethereum-like\" });\n\n// #endregion\n\n// #region ---------- Live Data -------------------------------------------------------------------\n\nconst zEthereumLikeConsolidationTarget = z.object({\n id: z.string().nonempty().meta({ description: \"Staking position ID\" }),\n staked: z.string().meta({ description: \"Staked amount of that position\" }),\n});\n\nconst zEthereumLikeStakingData = z\n .object({\n totalStaking: z.string().meta({ description: \"Total staked amount\" }),\n totalRewards: z.string().meta({ description: \"Total of rewards\" }),\n availableRewards: z.string().meta({ description: \"Available rewards\" }).optional(),\n networkApy: z.number().meta({ description: \"Network APY\" }).optional(),\n consolidationTargets: z\n .array(zEthereumLikeConsolidationTarget)\n .max(2)\n .optional()\n .meta({\n description:\n \"The smallest positions a stake can be consolidated into, ascending. Only the \" +\n \"smallest target can have room for a given source, so these are enough to decide \" +\n \"any position's eligibility without listing the account. Two entries rather than \" +\n \"one because a position is never its own target. Absent on accounts whose staking \" +\n \"data does not come from position listing.\",\n }),\n })\n .nullable()\n .meta({ description: \"Ethereum-like staking data\" });\n\nexport const zEthereumLikeStakingFields = z.object({\n type: z.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: \"Account type\" }),\n staking: zEthereumLikeStakingData.optional(),\n});\n\nexport const zEthereumLikeLiveData = zCommonLiveData\n .extend(zEthereumLikeStakingFields.shape)\n .meta({ description: \"Ethereum-like\" });\n\n// #endregion\n\n// #region ---------- Estimated Fee ---------------------------------------------------------------\n\nexport const zEthereumLikeEstimatedFees = z\n .object({\n type: z.literal(NetworkFamily.ETHEREUM_LIKE),\n baseFees: zIntString,\n gasLimit: zIntString,\n nonce: z.string(),\n priorityFees: zIntString,\n executionFees: zIntString.nullish(),\n maxExecutionFees: zIntString.nullish(),\n l1DataFee: zUnsignedIntString.nullish().meta({\n description:\n \"Flat OP Stack L1 data fee in wei. Null when the chain does not charge one. \" +\n \"Not per gas. Clients add it once after the buffered gas cap.\",\n }),\n })\n .meta({ description: \"Ethereum-like fees\" });\n\n// #endregion\n\n// #region ---------- Transaction Type ------------------------------------------------------------\n\nconst zEthereumLikeTransferTransactionType = z\n .enum([\"ETHEREUM_LIKE_SEND\", \"ETHEREUM_LIKE_RECEIVE\"])\n .meta({ description: \"Ethereum-like transaction type\" });\n\nconst zEthereumLikeContractTransactionType = z\n .enum([\"ETHEREUM_LIKE_EXECUTE_CONTRACT\", \"ETHEREUM_LIKE_DEPLOY_CONTRACT\"])\n .meta({ description: \"Ethereum-like transaction type\" });\n\nconst zEthereumLikeStakingTransactionType = z\n .enum([\n \"ETHEREUM_LIKE_STAKE_DEPOSIT\",\n \"ETHEREUM_LIKE_STAKE_TOP_UP\",\n \"ETHEREUM_LIKE_STAKE_WITHDRAW\",\n \"ETHEREUM_LIKE_STAKE_CONSOLIDATE\",\n \"ETHEREUM_LIKE_STAKE_UPGRADE\",\n ])\n .meta({ description: \"Ethereum-like staking transaction type\" });\n\nexport const zEthereumLikeTransactionType = z\n .enum([\n ...zEthereumLikeTransferTransactionType.options,\n ...zEthereumLikeContractTransactionType.options,\n ...zEthereumLikeStakingTransactionType.options,\n ])\n .meta({\n description: \"Ethereum-like transaction type\",\n });\n\nexport type EthereumLikeTransactionType = z.infer<typeof zEthereumLikeTransactionType>;\n\n// #endregion\n\n// #region ---------- Transaction Data ------------------------------------------------------------\n\nconst zEthereumLikeLegacyFeeStrategy = zFeeStrategyCustom\n .extend({\n gasPrice: zUnsignedIntString.meta({ description: \"Gas price\" }),\n gasLimit: zUnsignedIntString.meta({ description: \"Gas limit\" }),\n })\n .meta({ description: \"Ethereum-like legacy fee strategy\" });\n\nexport const zEthereumLikeEip1559FeeStrategy = zFeeStrategyCustom\n .extend({\n maxPriorityFeePerGas: zUnsignedIntString.meta({ description: \"Maximum priority fee per gas\" }),\n maxFeePerGas: zUnsignedIntString.meta({ description: \"Maximum fee per gas (base + priority)\" }),\n gasLimit: zUnsignedIntString.meta({ description: \"Gas limit\" }),\n })\n .meta({ description: \"Ethereum-like EIP-1559 fee strategy\" });\n\nexport type EthereumLikeEip1559FeeStrategy = z.infer<typeof zEthereumLikeEip1559FeeStrategy>;\n\nconst zEthereumLikeFeeStrategy = z\n .union([zEthereumLikeLegacyFeeStrategy, zEthereumLikeEip1559FeeStrategy])\n .meta({\n description: \"Ethereum-like fee strategy\",\n id: \"EthereumLikeFeeStrategy\",\n });\n\nconst zEthereumCommonTransactionData = zCommonTransactionData.extend({\n l1DataFee: zUnsignedIntString.optional().meta({\n description:\n \"Flat OP Stack L1 data fee in wei included in maxFee. Omit when the chain does not charge one.\",\n }),\n replacingTxHash: z.string().optional().meta({\n description:\n \"Hash of the original transaction to replace. If provided, the new transaction will replace the one matching this hash.\",\n }),\n});\n\nconst zEthereumLikeDeployContractData = zEthereumCommonTransactionData\n .extend({\n type: z.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_DEPLOY_CONTRACT),\n recipient: z.literal(\"\"), // force an empty string\n contractData: zHexDataString.meta({ description: \"Contract data in hexadecimal format\" }),\n feeStrategy: zEthereumLikeFeeStrategy,\n })\n .meta({\n description: \"Ethereum-like deploy contract data\",\n id: \"EthereumLikeDeployContractData\",\n });\n\nconst zEthereumLikeExecuteContractData = zEthereumCommonTransactionData\n .extend({\n type: z.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_EXECUTE_CONTRACT),\n contractData: zHexDataString.meta({ description: \"Contract call data in hexadecimal format\" }),\n feeStrategy: zEthereumLikeFeeStrategy,\n })\n .meta({\n description: \"Ethereum-like execute contract data\",\n id: \"EthereumLikeExecuteContractData\",\n });\n\nexport const zEthereumLikeSendData = zEthereumCommonTransactionData\n .extend({\n type: z.literal(zEthereumLikeTransferTransactionType.enum.ETHEREUM_LIKE_SEND),\n feeStrategy: zEthereumLikeFeeStrategy,\n })\n .meta({\n description: \"Ethereum-like send data\",\n id: \"EthereumLikeSendData\",\n });\n\n// Upper bound enforced by les-wallet batch provisioning (Kiln caps at 150 validators per request).\nconst MAX_VALIDATORS_PER_BATCH = 150;\n\nconst zEthereumLikeStakingProvider = z.string().nonempty().meta({\n description: \"Staking provider to use, as identified by the staking validators endpoint\",\n});\n\nconst zEthereumLikeStakingDepositData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_DEPOSIT),\n feeStrategy: zEthereumLikeFeeStrategy,\n amountPerValidator: zUnsignedIntString.meta({\n description:\n \"Amount to stake per validator, in wei. Must be a multiple of the provider's \" +\n \"`options.stakeAmountStepWei` from the staking validators endpoint (1 gwei when absent).\",\n }),\n numberOfValidators: zUnsignedIntString\n .refine(\n (v) => {\n const n = BigInt(v);\n return n >= 1n && n <= BigInt(MAX_VALIDATORS_PER_BATCH);\n },\n { message: `Number of validators must be between 1 and ${MAX_VALIDATORS_PER_BATCH}` },\n )\n .meta({\n description: \"Number of validators to stake with\",\n }),\n stakingProvider: zEthereumLikeStakingProvider,\n withdrawalAddress: z\n .string()\n .regex(/^0x[a-fA-F0-9]{40}$/, { message: \"Withdrawal address must be 20 bytes\" })\n .meta({ description: \"Execution-layer withdrawal address in hexadecimal format (20 bytes)\" }),\n })\n .meta({\n description: \"Ethereum-like staking deposit data\",\n id: \"EthereumLikeStakingDepositData\",\n });\n\nconst zEthereumLikeStakingTopUpData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_TOP_UP),\n feeStrategy: zEthereumLikeFeeStrategy,\n validators: z\n .array(\n z.object({\n validatorPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Validator public key must be 48 bytes\",\n })\n .meta({ description: \"Validator public key in hexadecimal format (48 bytes)\" }),\n amount: zUnsignedIntString.meta({ description: \"Amount to stake per validator\" }),\n }),\n )\n .min(1, { message: \"A top-up must include at least one validator\" }),\n })\n .meta({\n description: \"Ethereum-like staking top-up deposit data\",\n id: \"EthereumLikeStakingTopUpData\",\n });\n\nconst zEthereumLikeStakingWithdrawData = zEthereumCommonTransactionData\n .omit({ recipient: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_WITHDRAW),\n feeStrategy: zEthereumLikeFeeStrategy,\n validatorPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Validator public key must be 48 bytes\",\n })\n .meta({ description: \"Validator public key in hexadecimal format (48 bytes)\" }),\n maxExecutionFees: zUnsignedIntString\n .meta({\n description: \"Max execution fee for the withdrawal transaction (in wei)\",\n })\n .optional(),\n })\n .meta({\n description: \"Ethereum-like staking withdraw data\",\n id: \"EthereumLikeStakingWithdrawData\",\n });\n\nconst zEthereumLikeStakingConsolidateData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_CONSOLIDATE),\n feeStrategy: zEthereumLikeFeeStrategy,\n sourcePubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Source validator public key must be 48 bytes\",\n })\n .meta({ description: \"Source validator public key in hexadecimal format (48 bytes)\" }),\n targetPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Target validator public key must be 48 bytes\",\n })\n .meta({ description: \"Target validator public key in hexadecimal format (48 bytes)\" }),\n maxExecutionFees: zUnsignedIntString\n .meta({\n description: \"Max execution fee for the consolidation transaction (in wei)\",\n })\n .optional(),\n sourceStakedAmount: zUnsignedIntString\n .meta({\n description:\n \"Staked balance of the source validator when the request was created, in wei. \" +\n \"Display only: the consolidation moves it on the consensus layer and never sends it.\",\n })\n .optional(),\n })\n .meta({\n description: \"Ethereum-like staking consolidate data\",\n id: \"EthereumLikeStakingConsolidateData\",\n });\n\nconst zEthereumLikeStakingUpgradeData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_UPGRADE),\n feeStrategy: zEthereumLikeFeeStrategy,\n validatorPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Validator public key must be 48 bytes\",\n })\n .meta({ description: \"Validator public key in hexadecimal format (48 bytes)\" }),\n maxExecutionFees: zUnsignedIntString\n .meta({\n description: \"Max execution fee for the upgrade transaction (in wei)\",\n })\n .optional(),\n })\n .meta({\n description: \"Ethereum-like staking upgrade data\",\n id: \"EthereumLikeStakingUpgradeData\",\n });\n\nexport const zEthereumLikeTransactionData = z.discriminatedUnion(\"type\", [\n zEthereumLikeDeployContractData,\n zEthereumLikeExecuteContractData,\n zEthereumLikeSendData,\n zEthereumLikeStakingDepositData,\n zEthereumLikeStakingTopUpData,\n zEthereumLikeStakingWithdrawData,\n zEthereumLikeStakingConsolidateData,\n zEthereumLikeStakingUpgradeData,\n]);\n\nexport type EthereumLikeTransactionData = z.infer<typeof zEthereumLikeTransactionData>;\n\n// #endregion\n\n// #region ---------- Staking Provisioning --------------------------------------------------------\n\nconst zValidator = z.object({\n pubkey: z.string(),\n depositAmount: zUnsignedIntString,\n signature: z.string(),\n depositDataRoot: z.string(),\n});\n\nexport type Validator = z.infer<typeof zValidator>;\n\nexport const zStakingProvisioning = z.object({\n contractAddress: z.string(),\n validators: z.array(zValidator),\n});\n\nexport type StakingProvisioning = z.infer<typeof zStakingProvisioning>;\n\n// #endregion\n\n// #region ---------- Transaction Response --------------------------------------------------------\n\nconst zEthereumLikeTransferCoinFields = z.object({\n type: zEthereumLikeTransferTransactionType,\n gasPrice: z\n .string()\n .nullable()\n .meta({ description: \"Gas price in wei, null when the network does not report it\" }),\n gasLimit: z\n .string()\n .nullable()\n .meta({ description: \"Gas limit, null when the network does not report it\" }),\n nonce: z\n .string()\n .nullable()\n .meta({ description: \"Transaction nonce, null when the network does not report it\" }),\n});\n\nconst zEthereumLikeContractCoinFields = zEthereumLikeTransferCoinFields.extend({\n type: zEthereumLikeContractTransactionType,\n contractData: z.string().meta({ description: \"Contract deployment or contract execution data\" }),\n});\n\nconst zEthereumLikeStakingCoinFields = zEthereumLikeContractCoinFields.extend({\n type: zEthereumLikeStakingTransactionType,\n});\n\nconst zEthereumLikeStakeDepositValidatorResponse = z.object({\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n withdrawalCredentials: zHexDataString.meta({ description: \"Validator withdrawal credentials\" }),\n withdrawalAddress: z\n .string()\n .nullable()\n .meta({ description: \"Execution withdrawal address, when encoded by the credentials\" }),\n signature: zHexDataString.meta({ description: \"BLS deposit signature\" }),\n depositDataRoot: zHexDataString.meta({ description: \"Beacon deposit data root\" }),\n amount: zUnsignedIntString.meta({ description: \"Validator deposit amount in wei\" }),\n});\n\nconst zEthereumLikeStakeTopUpValidatorResponse = z.object({\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n amount: zUnsignedIntString.meta({ description: \"Validator top-up amount in wei\" }),\n});\n\nconst zEthereumLikeStakeDepositResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_DEPOSIT),\n validators: z.array(zEthereumLikeStakeDepositValidatorResponse),\n});\n\nconst zEthereumLikeStakeTopUpResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_TOP_UP),\n validators: z.array(zEthereumLikeStakeTopUpValidatorResponse),\n});\n\nconst zEthereumLikeStakeWithdrawResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_WITHDRAW),\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n withdrawalAmount: zUnsignedIntString.meta({ description: \"Requested withdrawal amount in wei\" }),\n isFullExit: z.boolean().meta({ description: \"Whether the zero amount requests a full exit\" }),\n executionFee: zUnsignedIntString.meta({ description: \"EIP-7002 request fee in wei\" }),\n});\n\nconst zEthereumLikeStakeConsolidateResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_CONSOLIDATE),\n sourcePubKey: zHexDataString.meta({ description: \"Source validator public key\" }),\n sourceStakingProvider: zEthereumLikeStakingProvider.nullable().meta({\n description: \"Staking provider inferred from the source validator public key, when known\",\n }),\n targetPubKey: zHexDataString.meta({ description: \"Target validator public key\" }),\n targetStakingProvider: zEthereumLikeStakingProvider.nullable().meta({\n description: \"Staking provider inferred from the target validator public key, when known\",\n }),\n executionFee: zUnsignedIntString.meta({ description: \"EIP-7251 request fee in wei\" }),\n});\n\nconst zEthereumLikeStakeUpgradeResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_UPGRADE),\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n executionFee: zUnsignedIntString.meta({ description: \"EIP-7251 request fee in wei\" }),\n});\n\nexport const zEthereumLikeTransactionResponse = z\n .discriminatedUnion(\"type\", [\n zCommonTransactionResponse\n .extend(zEthereumLikeTransferCoinFields.shape)\n .meta({ description: \"Ethereum-like transfer transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeContractCoinFields.shape)\n .meta({ description: \"Ethereum-like contract transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeDepositResponseFields.shape)\n .meta({ description: \"Ethereum validator deposit transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeTopUpResponseFields.shape)\n .meta({ description: \"Ethereum validator top-up transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeWithdrawResponseFields.shape)\n .meta({ description: \"Ethereum validator withdrawal request transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeConsolidateResponseFields.shape)\n .meta({ description: \"Ethereum validator consolidation request transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeUpgradeResponseFields.shape)\n .meta({ description: \"Ethereum validator credential upgrade transaction\" }),\n ])\n .meta({ description: \"Ethereum-like transaction\" });\n\n// #endregion\n","/**\n * Cardano stake pool IDs.\n *\n * A pool ID is the 28-byte hash of the pool operator's cold key, written either in Bech32 with the\n * `pool` prefix (CIP-5, Bech32 and not Bech32m) or as 56 hexadecimal characters. The rule is the one\n * lama-cardano applies before crafting a delegation (`INVALID_POOL_ID`) and les-wallet applies to\n * its pool catalogue, so a pool ID accepted here is accepted downstream.\n *\n * No runtime dependency: the web validates a custom pool ID with the same functions.\n */\n\nconst BECH32_CHARSET = \"qpzry9x8gf2tvdw0s3jn54khce6mua7l\";\nconst BECH32_GENERATOR = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nconst BECH32_CHECKSUM_LENGTH = 6;\n\nconst POOL_ID_PREFIX = \"pool\";\nconst POOL_ID_BYTE_LENGTH = 28;\nconst HEX_POOL_ID = /^[0-9a-fA-F]{56}$/;\n/** The characters of a Bech32 string: printable US-ASCII (BIP-173). */\nconst BECH32_CHARACTERS = /^[\\x21-\\x7e]*$/;\n\nconst polymod = (values: readonly number[]): number => {\n let checksum = 1;\n for (const value of values) {\n const top = checksum >>> 25;\n checksum = ((checksum & 0x1ffffff) << 5) ^ value;\n BECH32_GENERATOR.forEach((generator, i) => {\n if ((top >>> i) & 1) {\n checksum ^= generator;\n }\n });\n }\n return checksum >>> 0;\n};\n\nconst PREFIX_WORDS = [\n ...[...POOL_ID_PREFIX].map((char) => char.charCodeAt(0) >>> 5),\n 0,\n ...[...POOL_ID_PREFIX].map((char) => char.charCodeAt(0) & 31),\n];\n\n/**\n * A pool ID payload to 5-bit words: its 224 bits make 44 words and 4 bits, padded with a zero bit\n * into the last word.\n */\nconst toWords = (bytes: readonly number[]): number[] => {\n const words: number[] = [];\n let accumulator = 0;\n let bits = 0;\n for (const byte of bytes) {\n accumulator = ((accumulator << 8) | byte) & 0xfff;\n bits += 8;\n while (bits >= 5) {\n bits -= 5;\n words.push((accumulator >>> bits) & 31);\n }\n }\n return [...words, (accumulator << (5 - bits)) & 31];\n};\n\n/** 5-bit words to bytes; `null` when the padding is longer than 4 bits or not zero. */\nconst fromWords = (words: readonly number[]): number[] | null => {\n const bytes: number[] = [];\n let accumulator = 0;\n let bits = 0;\n for (const word of words) {\n accumulator = ((accumulator << 5) | word) & 0xfff;\n bits += 5;\n if (bits >= 8) {\n bits -= 8;\n bytes.push((accumulator >>> bits) & 0xff);\n }\n }\n return bits >= 5 || (accumulator & ((1 << bits) - 1)) !== 0 ? null : bytes;\n};\n\n/** The 28-byte payload of a Bech32 pool ID, lower or upper case but not mixed (BIP-173). */\nconst decodeBech32PoolId = (value: string): number[] | null => {\n // Checked before the case folding, which maps some other characters onto the alphabet: the Kelvin\n // sign (U+212A) lower-cases to `k`.\n if (!BECH32_CHARACTERS.test(value)) {\n return null;\n }\n const lower = value.toLowerCase();\n if (value !== lower && value !== value.toUpperCase()) {\n return null;\n }\n if (!lower.startsWith(`${POOL_ID_PREFIX}1`)) {\n return null;\n }\n const words = [...lower.slice(POOL_ID_PREFIX.length + 1)].map((char) =>\n BECH32_CHARSET.indexOf(char),\n );\n if (words.includes(-1) || polymod([...PREFIX_WORDS, ...words]) !== 1) {\n return null;\n }\n const payload = fromWords(words.slice(0, -BECH32_CHECKSUM_LENGTH));\n return payload?.length === POOL_ID_BYTE_LENGTH ? payload : null;\n};\n\nconst decodeHexPoolId = (value: string): number[] | null =>\n HEX_POOL_ID.test(value)\n ? Array.from({ length: POOL_ID_BYTE_LENGTH }, (_, i) =>\n Number.parseInt(value.slice(2 * i, 2 * i + 2), 16),\n )\n : null;\n\nconst encodeBech32PoolId = (payload: readonly number[]): string => {\n const words = toWords(payload);\n const checksum =\n polymod([...PREFIX_WORDS, ...words, ...Array<number>(BECH32_CHECKSUM_LENGTH).fill(0)]) ^ 1;\n const checksumWords = Array.from(\n { length: BECH32_CHECKSUM_LENGTH },\n (_, i) => (checksum >>> (5 * (BECH32_CHECKSUM_LENGTH - 1 - i))) & 31,\n );\n const data = [...words, ...checksumWords].map((word) => BECH32_CHARSET.charAt(word)).join(\"\");\n return `${POOL_ID_PREFIX}1${data}`;\n};\n\nconst decodePoolId = (value: string): number[] | null =>\n decodeHexPoolId(value) ?? decodeBech32PoolId(value);\n\n/** Whether `value` is, as given, a Bech32 `pool1…` pool ID or 56 hexadecimal characters. */\nexport const isValidCardanoPoolId = (value: string): boolean => decodePoolId(value) !== null;\n\n/**\n * The canonical form of a pool ID, lower-case Bech32 (`pool1…`), which explorers, pool operators\n * and the device review show; `null` when `value` is not a pool ID. Surrounding whitespace is\n * ignored.\n */\nexport const toCanonicalCardanoPoolId = (value: string): string | null => {\n const payload = decodePoolId(value.trim());\n return payload === null ? null : encodeBech32PoolId(payload);\n};\n","import type { TransactionType } from \"@/core/networks\";\n\nconst TRANSACTION_CHECK_SUPPORTED_TYPES = [\n \"ETHEREUM_LIKE_SEND\",\n \"ETHEREUM_LIKE_EXECUTE_CONTRACT\",\n \"ETHEREUM_LIKE_STAKE_DEPOSIT\",\n \"ETHEREUM_LIKE_STAKE_TOP_UP\",\n \"ETHEREUM_LIKE_STAKE_WITHDRAW\",\n \"ETHEREUM_LIKE_STAKE_CONSOLIDATE\",\n \"ETHEREUM_LIKE_STAKE_UPGRADE\",\n \"SOLANA_LIKE_SEND\",\n \"SOLANA_LIKE_SEND_TOKEN\",\n] as const satisfies readonly TransactionType[];\n\n/**\n * Whether Transaction Check applies to this exact transaction type. This is only the type half of\n * the scope: API code that has the account must use `isInTransactionCheckScope` from\n * `@/core/accounts/transactions`, which also checks that les-wallet can scan the account.\n *\n * Kept free of runtime imports: `@ledgerhq/revault-api` publishes it to clients.\n */\nexport const isTransactionCheckSupportedType = (type: TransactionType): boolean =>\n TRANSACTION_CHECK_SUPPORTED_TYPES.some((supportedType) => supportedType === type);\n","import z from \"zod\";\n\n/**\n * Fiat currencies a governance threshold may be denominated in.\n *\n * Deliberately narrow: a rule denominated in one of these must be evaluable for every asset it\n * governs. A fiat rule an asset cannot be priced against is refused while the association can\n * still be corrected — when the rule is written, or when an account attaches to an asset-less\n * policy (ADR-0020 §7) — rather than skipped when it is evaluated.\n *\n * Governance vocabulary, so owned by core. The countervalue service is handed the code as a\n * plain string and never depends on this list.\n */\nexport const zFiatCurrency = z.enum([\"USD\", \"EUR\", \"GBP\", \"JPY\", \"CHF\"]);\n\nexport type FiatCurrency = z.infer<typeof zFiatCurrency>;\n\n/**\n * Decimal places in each currency's minor unit. This is what makes a threshold's integer bounds\n * readable as an amount: \"1050\" is $10.50 under USD, but ¥1050 under JPY.\n */\nconst FIAT_MINOR_UNIT_EXPONENTS = {\n USD: 2,\n EUR: 2,\n GBP: 2,\n JPY: 0,\n CHF: 2,\n} as const satisfies Record<FiatCurrency, number>;\n\n/**\n * Minor-unit exponent to pin onto a rule denominated in `currency`.\n *\n * Callers store the result on the rule instead of consulting this table again when the rule is\n * evaluated. A currency that later abolishes its subunit — as ISK did, while keeping its code —\n * would otherwise silently rescale every rule already in force.\n */\nexport const getFiatMinorUnitExponent = (currency: FiatCurrency): number =>\n FIAT_MINOR_UNIT_EXPONENTS[currency];\n\n/** A fiat amount in major units, as a decimal string: `\"1000\"`, `\"1000.5\"`, `\"0.50\"`. */\nexport const FIAT_AMOUNT_PATTERN = /^(0|[1-9]\\d*)(?:\\.(\\d+))?$/;\n\n/**\n * `amount` in minor units at `exponent` decimal places (`\"1000.5\"` at 2 is `100050n`), using string\n * arithmetic only. More decimals than `exponent` is refused, never rounded.\n */\nexport const toFiatMinorUnits = (amount: string, exponent: number): bigint => {\n const match = FIAT_AMOUNT_PATTERN.exec(amount);\n if (match === null) {\n throw new RangeError(`${amount} is not a decimal amount`);\n }\n const [, whole, fraction = \"\"] = match;\n if (fraction.length > exponent) {\n throw new RangeError(`${amount} has more than ${exponent} decimal places`);\n }\n return BigInt(`${whole}${fraction.padEnd(exponent, \"0\")}`);\n};\n\n/** `minor` units as a major-unit amount with `exponent` decimals: `100050n` at 2 is `\"1000.50\"`. */\nexport const formatFiatMinorUnits = (minor: bigint, exponent: number): string => {\n const digits = minor.toString().padStart(exponent + 1, \"0\");\n return exponent === 0 ? digits : `${digits.slice(0, -exponent)}.${digits.slice(-exponent)}`;\n};\n","// The attributes stakes can be sorted by.\n// It lives apart from `read-models.ts` so the entrypoint sort module avoids that module's runtime imports.\nexport const STAKE_SORT_BY_FIELDS = [\"staked\", \"rewards\", \"total\"] as const;\n\nexport type StakeSortBy = (typeof STAKE_SORT_BY_FIELDS)[number];\n","import { z } from \"zod\";\n\nimport { STAKE_SORT_BY_FIELDS } from \"@/core/accounts/stake-sort\";\n\nimport type { AccountResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zAccountSortByField = z.enum([\n \"name\",\n \"currency\",\n \"index\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof AccountResponse)[]);\n\nexport const zStakeSortByField = z.enum(STAKE_SORT_BY_FIELDS);\n","import { z } from \"zod\";\n\nimport type { GroupResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zGroupSortByField = z.enum([\n \"name\",\n \"status\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof GroupResponse)[]);\n","import z from \"zod\";\n\nexport const HSM_OBJECT_TYPES = [\n \"Account\",\n \"AdminGroup\",\n \"AssetManager\",\n \"Exchange\",\n \"Group\",\n \"Partition\",\n \"PledgeState\",\n \"Policy\",\n \"AccountRuleSet\",\n \"Tradelink\",\n \"User\",\n \"WalletAccountList\",\n \"Whitelist\",\n] as const;\n\nexport type HsmObjectType = (typeof HSM_OBJECT_TYPES)[number];\n\nexport const zObjectsVersionResponse = z.object({\n cid: z.coerce.string(),\n total_accounts: z.number(),\n accounts_report: z.record(z.string(), z.number()),\n total_objects: z.number(),\n objects_report: z.record(z.string(), z.number()),\n});\n\nexport type ObjectsVersionResponse = z.infer<typeof zObjectsVersionResponse>;\n\nconst zVersionedObjectInfo = z.object({\n uid: z.string(),\n object_type: z.string(),\n index: z.number(),\n hsm_object_type_id: z.number(),\n anti_replay_value: z.number(),\n expected_anti_replay_value: z.number(),\n schema_version: z.number(),\n});\n\nexport type VersionedObjectInfo = z.infer<typeof zVersionedObjectInfo>;\n\nexport const zGetObjectsInfoResponse = z.object({\n cid: z.coerce.string(),\n uid: z.string().nullable(),\n objects_count: z.number(),\n hsm_requests_count: z.number(),\n status: z.string(),\n valid_objects: z.array(zVersionedObjectInfo),\n invalid_objects: z.array(zVersionedObjectInfo),\n objects_missing_merkle_tree_id: z.array(z.string()),\n});\n\nexport type GetObjectsInfoResponse = z.infer<typeof zGetObjectsInfoResponse>;\n\nexport const zObjectsContentResponse = z.object({\n cid: z.coerce.string(),\n uid: z.string().nullable(),\n objects_count: z.number(),\n hsm_requests_count: z.number(),\n status: z.string(),\n // Structure varies by object type; intentionally untyped for raw dump display.\n object_contents: z.array(z.unknown()),\n objects_missing_merkle_tree_id: z.array(z.string()),\n});\n\nexport type ObjectsContentResponse = z.infer<typeof zObjectsContentResponse>;\n","import { z } from \"zod\";\n\nimport type { PolicyResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zPolicySortByField = z.enum([\n \"name\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof PolicyResponse)[]);\n","import { z } from \"zod\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zPortfolioSortByField = z.enum([\n \"name\",\n \"accountCount\",\n \"memberCount\",\n \"createdAt\",\n \"updatedAt\",\n]);\n","import { z } from \"zod\";\n\nimport type { VaultRequestResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zRequestSortByField = z.enum([\n \"state\",\n \"expiresAt\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof VaultRequestResponse)[]);\n","import { z } from \"zod\";\n\nimport type { UserResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zUserSortByField = z.enum([\n \"name\",\n \"role\",\n \"status\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof UserResponse)[]);\n","import { z } from \"zod\";\n\nimport type { WhitelistResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zWhitelistSortByField = z.enum([\n \"name\",\n \"status\",\n \"addressCount\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof WhitelistResponse)[]);\n","/**\n * Placeholder `VaultRequest.targetId` for a Gate-synced request whose target object is not\n * synchronized into Revault yet. It is not the ID of any record, so a consumer must not fetch it.\n *\n * Kept in this dependency-free module so `app-lib.ts` can publish it without bundling the\n * synchronization layer.\n */\nexport const EMPTY_UUID = \"00000000-0000-0000-0000-000000000000\";\n","// The NATS event backfill's published constants, in the light `shared` layer so the backoffice can\n// import them through `app-lib.ts` without the bundler shipping `core/administration`'s NATS and\n// Prisma graph to it.\n\nexport const NATS_EVENT_BACKFILL_EVENT_TYPES = [\"AccountCreated\", \"WorkspaceCreated\"] as const;\nexport type NatsEventBackfillEventType = (typeof NATS_EVENT_BACKFILL_EVENT_TYPES)[number];\n\n/** Rows a preview or a failure list carries. The totals beside them stay exact. */\nexport const NATS_EVENT_BACKFILL_LIST_LIMIT = 100;\n\n/** Largest concurrency a single call may use. Bounds the publishes in flight, nothing else. */\nexport const MAX_NATS_EVENT_BACKFILL_CONCURRENCY = 200;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["z","z","z","z","z","z","z","z"],"sources":["../src/core/accounts/stake-admission.ts","../src/shared/ethereum-staking-networks.ts","../src/core/hsm-comparison.ts","../src/shared/zod-utils.ts","../src/core/networks/common.ts","../src/core/networks/cardano/staking.ts","../src/core/networks/ethereum/schemas.ts","../src/core/networks/cardano/pool-id.ts","../src/core/scan/supported-types.ts","../src/core/types/fiat-currency.ts","../src/core/accounts/stake-sort.ts","../src/entrypoints/api/accounts/sort.ts","../src/entrypoints/api/groups/sort.ts","../src/services/hsm/hsm-requests-types.ts","../src/entrypoints/api/policies/sort.ts","../src/entrypoints/api/portfolios/sort.ts","../src/entrypoints/api/requests/sort.ts","../src/entrypoints/api/users/sort.ts","../src/entrypoints/api/whitelists/sort.ts","../src/shared/empty-uuid.ts","../src/shared/nats-event-backfill.ts"],"sourcesContent":["import type { Stake, StakeOperation } from \"./read-models\";\n\n/**\n * Whether `operation` may still be started on this position, per the backend that enforces the\n * blocking matrix. Shared with the front-end so the rule has one reading, and kept trivial on\n * purpose: the verdict is computed where the matrix lives, not here.\n *\n * A null `admissibleOperations` means admission is not reported — an older backend, or a chain\n * that has no such notion — and is deliberately permissive: refusing every action on a missing\n * verdict would disable a whole account, while the broadcast 409 remains the backstop. A pending\n * credential upgrade is still honoured then: it is reported, not missing, and locks the position.\n *\n * Lives apart from `read-models` so `app-lib` can publish it without the bundler following that\n * module's runtime imports into every consumer of this package. The imports here are types only,\n * and erased.\n */\nexport const admitsStakeOperation = (\n // Optional so callers passing only `admissibleOperations` keep compiling.\n position: Pick<Stake, \"admissibleOperations\"> & Partial<Pick<Stake, \"pendingOperations\">>,\n operation: StakeOperation,\n): boolean =>\n position.admissibleOperations == null\n ? !position.pendingOperations?.some((_) => _.kind === \"CREDENTIAL_UPGRADE\")\n : position.admissibleOperations.includes(operation);\n","/**\n * Networks where Ethereum staking is served. `ETHEREUM_LIKE` covers every EVM chain, so this list\n * is what separates a chain the product stakes on from Polygon, BSC and the rest — including the\n * testnets LAMA would answer for but the product does not offer. Published through `app-lib` so\n * the front-end gates its Staking UI on the same list.\n */\nexport const ETHEREUM_STAKING_NETWORKS = [\"ethereum\", \"ethereum_hoodi\"] as const;\n\nexport type EthereumStakingNetwork = (typeof ETHEREUM_STAKING_NETWORKS)[number];\n\nexport const isEthereumStakingNetwork = (network: string): network is EthereumStakingNetwork =>\n (ETHEREUM_STAKING_NETWORKS as readonly string[]).includes(network);\n","/** Comparators offered by the backoffice \"Compare with HSM\" diagnostic, one run at a time. */\nexport const HSM_COMPARATORS = [\"whitelists\", \"workspace-name\"] as const;\n\nexport type HsmComparator = (typeof HSM_COMPARATORS)[number];\n\n/**\n * Why a compared object diverges. Reasons are comparator-specific, but they share a single enum so\n * the backoffice can count and group anomalies without knowing which comparator produced them.\n */\nexport const HSM_COMPARE_REASONS = [\n \"has-diffs\",\n \"missing-in-hsm\",\n \"missing-in-revault\",\n \"fetch-failed\",\n \"name-mismatch\",\n \"no-partition-found\",\n \"multiple-partitions-found\",\n] as const;\n\nexport type HsmCompareReason = (typeof HSM_COMPARE_REASONS)[number];\n\n/**\n * One line of evidence under an anomaly. Values are stringified here rather than formatted, so the\n * backoffice owns how a divergence reads on screen.\n */\nexport type HsmCompareDetail =\n | {\n kind: \"field-diff\";\n /** Entry the field belongs to, or null when the field is on the object itself. */\n scope: string | null;\n field: string;\n revault: string;\n hsm: string;\n }\n | { kind: \"only-in-revault\"; entry: string }\n | { kind: \"only-in-hsm\"; entry: string };\n\nexport type HsmCompareAnomaly = {\n reason: HsmCompareReason;\n /** HSM object id, null for anomalies that are not about a single identified object. */\n hsmId: string | null;\n /** Revault-side name, null when only the HSM knows the object. */\n name: string | null;\n details: HsmCompareDetail[];\n};\n\nexport type HsmWorkspaceComparison = {\n workspaceName: string;\n /** Objects actually compared on both sides. Zero means there was nothing to compare. */\n checked: number;\n anomalies: HsmCompareAnomaly[];\n};\n","import { z } from \"zod\";\n\nexport const zHexString = z.string().regex(/^[0-9a-fA-F]+$/);\n\nexport const zIntString = z\n .string()\n .nonempty()\n .regex(/^(-?[1-9]\\d*|0)$/);\n\nexport const zUnsignedIntString = z\n .string()\n .nonempty()\n .regex(/^([1-9]\\d*|0)$/);\n\nexport const zCurrencyString = z\n .string()\n .nonempty()\n .max(40)\n .regex(/^\\w+$/)\n .meta({ description: \"Will be deprecated soon, use network instead. Currency\" });\n\nexport const zNetwork = z\n .string()\n .nonempty()\n .max(40)\n .regex(/^\\w+$/)\n .meta({ description: \"Network identifier\" });\n\nexport const zCurrency = z.object({\n network: zNetwork,\n contractAddress: z.string().nonempty().nullable().meta({ description: \"Token issuer\" }),\n tokenIdentifier: z.string().nonempty().nullable().meta({ description: \"Token identifier\" }),\n});\n\nexport const zObjectId = z\n .string()\n .regex(/^[\\w-]+$/) // UUID, GUID, NanoID, CUID... or just a slug\n .nonempty();\n\nexport type ObjectId = z.infer<typeof zObjectId>;\n\nexport const zHsmObjectId = z\n .string()\n .regex(/^[\\w-]+$/) // TODO: what is the exact format of an HSM ID?\n .nonempty();\n\nexport type HsmObjectId = z.infer<typeof zHsmObjectId>;\n\nexport const zHsmObjectName = z.string().min(1).max(45).meta({ description: \"HSM object name\" });\n\n/** DNS hostname or label conforming to RFC 1123. */\nexport const zDns1123Label = z\n .string()\n .min(1)\n .max(63)\n .regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/);\n\n/* v8 ignore next -- @preserve */\nexport const zDateCodec = z.codec(z.iso.datetime(), z.date(), {\n decode: (isoString) => new Date(isoString), // ISO string → Date\n encode: (date) => date.toISOString(), // Date → ISO string\n});\n","import z from \"zod\";\n\nimport type { AccountType } from \"@/generated/prisma/client\";\nimport { zCurrencyString, zUnsignedIntString } from \"@/shared/zod-utils\";\n\n// #region ---------- Utils -----------------------------------------------------------------------\n\nexport type NetworkFamily = Exclude<AccountType, \"RAW_SIGNING\">;\n\nexport const NetworkFamily = {\n BITCOIN_LIKE: \"BITCOIN_LIKE\",\n CANTON_LIKE: \"CANTON_LIKE\",\n CARDANO_LIKE: \"CARDANO_LIKE\",\n ETHEREUM_LIKE: \"ETHEREUM_LIKE\",\n GENERIC_LIKE: \"GENERIC_LIKE\",\n HEDERA_LIKE: \"HEDERA_LIKE\",\n POLKADOT_LIKE: \"POLKADOT_LIKE\",\n RIPPLE_LIKE: \"RIPPLE_LIKE\",\n SOLANA_LIKE: \"SOLANA_LIKE\",\n STELLAR_LIKE: \"STELLAR_LIKE\",\n SUI_LIKE: \"SUI_LIKE\",\n TEZOS_LIKE: \"TEZOS_LIKE\",\n TRON_LIKE: \"TRON_LIKE\",\n} satisfies Record<NetworkFamily, NetworkFamily>;\n\n/**\n * Ensure that this is a hex string and transform it to lowercase with 0x prefix.\n * Not to be used for EIP-55 addresses or other attributes where letter casing is important!\n */\n/* v8 ignore next -- @preserve */\nexport const zHexDataString = z.codec(z.string().regex(/^(?:0x|0X)?[a-fA-F0-9]+$/), z.string(), {\n decode: (hex) => `0x${hex.toLowerCase().replace(\"0x\", \"\")}`,\n encode: (hex) => hex,\n});\n\n// #endregion\n\n// #region ---------- Live Data -------------------------------------------------------------------\n\nexport const zCommonLiveData = z.object({\n id: z.string().meta({ description: \"Account internal unique identifier\" }),\n balance: z\n .object({\n total: z.string().meta({ description: \"Total balance\" }),\n pending: z.string().meta({ description: \"Pending balance\" }),\n reserved: z\n .string()\n .meta({ description: \"Minimum balance the account must always keep (0 if none)\" }),\n })\n .meta({ description: \"Balance fields\" }),\n});\n\n// #endregion\n\n// #region ---------- Transaction Data ------------------------------------------------------------\n\n/**\n * Schema of `Request.data.transaction`\n */\nexport const zCommonTransactionData = z.object({\n amount: zUnsignedIntString.meta({ description: \"Transaction amount\" }),\n currency: zCurrencyString.meta({\n description: \"Will be deprecated soon, use Account.network. Transaction currency\",\n }), // TODO: to remove, use account.network instead\n maxFee: zUnsignedIntString.nullable().meta({ description: \"Transaction max fee\" }),\n recipient: z.string().nonempty().meta({ description: \"Transaction recipient\" }),\n});\n\nexport const zFeeStrategyCustom = z.object({\n type: z.enum([\"SLOW\", \"NORMAL\", \"FAST\", \"CUSTOM\"]),\n});\n\nexport const zFeeStrategy = z.object({\n type: z.enum([\"SLOW\", \"NORMAL\", \"FAST\"]),\n});\n\n// #endregion\n\n// #region ---------- Transaction Response --------------------------------------------------------\n\nexport const zTransactionStatus = z.enum([\"SUCCESSFUL\", \"FAILED\", \"PENDING\", \"UNKNOWN\"]);\n\nexport const zCommonTransactionResponse = z.object({\n id: z.string().meta({ description: \"Internal unique identifier\" }),\n hash: z.string().meta({ description: \"Transaction hash\" }),\n block: z.object({\n height: z.string().nullable().meta({ description: \"Transaction block height\" }),\n time: z.string().nullable().meta({ description: \"Transaction block time\" }),\n }),\n status: zTransactionStatus.meta({ description: \"Transaction status\" }),\n confirmations: z.string().meta({ description: \"Block confirmations\" }),\n amount: z.string().meta({ description: \"Transaction amount\" }),\n fee: z.string().meta({ description: \"Transaction fee\" }),\n senders: z\n .array(z.string())\n .meta({ description: \"Senders (can be multiple for UTXOs-based accounts)\" }),\n recipients: z\n .array(z.string())\n .meta({ description: \"Recipients (can be multiple for multi-output transactions)\" }),\n});\n\n// #endregion\n","/**\n * Cardano staking rules shared by the API and the web.\n *\n * Pure data and functions, with no runtime dependency, so the web reads the same rules from\n * `@ledgerhq/revault-api` instead of copying them.\n */\n\n/** The five Cardano staking operations, all governed by the account's single STAKE rule. */\nexport const CARDANO_STAKING_TRANSACTION_TYPES = [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n \"CARDANO_LIKE_DELEGATE_VOTE_TO_DREP\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n] as const;\n\nexport type CardanoStakingTransactionType = (typeof CARDANO_STAKING_TRANSACTION_TYPES)[number];\n\nexport const isCardanoStakingTransactionType = (\n type: string,\n): type is CardanoStakingTransactionType =>\n (CARDANO_STAKING_TRANSACTION_TYPES as readonly string[]).includes(type);\n\n/**\n * Pending staking requests that block the creation of another staking request on the same account,\n * keyed by the type being created: the legacy matrix (`CardanoRequestValidator.FORBIDDEN_PATH`,\n * shared decision n°11). A request is pending until it completes (`PRE_COMPLETION_STATES`).\n *\n * A send is never blocked: delegation locks nothing.\n */\nexport const CARDANO_STAKING_BLOCKING_REQUEST_TYPES: Readonly<\n Record<CardanoStakingTransactionType, readonly CardanoStakingTransactionType[]>\n> = {\n CARDANO_LIKE_STAKING_REGISTER: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n \"CARDANO_LIKE_DELEGATE_VOTE_TO_DREP\",\n ],\n CARDANO_LIKE_STAKING_DEREGISTER: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n \"CARDANO_LIKE_DELEGATE_VOTE_TO_DREP\",\n ],\n CARDANO_LIKE_STAKING_DELEGATE: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_WITHDRAW\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n ],\n CARDANO_LIKE_STAKING_WITHDRAW: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n \"CARDANO_LIKE_STAKING_DELEGATE\",\n ],\n CARDANO_LIKE_DELEGATE_VOTE_TO_DREP: [\n \"CARDANO_LIKE_STAKING_REGISTER\",\n \"CARDANO_LIKE_STAKING_DEREGISTER\",\n ],\n};\n\n/** Vote delegation to the predefined Abstain DRep, as the Gate and the HSM intent name it. */\nexport const CARDANO_DREP_ALWAYS_ABSTAIN = \"ALWAYS ABSTAIN\";\n\n/** Vote delegation to the predefined No Confidence DRep, as the Gate and the HSM intent name it. */\nexport const CARDANO_DREP_ALWAYS_VOTE_NO = \"ALWAYS VOTE NO\";\n\n/**\n * Vote delegations a request may create. Phase 1, at legacy parity: always Abstain, its only\n * purpose being to unlock the withdrawal of the rewards. Requests synchronized from the Gate may\n * carry the others.\n */\nexport const CARDANO_CREATABLE_VOTE_DELEGATIONS: readonly string[] = [CARDANO_DREP_ALWAYS_ABSTAIN];\n\n/**\n * On-chain state of the account stake key: never registered, registered (deposit paid, not\n * delegated), delegated to a pool, or deregistered (deposit refunded).\n */\nexport const CARDANO_STAKE_KEY_STATUSES = [\n \"NOT_REGISTERED\",\n \"REGISTERED\",\n \"DELEGATED\",\n \"DEREGISTERED\",\n] as const;\n\nexport type CardanoStakeKeyStatus = (typeof CARDANO_STAKE_KEY_STATUSES)[number];\n\n/** Whether the stake key holds a deposit: it can then be delegated, withdrawn from, deregistered. */\nexport const isCardanoStakeKeyRegistered = (status: CardanoStakeKeyStatus): boolean =>\n status === \"REGISTERED\" || status === \"DELEGATED\";\n","import z from \"zod\";\n\nimport { zIntString, zUnsignedIntString } from \"@/shared/zod-utils\";\n\nimport {\n NetworkFamily,\n zCommonLiveData,\n zCommonTransactionData,\n zCommonTransactionResponse,\n zFeeStrategyCustom,\n zHexDataString,\n} from \"../common\";\n\n// #region ---------- Asset Fields ----------------------------------------------------------------\n\nexport const zEthereumLikeAssetFields = z\n .object({\n type: z.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: \"Account type\" }),\n address: z.string().nullable().meta({ description: \"Account address\" }),\n })\n .meta({ description: \"Ethereum-like\" });\n\n// #endregion\n\n// #region ---------- Live Data -------------------------------------------------------------------\n\nconst zEthereumLikeConsolidationTarget = z.object({\n id: z.string().nonempty().meta({ description: \"Staking position ID\" }),\n staked: z.string().meta({ description: \"Staked amount of that position\" }),\n});\n\nconst zEthereumLikeStakingData = z\n .object({\n totalStaking: z.string().meta({ description: \"Total staked amount\" }),\n totalRewards: z.string().meta({ description: \"Total of rewards\" }),\n availableRewards: z.string().meta({ description: \"Available rewards\" }).optional(),\n networkApy: z.number().meta({ description: \"Network APY\" }).optional(),\n consolidationTargets: z\n .array(zEthereumLikeConsolidationTarget)\n .max(2)\n .optional()\n .meta({\n description:\n \"The smallest positions a stake can be consolidated into, ascending. Only the \" +\n \"smallest target can have room for a given source, so these are enough to decide \" +\n \"any position's eligibility without listing the account. Two entries rather than \" +\n \"one because a position is never its own target. Absent on accounts whose staking \" +\n \"data does not come from position listing.\",\n }),\n })\n .nullable()\n .meta({ description: \"Ethereum-like staking data\" });\n\nexport const zEthereumLikeStakingFields = z.object({\n type: z.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: \"Account type\" }),\n staking: zEthereumLikeStakingData.optional(),\n});\n\nexport const zEthereumLikeLiveData = zCommonLiveData\n .extend(zEthereumLikeStakingFields.shape)\n .meta({ description: \"Ethereum-like\" });\n\n// #endregion\n\n// #region ---------- Estimated Fee ---------------------------------------------------------------\n\nexport const zEthereumLikeEstimatedFees = z\n .object({\n type: z.literal(NetworkFamily.ETHEREUM_LIKE),\n baseFees: zIntString,\n gasLimit: zIntString,\n nonce: z.string(),\n priorityFees: zIntString,\n executionFees: zIntString.nullish(),\n maxExecutionFees: zIntString.nullish(),\n l1DataFee: zUnsignedIntString.nullish().meta({\n description:\n \"Flat OP Stack L1 data fee in wei. Null when the chain does not charge one. \" +\n \"Not per gas. Clients add it once after the buffered gas cap.\",\n }),\n })\n .meta({ description: \"Ethereum-like fees\" });\n\n// #endregion\n\n// #region ---------- Transaction Type ------------------------------------------------------------\n\nconst zEthereumLikeTransferTransactionType = z\n .enum([\"ETHEREUM_LIKE_SEND\", \"ETHEREUM_LIKE_RECEIVE\"])\n .meta({ description: \"Ethereum-like transaction type\" });\n\nconst zEthereumLikeContractTransactionType = z\n .enum([\"ETHEREUM_LIKE_EXECUTE_CONTRACT\", \"ETHEREUM_LIKE_DEPLOY_CONTRACT\"])\n .meta({ description: \"Ethereum-like transaction type\" });\n\nconst zEthereumLikeStakingTransactionType = z\n .enum([\n \"ETHEREUM_LIKE_STAKE_DEPOSIT\",\n \"ETHEREUM_LIKE_STAKE_TOP_UP\",\n \"ETHEREUM_LIKE_STAKE_WITHDRAW\",\n \"ETHEREUM_LIKE_STAKE_CONSOLIDATE\",\n \"ETHEREUM_LIKE_STAKE_UPGRADE\",\n ])\n .meta({ description: \"Ethereum-like staking transaction type\" });\n\nexport const zEthereumLikeTransactionType = z\n .enum([\n ...zEthereumLikeTransferTransactionType.options,\n ...zEthereumLikeContractTransactionType.options,\n ...zEthereumLikeStakingTransactionType.options,\n ])\n .meta({\n description: \"Ethereum-like transaction type\",\n });\n\nexport type EthereumLikeTransactionType = z.infer<typeof zEthereumLikeTransactionType>;\n\n// #endregion\n\n// #region ---------- Transaction Data ------------------------------------------------------------\n\nconst zEthereumLikeLegacyFeeStrategy = zFeeStrategyCustom\n .extend({\n gasPrice: zUnsignedIntString.meta({ description: \"Gas price\" }),\n gasLimit: zUnsignedIntString.meta({ description: \"Gas limit\" }),\n })\n .meta({ description: \"Ethereum-like legacy fee strategy\" });\n\nexport const zEthereumLikeEip1559FeeStrategy = zFeeStrategyCustom\n .extend({\n maxPriorityFeePerGas: zUnsignedIntString.meta({ description: \"Maximum priority fee per gas\" }),\n maxFeePerGas: zUnsignedIntString.meta({ description: \"Maximum fee per gas (base + priority)\" }),\n gasLimit: zUnsignedIntString.meta({ description: \"Gas limit\" }),\n })\n .meta({ description: \"Ethereum-like EIP-1559 fee strategy\" });\n\nexport type EthereumLikeEip1559FeeStrategy = z.infer<typeof zEthereumLikeEip1559FeeStrategy>;\n\nconst zEthereumLikeFeeStrategy = z\n .union([zEthereumLikeLegacyFeeStrategy, zEthereumLikeEip1559FeeStrategy])\n .meta({\n description: \"Ethereum-like fee strategy\",\n id: \"EthereumLikeFeeStrategy\",\n });\n\nconst zEthereumCommonTransactionData = zCommonTransactionData.extend({\n l1DataFee: zUnsignedIntString.optional().meta({\n description:\n \"Flat OP Stack L1 data fee in wei included in maxFee. Omit when the chain does not charge one.\",\n }),\n replacingTxHash: z.string().optional().meta({\n description:\n \"Hash of the original transaction to replace. If provided, the new transaction will replace the one matching this hash.\",\n }),\n});\n\nconst zEthereumLikeDeployContractData = zEthereumCommonTransactionData\n .extend({\n type: z.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_DEPLOY_CONTRACT),\n recipient: z.literal(\"\"), // force an empty string\n contractData: zHexDataString.meta({ description: \"Contract data in hexadecimal format\" }),\n feeStrategy: zEthereumLikeFeeStrategy,\n })\n .meta({\n description: \"Ethereum-like deploy contract data\",\n id: \"EthereumLikeDeployContractData\",\n });\n\nconst zEthereumLikeExecuteContractData = zEthereumCommonTransactionData\n .extend({\n type: z.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_EXECUTE_CONTRACT),\n contractData: zHexDataString.meta({ description: \"Contract call data in hexadecimal format\" }),\n feeStrategy: zEthereumLikeFeeStrategy,\n })\n .meta({\n description: \"Ethereum-like execute contract data\",\n id: \"EthereumLikeExecuteContractData\",\n });\n\nexport const zEthereumLikeSendData = zEthereumCommonTransactionData\n .extend({\n type: z.literal(zEthereumLikeTransferTransactionType.enum.ETHEREUM_LIKE_SEND),\n feeStrategy: zEthereumLikeFeeStrategy,\n })\n .meta({\n description: \"Ethereum-like send data\",\n id: \"EthereumLikeSendData\",\n });\n\n// Upper bound enforced by les-wallet batch provisioning (Kiln caps at 150 validators per request).\nconst MAX_VALIDATORS_PER_BATCH = 150;\n\nconst zEthereumLikeStakingProvider = z.string().nonempty().meta({\n description: \"Staking provider to use, as identified by the staking validators endpoint\",\n});\n\nconst zEthereumLikeStakingDepositData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_DEPOSIT),\n feeStrategy: zEthereumLikeFeeStrategy,\n amountPerValidator: zUnsignedIntString.meta({\n description:\n \"Amount to stake per validator, in wei. Must be a multiple of the provider's \" +\n \"`options.stakeAmountStepWei` from the staking validators endpoint (1 gwei when absent).\",\n }),\n numberOfValidators: zUnsignedIntString\n .refine(\n (v) => {\n const n = BigInt(v);\n return n >= 1n && n <= BigInt(MAX_VALIDATORS_PER_BATCH);\n },\n { message: `Number of validators must be between 1 and ${MAX_VALIDATORS_PER_BATCH}` },\n )\n .meta({\n description: \"Number of validators to stake with\",\n }),\n stakingProvider: zEthereumLikeStakingProvider,\n withdrawalAddress: z\n .string()\n .regex(/^0x[a-fA-F0-9]{40}$/, { message: \"Withdrawal address must be 20 bytes\" })\n .meta({ description: \"Execution-layer withdrawal address in hexadecimal format (20 bytes)\" }),\n })\n .meta({\n description: \"Ethereum-like staking deposit data\",\n id: \"EthereumLikeStakingDepositData\",\n });\n\nconst zEthereumLikeStakingTopUpData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_TOP_UP),\n feeStrategy: zEthereumLikeFeeStrategy,\n validators: z\n .array(\n z.object({\n validatorPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Validator public key must be 48 bytes\",\n })\n .meta({ description: \"Validator public key in hexadecimal format (48 bytes)\" }),\n amount: zUnsignedIntString.meta({ description: \"Amount to stake per validator\" }),\n }),\n )\n .min(1, { message: \"A top-up must include at least one validator\" }),\n })\n .meta({\n description: \"Ethereum-like staking top-up deposit data\",\n id: \"EthereumLikeStakingTopUpData\",\n });\n\nconst zEthereumLikeStakingWithdrawData = zEthereumCommonTransactionData\n .omit({ recipient: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_WITHDRAW),\n feeStrategy: zEthereumLikeFeeStrategy,\n validatorPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Validator public key must be 48 bytes\",\n })\n .meta({ description: \"Validator public key in hexadecimal format (48 bytes)\" }),\n maxExecutionFees: zUnsignedIntString\n .meta({\n description: \"Max execution fee for the withdrawal transaction (in wei)\",\n })\n .optional(),\n })\n .meta({\n description: \"Ethereum-like staking withdraw data\",\n id: \"EthereumLikeStakingWithdrawData\",\n });\n\nconst zEthereumLikeStakingConsolidateData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_CONSOLIDATE),\n feeStrategy: zEthereumLikeFeeStrategy,\n sourcePubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Source validator public key must be 48 bytes\",\n })\n .meta({ description: \"Source validator public key in hexadecimal format (48 bytes)\" }),\n targetPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Target validator public key must be 48 bytes\",\n })\n .meta({ description: \"Target validator public key in hexadecimal format (48 bytes)\" }),\n maxExecutionFees: zUnsignedIntString\n .meta({\n description: \"Max execution fee for the consolidation transaction (in wei)\",\n })\n .optional(),\n sourceStakedAmount: zUnsignedIntString\n .meta({\n description:\n \"Staked balance of the source validator when the request was created, in wei. \" +\n \"Display only: the consolidation moves it on the consensus layer and never sends it.\",\n })\n .optional(),\n })\n .meta({\n description: \"Ethereum-like staking consolidate data\",\n id: \"EthereumLikeStakingConsolidateData\",\n });\n\nconst zEthereumLikeStakingUpgradeData = zEthereumCommonTransactionData\n .omit({ recipient: true, amount: true })\n .extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_UPGRADE),\n feeStrategy: zEthereumLikeFeeStrategy,\n validatorPubKey: zHexDataString\n .refine((v) => v.length === 2 + 2 * 48, {\n message: \"Validator public key must be 48 bytes\",\n })\n .meta({ description: \"Validator public key in hexadecimal format (48 bytes)\" }),\n maxExecutionFees: zUnsignedIntString\n .meta({\n description: \"Max execution fee for the upgrade transaction (in wei)\",\n })\n .optional(),\n })\n .meta({\n description: \"Ethereum-like staking upgrade data\",\n id: \"EthereumLikeStakingUpgradeData\",\n });\n\nexport const zEthereumLikeTransactionData = z.discriminatedUnion(\"type\", [\n zEthereumLikeDeployContractData,\n zEthereumLikeExecuteContractData,\n zEthereumLikeSendData,\n zEthereumLikeStakingDepositData,\n zEthereumLikeStakingTopUpData,\n zEthereumLikeStakingWithdrawData,\n zEthereumLikeStakingConsolidateData,\n zEthereumLikeStakingUpgradeData,\n]);\n\nexport type EthereumLikeTransactionData = z.infer<typeof zEthereumLikeTransactionData>;\n\n// #endregion\n\n// #region ---------- Staking Provisioning --------------------------------------------------------\n\nconst zValidator = z.object({\n pubkey: z.string(),\n depositAmount: zUnsignedIntString,\n signature: z.string(),\n depositDataRoot: z.string(),\n});\n\nexport type Validator = z.infer<typeof zValidator>;\n\nexport const zStakingProvisioning = z.object({\n contractAddress: z.string(),\n validators: z.array(zValidator),\n});\n\nexport type StakingProvisioning = z.infer<typeof zStakingProvisioning>;\n\n// #endregion\n\n// #region ---------- Transaction Response --------------------------------------------------------\n\nconst zEthereumLikeTransferCoinFields = z.object({\n type: zEthereumLikeTransferTransactionType,\n gasPrice: z\n .string()\n .nullable()\n .meta({ description: \"Gas price in wei, null when the network does not report it\" }),\n gasLimit: z\n .string()\n .nullable()\n .meta({ description: \"Gas limit, null when the network does not report it\" }),\n nonce: z\n .string()\n .nullable()\n .meta({ description: \"Transaction nonce, null when the network does not report it\" }),\n});\n\nconst zEthereumLikeContractCoinFields = zEthereumLikeTransferCoinFields.extend({\n type: zEthereumLikeContractTransactionType,\n contractData: z.string().meta({ description: \"Contract deployment or contract execution data\" }),\n});\n\nconst zEthereumLikeStakingCoinFields = zEthereumLikeContractCoinFields.extend({\n type: zEthereumLikeStakingTransactionType,\n});\n\nconst zEthereumLikeStakeDepositValidatorResponse = z.object({\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n withdrawalCredentials: zHexDataString.meta({ description: \"Validator withdrawal credentials\" }),\n withdrawalAddress: z\n .string()\n .nullable()\n .meta({ description: \"Execution withdrawal address, when encoded by the credentials\" }),\n signature: zHexDataString.meta({ description: \"BLS deposit signature\" }),\n depositDataRoot: zHexDataString.meta({ description: \"Beacon deposit data root\" }),\n amount: zUnsignedIntString.meta({ description: \"Validator deposit amount in wei\" }),\n});\n\nconst zEthereumLikeStakeTopUpValidatorResponse = z.object({\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n amount: zUnsignedIntString.meta({ description: \"Validator top-up amount in wei\" }),\n});\n\nconst zEthereumLikeStakeDepositResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_DEPOSIT),\n validators: z.array(zEthereumLikeStakeDepositValidatorResponse),\n});\n\nconst zEthereumLikeStakeTopUpResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_TOP_UP),\n validators: z.array(zEthereumLikeStakeTopUpValidatorResponse),\n});\n\nconst zEthereumLikeStakeWithdrawResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_WITHDRAW),\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n withdrawalAmount: zUnsignedIntString.meta({ description: \"Requested withdrawal amount in wei\" }),\n isFullExit: z.boolean().meta({ description: \"Whether the zero amount requests a full exit\" }),\n executionFee: zUnsignedIntString.meta({ description: \"EIP-7002 request fee in wei\" }),\n});\n\nconst zEthereumLikeStakeConsolidateResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_CONSOLIDATE),\n sourcePubKey: zHexDataString.meta({ description: \"Source validator public key\" }),\n sourceStakingProvider: zEthereumLikeStakingProvider.nullable().meta({\n description: \"Staking provider inferred from the source validator public key, when known\",\n }),\n targetPubKey: zHexDataString.meta({ description: \"Target validator public key\" }),\n targetStakingProvider: zEthereumLikeStakingProvider.nullable().meta({\n description: \"Staking provider inferred from the target validator public key, when known\",\n }),\n executionFee: zUnsignedIntString.meta({ description: \"EIP-7251 request fee in wei\" }),\n});\n\nconst zEthereumLikeStakeUpgradeResponseFields = zEthereumLikeStakingCoinFields.extend({\n type: z.literal(zEthereumLikeStakingTransactionType.enum.ETHEREUM_LIKE_STAKE_UPGRADE),\n validatorPubKey: zHexDataString.meta({ description: \"Validator public key\" }),\n stakingProvider: zEthereumLikeStakingProvider\n .nullable()\n .meta({ description: \"Staking provider inferred from the validator public key, when known\" }),\n executionFee: zUnsignedIntString.meta({ description: \"EIP-7251 request fee in wei\" }),\n});\n\nexport const zEthereumLikeTransactionResponse = z\n .discriminatedUnion(\"type\", [\n zCommonTransactionResponse\n .extend(zEthereumLikeTransferCoinFields.shape)\n .meta({ description: \"Ethereum-like transfer transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeContractCoinFields.shape)\n .meta({ description: \"Ethereum-like contract transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeDepositResponseFields.shape)\n .meta({ description: \"Ethereum validator deposit transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeTopUpResponseFields.shape)\n .meta({ description: \"Ethereum validator top-up transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeWithdrawResponseFields.shape)\n .meta({ description: \"Ethereum validator withdrawal request transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeConsolidateResponseFields.shape)\n .meta({ description: \"Ethereum validator consolidation request transaction\" }),\n zCommonTransactionResponse\n .extend(zEthereumLikeStakeUpgradeResponseFields.shape)\n .meta({ description: \"Ethereum validator credential upgrade transaction\" }),\n ])\n .meta({ description: \"Ethereum-like transaction\" });\n\n// #endregion\n","/**\n * Cardano stake pool IDs.\n *\n * A pool ID is the 28-byte hash of the pool operator's cold key, written either in Bech32 with the\n * `pool` prefix (CIP-5, Bech32 and not Bech32m) or as 56 hexadecimal characters. The rule is the one\n * lama-cardano applies before crafting a delegation (`INVALID_POOL_ID`) and les-wallet applies to\n * its pool catalogue, so a pool ID accepted here is accepted downstream.\n *\n * No runtime dependency: the web validates a custom pool ID with the same functions.\n */\n\nconst BECH32_CHARSET = \"qpzry9x8gf2tvdw0s3jn54khce6mua7l\";\nconst BECH32_GENERATOR = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nconst BECH32_CHECKSUM_LENGTH = 6;\n\nconst POOL_ID_PREFIX = \"pool\";\nconst POOL_ID_BYTE_LENGTH = 28;\nconst HEX_POOL_ID = /^[0-9a-fA-F]{56}$/;\n/** The characters of a Bech32 string: printable US-ASCII (BIP-173). */\nconst BECH32_CHARACTERS = /^[\\x21-\\x7e]*$/;\n\nconst polymod = (values: readonly number[]): number => {\n let checksum = 1;\n for (const value of values) {\n const top = checksum >>> 25;\n checksum = ((checksum & 0x1ffffff) << 5) ^ value;\n BECH32_GENERATOR.forEach((generator, i) => {\n if ((top >>> i) & 1) {\n checksum ^= generator;\n }\n });\n }\n return checksum >>> 0;\n};\n\nconst PREFIX_WORDS = [\n ...[...POOL_ID_PREFIX].map((char) => char.charCodeAt(0) >>> 5),\n 0,\n ...[...POOL_ID_PREFIX].map((char) => char.charCodeAt(0) & 31),\n];\n\n/**\n * A pool ID payload to 5-bit words: its 224 bits make 44 words and 4 bits, padded with a zero bit\n * into the last word.\n */\nconst toWords = (bytes: readonly number[]): number[] => {\n const words: number[] = [];\n let accumulator = 0;\n let bits = 0;\n for (const byte of bytes) {\n accumulator = ((accumulator << 8) | byte) & 0xfff;\n bits += 8;\n while (bits >= 5) {\n bits -= 5;\n words.push((accumulator >>> bits) & 31);\n }\n }\n return [...words, (accumulator << (5 - bits)) & 31];\n};\n\n/** 5-bit words to bytes; `null` when the padding is longer than 4 bits or not zero. */\nconst fromWords = (words: readonly number[]): number[] | null => {\n const bytes: number[] = [];\n let accumulator = 0;\n let bits = 0;\n for (const word of words) {\n accumulator = ((accumulator << 5) | word) & 0xfff;\n bits += 5;\n if (bits >= 8) {\n bits -= 8;\n bytes.push((accumulator >>> bits) & 0xff);\n }\n }\n return bits >= 5 || (accumulator & ((1 << bits) - 1)) !== 0 ? null : bytes;\n};\n\n/** The 28-byte payload of a Bech32 pool ID, lower or upper case but not mixed (BIP-173). */\nconst decodeBech32PoolId = (value: string): number[] | null => {\n // Checked before the case folding, which maps some other characters onto the alphabet: the Kelvin\n // sign (U+212A) lower-cases to `k`.\n if (!BECH32_CHARACTERS.test(value)) {\n return null;\n }\n const lower = value.toLowerCase();\n if (value !== lower && value !== value.toUpperCase()) {\n return null;\n }\n if (!lower.startsWith(`${POOL_ID_PREFIX}1`)) {\n return null;\n }\n const words = [...lower.slice(POOL_ID_PREFIX.length + 1)].map((char) =>\n BECH32_CHARSET.indexOf(char),\n );\n if (words.includes(-1) || polymod([...PREFIX_WORDS, ...words]) !== 1) {\n return null;\n }\n const payload = fromWords(words.slice(0, -BECH32_CHECKSUM_LENGTH));\n return payload?.length === POOL_ID_BYTE_LENGTH ? payload : null;\n};\n\nconst decodeHexPoolId = (value: string): number[] | null =>\n HEX_POOL_ID.test(value)\n ? Array.from({ length: POOL_ID_BYTE_LENGTH }, (_, i) =>\n Number.parseInt(value.slice(2 * i, 2 * i + 2), 16),\n )\n : null;\n\nconst encodeBech32PoolId = (payload: readonly number[]): string => {\n const words = toWords(payload);\n const checksum =\n polymod([...PREFIX_WORDS, ...words, ...Array<number>(BECH32_CHECKSUM_LENGTH).fill(0)]) ^ 1;\n const checksumWords = Array.from(\n { length: BECH32_CHECKSUM_LENGTH },\n (_, i) => (checksum >>> (5 * (BECH32_CHECKSUM_LENGTH - 1 - i))) & 31,\n );\n const data = [...words, ...checksumWords].map((word) => BECH32_CHARSET.charAt(word)).join(\"\");\n return `${POOL_ID_PREFIX}1${data}`;\n};\n\nconst decodePoolId = (value: string): number[] | null =>\n decodeHexPoolId(value) ?? decodeBech32PoolId(value);\n\n/** Whether `value` is, as given, a Bech32 `pool1…` pool ID or 56 hexadecimal characters. */\nexport const isValidCardanoPoolId = (value: string): boolean => decodePoolId(value) !== null;\n\n/**\n * The canonical form of a pool ID, lower-case Bech32 (`pool1…`), which explorers, pool operators\n * and the device review show; `null` when `value` is not a pool ID. Surrounding whitespace is\n * ignored.\n */\nexport const toCanonicalCardanoPoolId = (value: string): string | null => {\n const payload = decodePoolId(value.trim());\n return payload === null ? null : encodeBech32PoolId(payload);\n};\n","import type { TransactionType } from \"@/core/networks\";\n\nconst TRANSACTION_CHECK_SUPPORTED_TYPES = [\n \"ETHEREUM_LIKE_SEND\",\n \"ETHEREUM_LIKE_EXECUTE_CONTRACT\",\n \"ETHEREUM_LIKE_STAKE_DEPOSIT\",\n \"ETHEREUM_LIKE_STAKE_TOP_UP\",\n \"ETHEREUM_LIKE_STAKE_WITHDRAW\",\n \"ETHEREUM_LIKE_STAKE_CONSOLIDATE\",\n \"ETHEREUM_LIKE_STAKE_UPGRADE\",\n \"SOLANA_LIKE_SEND\",\n \"SOLANA_LIKE_SEND_TOKEN\",\n] as const satisfies readonly TransactionType[];\n\n/**\n * Whether Transaction Check applies to this exact transaction type. This is only the type half of\n * the scope: API code that has the account must use `isInTransactionCheckScope` from\n * `@/core/accounts/transactions`, which also checks that les-wallet can scan the account.\n *\n * Kept free of runtime imports: `@ledgerhq/revault-api` publishes it to clients.\n */\nexport const isTransactionCheckSupportedType = (type: TransactionType): boolean =>\n TRANSACTION_CHECK_SUPPORTED_TYPES.some((supportedType) => supportedType === type);\n","import z from \"zod\";\n\n/**\n * Fiat currencies a governance threshold may be denominated in.\n *\n * Deliberately narrow: a rule denominated in one of these must be evaluable for every asset it\n * governs. A fiat rule an asset cannot be priced against is refused while the association can\n * still be corrected — when the rule is written, or when an account attaches to an asset-less\n * policy (ADR-0020 §7) — rather than skipped when it is evaluated.\n *\n * Governance vocabulary, so owned by core. The countervalue service is handed the code as a\n * plain string and never depends on this list.\n */\nexport const zFiatCurrency = z.enum([\"USD\", \"EUR\", \"GBP\", \"JPY\", \"CHF\"]);\n\nexport type FiatCurrency = z.infer<typeof zFiatCurrency>;\n\n/**\n * Decimal places in each currency's minor unit. This is what makes a threshold's integer bounds\n * readable as an amount: \"1050\" is $10.50 under USD, but ¥1050 under JPY.\n */\nconst FIAT_MINOR_UNIT_EXPONENTS = {\n USD: 2,\n EUR: 2,\n GBP: 2,\n JPY: 0,\n CHF: 2,\n} as const satisfies Record<FiatCurrency, number>;\n\n/**\n * Minor-unit exponent to pin onto a rule denominated in `currency`.\n *\n * Callers store the result on the rule instead of consulting this table again when the rule is\n * evaluated. A currency that later abolishes its subunit — as ISK did, while keeping its code —\n * would otherwise silently rescale every rule already in force.\n */\nexport const getFiatMinorUnitExponent = (currency: FiatCurrency): number =>\n FIAT_MINOR_UNIT_EXPONENTS[currency];\n\n/** A fiat amount in major units, as a decimal string: `\"1000\"`, `\"1000.5\"`, `\"0.50\"`. */\nexport const FIAT_AMOUNT_PATTERN = /^(0|[1-9]\\d*)(?:\\.(\\d+))?$/;\n\n/**\n * `amount` in minor units at `exponent` decimal places (`\"1000.5\"` at 2 is `100050n`), using string\n * arithmetic only. More decimals than `exponent` is refused, never rounded.\n */\nexport const toFiatMinorUnits = (amount: string, exponent: number): bigint => {\n const match = FIAT_AMOUNT_PATTERN.exec(amount);\n if (match === null) {\n throw new RangeError(`${amount} is not a decimal amount`);\n }\n const [, whole, fraction = \"\"] = match;\n if (fraction.length > exponent) {\n throw new RangeError(`${amount} has more than ${exponent} decimal places`);\n }\n return BigInt(`${whole}${fraction.padEnd(exponent, \"0\")}`);\n};\n\n/** `minor` units as a major-unit amount with `exponent` decimals: `100050n` at 2 is `\"1000.50\"`. */\nexport const formatFiatMinorUnits = (minor: bigint, exponent: number): string => {\n const digits = minor.toString().padStart(exponent + 1, \"0\");\n return exponent === 0 ? digits : `${digits.slice(0, -exponent)}.${digits.slice(-exponent)}`;\n};\n","// The attributes stakes can be sorted by.\n// It lives apart from `read-models.ts` so the entrypoint sort module avoids that module's runtime imports.\nexport const STAKE_SORT_BY_FIELDS = [\"staked\", \"rewards\", \"total\"] as const;\n\nexport type StakeSortBy = (typeof STAKE_SORT_BY_FIELDS)[number];\n","import { z } from \"zod\";\n\nimport { STAKE_SORT_BY_FIELDS } from \"@/core/accounts/stake-sort\";\n\nimport type { AccountResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zAccountSortByField = z.enum([\n \"name\",\n \"currency\",\n \"index\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof AccountResponse)[]);\n\nexport const zStakeSortByField = z.enum(STAKE_SORT_BY_FIELDS);\n","import { z } from \"zod\";\n\nimport type { GroupResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zGroupSortByField = z.enum([\n \"name\",\n \"status\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof GroupResponse)[]);\n","import z from \"zod\";\n\nexport const HSM_OBJECT_TYPES = [\n \"Account\",\n \"AdminGroup\",\n \"AssetManager\",\n \"Exchange\",\n \"FiatThresholdRule\",\n \"Group\",\n \"Partition\",\n \"PledgeState\",\n \"Policy\",\n \"AccountRuleSet\",\n \"Tradelink\",\n \"User\",\n \"WalletAccountList\",\n \"Whitelist\",\n] as const;\n\nexport type HsmObjectType = (typeof HSM_OBJECT_TYPES)[number];\n\nexport const zObjectsVersionResponse = z.object({\n cid: z.coerce.string(),\n total_accounts: z.number(),\n accounts_report: z.record(z.string(), z.number()),\n total_objects: z.number(),\n objects_report: z.record(z.string(), z.number()),\n});\n\nexport type ObjectsVersionResponse = z.infer<typeof zObjectsVersionResponse>;\n\nconst zVersionedObjectInfo = z.object({\n uid: z.string(),\n object_type: z.string(),\n index: z.number(),\n hsm_object_type_id: z.number(),\n anti_replay_value: z.number(),\n expected_anti_replay_value: z.number(),\n schema_version: z.number(),\n});\n\nexport type VersionedObjectInfo = z.infer<typeof zVersionedObjectInfo>;\n\nexport const zGetObjectsInfoResponse = z.object({\n cid: z.coerce.string(),\n uid: z.string().nullable(),\n objects_count: z.number(),\n hsm_requests_count: z.number(),\n status: z.string(),\n valid_objects: z.array(zVersionedObjectInfo),\n invalid_objects: z.array(zVersionedObjectInfo),\n objects_missing_merkle_tree_id: z.array(z.string()),\n});\n\nexport type GetObjectsInfoResponse = z.infer<typeof zGetObjectsInfoResponse>;\n\nexport const zObjectsContentResponse = z.object({\n cid: z.coerce.string(),\n uid: z.string().nullable(),\n objects_count: z.number(),\n hsm_requests_count: z.number(),\n status: z.string(),\n // Structure varies by object type; intentionally untyped for raw dump display.\n object_contents: z.array(z.unknown()),\n objects_missing_merkle_tree_id: z.array(z.string()),\n});\n\nexport type ObjectsContentResponse = z.infer<typeof zObjectsContentResponse>;\n","import { z } from \"zod\";\n\nimport type { PolicyResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zPolicySortByField = z.enum([\n \"name\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof PolicyResponse)[]);\n","import { z } from \"zod\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zPortfolioSortByField = z.enum([\n \"name\",\n \"accountCount\",\n \"memberCount\",\n \"createdAt\",\n \"updatedAt\",\n]);\n","import { z } from \"zod\";\n\nimport type { VaultRequestResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zRequestSortByField = z.enum([\n \"state\",\n \"expiresAt\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof VaultRequestResponse)[]);\n","import { z } from \"zod\";\n\nimport type { UserResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zUserSortByField = z.enum([\n \"name\",\n \"role\",\n \"status\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof UserResponse)[]);\n","import { z } from \"zod\";\n\nimport type { WhitelistResponse } from \"./schemas\";\n\n// A bare enum, without the API default, so that Web can validate its URL `sortBy` with it.\n// It lives apart from `schemas.ts` so `app-lib` can publish it without that module's runtime imports.\nexport const zWhitelistSortByField = z.enum([\n \"name\",\n \"status\",\n \"addressCount\",\n \"createdAt\",\n \"updatedAt\",\n] as const satisfies (keyof WhitelistResponse)[]);\n","/**\n * Placeholder `VaultRequest.targetId` for a Gate-synced request whose target object is not\n * synchronized into Revault yet. It is not the ID of any record, so a consumer must not fetch it.\n *\n * Kept in this dependency-free module so `app-lib.ts` can publish it without bundling the\n * synchronization layer.\n */\nexport const EMPTY_UUID = \"00000000-0000-0000-0000-000000000000\";\n","// The NATS event backfill's published constants, in the light `shared` layer so the backoffice can\n// import them through `app-lib.ts` without the bundler shipping `core/administration`'s NATS and\n// Prisma graph to it.\n\nexport const NATS_EVENT_BACKFILL_EVENT_TYPES = [\"AccountCreated\", \"WorkspaceCreated\"] as const;\nexport type NatsEventBackfillEventType = (typeof NATS_EVENT_BACKFILL_EVENT_TYPES)[number];\n\n/** Rows a preview or a failure list carries. The totals beside them stay exact. */\nexport const NATS_EVENT_BACKFILL_LIST_LIMIT = 100;\n\n/** Largest concurrency a single call may use. Bounds the publishes in flight, nothing else. */\nexport const MAX_NATS_EVENT_BACKFILL_CONCURRENCY = 200;\n"],"mappings":"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"}
|