@polyester/sdk 0.24.0 → 0.25.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 +20 -0
- package/README.md +18 -12
- package/dist/account-signer/create-polyester-account-signer.d.ts +9 -5
- package/dist/account-signer/create-polyester-account-signer.d.ts.map +1 -1
- package/dist/account-signer/create-polyester-account-signer.js +9 -5
- package/dist/account-signer/create-polyester-account-signer.js.map +1 -1
- package/dist/account-signer/types.d.ts +10 -4
- package/dist/account-signer/types.d.ts.map +1 -1
- package/dist/account-signer/types.js.map +1 -1
- package/dist/core-client.d.ts +3 -0
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +23 -45
- package/dist/core-client.js.map +1 -1
- package/dist/gen/auth/v1/auth_pb.d.ts +7 -4
- package/dist/gen/auth/v1/auth_pb.d.ts.map +1 -1
- package/dist/gen/auth/v1/auth_pb.js.map +1 -1
- package/dist/gen/claims/v1/claims_pb.d.ts +313 -0
- package/dist/gen/claims/v1/claims_pb.d.ts.map +1 -0
- package/dist/gen/claims/v1/claims_pb.js +135 -0
- package/dist/gen/claims/v1/claims_pb.js.map +1 -0
- package/dist/gen/index.d.ts +2 -1
- package/dist/gen/index.js +2 -1
- package/dist/gen/orders/v1/orders_pb.d.ts +50 -3
- package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_pb.js +55 -43
- package/dist/gen/orders/v1/orders_pb.js.map +1 -1
- package/dist/gen/orders/v1/orders_read_pb.d.ts +10 -0
- package/dist/gen/orders/v1/orders_read_pb.d.ts.map +1 -1
- package/dist/gen/orders/v1/orders_read_pb.js +3 -1
- package/dist/gen/orders/v1/orders_read_pb.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/realtime/client.js +45 -26
- package/dist/realtime/client.js.map +1 -1
- package/dist/services/accounts/accounts.schemas.d.ts +2 -2
- package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
- package/dist/services/accounts/accounts.schemas.js +3 -3
- package/dist/services/accounts/accounts.schemas.js.map +1 -1
- package/dist/services/address-book/address-book.schemas.d.ts +67 -68
- package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
- package/dist/services/address-book/address-book.schemas.js +11 -13
- package/dist/services/address-book/address-book.schemas.js.map +1 -1
- package/dist/services/api-keys/api-keys.schemas.d.ts +1 -2
- package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -1
- package/dist/services/api-keys/api-keys.schemas.js +4 -9
- package/dist/services/api-keys/api-keys.schemas.js.map +1 -1
- package/dist/services/auth/account-signer-auth.js +1 -1
- package/dist/services/auth/account-signer-auth.js.map +1 -1
- package/dist/services/auth/auth.d.ts +2 -3
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +4 -2
- package/dist/services/auth/auth.js.map +1 -1
- package/dist/services/balances/balances.schemas.d.ts +3 -3
- package/dist/services/balances/balances.schemas.d.ts.map +1 -1
- package/dist/services/balances/balances.schemas.js +7 -12
- package/dist/services/balances/balances.schemas.js.map +1 -1
- package/dist/services/candles/candles.schemas.d.ts +3 -3
- package/dist/services/candles/candles.schemas.d.ts.map +1 -1
- package/dist/services/candles/candles.schemas.js +5 -6
- package/dist/services/candles/candles.schemas.js.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +3 -3
- package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.schemas.js +2 -3
- package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
- package/dist/services/claims/claims.codecs.d.ts +8 -0
- package/dist/services/claims/claims.codecs.d.ts.map +1 -0
- package/dist/services/claims/claims.codecs.js +17 -0
- package/dist/services/claims/claims.codecs.js.map +1 -0
- package/dist/services/claims/claims.d.ts +19 -0
- package/dist/services/claims/claims.d.ts.map +1 -0
- package/dist/services/claims/claims.js +30 -0
- package/dist/services/claims/claims.js.map +1 -0
- package/dist/services/claims/claims.schemas.d.ts +122 -0
- package/dist/services/claims/claims.schemas.d.ts.map +1 -0
- package/dist/services/claims/claims.schemas.js +47 -0
- package/dist/services/claims/claims.schemas.js.map +1 -0
- package/dist/services/claims/claims.types.d.ts +3 -0
- package/dist/services/claims/index.d.ts +5 -0
- package/dist/services/heatmap/heatmap.schemas.d.ts +4 -4
- package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.js +10 -10
- package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.schemas.js +1 -5
- package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +90 -90
- package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.js +10 -11
- package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.js +3 -3
- package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
- package/dist/services/mfa/mfa.schemas.d.ts +11 -11
- package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
- package/dist/services/mfa/mfa.schemas.js +4 -5
- package/dist/services/mfa/mfa.schemas.js.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
- package/dist/services/orders/order-enums.codecs.js +2 -1
- package/dist/services/orders/order-enums.codecs.js.map +1 -1
- package/dist/services/orders/order-errors.schemas.d.ts +4 -5
- package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +110 -32
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +9 -10
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders-input.schemas.d.ts +111 -8
- package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-input.schemas.js +20 -4
- package/dist/services/orders/orders-input.schemas.js.map +1 -1
- package/dist/services/orders/orders-modify.schemas.d.ts +2 -2
- package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-modify.schemas.js +3 -3
- package/dist/services/orders/orders-modify.schemas.js.map +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +48 -32
- package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-output.schemas.js +16 -16
- package/dist/services/orders/orders-output.schemas.js.map +1 -1
- package/dist/services/orders/orders-risk.schemas.d.ts +0 -1
- package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-risk.schemas.js +4 -4
- package/dist/services/orders/orders-risk.schemas.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +4 -4
- package/dist/services/policies/shared.codecs.js +3 -3
- package/dist/services/policies/shared.codecs.js.map +1 -1
- package/dist/services/policies/shared.d.ts +0 -1
- package/dist/services/policies/shared.d.ts.map +1 -1
- package/dist/services/policies/shared.js +2 -3
- package/dist/services/policies/shared.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +2 -2
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +2 -5
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
- package/dist/services/rate-limits/rate-limits.schemas.d.ts +6 -7
- package/dist/services/rate-limits/rate-limits.schemas.d.ts.map +1 -1
- package/dist/services/rate-limits/rate-limits.schemas.js +2 -3
- package/dist/services/rate-limits/rate-limits.schemas.js.map +1 -1
- package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
- package/dist/services/social-verification/social-verification.schemas.js +4 -4
- package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +23 -24
- package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.js +10 -12
- package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
- package/dist/services/trades/trades.schemas.d.ts +1 -1
- package/dist/services/trades/trades.schemas.d.ts.map +1 -1
- package/dist/services/trades/trades.schemas.js +4 -8
- package/dist/services/trades/trades.schemas.js.map +1 -1
- package/dist/services/transfers/transfers.schemas.d.ts +3 -4
- package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
- package/dist/services/transfers/transfers.schemas.js +5 -10
- package/dist/services/transfers/transfers.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.d.ts +2 -2
- package/dist/services/triggers/triggers-output.schemas.d.ts +56 -58
- package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.js +34 -36
- package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
- package/dist/services/whiteboard/whiteboard.schemas.d.ts +42 -42
- package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -1
- package/dist/services/whiteboard/whiteboard.schemas.js +9 -10
- package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -1
- package/dist/shared/proto-enum-codec.js +11 -6
- package/dist/shared/proto-enum-codec.js.map +1 -1
- package/dist/shared/rate-limit.schemas.d.ts +4 -5
- package/dist/shared/rate-limit.schemas.d.ts.map +1 -1
- package/dist/shared/rate-limit.schemas.js +41 -46
- package/dist/shared/rate-limit.schemas.js.map +1 -1
- package/dist/shared/schemas.js +5 -1
- package/dist/shared/schemas.js.map +1 -1
- package/dist/shared/transports.d.ts +5 -1
- package/dist/shared/transports.d.ts.map +1 -1
- package/dist/shared/transports.js.map +1 -1
- package/dist/utils/timestamp.js +8 -1
- package/dist/utils/timestamp.js.map +1 -1
- package/dist/wired-services.d.ts.map +1 -1
- package/dist/wired-services.js +2 -0
- package/dist/wired-services.js.map +1 -1
- package/package.json +1 -1
|
@@ -75,7 +75,7 @@ declare const BalanceHistoryInputSchema: v.SchemaWithPipe<readonly [v.StrictObje
|
|
|
75
75
|
}>]>;
|
|
76
76
|
type BalanceHistoryInput = v.InferInput<typeof BalanceHistoryInputSchema>;
|
|
77
77
|
declare function createBalanceHistoryResponseSchema(): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
78
|
-
readonly range: v.SchemaWithPipe<readonly [v.
|
|
78
|
+
readonly range: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "1d" | "7d" | "30d" | "90d" | "180d" | "365d">]>;
|
|
79
79
|
readonly bucket: v.StringSchema<undefined>;
|
|
80
80
|
readonly startTsSec: v.NumberSchema<undefined>;
|
|
81
81
|
readonly endTsSec: v.NumberSchema<undefined>;
|
|
@@ -190,7 +190,7 @@ declare const EquitySeriesSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
|
190
190
|
equity: string[];
|
|
191
191
|
}>]>;
|
|
192
192
|
declare function createEquityHistoryResponseSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
193
|
-
readonly range: v.SchemaWithPipe<readonly [v.
|
|
193
|
+
readonly range: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "1d" | "7d" | "30d" | "90d" | "180d" | "365d">]>;
|
|
194
194
|
readonly bucket: v.StringSchema<undefined>;
|
|
195
195
|
readonly startTsSec: v.NumberSchema<undefined>;
|
|
196
196
|
readonly endTsSec: v.NumberSchema<undefined>;
|
|
@@ -302,7 +302,7 @@ declare const PortfolioEquitySeriesSchema: v.SchemaWithPipe<readonly [v.ObjectSc
|
|
|
302
302
|
equity: string[];
|
|
303
303
|
}>]>;
|
|
304
304
|
declare function createPortfolioEquityHistoryResponseSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
305
|
-
readonly range: v.SchemaWithPipe<readonly [v.
|
|
305
|
+
readonly range: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "1d" | "7d" | "30d" | "90d" | "180d" | "365d">]>;
|
|
306
306
|
readonly bucket: v.StringSchema<undefined>;
|
|
307
307
|
readonly startTsSec: v.NumberSchema<undefined>;
|
|
308
308
|
readonly endTsSec: v.NumberSchema<undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.schemas.d.ts","names":[],"sources":["../../../src/services/balances/balances.schemas.ts"],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"balances.schemas.d.ts","names":[],"sources":["../../../src/services/balances/balances.schemas.ts"],"mappings":";;;;;;;;;;;;;iBAkCgB,6BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+B7B,gBAAgB,EAAE,YAAY,kBAAkB;cAQ/C,oBAAkB,EAAA;KAEnB,eAAe,EAAE,mBAAmB;cASnC,qBAAmB,EAAA;KAEpB,gBAAgB,EAAE,mBAAmB;cAEpC,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;KAwB1B,sBAAsB,EAAE,kBAAkB;iBAQtC,sCAAkC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BtC,yBAAyB,EAAE,YACnC,kBAAkB;cAGT,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;KAwBzB,qBAAqB,EAAE,kBAAkB;cAExC,mCAAiC,EAAA;;;KAIlC,8BAA8B,EAAE,kBAAkB;KAmBlD;EAEF;EACA,aAAa,YAAY;EACzB;;EAGA;EACA;EACA;;cAGG,oBAAkB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKO,UAAA;EAA8B;;iBA2BpD,kCAAkC,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA3B7B,UAAA;IAA8B;;;;;;;;;;;IAA9B,UAAA;IAA8B;;;;;;;;;;;IAA9B,UAAA;IAA8B;;;;KAqDxD,eAAe,EAAE,mBAAmB;KACpC,wBAAwB,EAAE,YAClC,kBAAkB;KAcV;EACJ;EAA0B;EAAmB;;EAC7C;EAA0B;EAAmB;;cAExC,6BAA2B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAQF,UAAA;EAAuC;;iBAY7D,2CAA2C,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAZtC,UAAA;IAAuC;;;;;;;;;;;IAAvC,UAAA;IAAuC;;;;;;;;;;;IAAvC,UAAA;IAAuC;;;;KAqCjE,wBAAwB,EAAE,mBAAmB;KAC7C,iCAAiC,EAAE,YAC3C,kBAAkB;iBA6BN,4CAA4C,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmBjE,kCAAkC,EAAE,YAC5C,kBAAkB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { PublicIdSchema } from "../../shared/schemas.js";
|
|
1
|
+
import { enumLabel, enumLabelSchema } from "../../shared/proto-enum-codec.js";
|
|
2
|
+
import { PublicIdSchema, U128Schema } from "../../shared/schemas.js";
|
|
4
3
|
import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
|
|
5
4
|
import { scaledToDecimalOutput } from "../../shared/decimal-surface.js";
|
|
6
5
|
import { fromU128 } from "../../utils/u128.js";
|
|
@@ -18,10 +17,6 @@ const EQUITY_SCALE = 4;
|
|
|
18
17
|
* asset units scaled by 1e7"), unlike live ledger balances which use E18.
|
|
19
18
|
*/
|
|
20
19
|
const BALANCE_HISTORY_SCALE = 7;
|
|
21
|
-
const U128Schema = v.object({
|
|
22
|
-
hi: v.bigint(),
|
|
23
|
-
lo: v.bigint()
|
|
24
|
-
});
|
|
25
20
|
/**
|
|
26
21
|
* AssetBalance u128 fields on the ledger wire are always 18-decimal scaled
|
|
27
22
|
* (PolyesterChain base units), independent of per-asset quantityScale used
|
|
@@ -77,7 +72,7 @@ const BalanceSeriesSchema = v.object({
|
|
|
77
72
|
});
|
|
78
73
|
function createBalanceHistoryResponseSchema() {
|
|
79
74
|
return v.pipe(v.object({
|
|
80
|
-
range:
|
|
75
|
+
range: enumLabelSchema(BalanceRangeCodec.protoToOutput),
|
|
81
76
|
bucket: v.string(),
|
|
82
77
|
startTsSec: v.number(),
|
|
83
78
|
endTsSec: v.number(),
|
|
@@ -92,7 +87,7 @@ function createBalanceHistoryResponseSchema() {
|
|
|
92
87
|
series: data.series.map((s) => {
|
|
93
88
|
return {
|
|
94
89
|
assetId: s.assetId,
|
|
95
|
-
accountCode:
|
|
90
|
+
accountCode: enumLabel(AccountCodeCodec.protoToOutput, s.accountCode),
|
|
96
91
|
balance: s.balanceQ.map((b) => scaledToDecimalOutput(b, BALANCE_HISTORY_SCALE))
|
|
97
92
|
};
|
|
98
93
|
})
|
|
@@ -129,7 +124,7 @@ const EquitySeriesSchema = v.pipe(v.object({
|
|
|
129
124
|
if (series.grouping.case === "account") return {
|
|
130
125
|
grouping: {
|
|
131
126
|
type: "account",
|
|
132
|
-
accountCode:
|
|
127
|
+
accountCode: enumLabel(AccountCodeCodec.protoToOutput, series.grouping.value.accountCode),
|
|
133
128
|
name: series.grouping.value.name
|
|
134
129
|
},
|
|
135
130
|
equity
|
|
@@ -145,7 +140,7 @@ const EquitySeriesSchema = v.pipe(v.object({
|
|
|
145
140
|
}));
|
|
146
141
|
function createEquityHistoryResponseSchema(scales) {
|
|
147
142
|
return v.pipe(v.object({
|
|
148
|
-
range:
|
|
143
|
+
range: enumLabelSchema(BalanceRangeCodec.protoToOutput),
|
|
149
144
|
bucket: v.string(),
|
|
150
145
|
startTsSec: v.number(),
|
|
151
146
|
endTsSec: v.number(),
|
|
@@ -190,7 +185,7 @@ const PortfolioEquitySeriesSchema = v.pipe(v.object({
|
|
|
190
185
|
})));
|
|
191
186
|
function createPortfolioEquityHistoryResponseSchema(scales) {
|
|
192
187
|
return v.pipe(v.object({
|
|
193
|
-
range:
|
|
188
|
+
range: enumLabelSchema(BalanceRangeCodec.protoToOutput),
|
|
194
189
|
bucket: v.string(),
|
|
195
190
|
startTsSec: v.number(),
|
|
196
191
|
endTsSec: v.number(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.schemas.js","names":["Proto.BalanceRange"],"sources":["../../../src/services/balances/balances.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { fromU128 } from \"../../utils/u128.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport type { DecodedEnum } from \"../../utils/types.js\";\nimport * as Proto from \"../../gen/ledger/read/v1/ledger_read_pb.js\";\nimport {\n AccountCodeCodec,\n ACCOUNT_CODE_VALUES,\n type AccountCodeValue,\n} from \"../../shared/ledger-codes.js\";\nimport { E18_SCALE, scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { BalanceRangeCodec, EquityGroupByCodec } from \"./balances.codecs.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { PublicIdSchema } from \"../../shared/schemas.js\";\n\n/**\n * Equity history values are quoted in the response's quote currency at a fixed\n * 4-decimal wire scale (proto: \"Equity in quote currency scaled by 1e4\").\n */\nconst EQUITY_SCALE = 4;\n\n/**\n * Balance history buckets use a fixed 7-decimal scale (proto: \"balance in\n * asset units scaled by 1e7\"), unlike live ledger balances which use E18.\n */\nconst BALANCE_HISTORY_SCALE = 7;\n\nconst U128Schema = v.object({\n hi: v.bigint(),\n lo: v.bigint(),\n});\n\n/**\n * AssetBalance u128 fields on the ledger wire are always 18-decimal scaled\n * (PolyesterChain base units), independent of per-asset quantityScale used\n * elsewhere for order quantities and transfer inputs.\n */\nexport function createLedgerBalanceSchema() {\n return v.pipe(\n v.object({\n assetId: v.number(),\n trading: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n funding: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n reserved: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n available: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n tradingRevision: v.pipe(\n v.optional(v.bigint(), 0n),\n v.transform((value) => value.toString()),\n ),\n fundingRevision: v.pipe(\n v.optional(v.bigint(), 0n),\n v.transform((value) => value.toString()),\n ),\n }),\n v.transform((b) => {\n return {\n assetId: b.assetId,\n funding: scaledToDecimalOutput(b.funding ?? 0n, E18_SCALE),\n trading: scaledToDecimalOutput(b.trading ?? 0n, E18_SCALE),\n reserved: scaledToDecimalOutput(b.reserved ?? 0n, E18_SCALE),\n available: scaledToDecimalOutput(b.available ?? 0n, E18_SCALE),\n tradingRevision: b.tradingRevision,\n fundingRevision: b.fundingRevision,\n };\n }),\n );\n}\n\nexport type LedgerBalance = v.InferOutput<ReturnType<typeof createLedgerBalanceSchema>>;\n\nexport const BalancesListInputSchema = v.strictObject(AccountScopeInputEntries);\n\nexport type BalancesListInput = v.InferInput<typeof BalancesListInputSchema>;\n\nexport const BALANCE_RANGES = [\"1d\", \"7d\", \"30d\", \"90d\", \"180d\", \"365d\"] as const;\n\nexport const BalanceRangeSchema = v.picklist(BALANCE_RANGES);\n\nexport type BalanceRange = v.InferOutput<typeof BalanceRangeSchema>;\n\nconst BalanceRangeInputSchema = v.pipe(\n BalanceRangeSchema,\n v.transform((value) => BalanceRangeCodec.inputToProto[value]),\n);\n\nexport const EQUITY_GROUP_BYS = [\"account\", \"asset\"] as const;\n\nexport const EquityGroupBySchema = v.picklist(EQUITY_GROUP_BYS);\n\nexport type EquityGroupBy = v.InferOutput<typeof EquityGroupBySchema>;\n\nexport const BalanceHistoryInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n range: BalanceRangeInputSchema,\n ledger: v.optional(\n v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(4_294_967_295)),\n 0,\n ),\n accountCodes: v.optional(\n v.array(\n v.pipe(\n v.picklist(ACCOUNT_CODE_VALUES),\n v.transform((value) => AccountCodeCodec.inputToProto[value]),\n ),\n ),\n [],\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type BalanceHistoryInput = v.InferInput<typeof BalanceHistoryInputSchema>;\n\nconst BalanceSeriesSchema = v.object({\n assetId: v.number(),\n accountCode: v.enum(AccountCodeCodec.inputToProto),\n balanceQ: v.array(v.bigint()),\n});\n\nexport function createBalanceHistoryResponseSchema() {\n return v.pipe(\n v.object({\n range: v.pipe(\n v.enum(Proto.BalanceRange),\n v.transform((v) =>\n requiredEnumLabel(\n BalanceRangeCodec.protoToOutput,\n v,\n \"BalanceHistoryResponseSchema\",\n \"range\",\n ),\n ),\n ),\n bucket: v.string(),\n startTsSec: v.number(),\n endTsSec: v.number(),\n points: v.number(),\n series: v.array(BalanceSeriesSchema),\n }),\n v.transform((data) => ({\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n points: data.points,\n series: data.series.map((s) => {\n return {\n assetId: s.assetId,\n accountCode: requiredEnumLabel(\n AccountCodeCodec.protoToOutput,\n s.accountCode,\n \"BalanceHistoryResponseSchema\",\n \"account code\",\n ),\n balance: s.balanceQ.map((b) => scaledToDecimalOutput(b, BALANCE_HISTORY_SCALE)),\n };\n }),\n })),\n );\n}\n\nexport type BalanceHistoryResponse = v.InferOutput<\n ReturnType<typeof createBalanceHistoryResponseSchema>\n>;\n\nexport const EquityHistoryInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n range: BalanceRangeInputSchema,\n accountCodes: v.optional(\n v.array(\n v.pipe(\n v.picklist(ACCOUNT_CODE_VALUES),\n v.transform((value) => AccountCodeCodec.inputToProto[value]),\n ),\n ),\n [],\n ),\n groupBy: v.pipe(\n v.optional(EquityGroupBySchema, \"account\"),\n v.transform((v) => EquityGroupByCodec.inputToProto[v ?? \"account\"]),\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type EquityHistoryInput = v.InferInput<typeof EquityHistoryInputSchema>;\n\nexport const PortfolioEquityHistoryInputSchema = v.strictObject({\n range: BalanceRangeInputSchema,\n});\n\nexport type PortfolioEquityHistoryInput = v.InferInput<typeof PortfolioEquityHistoryInputSchema>;\n\nconst EquitySeriesGroupingSchema = v.union([\n v.object({\n case: v.literal(\"account\"),\n value: v.object({\n accountCode: v.enum(AccountCodeCodec.inputToProto),\n name: v.string(),\n }),\n }),\n v.object({\n case: v.literal(\"asset\"),\n value: v.object({\n id: v.number(),\n symbol: v.string(),\n }),\n }),\n]);\n\nexport type EquitySeriesGrouping =\n | {\n type: \"account\";\n accountCode: DecodedEnum<AccountCodeValue>;\n name: string;\n }\n | {\n type: \"asset\";\n assetId: number;\n symbol: string;\n };\n\nexport const EquitySeriesSchema = v.pipe(\n v.object({\n grouping: EquitySeriesGroupingSchema,\n equityQ: v.array(v.bigint()),\n }),\n v.transform((series): { grouping: EquitySeriesGrouping; equity: string[] } => {\n const equity = series.equityQ.map((value) => scaledToDecimalOutput(value, EQUITY_SCALE));\n if (series.grouping.case === \"account\") {\n return {\n grouping: {\n type: \"account\",\n accountCode: requiredEnumLabel(\n AccountCodeCodec.protoToOutput,\n series.grouping.value.accountCode,\n \"EquitySeriesSchema\",\n \"account code\",\n ),\n name: series.grouping.value.name,\n },\n equity,\n };\n }\n\n return {\n grouping: {\n type: \"asset\",\n assetId: series.grouping.value.id,\n symbol: series.grouping.value.symbol,\n },\n equity,\n };\n }),\n);\n\nexport function createEquityHistoryResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n range: v.pipe(\n v.enum(Proto.BalanceRange),\n v.transform((v) =>\n requiredEnumLabel(\n BalanceRangeCodec.protoToOutput,\n v,\n \"EquityHistoryResponseSchema\",\n \"range\",\n ),\n ),\n ),\n bucket: v.string(),\n startTsSec: v.number(),\n endTsSec: v.number(),\n quoteAsset: v.string(),\n points: v.number(),\n series: v.array(EquitySeriesSchema),\n btcPricesQ: v.optional(v.array(v.bigint()), []),\n }),\n v.transform((data) => ({\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n quoteAsset: data.quoteAsset,\n points: data.points,\n series: data.series,\n // BTC price in USDT at each timestamp, carried as price ticks on the wire.\n btcPrices: data.btcPricesQ.map((value) => scaledToDecimalOutput(value, scales.price())),\n })),\n );\n}\n\nexport type EquitySeries = v.InferOutput<typeof EquitySeriesSchema>;\nexport type EquityHistoryResponse = v.InferOutput<\n ReturnType<typeof createEquityHistoryResponseSchema>\n>;\n\nconst PortfolioAccountGroupingSchema = v.variant(\"remaining\", [\n v.object({\n accountId: PublicIdSchema,\n remaining: v.literal(false),\n }),\n v.object({\n accountId: v.optional(v.never()),\n remaining: v.literal(true),\n }),\n]);\n\nexport type PortfolioEquitySeriesGrouping =\n | { type: \"portfolioAccount\"; accountId: string; remaining: false }\n | { type: \"portfolioAccount\"; accountId?: never; remaining: true };\n\nexport const PortfolioEquitySeriesSchema = v.pipe(\n v.object({\n grouping: v.object({\n case: v.literal(\"portfolioAccount\"),\n value: PortfolioAccountGroupingSchema,\n }),\n equityQ: v.array(v.bigint()),\n }),\n v.transform((series): { grouping: PortfolioEquitySeriesGrouping; equity: string[] } => ({\n grouping: series.grouping.value.remaining\n ? { type: \"portfolioAccount\", remaining: true }\n : {\n type: \"portfolioAccount\",\n accountId: series.grouping.value.accountId,\n remaining: false,\n },\n equity: series.equityQ.map((value) => scaledToDecimalOutput(value, EQUITY_SCALE)),\n })),\n);\n\nexport function createPortfolioEquityHistoryResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n range: v.pipe(\n v.enum(Proto.BalanceRange),\n v.transform((value) =>\n requiredEnumLabel(\n BalanceRangeCodec.protoToOutput,\n value,\n \"PortfolioEquityHistoryResponseSchema\",\n \"range\",\n ),\n ),\n ),\n bucket: v.string(),\n startTsSec: v.number(),\n endTsSec: v.number(),\n quoteAsset: v.string(),\n points: v.number(),\n series: v.array(PortfolioEquitySeriesSchema),\n btcPricesQ: v.optional(v.array(v.bigint()), []),\n }),\n v.transform((data) => ({\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n quoteAsset: data.quoteAsset,\n points: data.points,\n series: data.series,\n btcPrices: data.btcPricesQ.map((value) => scaledToDecimalOutput(value, scales.price())),\n })),\n );\n}\n\nexport type PortfolioEquitySeries = v.InferOutput<typeof PortfolioEquitySeriesSchema>;\nexport type PortfolioEquityHistoryResponse = v.InferOutput<\n ReturnType<typeof createPortfolioEquityHistoryResponseSchema>\n>;\n\nconst PortfolioAccountEquitySchema = v.pipe(\n v.object({\n accountId: PublicIdSchema,\n equityQ: v.bigint(),\n topAssetIds: v.array(v.number()),\n }),\n v.transform((account) => ({\n accountId: account.accountId,\n equity: scaledToDecimalOutput(account.equityQ, EQUITY_SCALE),\n topAssetIds: account.topAssetIds,\n })),\n);\n\nconst PortfolioAssetEquitySchema = v.pipe(\n v.object({\n assetId: v.number(),\n balanceQ: v.bigint(),\n equityQ: v.bigint(),\n }),\n v.transform((asset) => ({\n assetId: asset.assetId,\n balance: scaledToDecimalOutput(asset.balanceQ, BALANCE_HISTORY_SCALE),\n equity: scaledToDecimalOutput(asset.equityQ, EQUITY_SCALE),\n })),\n);\n\nexport function createPortfolioEquitySnapshotResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n quoteAsset: v.string(),\n totalEquityQ: v.bigint(),\n accounts: v.array(PortfolioAccountEquitySchema),\n assets: v.array(PortfolioAssetEquitySchema),\n btcPriceQ: v.bigint(),\n }),\n v.transform((snapshot) => ({\n quoteAsset: snapshot.quoteAsset,\n totalEquity: scaledToDecimalOutput(snapshot.totalEquityQ, EQUITY_SCALE),\n accounts: snapshot.accounts,\n assets: snapshot.assets,\n btcPrice: scaledToDecimalOutput(snapshot.btcPriceQ, scales.price()),\n })),\n );\n}\n\nexport type PortfolioEquitySnapshotResponse = v.InferOutput<\n ReturnType<typeof createPortfolioEquitySnapshotResponseSchema>\n>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"balances.schemas.js","names":[],"sources":["../../../src/services/balances/balances.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { fromU128 } from \"../../utils/u128.js\";\nimport { enumLabel, enumLabelSchema } from \"../../shared/proto-enum-codec.js\";\nimport type { DecodedEnum } from \"../../utils/types.js\";\nimport {\n AccountCodeCodec,\n ACCOUNT_CODE_VALUES,\n type AccountCodeValue,\n} from \"../../shared/ledger-codes.js\";\nimport { E18_SCALE, scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { BalanceRangeCodec, EquityGroupByCodec } from \"./balances.codecs.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { PublicIdSchema, U128Schema } from \"../../shared/schemas.js\";\n\n/**\n * Equity history values are quoted in the response's quote currency at a fixed\n * 4-decimal wire scale (proto: \"Equity in quote currency scaled by 1e4\").\n */\nconst EQUITY_SCALE = 4;\n\n/**\n * Balance history buckets use a fixed 7-decimal scale (proto: \"balance in\n * asset units scaled by 1e7\"), unlike live ledger balances which use E18.\n */\nconst BALANCE_HISTORY_SCALE = 7;\n\n/**\n * AssetBalance u128 fields on the ledger wire are always 18-decimal scaled\n * (PolyesterChain base units), independent of per-asset quantityScale used\n * elsewhere for order quantities and transfer inputs.\n */\nexport function createLedgerBalanceSchema() {\n return v.pipe(\n v.object({\n assetId: v.number(),\n trading: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n funding: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n reserved: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n available: v.pipe(v.optional(U128Schema), v.transform(fromU128)),\n tradingRevision: v.pipe(\n v.optional(v.bigint(), 0n),\n v.transform((value) => value.toString()),\n ),\n fundingRevision: v.pipe(\n v.optional(v.bigint(), 0n),\n v.transform((value) => value.toString()),\n ),\n }),\n v.transform((b) => {\n return {\n assetId: b.assetId,\n funding: scaledToDecimalOutput(b.funding ?? 0n, E18_SCALE),\n trading: scaledToDecimalOutput(b.trading ?? 0n, E18_SCALE),\n reserved: scaledToDecimalOutput(b.reserved ?? 0n, E18_SCALE),\n available: scaledToDecimalOutput(b.available ?? 0n, E18_SCALE),\n tradingRevision: b.tradingRevision,\n fundingRevision: b.fundingRevision,\n };\n }),\n );\n}\n\nexport type LedgerBalance = v.InferOutput<ReturnType<typeof createLedgerBalanceSchema>>;\n\nexport const BalancesListInputSchema = v.strictObject(AccountScopeInputEntries);\n\nexport type BalancesListInput = v.InferInput<typeof BalancesListInputSchema>;\n\nexport const BALANCE_RANGES = [\"1d\", \"7d\", \"30d\", \"90d\", \"180d\", \"365d\"] as const;\n\nexport const BalanceRangeSchema = v.picklist(BALANCE_RANGES);\n\nexport type BalanceRange = v.InferOutput<typeof BalanceRangeSchema>;\n\nconst BalanceRangeInputSchema = v.pipe(\n BalanceRangeSchema,\n v.transform((value) => BalanceRangeCodec.inputToProto[value]),\n);\n\nexport const EQUITY_GROUP_BYS = [\"account\", \"asset\"] as const;\n\nexport const EquityGroupBySchema = v.picklist(EQUITY_GROUP_BYS);\n\nexport type EquityGroupBy = v.InferOutput<typeof EquityGroupBySchema>;\n\nexport const BalanceHistoryInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n range: BalanceRangeInputSchema,\n ledger: v.optional(\n v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(4_294_967_295)),\n 0,\n ),\n accountCodes: v.optional(\n v.array(\n v.pipe(\n v.picklist(ACCOUNT_CODE_VALUES),\n v.transform((value) => AccountCodeCodec.inputToProto[value]),\n ),\n ),\n [],\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type BalanceHistoryInput = v.InferInput<typeof BalanceHistoryInputSchema>;\n\nconst BalanceSeriesSchema = v.object({\n assetId: v.number(),\n accountCode: v.enum(AccountCodeCodec.inputToProto),\n balanceQ: v.array(v.bigint()),\n});\n\nexport function createBalanceHistoryResponseSchema() {\n return v.pipe(\n v.object({\n range: enumLabelSchema(BalanceRangeCodec.protoToOutput),\n bucket: v.string(),\n startTsSec: v.number(),\n endTsSec: v.number(),\n points: v.number(),\n series: v.array(BalanceSeriesSchema),\n }),\n v.transform((data) => ({\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n points: data.points,\n series: data.series.map((s) => {\n return {\n assetId: s.assetId,\n accountCode: enumLabel(AccountCodeCodec.protoToOutput, s.accountCode),\n balance: s.balanceQ.map((b) => scaledToDecimalOutput(b, BALANCE_HISTORY_SCALE)),\n };\n }),\n })),\n );\n}\n\nexport type BalanceHistoryResponse = v.InferOutput<\n ReturnType<typeof createBalanceHistoryResponseSchema>\n>;\n\nexport const EquityHistoryInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n range: BalanceRangeInputSchema,\n accountCodes: v.optional(\n v.array(\n v.pipe(\n v.picklist(ACCOUNT_CODE_VALUES),\n v.transform((value) => AccountCodeCodec.inputToProto[value]),\n ),\n ),\n [],\n ),\n groupBy: v.pipe(\n v.optional(EquityGroupBySchema, \"account\"),\n v.transform((v) => EquityGroupByCodec.inputToProto[v ?? \"account\"]),\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type EquityHistoryInput = v.InferInput<typeof EquityHistoryInputSchema>;\n\nexport const PortfolioEquityHistoryInputSchema = v.strictObject({\n range: BalanceRangeInputSchema,\n});\n\nexport type PortfolioEquityHistoryInput = v.InferInput<typeof PortfolioEquityHistoryInputSchema>;\n\nconst EquitySeriesGroupingSchema = v.union([\n v.object({\n case: v.literal(\"account\"),\n value: v.object({\n accountCode: v.enum(AccountCodeCodec.inputToProto),\n name: v.string(),\n }),\n }),\n v.object({\n case: v.literal(\"asset\"),\n value: v.object({\n id: v.number(),\n symbol: v.string(),\n }),\n }),\n]);\n\nexport type EquitySeriesGrouping =\n | {\n type: \"account\";\n accountCode: DecodedEnum<AccountCodeValue>;\n name: string;\n }\n | {\n type: \"asset\";\n assetId: number;\n symbol: string;\n };\n\nexport const EquitySeriesSchema = v.pipe(\n v.object({\n grouping: EquitySeriesGroupingSchema,\n equityQ: v.array(v.bigint()),\n }),\n v.transform((series): { grouping: EquitySeriesGrouping; equity: string[] } => {\n const equity = series.equityQ.map((value) => scaledToDecimalOutput(value, EQUITY_SCALE));\n if (series.grouping.case === \"account\") {\n return {\n grouping: {\n type: \"account\",\n accountCode: enumLabel(\n AccountCodeCodec.protoToOutput,\n series.grouping.value.accountCode,\n ),\n name: series.grouping.value.name,\n },\n equity,\n };\n }\n\n return {\n grouping: {\n type: \"asset\",\n assetId: series.grouping.value.id,\n symbol: series.grouping.value.symbol,\n },\n equity,\n };\n }),\n);\n\nexport function createEquityHistoryResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n range: enumLabelSchema(BalanceRangeCodec.protoToOutput),\n bucket: v.string(),\n startTsSec: v.number(),\n endTsSec: v.number(),\n quoteAsset: v.string(),\n points: v.number(),\n series: v.array(EquitySeriesSchema),\n btcPricesQ: v.optional(v.array(v.bigint()), []),\n }),\n v.transform((data) => ({\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n quoteAsset: data.quoteAsset,\n points: data.points,\n series: data.series,\n // BTC price in USDT at each timestamp, carried as price ticks on the wire.\n btcPrices: data.btcPricesQ.map((value) => scaledToDecimalOutput(value, scales.price())),\n })),\n );\n}\n\nexport type EquitySeries = v.InferOutput<typeof EquitySeriesSchema>;\nexport type EquityHistoryResponse = v.InferOutput<\n ReturnType<typeof createEquityHistoryResponseSchema>\n>;\n\nconst PortfolioAccountGroupingSchema = v.variant(\"remaining\", [\n v.object({\n accountId: PublicIdSchema,\n remaining: v.literal(false),\n }),\n v.object({\n accountId: v.optional(v.never()),\n remaining: v.literal(true),\n }),\n]);\n\nexport type PortfolioEquitySeriesGrouping =\n | { type: \"portfolioAccount\"; accountId: string; remaining: false }\n | { type: \"portfolioAccount\"; accountId?: never; remaining: true };\n\nexport const PortfolioEquitySeriesSchema = v.pipe(\n v.object({\n grouping: v.object({\n case: v.literal(\"portfolioAccount\"),\n value: PortfolioAccountGroupingSchema,\n }),\n equityQ: v.array(v.bigint()),\n }),\n v.transform((series): { grouping: PortfolioEquitySeriesGrouping; equity: string[] } => ({\n grouping: series.grouping.value.remaining\n ? { type: \"portfolioAccount\", remaining: true }\n : {\n type: \"portfolioAccount\",\n accountId: series.grouping.value.accountId,\n remaining: false,\n },\n equity: series.equityQ.map((value) => scaledToDecimalOutput(value, EQUITY_SCALE)),\n })),\n);\n\nexport function createPortfolioEquityHistoryResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n range: enumLabelSchema(BalanceRangeCodec.protoToOutput),\n bucket: v.string(),\n startTsSec: v.number(),\n endTsSec: v.number(),\n quoteAsset: v.string(),\n points: v.number(),\n series: v.array(PortfolioEquitySeriesSchema),\n btcPricesQ: v.optional(v.array(v.bigint()), []),\n }),\n v.transform((data) => ({\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n quoteAsset: data.quoteAsset,\n points: data.points,\n series: data.series,\n btcPrices: data.btcPricesQ.map((value) => scaledToDecimalOutput(value, scales.price())),\n })),\n );\n}\n\nexport type PortfolioEquitySeries = v.InferOutput<typeof PortfolioEquitySeriesSchema>;\nexport type PortfolioEquityHistoryResponse = v.InferOutput<\n ReturnType<typeof createPortfolioEquityHistoryResponseSchema>\n>;\n\nconst PortfolioAccountEquitySchema = v.pipe(\n v.object({\n accountId: PublicIdSchema,\n equityQ: v.bigint(),\n topAssetIds: v.array(v.number()),\n }),\n v.transform((account) => ({\n accountId: account.accountId,\n equity: scaledToDecimalOutput(account.equityQ, EQUITY_SCALE),\n topAssetIds: account.topAssetIds,\n })),\n);\n\nconst PortfolioAssetEquitySchema = v.pipe(\n v.object({\n assetId: v.number(),\n balanceQ: v.bigint(),\n equityQ: v.bigint(),\n }),\n v.transform((asset) => ({\n assetId: asset.assetId,\n balance: scaledToDecimalOutput(asset.balanceQ, BALANCE_HISTORY_SCALE),\n equity: scaledToDecimalOutput(asset.equityQ, EQUITY_SCALE),\n })),\n);\n\nexport function createPortfolioEquitySnapshotResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n quoteAsset: v.string(),\n totalEquityQ: v.bigint(),\n accounts: v.array(PortfolioAccountEquitySchema),\n assets: v.array(PortfolioAssetEquitySchema),\n btcPriceQ: v.bigint(),\n }),\n v.transform((snapshot) => ({\n quoteAsset: snapshot.quoteAsset,\n totalEquity: scaledToDecimalOutput(snapshot.totalEquityQ, EQUITY_SCALE),\n accounts: snapshot.accounts,\n assets: snapshot.assets,\n btcPrice: scaledToDecimalOutput(snapshot.btcPriceQ, scales.price()),\n })),\n );\n}\n\nexport type PortfolioEquitySnapshotResponse = v.InferOutput<\n ReturnType<typeof createPortfolioEquitySnapshotResponseSchema>\n>;\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ type TimestampInit = {
|
|
|
11
11
|
};
|
|
12
12
|
declare function createCandleRowSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
13
13
|
readonly symbolId: v.NumberSchema<undefined>;
|
|
14
|
-
readonly timeframe: v.SchemaWithPipe<readonly [v.
|
|
14
|
+
readonly timeframe: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">>]>;
|
|
15
15
|
readonly tsSec: v.BigintSchema<undefined>;
|
|
16
16
|
readonly open: v.BigintSchema<undefined>;
|
|
17
17
|
readonly high: v.BigintSchema<undefined>;
|
|
@@ -46,7 +46,7 @@ declare function createCandleRowSchema(scales: SdkScales): v.SchemaWithPipe<read
|
|
|
46
46
|
declare const createCandleRowIntSchema: typeof createCandleRowSchema;
|
|
47
47
|
declare function createCandleColumnarSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
48
48
|
readonly symbolId: v.NumberSchema<undefined>;
|
|
49
|
-
readonly timeframe: v.SchemaWithPipe<readonly [v.
|
|
49
|
+
readonly timeframe: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">>]>;
|
|
50
50
|
readonly tsSec: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
51
51
|
readonly open: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
52
52
|
readonly high: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
@@ -100,7 +100,7 @@ declare function createCandleColumnarSchema(scales: SdkScales): v.SchemaWithPipe
|
|
|
100
100
|
}>]>;
|
|
101
101
|
declare function createCandleColumnarIntSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
102
102
|
readonly symbolId: v.NumberSchema<undefined>;
|
|
103
|
-
readonly timeframe: v.SchemaWithPipe<readonly [v.
|
|
103
|
+
readonly timeframe: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">>]>;
|
|
104
104
|
readonly tsSec: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
105
105
|
readonly open: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
106
106
|
readonly high: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candles.schemas.d.ts","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"candles.schemas.d.ts","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"mappings":";;;;;cAQa,iBAAe,EAAA;KAEhB,YAAY,EAAE,mBAAmB;KAiBxC;EAAkB;EAAiB;;iBAsBxB,sBAAsB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqB1C,iCAAwB;iBAuCrB,2BAA2B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkC5C,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCnD,SAAS,EAAE,YAAY,kBAAkB;KAGzC,YAAY,EAAE,YAAY,kBAAkB;KAC5C,iBAAiB,EAAE,YAAY,kBAAkB;KAGjD,oBAAoB,EAAE,YAAY,kBAAkB;iBAyBhD,gCAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAIhC,kBAAkB,EAAE,WAAW,kBAAkB;KAEjD,yBAAyB,EAAE,WAAW,kBAAkB"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { enumLabel } from "../../shared/proto-enum-codec.js";
|
|
2
2
|
import { OptionalTimestampSecondsInputSchema } from "../../shared/schemas.js";
|
|
3
3
|
import { SymbolIdInputSchema } from "../shared.js";
|
|
4
4
|
import { scaledToDecimalOutput } from "../../shared/decimal-surface.js";
|
|
5
|
-
import { Timeframe } from "../../gen/marketdata/v1/marketdata_pb.js";
|
|
6
5
|
import { TIMEFRAMES, TimeframeCodec } from "./candles.codecs.js";
|
|
7
6
|
import * as v from "valibot";
|
|
8
7
|
//#region src/services/candles/candles.schemas.ts
|
|
9
8
|
const TimeframeSchema = v.picklist(TIMEFRAMES);
|
|
10
|
-
function timeframeFromProto(value
|
|
11
|
-
return
|
|
9
|
+
function timeframeFromProto(value) {
|
|
10
|
+
return enumLabel(TimeframeCodec.protoToOutput, value);
|
|
12
11
|
}
|
|
13
12
|
const TimeframeInputSchema = v.pipe(TimeframeSchema, v.transform((value) => TimeframeCodec.inputToProto[value]));
|
|
14
13
|
const OptionalPositiveNumberSchema = v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(1e4)));
|
|
@@ -21,7 +20,7 @@ function timestampFromTsSec(tsSec) {
|
|
|
21
20
|
}
|
|
22
21
|
const CandleRowRawSchema = v.object({
|
|
23
22
|
symbolId: v.number(),
|
|
24
|
-
timeframe: v.pipe(v.
|
|
23
|
+
timeframe: v.pipe(v.number(), v.transform((v) => timeframeFromProto(v))),
|
|
25
24
|
tsSec: v.bigint(),
|
|
26
25
|
open: v.bigint(),
|
|
27
26
|
high: v.bigint(),
|
|
@@ -61,7 +60,7 @@ const CandlePointSchema = v.object({
|
|
|
61
60
|
});
|
|
62
61
|
const CandleColumnarRawSchema = v.object({
|
|
63
62
|
symbolId: v.number(),
|
|
64
|
-
timeframe: v.pipe(v.
|
|
63
|
+
timeframe: v.pipe(v.number(), v.transform((v) => timeframeFromProto(v))),
|
|
65
64
|
tsSec: v.array(v.bigint()),
|
|
66
65
|
open: v.array(v.bigint()),
|
|
67
66
|
high: v.array(v.bigint()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candles.schemas.js","names":["Proto.Timeframe"],"sources":["../../../src/services/candles/candles.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/marketdata/v1/marketdata_pb.js\";\nimport { SymbolIdInputSchema } from \"../shared.js\";\nimport * as v from \"valibot\";\nimport type { DecodedEnum } from \"../../utils/types.js\";\nimport { OptionalTimestampSecondsInputSchema } from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { TIMEFRAMES, TimeframeCodec } from \"./candles.codecs.js\";\n\nexport const TimeframeSchema = v.picklist(TIMEFRAMES);\n\nexport type Timeframe = v.InferOutput<typeof TimeframeSchema>;\n\nfunction timeframeFromProto(value: Proto.Timeframe, schemaName: string): DecodedEnum<Timeframe> {\n return requiredEnumLabel(\n TimeframeCodec.protoToOutput,\n value,\n `CandlesService.${schemaName}`,\n \"timeframe\",\n );\n}\n\nconst TimeframeInputSchema = v.pipe(\n TimeframeSchema,\n v.transform((value) => TimeframeCodec.inputToProto[value]),\n);\n\nconst OptionalPositiveNumberSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(10_000)),\n);\n\nconst OptionalBooleanSchema = v.optional(v.boolean(), false);\n\ntype TimestampInit = { seconds: bigint; nanos: number };\n\nfunction timestampFromTsSec(tsSec: bigint): TimestampInit {\n return { seconds: tsSec, nanos: 0 };\n}\n\nconst CandleRowRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.enum(Proto.Timeframe),\n v.transform((v) => timeframeFromProto(v, \"CandleRowSchema\")),\n ),\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nexport function createCandleRowSchema(scales: SdkScales) {\n return v.pipe(\n CandleRowRawSchema,\n v.transform((data) => {\n const priceScale = scales.price();\n return {\n symbolId: data.symbolId,\n timeframe: data.timeframe,\n time: Number(data.tsSec),\n open: scaledToDecimalOutput(data.open, priceScale),\n high: scaledToDecimalOutput(data.high, priceScale),\n low: scaledToDecimalOutput(data.low, priceScale),\n close: scaledToDecimalOutput(data.close, priceScale),\n volume: scaledToDecimalOutput(data.volume, scales.baseQty(data.symbolId)),\n quoteVolume: data.quoteVolume,\n isClosed: data.isClosed,\n };\n }),\n );\n}\n\nexport const createCandleRowIntSchema = createCandleRowSchema;\n\nexport const CandlePointSchema = v.object({\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nconst CandleColumnarRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.enum(Proto.Timeframe),\n v.transform((v) => timeframeFromProto(v, \"CandleColumnarSchema\")),\n ),\n tsSec: v.array(v.bigint()),\n open: v.array(v.bigint()),\n high: v.array(v.bigint()),\n low: v.array(v.bigint()),\n close: v.array(v.bigint()),\n volume: v.array(v.bigint()),\n quoteVolume: v.array(v.string()),\n referenceTsSec: v.optional(v.array(v.bigint()), []),\n referenceOpen: v.optional(v.array(v.bigint()), []),\n referenceHigh: v.optional(v.array(v.bigint()), []),\n referenceLow: v.optional(v.array(v.bigint()), []),\n referenceClose: v.optional(v.array(v.bigint()), []),\n referenceVolume: v.optional(v.array(v.bigint()), []),\n nextPageToken: v.optional(v.string(), \"\"),\n});\n\nfunction scaledArrayToDecimal(values: bigint[], scale: number): string[] {\n return values.map((value) => scaledToDecimalOutput(value, scale));\n}\n\nexport function createCandleColumnarSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const volumeScale = scales.baseQty(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n const hasReference = referenceTsSec.length > 0;\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n time: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference: hasReference\n ? {\n time: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], priceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], priceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], priceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], priceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport function createCandleColumnarIntSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const volumeScale = scales.baseQty(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n tsSec: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference:\n referenceTsSec.length > 0\n ? {\n tsSec: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], priceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], priceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], priceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], priceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport type Candle = v.InferOutput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleInput = v.InferInput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleIntInput = v.InferInput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleInt = v.InferOutput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleColumnar = v.InferOutput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarInput = v.InferInput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarIntInput = v.InferInput<ReturnType<typeof createCandleColumnarIntSchema>>;\nexport type CandleColumnarInt = v.InferOutput<ReturnType<typeof createCandleColumnarIntSchema>>;\n\nexport const ListCandlesInputSchema = v.pipe(\n v.object({\n symbolId: SymbolIdInputSchema,\n timeframe: TimeframeInputSchema,\n limit: OptionalPositiveNumberSchema,\n includeIncomplete: v.optional(v.boolean(), false),\n includeReference: OptionalBooleanSchema,\n startTsSec: OptionalTimestampSecondsInputSchema,\n endTsSec: OptionalTimestampSecondsInputSchema,\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform((d) => ({\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n limit: d.limit,\n includeIncomplete: d.includeIncomplete,\n includeReference: d.includeReference,\n startTime: d.startTsSec != null ? timestampFromTsSec(d.startTsSec) : undefined,\n endTime: d.endTsSec != null ? timestampFromTsSec(d.endTsSec) : undefined,\n pageToken: d.pageToken,\n })),\n);\n\nexport function createListCandlesInputSchema() {\n return ListCandlesInputSchema;\n}\n\nexport type GetCandlesInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\nexport const createGetCandlesColumnsInputSchema = createListCandlesInputSchema;\nexport type GetCandlesColumnsInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"candles.schemas.js","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"sourcesContent":["import { SymbolIdInputSchema } from \"../shared.js\";\nimport * as v from \"valibot\";\nimport type { DecodedEnum } from \"../../utils/types.js\";\nimport { OptionalTimestampSecondsInputSchema } from \"../../shared/schemas.js\";\nimport { enumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { TIMEFRAMES, TimeframeCodec } from \"./candles.codecs.js\";\n\nexport const TimeframeSchema = v.picklist(TIMEFRAMES);\n\nexport type Timeframe = v.InferOutput<typeof TimeframeSchema>;\n\nfunction timeframeFromProto(value: number): DecodedEnum<Timeframe> {\n return enumLabel(TimeframeCodec.protoToOutput, value);\n}\n\nconst TimeframeInputSchema = v.pipe(\n TimeframeSchema,\n v.transform((value) => TimeframeCodec.inputToProto[value]),\n);\n\nconst OptionalPositiveNumberSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(10_000)),\n);\n\nconst OptionalBooleanSchema = v.optional(v.boolean(), false);\n\ntype TimestampInit = { seconds: bigint; nanos: number };\n\nfunction timestampFromTsSec(tsSec: bigint): TimestampInit {\n return { seconds: tsSec, nanos: 0 };\n}\n\nconst CandleRowRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.number(),\n v.transform((v) => timeframeFromProto(v)),\n ),\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nexport function createCandleRowSchema(scales: SdkScales) {\n return v.pipe(\n CandleRowRawSchema,\n v.transform((data) => {\n const priceScale = scales.price();\n return {\n symbolId: data.symbolId,\n timeframe: data.timeframe,\n time: Number(data.tsSec),\n open: scaledToDecimalOutput(data.open, priceScale),\n high: scaledToDecimalOutput(data.high, priceScale),\n low: scaledToDecimalOutput(data.low, priceScale),\n close: scaledToDecimalOutput(data.close, priceScale),\n volume: scaledToDecimalOutput(data.volume, scales.baseQty(data.symbolId)),\n quoteVolume: data.quoteVolume,\n isClosed: data.isClosed,\n };\n }),\n );\n}\n\nexport const createCandleRowIntSchema = createCandleRowSchema;\n\nexport const CandlePointSchema = v.object({\n tsSec: v.bigint(),\n open: v.bigint(),\n high: v.bigint(),\n low: v.bigint(),\n close: v.bigint(),\n volume: v.bigint(),\n quoteVolume: v.string(),\n isClosed: v.optional(v.boolean(), false),\n});\n\nconst CandleColumnarRawSchema = v.object({\n symbolId: v.number(),\n timeframe: v.pipe(\n v.number(),\n v.transform((v) => timeframeFromProto(v)),\n ),\n tsSec: v.array(v.bigint()),\n open: v.array(v.bigint()),\n high: v.array(v.bigint()),\n low: v.array(v.bigint()),\n close: v.array(v.bigint()),\n volume: v.array(v.bigint()),\n quoteVolume: v.array(v.string()),\n referenceTsSec: v.optional(v.array(v.bigint()), []),\n referenceOpen: v.optional(v.array(v.bigint()), []),\n referenceHigh: v.optional(v.array(v.bigint()), []),\n referenceLow: v.optional(v.array(v.bigint()), []),\n referenceClose: v.optional(v.array(v.bigint()), []),\n referenceVolume: v.optional(v.array(v.bigint()), []),\n nextPageToken: v.optional(v.string(), \"\"),\n});\n\nfunction scaledArrayToDecimal(values: bigint[], scale: number): string[] {\n return values.map((value) => scaledToDecimalOutput(value, scale));\n}\n\nexport function createCandleColumnarSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const volumeScale = scales.baseQty(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n const hasReference = referenceTsSec.length > 0;\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n time: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference: hasReference\n ? {\n time: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], priceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], priceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], priceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], priceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport function createCandleColumnarIntSchema(scales: SdkScales) {\n return v.pipe(\n CandleColumnarRawSchema,\n v.transform((d) => {\n const priceScale = scales.price();\n const volumeScale = scales.baseQty(d.symbolId);\n const referenceTsSec = d.referenceTsSec ?? [];\n return {\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n tsSec: d.tsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.open, priceScale),\n high: scaledArrayToDecimal(d.high, priceScale),\n low: scaledArrayToDecimal(d.low, priceScale),\n close: scaledArrayToDecimal(d.close, priceScale),\n volume: scaledArrayToDecimal(d.volume, volumeScale),\n quoteVolume: d.quoteVolume,\n nextPageToken: d.nextPageToken,\n reference:\n referenceTsSec.length > 0\n ? {\n tsSec: referenceTsSec.map((t) => Number(t)),\n open: scaledArrayToDecimal(d.referenceOpen ?? [], priceScale),\n high: scaledArrayToDecimal(d.referenceHigh ?? [], priceScale),\n low: scaledArrayToDecimal(d.referenceLow ?? [], priceScale),\n close: scaledArrayToDecimal(d.referenceClose ?? [], priceScale),\n volume: scaledArrayToDecimal(d.referenceVolume ?? [], volumeScale),\n }\n : null,\n };\n }),\n );\n}\n\nexport type Candle = v.InferOutput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleInput = v.InferInput<ReturnType<typeof createCandleRowSchema>>;\nexport type CandleIntInput = v.InferInput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleInt = v.InferOutput<ReturnType<typeof createCandleRowIntSchema>>;\nexport type CandleColumnar = v.InferOutput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarInput = v.InferInput<ReturnType<typeof createCandleColumnarSchema>>;\nexport type CandleColumnarIntInput = v.InferInput<ReturnType<typeof createCandleColumnarIntSchema>>;\nexport type CandleColumnarInt = v.InferOutput<ReturnType<typeof createCandleColumnarIntSchema>>;\n\nexport const ListCandlesInputSchema = v.pipe(\n v.object({\n symbolId: SymbolIdInputSchema,\n timeframe: TimeframeInputSchema,\n limit: OptionalPositiveNumberSchema,\n includeIncomplete: v.optional(v.boolean(), false),\n includeReference: OptionalBooleanSchema,\n startTsSec: OptionalTimestampSecondsInputSchema,\n endTsSec: OptionalTimestampSecondsInputSchema,\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform((d) => ({\n symbolId: d.symbolId,\n timeframe: d.timeframe,\n limit: d.limit,\n includeIncomplete: d.includeIncomplete,\n includeReference: d.includeReference,\n startTime: d.startTsSec != null ? timestampFromTsSec(d.startTsSec) : undefined,\n endTime: d.endTsSec != null ? timestampFromTsSec(d.endTsSec) : undefined,\n pageToken: d.pageToken,\n })),\n);\n\nexport function createListCandlesInputSchema() {\n return ListCandlesInputSchema;\n}\n\nexport type GetCandlesInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\nexport const createGetCandlesColumnsInputSchema = createListCandlesInputSchema;\nexport type GetCandlesColumnsInput = v.InferInput<ReturnType<typeof createListCandlesInputSchema>>;\n"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ declare const GetUnifiedAssetBalancesInputSchema: v.StrictObjectSchema<{
|
|
|
28
28
|
}, undefined>;
|
|
29
29
|
declare function createZippedAssetSupplyResponseSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
30
30
|
readonly totalSupplyQ: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
31
|
-
readonly range: v.SchemaWithPipe<readonly [v.
|
|
31
|
+
readonly range: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "1d" | "7d" | "30d" | "90d" | "180d" | "365d">]>;
|
|
32
32
|
readonly bucket: v.StringSchema<undefined>;
|
|
33
33
|
readonly startTsSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
34
34
|
readonly endTsSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
@@ -88,7 +88,7 @@ declare function createZippedAssetSupplyGroupResponseSchema(scales: SdkScales):
|
|
|
88
88
|
zippedAssetId: number;
|
|
89
89
|
totalSupply: string[];
|
|
90
90
|
}>]>, undefined>;
|
|
91
|
-
readonly range: v.SchemaWithPipe<readonly [v.
|
|
91
|
+
readonly range: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "1d" | "7d" | "30d" | "90d" | "180d" | "365d">]>;
|
|
92
92
|
readonly bucket: v.StringSchema<undefined>;
|
|
93
93
|
readonly startTsSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
94
94
|
readonly endTsSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
@@ -141,7 +141,7 @@ declare function createZippedAssetSupplyGroupResponseSchema(scales: SdkScales):
|
|
|
141
141
|
}>]>;
|
|
142
142
|
declare function createUnifiedAssetBalancesResponseSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
143
143
|
readonly totalBalanceQ: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
|
|
144
|
-
readonly range: v.SchemaWithPipe<readonly [v.
|
|
144
|
+
readonly range: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, "unspecified" | "1d" | "7d" | "30d" | "90d" | "180d" | "365d">]>;
|
|
145
145
|
readonly bucket: v.StringSchema<undefined>;
|
|
146
146
|
readonly startTsSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
147
147
|
readonly endTsSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-analytics.schemas.d.ts","names":[],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"chain-analytics.schemas.d.ts","names":[],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"mappings":";;;;;cAoBa,2BAAyB,EAAA;KAE1B,sBAAsB,EAAE,mBAAmB;cA8B1C,iCAA+B,EAAA;;;;;;;cAK/B,sCAAoC,EAAA;;;;;;;cAKpC,oCAAkC,EAAA;;;;;;;iBAK/B,sCAAsC,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BvD,oCAAoC,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;iBAgBrD,2CAA2C,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4B5D,yCAAyC,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2B9D,4BAA4B,EAAE,kBAAkB;KAEhD,iCAAiC,EAAE,kBACpC;KAGC,+BAA+B,EAAE,kBAAkB;KAEnD,4BAA4B,EAAE,YACtC,kBAAkB;KAEV,0BAA0B,EAAE,YACpC,kBAAkB;KAEV,iCAAiC,EAAE,YAC3C,kBAAkB;KAEV,+BAA+B,EAAE,YACzC,kBAAkB"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { enumLabelSchema } from "../../shared/proto-enum-codec.js";
|
|
2
2
|
import { PROTOBUF_UINT32_MAX } from "../../shared/wire-bounds.js";
|
|
3
3
|
import { PositiveUint32InputSchema } from "../shared.js";
|
|
4
4
|
import { scaledToDecimalOutput } from "../../shared/decimal-surface.js";
|
|
5
|
-
import { ChainAnalyticsRange } from "../../gen/chain/analytics/v1/analytics_read_pb.js";
|
|
6
5
|
import { CHAIN_ANALYTICS_RANGE_VALUES, ChainAnalyticsRangeCodec } from "./chain-analytics.codecs.js";
|
|
7
6
|
import * as v from "valibot";
|
|
8
7
|
//#region src/services/chain-analytics/chain-analytics.schemas.ts
|
|
@@ -10,7 +9,7 @@ const NonNegativeUint32Schema = v.pipe(v.number(), v.integer(), v.minValue(0), v
|
|
|
10
9
|
const OptionalUint32Schema = v.optional(NonNegativeUint32Schema);
|
|
11
10
|
const ChainAnalyticsRangeSchema = v.picklist(CHAIN_ANALYTICS_RANGE_VALUES);
|
|
12
11
|
const ChainAnalyticsRangeInputSchema = v.pipe(v.optional(ChainAnalyticsRangeSchema, "1d"), v.transform((value) => ChainAnalyticsRangeCodec.inputToProto[value]));
|
|
13
|
-
const ChainAnalyticsRangeOutputSchema =
|
|
12
|
+
const ChainAnalyticsRangeOutputSchema = enumLabelSchema(ChainAnalyticsRangeCodec.protoToOutput);
|
|
14
13
|
const ChainAnalyticsWindowInputEntries = {
|
|
15
14
|
range: ChainAnalyticsRangeInputSchema,
|
|
16
15
|
bucket: v.optional(v.pipe(v.string(), v.trim()), ""),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-analytics.schemas.js","names":[
|
|
1
|
+
{"version":3,"file":"chain-analytics.schemas.js","names":[],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"sourcesContent":["import { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { enumLabelSchema } from \"../../shared/proto-enum-codec.js\";\nimport * as v from \"valibot\";\nimport { PositiveUint32InputSchema } from \"../shared.js\";\nimport { PROTOBUF_UINT32_MAX } from \"../../shared/wire-bounds.js\";\nimport {\n CHAIN_ANALYTICS_RANGE_VALUES,\n ChainAnalyticsRangeCodec,\n} from \"./chain-analytics.codecs.js\";\n\nexport { CHAIN_ANALYTICS_RANGE_VALUES } from \"./chain-analytics.codecs.js\";\n\nconst NonNegativeUint32Schema = v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(PROTOBUF_UINT32_MAX),\n);\nconst OptionalUint32Schema = v.optional(NonNegativeUint32Schema);\n\nexport const ChainAnalyticsRangeSchema = v.picklist(CHAIN_ANALYTICS_RANGE_VALUES);\n\nexport type ChainAnalyticsRange = v.InferOutput<typeof ChainAnalyticsRangeSchema>;\n\nconst ChainAnalyticsRangeInputSchema = v.pipe(\n v.optional(ChainAnalyticsRangeSchema, \"1d\"),\n v.transform((value) => ChainAnalyticsRangeCodec.inputToProto[value]),\n);\n\nconst ChainAnalyticsRangeOutputSchema = enumLabelSchema(ChainAnalyticsRangeCodec.protoToOutput);\n\nconst OptionalBucketInputSchema = v.optional(v.pipe(v.string(), v.trim()), \"\");\n\nconst ChainAnalyticsWindowInputEntries = {\n range: ChainAnalyticsRangeInputSchema,\n bucket: OptionalBucketInputSchema,\n startTsSec: OptionalUint32Schema,\n endTsSec: OptionalUint32Schema,\n};\n\nconst ChainAnalyticsResponseEntries = {\n range: ChainAnalyticsRangeOutputSchema,\n bucket: v.string(),\n startTsSec: NonNegativeUint32Schema,\n endTsSec: NonNegativeUint32Schema,\n points: NonNegativeUint32Schema,\n};\n\nfunction scaledArray(values: readonly bigint[], scale: number): string[] {\n return values.map((value) => scaledToDecimalOutput(value, scale));\n}\n\nexport const GetZippedAssetSupplyInputSchema = v.strictObject({\n zippedAssetId: PositiveUint32InputSchema,\n ...ChainAnalyticsWindowInputEntries,\n});\n\nexport const GetZippedAssetSupplyGroupInputSchema = v.strictObject({\n groupId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n ...ChainAnalyticsWindowInputEntries,\n});\n\nexport const GetUnifiedAssetBalancesInputSchema = v.strictObject({\n assetId: PositiveUint32InputSchema,\n ...ChainAnalyticsWindowInputEntries,\n});\n\nexport function createZippedAssetSupplyResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n zippedAssetId: v.number(),\n ...ChainAnalyticsResponseEntries,\n totalSupplyQ: v.array(v.bigint()),\n }),\n v.check(\n (data) => data.endTsSec >= data.startTsSec,\n \"endTsSec must be greater than or equal to startTsSec\",\n ),\n v.check(\n (data) => data.totalSupplyQ.length === data.points,\n \"points must match totalSupply column length\",\n ),\n v.transform((data) => ({\n zippedAssetId: data.zippedAssetId,\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n points: data.points,\n totalSupply: scaledArray(\n data.totalSupplyQ,\n scales.zippedAssetAmount(data.zippedAssetId),\n ),\n })),\n );\n}\n\nexport function createZippedAssetSupplySeriesSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n zippedAssetId: v.number(),\n totalSupplyQ: v.array(v.bigint()),\n }),\n v.transform((series) => ({\n zippedAssetId: series.zippedAssetId,\n totalSupply: scaledArray(\n series.totalSupplyQ,\n scales.zippedAssetAmount(series.zippedAssetId),\n ),\n })),\n );\n}\n\nexport function createZippedAssetSupplyGroupResponseSchema(scales: SdkScales) {\n const seriesSchema = createZippedAssetSupplySeriesSchema(scales);\n return v.pipe(\n v.object({\n groupId: v.string(),\n ...ChainAnalyticsResponseEntries,\n series: v.array(seriesSchema),\n }),\n v.check(\n (data) => data.endTsSec >= data.startTsSec,\n \"endTsSec must be greater than or equal to startTsSec\",\n ),\n v.check(\n (data) => data.series.every((series) => series.totalSupply.length === data.points),\n \"points must match each totalSupply column length\",\n ),\n v.transform((data) => ({\n groupId: data.groupId,\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n points: data.points,\n series: data.series,\n })),\n );\n}\n\nexport function createUnifiedAssetBalancesResponseSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n assetId: v.number(),\n ...ChainAnalyticsResponseEntries,\n totalBalanceQ: v.array(v.bigint()),\n }),\n v.check(\n (data) => data.endTsSec >= data.startTsSec,\n \"endTsSec must be greater than or equal to startTsSec\",\n ),\n v.check(\n (data) => data.totalBalanceQ.length === data.points,\n \"points must match totalBalance column length\",\n ),\n v.transform((data) => ({\n assetId: data.assetId,\n range: data.range,\n bucket: data.bucket,\n startTsSec: data.startTsSec,\n endTsSec: data.endTsSec,\n points: data.points,\n totalBalance: scaledArray(data.totalBalanceQ, scales.ledgerAmount(data.assetId)),\n })),\n );\n}\n\nexport type GetZippedAssetSupplyInput = v.InferInput<typeof GetZippedAssetSupplyInputSchema>;\n\nexport type GetZippedAssetSupplyGroupInput = v.InferInput<\n typeof GetZippedAssetSupplyGroupInputSchema\n>;\n\nexport type GetUnifiedAssetBalancesInput = v.InferInput<typeof GetUnifiedAssetBalancesInputSchema>;\n\nexport type ZippedAssetSupplyResponse = v.InferOutput<\n ReturnType<typeof createZippedAssetSupplyResponseSchema>\n>;\nexport type ZippedAssetSupplySeries = v.InferOutput<\n ReturnType<typeof createZippedAssetSupplySeriesSchema>\n>;\nexport type ZippedAssetSupplyGroupResponse = v.InferOutput<\n ReturnType<typeof createZippedAssetSupplyGroupResponseSchema>\n>;\nexport type UnifiedAssetBalancesResponse = v.InferOutput<\n ReturnType<typeof createUnifiedAssetBalancesResponseSchema>\n>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/services/claims/claims.codecs.d.ts
|
|
2
|
+
declare const DAILY_CLAIM_STATE_VALUES: readonly ["unspecified", "available", "processing", "claimed", "unavailable"];
|
|
3
|
+
type DailyClaimState = (typeof DAILY_CLAIM_STATE_VALUES)[number];
|
|
4
|
+
declare const CLAIM_POLICY_VALUES: readonly ["unspecified", "utc_daily"];
|
|
5
|
+
type ClaimPolicy = (typeof CLAIM_POLICY_VALUES)[number];
|
|
6
|
+
//#endregion
|
|
7
|
+
export { CLAIM_POLICY_VALUES, ClaimPolicy, DAILY_CLAIM_STATE_VALUES, DailyClaimState };
|
|
8
|
+
//# sourceMappingURL=claims.codecs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.codecs.d.ts","names":[],"sources":["../../../src/services/claims/claims.codecs.ts"],"mappings":";cAGa;KAOD,0BAA0B;cAEzB;KACD,sBAAsB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "../../gen/claims/v1/claims_pb.js";
|
|
2
|
+
//#region src/services/claims/claims.codecs.ts
|
|
3
|
+
const DailyClaimStateCodec = { protoToOutput: {
|
|
4
|
+
[0]: "unspecified",
|
|
5
|
+
[1]: "available",
|
|
6
|
+
[2]: "processing",
|
|
7
|
+
[3]: "claimed",
|
|
8
|
+
[4]: "unavailable"
|
|
9
|
+
} };
|
|
10
|
+
const ClaimPolicyCodec = { protoToOutput: {
|
|
11
|
+
[0]: "unspecified",
|
|
12
|
+
[1]: "utc_daily"
|
|
13
|
+
} };
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ClaimPolicyCodec, DailyClaimStateCodec };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=claims.codecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.codecs.js","names":[],"sources":["../../../src/services/claims/claims.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/claims/v1/claims_pb.js\";\nimport type { ProtoToOutput } from \"../../utils/types.js\";\n\nexport const DAILY_CLAIM_STATE_VALUES = [\n \"unspecified\",\n \"available\",\n \"processing\",\n \"claimed\",\n \"unavailable\",\n] as const;\nexport type DailyClaimState = (typeof DAILY_CLAIM_STATE_VALUES)[number];\n\nexport const CLAIM_POLICY_VALUES = [\"unspecified\", \"utc_daily\"] as const;\nexport type ClaimPolicy = (typeof CLAIM_POLICY_VALUES)[number];\n\nexport const DailyClaimStateCodec = {\n protoToOutput: {\n [Proto.DailyClaimState.CLAIM_UNSPECIFIED]: \"unspecified\",\n [Proto.DailyClaimState.CLAIM_AVAILABLE]: \"available\",\n [Proto.DailyClaimState.CLAIM_PROCESSING]: \"processing\",\n [Proto.DailyClaimState.CLAIM_CLAIMED]: \"claimed\",\n [Proto.DailyClaimState.CLAIM_UNAVAILABLE]: \"unavailable\",\n } satisfies ProtoToOutput<Proto.DailyClaimState, DailyClaimState>,\n} as const;\n\nexport const ClaimPolicyCodec = {\n protoToOutput: {\n [Proto.ClaimPolicy.POLICY_UNSPECIFIED]: \"unspecified\",\n [Proto.ClaimPolicy.UTC_DAILY]: \"utc_daily\",\n } satisfies ProtoToOutput<Proto.ClaimPolicy, ClaimPolicy>,\n} as const;\n"],"mappings":";;AAeA,MAAa,uBAAuB,EAChC,eAAe;EACgC,IAAA;EACF,IAAA;EACC,IAAA;EACH,IAAA;EACI,IAAA;AAC/C,EACJ;AAEA,MAAa,mBAAmB,EAC5B,eAAe;EAC6B,IAAA;EACT,IAAA;AACnC,EACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AuthApiTransports } from "../../shared/transports.js";
|
|
2
|
+
import { PolyesterMutationOptions, PolyesterRequestOptions } from "../../shared/request-options.js";
|
|
3
|
+
import { ClaimDailyRewardResult, DailyClaimStatus } from "./claims.schemas.js";
|
|
4
|
+
//#region src/services/claims/claims.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Reads and claims daily campaign rewards for the authenticated root account.
|
|
7
|
+
* The server accepts session JWTs for this service; API keys are not accepted.
|
|
8
|
+
*/
|
|
9
|
+
declare class ClaimsService {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(transports: AuthApiTransports);
|
|
12
|
+
/** Returns the current UTC day's available or existing claim and its reset time. */
|
|
13
|
+
getDailyClaimStatus(options?: PolyesterRequestOptions): Promise<DailyClaimStatus>;
|
|
14
|
+
/** Claims the current UTC day's reward. Retrying returns the same claim. */
|
|
15
|
+
claimDailyReward(options?: PolyesterMutationOptions): Promise<ClaimDailyRewardResult>;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { ClaimsService };
|
|
19
|
+
//# sourceMappingURL=claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.d.ts","names":[],"sources":["../../../src/services/claims/claims.ts"],"mappings":";;;;;;;;cAoBa;;EAGG,YAAA,YAAY;;EAKlB,oBAAoB,UAAU,0BAA0B,QAAQ;;EAMhE,iBAAiB,UAAU,2BAA2B,QAAQ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { parse } from "../../shared/validation.js";
|
|
2
|
+
import { toConnectCallOptions } from "../../shared/request-options.js";
|
|
3
|
+
import { ClaimsService as ClaimsService$1 } from "../../gen/claims/v1/claims_pb.js";
|
|
4
|
+
import { ClaimDailyRewardResultSchema, DailyClaimStatusSchema } from "./claims.schemas.js";
|
|
5
|
+
import { createClient } from "@connectrpc/connect";
|
|
6
|
+
//#region src/services/claims/claims.ts
|
|
7
|
+
/**
|
|
8
|
+
* Reads and claims daily campaign rewards for the authenticated root account.
|
|
9
|
+
* The server accepts session JWTs for this service; API keys are not accepted.
|
|
10
|
+
*/
|
|
11
|
+
var ClaimsService = class {
|
|
12
|
+
#client;
|
|
13
|
+
constructor(transports) {
|
|
14
|
+
this.#client = createClient(ClaimsService$1, transports.authApi);
|
|
15
|
+
}
|
|
16
|
+
/** Returns the current UTC day's available or existing claim and its reset time. */
|
|
17
|
+
async getDailyClaimStatus(options) {
|
|
18
|
+
const response = await this.#client.getDailyClaimStatus({}, toConnectCallOptions(options));
|
|
19
|
+
return parse(DailyClaimStatusSchema, response);
|
|
20
|
+
}
|
|
21
|
+
/** Claims the current UTC day's reward. Retrying returns the same claim. */
|
|
22
|
+
async claimDailyReward(options) {
|
|
23
|
+
const response = await this.#client.claimDailyReward({}, toConnectCallOptions(options));
|
|
24
|
+
return parse(ClaimDailyRewardResultSchema, response);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { ClaimsService };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.js","names":["#client","Proto.ClaimsService"],"sources":["../../../src/services/claims/claims.ts"],"sourcesContent":["import { createClient, type Client } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/claims/v1/claims_pb.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { AuthApiTransports } from \"../../shared/transports.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n ClaimDailyRewardResultSchema,\n DailyClaimStatusSchema,\n type ClaimDailyRewardResult,\n type DailyClaimStatus,\n} from \"./claims.schemas.js\";\n\n/**\n * Reads and claims daily campaign rewards for the authenticated root account.\n * The server accepts session JWTs for this service; API keys are not accepted.\n */\nexport class ClaimsService {\n #client: Client<typeof Proto.ClaimsService>;\n\n constructor(transports: AuthApiTransports) {\n this.#client = createClient(Proto.ClaimsService, transports.authApi);\n }\n\n /** Returns the current UTC day's available or existing claim and its reset time. */\n async getDailyClaimStatus(options?: PolyesterRequestOptions): Promise<DailyClaimStatus> {\n const response = await this.#client.getDailyClaimStatus({}, toConnectCallOptions(options));\n return parse(DailyClaimStatusSchema, response);\n }\n\n /** Claims the current UTC day's reward. Retrying returns the same claim. */\n async claimDailyReward(options?: PolyesterMutationOptions): Promise<ClaimDailyRewardResult> {\n const response = await this.#client.claimDailyReward({}, toConnectCallOptions(options));\n return parse(ClaimDailyRewardResultSchema, response);\n }\n}\n"],"mappings":";;;;;;;;;;AAoBA,IAAa,gBAAb,MAA2B;CACvB;CAEA,YAAY,YAA+B;EACvC,KAAKA,UAAU,aAAaC,iBAAqB,WAAW,OAAO;CACvE;;CAGA,MAAM,oBAAoB,SAA8D;EACpF,MAAM,WAAW,MAAM,KAAKD,QAAQ,oBAAoB,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACzF,OAAO,MAAM,wBAAwB,QAAQ;CACjD;;CAGA,MAAM,iBAAiB,SAAqE;EACxF,MAAM,WAAW,MAAM,KAAKA,QAAQ,iBAAiB,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACtF,OAAO,MAAM,8BAA8B,QAAQ;CACvD;AACJ"}
|