@polyester/sdk 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/README.md +63 -17
- package/dist/_virtual/_rolldown/runtime.js +15 -1
- package/dist/account-signer/types.d.ts.map +1 -1
- package/dist/account-signer/types.js +6 -3
- package/dist/account-signer/types.js.map +1 -1
- package/dist/browser-client.d.ts +4 -2
- package/dist/browser-client.d.ts.map +1 -1
- package/dist/browser-client.js +3 -4
- package/dist/browser-client.js.map +1 -1
- package/dist/catalogs/client-catalog.d.ts.map +1 -1
- package/dist/catalogs/client-catalog.js +11 -4
- package/dist/catalogs/client-catalog.js.map +1 -1
- package/dist/catalogs/index.js +1 -1
- package/dist/catalogs/readers.d.ts.map +1 -1
- package/dist/catalogs/readers.js +3 -1
- package/dist/catalogs/readers.js.map +1 -1
- package/dist/catalogs/snapshot-validation.js +132 -0
- package/dist/catalogs/snapshot-validation.js.map +1 -0
- package/dist/catalogs/snapshot.d.ts.map +1 -1
- package/dist/catalogs/snapshot.js +16 -7
- package/dist/catalogs/snapshot.js.map +1 -1
- package/dist/catalogs/zipper-supply.d.ts.map +1 -1
- package/dist/catalogs/zipper-supply.js +10 -7
- package/dist/catalogs/zipper-supply.js.map +1 -1
- package/dist/core-client.d.ts +24 -17
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +21 -3
- package/dist/core-client.js.map +1 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +32 -1
- package/dist/environment.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/realtime/client.js +13 -2
- package/dist/realtime/client.js.map +1 -1
- package/dist/realtime/snapshot-then-stream.js +1 -1
- package/dist/realtime/snapshot-then-stream.js.map +1 -1
- package/dist/realtime/types.d.ts +2 -0
- package/dist/realtime/types.d.ts.map +1 -1
- package/dist/server-client.d.ts +17 -8
- package/dist/server-client.d.ts.map +1 -1
- package/dist/server-client.js +8 -11
- package/dist/server-client.js.map +1 -1
- package/dist/services/accounts/accounts.js +3 -3
- package/dist/services/accounts/accounts.js.map +1 -1
- package/dist/services/accounts/accounts.schemas.d.ts +13 -13
- package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
- package/dist/services/accounts/accounts.schemas.js +11 -11
- package/dist/services/accounts/accounts.schemas.js.map +1 -1
- package/dist/services/address-book/address-book.js +28 -28
- package/dist/services/address-book/address-book.js.map +1 -1
- package/dist/services/address-book/address-book.schemas.d.ts +751 -751
- package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
- package/dist/services/address-book/address-book.schemas.js +160 -160
- package/dist/services/address-book/address-book.schemas.js.map +1 -1
- package/dist/services/api-keys/api-keys.d.ts +6 -6
- package/dist/services/api-keys/api-keys.d.ts.map +1 -1
- package/dist/services/api-keys/api-keys.js +12 -12
- package/dist/services/api-keys/api-keys.js.map +1 -1
- package/dist/services/api-keys/api-keys.schemas.d.ts +62 -62
- package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -1
- package/dist/services/api-keys/api-keys.schemas.js +34 -34
- package/dist/services/api-keys/api-keys.schemas.js.map +1 -1
- package/dist/services/auth/auth.d.ts +46 -40
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +28 -25
- package/dist/services/auth/auth.js.map +1 -1
- package/dist/services/auth/profile/profile.d.ts +2 -2
- package/dist/services/auth/profile/profile.d.ts.map +1 -1
- package/dist/services/auth/profile/profile.js +7 -7
- package/dist/services/auth/profile/profile.js.map +1 -1
- package/dist/services/auth/profile/profile.schemas.d.ts +41 -41
- package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -1
- package/dist/services/auth/profile/profile.schemas.js +27 -27
- package/dist/services/auth/profile/profile.schemas.js.map +1 -1
- package/dist/services/auth/session.d.ts +1 -1
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +6 -2
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/auth/session.schemas.js +17 -17
- package/dist/services/auth/session.schemas.js.map +1 -1
- package/dist/services/auth/session.types.d.ts +3 -2
- package/dist/services/auth/session.types.d.ts.map +1 -1
- package/dist/services/balances/balances.d.ts +1 -1
- package/dist/services/balances/balances.js +9 -9
- package/dist/services/balances/balances.js.map +1 -1
- package/dist/services/balances/balances.schemas.d.ts +95 -95
- package/dist/services/balances/balances.schemas.d.ts.map +1 -1
- package/dist/services/balances/balances.schemas.js +61 -61
- package/dist/services/balances/balances.schemas.js.map +1 -1
- package/dist/services/candles/candles.js +12 -12
- package/dist/services/candles/candles.js.map +1 -1
- package/dist/services/candles/candles.schemas.d.ts +70 -70
- package/dist/services/candles/candles.schemas.d.ts.map +1 -1
- package/dist/services/candles/candles.schemas.js +47 -48
- package/dist/services/candles/candles.schemas.js.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.js +7 -7
- package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +68 -68
- package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.schemas.js +29 -29
- package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
- package/dist/services/deposit/deposit.js +5 -5
- package/dist/services/deposit/deposit.js.map +1 -1
- package/dist/services/deposit/deposit.schemas.d.ts +17 -17
- package/dist/services/deposit/deposit.schemas.d.ts.map +1 -1
- package/dist/services/deposit/deposit.schemas.js +11 -11
- package/dist/services/deposit/deposit.schemas.js.map +1 -1
- package/dist/services/guard-signer/guard-signer.js +13 -13
- package/dist/services/guard-signer/guard-signer.js.map +1 -1
- package/dist/services/guard-signer/guard-signer.schemas.d.ts +75 -75
- package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -1
- package/dist/services/guard-signer/guard-signer.schemas.js +42 -42
- package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -1
- package/dist/services/heatmap/heatmap.js +9 -9
- package/dist/services/heatmap/heatmap.js.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.d.ts +144 -144
- package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.js +47 -47
- package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.js +3 -3
- package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +53 -53
- package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.schemas.js +27 -27
- package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.js +10 -10
- package/dist/services/lifecycle/lifecycle.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +614 -614
- package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.js +146 -146
- package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -1
- package/dist/services/market-data/market-data.js +6 -6
- package/dist/services/market-data/market-data.js.map +1 -1
- package/dist/services/market-data/market-data.schemas.d.ts +20 -20
- package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
- package/dist/services/market-data/market-data.schemas.js +51 -55
- package/dist/services/market-data/market-data.schemas.js.map +1 -1
- package/dist/services/market-overview/market-overview.js +4 -4
- package/dist/services/market-overview/market-overview.js.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts +38 -38
- package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.js +33 -33
- package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
- package/dist/services/mfa/mfa.js +27 -27
- package/dist/services/mfa/mfa.js.map +1 -1
- package/dist/services/mfa/mfa.schemas.d.ts +206 -206
- package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
- package/dist/services/mfa/mfa.schemas.js +83 -83
- package/dist/services/mfa/mfa.schemas.js.map +1 -1
- package/dist/services/orderbook/orderbook.d.ts +2 -2
- package/dist/services/orderbook/orderbook.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.js +5 -5
- package/dist/services/orderbook/orderbook.js.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.d.ts +22 -22
- package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.js +15 -15
- package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
- package/dist/services/orders/order-errors.schemas.d.ts +18 -18
- package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
- package/dist/services/orders/order-errors.schemas.js +8 -8
- package/dist/services/orders/order-errors.schemas.js.map +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +492 -492
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +118 -118
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders-identifiers.schemas.js +5 -5
- package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
- package/dist/services/orders/orders-input.schemas.d.ts +657 -648
- package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-input.schemas.js +100 -96
- package/dist/services/orders/orders-input.schemas.js.map +1 -1
- package/dist/services/orders/orders-modify.schemas.d.ts +370 -351
- package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-modify.schemas.js +48 -44
- package/dist/services/orders/orders-modify.schemas.js.map +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +183 -183
- package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-output.schemas.js +49 -49
- package/dist/services/orders/orders-output.schemas.js.map +1 -1
- package/dist/services/orders/orders-risk.schemas.d.ts +226 -226
- package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-risk.schemas.js +69 -69
- package/dist/services/orders/orders-risk.schemas.js.map +1 -1
- package/dist/services/orders/orders.d.ts +8 -8
- package/dist/services/orders/orders.d.ts.map +1 -1
- package/dist/services/orders/orders.js +44 -32
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.d.ts +6 -6
- package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.js +11 -11
- package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +105 -105
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +49 -49
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
- package/dist/services/policies/shared.d.ts +5 -5
- package/dist/services/policies/shared.d.ts.map +1 -1
- package/dist/services/policies/shared.js +10 -10
- package/dist/services/policies/shared.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +6 -6
- package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.js +13 -13
- package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +124 -124
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +75 -75
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
- package/dist/services/shared.js +11 -11
- package/dist/services/shared.js.map +1 -1
- package/dist/services/social-verification/social-verification.d.ts +3 -3
- package/dist/services/social-verification/social-verification.d.ts.map +1 -1
- package/dist/services/social-verification/social-verification.js +7 -7
- package/dist/services/social-verification/social-verification.js.map +1 -1
- package/dist/services/social-verification/social-verification.schemas.d.ts +54 -54
- package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
- package/dist/services/social-verification/social-verification.schemas.js +28 -28
- package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
- package/dist/services/subaccount-resolver.js +5 -3
- package/dist/services/subaccount-resolver.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.d.ts +15 -15
- package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
- package/dist/services/subaccounts/subaccounts.js +35 -35
- package/dist/services/subaccounts/subaccounts.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +135 -135
- package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.js +72 -72
- package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
- package/dist/services/trades/trades.d.ts +2 -2
- package/dist/services/trades/trades.d.ts.map +1 -1
- package/dist/services/trades/trades.js +5 -5
- package/dist/services/trades/trades.js.map +1 -1
- package/dist/services/trades/trades.schemas.d.ts +31 -31
- package/dist/services/trades/trades.schemas.d.ts.map +1 -1
- package/dist/services/trades/trades.schemas.js +24 -24
- package/dist/services/trades/trades.schemas.js.map +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.js +8 -8
- package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +45 -45
- package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.schemas.js +36 -36
- package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -1
- package/dist/services/transfers/transfers.d.ts +1 -1
- package/dist/services/transfers/transfers.d.ts.map +1 -1
- package/dist/services/transfers/transfers.js +5 -5
- package/dist/services/transfers/transfers.js.map +1 -1
- package/dist/services/transfers/transfers.schemas.d.ts +42 -42
- package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
- package/dist/services/transfers/transfers.schemas.js +30 -30
- package/dist/services/transfers/transfers.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-child-order.schemas.js +23 -23
- package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.d.ts +226 -226
- package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.js +53 -53
- package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.d.ts +210 -210
- package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.js +152 -152
- package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
- package/dist/services/triggers/triggers.js +21 -21
- package/dist/services/triggers/triggers.js.map +1 -1
- package/dist/services/whiteboard/whiteboard.js +15 -15
- package/dist/services/whiteboard/whiteboard.js.map +1 -1
- package/dist/services/whiteboard/whiteboard.schemas.d.ts +379 -379
- package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -1
- package/dist/services/whiteboard/whiteboard.schemas.js +71 -71
- package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -1
- package/dist/services/zipper/zipper.js +3 -3
- package/dist/services/zipper/zipper.js.map +1 -1
- package/dist/services/zipper/zipper.schemas.d.ts +1 -1
- package/dist/services/zipper/zipper.schemas.js +54 -54
- package/dist/services/zipper/zipper.schemas.js.map +1 -1
- package/dist/shared/account-scope.d.ts +6 -6
- package/dist/shared/account-scope.d.ts.map +1 -1
- package/dist/shared/account-scope.js +3 -3
- package/dist/shared/account-scope.js.map +1 -1
- package/dist/shared/connect-error-mapping.d.ts +1 -1
- package/dist/shared/connect-error-mapping.js +29 -3
- package/dist/shared/connect-error-mapping.js.map +1 -1
- package/dist/shared/rate-limit.schemas.d.ts +12 -12
- package/dist/shared/rate-limit.schemas.d.ts.map +1 -1
- package/dist/shared/rate-limit.schemas.js +7 -7
- package/dist/shared/rate-limit.schemas.js.map +1 -1
- package/dist/shared/schemas.js +26 -26
- package/dist/shared/schemas.js.map +1 -1
- package/dist/shared/transports.js +7 -12
- package/dist/shared/transports.js.map +1 -1
- package/dist/shared/types.d.ts +12 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/validation.d.ts +14 -0
- package/dist/shared/validation.d.ts.map +1 -0
- package/dist/shared/validation.js +24 -0
- package/dist/shared/validation.js.map +1 -0
- package/dist/utils/connect-order-errors.js +2 -2
- package/dist/utils/connect-order-errors.js.map +1 -1
- package/dist/utils/cookies.d.ts +8 -3
- package/dist/utils/cookies.d.ts.map +1 -1
- package/dist/utils/cookies.js +7 -1
- package/dist/utils/cookies.js.map +1 -1
- package/dist/utils/event-emitter.d.ts +1 -1
- package/dist/utils/event-emitter.d.ts.map +1 -1
- package/dist/utils/event-emitter.js +4 -2
- package/dist/utils/event-emitter.js.map +1 -1
- package/dist/utils/evm.js +2 -2
- package/dist/utils/evm.js.map +1 -1
- package/dist/utils/jwt.d.ts +2 -2
- package/dist/utils/jwt.d.ts.map +1 -1
- package/dist/utils/jwt.js +2 -2
- package/dist/utils/jwt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { validation_exports } from "../../shared/validation.js";
|
|
1
2
|
import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
|
|
2
3
|
import { tsObjToMs, tsObjToNsString } from "../../utils/time.js";
|
|
3
4
|
import { BigIntStringSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampSchema, idInputSchema, positiveBigintStringInputSchema } from "../../shared/schemas.js";
|
|
4
5
|
import { buildProtoPatch, defineProtoPatchFields } from "../../utils/proto-patch.js";
|
|
5
6
|
import { ActivityEntityKind, ActivityEventAction, ActivityEventSource, SubaccountInviteStatus, SubaccountRole } from "../../gen/auth/v1/subaccounts_pb.js";
|
|
6
7
|
import { ActivityEntityKindCodec, ActivityEventActionCodec, ActivityEventSourceCodec, InviteActionCodec, InviteStatusCodec, SUBACCOUNT_STATUS_VALUES, SubaccountRoleCodec, SubaccountStatusCodec } from "./subaccounts.codecs.js";
|
|
7
|
-
|
|
8
|
-
const SubaccountRoleSchema = v.picklist([
|
|
8
|
+
const SubaccountRoleSchema = validation_exports.picklist([
|
|
9
9
|
"owner",
|
|
10
10
|
"admin",
|
|
11
11
|
"treasury",
|
|
@@ -13,25 +13,25 @@ const SubaccountRoleSchema = v.picklist([
|
|
|
13
13
|
"trader",
|
|
14
14
|
"viewer"
|
|
15
15
|
]);
|
|
16
|
-
const ProtoSubaccountRoleSchema =
|
|
17
|
-
const CreateSubaccountInputSchema =
|
|
18
|
-
label:
|
|
19
|
-
icon:
|
|
20
|
-
color:
|
|
21
|
-
smartAccountAddress:
|
|
22
|
-
nonce:
|
|
23
|
-
signature:
|
|
24
|
-
primaryWalletAddress:
|
|
25
|
-
walletProvider:
|
|
16
|
+
const ProtoSubaccountRoleSchema = validation_exports.pipe(validation_exports.enum(SubaccountRole), validation_exports.transform((role) => requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, "SubaccountRoleSchema", "role")));
|
|
17
|
+
const CreateSubaccountInputSchema = validation_exports.strictObject({
|
|
18
|
+
label: validation_exports.optional(validation_exports.string(), ""),
|
|
19
|
+
icon: validation_exports.optional(validation_exports.string(), ""),
|
|
20
|
+
color: validation_exports.optional(validation_exports.string(), ""),
|
|
21
|
+
smartAccountAddress: validation_exports.string(),
|
|
22
|
+
nonce: validation_exports.string(),
|
|
23
|
+
signature: validation_exports.string(),
|
|
24
|
+
primaryWalletAddress: validation_exports.optional(validation_exports.string(), ""),
|
|
25
|
+
walletProvider: validation_exports.optional(validation_exports.string(), "")
|
|
26
26
|
});
|
|
27
|
-
const SubaccountIdInputSchema =
|
|
28
|
-
const CreateSubaccountResultSchema =
|
|
27
|
+
const SubaccountIdInputSchema = validation_exports.strictObject({ subaccountId: idInputSchema("subaccountId") });
|
|
28
|
+
const CreateSubaccountResultSchema = validation_exports.object({
|
|
29
29
|
subaccountId: PublicIdSchema,
|
|
30
|
-
totalCreated:
|
|
31
|
-
smartAccountSaltNonce:
|
|
30
|
+
totalCreated: validation_exports.number(),
|
|
31
|
+
smartAccountSaltNonce: validation_exports.number(),
|
|
32
32
|
revision: BigIntStringSchema
|
|
33
33
|
});
|
|
34
|
-
const SubaccountMutationResultSchema =
|
|
34
|
+
const SubaccountMutationResultSchema = validation_exports.object({});
|
|
35
35
|
const SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields()({
|
|
36
36
|
label: {
|
|
37
37
|
path: "label",
|
|
@@ -50,14 +50,14 @@ const SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields()({
|
|
|
50
50
|
encode: (status) => ({ status: SubaccountStatusCodec.inputToProto[status] })
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
|
-
const UpdateSubaccountInputSchema =
|
|
53
|
+
const UpdateSubaccountInputSchema = validation_exports.pipe(validation_exports.strictObject({
|
|
54
54
|
subaccountId: idInputSchema("subaccountId"),
|
|
55
55
|
expectedRevision: positiveBigintStringInputSchema("expectedRevision"),
|
|
56
|
-
label:
|
|
57
|
-
icon:
|
|
58
|
-
color:
|
|
59
|
-
status:
|
|
60
|
-
}),
|
|
56
|
+
label: validation_exports.optional(validation_exports.string()),
|
|
57
|
+
icon: validation_exports.optional(validation_exports.string()),
|
|
58
|
+
color: validation_exports.optional(validation_exports.string()),
|
|
59
|
+
status: validation_exports.optional(validation_exports.picklist(SUBACCOUNT_STATUS_VALUES))
|
|
60
|
+
}), validation_exports.check(({ label, icon, color, status }) => label !== void 0 || icon !== void 0 || color !== void 0 || status !== void 0, "At least one subaccount field must be provided"), validation_exports.transform(({ subaccountId, expectedRevision, ...input }) => {
|
|
61
61
|
const { patch: subaccount, updateMask } = buildProtoPatch(input, SUBACCOUNT_PATCH_FIELDS);
|
|
62
62
|
return {
|
|
63
63
|
subaccountId,
|
|
@@ -66,111 +66,111 @@ const UpdateSubaccountInputSchema = v.pipe(v.strictObject({
|
|
|
66
66
|
expectedRevision
|
|
67
67
|
};
|
|
68
68
|
}));
|
|
69
|
-
const DeleteSubaccountInputSchema =
|
|
69
|
+
const DeleteSubaccountInputSchema = validation_exports.strictObject({
|
|
70
70
|
subaccountId: idInputSchema("subaccountId"),
|
|
71
71
|
expectedRevision: positiveBigintStringInputSchema("expectedRevision")
|
|
72
72
|
});
|
|
73
|
-
const InviteSubaccountMemberInputSchema =
|
|
73
|
+
const InviteSubaccountMemberInputSchema = validation_exports.strictObject({
|
|
74
74
|
subaccountId: idInputSchema("subaccountId"),
|
|
75
75
|
granteeAccountId: idInputSchema("granteeAccountId"),
|
|
76
|
-
role:
|
|
76
|
+
role: validation_exports.pipe(SubaccountRoleSchema, validation_exports.transform((role) => SubaccountRoleCodec.inputToProto[role]))
|
|
77
77
|
});
|
|
78
|
-
const RemoveSubaccountMemberInputSchema =
|
|
78
|
+
const RemoveSubaccountMemberInputSchema = validation_exports.strictObject({
|
|
79
79
|
subaccountId: idInputSchema("subaccountId"),
|
|
80
80
|
granteeAccountId: idInputSchema("granteeAccountId")
|
|
81
81
|
});
|
|
82
82
|
const UpdateSubaccountMemberRoleInputSchema = InviteSubaccountMemberInputSchema;
|
|
83
|
-
const SetSubaccountMemberMfaRequirementInputSchema =
|
|
83
|
+
const SetSubaccountMemberMfaRequirementInputSchema = validation_exports.strictObject({
|
|
84
84
|
subaccountId: idInputSchema("subaccountId"),
|
|
85
|
-
requireMemberMfa:
|
|
85
|
+
requireMemberMfa: validation_exports.boolean()
|
|
86
86
|
});
|
|
87
|
-
const ListSubaccountInvitesInputSchema =
|
|
87
|
+
const ListSubaccountInvitesInputSchema = validation_exports.strictObject({ direction: validation_exports.optional(validation_exports.picklist([
|
|
88
88
|
"incoming",
|
|
89
89
|
"outgoing",
|
|
90
90
|
""
|
|
91
91
|
]), "") });
|
|
92
|
-
const InviteActionSchema =
|
|
92
|
+
const InviteActionSchema = validation_exports.picklist([
|
|
93
93
|
"accept",
|
|
94
94
|
"decline",
|
|
95
95
|
"cancel"
|
|
96
96
|
]);
|
|
97
|
-
|
|
97
|
+
validation_exports.picklist([
|
|
98
98
|
"pending",
|
|
99
99
|
"accepted",
|
|
100
100
|
"declined",
|
|
101
101
|
"cancelled"
|
|
102
102
|
]);
|
|
103
|
-
const ProtoInviteStatusSchema =
|
|
104
|
-
const RespondSubaccountInviteInputSchema =
|
|
103
|
+
const ProtoInviteStatusSchema = validation_exports.enum(SubaccountInviteStatus);
|
|
104
|
+
const RespondSubaccountInviteInputSchema = validation_exports.strictObject({
|
|
105
105
|
inviteId: idInputSchema("inviteId"),
|
|
106
|
-
action:
|
|
106
|
+
action: validation_exports.pipe(InviteActionSchema, validation_exports.transform((v) => InviteActionCodec.inputToProto[v]))
|
|
107
107
|
});
|
|
108
|
-
const ProtoSubaccountStatusSchema =
|
|
109
|
-
const SubaccountSchema =
|
|
108
|
+
const ProtoSubaccountStatusSchema = validation_exports.pipe(validation_exports.picklist(SUBACCOUNT_STATUS_VALUES), validation_exports.transform((status) => SubaccountStatusCodec.protoToOutput[status]));
|
|
109
|
+
const SubaccountSchema = validation_exports.pipe(validation_exports.object({
|
|
110
110
|
id: PublicIdSchema,
|
|
111
111
|
role: ProtoSubaccountRoleSchema,
|
|
112
|
-
label:
|
|
113
|
-
icon:
|
|
114
|
-
color:
|
|
112
|
+
label: validation_exports.optional(validation_exports.string(), ""),
|
|
113
|
+
icon: validation_exports.optional(validation_exports.string(), ""),
|
|
114
|
+
color: validation_exports.optional(validation_exports.string(), ""),
|
|
115
115
|
status: ProtoSubaccountStatusSchema,
|
|
116
|
-
smartAccountAddress:
|
|
117
|
-
smartAccountSaltNonce:
|
|
118
|
-
ownerUsername:
|
|
119
|
-
ownerAvatarUrl:
|
|
120
|
-
ownerRootSmartAccountAddress:
|
|
116
|
+
smartAccountAddress: validation_exports.string(),
|
|
117
|
+
smartAccountSaltNonce: validation_exports.optional(validation_exports.number()),
|
|
118
|
+
ownerUsername: validation_exports.optional(validation_exports.string(), ""),
|
|
119
|
+
ownerAvatarUrl: validation_exports.optional(validation_exports.string(), ""),
|
|
120
|
+
ownerRootSmartAccountAddress: validation_exports.string(),
|
|
121
121
|
subaccountPolicyId: PublicIdSchema,
|
|
122
|
-
requireMemberMfa:
|
|
123
|
-
updatedAt:
|
|
122
|
+
requireMemberMfa: validation_exports.optional(validation_exports.boolean(), false),
|
|
123
|
+
updatedAt: validation_exports.optional(TimestampSchema),
|
|
124
124
|
revision: BigIntStringSchema
|
|
125
|
-
}),
|
|
125
|
+
}), validation_exports.transform(({ updatedAt, ...subaccount }) => ({
|
|
126
126
|
...subaccount,
|
|
127
127
|
updatedAt: tsObjToMs(updatedAt),
|
|
128
128
|
updatedAtNs: tsObjToNsString(updatedAt)
|
|
129
129
|
})));
|
|
130
|
-
const SubaccountMemberSchema =
|
|
130
|
+
const SubaccountMemberSchema = validation_exports.object({
|
|
131
131
|
accountId: PublicIdSchema,
|
|
132
132
|
role: ProtoSubaccountRoleSchema,
|
|
133
|
-
username:
|
|
134
|
-
smartAccountAddress:
|
|
135
|
-
avatarUrl:
|
|
136
|
-
mfaEnrolled:
|
|
133
|
+
username: validation_exports.optional(validation_exports.string(), ""),
|
|
134
|
+
smartAccountAddress: validation_exports.string(),
|
|
135
|
+
avatarUrl: validation_exports.optional(validation_exports.string(), ""),
|
|
136
|
+
mfaEnrolled: validation_exports.optional(validation_exports.boolean(), false)
|
|
137
137
|
});
|
|
138
|
-
const SubaccountInviteSchema =
|
|
138
|
+
const SubaccountInviteSchema = validation_exports.pipe(validation_exports.object({
|
|
139
139
|
id: PublicIdSchema,
|
|
140
140
|
subaccountId: PublicIdSchema,
|
|
141
141
|
granteeAccountId: PublicIdSchema,
|
|
142
142
|
inviterAccountId: PublicIdSchema,
|
|
143
143
|
role: ProtoSubaccountRoleSchema,
|
|
144
|
-
status:
|
|
144
|
+
status: validation_exports.pipe(ProtoInviteStatusSchema, validation_exports.transform((v) => requiredEnumLabel(InviteStatusCodec.protoToOutput, v, "SubaccountInviteSchema", "status"))),
|
|
145
145
|
createdAt: OptionalTimestampMsSchema,
|
|
146
146
|
respondedAt: OptionalTimestampMsSchema,
|
|
147
|
-
granteeUsername:
|
|
148
|
-
inviterUsername:
|
|
149
|
-
subaccountLabel:
|
|
150
|
-
inviterRootSmartAccountAddress:
|
|
151
|
-
granteeRootSmartAccountAddress:
|
|
152
|
-
requireMemberMfa:
|
|
153
|
-
}),
|
|
147
|
+
granteeUsername: validation_exports.optional(validation_exports.string(), ""),
|
|
148
|
+
inviterUsername: validation_exports.optional(validation_exports.string(), ""),
|
|
149
|
+
subaccountLabel: validation_exports.optional(validation_exports.string(), ""),
|
|
150
|
+
inviterRootSmartAccountAddress: validation_exports.string(),
|
|
151
|
+
granteeRootSmartAccountAddress: validation_exports.string(),
|
|
152
|
+
requireMemberMfa: validation_exports.boolean()
|
|
153
|
+
}), validation_exports.transform(({ subaccountLabel, subaccountId, inviterRootSmartAccountAddress, granteeRootSmartAccountAddress, ...rest }) => ({
|
|
154
154
|
...rest,
|
|
155
155
|
subaccountId,
|
|
156
156
|
subaccountLabel,
|
|
157
157
|
inviterSmartAccountAddress: inviterRootSmartAccountAddress,
|
|
158
158
|
granteeSmartAccountAddress: granteeRootSmartAccountAddress
|
|
159
159
|
})));
|
|
160
|
-
const SubaccountActivityInputSchema =
|
|
160
|
+
const SubaccountActivityInputSchema = validation_exports.strictObject({
|
|
161
161
|
subaccountId: idInputSchema("subaccountId"),
|
|
162
|
-
limit:
|
|
163
|
-
pageToken:
|
|
162
|
+
limit: validation_exports.optional(validation_exports.pipe(validation_exports.number(), validation_exports.integer(), validation_exports.minValue(0), validation_exports.maxValue(200)), 50),
|
|
163
|
+
pageToken: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim()), "")
|
|
164
164
|
});
|
|
165
|
-
const SubaccountActivityEventSchema =
|
|
165
|
+
const SubaccountActivityEventSchema = validation_exports.object({
|
|
166
166
|
createdAt: OptionalTimestampMsSchema,
|
|
167
|
-
entityKind:
|
|
168
|
-
eventAction:
|
|
169
|
-
source:
|
|
170
|
-
ip:
|
|
171
|
-
userAgent:
|
|
167
|
+
entityKind: validation_exports.pipe(validation_exports.enum(ActivityEntityKind), validation_exports.transform((value) => requiredEnumLabel(ActivityEntityKindCodec.protoToOutput, value, "SubaccountActivityEventSchema", "entity kind"))),
|
|
168
|
+
eventAction: validation_exports.pipe(validation_exports.enum(ActivityEventAction), validation_exports.transform((value) => requiredEnumLabel(ActivityEventActionCodec.protoToOutput, value, "SubaccountActivityEventSchema", "event action"))),
|
|
169
|
+
source: validation_exports.pipe(validation_exports.enum(ActivityEventSource), validation_exports.transform((value) => requiredEnumLabel(ActivityEventSourceCodec.protoToOutput, value, "SubaccountActivityEventSchema", "source"))),
|
|
170
|
+
ip: validation_exports.optional(validation_exports.string()),
|
|
171
|
+
userAgent: validation_exports.optional(validation_exports.string()),
|
|
172
172
|
actorAccountId: PublicIdSchema,
|
|
173
|
-
payloadJson:
|
|
173
|
+
payloadJson: validation_exports.pipe(validation_exports.string(), validation_exports.transform((v) => JSON.parse(v)))
|
|
174
174
|
});
|
|
175
175
|
//#endregion
|
|
176
176
|
export { CreateSubaccountInputSchema, CreateSubaccountResultSchema, DeleteSubaccountInputSchema, InviteSubaccountMemberInputSchema, ListSubaccountInvitesInputSchema, RemoveSubaccountMemberInputSchema, RespondSubaccountInviteInputSchema, SetSubaccountMemberMfaRequirementInputSchema, SubaccountActivityEventSchema, SubaccountActivityInputSchema, SubaccountIdInputSchema, SubaccountInviteSchema, SubaccountMemberSchema, SubaccountMutationResultSchema, SubaccountRoleSchema, SubaccountSchema, UpdateSubaccountInputSchema, UpdateSubaccountMemberRoleInputSchema };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subaccounts.schemas.js","names":["Proto.SubaccountRole","Proto.SubaccountInviteStatus","Proto.ActivityEntityKind","Proto.ActivityEventAction","Proto.ActivityEventSource"],"sources":["../../../src/services/subaccounts/subaccounts.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/auth/v1/subaccounts_pb.js\";\nimport * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampSchema,\n idInputSchema,\n positiveBigintStringInputSchema,\n} from \"../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../utils/time.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n SubaccountRoleCodec,\n InviteActionCodec,\n InviteStatusCodec,\n SubaccountStatusCodec,\n SUBACCOUNT_STATUS_VALUES,\n ActivityEntityKindCodec,\n ActivityEventActionCodec,\n ActivityEventSourceCodec,\n} from \"./subaccounts.codecs.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../utils/proto-patch.js\";\n\nconst SUBACCOUNT_ROLE_VALUES = [\n \"owner\",\n \"admin\",\n \"treasury\",\n \"leveraged_trader\",\n \"trader\",\n \"viewer\",\n] as const;\n\nexport const SubaccountRoleSchema = v.picklist(SUBACCOUNT_ROLE_VALUES);\n\nexport type SubaccountRole = v.InferOutput<typeof SubaccountRoleSchema>;\n\nconst ProtoSubaccountRoleSchema = v.pipe(\n v.enum(Proto.SubaccountRole),\n v.transform((role) =>\n requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, \"SubaccountRoleSchema\", \"role\"),\n ),\n);\n\nexport const CreateSubaccountInputSchema = v.strictObject({\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n nonce: v.string(),\n signature: v.string(),\n primaryWalletAddress: v.optional(v.string(), \"\"),\n walletProvider: v.optional(v.string(), \"\"),\n});\n\nexport type CreateSubaccountInput = v.InferInput<typeof CreateSubaccountInputSchema>;\n\nexport const SubaccountIdInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n});\n\nexport type SubaccountIdInput = v.InferInput<typeof SubaccountIdInputSchema>;\n\nexport const CreateSubaccountResultSchema = v.object({\n subaccountId: PublicIdSchema,\n totalCreated: v.number(),\n smartAccountSaltNonce: v.number(),\n revision: BigIntStringSchema,\n});\n\nexport type CreateSubaccountResult = v.InferOutput<typeof CreateSubaccountResultSchema>;\n\nexport const SubaccountMutationResultSchema = v.object({});\n\nexport type SubaccountMutationResult = v.InferOutput<typeof SubaccountMutationResultSchema>;\n\ntype SubaccountPatch = {\n label?: string;\n icon?: string;\n color?: string;\n status?: (typeof SUBACCOUNT_STATUS_VALUES)[number];\n};\n\nconst SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields<SubaccountPatch>()({\n label: { path: \"label\", encode: (label) => ({ label }) },\n icon: { path: \"icon\", encode: (icon) => ({ icon }) },\n color: { path: \"color\", encode: (color) => ({ color }) },\n status: {\n path: \"status\",\n encode: (status) => ({ status: SubaccountStatusCodec.inputToProto[status] }),\n },\n});\n\nexport const UpdateSubaccountInputSchema = v.pipe(\n v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n label: v.optional(v.string()),\n icon: v.optional(v.string()),\n color: v.optional(v.string()),\n status: v.optional(v.picklist(SUBACCOUNT_STATUS_VALUES)),\n }),\n v.check(\n ({ label, icon, color, status }) =>\n label !== undefined ||\n icon !== undefined ||\n color !== undefined ||\n status !== undefined,\n \"At least one subaccount field must be provided\",\n ),\n v.transform(({ subaccountId, expectedRevision, ...input }) => {\n const { patch: subaccount, updateMask } = buildProtoPatch(input, SUBACCOUNT_PATCH_FIELDS);\n return {\n subaccountId,\n subaccount,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type UpdateSubaccountInput = v.InferInput<typeof UpdateSubaccountInputSchema>;\n\nexport const DeleteSubaccountInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n});\n\nexport type DeleteSubaccountInput = v.InferInput<typeof DeleteSubaccountInputSchema>;\n\nexport const InviteSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n role: v.pipe(\n SubaccountRoleSchema,\n v.transform((role) => SubaccountRoleCodec.inputToProto[role]),\n ),\n});\n\nexport type InviteSubaccountMemberInput = v.InferInput<typeof InviteSubaccountMemberInputSchema>;\n\nexport const RemoveSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n});\n\nexport type RemoveSubaccountMemberInput = v.InferInput<typeof RemoveSubaccountMemberInputSchema>;\n\nexport const UpdateSubaccountMemberRoleInputSchema = InviteSubaccountMemberInputSchema;\n\nexport type UpdateSubaccountMemberRoleInput = v.InferInput<\n typeof UpdateSubaccountMemberRoleInputSchema\n>;\n\nexport const SetSubaccountMemberMfaRequirementInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n requireMemberMfa: v.boolean(),\n});\n\nexport type SetSubaccountMemberMfaRequirementInput = v.InferInput<\n typeof SetSubaccountMemberMfaRequirementInputSchema\n>;\n\nexport const ListSubaccountInvitesInputSchema = v.strictObject({\n direction: v.optional(v.picklist([\"incoming\", \"outgoing\", \"\"]), \"\"),\n});\n\nexport type ListSubaccountInvitesInput = v.InferInput<typeof ListSubaccountInvitesInputSchema>;\n\nconst InviteActionSchema = v.picklist([\"accept\", \"decline\", \"cancel\"]);\n\nconst InviteStatusSchema = v.picklist([\"pending\", \"accepted\", \"declined\", \"cancelled\"]);\n\nexport type SubaccountInviteStatus = v.InferOutput<typeof InviteStatusSchema>;\n\nconst ProtoInviteStatusSchema = v.enum(Proto.SubaccountInviteStatus);\n\nexport const RespondSubaccountInviteInputSchema = v.strictObject({\n inviteId: idInputSchema(\"inviteId\"),\n action: v.pipe(\n InviteActionSchema,\n v.transform((v) => InviteActionCodec.inputToProto[v]),\n ),\n});\n\nexport type RespondSubaccountInviteInput = v.InferInput<typeof RespondSubaccountInviteInputSchema>;\n\nconst ProtoSubaccountStatusSchema = v.pipe(\n v.picklist(SUBACCOUNT_STATUS_VALUES),\n v.transform((status) => SubaccountStatusCodec.protoToOutput[status]),\n);\n\nexport type SubaccountStatus = v.InferOutput<typeof ProtoSubaccountStatusSchema>;\n\nexport const SubaccountSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n status: ProtoSubaccountStatusSchema,\n smartAccountAddress: v.string(),\n smartAccountSaltNonce: v.optional(v.number()),\n ownerUsername: v.optional(v.string(), \"\"),\n ownerAvatarUrl: v.optional(v.string(), \"\"),\n ownerRootSmartAccountAddress: v.string(),\n subaccountPolicyId: PublicIdSchema,\n requireMemberMfa: v.optional(v.boolean(), false),\n updatedAt: v.optional(TimestampSchema),\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...subaccount }) => ({\n ...subaccount,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type Subaccount = v.InferOutput<typeof SubaccountSchema>;\n\nexport const SubaccountMemberSchema = v.object({\n accountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n username: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n avatarUrl: v.optional(v.string(), \"\"),\n mfaEnrolled: v.optional(v.boolean(), false),\n});\n\nexport type SubaccountMember = v.InferOutput<typeof SubaccountMemberSchema>;\n\nexport const SubaccountInviteSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n subaccountId: PublicIdSchema,\n granteeAccountId: PublicIdSchema,\n inviterAccountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n status: v.pipe(\n ProtoInviteStatusSchema,\n v.transform((v) =>\n requiredEnumLabel(\n InviteStatusCodec.protoToOutput,\n v,\n \"SubaccountInviteSchema\",\n \"status\",\n ),\n ),\n ),\n createdAt: OptionalTimestampMsSchema,\n respondedAt: OptionalTimestampMsSchema,\n granteeUsername: v.optional(v.string(), \"\"),\n inviterUsername: v.optional(v.string(), \"\"),\n subaccountLabel: v.optional(v.string(), \"\"),\n inviterRootSmartAccountAddress: v.string(),\n granteeRootSmartAccountAddress: v.string(),\n requireMemberMfa: v.boolean(),\n }),\n v.transform(\n ({\n subaccountLabel,\n subaccountId,\n inviterRootSmartAccountAddress,\n granteeRootSmartAccountAddress,\n ...rest\n }) => ({\n ...rest,\n subaccountId,\n subaccountLabel,\n inviterSmartAccountAddress: inviterRootSmartAccountAddress,\n granteeSmartAccountAddress: granteeRootSmartAccountAddress,\n }),\n ),\n);\n\nexport type SubaccountInvite = v.InferOutput<typeof SubaccountInviteSchema>;\n\nexport const SubaccountActivityInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n limit: v.optional(v.pipe(v.number(), v.maxValue(200)), 50),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n});\n\nexport type SubaccountActivityInput = v.InferInput<typeof SubaccountActivityInputSchema>;\n\nexport const SubaccountActivityEventSchema = v.object({\n createdAt: OptionalTimestampMsSchema,\n entityKind: v.pipe(\n v.enum(Proto.ActivityEntityKind),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEntityKindCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"entity kind\",\n ),\n ),\n ),\n eventAction: v.pipe(\n v.enum(Proto.ActivityEventAction),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventActionCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"event action\",\n ),\n ),\n ),\n source: v.pipe(\n v.enum(Proto.ActivityEventSource),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventSourceCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"source\",\n ),\n ),\n ),\n ip: v.optional(v.string()),\n userAgent: v.optional(v.string()),\n actorAccountId: PublicIdSchema,\n payloadJson: v.pipe(\n v.string(),\n v.transform((v) => JSON.parse(v)),\n ),\n});\n\nexport type SubaccountEvent = v.InferOutput<typeof SubaccountActivityEventSchema>;\n"],"mappings":";;;;;;;AAiCA,MAAa,uBAAuB,EAAE,SAAS;CAR3C;CACA;CACA;CACA;CACA;CACA;AAG2C,CAAsB;AAIrE,MAAM,4BAA4B,EAAE,KAChC,EAAE,KAAKA,cAAoB,GAC3B,EAAE,WAAW,SACT,kBAAkB,oBAAoB,eAAe,MAAM,wBAAwB,MAAM,CAC7F,CACJ;AAEA,MAAa,8BAA8B,EAAE,aAAa;CACtD,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAChC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAC/B,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAChC,qBAAqB,EAAE,OAAO;CAC9B,OAAO,EAAE,OAAO;CAChB,WAAW,EAAE,OAAO;CACpB,sBAAsB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAC/C,gBAAgB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;AAC7C,CAAC;AAID,MAAa,0BAA0B,EAAE,aAAa,EAClD,cAAc,cAAc,cAAc,EAC9C,CAAC;AAID,MAAa,+BAA+B,EAAE,OAAO;CACjD,cAAc;CACd,cAAc,EAAE,OAAO;CACvB,uBAAuB,EAAE,OAAO;CAChC,UAAU;AACd,CAAC;AAID,MAAa,iCAAiC,EAAE,OAAO,CAAC,CAAC;AAWzD,MAAM,0BAA0B,uBAAwC,CAAC,CAAC;CACtE,OAAO;EAAE,MAAM;EAAS,SAAS,WAAW,EAAE,MAAM;CAAG;CACvD,MAAM;EAAE,MAAM;EAAQ,SAAS,UAAU,EAAE,KAAK;CAAG;CACnD,OAAO;EAAE,MAAM;EAAS,SAAS,WAAW,EAAE,MAAM;CAAG;CACvD,QAAQ;EACJ,MAAM;EACN,SAAS,YAAY,EAAE,QAAQ,sBAAsB,aAAa,QAAQ;CAC9E;AACJ,CAAC;AAED,MAAa,8BAA8B,EAAE,KACzC,EAAE,aAAa;CACX,cAAc,cAAc,cAAc;CAC1C,kBAAkB,gCAAgC,kBAAkB;CACpE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;CAC5B,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAC3B,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;CAC5B,QAAQ,EAAE,SAAS,EAAE,SAAS,wBAAwB,CAAC;AAC3D,CAAC,GACD,EAAE,OACG,EAAE,OAAO,MAAM,OAAO,aACnB,UAAU,KAAA,KACV,SAAS,KAAA,KACT,UAAU,KAAA,KACV,WAAW,KAAA,GACf,gDACJ,GACA,EAAE,WAAW,EAAE,cAAc,kBAAkB,GAAG,YAAY;CAC1D,MAAM,EAAE,OAAO,YAAY,eAAe,gBAAgB,OAAO,uBAAuB;CACxF,OAAO;EACH;EACA;EACA;EACA;CACJ;AACJ,CAAC,CACL;AAIA,MAAa,8BAA8B,EAAE,aAAa;CACtD,cAAc,cAAc,cAAc;CAC1C,kBAAkB,gCAAgC,kBAAkB;AACxE,CAAC;AAID,MAAa,oCAAoC,EAAE,aAAa;CAC5D,cAAc,cAAc,cAAc;CAC1C,kBAAkB,cAAc,kBAAkB;CAClD,MAAM,EAAE,KACJ,sBACA,EAAE,WAAW,SAAS,oBAAoB,aAAa,KAAK,CAChE;AACJ,CAAC;AAID,MAAa,oCAAoC,EAAE,aAAa;CAC5D,cAAc,cAAc,cAAc;CAC1C,kBAAkB,cAAc,kBAAkB;AACtD,CAAC;AAID,MAAa,wCAAwC;AAMrD,MAAa,+CAA+C,EAAE,aAAa;CACvE,cAAc,cAAc,cAAc;CAC1C,kBAAkB,EAAE,QAAQ;AAChC,CAAC;AAMD,MAAa,mCAAmC,EAAE,aAAa,EAC3D,WAAW,EAAE,SAAS,EAAE,SAAS;CAAC;CAAY;CAAY;AAAE,CAAC,GAAG,EAAE,EACtE,CAAC;AAID,MAAM,qBAAqB,EAAE,SAAS;CAAC;CAAU;CAAW;AAAQ,CAAC;AAE1C,EAAE,SAAS;CAAC;CAAW;CAAY;CAAY;AAAW,CAAC;AAItF,MAAM,0BAA0B,EAAE,KAAKC,sBAA4B;AAEnE,MAAa,qCAAqC,EAAE,aAAa;CAC7D,UAAU,cAAc,UAAU;CAClC,QAAQ,EAAE,KACN,oBACA,EAAE,WAAW,MAAM,kBAAkB,aAAa,EAAE,CACxD;AACJ,CAAC;AAID,MAAM,8BAA8B,EAAE,KAClC,EAAE,SAAS,wBAAwB,GACnC,EAAE,WAAW,WAAW,sBAAsB,cAAc,OAAO,CACvE;AAIA,MAAa,mBAAmB,EAAE,KAC9B,EAAE,OAAO;CACL,IAAI;CACJ,MAAM;CACN,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAChC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAC/B,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAChC,QAAQ;CACR,qBAAqB,EAAE,OAAO;CAC9B,uBAAuB,EAAE,SAAS,EAAE,OAAO,CAAC;CAC5C,eAAe,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CACxC,gBAAgB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CACzC,8BAA8B,EAAE,OAAO;CACvC,oBAAoB;CACpB,kBAAkB,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;CAC/C,WAAW,EAAE,SAAS,eAAe;CACrC,UAAU;AACd,CAAC,GACD,EAAE,WAAW,EAAE,WAAW,GAAG,kBAAkB;CAC3C,GAAG;CACH,WAAW,UAAU,SAAS;CAC9B,aAAa,gBAAgB,SAAS;AAC1C,EAAE,CACN;AAIA,MAAa,yBAAyB,EAAE,OAAO;CAC3C,WAAW;CACX,MAAM;CACN,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CACnC,qBAAqB,EAAE,OAAO;CAC9B,WAAW,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CACpC,aAAa,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AAC9C,CAAC;AAID,MAAa,yBAAyB,EAAE,KACpC,EAAE,OAAO;CACL,IAAI;CACJ,cAAc;CACd,kBAAkB;CAClB,kBAAkB;CAClB,MAAM;CACN,QAAQ,EAAE,KACN,yBACA,EAAE,WAAW,MACT,kBACI,kBAAkB,eAClB,GACA,0BACA,QACJ,CACJ,CACJ;CACA,WAAW;CACX,aAAa;CACb,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAC1C,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAC1C,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CAC1C,gCAAgC,EAAE,OAAO;CACzC,gCAAgC,EAAE,OAAO;CACzC,kBAAkB,EAAE,QAAQ;AAChC,CAAC,GACD,EAAE,WACG,EACG,iBACA,cACA,gCACA,gCACA,GAAG,YACA;CACH,GAAG;CACH;CACA;CACA,4BAA4B;CAC5B,4BAA4B;AAChC,EACJ,CACJ;AAIA,MAAa,gCAAgC,EAAE,aAAa;CACxD,cAAc,cAAc,cAAc;CAC1C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE;CACzD,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;AAC1D,CAAC;AAID,MAAa,gCAAgC,EAAE,OAAO;CAClD,WAAW;CACX,YAAY,EAAE,KACV,EAAE,KAAKC,kBAAwB,GAC/B,EAAE,WAAW,UACT,kBACI,wBAAwB,eACxB,OACA,iCACA,aACJ,CACJ,CACJ;CACA,aAAa,EAAE,KACX,EAAE,KAAKC,mBAAyB,GAChC,EAAE,WAAW,UACT,kBACI,yBAAyB,eACzB,OACA,iCACA,cACJ,CACJ,CACJ;CACA,QAAQ,EAAE,KACN,EAAE,KAAKC,mBAAyB,GAChC,EAAE,WAAW,UACT,kBACI,yBAAyB,eACzB,OACA,iCACA,QACJ,CACJ,CACJ;CACA,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;CACzB,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;CAChC,gBAAgB;CAChB,aAAa,EAAE,KACX,EAAE,OAAO,GACT,EAAE,WAAW,MAAM,KAAK,MAAM,CAAC,CAAC,CACpC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"subaccounts.schemas.js","names":["v","Proto.SubaccountRole","Proto.SubaccountInviteStatus","Proto.ActivityEntityKind","Proto.ActivityEventAction","Proto.ActivityEventSource"],"sources":["../../../src/services/subaccounts/subaccounts.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/auth/v1/subaccounts_pb.js\";\nimport * as v from \"../../shared/validation.js\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampSchema,\n idInputSchema,\n positiveBigintStringInputSchema,\n} from \"../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../utils/time.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n SubaccountRoleCodec,\n InviteActionCodec,\n InviteStatusCodec,\n SubaccountStatusCodec,\n SUBACCOUNT_STATUS_VALUES,\n ActivityEntityKindCodec,\n ActivityEventActionCodec,\n ActivityEventSourceCodec,\n} from \"./subaccounts.codecs.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../utils/proto-patch.js\";\n\nconst SUBACCOUNT_ROLE_VALUES = [\n \"owner\",\n \"admin\",\n \"treasury\",\n \"leveraged_trader\",\n \"trader\",\n \"viewer\",\n] as const;\n\nexport const SubaccountRoleSchema = v.picklist(SUBACCOUNT_ROLE_VALUES);\n\nexport type SubaccountRole = v.InferOutput<typeof SubaccountRoleSchema>;\n\nconst ProtoSubaccountRoleSchema = v.pipe(\n v.enum(Proto.SubaccountRole),\n v.transform((role) =>\n requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, \"SubaccountRoleSchema\", \"role\"),\n ),\n);\n\nexport const CreateSubaccountInputSchema = v.strictObject({\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n nonce: v.string(),\n signature: v.string(),\n primaryWalletAddress: v.optional(v.string(), \"\"),\n walletProvider: v.optional(v.string(), \"\"),\n});\n\nexport type CreateSubaccountInput = v.InferInput<typeof CreateSubaccountInputSchema>;\n\nexport const SubaccountIdInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n});\n\nexport type SubaccountIdInput = v.InferInput<typeof SubaccountIdInputSchema>;\n\nexport const CreateSubaccountResultSchema = v.object({\n subaccountId: PublicIdSchema,\n totalCreated: v.number(),\n smartAccountSaltNonce: v.number(),\n revision: BigIntStringSchema,\n});\n\nexport type CreateSubaccountResult = v.InferOutput<typeof CreateSubaccountResultSchema>;\n\nexport const SubaccountMutationResultSchema = v.object({});\n\nexport type SubaccountMutationResult = v.InferOutput<typeof SubaccountMutationResultSchema>;\n\ntype SubaccountPatch = {\n label?: string;\n icon?: string;\n color?: string;\n status?: (typeof SUBACCOUNT_STATUS_VALUES)[number];\n};\n\nconst SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields<SubaccountPatch>()({\n label: { path: \"label\", encode: (label) => ({ label }) },\n icon: { path: \"icon\", encode: (icon) => ({ icon }) },\n color: { path: \"color\", encode: (color) => ({ color }) },\n status: {\n path: \"status\",\n encode: (status) => ({ status: SubaccountStatusCodec.inputToProto[status] }),\n },\n});\n\nexport const UpdateSubaccountInputSchema = v.pipe(\n v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n label: v.optional(v.string()),\n icon: v.optional(v.string()),\n color: v.optional(v.string()),\n status: v.optional(v.picklist(SUBACCOUNT_STATUS_VALUES)),\n }),\n v.check(\n ({ label, icon, color, status }) =>\n label !== undefined ||\n icon !== undefined ||\n color !== undefined ||\n status !== undefined,\n \"At least one subaccount field must be provided\",\n ),\n v.transform(({ subaccountId, expectedRevision, ...input }) => {\n const { patch: subaccount, updateMask } = buildProtoPatch(input, SUBACCOUNT_PATCH_FIELDS);\n return {\n subaccountId,\n subaccount,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type UpdateSubaccountInput = v.InferInput<typeof UpdateSubaccountInputSchema>;\n\nexport const DeleteSubaccountInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n});\n\nexport type DeleteSubaccountInput = v.InferInput<typeof DeleteSubaccountInputSchema>;\n\nexport const InviteSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n role: v.pipe(\n SubaccountRoleSchema,\n v.transform((role) => SubaccountRoleCodec.inputToProto[role]),\n ),\n});\n\nexport type InviteSubaccountMemberInput = v.InferInput<typeof InviteSubaccountMemberInputSchema>;\n\nexport const RemoveSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n});\n\nexport type RemoveSubaccountMemberInput = v.InferInput<typeof RemoveSubaccountMemberInputSchema>;\n\nexport const UpdateSubaccountMemberRoleInputSchema = InviteSubaccountMemberInputSchema;\n\nexport type UpdateSubaccountMemberRoleInput = v.InferInput<\n typeof UpdateSubaccountMemberRoleInputSchema\n>;\n\nexport const SetSubaccountMemberMfaRequirementInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n requireMemberMfa: v.boolean(),\n});\n\nexport type SetSubaccountMemberMfaRequirementInput = v.InferInput<\n typeof SetSubaccountMemberMfaRequirementInputSchema\n>;\n\nexport const ListSubaccountInvitesInputSchema = v.strictObject({\n direction: v.optional(v.picklist([\"incoming\", \"outgoing\", \"\"]), \"\"),\n});\n\nexport type ListSubaccountInvitesInput = v.InferInput<typeof ListSubaccountInvitesInputSchema>;\n\nconst InviteActionSchema = v.picklist([\"accept\", \"decline\", \"cancel\"]);\n\nconst InviteStatusSchema = v.picklist([\"pending\", \"accepted\", \"declined\", \"cancelled\"]);\n\nexport type SubaccountInviteStatus = v.InferOutput<typeof InviteStatusSchema>;\n\nconst ProtoInviteStatusSchema = v.enum(Proto.SubaccountInviteStatus);\n\nexport const RespondSubaccountInviteInputSchema = v.strictObject({\n inviteId: idInputSchema(\"inviteId\"),\n action: v.pipe(\n InviteActionSchema,\n v.transform((v) => InviteActionCodec.inputToProto[v]),\n ),\n});\n\nexport type RespondSubaccountInviteInput = v.InferInput<typeof RespondSubaccountInviteInputSchema>;\n\nconst ProtoSubaccountStatusSchema = v.pipe(\n v.picklist(SUBACCOUNT_STATUS_VALUES),\n v.transform((status) => SubaccountStatusCodec.protoToOutput[status]),\n);\n\nexport type SubaccountStatus = v.InferOutput<typeof ProtoSubaccountStatusSchema>;\n\nexport const SubaccountSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n status: ProtoSubaccountStatusSchema,\n smartAccountAddress: v.string(),\n smartAccountSaltNonce: v.optional(v.number()),\n ownerUsername: v.optional(v.string(), \"\"),\n ownerAvatarUrl: v.optional(v.string(), \"\"),\n ownerRootSmartAccountAddress: v.string(),\n subaccountPolicyId: PublicIdSchema,\n requireMemberMfa: v.optional(v.boolean(), false),\n updatedAt: v.optional(TimestampSchema),\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...subaccount }) => ({\n ...subaccount,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type Subaccount = v.InferOutput<typeof SubaccountSchema>;\n\nexport const SubaccountMemberSchema = v.object({\n accountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n username: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n avatarUrl: v.optional(v.string(), \"\"),\n mfaEnrolled: v.optional(v.boolean(), false),\n});\n\nexport type SubaccountMember = v.InferOutput<typeof SubaccountMemberSchema>;\n\nexport const SubaccountInviteSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n subaccountId: PublicIdSchema,\n granteeAccountId: PublicIdSchema,\n inviterAccountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n status: v.pipe(\n ProtoInviteStatusSchema,\n v.transform((v) =>\n requiredEnumLabel(\n InviteStatusCodec.protoToOutput,\n v,\n \"SubaccountInviteSchema\",\n \"status\",\n ),\n ),\n ),\n createdAt: OptionalTimestampMsSchema,\n respondedAt: OptionalTimestampMsSchema,\n granteeUsername: v.optional(v.string(), \"\"),\n inviterUsername: v.optional(v.string(), \"\"),\n subaccountLabel: v.optional(v.string(), \"\"),\n inviterRootSmartAccountAddress: v.string(),\n granteeRootSmartAccountAddress: v.string(),\n requireMemberMfa: v.boolean(),\n }),\n v.transform(\n ({\n subaccountLabel,\n subaccountId,\n inviterRootSmartAccountAddress,\n granteeRootSmartAccountAddress,\n ...rest\n }) => ({\n ...rest,\n subaccountId,\n subaccountLabel,\n inviterSmartAccountAddress: inviterRootSmartAccountAddress,\n granteeSmartAccountAddress: granteeRootSmartAccountAddress,\n }),\n ),\n);\n\nexport type SubaccountInvite = v.InferOutput<typeof SubaccountInviteSchema>;\n\nexport const SubaccountActivityInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n limit: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(200)), 50),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n});\n\nexport type SubaccountActivityInput = v.InferInput<typeof SubaccountActivityInputSchema>;\n\nexport const SubaccountActivityEventSchema = v.object({\n createdAt: OptionalTimestampMsSchema,\n entityKind: v.pipe(\n v.enum(Proto.ActivityEntityKind),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEntityKindCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"entity kind\",\n ),\n ),\n ),\n eventAction: v.pipe(\n v.enum(Proto.ActivityEventAction),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventActionCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"event action\",\n ),\n ),\n ),\n source: v.pipe(\n v.enum(Proto.ActivityEventSource),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventSourceCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"source\",\n ),\n ),\n ),\n ip: v.optional(v.string()),\n userAgent: v.optional(v.string()),\n actorAccountId: PublicIdSchema,\n payloadJson: v.pipe(\n v.string(),\n v.transform((v) => JSON.parse(v)),\n ),\n});\n\nexport type SubaccountEvent = v.InferOutput<typeof SubaccountActivityEventSchema>;\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validation_d_exports } from "../../shared/validation.js";
|
|
1
2
|
import { PolyesterRequestOptions } from "../../shared/request-options.js";
|
|
2
3
|
import { SubaccountResolver } from "../subaccount-resolver.js";
|
|
3
4
|
import { PolyesterRealtime } from "../../realtime/types.js";
|
|
@@ -5,7 +6,6 @@ import { BaseSubscribeInput } from "../../shared/types.js";
|
|
|
5
6
|
import { SdkScales } from "../../shared/decimal-surface.js";
|
|
6
7
|
import { GetUserTradesInputSchema, Trade } from "./trades.schemas.js";
|
|
7
8
|
import { Transport } from "@connectrpc/connect";
|
|
8
|
-
import * as v from "valibot";
|
|
9
9
|
//#region src/services/trades/trades.d.ts
|
|
10
10
|
interface SubscribeTradesInput extends BaseSubscribeInput<Trade> {
|
|
11
11
|
accountId: string;
|
|
@@ -19,7 +19,7 @@ declare class TradesService {
|
|
|
19
19
|
/**
|
|
20
20
|
* Returns user trades for the resolved root account or subaccount, supporting symbol, side, time range, limit, and page token filters. Results include the next page token from GetUserTrades.
|
|
21
21
|
*/
|
|
22
|
-
list(input?:
|
|
22
|
+
list(input?: validation_d_exports.InferInput<typeof GetUserTradesInputSchema>, options?: PolyesterRequestOptions): Promise<{
|
|
23
23
|
trades: Trade[];
|
|
24
24
|
nextPageToken: string;
|
|
25
25
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trades.d.ts","names":[],"sources":["../../../src/services/trades/trades.ts"],"mappings":";;;;;;;;;UAeU,6BAA6B,mBAAmB;EACtD;;;;;cAMS;;EAQL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAYN,KACF,QAAO,
|
|
1
|
+
{"version":3,"file":"trades.d.ts","names":[],"sources":["../../../src/services/trades/trades.ts"],"mappings":";;;;;;;;;UAeU,6BAA6B,mBAAmB;EACtD;;;;;cAMS;;EAQL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAYN,KACF,QAAO,qBAAE,kBAAkB,2BAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAiB9B,UAAU,OAAO"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parse, validation_exports } from "../../shared/validation.js";
|
|
1
2
|
import { toConnectCallOptions } from "../../shared/request-options.js";
|
|
2
3
|
import { removeUndefined } from "../../utils/remove-undefined.js";
|
|
3
4
|
import { resolveAccountScopedInput } from "../subaccount-resolver.js";
|
|
@@ -6,7 +7,6 @@ import { createReadyGate } from "../../shared/decimal-surface.js";
|
|
|
6
7
|
import { OrdersReadService, UserTradeSchema } from "../../gen/orders/v1/orders_read_pb.js";
|
|
7
8
|
import { GetUserTradesInputSchema, createUserTradeSchema } from "./trades.schemas.js";
|
|
8
9
|
import { createClient } from "@connectrpc/connect";
|
|
9
|
-
import * as v from "valibot";
|
|
10
10
|
//#region src/services/trades/trades.ts
|
|
11
11
|
/**
|
|
12
12
|
* Reads and streams authenticated user trade fills.
|
|
@@ -30,10 +30,10 @@ var TradesService = class {
|
|
|
30
30
|
async list(input = {}, options) {
|
|
31
31
|
await this.#scales.ready();
|
|
32
32
|
const resolved = resolveAccountScopedInput(input, this.#resolver);
|
|
33
|
-
const validatedInput =
|
|
33
|
+
const validatedInput = parse(GetUserTradesInputSchema, resolved);
|
|
34
34
|
const res = await this.#client.getUserTrades(removeUndefined(validatedInput), toConnectCallOptions(options));
|
|
35
35
|
return {
|
|
36
|
-
trades:
|
|
36
|
+
trades: parse(validation_exports.array(this.#userTradeSchema), res.trades),
|
|
37
37
|
nextPageToken: res.nextPageToken
|
|
38
38
|
};
|
|
39
39
|
}
|
|
@@ -48,13 +48,13 @@ var TradesService = class {
|
|
|
48
48
|
schema: UserTradeSchema,
|
|
49
49
|
onPublication: (data) => {
|
|
50
50
|
gate.run(() => {
|
|
51
|
-
const trade =
|
|
51
|
+
const trade = parse(this.#userTradeSchema, data);
|
|
52
52
|
input.onEvent(trade);
|
|
53
53
|
});
|
|
54
54
|
},
|
|
55
55
|
onConnected: () => input.onOpen?.(),
|
|
56
56
|
onDisconnected: () => input.onClose?.(),
|
|
57
|
-
onError:
|
|
57
|
+
onError: input.onError
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trades.js","names":["#client","Proto.OrdersReadService","#realtime","#resolver","#scales","#userTradeSchema","Proto.UserTradeSchema"],"sources":["../../../src/services/trades/trades.ts"],"sourcesContent":["import * as Proto from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"
|
|
1
|
+
{"version":3,"file":"trades.js","names":["#client","Proto.OrdersReadService","#realtime","#resolver","#scales","#userTradeSchema","v.parse","v","Proto.UserTradeSchema"],"sources":["../../../src/services/trades/trades.ts"],"sourcesContent":["import * as Proto from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"../../shared/validation.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { GetUserTradesInputSchema, createUserTradeSchema, type Trade } from \"./trades.schemas.js\";\n\ninterface SubscribeTradesInput extends BaseSubscribeInput<Trade> {\n accountId: string;\n}\n\n/**\n * Reads and streams authenticated user trade fills.\n */\nexport class TradesService {\n #client: Client<typeof Proto.OrdersReadService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #userTradeSchema: ReturnType<typeof createUserTradeSchema>;\n\n constructor(\n transport: Transport,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.OrdersReadService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#userTradeSchema = createUserTradeSchema(scales);\n }\n\n /**\n * Returns user trades for the resolved root account or subaccount, supporting symbol, side, time range, limit, and page token filters. Results include the next page token from GetUserTrades.\n */\n async list(\n input: v.InferInput<typeof GetUserTradesInputSchema> = {},\n options?: PolyesterRequestOptions,\n ): Promise<{ trades: Trade[]; nextPageToken: string }> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = v.parse(GetUserTradesInputSchema, resolved);\n const res = await this.#client.getUserTrades(\n removeUndefined(validatedInput),\n toConnectCallOptions(options),\n );\n return {\n trades: v.parse(v.array(this.#userTradeSchema), res.trades),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Subscribes to private user trade updates on private:spot:trades:{accountId}:proto and emits parsed fills.\n */\n subscribe(input: SubscribeTradesInput) {\n const channel = `private:spot:trades:${input.accountId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.UserTradeSchema,\n onPublication: (data) => {\n gate.run(() => {\n const trade = v.parse(this.#userTradeSchema, data);\n input.onEvent(trade);\n });\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CACA;CACA;CAEA,YACI,WACA,UACA,UACA,QACF;EACE,KAAKA,UAAU,aAAaC,mBAAyB,SAAS;EAC9D,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,mBAAmB,sBAAsB,MAAM;CACxD;;;;CAKA,MAAM,KACF,QAAuD,CAAC,GACxD,SACmD;EACnD,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,iBAAiBG,MAAQ,0BAA0B,QAAQ;EACjE,MAAM,MAAM,MAAM,KAAKN,QAAQ,cAC3B,gBAAgB,cAAc,GAC9B,qBAAqB,OAAO,CAChC;EACA,OAAO;GACH,QAAQM,MAAQC,mBAAE,MAAM,KAAKF,gBAAgB,GAAG,IAAI,MAAM;GAC1D,eAAe,IAAI;EACvB;CACJ;;;;CAKA,UAAU,OAA6B;EACnC,MAAM,UAAU,uBAAuB,MAAM,UAAU;EACvD,MAAM,OAAO,sBACH,KAAKD,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKF,UAAU,oBAAoB;GACtC;GACA,QAAQM;GACR,gBAAgB,SAAS;IACrB,KAAK,UAAU;KACX,MAAM,QAAQF,MAAQ,KAAKD,kBAAkB,IAAI;KACjD,MAAM,QAAQ,KAAK;IACvB,CAAC;GACL;GACA,mBAAmB,MAAM,SAAS;GAClC,sBAAsB,MAAM,UAAU;GACtC,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
+
import { validation_d_exports } from "../../shared/validation.js";
|
|
1
2
|
import { Side } from "../../gen/orders/v1/orders_pb.js";
|
|
2
3
|
import { SdkScales } from "../../shared/decimal-surface.js";
|
|
3
|
-
import * as v from "valibot";
|
|
4
4
|
//#region src/services/trades/trades.schemas.d.ts
|
|
5
5
|
/** Parses a generated user-trade fill into the SDK's JSON-safe public shape. */
|
|
6
|
-
declare function createUserTradeSchema(scales: SdkScales):
|
|
7
|
-
readonly orderId:
|
|
8
|
-
readonly symbolId:
|
|
9
|
-
readonly side:
|
|
10
|
-
readonly isMaker:
|
|
11
|
-
readonly feeAsset:
|
|
12
|
-
readonly qtyScaled:
|
|
13
|
-
readonly priceTicks:
|
|
14
|
-
readonly feeAmountE18:
|
|
15
|
-
readonly hi:
|
|
16
|
-
readonly lo:
|
|
6
|
+
declare function createUserTradeSchema(scales: SdkScales): validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ObjectSchema<{
|
|
7
|
+
readonly orderId: validation_d_exports.BigintSchema<undefined>;
|
|
8
|
+
readonly symbolId: validation_d_exports.NumberSchema<undefined>;
|
|
9
|
+
readonly side: validation_d_exports.NumberSchema<undefined>;
|
|
10
|
+
readonly isMaker: validation_d_exports.BooleanSchema<undefined>;
|
|
11
|
+
readonly feeAsset: validation_d_exports.NumberSchema<undefined>;
|
|
12
|
+
readonly qtyScaled: validation_d_exports.BigintSchema<undefined>;
|
|
13
|
+
readonly priceTicks: validation_d_exports.BigintSchema<undefined>;
|
|
14
|
+
readonly feeAmountE18: validation_d_exports.OptionalSchema<validation_d_exports.ObjectSchema<{
|
|
15
|
+
readonly hi: validation_d_exports.BigintSchema<undefined>;
|
|
16
|
+
readonly lo: validation_d_exports.BigintSchema<undefined>;
|
|
17
17
|
}, undefined>, undefined>;
|
|
18
|
-
readonly referralShareAmountE18:
|
|
19
|
-
readonly hi:
|
|
20
|
-
readonly lo:
|
|
18
|
+
readonly referralShareAmountE18: validation_d_exports.OptionalSchema<validation_d_exports.ObjectSchema<{
|
|
19
|
+
readonly hi: validation_d_exports.BigintSchema<undefined>;
|
|
20
|
+
readonly lo: validation_d_exports.BigintSchema<undefined>;
|
|
21
21
|
}, undefined>, undefined>;
|
|
22
|
-
readonly feeIsRebate:
|
|
23
|
-
readonly tsNs:
|
|
24
|
-
readonly matchId:
|
|
25
|
-
}, undefined>,
|
|
22
|
+
readonly feeIsRebate: validation_d_exports.BooleanSchema<undefined>;
|
|
23
|
+
readonly tsNs: validation_d_exports.BigintSchema<undefined>;
|
|
24
|
+
readonly matchId: validation_d_exports.BigintSchema<undefined>;
|
|
25
|
+
}, undefined>, validation_d_exports.TransformAction<{
|
|
26
26
|
orderId: bigint;
|
|
27
27
|
symbolId: number;
|
|
28
28
|
side: number;
|
|
@@ -58,19 +58,19 @@ declare function createUserTradeSchema(scales: SdkScales): v.SchemaWithPipe<read
|
|
|
58
58
|
fee: string;
|
|
59
59
|
}>]>;
|
|
60
60
|
/** A JSON-safe authenticated trade fill returned by the SDK. */
|
|
61
|
-
type Trade =
|
|
61
|
+
type Trade = validation_d_exports.InferOutput<ReturnType<typeof createUserTradeSchema>>;
|
|
62
62
|
/** Validates filters accepted by {@link TradesService.list}. */
|
|
63
|
-
declare const GetUserTradesInputSchema:
|
|
64
|
-
readonly symbolId:
|
|
65
|
-
readonly side:
|
|
66
|
-
readonly startTsNs:
|
|
67
|
-
readonly endTsNs:
|
|
68
|
-
readonly limit:
|
|
69
|
-
readonly pageToken:
|
|
70
|
-
readonly account:
|
|
71
|
-
readonly subaccountId:
|
|
63
|
+
declare const GetUserTradesInputSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StrictObjectSchema<{
|
|
64
|
+
readonly symbolId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>, validation_d_exports.TransformAction<string | undefined, number | undefined>]>;
|
|
65
|
+
readonly side: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.PicklistSchema<["buy", "sell"], undefined>, undefined>, validation_d_exports.TransformAction<"buy" | "sell" | undefined, Side.BUY | Side.SELL | undefined>]>;
|
|
66
|
+
readonly startTsNs: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>, validation_d_exports.TransformAction<string | undefined, bigint | undefined>]>;
|
|
67
|
+
readonly endTsNs: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>, validation_d_exports.TransformAction<string | undefined, bigint | undefined>]>;
|
|
68
|
+
readonly limit: validation_d_exports.OptionalSchema<validation_d_exports.NumberSchema<undefined>, undefined>;
|
|
69
|
+
readonly pageToken: validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>;
|
|
70
|
+
readonly account: validation_d_exports.OptionalSchema<validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
|
|
71
|
+
readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
|
|
72
72
|
}, undefined>], undefined>, undefined>;
|
|
73
|
-
}, undefined>,
|
|
73
|
+
}, undefined>, validation_d_exports.TransformAction<{
|
|
74
74
|
symbolId?: number | undefined;
|
|
75
75
|
side?: Side.BUY | Side.SELL | undefined;
|
|
76
76
|
startTsNs?: bigint | undefined;
|
|
@@ -90,7 +90,7 @@ declare const GetUserTradesInputSchema: v.SchemaWithPipe<readonly [v.StrictObjec
|
|
|
90
90
|
pageToken?: string | undefined;
|
|
91
91
|
}>]>;
|
|
92
92
|
/** Filters accepted by {@link TradesService.list}. */
|
|
93
|
-
type GetUserTradesInput =
|
|
93
|
+
type GetUserTradesInput = validation_d_exports.InferInput<typeof GetUserTradesInputSchema>;
|
|
94
94
|
//#endregion
|
|
95
95
|
export { GetUserTradesInput, GetUserTradesInputSchema, Trade, createUserTradeSchema };
|
|
96
96
|
//# sourceMappingURL=trades.schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trades.schemas.d.ts","names":[],"sources":["../../../src/services/trades/trades.schemas.ts"],"mappings":";;;;;iBAqBgB,sBAAsB,QAAQ,YAAS,
|
|
1
|
+
{"version":3,"file":"trades.schemas.d.ts","names":[],"sources":["../../../src/services/trades/trades.schemas.ts"],"mappings":";;;;;iBAqBgB,sBAAsB,QAAQ,YAAS,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwD3C,QAAQ,qBAAE,YAAY,kBAAkB;;cAGvC,0BAAwB,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BzB,qBAAqB,qBAAE,kBAAkB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validation_exports } from "../../shared/validation.js";
|
|
1
2
|
import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
|
|
2
3
|
import { formatId } from "../../utils/base58-id.js";
|
|
3
4
|
import { tsNsToISO, tsNsToMs } from "../../utils/time.js";
|
|
@@ -8,28 +9,27 @@ import { SideSchema } from "../shared.js";
|
|
|
8
9
|
import { fromU128 } from "../../utils/u128.js";
|
|
9
10
|
import { FeeAssetCodec, OrderSideCodec } from "../orders/order-enums.codecs.js";
|
|
10
11
|
import { TradeSideCodec } from "./trades.codecs.js";
|
|
11
|
-
import * as v from "valibot";
|
|
12
12
|
//#region src/services/trades/trades.schemas.ts
|
|
13
|
-
const U128Schema =
|
|
14
|
-
hi:
|
|
15
|
-
lo:
|
|
13
|
+
const U128Schema = validation_exports.object({
|
|
14
|
+
hi: validation_exports.bigint(),
|
|
15
|
+
lo: validation_exports.bigint()
|
|
16
16
|
});
|
|
17
17
|
/** Parses a generated user-trade fill into the SDK's JSON-safe public shape. */
|
|
18
18
|
function createUserTradeSchema(scales) {
|
|
19
|
-
return
|
|
20
|
-
orderId:
|
|
21
|
-
symbolId:
|
|
22
|
-
side:
|
|
23
|
-
isMaker:
|
|
24
|
-
feeAsset:
|
|
25
|
-
qtyScaled:
|
|
26
|
-
priceTicks:
|
|
27
|
-
feeAmountE18:
|
|
28
|
-
referralShareAmountE18:
|
|
29
|
-
feeIsRebate:
|
|
30
|
-
tsNs:
|
|
31
|
-
matchId:
|
|
32
|
-
}),
|
|
19
|
+
return validation_exports.pipe(validation_exports.object({
|
|
20
|
+
orderId: validation_exports.bigint(),
|
|
21
|
+
symbolId: validation_exports.number(),
|
|
22
|
+
side: validation_exports.number(),
|
|
23
|
+
isMaker: validation_exports.boolean(),
|
|
24
|
+
feeAsset: validation_exports.number(),
|
|
25
|
+
qtyScaled: validation_exports.bigint(),
|
|
26
|
+
priceTicks: validation_exports.bigint(),
|
|
27
|
+
feeAmountE18: validation_exports.optional(U128Schema),
|
|
28
|
+
referralShareAmountE18: validation_exports.optional(U128Schema),
|
|
29
|
+
feeIsRebate: validation_exports.boolean(),
|
|
30
|
+
tsNs: validation_exports.bigint(),
|
|
31
|
+
matchId: validation_exports.bigint()
|
|
32
|
+
}), validation_exports.transform((t) => {
|
|
33
33
|
const feeAsset = requiredEnumLabel(FeeAssetCodec.protoToOutput, t.feeAsset, "UserTradeSchema", "fee asset");
|
|
34
34
|
return {
|
|
35
35
|
orderId: formatId(t.orderId),
|
|
@@ -50,19 +50,19 @@ function createUserTradeSchema(scales) {
|
|
|
50
50
|
}));
|
|
51
51
|
}
|
|
52
52
|
/** Validates filters accepted by {@link TradesService.list}. */
|
|
53
|
-
const GetUserTradesInputSchema =
|
|
53
|
+
const GetUserTradesInputSchema = validation_exports.pipe(validation_exports.strictObject({
|
|
54
54
|
...AccountScopeInputEntries,
|
|
55
|
-
symbolId:
|
|
55
|
+
symbolId: validation_exports.pipe(validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim())), validation_exports.transform((v) => {
|
|
56
56
|
if (!v) return void 0;
|
|
57
57
|
const sid = Number(v);
|
|
58
58
|
return Number.isFinite(sid) && sid > 0 ? sid : void 0;
|
|
59
59
|
})),
|
|
60
|
-
side:
|
|
60
|
+
side: validation_exports.pipe(validation_exports.optional(SideSchema), validation_exports.transform((v) => v ? TradeSideCodec.inputToProto[v] : void 0)),
|
|
61
61
|
startTsNs: optionalUint64DecimalFilterSchema("startTsNs"),
|
|
62
62
|
endTsNs: optionalUint64DecimalFilterSchema("endTsNs"),
|
|
63
|
-
limit:
|
|
64
|
-
pageToken:
|
|
65
|
-
}),
|
|
63
|
+
limit: validation_exports.optional(validation_exports.number()),
|
|
64
|
+
pageToken: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim()))
|
|
65
|
+
}), validation_exports.transform(({ account, ...input }) => ({
|
|
66
66
|
...input,
|
|
67
67
|
subaccountId: accountScopeToSubaccountId(account)
|
|
68
68
|
})));
|