@polyester/sdk 0.14.1 → 0.15.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.
Files changed (85) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/core-client.js +1 -1
  3. package/dist/gen/fees/v1/fees_pb.d.ts +4 -2
  4. package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -1
  5. package/dist/gen/fees/v1/fees_pb.js +9 -1
  6. package/dist/gen/fees/v1/fees_pb.js.map +1 -1
  7. package/dist/gen/index.d.ts +4 -1
  8. package/dist/gen/index.js +4 -1
  9. package/dist/gen/ratelimit/v1/ratelimit_pb.d.ts +4 -2
  10. package/dist/gen/ratelimit/v1/ratelimit_pb.d.ts.map +1 -1
  11. package/dist/gen/ratelimit/v1/ratelimit_pb.js +13 -1
  12. package/dist/gen/ratelimit/v1/ratelimit_pb.js.map +1 -1
  13. package/dist/gen/vip/v1/vip_pb.d.ts +4 -2
  14. package/dist/gen/vip/v1/vip_pb.d.ts.map +1 -1
  15. package/dist/gen/vip/v1/vip_pb.js +12 -1
  16. package/dist/gen/vip/v1/vip_pb.js.map +1 -1
  17. package/dist/services/address-book/address-book.schemas.d.ts +1 -1
  18. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
  19. package/dist/services/address-book/address-book.schemas.js +2 -1
  20. package/dist/services/address-book/address-book.schemas.js.map +1 -1
  21. package/dist/services/candles/candles.d.ts.map +1 -1
  22. package/dist/services/candles/candles.js +2 -1
  23. package/dist/services/candles/candles.js.map +1 -1
  24. package/dist/services/candles/candles.schemas.d.ts +1 -1
  25. package/dist/services/candles/candles.schemas.d.ts.map +1 -1
  26. package/dist/services/candles/candles.schemas.js +3 -2
  27. package/dist/services/candles/candles.schemas.js.map +1 -1
  28. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
  29. package/dist/services/chain-analytics/chain-analytics.schemas.js +5 -5
  30. package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
  31. package/dist/services/deposit/deposit.schemas.d.ts +3 -3
  32. package/dist/services/deposit/deposit.schemas.d.ts.map +1 -1
  33. package/dist/services/deposit/deposit.schemas.js +4 -4
  34. package/dist/services/deposit/deposit.schemas.js.map +1 -1
  35. package/dist/services/guard-signer/guard-signer.schemas.d.ts +2 -2
  36. package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -1
  37. package/dist/services/guard-signer/guard-signer.schemas.js +2 -1
  38. package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -1
  39. package/dist/services/heatmap/heatmap.d.ts.map +1 -1
  40. package/dist/services/heatmap/heatmap.js +2 -1
  41. package/dist/services/heatmap/heatmap.js.map +1 -1
  42. package/dist/services/heatmap/heatmap.schemas.d.ts +1 -1
  43. package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
  44. package/dist/services/heatmap/heatmap.schemas.js +2 -1
  45. package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
  46. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +2 -2
  47. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
  48. package/dist/services/internal-transfers/internal-transfers.schemas.js +3 -2
  49. package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
  50. package/dist/services/market-data/market-data.d.ts.map +1 -1
  51. package/dist/services/market-data/market-data.js +2 -1
  52. package/dist/services/market-data/market-data.js.map +1 -1
  53. package/dist/services/market-data/market-data.schemas.d.ts +1 -1
  54. package/dist/services/market-data/market-data.schemas.js +2 -2
  55. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  56. package/dist/services/market-overview/market-overview.schemas.d.ts +1 -1
  57. package/dist/services/market-overview/market-overview.schemas.js +2 -2
  58. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  59. package/dist/services/orders/orders-modify.schemas.js +1 -1
  60. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  61. package/dist/services/orders/orders-risk.schemas.js +3 -4
  62. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  63. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +9 -9
  64. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
  65. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +17 -8
  66. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
  67. package/dist/services/shared.js +4 -2
  68. package/dist/services/shared.js.map +1 -1
  69. package/dist/services/subaccounts/subaccounts.schemas.d.ts +4 -4
  70. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +2 -2
  71. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -1
  72. package/dist/services/trading-withdraws/trading-withdraws.schemas.js +3 -2
  73. package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -1
  74. package/dist/services/trailing-oneof-inputs.js +3 -1
  75. package/dist/services/trailing-oneof-inputs.js.map +1 -1
  76. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  77. package/dist/services/triggers/trigger-input.schemas.js +3 -3
  78. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  79. package/dist/shared/decimal-surface.d.ts.map +1 -1
  80. package/dist/shared/decimal-surface.js.map +1 -1
  81. package/dist/shared/schemas.js +4 -4
  82. package/dist/shared/schemas.js.map +1 -1
  83. package/dist/utils/numbers.js +1 -10
  84. package/dist/utils/numbers.js.map +1 -1
  85. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"address-book.schemas.js","names":["Proto.AccountScopeType","Proto.DestinationWhitelistStatus","Proto.AddressBookEntryKind","Proto.TransferCounterpartyDirection","Proto.InternalWhitelistResolutionStatus","RequiredTimestampMsSchema"],"sources":["../../../src/services/address-book/address-book.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport * as Proto from \"../../gen/auth/v1/address_book_pb.js\";\nimport { SubaccountRole } from \"../../gen/auth/v1/subaccounts_pb.js\";\nimport {\n OptionalTimestampMsSchema,\n BigIntStringSchema,\n PublicIdSchema,\n TimestampMsSchema as RequiredTimestampMsSchema,\n idInputSchema,\n optionalSubaccountIdInputSchema,\n positiveBigintStringInputSchema,\n} from \"../../shared/schemas.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n ADDRESS_BOOK_ENTRY_KIND_VALUES,\n AccountScopeTypeCodec,\n AddressBookEntryKindCodec,\n DestinationWhitelistStatusCodec,\n InternalWhitelistResolutionStatusCodec,\n TRANSFER_COUNTERPARTY_DIRECTION_VALUES,\n TransferCounterpartyDirectionCodec,\n} from \"./address-book.codecs.js\";\nimport { SubaccountRoleCodec } from \"../subaccounts/subaccounts.codecs.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../utils/proto-patch.js\";\n\nconst OptionalSubaccountIdSchema = optionalSubaccountIdInputSchema();\nconst IdSchema = idInputSchema;\n\nconst AddressBookLimitSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(500)),\n);\nconst AddressBookCounterpartyLimitSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(200)),\n);\nconst AddressBookViewLimitSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(200)),\n);\nconst PageTokenSchema = v.optional(v.pipe(v.string(), v.trim()), \"\");\n\nconst TimestampMsSchema = OptionalTimestampMsSchema;\n\nconst AddressBookTagInputSchema = v.strictObject({\n name: v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(48)),\n color: v.optional(v.pipe(v.string(), v.trim(), v.maxLength(32)), \"\"),\n});\nconst AddressBookTagInputsSchema = v.pipe(v.array(AddressBookTagInputSchema), v.maxLength(10));\n\nexport const ListAddressBookEntriesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n kind: v.optional(v.picklist(ADDRESS_BOOK_ENTRY_KIND_VALUES)),\n limit: AddressBookLimitSchema,\n pageToken: PageTokenSchema,\n }),\n v.transform(({ account, kind, limit, pageToken }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n kind: kind ? AddressBookEntryKindCodec.inputToProto[kind] : undefined,\n limit,\n pageToken,\n })),\n);\n\nexport type ListAddressBookEntriesInput = v.InferInput<typeof ListAddressBookEntriesInputSchema>;\n\nexport const CreateAddressBookEntryInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n label: v.pipe(v.string(), v.trim(), v.minLength(1)),\n note: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n entry: v.variant(\"kind\", [\n v.strictObject({\n kind: v.literal(\"external\"),\n polychainChainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n address: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n v.strictObject({\n kind: v.literal(\"internal\"),\n smartAccountAddress: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n ]),\n tagIds: v.optional(v.array(IdSchema(\"tagId\")), []),\n newTags: v.optional(AddressBookTagInputsSchema, []),\n }),\n v.transform(({ account, entry, ...rest }) => ({\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n entry:\n entry.kind === \"external\"\n ? {\n case: \"external\" as const,\n value: {\n polychainChainId: entry.polychainChainId,\n address: entry.address,\n },\n }\n : {\n case: \"internal\" as const,\n value: {\n smartAccountAddress: entry.smartAccountAddress,\n },\n },\n })),\n);\n\nexport type CreateAddressBookEntryInput = v.InferInput<typeof CreateAddressBookEntryInputSchema>;\n\nexport function validateCreateAddressBookEntryInput(input: CreateAddressBookEntryInput): void {\n parse(CreateAddressBookEntryInputSchema, input);\n}\n\ntype AddressBookEntryPatch = {\n label?: string;\n note?: string;\n tagIds?: bigint[];\n newTags?: v.InferOutput<typeof AddressBookTagInputSchema>[];\n};\n\nconst ADDRESS_BOOK_ENTRY_PATCH_FIELDS = defineProtoPatchFields<AddressBookEntryPatch>()({\n label: { path: \"label\", encode: (label) => ({ label }) },\n note: { path: \"note\", encode: (note) => ({ note }) },\n tagIds: { path: \"tag_ids\", encode: (tagIds) => ({ tagIds }) },\n newTags: { path: \"new_tags\", encode: (newTags) => ({ newTags }) },\n});\n\nexport const UpdateAddressBookEntryInputSchema = v.pipe(\n v.strictObject({\n addressBookEntryId: IdSchema(\"addressBookEntryId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n label: v.optional(v.pipe(v.string(), v.trim())),\n note: v.optional(v.pipe(v.string(), v.trim())),\n tagIds: v.optional(v.array(IdSchema(\"tagId\"))),\n newTags: v.optional(AddressBookTagInputsSchema),\n }),\n v.check(\n ({ label, note, tagIds, newTags }) =>\n label !== undefined ||\n note !== undefined ||\n tagIds !== undefined ||\n newTags !== undefined,\n \"At least one address-book entry field must be provided\",\n ),\n v.transform(({ addressBookEntryId, expectedRevision, ...input }) => {\n const { patch: entry, updateMask } = buildProtoPatch(\n input,\n ADDRESS_BOOK_ENTRY_PATCH_FIELDS,\n );\n return { addressBookEntryId, entry, updateMask, expectedRevision };\n }),\n);\n\nexport type UpdateAddressBookEntryInput = v.InferInput<typeof UpdateAddressBookEntryInputSchema>;\n\nexport const DeleteAddressBookEntryInputSchema = v.strictObject({\n addressBookEntryId: IdSchema(\"addressBookEntryId\"),\n});\n\nexport type DeleteAddressBookEntryInput = v.InferInput<typeof DeleteAddressBookEntryInputSchema>;\n\nexport const CopyAddressBookEntryInputSchema = v.strictObject({\n addressBookEntryId: IdSchema(\"addressBookEntryId\"),\n targetSubaccountId: OptionalSubaccountIdSchema,\n});\n\nexport type CopyAddressBookEntryInput = v.InferInput<typeof CopyAddressBookEntryInputSchema>;\n\nexport const CreateAddressBookTagInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n name: v.pipe(v.string(), v.trim(), v.minLength(1)),\n color: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CreateAddressBookTagInput = v.InferInput<typeof CreateAddressBookTagInputSchema>;\n\nexport const UpdateAddressBookTagInputSchema = v.pipe(\n v.strictObject({\n tagId: IdSchema(\"tagId\"),\n name: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),\n color: v.optional(v.pipe(v.string(), v.trim())),\n }),\n v.check(\n ({ name, color }) => name !== undefined || color !== undefined,\n \"At least one address-book tag field must be provided\",\n ),\n);\n\nexport type UpdateAddressBookTagInput = v.InferInput<typeof UpdateAddressBookTagInputSchema>;\n\nexport const DeleteAddressBookTagInputSchema = v.strictObject({\n tagId: IdSchema(\"tagId\"),\n});\n\nexport type DeleteAddressBookTagInput = v.InferInput<typeof DeleteAddressBookTagInputSchema>;\n\nexport const ListTransferCounterpartiesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n direction: v.optional(v.picklist(TRANSFER_COUNTERPARTY_DIRECTION_VALUES)),\n kind: v.optional(v.picklist(ADDRESS_BOOK_ENTRY_KIND_VALUES)),\n limit: AddressBookCounterpartyLimitSchema,\n }),\n v.transform(({ account, direction, kind, limit }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n direction: direction\n ? TransferCounterpartyDirectionCodec.inputToProto[direction]\n : undefined,\n kind: kind ? AddressBookEntryKindCodec.inputToProto[kind] : undefined,\n limit,\n })),\n);\n\nexport type ListTransferCounterpartiesInput = v.InferInput<\n typeof ListTransferCounterpartiesInputSchema\n>;\n\nexport const ListTransferDestinationsInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n kind: v.optional(v.picklist(ADDRESS_BOOK_ENTRY_KIND_VALUES)),\n limit: AddressBookLimitSchema,\n pageToken: PageTokenSchema,\n }),\n v.transform(({ account, kind, limit, pageToken }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n kind: kind ? AddressBookEntryKindCodec.inputToProto[kind] : undefined,\n limit,\n pageToken,\n })),\n);\n\nexport type ListTransferDestinationsInput = v.InferInput<\n typeof ListTransferDestinationsInputSchema\n>;\n\nexport const SubaccountScopedInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n }),\n v.transform(({ account }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type SubaccountScopedInput = v.InferInput<typeof SubaccountScopedInputSchema>;\n\nexport const ListInternalTransferWhitelistEntriesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n limit: AddressBookLimitSchema,\n pageToken: PageTokenSchema,\n }),\n v.transform(({ account, limit, pageToken }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n limit,\n pageToken,\n })),\n);\n\nexport type ListInternalTransferWhitelistEntriesInput = v.InferInput<\n typeof ListInternalTransferWhitelistEntriesInputSchema\n>;\n\nexport const GetAddressBookViewInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n limit: AddressBookViewLimitSchema,\n /** Minimum `viewRevision` (from an invalidation event) the returned view must reach. */\n minimumViewRevision: v.optional(positiveBigintStringInputSchema(\"minimumViewRevision\")),\n }),\n v.transform(({ account, limit, minimumViewRevision }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n limit,\n minimumViewRevision,\n })),\n);\n\nexport type GetAddressBookViewInput = v.InferInput<typeof GetAddressBookViewInputSchema>;\n\nconst CountSchema = v.pipe(\n v.bigint(),\n v.transform((value) => Number(value)),\n);\n\nconst AccountScopeSchema = v.object({\n scopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.AccountScopeSchema\",\n \"scope type\",\n ),\n ),\n ),\n rootAccountId: PublicIdSchema,\n subaccountId: PublicIdSchema,\n});\n\nconst ExternalWithdrawAddressSchema = v.object({\n polychainChainId: v.pipe(v.number(), v.integer()),\n address: v.string(),\n});\n\nconst InternalTransferAccountSchema = v.object({\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.InternalTransferAccountSchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n});\n\nconst AddressBookEntryValueSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"external\"), value: ExternalWithdrawAddressSchema }),\n v.object({ case: v.literal(\"internal\"), value: InternalTransferAccountSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nconst DestinationWhitelistStatusSchema = v.pipe(\n v.enum(Proto.DestinationWhitelistStatus),\n v.transform((value) =>\n requiredEnumLabel(\n DestinationWhitelistStatusCodec.protoToOutput,\n value,\n \"PolyesterClient.DestinationWhitelistStatusSchema\",\n \"whitelist status\",\n ),\n ),\n);\n\nconst AddressBookEntryKindSchema = v.pipe(\n v.enum(Proto.AddressBookEntryKind),\n v.transform((value) =>\n requiredEnumLabel(\n AddressBookEntryKindCodec.protoToOutput,\n value,\n \"PolyesterClient.AddressBookEntryKindSchema\",\n \"entry kind\",\n ),\n ),\n);\n\nconst TransferCounterpartyDirectionSchema = v.pipe(\n v.enum(Proto.TransferCounterpartyDirection),\n v.transform((value) =>\n requiredEnumLabel(\n TransferCounterpartyDirectionCodec.protoToOutput,\n value,\n \"PolyesterClient.TransferCounterpartyDirectionSchema\",\n \"direction\",\n ),\n ),\n);\n\nexport const AddressBookSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n callerRole: v.pipe(\n v.enum(SubaccountRole),\n v.transform((role) =>\n requiredEnumLabel(\n SubaccountRoleCodec.protoToOutput,\n role,\n \"AddressBookEntrySchema\",\n \"caller role\",\n ),\n ),\n ),\n label: v.string(),\n ownerUsername: v.string(),\n smartAccountAddress: v.string(),\n});\n\nexport type AddressBook = v.InferOutput<typeof AddressBookSchema>;\n\nexport const AddressBookTagSummarySchema = v.object({\n tagId: PublicIdSchema,\n name: v.string(),\n color: v.string(),\n});\n\nexport type AddressBookTagSummary = v.InferOutput<typeof AddressBookTagSummarySchema>;\n\nexport const AddressBookTagSchema = v.object({\n tagId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n name: v.string(),\n color: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n});\n\nexport type AddressBookTag = v.InferOutput<typeof AddressBookTagSchema>;\n\nexport const AddressBookEntrySchema = v.object({\n addressBookEntryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n kind: AddressBookEntryKindSchema,\n label: v.string(),\n note: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n entry: AddressBookEntryValueSchema,\n tags: v.array(AddressBookTagSchema),\n revision: BigIntStringSchema,\n});\n\nexport type AddressBookEntry = v.InferOutput<typeof AddressBookEntrySchema>;\n\nexport const AddressBookEntriesSchema = v.array(AddressBookEntrySchema);\nexport type AddressBookEntries = v.InferOutput<typeof AddressBookEntriesSchema>;\n\nexport const TransferCounterpartySchema = v.object({\n counterpartyId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n direction: TransferCounterpartyDirectionSchema,\n kind: AddressBookEntryKindSchema,\n saved: v.boolean(),\n addressBookEntryId: PublicIdSchema,\n useCount: CountSchema,\n firstSeenAt: TimestampMsSchema,\n lastSeenAt: TimestampMsSchema,\n counterparty: AddressBookEntryValueSchema,\n});\n\nexport type TransferCounterparty = v.InferOutput<typeof TransferCounterpartySchema>;\n\nexport const TransferCounterpartiesSchema = v.array(TransferCounterpartySchema);\nexport type TransferCounterparties = v.InferOutput<typeof TransferCounterpartiesSchema>;\n\nexport const TransferDestinationSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n kind: AddressBookEntryKindSchema,\n saved: v.boolean(),\n whitelisted: v.boolean(),\n whitelistStatus: DestinationWhitelistStatusSchema,\n addressBookEntry: v.optional(AddressBookEntrySchema),\n destination: AddressBookEntryValueSchema,\n whitelistEffectiveAt: TimestampMsSchema,\n whitelistUpdatedAt: TimestampMsSchema,\n});\n\nexport type TransferDestination = v.InferOutput<typeof TransferDestinationSchema>;\n\nexport const TransferDestinationsSchema = v.array(TransferDestinationSchema);\nexport type TransferDestinations = v.InferOutput<typeof TransferDestinationsSchema>;\n\nexport const InternalTransferWhitelistEntrySchema = v.object({\n entryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.InternalTransferWhitelistEntrySchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n resolutionStatus: v.pipe(\n v.enum(Proto.InternalWhitelistResolutionStatus),\n v.transform((value) =>\n requiredEnumLabel(\n InternalWhitelistResolutionStatusCodec.protoToOutput,\n value,\n \"PolyesterClient.InternalTransferWhitelistEntrySchema\",\n \"resolution status\",\n ),\n ),\n ),\n});\n\nexport type InternalTransferWhitelistEntry = v.InferOutput<\n typeof InternalTransferWhitelistEntrySchema\n>;\n\nexport const InternalTransferWhitelistEntriesSchema = v.array(InternalTransferWhitelistEntrySchema);\n\nexport type InternalTransferWhitelistEntries = v.InferOutput<\n typeof InternalTransferWhitelistEntriesSchema\n>;\n\nexport const MirroredWithdrawWhitelistEntrySchema = v.object({\n canonicalAddress: v.string(),\n rawAddressHex: v.string(),\n updatedAt: TimestampMsSchema,\n polychainChainId: v.pipe(v.number(), v.integer()),\n});\n\nexport type MirroredWithdrawWhitelistEntry = v.InferOutput<\n typeof MirroredWithdrawWhitelistEntrySchema\n>;\n\nexport const WithdrawWhitelistViewSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n externalWhitelistRequired: v.boolean(),\n internalWhitelistRequired: v.boolean(),\n activeEntries: v.optional(v.array(MirroredWithdrawWhitelistEntrySchema), []),\n});\n\nexport type WithdrawWhitelistView = v.InferOutput<typeof WithdrawWhitelistViewSchema>;\n\nexport const AddressBookEntriesViewSchema = v.object({\n external: v.optional(\n v.array(\n v.object({\n addressBookEntryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n label: v.string(),\n note: v.string(),\n tagIds: v.optional(v.array(PublicIdSchema), []),\n whitelistStatus: DestinationWhitelistStatusSchema,\n polychainChainId: v.pipe(v.number(), v.integer()),\n address: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n revision: BigIntStringSchema,\n }),\n ),\n [],\n ),\n internal: v.optional(\n v.array(\n v.object({\n addressBookEntryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n label: v.string(),\n note: v.string(),\n tagIds: v.optional(v.array(PublicIdSchema), []),\n whitelistStatus: DestinationWhitelistStatusSchema,\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.AddressBookEntriesViewSchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n revision: BigIntStringSchema,\n }),\n ),\n [],\n ),\n});\n\nexport type AddressBookEntriesView = v.InferOutput<typeof AddressBookEntriesViewSchema>;\n\nexport const AddressBookRecentDestinationsViewSchema = v.object({\n external: v.optional(\n v.array(\n v.object({\n scope: v.optional(AccountScopeSchema),\n lastDirection: TransferCounterpartyDirectionSchema,\n saved: v.boolean(),\n addressBookEntryId: PublicIdSchema,\n useCount: CountSchema,\n lastSeenAt: TimestampMsSchema,\n polychainChainId: v.pipe(v.number(), v.integer()),\n address: v.string(),\n }),\n ),\n [],\n ),\n internal: v.optional(\n v.array(\n v.object({\n scope: v.optional(AccountScopeSchema),\n lastDirection: TransferCounterpartyDirectionSchema,\n saved: v.boolean(),\n addressBookEntryId: PublicIdSchema,\n useCount: CountSchema,\n lastSeenAt: TimestampMsSchema,\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.AddressBookRecentDestinationsViewSchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n }),\n ),\n [],\n ),\n});\n\nexport type AddressBookRecentDestinationsView = v.InferOutput<\n typeof AddressBookRecentDestinationsViewSchema\n>;\n\nexport const AddressBookViewSchema = v.object({\n books: v.optional(v.array(AddressBookSchema), []),\n entries: v.optional(AddressBookEntriesViewSchema),\n recentDestinations: v.optional(AddressBookRecentDestinationsViewSchema),\n tags: v.optional(v.array(AddressBookTagSummarySchema), []),\n withdrawWhitelist: v.optional(WithdrawWhitelistViewSchema),\n recentDestinationsTruncated: v.optional(v.boolean(), false),\n viewRevision: v.optional(BigIntStringSchema, 0n),\n});\n\nexport type AddressBookView = v.InferOutput<typeof AddressBookViewSchema>;\n\nexport const AddressBookViewInvalidatedSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n invalidatedAt: RequiredTimestampMsSchema,\n viewRevision: v.optional(BigIntStringSchema, 0n),\n});\n\nexport type AddressBookViewInvalidated = v.InferOutput<typeof AddressBookViewInvalidatedSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"address-book.schemas.js","names":["Proto.AccountScopeType","Proto.DestinationWhitelistStatus","Proto.AddressBookEntryKind","Proto.TransferCounterpartyDirection","Proto.InternalWhitelistResolutionStatus","RequiredTimestampMsSchema"],"sources":["../../../src/services/address-book/address-book.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { PositiveUint32InputSchema } from \"../shared.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport * as Proto from \"../../gen/auth/v1/address_book_pb.js\";\nimport { SubaccountRole } from \"../../gen/auth/v1/subaccounts_pb.js\";\nimport {\n OptionalTimestampMsSchema,\n BigIntStringSchema,\n PublicIdSchema,\n TimestampMsSchema as RequiredTimestampMsSchema,\n idInputSchema,\n optionalSubaccountIdInputSchema,\n positiveBigintStringInputSchema,\n} from \"../../shared/schemas.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n ADDRESS_BOOK_ENTRY_KIND_VALUES,\n AccountScopeTypeCodec,\n AddressBookEntryKindCodec,\n DestinationWhitelistStatusCodec,\n InternalWhitelistResolutionStatusCodec,\n TRANSFER_COUNTERPARTY_DIRECTION_VALUES,\n TransferCounterpartyDirectionCodec,\n} from \"./address-book.codecs.js\";\nimport { SubaccountRoleCodec } from \"../subaccounts/subaccounts.codecs.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../utils/proto-patch.js\";\n\nconst OptionalSubaccountIdSchema = optionalSubaccountIdInputSchema();\nconst IdSchema = idInputSchema;\n\nconst AddressBookLimitSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(500)),\n);\nconst AddressBookCounterpartyLimitSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(200)),\n);\nconst AddressBookViewLimitSchema = v.optional(\n v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(200)),\n);\nconst PageTokenSchema = v.optional(v.pipe(v.string(), v.trim()), \"\");\n\nconst TimestampMsSchema = OptionalTimestampMsSchema;\n\nconst AddressBookTagInputSchema = v.strictObject({\n name: v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(48)),\n color: v.optional(v.pipe(v.string(), v.trim(), v.maxLength(32)), \"\"),\n});\nconst AddressBookTagInputsSchema = v.pipe(v.array(AddressBookTagInputSchema), v.maxLength(10));\n\nexport const ListAddressBookEntriesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n kind: v.optional(v.picklist(ADDRESS_BOOK_ENTRY_KIND_VALUES)),\n limit: AddressBookLimitSchema,\n pageToken: PageTokenSchema,\n }),\n v.transform(({ account, kind, limit, pageToken }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n kind: kind ? AddressBookEntryKindCodec.inputToProto[kind] : undefined,\n limit,\n pageToken,\n })),\n);\n\nexport type ListAddressBookEntriesInput = v.InferInput<typeof ListAddressBookEntriesInputSchema>;\n\nexport const CreateAddressBookEntryInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n label: v.pipe(v.string(), v.trim(), v.minLength(1)),\n note: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n entry: v.variant(\"kind\", [\n v.strictObject({\n kind: v.literal(\"external\"),\n polychainChainId: PositiveUint32InputSchema,\n address: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n v.strictObject({\n kind: v.literal(\"internal\"),\n smartAccountAddress: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n ]),\n tagIds: v.optional(v.array(IdSchema(\"tagId\")), []),\n newTags: v.optional(AddressBookTagInputsSchema, []),\n }),\n v.transform(({ account, entry, ...rest }) => ({\n ...rest,\n subaccountId: accountScopeToSubaccountId(account),\n entry:\n entry.kind === \"external\"\n ? {\n case: \"external\" as const,\n value: {\n polychainChainId: entry.polychainChainId,\n address: entry.address,\n },\n }\n : {\n case: \"internal\" as const,\n value: {\n smartAccountAddress: entry.smartAccountAddress,\n },\n },\n })),\n);\n\nexport type CreateAddressBookEntryInput = v.InferInput<typeof CreateAddressBookEntryInputSchema>;\n\nexport function validateCreateAddressBookEntryInput(input: CreateAddressBookEntryInput): void {\n parse(CreateAddressBookEntryInputSchema, input);\n}\n\ntype AddressBookEntryPatch = {\n label?: string;\n note?: string;\n tagIds?: bigint[];\n newTags?: v.InferOutput<typeof AddressBookTagInputSchema>[];\n};\n\nconst ADDRESS_BOOK_ENTRY_PATCH_FIELDS = defineProtoPatchFields<AddressBookEntryPatch>()({\n label: { path: \"label\", encode: (label) => ({ label }) },\n note: { path: \"note\", encode: (note) => ({ note }) },\n tagIds: { path: \"tag_ids\", encode: (tagIds) => ({ tagIds }) },\n newTags: { path: \"new_tags\", encode: (newTags) => ({ newTags }) },\n});\n\nexport const UpdateAddressBookEntryInputSchema = v.pipe(\n v.strictObject({\n addressBookEntryId: IdSchema(\"addressBookEntryId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n label: v.optional(v.pipe(v.string(), v.trim())),\n note: v.optional(v.pipe(v.string(), v.trim())),\n tagIds: v.optional(v.array(IdSchema(\"tagId\"))),\n newTags: v.optional(AddressBookTagInputsSchema),\n }),\n v.check(\n ({ label, note, tagIds, newTags }) =>\n label !== undefined ||\n note !== undefined ||\n tagIds !== undefined ||\n newTags !== undefined,\n \"At least one address-book entry field must be provided\",\n ),\n v.transform(({ addressBookEntryId, expectedRevision, ...input }) => {\n const { patch: entry, updateMask } = buildProtoPatch(\n input,\n ADDRESS_BOOK_ENTRY_PATCH_FIELDS,\n );\n return { addressBookEntryId, entry, updateMask, expectedRevision };\n }),\n);\n\nexport type UpdateAddressBookEntryInput = v.InferInput<typeof UpdateAddressBookEntryInputSchema>;\n\nexport const DeleteAddressBookEntryInputSchema = v.strictObject({\n addressBookEntryId: IdSchema(\"addressBookEntryId\"),\n});\n\nexport type DeleteAddressBookEntryInput = v.InferInput<typeof DeleteAddressBookEntryInputSchema>;\n\nexport const CopyAddressBookEntryInputSchema = v.strictObject({\n addressBookEntryId: IdSchema(\"addressBookEntryId\"),\n targetSubaccountId: OptionalSubaccountIdSchema,\n});\n\nexport type CopyAddressBookEntryInput = v.InferInput<typeof CopyAddressBookEntryInputSchema>;\n\nexport const CreateAddressBookTagInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n name: v.pipe(v.string(), v.trim(), v.minLength(1)),\n color: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CreateAddressBookTagInput = v.InferInput<typeof CreateAddressBookTagInputSchema>;\n\nexport const UpdateAddressBookTagInputSchema = v.pipe(\n v.strictObject({\n tagId: IdSchema(\"tagId\"),\n name: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),\n color: v.optional(v.pipe(v.string(), v.trim())),\n }),\n v.check(\n ({ name, color }) => name !== undefined || color !== undefined,\n \"At least one address-book tag field must be provided\",\n ),\n);\n\nexport type UpdateAddressBookTagInput = v.InferInput<typeof UpdateAddressBookTagInputSchema>;\n\nexport const DeleteAddressBookTagInputSchema = v.strictObject({\n tagId: IdSchema(\"tagId\"),\n});\n\nexport type DeleteAddressBookTagInput = v.InferInput<typeof DeleteAddressBookTagInputSchema>;\n\nexport const ListTransferCounterpartiesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n direction: v.optional(v.picklist(TRANSFER_COUNTERPARTY_DIRECTION_VALUES)),\n kind: v.optional(v.picklist(ADDRESS_BOOK_ENTRY_KIND_VALUES)),\n limit: AddressBookCounterpartyLimitSchema,\n }),\n v.transform(({ account, direction, kind, limit }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n direction: direction\n ? TransferCounterpartyDirectionCodec.inputToProto[direction]\n : undefined,\n kind: kind ? AddressBookEntryKindCodec.inputToProto[kind] : undefined,\n limit,\n })),\n);\n\nexport type ListTransferCounterpartiesInput = v.InferInput<\n typeof ListTransferCounterpartiesInputSchema\n>;\n\nexport const ListTransferDestinationsInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n kind: v.optional(v.picklist(ADDRESS_BOOK_ENTRY_KIND_VALUES)),\n limit: AddressBookLimitSchema,\n pageToken: PageTokenSchema,\n }),\n v.transform(({ account, kind, limit, pageToken }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n kind: kind ? AddressBookEntryKindCodec.inputToProto[kind] : undefined,\n limit,\n pageToken,\n })),\n);\n\nexport type ListTransferDestinationsInput = v.InferInput<\n typeof ListTransferDestinationsInputSchema\n>;\n\nexport const SubaccountScopedInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n }),\n v.transform(({ account }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type SubaccountScopedInput = v.InferInput<typeof SubaccountScopedInputSchema>;\n\nexport const ListInternalTransferWhitelistEntriesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n limit: AddressBookLimitSchema,\n pageToken: PageTokenSchema,\n }),\n v.transform(({ account, limit, pageToken }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n limit,\n pageToken,\n })),\n);\n\nexport type ListInternalTransferWhitelistEntriesInput = v.InferInput<\n typeof ListInternalTransferWhitelistEntriesInputSchema\n>;\n\nexport const GetAddressBookViewInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n limit: AddressBookViewLimitSchema,\n /** Minimum `viewRevision` (from an invalidation event) the returned view must reach. */\n minimumViewRevision: v.optional(positiveBigintStringInputSchema(\"minimumViewRevision\")),\n }),\n v.transform(({ account, limit, minimumViewRevision }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n limit,\n minimumViewRevision,\n })),\n);\n\nexport type GetAddressBookViewInput = v.InferInput<typeof GetAddressBookViewInputSchema>;\n\nconst CountSchema = v.pipe(\n v.bigint(),\n v.transform((value) => Number(value)),\n);\n\nconst AccountScopeSchema = v.object({\n scopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.AccountScopeSchema\",\n \"scope type\",\n ),\n ),\n ),\n rootAccountId: PublicIdSchema,\n subaccountId: PublicIdSchema,\n});\n\nconst ExternalWithdrawAddressSchema = v.object({\n polychainChainId: v.pipe(v.number(), v.integer()),\n address: v.string(),\n});\n\nconst InternalTransferAccountSchema = v.object({\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.InternalTransferAccountSchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n});\n\nconst AddressBookEntryValueSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"external\"), value: ExternalWithdrawAddressSchema }),\n v.object({ case: v.literal(\"internal\"), value: InternalTransferAccountSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nconst DestinationWhitelistStatusSchema = v.pipe(\n v.enum(Proto.DestinationWhitelistStatus),\n v.transform((value) =>\n requiredEnumLabel(\n DestinationWhitelistStatusCodec.protoToOutput,\n value,\n \"PolyesterClient.DestinationWhitelistStatusSchema\",\n \"whitelist status\",\n ),\n ),\n);\n\nconst AddressBookEntryKindSchema = v.pipe(\n v.enum(Proto.AddressBookEntryKind),\n v.transform((value) =>\n requiredEnumLabel(\n AddressBookEntryKindCodec.protoToOutput,\n value,\n \"PolyesterClient.AddressBookEntryKindSchema\",\n \"entry kind\",\n ),\n ),\n);\n\nconst TransferCounterpartyDirectionSchema = v.pipe(\n v.enum(Proto.TransferCounterpartyDirection),\n v.transform((value) =>\n requiredEnumLabel(\n TransferCounterpartyDirectionCodec.protoToOutput,\n value,\n \"PolyesterClient.TransferCounterpartyDirectionSchema\",\n \"direction\",\n ),\n ),\n);\n\nexport const AddressBookSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n callerRole: v.pipe(\n v.enum(SubaccountRole),\n v.transform((role) =>\n requiredEnumLabel(\n SubaccountRoleCodec.protoToOutput,\n role,\n \"AddressBookEntrySchema\",\n \"caller role\",\n ),\n ),\n ),\n label: v.string(),\n ownerUsername: v.string(),\n smartAccountAddress: v.string(),\n});\n\nexport type AddressBook = v.InferOutput<typeof AddressBookSchema>;\n\nexport const AddressBookTagSummarySchema = v.object({\n tagId: PublicIdSchema,\n name: v.string(),\n color: v.string(),\n});\n\nexport type AddressBookTagSummary = v.InferOutput<typeof AddressBookTagSummarySchema>;\n\nexport const AddressBookTagSchema = v.object({\n tagId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n name: v.string(),\n color: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n});\n\nexport type AddressBookTag = v.InferOutput<typeof AddressBookTagSchema>;\n\nexport const AddressBookEntrySchema = v.object({\n addressBookEntryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n kind: AddressBookEntryKindSchema,\n label: v.string(),\n note: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n entry: AddressBookEntryValueSchema,\n tags: v.array(AddressBookTagSchema),\n revision: BigIntStringSchema,\n});\n\nexport type AddressBookEntry = v.InferOutput<typeof AddressBookEntrySchema>;\n\nexport const AddressBookEntriesSchema = v.array(AddressBookEntrySchema);\nexport type AddressBookEntries = v.InferOutput<typeof AddressBookEntriesSchema>;\n\nexport const TransferCounterpartySchema = v.object({\n counterpartyId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n direction: TransferCounterpartyDirectionSchema,\n kind: AddressBookEntryKindSchema,\n saved: v.boolean(),\n addressBookEntryId: PublicIdSchema,\n useCount: CountSchema,\n firstSeenAt: TimestampMsSchema,\n lastSeenAt: TimestampMsSchema,\n counterparty: AddressBookEntryValueSchema,\n});\n\nexport type TransferCounterparty = v.InferOutput<typeof TransferCounterpartySchema>;\n\nexport const TransferCounterpartiesSchema = v.array(TransferCounterpartySchema);\nexport type TransferCounterparties = v.InferOutput<typeof TransferCounterpartiesSchema>;\n\nexport const TransferDestinationSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n kind: AddressBookEntryKindSchema,\n saved: v.boolean(),\n whitelisted: v.boolean(),\n whitelistStatus: DestinationWhitelistStatusSchema,\n addressBookEntry: v.optional(AddressBookEntrySchema),\n destination: AddressBookEntryValueSchema,\n whitelistEffectiveAt: TimestampMsSchema,\n whitelistUpdatedAt: TimestampMsSchema,\n});\n\nexport type TransferDestination = v.InferOutput<typeof TransferDestinationSchema>;\n\nexport const TransferDestinationsSchema = v.array(TransferDestinationSchema);\nexport type TransferDestinations = v.InferOutput<typeof TransferDestinationsSchema>;\n\nexport const InternalTransferWhitelistEntrySchema = v.object({\n entryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.InternalTransferWhitelistEntrySchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n resolutionStatus: v.pipe(\n v.enum(Proto.InternalWhitelistResolutionStatus),\n v.transform((value) =>\n requiredEnumLabel(\n InternalWhitelistResolutionStatusCodec.protoToOutput,\n value,\n \"PolyesterClient.InternalTransferWhitelistEntrySchema\",\n \"resolution status\",\n ),\n ),\n ),\n});\n\nexport type InternalTransferWhitelistEntry = v.InferOutput<\n typeof InternalTransferWhitelistEntrySchema\n>;\n\nexport const InternalTransferWhitelistEntriesSchema = v.array(InternalTransferWhitelistEntrySchema);\n\nexport type InternalTransferWhitelistEntries = v.InferOutput<\n typeof InternalTransferWhitelistEntriesSchema\n>;\n\nexport const MirroredWithdrawWhitelistEntrySchema = v.object({\n canonicalAddress: v.string(),\n rawAddressHex: v.string(),\n updatedAt: TimestampMsSchema,\n polychainChainId: v.pipe(v.number(), v.integer()),\n});\n\nexport type MirroredWithdrawWhitelistEntry = v.InferOutput<\n typeof MirroredWithdrawWhitelistEntrySchema\n>;\n\nexport const WithdrawWhitelistViewSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n externalWhitelistRequired: v.boolean(),\n internalWhitelistRequired: v.boolean(),\n activeEntries: v.optional(v.array(MirroredWithdrawWhitelistEntrySchema), []),\n});\n\nexport type WithdrawWhitelistView = v.InferOutput<typeof WithdrawWhitelistViewSchema>;\n\nexport const AddressBookEntriesViewSchema = v.object({\n external: v.optional(\n v.array(\n v.object({\n addressBookEntryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n label: v.string(),\n note: v.string(),\n tagIds: v.optional(v.array(PublicIdSchema), []),\n whitelistStatus: DestinationWhitelistStatusSchema,\n polychainChainId: v.pipe(v.number(), v.integer()),\n address: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n revision: BigIntStringSchema,\n }),\n ),\n [],\n ),\n internal: v.optional(\n v.array(\n v.object({\n addressBookEntryId: PublicIdSchema,\n scope: v.optional(AccountScopeSchema),\n label: v.string(),\n note: v.string(),\n tagIds: v.optional(v.array(PublicIdSchema), []),\n whitelistStatus: DestinationWhitelistStatusSchema,\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.AddressBookEntriesViewSchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampMsSchema,\n revision: BigIntStringSchema,\n }),\n ),\n [],\n ),\n});\n\nexport type AddressBookEntriesView = v.InferOutput<typeof AddressBookEntriesViewSchema>;\n\nexport const AddressBookRecentDestinationsViewSchema = v.object({\n external: v.optional(\n v.array(\n v.object({\n scope: v.optional(AccountScopeSchema),\n lastDirection: TransferCounterpartyDirectionSchema,\n saved: v.boolean(),\n addressBookEntryId: PublicIdSchema,\n useCount: CountSchema,\n lastSeenAt: TimestampMsSchema,\n polychainChainId: v.pipe(v.number(), v.integer()),\n address: v.string(),\n }),\n ),\n [],\n ),\n internal: v.optional(\n v.array(\n v.object({\n scope: v.optional(AccountScopeSchema),\n lastDirection: TransferCounterpartyDirectionSchema,\n saved: v.boolean(),\n addressBookEntryId: PublicIdSchema,\n useCount: CountSchema,\n lastSeenAt: TimestampMsSchema,\n rootAccountId: PublicIdSchema,\n targetAccountId: PublicIdSchema,\n targetScopeType: v.pipe(\n v.enum(Proto.AccountScopeType),\n v.transform((value) =>\n requiredEnumLabel(\n AccountScopeTypeCodec.protoToOutput,\n value,\n \"PolyesterClient.AddressBookRecentDestinationsViewSchema\",\n \"target scope type\",\n ),\n ),\n ),\n smartAccountAddress: v.string(),\n rootUsername: v.string(),\n subaccountLabel: v.string(),\n }),\n ),\n [],\n ),\n});\n\nexport type AddressBookRecentDestinationsView = v.InferOutput<\n typeof AddressBookRecentDestinationsViewSchema\n>;\n\nexport const AddressBookViewSchema = v.object({\n books: v.optional(v.array(AddressBookSchema), []),\n entries: v.optional(AddressBookEntriesViewSchema),\n recentDestinations: v.optional(AddressBookRecentDestinationsViewSchema),\n tags: v.optional(v.array(AddressBookTagSummarySchema), []),\n withdrawWhitelist: v.optional(WithdrawWhitelistViewSchema),\n recentDestinationsTruncated: v.optional(v.boolean(), false),\n viewRevision: v.optional(BigIntStringSchema, 0n),\n});\n\nexport type AddressBookView = v.InferOutput<typeof AddressBookViewSchema>;\n\nexport const AddressBookViewInvalidatedSchema = v.object({\n scope: v.optional(AccountScopeSchema),\n invalidatedAt: RequiredTimestampMsSchema,\n viewRevision: v.optional(BigIntStringSchema, 0n),\n});\n\nexport type AddressBookViewInvalidated = v.InferOutput<typeof AddressBookViewInvalidatedSchema>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"candles.d.ts","names":[],"sources":["../../../src/services/candles/candles.ts"],"mappings":";;;;;;;UA+BU,8BAA8B,mBAAmB;EACvD;EACA,WAAW;;UAGL,kCAAkC,mBAAmB;EAC3D;EACA,WAAW;;;;;cAWF;;EASG,YAAA,YAAY,qBAAqB,UAAU,mBAAmB,QAAQ;;;;EAa5E,KAAK,OAAO,iBAAiB,UAAU,0BAA0B,QAAQ;;;;EAiBzE,aACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAaL,iBACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAaX,UAAU,OAAO;;;;EAOjB,cAAc,OAAO"}
1
+ {"version":3,"file":"candles.d.ts","names":[],"sources":["../../../src/services/candles/candles.ts"],"mappings":";;;;;;;UAgCU,8BAA8B,mBAAmB;EACvD;EACA,WAAW;;UAGL,kCAAkC,mBAAmB;EAC3D;EACA,WAAW;;;;;cAWF;;EASG,YAAA,YAAY,qBAAqB,UAAU,mBAAmB,QAAQ;;;;EAa5E,KAAK,OAAO,iBAAiB,UAAU,0BAA0B,QAAQ;;;;EAiBzE,aACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAaL,iBACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAaX,UAAU,OAAO;;;;EAOjB,cAAc,OAAO"}
@@ -1,5 +1,6 @@
1
1
  import { parse } from "../../shared/validation.js";
2
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
3
+ import { SymbolIdInputSchema } from "../shared.js";
3
4
  import { CandlePointSchema, MarketDataService } from "../../gen/marketdata/v1/marketdata_pb.js";
4
5
  import { connectReadyGatedProtoChannel } from "../../realtime/ready-gated-subscription.js";
5
6
  import { TimeframeCodec } from "./candles.codecs.js";
@@ -8,7 +9,7 @@ import { createClient } from "@connectrpc/connect";
8
9
  import * as v from "valibot";
9
10
  //#region src/services/candles/candles.ts
10
11
  const SubscribeCandlesParamsSchema = v.object({
11
- symbolId: v.pipe(v.number(), v.integer(), v.gtValue(0)),
12
+ symbolId: SymbolIdInputSchema,
12
13
  timeframe: TimeframeSchema
13
14
  });
14
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"candles.js","names":["#client","Proto.MarketDataService","#realtime","#scales","#rowSchema","#rowIntSchema","#columnarSchema","#columnarIntSchema","CandlePointSchema","#subscribeWithSchema","Proto.CandlePointSchema"],"sources":["../../../src/services/candles/candles.ts"],"sourcesContent":["import { createClient, type Client } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/marketdata/v1/marketdata_pb.js\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { connectReadyGatedProtoChannel } from \"../../realtime/ready-gated-subscription.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport type { PublicApiTransports } from \"../../shared/transports.js\";\nimport {\n type CandleColumnar,\n createCandleRowSchema,\n createCandleRowIntSchema,\n createCandleColumnarSchema,\n createCandleColumnarIntSchema,\n CandlePointSchema,\n TimeframeSchema,\n type Candle,\n type CandleInt,\n type Timeframe,\n type CandleColumnarInt,\n type GetCandlesInput,\n type GetCandlesColumnsInput,\n ListCandlesInputSchema,\n} from \"./candles.schemas.js\";\nimport { TimeframeCodec } from \"./candles.codecs.js\";\n\ninterface SubscribeCandlesInput extends BaseSubscribeInput<Candle> {\n symbolId: number;\n timeframe: Timeframe;\n}\n\ninterface SubscribeCandlesIntsInput extends BaseSubscribeInput<CandleInt> {\n symbolId: number;\n timeframe: Timeframe;\n}\n\nconst SubscribeCandlesParamsSchema = v.object({\n symbolId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n timeframe: TimeframeSchema,\n});\n\n/**\n * Reads and streams public spot OHLCV candle data in row and columnar formats.\n */\nexport class CandlesService {\n #client: Client<typeof Proto.MarketDataService>;\n #realtime: PolyesterRealtime;\n #scales: SdkScales;\n #rowSchema: ReturnType<typeof createCandleRowSchema>;\n #rowIntSchema: ReturnType<typeof createCandleRowIntSchema>;\n #columnarSchema: ReturnType<typeof createCandleColumnarSchema>;\n #columnarIntSchema: ReturnType<typeof createCandleColumnarIntSchema>;\n\n constructor(transports: PublicApiTransports, realtime: PolyesterRealtime, scales: SdkScales) {\n this.#client = createClient(Proto.MarketDataService, transports.publicApi);\n this.#realtime = realtime;\n this.#scales = scales;\n this.#rowSchema = createCandleRowSchema(scales);\n this.#rowIntSchema = createCandleRowIntSchema(scales);\n this.#columnarSchema = createCandleColumnarSchema(scales);\n this.#columnarIntSchema = createCandleColumnarIntSchema(scales);\n }\n\n /**\n * Returns OHLCV candles for a symbol/timeframe request, mapped into row objects with symbol id and timeframe. The proto response is newest-first and may include incomplete/reference data depending on input flags.\n */\n async list(input: GetCandlesInput, options?: PolyesterRequestOptions): Promise<Candle[]> {\n const validatedInput = parse(ListCandlesInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.getCandles(validatedInput, toConnectCallOptions(options));\n const candles = parse(v.optional(v.array(CandlePointSchema), []), res.candles);\n return candles.map((c) =>\n parse(this.#rowSchema, {\n ...c,\n symbolId: res.symbolId,\n timeframe: res.timeframe,\n }),\n );\n }\n\n /**\n * Returns candle data in chart-friendly column arrays ordered oldest-first by bucket start time. This preserves decimal-string SDK formatting from the columnar schema.\n */\n async listColumnar(\n input: GetCandlesColumnsInput,\n options?: PolyesterRequestOptions,\n ): Promise<CandleColumnar> {\n const validatedInput = parse(ListCandlesInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.getCandlesColumns(\n validatedInput,\n toConnectCallOptions(options),\n );\n return parse(this.#columnarSchema, res);\n }\n\n /**\n * Returns the same columnar candle series keyed by numeric bucket-start seconds (`tsSec`) instead of `time`.\n */\n async listColumnarInts(\n input: GetCandlesColumnsInput,\n options?: PolyesterRequestOptions,\n ): Promise<CandleColumnarInt> {\n const validatedInput = parse(ListCandlesInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.getCandlesColumns(\n validatedInput,\n toConnectCallOptions(options),\n );\n return parse(this.#columnarIntSchema, res);\n }\n\n /**\n * Subscribes to live candle updates on public:spot:market:candles:{timeframe}:{symbolId}:proto and emits row-form candles.\n */\n subscribe(input: SubscribeCandlesInput): () => void {\n return this.#subscribeWithSchema(input, this.#rowSchema);\n }\n\n /**\n * Subscribes to the same live candle channel as subscribe and emits row candles parsed through the row-int schema.\n */\n subscribeInts(input: SubscribeCandlesIntsInput): () => void {\n return this.#subscribeWithSchema(input, this.#rowIntSchema);\n }\n\n #subscribeWithSchema(\n input: SubscribeCandlesInput | SubscribeCandlesIntsInput,\n schema: ReturnType<typeof createCandleRowSchema>,\n ): () => void {\n const params = parse(SubscribeCandlesParamsSchema, {\n symbolId: input.symbolId,\n timeframe: input.timeframe,\n });\n const protoTimeframe = TimeframeCodec.inputToProto[params.timeframe];\n const channel = `public:spot:market:candles:${params.timeframe}:${params.symbolId}:proto`;\n return connectReadyGatedProtoChannel(this.#realtime, {\n channel,\n schema: Proto.CandlePointSchema,\n ready: () => this.#scales.ready(),\n onPublication: (data) => {\n const point = parse(CandlePointSchema, data);\n const candle = parse(schema, {\n ...point,\n symbolId: params.symbolId,\n timeframe: protoTimeframe,\n });\n input.onEvent(candle);\n },\n onConnected: input.onOpen,\n onDisconnected: input.onClose,\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;AAyCA,MAAM,+BAA+B,EAAE,OAAO;CAC1C,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC;CACtD,WAAW;AACf,CAAC;;;;AAKD,IAAa,iBAAb,MAA4B;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,YAAiC,UAA6B,QAAmB;EACzF,KAAKA,UAAU,aAAaC,mBAAyB,WAAW,SAAS;EACzE,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,aAAa,sBAAsB,MAAM;EAC9C,KAAKC,gBAAgB,yBAAyB,MAAM;EACpD,KAAKC,kBAAkB,2BAA2B,MAAM;EACxD,KAAKC,qBAAqB,8BAA8B,MAAM;CAClE;;;;CAKA,MAAM,KAAK,OAAwB,SAAsD;EACrF,MAAM,iBAAiB,MAAM,wBAAwB,KAAK;EAC1D,MAAM,KAAKJ,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,WAAW,gBAAgB,qBAAqB,OAAO,CAAC;EAEvF,OADgB,MAAM,EAAE,SAAS,EAAE,MAAMQ,mBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,OACzD,CAAC,CAAC,KAAK,MAChB,MAAM,KAAKJ,YAAY;GACnB,GAAG;GACH,UAAU,IAAI;GACd,WAAW,IAAI;EACnB,CAAC,CACL;CACJ;;;;CAKA,MAAM,aACF,OACA,SACuB;EACvB,MAAM,iBAAiB,MAAM,wBAAwB,KAAK;EAC1D,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,kBAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,KAAKM,iBAAiB,GAAG;CAC1C;;;;CAKA,MAAM,iBACF,OACA,SAC0B;EAC1B,MAAM,iBAAiB,MAAM,wBAAwB,KAAK;EAC1D,MAAM,KAAKH,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,kBAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,KAAKO,oBAAoB,GAAG;CAC7C;;;;CAKA,UAAU,OAA0C;EAChD,OAAO,KAAKE,qBAAqB,OAAO,KAAKL,UAAU;CAC3D;;;;CAKA,cAAc,OAA8C;EACxD,OAAO,KAAKK,qBAAqB,OAAO,KAAKJ,aAAa;CAC9D;CAEA,qBACI,OACA,QACU;EACV,MAAM,SAAS,MAAM,8BAA8B;GAC/C,UAAU,MAAM;GAChB,WAAW,MAAM;EACrB,CAAC;EACD,MAAM,iBAAiB,eAAe,aAAa,OAAO;EAC1D,MAAM,UAAU,8BAA8B,OAAO,UAAU,GAAG,OAAO,SAAS;EAClF,OAAO,8BAA8B,KAAKH,WAAW;GACjD;GACA,QAAQQ;GACR,aAAa,KAAKP,QAAQ,MAAM;GAChC,gBAAgB,SAAS;IACrB,MAAM,QAAQ,MAAMK,qBAAmB,IAAI;IAC3C,MAAM,SAAS,MAAM,QAAQ;KACzB,GAAG;KACH,UAAU,OAAO;KACjB,WAAW;IACf,CAAC;IACD,MAAM,QAAQ,MAAM;GACxB;GACA,aAAa,MAAM;GACnB,gBAAgB,MAAM;GACtB,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
1
+ {"version":3,"file":"candles.js","names":["#client","Proto.MarketDataService","#realtime","#scales","#rowSchema","#rowIntSchema","#columnarSchema","#columnarIntSchema","CandlePointSchema","#subscribeWithSchema","Proto.CandlePointSchema"],"sources":["../../../src/services/candles/candles.ts"],"sourcesContent":["import { createClient, type Client } from \"@connectrpc/connect\";\nimport { SymbolIdInputSchema } from \"../shared.js\";\nimport * as Proto from \"../../gen/marketdata/v1/marketdata_pb.js\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { connectReadyGatedProtoChannel } from \"../../realtime/ready-gated-subscription.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport type { PublicApiTransports } from \"../../shared/transports.js\";\nimport {\n type CandleColumnar,\n createCandleRowSchema,\n createCandleRowIntSchema,\n createCandleColumnarSchema,\n createCandleColumnarIntSchema,\n CandlePointSchema,\n TimeframeSchema,\n type Candle,\n type CandleInt,\n type Timeframe,\n type CandleColumnarInt,\n type GetCandlesInput,\n type GetCandlesColumnsInput,\n ListCandlesInputSchema,\n} from \"./candles.schemas.js\";\nimport { TimeframeCodec } from \"./candles.codecs.js\";\n\ninterface SubscribeCandlesInput extends BaseSubscribeInput<Candle> {\n symbolId: number;\n timeframe: Timeframe;\n}\n\ninterface SubscribeCandlesIntsInput extends BaseSubscribeInput<CandleInt> {\n symbolId: number;\n timeframe: Timeframe;\n}\n\nconst SubscribeCandlesParamsSchema = v.object({\n symbolId: SymbolIdInputSchema,\n timeframe: TimeframeSchema,\n});\n\n/**\n * Reads and streams public spot OHLCV candle data in row and columnar formats.\n */\nexport class CandlesService {\n #client: Client<typeof Proto.MarketDataService>;\n #realtime: PolyesterRealtime;\n #scales: SdkScales;\n #rowSchema: ReturnType<typeof createCandleRowSchema>;\n #rowIntSchema: ReturnType<typeof createCandleRowIntSchema>;\n #columnarSchema: ReturnType<typeof createCandleColumnarSchema>;\n #columnarIntSchema: ReturnType<typeof createCandleColumnarIntSchema>;\n\n constructor(transports: PublicApiTransports, realtime: PolyesterRealtime, scales: SdkScales) {\n this.#client = createClient(Proto.MarketDataService, transports.publicApi);\n this.#realtime = realtime;\n this.#scales = scales;\n this.#rowSchema = createCandleRowSchema(scales);\n this.#rowIntSchema = createCandleRowIntSchema(scales);\n this.#columnarSchema = createCandleColumnarSchema(scales);\n this.#columnarIntSchema = createCandleColumnarIntSchema(scales);\n }\n\n /**\n * Returns OHLCV candles for a symbol/timeframe request, mapped into row objects with symbol id and timeframe. The proto response is newest-first and may include incomplete/reference data depending on input flags.\n */\n async list(input: GetCandlesInput, options?: PolyesterRequestOptions): Promise<Candle[]> {\n const validatedInput = parse(ListCandlesInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.getCandles(validatedInput, toConnectCallOptions(options));\n const candles = parse(v.optional(v.array(CandlePointSchema), []), res.candles);\n return candles.map((c) =>\n parse(this.#rowSchema, {\n ...c,\n symbolId: res.symbolId,\n timeframe: res.timeframe,\n }),\n );\n }\n\n /**\n * Returns candle data in chart-friendly column arrays ordered oldest-first by bucket start time. This preserves decimal-string SDK formatting from the columnar schema.\n */\n async listColumnar(\n input: GetCandlesColumnsInput,\n options?: PolyesterRequestOptions,\n ): Promise<CandleColumnar> {\n const validatedInput = parse(ListCandlesInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.getCandlesColumns(\n validatedInput,\n toConnectCallOptions(options),\n );\n return parse(this.#columnarSchema, res);\n }\n\n /**\n * Returns the same columnar candle series keyed by numeric bucket-start seconds (`tsSec`) instead of `time`.\n */\n async listColumnarInts(\n input: GetCandlesColumnsInput,\n options?: PolyesterRequestOptions,\n ): Promise<CandleColumnarInt> {\n const validatedInput = parse(ListCandlesInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.getCandlesColumns(\n validatedInput,\n toConnectCallOptions(options),\n );\n return parse(this.#columnarIntSchema, res);\n }\n\n /**\n * Subscribes to live candle updates on public:spot:market:candles:{timeframe}:{symbolId}:proto and emits row-form candles.\n */\n subscribe(input: SubscribeCandlesInput): () => void {\n return this.#subscribeWithSchema(input, this.#rowSchema);\n }\n\n /**\n * Subscribes to the same live candle channel as subscribe and emits row candles parsed through the row-int schema.\n */\n subscribeInts(input: SubscribeCandlesIntsInput): () => void {\n return this.#subscribeWithSchema(input, this.#rowIntSchema);\n }\n\n #subscribeWithSchema(\n input: SubscribeCandlesInput | SubscribeCandlesIntsInput,\n schema: ReturnType<typeof createCandleRowSchema>,\n ): () => void {\n const params = parse(SubscribeCandlesParamsSchema, {\n symbolId: input.symbolId,\n timeframe: input.timeframe,\n });\n const protoTimeframe = TimeframeCodec.inputToProto[params.timeframe];\n const channel = `public:spot:market:candles:${params.timeframe}:${params.symbolId}:proto`;\n return connectReadyGatedProtoChannel(this.#realtime, {\n channel,\n schema: Proto.CandlePointSchema,\n ready: () => this.#scales.ready(),\n onPublication: (data) => {\n const point = parse(CandlePointSchema, data);\n const candle = parse(schema, {\n ...point,\n symbolId: params.symbolId,\n timeframe: protoTimeframe,\n });\n input.onEvent(candle);\n },\n onConnected: input.onOpen,\n onDisconnected: input.onClose,\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;AA0CA,MAAM,+BAA+B,EAAE,OAAO;CAC1C,UAAU;CACV,WAAW;AACf,CAAC;;;;AAKD,IAAa,iBAAb,MAA4B;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,YAAiC,UAA6B,QAAmB;EACzF,KAAKA,UAAU,aAAaC,mBAAyB,WAAW,SAAS;EACzE,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,aAAa,sBAAsB,MAAM;EAC9C,KAAKC,gBAAgB,yBAAyB,MAAM;EACpD,KAAKC,kBAAkB,2BAA2B,MAAM;EACxD,KAAKC,qBAAqB,8BAA8B,MAAM;CAClE;;;;CAKA,MAAM,KAAK,OAAwB,SAAsD;EACrF,MAAM,iBAAiB,MAAM,wBAAwB,KAAK;EAC1D,MAAM,KAAKJ,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,WAAW,gBAAgB,qBAAqB,OAAO,CAAC;EAEvF,OADgB,MAAM,EAAE,SAAS,EAAE,MAAMQ,mBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,OACzD,CAAC,CAAC,KAAK,MAChB,MAAM,KAAKJ,YAAY;GACnB,GAAG;GACH,UAAU,IAAI;GACd,WAAW,IAAI;EACnB,CAAC,CACL;CACJ;;;;CAKA,MAAM,aACF,OACA,SACuB;EACvB,MAAM,iBAAiB,MAAM,wBAAwB,KAAK;EAC1D,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,kBAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,KAAKM,iBAAiB,GAAG;CAC1C;;;;CAKA,MAAM,iBACF,OACA,SAC0B;EAC1B,MAAM,iBAAiB,MAAM,wBAAwB,KAAK;EAC1D,MAAM,KAAKH,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,kBAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,KAAKO,oBAAoB,GAAG;CAC7C;;;;CAKA,UAAU,OAA0C;EAChD,OAAO,KAAKE,qBAAqB,OAAO,KAAKL,UAAU;CAC3D;;;;CAKA,cAAc,OAA8C;EACxD,OAAO,KAAKK,qBAAqB,OAAO,KAAKJ,aAAa;CAC9D;CAEA,qBACI,OACA,QACU;EACV,MAAM,SAAS,MAAM,8BAA8B;GAC/C,UAAU,MAAM;GAChB,WAAW,MAAM;EACrB,CAAC;EACD,MAAM,iBAAiB,eAAe,aAAa,OAAO;EAC1D,MAAM,UAAU,8BAA8B,OAAO,UAAU,GAAG,OAAO,SAAS;EAClF,OAAO,8BAA8B,KAAKH,WAAW;GACjD;GACA,QAAQQ;GACR,aAAa,KAAKP,QAAQ,MAAM;GAChC,gBAAgB,SAAS;IACrB,MAAM,QAAQ,MAAMK,qBAAmB,IAAI;IAC3C,MAAM,SAAS,MAAM,QAAQ;KACzB,GAAG;KACH,UAAU,OAAO;KACjB,WAAW;IACf,CAAC;IACD,MAAM,QAAQ,MAAM;GACxB;GACA,aAAa,MAAM;GACnB,gBAAgB,MAAM;GACtB,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
@@ -148,7 +148,7 @@ type CandleInt = v.InferOutput<ReturnType<typeof createCandleRowIntSchema>>;
148
148
  type CandleColumnar = v.InferOutput<ReturnType<typeof createCandleColumnarSchema>>;
149
149
  type CandleColumnarInt = v.InferOutput<ReturnType<typeof createCandleColumnarIntSchema>>;
150
150
  declare function createListCandlesInputSchema(): v.SchemaWithPipe<readonly [v.ObjectSchema<{
151
- readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
151
+ readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
152
152
  readonly timeframe: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["1s", "1m", "5m", "15m", "30m", "1h", "4h", "12h", "1d", "1w", "1mo"], undefined>, v.TransformAction<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo", Timeframe$1.SEC_1 | Timeframe$1.MIN_1 | Timeframe$1.MIN_5 | Timeframe$1.MIN_15 | Timeframe$1.MIN_30 | Timeframe$1.HOUR_1 | Timeframe$1.HOUR_4 | Timeframe$1.DAY_1 | Timeframe$1.HOUR_12 | Timeframe$1.WEEK_1 | Timeframe$1.MONTH_1>]>;
153
153
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 10000, undefined>]>, undefined>;
154
154
  readonly includeIncomplete: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
@@ -1 +1 @@
1
- {"version":3,"file":"candles.schemas.d.ts","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"mappings":";;;;;cAQa,iBAAe,EAAA;KAEhB,YAAY,EAAE,mBAAmB;KAsBxC;EAAkB;EAAiB;;iBAqBxB,sBAAsB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoB1C,iCAAwB;iBAqCrB,2BAA2B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiC5C,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCnD,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
+ {"version":3,"file":"candles.schemas.d.ts","names":[],"sources":["../../../src/services/candles/candles.schemas.ts"],"mappings":";;;;;cASa,iBAAe,EAAA;KAEhB,YAAY,EAAE,mBAAmB;KAsBxC;EAAkB;EAAiB;;iBAqBxB,sBAAsB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoB1C,iCAAwB;iBAqCrB,2BAA2B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiC5C,8BAA8B,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCnD,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,7 +1,8 @@
1
1
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
2
2
  import { OptionalTimestampSecondsInputSchema } from "../../shared/schemas.js";
3
- import { Timeframe } from "../../gen/marketdata/v1/marketdata_pb.js";
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";
5
6
  import { TIMEFRAMES, TimeframeCodec } from "./candles.codecs.js";
6
7
  import * as v from "valibot";
7
8
  //#region src/services/candles/candles.schemas.ts
@@ -129,7 +130,7 @@ function createCandleColumnarIntSchema(scales) {
129
130
  }));
130
131
  }
131
132
  const ListCandlesInputSchema = v.pipe(v.object({
132
- symbolId: v.pipe(v.number(), v.integer(), v.gtValue(0)),
133
+ symbolId: SymbolIdInputSchema,
133
134
  timeframe: TimeframeInputSchema,
134
135
  limit: OptionalPositiveNumberSchema,
135
136
  includeIncomplete: v.optional(v.boolean(), false),
@@ -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 * 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 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 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 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 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 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 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: v.pipe(v.number(), v.integer(), v.gtValue(0)),\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":["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 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 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 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 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 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 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 +1 @@
1
- {"version":3,"file":"chain-analytics.schemas.d.ts","names":[],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"mappings":";;;;;cAsBa,2BAAyB,EAAA;KAE1B,sBAAsB,EAAE,mBAAmB;cAwC1C,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
+ {"version":3,"file":"chain-analytics.schemas.d.ts","names":[],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"mappings":";;;;;cAqBa,2BAAyB,EAAA;KAE1B,sBAAsB,EAAE,mBAAmB;cAwC1C,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,12 +1,12 @@
1
1
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
2
+ import { PROTOBUF_UINT32_MAX } from "../../shared/wire-bounds.js";
3
+ import { PositiveUint32InputSchema } from "../shared.js";
2
4
  import { scaledToDecimalOutput } from "../../shared/decimal-surface.js";
3
5
  import { ChainAnalyticsRange } from "../../gen/chain/analytics/v1/analytics_read_pb.js";
4
6
  import { CHAIN_ANALYTICS_RANGE_VALUES, ChainAnalyticsRangeCodec } from "./chain-analytics.codecs.js";
5
7
  import * as v from "valibot";
6
8
  //#region src/services/chain-analytics/chain-analytics.schemas.ts
7
- const maxUint32 = 4294967295;
8
- const PositiveUint32Schema = v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(maxUint32));
9
- const NonNegativeUint32Schema = v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(maxUint32));
9
+ const NonNegativeUint32Schema = v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(PROTOBUF_UINT32_MAX));
10
10
  const OptionalUint32Schema = v.optional(NonNegativeUint32Schema);
11
11
  const ChainAnalyticsRangeSchema = v.picklist(CHAIN_ANALYTICS_RANGE_VALUES);
12
12
  const ChainAnalyticsRangeInputSchema = v.pipe(v.optional(ChainAnalyticsRangeSchema, "1d"), v.transform((value) => ChainAnalyticsRangeCodec.inputToProto[value]));
@@ -28,7 +28,7 @@ function scaledArray(values, scale) {
28
28
  return values.map((value) => scaledToDecimalOutput(value, scale));
29
29
  }
30
30
  const GetZippedAssetSupplyInputSchema = v.strictObject({
31
- zippedAssetId: PositiveUint32Schema,
31
+ zippedAssetId: PositiveUint32InputSchema,
32
32
  ...ChainAnalyticsWindowInputEntries
33
33
  });
34
34
  const GetZippedAssetSupplyGroupInputSchema = v.strictObject({
@@ -36,7 +36,7 @@ const GetZippedAssetSupplyGroupInputSchema = v.strictObject({
36
36
  ...ChainAnalyticsWindowInputEntries
37
37
  });
38
38
  const GetUnifiedAssetBalancesInputSchema = v.strictObject({
39
- assetId: PositiveUint32Schema,
39
+ assetId: PositiveUint32InputSchema,
40
40
  ...ChainAnalyticsWindowInputEntries
41
41
  });
42
42
  function createZippedAssetSupplyResponseSchema(scales) {
@@ -1 +1 @@
1
- {"version":3,"file":"chain-analytics.schemas.js","names":["Proto.ChainAnalyticsRange"],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/chain/analytics/v1/analytics_read_pb.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport * as v from \"valibot\";\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 maxUint32 = 4_294_967_295;\n\nconst PositiveUint32Schema = v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(maxUint32));\nconst NonNegativeUint32Schema = v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(maxUint32),\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 = v.pipe(\n v.enum(Proto.ChainAnalyticsRange),\n v.transform((value) =>\n requiredEnumLabel(\n ChainAnalyticsRangeCodec.protoToOutput,\n value,\n \"ChainAnalyticsRangeSchema\",\n \"range\",\n ),\n ),\n);\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: PositiveUint32Schema,\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: PositiveUint32Schema,\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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"}
1
+ {"version":3,"file":"chain-analytics.schemas.js","names":["Proto.ChainAnalyticsRange"],"sources":["../../../src/services/chain-analytics/chain-analytics.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/chain/analytics/v1/analytics_read_pb.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { requiredEnumLabel } 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 = v.pipe(\n v.enum(Proto.ChainAnalyticsRange),\n v.transform((value) =>\n requiredEnumLabel(\n ChainAnalyticsRangeCodec.protoToOutput,\n value,\n \"ChainAnalyticsRangeSchema\",\n \"range\",\n ),\n ),\n);\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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"}
@@ -1,7 +1,7 @@
1
1
  import * as v from "valibot";
2
2
  //#region src/services/deposit/deposit.schemas.d.ts
3
3
  declare function createCreateDepositAddressInputSchema(): v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
4
- readonly chainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
4
+ readonly chainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
5
5
  readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
6
6
  readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
7
7
  }, undefined>], undefined>, undefined>;
@@ -16,7 +16,7 @@ declare function createCreateDepositAddressInputSchema(): v.SchemaWithPipe<reado
16
16
  }>]>;
17
17
  type CreateDepositAddressInput = v.InferInput<ReturnType<typeof createCreateDepositAddressInputSchema>>;
18
18
  declare function createListDepositAddressesInputSchema(): v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
19
- readonly chainId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>, undefined>;
19
+ readonly chainId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>, undefined>;
20
20
  readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
21
21
  readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
22
22
  }, undefined>], undefined>, undefined>;
@@ -31,7 +31,7 @@ declare function createListDepositAddressesInputSchema(): v.SchemaWithPipe<reado
31
31
  }>]>;
32
32
  type ListDepositAddressesInput = v.InferInput<ReturnType<typeof createListDepositAddressesInputSchema>>;
33
33
  declare const DepositAddressSchema: v.ObjectSchema<{
34
- readonly chainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
34
+ readonly chainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
35
35
  readonly depositAddress: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
36
36
  }, undefined>;
37
37
  type DepositAddress = v.InferOutput<typeof DepositAddressSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.schemas.d.ts","names":[],"sources":["../../../src/services/deposit/deposit.schemas.ts"],"mappings":";;iBAmBgB,yCAAqC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAIzC,4BAA4B,EAAE,WACtC,kBAAkB;iBAiBN,yCAAqC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAIzC,4BAA4B,EAAE,WACtC,kBAAkB;cAMT,sBAAoB,EAAA;;;;KAKrB,iBAAiB,EAAE,mBAAmB"}
1
+ {"version":3,"file":"deposit.schemas.d.ts","names":[],"sources":["../../../src/services/deposit/deposit.schemas.ts"],"mappings":";;iBAkBgB,yCAAqC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAIzC,4BAA4B,EAAE,WACtC,kBAAkB;iBAiBN,yCAAqC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAIzC,4BAA4B,EAAE,WACtC,kBAAkB;cAMT,sBAAoB,EAAA;;;;KAKrB,iBAAiB,EAAE,mBAAmB"}
@@ -1,23 +1,23 @@
1
+ import { PositiveUint32InputSchema } from "../shared.js";
1
2
  import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
2
3
  import * as v from "valibot";
3
4
  //#region src/services/deposit/deposit.schemas.ts
4
- const ChainIdSchema = v.pipe(v.number(), v.integer(), v.gtValue(0));
5
5
  const CreateDepositAddressInputSchema = v.pipe(v.strictObject({
6
6
  ...AccountScopeInputEntries,
7
- chainId: ChainIdSchema
7
+ chainId: PositiveUint32InputSchema
8
8
  }), v.transform(({ account, ...input }) => ({
9
9
  ...input,
10
10
  subaccountId: accountScopeToSubaccountId(account)
11
11
  })));
12
12
  const ListDepositAddressesInputSchema = v.pipe(v.strictObject({
13
13
  ...AccountScopeInputEntries,
14
- chainId: v.optional(ChainIdSchema)
14
+ chainId: v.optional(PositiveUint32InputSchema)
15
15
  }), v.transform(({ account, ...input }) => ({
16
16
  ...input,
17
17
  subaccountId: accountScopeToSubaccountId(account)
18
18
  })));
19
19
  const DepositAddressSchema = v.object({
20
- chainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),
20
+ chainId: PositiveUint32InputSchema,
21
21
  depositAddress: v.pipe(v.string(), v.trim(), v.minLength(1))
22
22
  });
23
23
  const DepositAddressesSchema = v.array(DepositAddressSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.schemas.js","names":[],"sources":["../../../src/services/deposit/deposit.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\n\nconst ChainIdSchema = v.pipe(v.number(), v.integer(), v.gtValue(0));\n\nexport const CreateDepositAddressInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n chainId: ChainIdSchema,\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport function createCreateDepositAddressInputSchema() {\n return CreateDepositAddressInputSchema;\n}\n\nexport type CreateDepositAddressInput = v.InferInput<\n ReturnType<typeof createCreateDepositAddressInputSchema>\n>;\nexport type CreateDepositAddressRequest = v.InferOutput<\n ReturnType<typeof createCreateDepositAddressInputSchema>\n>;\n\nexport const ListDepositAddressesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n chainId: v.optional(ChainIdSchema),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport function createListDepositAddressesInputSchema() {\n return ListDepositAddressesInputSchema;\n}\n\nexport type ListDepositAddressesInput = v.InferInput<\n ReturnType<typeof createListDepositAddressesInputSchema>\n>;\nexport type ListDepositAddressesRequest = v.InferOutput<\n ReturnType<typeof createListDepositAddressesInputSchema>\n>;\n\nexport const DepositAddressSchema = v.object({\n chainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n depositAddress: v.pipe(v.string(), v.trim(), v.minLength(1)),\n});\n\nexport type DepositAddress = v.InferOutput<typeof DepositAddressSchema>;\n\nexport const DepositAddressesSchema = v.array(DepositAddressSchema);\n"],"mappings":";;;AAMA,MAAM,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC;AAElE,MAAa,kCAAkC,EAAE,KAC7C,EAAE,aAAa;CACX,GAAG;CACH,SAAS;AACb,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAaA,MAAa,kCAAkC,EAAE,KAC7C,EAAE,aAAa;CACX,GAAG;CACH,SAAS,EAAE,SAAS,aAAa;AACrC,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAaA,MAAa,uBAAuB,EAAE,OAAO;CACzC,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC;CACrD,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/D,CAAC;AAID,MAAa,yBAAyB,EAAE,MAAM,oBAAoB"}
1
+ {"version":3,"file":"deposit.schemas.js","names":[],"sources":["../../../src/services/deposit/deposit.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { PositiveUint32InputSchema } from \"../shared.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\n\nexport const CreateDepositAddressInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n chainId: PositiveUint32InputSchema,\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport function createCreateDepositAddressInputSchema() {\n return CreateDepositAddressInputSchema;\n}\n\nexport type CreateDepositAddressInput = v.InferInput<\n ReturnType<typeof createCreateDepositAddressInputSchema>\n>;\nexport type CreateDepositAddressRequest = v.InferOutput<\n ReturnType<typeof createCreateDepositAddressInputSchema>\n>;\n\nexport const ListDepositAddressesInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n chainId: v.optional(PositiveUint32InputSchema),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport function createListDepositAddressesInputSchema() {\n return ListDepositAddressesInputSchema;\n}\n\nexport type ListDepositAddressesInput = v.InferInput<\n ReturnType<typeof createListDepositAddressesInputSchema>\n>;\nexport type ListDepositAddressesRequest = v.InferOutput<\n ReturnType<typeof createListDepositAddressesInputSchema>\n>;\n\nexport const DepositAddressSchema = v.object({\n chainId: PositiveUint32InputSchema,\n depositAddress: v.pipe(v.string(), v.trim(), v.minLength(1)),\n});\n\nexport type DepositAddress = v.InferOutput<typeof DepositAddressSchema>;\n\nexport const DepositAddressesSchema = v.array(DepositAddressSchema);\n"],"mappings":";;;;AAOA,MAAa,kCAAkC,EAAE,KAC7C,EAAE,aAAa;CACX,GAAG;CACH,SAAS;AACb,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAaA,MAAa,kCAAkC,EAAE,KAC7C,EAAE,aAAa;CACX,GAAG;CACH,SAAS,EAAE,SAAS,yBAAyB;AACjD,CAAC,GACD,EAAE,WAAW,EAAE,SAAS,GAAG,aAAa;CACpC,GAAG;CACH,cAAc,2BAA2B,OAAO;AACpD,EAAE,CACN;AAaA,MAAa,uBAAuB,EAAE,OAAO;CACzC,SAAS;CACT,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/D,CAAC;AAID,MAAa,yBAAyB,EAAE,MAAM,oBAAoB"}
@@ -17,7 +17,7 @@ declare const SignProtectedActionInputSchema: v.SchemaWithPipe<readonly [v.Stric
17
17
  readonly action: v.PicklistSchema<readonly ["fundingSetExternalWhitelistRequired", "fundingAddExternalWhitelist", "fundingRemoveExternalWhitelist", "fundingAddInternalWhitelist", "fundingRemoveInternalWhitelist", "fundingSetInternalWhitelistRequired"], undefined>;
18
18
  readonly args: v.OptionalSchema<v.VariantSchema<"case", [v.StrictObjectSchema<{
19
19
  readonly case: v.LiteralSchema<"externalWhitelist", undefined>;
20
- readonly polychainChainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
20
+ readonly polychainChainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
21
21
  readonly addresses: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
22
22
  }, undefined>, v.StrictObjectSchema<{
23
23
  readonly case: v.LiteralSchema<"internalWhitelist", undefined>;
@@ -83,7 +83,7 @@ declare const BatchSignProtectedActionInputSchema: v.SchemaWithPipe<readonly [v.
83
83
  readonly action: v.PicklistSchema<readonly ["fundingSetExternalWhitelistRequired", "fundingAddExternalWhitelist", "fundingRemoveExternalWhitelist", "fundingAddInternalWhitelist", "fundingRemoveInternalWhitelist", "fundingSetInternalWhitelistRequired"], undefined>;
84
84
  readonly args: v.OptionalSchema<v.VariantSchema<"case", [v.StrictObjectSchema<{
85
85
  readonly case: v.LiteralSchema<"externalWhitelist", undefined>;
86
- readonly polychainChainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
86
+ readonly polychainChainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
87
87
  readonly addresses: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
88
88
  }, undefined>, v.StrictObjectSchema<{
89
89
  readonly case: v.LiteralSchema<"internalWhitelist", undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"guard-signer.schemas.d.ts","names":[],"sources":["../../../src/services/guard-signer/guard-signer.schemas.ts"],"mappings":";;;cAYa,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;KAS7B,yBAAyB,EAAE,kBAAkB;cAoD5C,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAa/B,2BAA2B,EAAE,kBAAkB;cAE9C,qCAAmC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsBpC,gCAAgC,EAAE,kBACnC;cAGE,yBAAuB,EAAA;;;;;;;KAQxB,oBAAoB,EAAE,mBAAmB;cAExC,qBAAmB,EAAA,yBAAA,EAAA;;;;;;;;;;;EAS4B;;;;;;;KAKhD,gBAAgB,EAAE,mBAAmB;cAEpC,2BAAyB,EAAA;;;;;;;;;;;;IAPsB;;;;;;;;KAWhD,sBAAsB,EAAE,mBAAmB;cAE1C,qCAAmC,EAAA;;;KAIpC,gCAAgC,EAAE,mBACnC;cAGE,qCAAmC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;IArBY;;;;;;;;;;;;IAAA;;;;;;;;;;;;IAAA;;;;;;;;KAgChD,gCAAgC,EAAE,mBACnC;cAGE,qCAAmC,EAAA;;;KAIpC,gCAAgC,EAAE,mBACnC"}
1
+ {"version":3,"file":"guard-signer.schemas.d.ts","names":[],"sources":["../../../src/services/guard-signer/guard-signer.schemas.ts"],"mappings":";;;cAaa,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;KAS7B,yBAAyB,EAAE,kBAAkB;cAoD5C,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAa/B,2BAA2B,EAAE,kBAAkB;cAE9C,qCAAmC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsBpC,gCAAgC,EAAE,kBACnC;cAGE,yBAAuB,EAAA;;;;;;;KAQxB,oBAAoB,EAAE,mBAAmB;cAExC,qBAAmB,EAAA,yBAAA,EAAA;;;;;;;;;;;EAS4B;;;;;;;KAKhD,gBAAgB,EAAE,mBAAmB;cAEpC,2BAAyB,EAAA;;;;;;;;;;;;IAPsB;;;;;;;;KAWhD,sBAAsB,EAAE,mBAAmB;cAE1C,qCAAmC,EAAA;;;KAIpC,gCAAgC,EAAE,mBACnC;cAGE,qCAAmC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;IArBY;;;;;;;;;;;;IAAA;;;;;;;;;;;;IAAA;;;;;;;;KAgChD,gCAAgC,EAAE,mBACnC;cAGE,qCAAmC,EAAA;;;KAIpC,gCAAgC,EAAE,mBACnC"}
@@ -1,3 +1,4 @@
1
+ import { PositiveUint32InputSchema } from "../shared.js";
1
2
  import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
2
3
  import { PROTECTED_ACTION_VALUES, ProtectedActionCodec } from "./guard-signer.codecs.js";
3
4
  import * as v from "valibot";
@@ -9,7 +10,7 @@ const GuardSignerScopedInputSchema = v.pipe(v.strictObject({ ...AccountScopeInpu
9
10
  const ProtectedActionArgsInputSchema = v.variant("case", [
10
11
  v.strictObject({
11
12
  case: v.literal("externalWhitelist"),
12
- polychainChainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),
13
+ polychainChainId: PositiveUint32InputSchema,
13
14
  addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1))
14
15
  }),
15
16
  v.strictObject({