@polyester/sdk 0.7.0 → 0.9.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 (117) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/catalogs/readers.js +1 -1
  3. package/dist/gen/auth/v1/api_keys_pb.d.ts +1 -1
  4. package/dist/gen/auth/v1/api_keys_pb.js.map +1 -1
  5. package/dist/gen/auth/v1/policies_pb.d.ts +69 -341
  6. package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -1
  7. package/dist/gen/auth/v1/policies_pb.js +28 -46
  8. package/dist/gen/auth/v1/policies_pb.js.map +1 -1
  9. package/dist/gen/fees/v1/fees_pb.d.ts +0 -6
  10. package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -1
  11. package/dist/gen/fees/v1/fees_pb.js +1 -1
  12. package/dist/gen/fees/v1/fees_pb.js.map +1 -1
  13. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +6 -11
  14. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
  15. package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
  16. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
  17. package/dist/gen/orderbook/v1/orderbook_pb.d.ts +3 -3
  18. package/dist/gen/orderbook/v1/orderbook_pb.js +1 -1
  19. package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -1
  20. package/dist/gen/orders/v1/orders_pb.d.ts +43 -12
  21. package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
  22. package/dist/gen/orders/v1/orders_pb.js +25 -1
  23. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  24. package/dist/gen/triggers/v1/triggers_pb.d.ts +28 -14
  25. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
  26. package/dist/gen/triggers/v1/triggers_pb.js +7 -1
  27. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
  28. package/dist/index.d.ts +3 -3
  29. package/dist/services/fees/fees.schemas.d.ts +2 -3
  30. package/dist/services/fees/fees.schemas.d.ts.map +1 -1
  31. package/dist/services/fees/fees.schemas.js +3 -4
  32. package/dist/services/fees/fees.schemas.js.map +1 -1
  33. package/dist/services/market-data/market-data.schemas.js +1 -1
  34. package/dist/services/market-overview/market-overview.d.ts +1 -1
  35. package/dist/services/market-overview/market-overview.js +1 -1
  36. package/dist/services/market-overview/market-overview.js.map +1 -1
  37. package/dist/services/market-overview/market-overview.schemas.d.ts +20 -7
  38. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  39. package/dist/services/market-overview/market-overview.schemas.js +8 -6
  40. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  41. package/dist/services/orderbook/orderbook.d.ts +3 -4
  42. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  43. package/dist/services/orderbook/orderbook.js +13 -10
  44. package/dist/services/orderbook/orderbook.js.map +1 -1
  45. package/dist/services/orderbook/orderbook.schemas.d.ts +8 -9
  46. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
  47. package/dist/services/orderbook/orderbook.schemas.js +9 -8
  48. package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
  49. package/dist/services/orders/order-errors.schemas.d.ts +1 -1
  50. package/dist/services/orders/orders-batch.schemas.d.ts +42 -42
  51. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  52. package/dist/services/orders/orders-batch.schemas.js +7 -8
  53. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  54. package/dist/services/orders/orders-input.schemas.d.ts +29 -29
  55. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  56. package/dist/services/orders/orders-input.schemas.js +10 -10
  57. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  58. package/dist/services/orders/orders-modify.schemas.d.ts +3 -2
  59. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  60. package/dist/services/orders/orders-modify.schemas.js +5 -3
  61. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  62. package/dist/services/orders/orders-risk.schemas.js +1 -1
  63. package/dist/services/orders/orders.d.ts +5 -5
  64. package/dist/services/orders/orders.d.ts.map +1 -1
  65. package/dist/services/orders/orders.js +8 -8
  66. package/dist/services/orders/orders.js.map +1 -1
  67. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +2 -2
  68. package/dist/services/policies/api-key-policies/api-key-policies.js +2 -2
  69. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  70. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +30 -155
  71. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
  72. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +5 -53
  73. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
  74. package/dist/services/policies/shared.codecs.js +4 -12
  75. package/dist/services/policies/shared.codecs.js.map +1 -1
  76. package/dist/services/policies/shared.d.ts +1 -1
  77. package/dist/services/policies/shared.d.ts.map +1 -1
  78. package/dist/services/policies/shared.js +5 -12
  79. package/dist/services/policies/shared.js.map +1 -1
  80. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +1 -1
  81. package/dist/services/policies/subaccount-policies/subaccount-policies.js +1 -1
  82. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  83. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +19 -215
  84. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
  85. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +9 -115
  86. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
  87. package/dist/services/shared.js +4 -1
  88. package/dist/services/shared.js.map +1 -1
  89. package/dist/services/subaccounts/subaccounts.schemas.d.ts +1 -1
  90. package/dist/services/trades/trades.schemas.js +1 -1
  91. package/dist/services/trailing-oneof-inputs.js +1 -1
  92. package/dist/services/triggers/trigger-child-order.schemas.js +5 -3
  93. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
  94. package/dist/services/triggers/trigger-input.schemas.d.ts +46 -35
  95. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  96. package/dist/services/triggers/trigger-input.schemas.js +14 -4
  97. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  98. package/dist/services/triggers/triggers-output.schemas.d.ts +4 -5
  99. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  100. package/dist/services/triggers/triggers-output.schemas.js +3 -3
  101. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  102. package/dist/services/triggers/triggers.codecs.js +6 -3
  103. package/dist/services/triggers/triggers.codecs.js.map +1 -1
  104. package/dist/services/triggers/triggers.d.ts +4 -4
  105. package/dist/services/triggers/triggers.js +4 -4
  106. package/dist/services/triggers/triggers.js.map +1 -1
  107. package/dist/services/triggers/triggers.types.d.ts +3 -3
  108. package/dist/shared/decimal-surface.js +1 -1
  109. package/dist/shared/schemas.js +2 -2
  110. package/dist/shared/schemas.js.map +1 -1
  111. package/dist/shared/transports.js +6 -1
  112. package/dist/shared/transports.js.map +1 -1
  113. package/dist/shared/wire-bounds.js +3 -1
  114. package/dist/shared/wire-bounds.js.map +1 -1
  115. package/dist/utils/numbers.js +1 -10
  116. package/dist/utils/numbers.js.map +1 -1
  117. package/package.json +2 -2
@@ -24,20 +24,12 @@ declare const ApiKeyPolicySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
24
24
  readonly name: v.StringSchema<undefined>;
25
25
  readonly description: v.StringSchema<undefined>;
26
26
  readonly spotMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
27
- readonly symbol: v.StringSchema<undefined>;
27
+ readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
28
28
  }, undefined>, undefined>, readonly []>;
29
29
  readonly spotMarketScope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof MarketScope_Value, undefined>, v.TransformAction<MarketScope_Value, DecodedEnum<"all" | "allowlist">>]>;
30
- readonly perpMarketScope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof MarketScope_Value, undefined>, v.TransformAction<MarketScope_Value, DecodedEnum<"all" | "allowlist">>]>;
31
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
32
- readonly symbol: v.StringSchema<undefined>;
33
- readonly maxLeverageX: v.NumberSchema<undefined>;
34
- }, undefined>, undefined>, readonly []>;
35
- readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.EnumSchema<typeof PolicyAction, undefined>, undefined>, readonly []>, v.TransformAction<v.EnumValues<typeof PolicyAction>[], DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[]>]>;
30
+ readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.EnumSchema<typeof PolicyAction, undefined>, undefined>, readonly []>, v.TransformAction<v.EnumValues<typeof PolicyAction>[], DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[]>]>;
36
31
  readonly isTemplate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
37
32
  readonly sourceTemplateId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
38
- readonly maxOrderNotional: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, number | undefined>]>;
39
- readonly dailyInternalTransferOutLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
40
- readonly dailyWithdrawLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
41
33
  readonly createdAt: v.SchemaWithPipe<readonly [v.ObjectSchema<{
42
34
  readonly seconds: v.BigintSchema<undefined>;
43
35
  readonly nanos: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
@@ -55,20 +47,12 @@ declare const ApiKeyPolicySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
55
47
  name: string;
56
48
  description: string;
57
49
  spotMarkets: {
58
- symbol: string;
50
+ symbolId: number;
59
51
  }[];
60
52
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
61
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
62
- perpMarkets: {
63
- symbol: string;
64
- maxLeverageX: number;
65
- }[];
66
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
53
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
67
54
  isTemplate: boolean;
68
55
  sourceTemplateId?: string | undefined;
69
- maxOrderNotional?: number | undefined;
70
- dailyInternalTransferOutLimit: number;
71
- dailyWithdrawLimit: number;
72
56
  createdAt: number;
73
57
  updatedAt: {
74
58
  seconds: bigint;
@@ -82,20 +66,12 @@ declare const ApiKeyPolicySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
82
66
  name: string;
83
67
  description: string;
84
68
  spotMarkets: {
85
- symbol: string;
69
+ symbolId: number;
86
70
  }[];
87
71
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
88
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
89
- perpMarkets: {
90
- symbol: string;
91
- maxLeverageX: number;
92
- }[];
93
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
72
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
94
73
  isTemplate: boolean;
95
74
  sourceTemplateId?: string | undefined;
96
- maxOrderNotional?: number | undefined;
97
- dailyInternalTransferOutLimit: number;
98
- dailyWithdrawLimit: number;
99
75
  createdAt: number;
100
76
  revision: string;
101
77
  }>]>;
@@ -106,20 +82,12 @@ declare const ListApiKeyPoliciesResponseSchema: v.SchemaWithPipe<readonly [v.Obj
106
82
  readonly name: v.StringSchema<undefined>;
107
83
  readonly description: v.StringSchema<undefined>;
108
84
  readonly spotMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
109
- readonly symbol: v.StringSchema<undefined>;
85
+ readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
110
86
  }, undefined>, undefined>, readonly []>;
111
87
  readonly spotMarketScope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof MarketScope_Value, undefined>, v.TransformAction<MarketScope_Value, DecodedEnum<"all" | "allowlist">>]>;
112
- readonly perpMarketScope: v.SchemaWithPipe<readonly [v.EnumSchema<typeof MarketScope_Value, undefined>, v.TransformAction<MarketScope_Value, DecodedEnum<"all" | "allowlist">>]>;
113
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
114
- readonly symbol: v.StringSchema<undefined>;
115
- readonly maxLeverageX: v.NumberSchema<undefined>;
116
- }, undefined>, undefined>, readonly []>;
117
- readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.EnumSchema<typeof PolicyAction, undefined>, undefined>, readonly []>, v.TransformAction<v.EnumValues<typeof PolicyAction>[], DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[]>]>;
88
+ readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.EnumSchema<typeof PolicyAction, undefined>, undefined>, readonly []>, v.TransformAction<v.EnumValues<typeof PolicyAction>[], DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[]>]>;
118
89
  readonly isTemplate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
119
90
  readonly sourceTemplateId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
120
- readonly maxOrderNotional: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, number | undefined>]>;
121
- readonly dailyInternalTransferOutLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
122
- readonly dailyWithdrawLimit: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
123
91
  readonly createdAt: v.SchemaWithPipe<readonly [v.ObjectSchema<{
124
92
  readonly seconds: v.BigintSchema<undefined>;
125
93
  readonly nanos: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
@@ -137,20 +105,12 @@ declare const ListApiKeyPoliciesResponseSchema: v.SchemaWithPipe<readonly [v.Obj
137
105
  name: string;
138
106
  description: string;
139
107
  spotMarkets: {
140
- symbol: string;
108
+ symbolId: number;
141
109
  }[];
142
110
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
143
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
144
- perpMarkets: {
145
- symbol: string;
146
- maxLeverageX: number;
147
- }[];
148
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
111
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
149
112
  isTemplate: boolean;
150
113
  sourceTemplateId?: string | undefined;
151
- maxOrderNotional?: number | undefined;
152
- dailyInternalTransferOutLimit: number;
153
- dailyWithdrawLimit: number;
154
114
  createdAt: number;
155
115
  updatedAt: {
156
116
  seconds: bigint;
@@ -164,20 +124,12 @@ declare const ListApiKeyPoliciesResponseSchema: v.SchemaWithPipe<readonly [v.Obj
164
124
  name: string;
165
125
  description: string;
166
126
  spotMarkets: {
167
- symbol: string;
127
+ symbolId: number;
168
128
  }[];
169
129
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
170
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
171
- perpMarkets: {
172
- symbol: string;
173
- maxLeverageX: number;
174
- }[];
175
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
130
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
176
131
  isTemplate: boolean;
177
132
  sourceTemplateId?: string | undefined;
178
- maxOrderNotional?: number | undefined;
179
- dailyInternalTransferOutLimit: number;
180
- dailyWithdrawLimit: number;
181
133
  createdAt: number;
182
134
  revision: string;
183
135
  }>]>, undefined>, readonly []>;
@@ -189,20 +141,12 @@ declare const ListApiKeyPoliciesResponseSchema: v.SchemaWithPipe<readonly [v.Obj
189
141
  name: string;
190
142
  description: string;
191
143
  spotMarkets: {
192
- symbol: string;
144
+ symbolId: number;
193
145
  }[];
194
146
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
195
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
196
- perpMarkets: {
197
- symbol: string;
198
- maxLeverageX: number;
199
- }[];
200
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
147
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
201
148
  isTemplate: boolean;
202
149
  sourceTemplateId?: string | undefined;
203
- maxOrderNotional?: number | undefined;
204
- dailyInternalTransferOutLimit: number;
205
- dailyWithdrawLimit: number;
206
150
  createdAt: number;
207
151
  revision: string;
208
152
  }[];
@@ -213,20 +157,12 @@ declare const ListApiKeyPoliciesResponseSchema: v.SchemaWithPipe<readonly [v.Obj
213
157
  name: string;
214
158
  description: string;
215
159
  spotMarkets: {
216
- symbol: string;
160
+ symbolId: number;
217
161
  }[];
218
162
  spotMarketScope: DecodedEnum<"all" | "allowlist">;
219
- perpMarketScope: DecodedEnum<"all" | "allowlist">;
220
- perpMarkets: {
221
- symbol: string;
222
- maxLeverageX: number;
223
- }[];
224
- actions: DecodedEnum<"trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists">[];
163
+ actions: DecodedEnum<"trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book">[];
225
164
  isTemplate: boolean;
226
165
  sourceTemplateId?: string | undefined;
227
- maxOrderNotional?: number | undefined;
228
- dailyInternalTransferOutLimit: number;
229
- dailyWithdrawLimit: number;
230
166
  createdAt: number;
231
167
  revision: string;
232
168
  }[]>]>;
@@ -235,55 +171,31 @@ declare const CreateApiKeyPolicyInputSchema: v.SchemaWithPipe<readonly [v.Strict
235
171
  readonly name: v.StringSchema<undefined>;
236
172
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, "">;
237
173
  readonly spotMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
238
- readonly symbol: v.StringSchema<undefined>;
239
- }, undefined>, undefined>, readonly []>;
240
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
241
- readonly symbol: v.StringSchema<undefined>;
242
- readonly maxLeverageX: v.NumberSchema<undefined>;
174
+ readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
243
175
  }, undefined>, undefined>, readonly []>;
244
176
  readonly spotMarketScope: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["all", "allowlist"], undefined>, v.TransformAction<"all" | "allowlist", MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST>]>;
245
- readonly perpMarketScope: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["all", "allowlist"], undefined>, v.TransformAction<"all" | "allowlist", MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST>]>;
246
- readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "trade-perp", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-perp", "read-internal-transfers", "read-external-withdrawals", "read-transfer-controls", "manage-address-book", "manage-transfer-whitelists"], undefined>, undefined>, readonly []>, v.TransformAction<("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[], (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[]>]>;
247
- readonly maxOrderNotional: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
248
- readonly dailyInternalTransferLimit: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
249
- readonly dailyWithdrawLimit: v.SchemaWithPipe<readonly [v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, null>, v.TransformAction<number | null, bigint>]>;
177
+ readonly actions: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-internal-transfers", "read-address-book", "manage-address-book"], undefined>, undefined>, readonly []>, v.TransformAction<("trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book")[], (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[]>]>;
250
178
  readonly isTemplate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
251
179
  readonly assignToKeyId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>;
252
180
  }, undefined>, v.TransformAction<{
253
181
  name: string;
254
182
  description: string;
255
183
  spotMarkets: {
256
- symbol: string;
257
- }[];
258
- perpMarkets: {
259
- symbol: string;
260
- maxLeverageX: number;
184
+ symbolId: number;
261
185
  }[];
262
186
  spotMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
263
- perpMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
264
- actions: (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[];
265
- maxOrderNotional: bigint;
266
- dailyInternalTransferLimit: bigint;
267
- dailyWithdrawLimit: bigint;
187
+ actions: (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[];
268
188
  isTemplate: boolean;
269
189
  assignToKeyId?: string | undefined;
270
190
  }, {
271
191
  policy: {
272
- dailyInternalTransferOutLimit: bigint;
273
192
  name: string;
274
193
  description: string;
275
194
  spotMarkets: {
276
- symbol: string;
277
- }[];
278
- perpMarkets: {
279
- symbol: string;
280
- maxLeverageX: number;
195
+ symbolId: number;
281
196
  }[];
282
197
  spotMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
283
- perpMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
284
- actions: (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[];
285
- maxOrderNotional: bigint;
286
- dailyWithdrawLimit: bigint;
198
+ actions: (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[];
287
199
  isTemplate: boolean;
288
200
  };
289
201
  assignToKeyId: string | undefined;
@@ -295,18 +207,10 @@ declare const UpdateApiKeyPolicyInputSchema: v.SchemaWithPipe<readonly [v.Strict
295
207
  readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
296
208
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
297
209
  readonly spotMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
298
- readonly symbol: v.StringSchema<undefined>;
299
- }, undefined>, undefined>, undefined>;
300
- readonly perpMarkets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
301
- readonly symbol: v.StringSchema<undefined>;
302
- readonly maxLeverageX: v.NumberSchema<undefined>;
210
+ readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
303
211
  }, undefined>, undefined>, undefined>;
304
212
  readonly spotMarketScope: v.OptionalSchema<v.PicklistSchema<readonly ["all", "allowlist"], undefined>, undefined>;
305
- readonly perpMarketScope: v.OptionalSchema<v.PicklistSchema<readonly ["all", "allowlist"], undefined>, undefined>;
306
- readonly actions: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "trade-perp", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-perp", "read-internal-transfers", "read-external-withdrawals", "read-transfer-controls", "manage-address-book", "manage-transfer-whitelists"], undefined>, undefined>, undefined>;
307
- readonly maxOrderNotional: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
308
- readonly dailyInternalTransferLimit: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
309
- readonly dailyWithdrawLimit: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
213
+ readonly actions: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["trade-spot", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-internal-transfers", "read-address-book", "manage-address-book"], undefined>, undefined>, undefined>;
310
214
  readonly isTemplate: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
311
215
  }, undefined>, v.CheckAction<{
312
216
  policyId: bigint;
@@ -314,18 +218,10 @@ declare const UpdateApiKeyPolicyInputSchema: v.SchemaWithPipe<readonly [v.Strict
314
218
  name?: string | undefined;
315
219
  description?: string | undefined;
316
220
  spotMarkets?: {
317
- symbol: string;
318
- }[] | undefined;
319
- perpMarkets?: {
320
- symbol: string;
321
- maxLeverageX: number;
221
+ symbolId: number;
322
222
  }[] | undefined;
323
223
  spotMarketScope?: "all" | "allowlist" | undefined;
324
- perpMarketScope?: "all" | "allowlist" | undefined;
325
- actions?: ("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[] | undefined;
326
- maxOrderNotional?: number | null | undefined;
327
- dailyInternalTransferLimit?: number | null | undefined;
328
- dailyWithdrawLimit?: number | null | undefined;
224
+ actions?: ("trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book")[] | undefined;
329
225
  isTemplate?: boolean | undefined;
330
226
  }, "At least one API key policy field must be provided">, v.TransformAction<{
331
227
  policyId: bigint;
@@ -333,18 +229,10 @@ declare const UpdateApiKeyPolicyInputSchema: v.SchemaWithPipe<readonly [v.Strict
333
229
  name?: string | undefined;
334
230
  description?: string | undefined;
335
231
  spotMarkets?: {
336
- symbol: string;
337
- }[] | undefined;
338
- perpMarkets?: {
339
- symbol: string;
340
- maxLeverageX: number;
232
+ symbolId: number;
341
233
  }[] | undefined;
342
234
  spotMarketScope?: "all" | "allowlist" | undefined;
343
- perpMarketScope?: "all" | "allowlist" | undefined;
344
- actions?: ("trade-spot" | "trade-perp" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-perp" | "read-internal-transfers" | "read-external-withdrawals" | "read-transfer-controls" | "manage-address-book" | "manage-transfer-whitelists")[] | undefined;
345
- maxOrderNotional?: number | null | undefined;
346
- dailyInternalTransferLimit?: number | null | undefined;
347
- dailyWithdrawLimit?: number | null | undefined;
235
+ actions?: ("trade-spot" | "internal-transfer" | "external-withdraw" | "read-balances" | "read-spot" | "read-internal-transfers" | "read-address-book" | "manage-address-book")[] | undefined;
348
236
  isTemplate?: boolean | undefined;
349
237
  }, {
350
238
  policyId: bigint;
@@ -354,25 +242,12 @@ declare const UpdateApiKeyPolicyInputSchema: v.SchemaWithPipe<readonly [v.Strict
354
242
  description: string;
355
243
  } & {
356
244
  spotMarkets: {
357
- symbol: string;
358
- }[];
359
- } & {
360
- perpMarkets: {
361
- symbol: string;
362
- maxLeverageX: number;
245
+ symbolId: number;
363
246
  }[];
364
247
  } & {
365
248
  spotMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
366
249
  } & {
367
- perpMarketScope: MarketScope_Value.ALL | MarketScope_Value.ALLOWLIST;
368
- } & {
369
- actions: (PolicyAction.TRADE_SPOT | PolicyAction.TRADE_PERP | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_PERP | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_EXTERNAL_WITHDRAWALS | PolicyAction.READ_TRANSFER_CONTROLS | PolicyAction.MANAGE_ADDRESS_BOOK | PolicyAction.MANAGE_TRANSFER_WHITELISTS)[];
370
- } & {
371
- maxOrderNotional: bigint;
372
- } & {
373
- dailyInternalTransferOutLimit: bigint;
374
- } & {
375
- dailyWithdrawLimit: bigint;
250
+ actions: (PolicyAction.TRADE_SPOT | PolicyAction.INTERNAL_TRANSFER | PolicyAction.EXTERNAL_WITHDRAW | PolicyAction.READ_BALANCES | PolicyAction.READ_SPOT | PolicyAction.READ_INTERNAL_TRANSFERS | PolicyAction.READ_ADDRESS_BOOK | PolicyAction.MANAGE_ADDRESS_BOOK)[];
376
251
  } & {
377
252
  isTemplate: boolean;
378
253
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-key-policies.schemas.d.ts","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"mappings":";;;;cAiCa,+BAA6B,EAAA;;;cAM7B,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;cAiB1B,oBAAkB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CnB,eAAe,EAAE,mBAAmB;cAEnC,kCAAgC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOjC,6BAA6B,EAAE,mBAAmB;cAkCjD,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAQ9B,0BAA0B,EAAE,kBAAkB;cAoD7C,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyB9B,0BAA0B,EAAE,kBAAkB;cAE7C,8BAA4B,EAAA;;;;KAQ7B,yBAAyB,EAAE,kBAAkB"}
1
+ {"version":3,"file":"api-key-policies.schemas.d.ts","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"mappings":";;;;cA8Ba,+BAA6B,EAAA;;;cAM7B,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;cAiB1B,oBAAkB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BnB,eAAe,EAAE,mBAAmB;cAEnC,kCAAgC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAA;;;;;;;;;;;;;;;;;;;;;;;KAOjC,6BAA6B,EAAE,mBAAmB;cAkBjD,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAK9B,0BAA0B,EAAE,kBAAkB;cA8B7C,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyB9B,0BAA0B,EAAE,kBAAkB;cAE7C,8BAA4B,EAAA;;;;KAQ7B,yBAAyB,EAAE,kBAAkB"}
@@ -1,8 +1,7 @@
1
1
  import { idToBigInt } from "../../../utils/base58-id.js";
2
- import { toBigIntOrZero } from "../../../utils/numbers.js";
3
2
  import { tsObjToMs, tsObjToNsString } from "../../../utils/time.js";
4
- import { BigIntStringSchema, OptionalNumberToBigIntOrZeroSchema, OptionalPublicIdSchema, PublicIdSchema, TimestampMsSchema, TimestampSchema, positiveBigintStringInputSchema } from "../../../shared/schemas.js";
5
- import { PerpMarketRuleSchema, PolicyActionEnumSchema, PolicyMarketScopeEnumSchema, ProtoPolicyActionEnumSchema, ProtoPolicyMarketScopeEnumSchema, SpotMarketRuleSchema } from "../shared.js";
3
+ import { BigIntStringSchema, OptionalPublicIdSchema, PublicIdSchema, TimestampMsSchema, TimestampSchema, positiveBigintStringInputSchema } from "../../../shared/schemas.js";
4
+ import { PolicyActionEnumSchema, PolicyMarketScopeEnumSchema, ProtoPolicyActionEnumSchema, ProtoPolicyMarketScopeEnumSchema, SpotMarketRuleSchema } from "../shared.js";
6
5
  import { PolicyActionCodec, PolicyMarketScopeCodec, policyActionLabelFor, policyMarketScopeLabelFor } from "../shared.codecs.js";
7
6
  import { buildProtoPatch, defineProtoPatchFields } from "../../../utils/proto-patch.js";
8
7
  import * as v from "valibot";
@@ -26,14 +25,9 @@ const ApiKeyPolicySchema = v.pipe(v.object({
26
25
  description: v.string(),
27
26
  spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),
28
27
  spotMarketScope: v.pipe(ProtoPolicyMarketScopeEnumSchema, v.transform((v) => policyMarketScopeLabelFor(v))),
29
- perpMarketScope: v.pipe(ProtoPolicyMarketScopeEnumSchema, v.transform((v) => policyMarketScopeLabelFor(v))),
30
- perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),
31
28
  actions: v.pipe(v.optional(v.array(ProtoPolicyActionEnumSchema), []), v.transform((v) => v.map((action) => policyActionLabelFor(action)))),
32
29
  isTemplate: v.optional(v.boolean(), false),
33
30
  sourceTemplateId: OptionalPublicIdSchema,
34
- maxOrderNotional: v.pipe(v.optional(v.bigint()), v.transform((v) => v === void 0 ? void 0 : Number(v))),
35
- dailyInternalTransferOutLimit: v.pipe(v.bigint(), v.transform((v) => Number(v))),
36
- dailyWithdrawLimit: v.pipe(v.bigint(), v.transform((v) => Number(v))),
37
31
  createdAt: TimestampMsSchema,
38
32
  updatedAt: TimestampSchema,
39
33
  revision: BigIntStringSchema
@@ -47,38 +41,21 @@ const ApiKeyPolicyInputBaseSchema = v.strictObject({
47
41
  name: v.string(),
48
42
  description: v.optional(v.string(), ""),
49
43
  spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),
50
- perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),
51
44
  spotMarketScope: v.pipe(PolicyMarketScopeEnumSchema, v.transform((v) => PolicyMarketScopeCodec.inputToProto[v])),
52
- perpMarketScope: v.pipe(PolicyMarketScopeEnumSchema, v.transform((v) => PolicyMarketScopeCodec.inputToProto[v])),
53
45
  actions: v.pipe(v.optional(v.array(PolicyActionEnumSchema), []), v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action]))),
54
- maxOrderNotional: OptionalNumberToBigIntOrZeroSchema,
55
- dailyInternalTransferLimit: OptionalNumberToBigIntOrZeroSchema,
56
- dailyWithdrawLimit: OptionalNumberToBigIntOrZeroSchema,
57
46
  isTemplate: v.optional(v.boolean(), false),
58
47
  assignToKeyId: v.optional(v.pipe(v.string(), v.trim()))
59
48
  });
60
- function createApiKeyPolicyBaseTransform(input) {
61
- const { dailyInternalTransferLimit, assignToKeyId: _assignToKeyId, ...rest } = input;
62
- return {
63
- ...rest,
64
- dailyInternalTransferOutLimit: dailyInternalTransferLimit
65
- };
66
- }
67
- const CreateApiKeyPolicyInputSchema = v.pipe(ApiKeyPolicyInputBaseSchema, v.transform((input) => ({
68
- policy: createApiKeyPolicyBaseTransform(input),
69
- assignToKeyId: input.assignToKeyId
49
+ const CreateApiKeyPolicyInputSchema = v.pipe(ApiKeyPolicyInputBaseSchema, v.transform(({ assignToKeyId, ...policy }) => ({
50
+ policy,
51
+ assignToKeyId
70
52
  })));
71
53
  const ApiKeyPolicyPatchSchema = v.strictObject({
72
54
  name: v.optional(v.string()),
73
55
  description: v.optional(v.string()),
74
56
  spotMarkets: v.optional(v.array(SpotMarketRuleSchema)),
75
- perpMarkets: v.optional(v.array(PerpMarketRuleSchema)),
76
57
  spotMarketScope: v.optional(PolicyMarketScopeEnumSchema),
77
- perpMarketScope: v.optional(PolicyMarketScopeEnumSchema),
78
58
  actions: v.optional(v.array(PolicyActionEnumSchema)),
79
- maxOrderNotional: v.optional(v.nullable(v.number())),
80
- dailyInternalTransferLimit: v.optional(v.nullable(v.number())),
81
- dailyWithdrawLimit: v.optional(v.nullable(v.number())),
82
59
  isTemplate: v.optional(v.boolean())
83
60
  });
84
61
  const API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
@@ -94,34 +71,14 @@ const API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
94
71
  path: "spot_markets",
95
72
  encode: (spotMarkets) => ({ spotMarkets })
96
73
  },
97
- perpMarkets: {
98
- path: "perp_markets",
99
- encode: (perpMarkets) => ({ perpMarkets })
100
- },
101
74
  spotMarketScope: {
102
75
  path: "spot_market_scope",
103
76
  encode: (scope) => ({ spotMarketScope: PolicyMarketScopeCodec.inputToProto[scope] })
104
77
  },
105
- perpMarketScope: {
106
- path: "perp_market_scope",
107
- encode: (scope) => ({ perpMarketScope: PolicyMarketScopeCodec.inputToProto[scope] })
108
- },
109
78
  actions: {
110
79
  path: "actions",
111
80
  encode: (actions) => ({ actions: actions.map((action) => PolicyActionCodec.inputToProto[action]) })
112
81
  },
113
- maxOrderNotional: {
114
- path: "max_order_notional",
115
- encode: (value) => ({ maxOrderNotional: toBigIntOrZero(value) })
116
- },
117
- dailyInternalTransferLimit: {
118
- path: "daily_internal_transfer_out_limit",
119
- encode: (value) => ({ dailyInternalTransferOutLimit: toBigIntOrZero(value) })
120
- },
121
- dailyWithdrawLimit: {
122
- path: "daily_withdraw_limit",
123
- encode: (value) => ({ dailyWithdrawLimit: toBigIntOrZero(value) })
124
- },
125
82
  isTemplate: {
126
83
  path: "is_template",
127
84
  encode: (isTemplate) => ({ isTemplate })
@@ -150,12 +107,7 @@ const DEFAULT_API_KEY_POLICY = {
150
107
  description: "Default API key policy with no permissions",
151
108
  spotMarkets: [],
152
109
  spotMarketScope: "all",
153
- perpMarketScope: "all",
154
- perpMarkets: [],
155
110
  actions: [],
156
- maxOrderNotional: 0,
157
- dailyInternalTransferOutLimit: 0,
158
- dailyWithdrawLimit: 0,
159
111
  isTemplate: false,
160
112
  sourceTemplateId: "",
161
113
  createdAt: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"api-key-policies.schemas.js","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport {\n PerpMarketRuleSchema,\n PolicyActionEnumSchema,\n PolicyMarketScopeEnumSchema,\n ProtoPolicyActionEnumSchema,\n ProtoPolicyMarketScopeEnumSchema,\n SpotMarketRuleSchema,\n} from \"../shared.js\";\nimport {\n PolicyMarketScopeCodec,\n PolicyActionCodec,\n policyMarketScopeLabelFor,\n policyActionLabelFor,\n} from \"../shared.codecs.js\";\nimport { idToBigInt } from \"../../../utils/base58-id.js\";\nimport {\n OptionalNumberToBigIntOrZeroSchema,\n OptionalPublicIdSchema,\n BigIntStringSchema,\n PublicIdSchema,\n TimestampMsSchema,\n TimestampSchema,\n positiveBigintStringInputSchema,\n} from \"../../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../../utils/time.js\";\nimport { toBigIntOrZero } from \"../../../utils/numbers.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../../utils/proto-patch.js\";\n\nconst OptionalApiKeyContextSchema = v.optional(\n v.pipe(v.string(), v.trim(), v.minLength(1, \"keyId is required\")),\n);\n\nexport const ListApiKeyPoliciesInputSchema = v.strictObject({\n keyId: OptionalApiKeyContextSchema,\n});\n\nexport type ListApiKeyPoliciesInput = v.InferInput<typeof ListApiKeyPoliciesInputSchema>;\n\nexport const GetApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n policyId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),\n keyId: OptionalApiKeyContextSchema,\n }),\n v.transform(({ policyId, keyId }) => ({\n policyId: policyId ? idToBigInt(policyId, \"policyId\") : undefined,\n keyId,\n })),\n);\n\nexport type GetApiKeyPolicyInput = v.InferInput<typeof GetApiKeyPolicyInputSchema>;\n\n/**\n * From the backend format to a usable frontend/UI format, so big ints to numbers, etc.\n * Shape matches auth.v1.ApiPolicyView.\n */\nexport const ApiKeyPolicySchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n name: v.string(),\n description: v.string(),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n perpMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),\n actions: v.pipe(\n v.optional(v.array(ProtoPolicyActionEnumSchema), []),\n v.transform((v) => v.map((action) => policyActionLabelFor(action))),\n ),\n isTemplate: v.optional(v.boolean(), false),\n sourceTemplateId: OptionalPublicIdSchema,\n maxOrderNotional: v.pipe(\n v.optional(v.bigint()),\n v.transform((v) => (v === undefined ? undefined : Number(v))),\n ),\n dailyInternalTransferOutLimit: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n dailyWithdrawLimit: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampSchema,\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...policy }) => ({\n ...policy,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type ApiKeyPolicy = v.InferOutput<typeof ApiKeyPolicySchema>;\n\nexport const ListApiKeyPoliciesResponseSchema = v.pipe(\n v.object({\n policies: v.optional(v.array(ApiKeyPolicySchema), []),\n }),\n v.transform((value) => value.policies),\n);\n\nexport type ListApiKeyPoliciesResponse = v.InferOutput<typeof ListApiKeyPoliciesResponseSchema>;\n\nconst ApiKeyPolicyInputBaseSchema = v.strictObject({\n name: v.string(),\n description: v.optional(v.string(), \"\"),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n perpMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n actions: v.pipe(\n v.optional(v.array(PolicyActionEnumSchema), []),\n v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action])),\n ),\n maxOrderNotional: OptionalNumberToBigIntOrZeroSchema,\n dailyInternalTransferLimit: OptionalNumberToBigIntOrZeroSchema,\n dailyWithdrawLimit: OptionalNumberToBigIntOrZeroSchema,\n isTemplate: v.optional(v.boolean(), false),\n assignToKeyId: v.optional(v.pipe(v.string(), v.trim())),\n});\n\nfunction createApiKeyPolicyBaseTransform(input: v.InferOutput<typeof ApiKeyPolicyInputBaseSchema>) {\n const { dailyInternalTransferLimit, assignToKeyId: _assignToKeyId, ...rest } = input;\n return {\n ...rest,\n dailyInternalTransferOutLimit: dailyInternalTransferLimit,\n };\n}\n\nexport const CreateApiKeyPolicyInputSchema = v.pipe(\n ApiKeyPolicyInputBaseSchema,\n v.transform((input) => ({\n policy: createApiKeyPolicyBaseTransform(input),\n assignToKeyId: input.assignToKeyId,\n })),\n);\n\nexport type ApiKeyPolicyCreateInput = v.InferInput<typeof CreateApiKeyPolicyInputSchema>;\n\nconst ApiKeyPolicyPatchSchema = v.strictObject({\n name: v.optional(v.string()),\n description: v.optional(v.string()),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema)),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema)),\n spotMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n perpMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n actions: v.optional(v.array(PolicyActionEnumSchema)),\n maxOrderNotional: v.optional(v.nullable(v.number())),\n dailyInternalTransferLimit: v.optional(v.nullable(v.number())),\n dailyWithdrawLimit: v.optional(v.nullable(v.number())),\n isTemplate: v.optional(v.boolean()),\n});\n\ntype ApiKeyPolicyPatch = v.InferOutput<typeof ApiKeyPolicyPatchSchema>;\n\nconst API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields<ApiKeyPolicyPatch>()({\n name: { path: \"name\", encode: (name) => ({ name }) },\n description: { path: \"description\", encode: (description) => ({ description }) },\n spotMarkets: { path: \"spot_markets\", encode: (spotMarkets) => ({ spotMarkets }) },\n perpMarkets: { path: \"perp_markets\", encode: (perpMarkets) => ({ perpMarkets }) },\n spotMarketScope: {\n path: \"spot_market_scope\",\n encode: (scope) => ({ spotMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n perpMarketScope: {\n path: \"perp_market_scope\",\n encode: (scope) => ({ perpMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n actions: {\n path: \"actions\",\n encode: (actions) => ({\n actions: actions.map((action) => PolicyActionCodec.inputToProto[action]),\n }),\n },\n maxOrderNotional: {\n path: \"max_order_notional\",\n encode: (value) => ({ maxOrderNotional: toBigIntOrZero(value) }),\n },\n dailyInternalTransferLimit: {\n path: \"daily_internal_transfer_out_limit\",\n encode: (value) => ({ dailyInternalTransferOutLimit: toBigIntOrZero(value) }),\n },\n dailyWithdrawLimit: {\n path: \"daily_withdraw_limit\",\n encode: (value) => ({ dailyWithdrawLimit: toBigIntOrZero(value) }),\n },\n isTemplate: { path: \"is_template\", encode: (isTemplate) => ({ isTemplate }) },\n});\n\nexport const UpdateApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n ...ApiKeyPolicyPatchSchema.entries,\n policyId: v.pipe(\n v.string(),\n v.transform((v) => idToBigInt(v, \"policyId\")),\n ),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n }),\n v.check(\n ({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) =>\n Object.values(patch).some((value) => value !== undefined),\n \"At least one API key policy field must be provided\",\n ),\n v.transform(({ policyId, expectedRevision, ...patch }) => {\n const { patch: policy, updateMask } = buildProtoPatch(patch, API_KEY_POLICY_PATCH_FIELDS);\n return {\n policyId,\n policy,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type ApiKeyPolicyUpdateInput = v.InferInput<typeof UpdateApiKeyPolicyInputSchema>;\n\nexport const ApplyApiKeyPolicyInputSchema = v.strictObject({\n keyId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n policyId: v.pipe(\n v.nullable(v.pipe(v.string(), v.trim())),\n v.transform((value) => (value ? idToBigInt(value, \"policyId\") : undefined)),\n ),\n});\n\nexport type ApiKeyPolicyApplyInput = v.InferInput<typeof ApplyApiKeyPolicyInputSchema>;\n\nexport const DEFAULT_API_KEY_POLICY: ApiKeyPolicy = {\n id: \"\",\n name: \"API Key Policy\",\n description: \"Default API key policy with no permissions\",\n spotMarkets: [],\n spotMarketScope: \"all\",\n perpMarketScope: \"all\",\n perpMarkets: [],\n actions: [],\n maxOrderNotional: 0,\n dailyInternalTransferOutLimit: 0,\n dailyWithdrawLimit: 0,\n isTemplate: false,\n sourceTemplateId: \"\",\n createdAt: 0,\n updatedAt: 0,\n updatedAtNs: \"0\",\n revision: \"0\",\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"api-key-policies.schemas.js","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport {\n PolicyActionEnumSchema,\n PolicyMarketScopeEnumSchema,\n ProtoPolicyActionEnumSchema,\n ProtoPolicyMarketScopeEnumSchema,\n SpotMarketRuleSchema,\n} from \"../shared.js\";\nimport {\n PolicyMarketScopeCodec,\n PolicyActionCodec,\n policyMarketScopeLabelFor,\n policyActionLabelFor,\n} from \"../shared.codecs.js\";\nimport { idToBigInt } from \"../../../utils/base58-id.js\";\nimport {\n OptionalPublicIdSchema,\n BigIntStringSchema,\n PublicIdSchema,\n TimestampMsSchema,\n TimestampSchema,\n positiveBigintStringInputSchema,\n} from \"../../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../../utils/time.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../../utils/proto-patch.js\";\n\nconst OptionalApiKeyContextSchema = v.optional(\n v.pipe(v.string(), v.trim(), v.minLength(1, \"keyId is required\")),\n);\n\nexport const ListApiKeyPoliciesInputSchema = v.strictObject({\n keyId: OptionalApiKeyContextSchema,\n});\n\nexport type ListApiKeyPoliciesInput = v.InferInput<typeof ListApiKeyPoliciesInputSchema>;\n\nexport const GetApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n policyId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),\n keyId: OptionalApiKeyContextSchema,\n }),\n v.transform(({ policyId, keyId }) => ({\n policyId: policyId ? idToBigInt(policyId, \"policyId\") : undefined,\n keyId,\n })),\n);\n\nexport type GetApiKeyPolicyInput = v.InferInput<typeof GetApiKeyPolicyInputSchema>;\n\n/**\n * From the backend format to a usable frontend/UI format, so big ints to numbers, etc.\n * Shape matches auth.v1.ApiPolicyView.\n */\nexport const ApiKeyPolicySchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n name: v.string(),\n description: v.string(),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n actions: v.pipe(\n v.optional(v.array(ProtoPolicyActionEnumSchema), []),\n v.transform((v) => v.map((action) => policyActionLabelFor(action))),\n ),\n isTemplate: v.optional(v.boolean(), false),\n sourceTemplateId: OptionalPublicIdSchema,\n createdAt: TimestampMsSchema,\n updatedAt: TimestampSchema,\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...policy }) => ({\n ...policy,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type ApiKeyPolicy = v.InferOutput<typeof ApiKeyPolicySchema>;\n\nexport const ListApiKeyPoliciesResponseSchema = v.pipe(\n v.object({\n policies: v.optional(v.array(ApiKeyPolicySchema), []),\n }),\n v.transform((value) => value.policies),\n);\n\nexport type ListApiKeyPoliciesResponse = v.InferOutput<typeof ListApiKeyPoliciesResponseSchema>;\n\nconst ApiKeyPolicyInputBaseSchema = v.strictObject({\n name: v.string(),\n description: v.optional(v.string(), \"\"),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n actions: v.pipe(\n v.optional(v.array(PolicyActionEnumSchema), []),\n v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action])),\n ),\n isTemplate: v.optional(v.boolean(), false),\n assignToKeyId: v.optional(v.pipe(v.string(), v.trim())),\n});\n\nexport const CreateApiKeyPolicyInputSchema = v.pipe(\n ApiKeyPolicyInputBaseSchema,\n v.transform(({ assignToKeyId, ...policy }) => ({ policy, assignToKeyId })),\n);\n\nexport type ApiKeyPolicyCreateInput = v.InferInput<typeof CreateApiKeyPolicyInputSchema>;\n\nconst ApiKeyPolicyPatchSchema = v.strictObject({\n name: v.optional(v.string()),\n description: v.optional(v.string()),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema)),\n spotMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n actions: v.optional(v.array(PolicyActionEnumSchema)),\n isTemplate: v.optional(v.boolean()),\n});\n\ntype ApiKeyPolicyPatch = v.InferOutput<typeof ApiKeyPolicyPatchSchema>;\n\nconst API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields<ApiKeyPolicyPatch>()({\n name: { path: \"name\", encode: (name) => ({ name }) },\n description: { path: \"description\", encode: (description) => ({ description }) },\n spotMarkets: { path: \"spot_markets\", encode: (spotMarkets) => ({ spotMarkets }) },\n spotMarketScope: {\n path: \"spot_market_scope\",\n encode: (scope) => ({ spotMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n actions: {\n path: \"actions\",\n encode: (actions) => ({\n actions: actions.map((action) => PolicyActionCodec.inputToProto[action]),\n }),\n },\n isTemplate: { path: \"is_template\", encode: (isTemplate) => ({ isTemplate }) },\n});\n\nexport const UpdateApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n ...ApiKeyPolicyPatchSchema.entries,\n policyId: v.pipe(\n v.string(),\n v.transform((v) => idToBigInt(v, \"policyId\")),\n ),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n }),\n v.check(\n ({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) =>\n Object.values(patch).some((value) => value !== undefined),\n \"At least one API key policy field must be provided\",\n ),\n v.transform(({ policyId, expectedRevision, ...patch }) => {\n const { patch: policy, updateMask } = buildProtoPatch(patch, API_KEY_POLICY_PATCH_FIELDS);\n return {\n policyId,\n policy,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type ApiKeyPolicyUpdateInput = v.InferInput<typeof UpdateApiKeyPolicyInputSchema>;\n\nexport const ApplyApiKeyPolicyInputSchema = v.strictObject({\n keyId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n policyId: v.pipe(\n v.nullable(v.pipe(v.string(), v.trim())),\n v.transform((value) => (value ? idToBigInt(value, \"policyId\") : undefined)),\n ),\n});\n\nexport type ApiKeyPolicyApplyInput = v.InferInput<typeof ApplyApiKeyPolicyInputSchema>;\n\nexport const DEFAULT_API_KEY_POLICY: ApiKeyPolicy = {\n id: \"\",\n name: \"API Key Policy\",\n description: \"Default API key policy with no permissions\",\n spotMarkets: [],\n spotMarketScope: \"all\",\n actions: [],\n isTemplate: false,\n sourceTemplateId: \"\",\n createdAt: 0,\n updatedAt: 0,\n updatedAtNs: \"0\",\n revision: \"0\",\n};\n"],"mappings":";;;;;;;;AA0BA,MAAM,8BAA8B,EAAE,SAClC,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,GAAG,mBAAmB,CAAC,CACpE;AAEA,MAAa,gCAAgC,EAAE,aAAa,EACxD,OAAO,4BACX,CAAC;AAID,MAAa,6BAA6B,EAAE,KACxC,EAAE,aAAa;CACX,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;CACjE,OAAO;AACX,CAAC,GACD,EAAE,WAAW,EAAE,UAAU,aAAa;CAClC,UAAU,WAAW,WAAW,UAAU,UAAU,IAAI,KAAA;CACxD;AACJ,EAAE,CACN;;;;;AAQA,MAAa,qBAAqB,EAAE,KAChC,EAAE,OAAO;CACL,IAAI;CACJ,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO;CACtB,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,GAAG,CAAC,CAAC;CACzD,iBAAiB,EAAE,KACf,kCACA,EAAE,WAAW,MAAM,0BAA0B,CAAC,CAAC,CACnD;CACA,SAAS,EAAE,KACP,EAAE,SAAS,EAAE,MAAM,2BAA2B,GAAG,CAAC,CAAC,GACnD,EAAE,WAAW,MAAM,EAAE,KAAK,WAAW,qBAAqB,MAAM,CAAC,CAAC,CACtE;CACA,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;CACzC,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,UAAU;AACd,CAAC,GACD,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc;CACvC,GAAG;CACH,WAAW,UAAU,SAAS;CAC9B,aAAa,gBAAgB,SAAS;AAC1C,EAAE,CACN;AAIA,MAAa,mCAAmC,EAAE,KAC9C,EAAE,OAAO,EACL,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,GAAG,CAAC,CAAC,EACxD,CAAC,GACD,EAAE,WAAW,UAAU,MAAM,QAAQ,CACzC;AAIA,MAAM,8BAA8B,EAAE,aAAa;CAC/C,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;CACtC,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,GAAG,CAAC,CAAC;CACzD,iBAAiB,EAAE,KACf,6BACA,EAAE,WAAW,MAAM,uBAAuB,aAAa,EAAE,CAC7D;CACA,SAAS,EAAE,KACP,EAAE,SAAS,EAAE,MAAM,sBAAsB,GAAG,CAAC,CAAC,GAC9C,EAAE,WAAW,OAAO,KAAK,CAAC,EAAA,CAAG,KAAK,WAAW,kBAAkB,aAAa,OAAO,CAAC,CACxF;CACA,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;CACzC,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAa,gCAAgC,EAAE,KAC3C,6BACA,EAAE,WAAW,EAAE,eAAe,GAAG,cAAc;CAAE;CAAQ;AAAc,EAAE,CAC7E;AAIA,MAAM,0BAA0B,EAAE,aAAa;CAC3C,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAC3B,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC;CAClC,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;CACrD,iBAAiB,EAAE,SAAS,2BAA2B;CACvD,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;CACnD,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;AACtC,CAAC;AAID,MAAM,8BAA8B,uBAA0C,CAAC,CAAC;CAC5E,MAAM;EAAE,MAAM;EAAQ,SAAS,UAAU,EAAE,KAAK;CAAG;CACnD,aAAa;EAAE,MAAM;EAAe,SAAS,iBAAiB,EAAE,YAAY;CAAG;CAC/E,aAAa;EAAE,MAAM;EAAgB,SAAS,iBAAiB,EAAE,YAAY;CAAG;CAChF,iBAAiB;EACb,MAAM;EACN,SAAS,WAAW,EAAE,iBAAiB,uBAAuB,aAAa,OAAO;CACtF;CACA,SAAS;EACL,MAAM;EACN,SAAS,aAAa,EAClB,SAAS,QAAQ,KAAK,WAAW,kBAAkB,aAAa,OAAO,EAC3E;CACJ;CACA,YAAY;EAAE,MAAM;EAAe,SAAS,gBAAgB,EAAE,WAAW;CAAG;AAChF,CAAC;AAED,MAAa,gCAAgC,EAAE,KAC3C,EAAE,aAAa;CACX,GAAG,wBAAwB;CAC3B,UAAU,EAAE,KACR,EAAE,OAAO,GACT,EAAE,WAAW,MAAM,WAAW,GAAG,UAAU,CAAC,CAChD;CACA,kBAAkB,gCAAgC,kBAAkB;AACxE,CAAC,GACD,EAAE,OACG,EAAE,UAAU,WAAW,kBAAkB,mBAAmB,GAAG,YAC5D,OAAO,OAAO,KAAK,CAAC,CAAC,MAAM,UAAU,UAAU,KAAA,CAAS,GAC5D,oDACJ,GACA,EAAE,WAAW,EAAE,UAAU,kBAAkB,GAAG,YAAY;CACtD,MAAM,EAAE,OAAO,QAAQ,eAAe,gBAAgB,OAAO,2BAA2B;CACxF,OAAO;EACH;EACA;EACA;EACA;CACJ;AACJ,CAAC,CACL;AAIA,MAAa,+BAA+B,EAAE,aAAa;CACvD,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;CAClD,UAAU,EAAE,KACR,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC,GACvC,EAAE,WAAW,UAAW,QAAQ,WAAW,OAAO,UAAU,IAAI,KAAA,CAAU,CAC9E;AACJ,CAAC;AAID,MAAa,yBAAuC;CAChD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa,CAAC;CACd,iBAAiB;CACjB,SAAS,CAAC;CACV,YAAY;CACZ,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,aAAa;CACb,UAAU;AACd"}
@@ -16,31 +16,23 @@ const PolicyActionCodec = {
16
16
  protoToOutput: {
17
17
  [0]: "unspecified",
18
18
  [1]: "trade-spot",
19
- [2]: "trade-perp",
20
19
  [3]: "internal-transfer",
21
20
  [4]: "external-withdraw",
22
21
  [5]: "read-balances",
23
22
  [6]: "read-spot",
24
- [7]: "read-perp",
25
23
  [8]: "read-internal-transfers",
26
- [9]: "read-external-withdrawals",
27
- [11]: "read-transfer-controls",
28
- [12]: "manage-address-book",
29
- [13]: "manage-transfer-whitelists"
24
+ [11]: "read-address-book",
25
+ [12]: "manage-address-book"
30
26
  },
31
27
  inputToProto: {
32
28
  "trade-spot": 1,
33
- "trade-perp": 2,
34
29
  "internal-transfer": 3,
35
30
  "external-withdraw": 4,
36
31
  "read-balances": 5,
37
32
  "read-spot": 6,
38
- "read-perp": 7,
39
33
  "read-internal-transfers": 8,
40
- "read-external-withdrawals": 9,
41
- "read-transfer-controls": 11,
42
- "manage-address-book": 12,
43
- "manage-transfer-whitelists": 13
34
+ "read-address-book": 11,
35
+ "manage-address-book": 12
44
36
  }
45
37
  };
46
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shared.codecs.js","names":[],"sources":["../../../src/services/policies/shared.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/auth/v1/policies_pb.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport type { DecodedEnum, ProtoToOutput } from \"../../utils/types.js\";\n\nexport const POLICY_ACTION_LABELS = [\n \"trade-spot\",\n \"trade-perp\",\n \"internal-transfer\",\n \"external-withdraw\",\n \"read-balances\",\n \"read-spot\",\n \"read-perp\",\n \"read-internal-transfers\",\n \"read-external-withdrawals\",\n \"read-transfer-controls\",\n \"manage-address-book\",\n \"manage-transfer-whitelists\",\n] as const;\nexport type PolicyActionLabel = (typeof POLICY_ACTION_LABELS)[number];\n\nexport const POLICY_MARKET_SCOPE_LABELS = [\"all\", \"allowlist\"] as const;\nexport type PolicyMarketScopeLabel = (typeof POLICY_MARKET_SCOPE_LABELS)[number];\n\nexport const PolicyMarketScopeCodec = {\n inputToProto: {\n all: Proto.MarketScope_Value.ALL,\n allowlist: Proto.MarketScope_Value.ALLOWLIST,\n } satisfies Record<PolicyMarketScopeLabel, Proto.MarketScope_Value>,\n protoToOutput: {\n [Proto.MarketScope_Value.UNSPECIFIED]: \"unspecified\",\n [Proto.MarketScope_Value.ALL]: \"all\",\n [Proto.MarketScope_Value.ALLOWLIST]: \"allowlist\",\n } satisfies ProtoToOutput<Proto.MarketScope_Value, PolicyMarketScopeLabel>,\n} as const;\n\nexport const PolicyActionCodec = {\n protoToOutput: {\n [Proto.PolicyAction.UNSPECIFIED]: \"unspecified\",\n [Proto.PolicyAction.TRADE_SPOT]: \"trade-spot\",\n [Proto.PolicyAction.TRADE_PERP]: \"trade-perp\",\n [Proto.PolicyAction.INTERNAL_TRANSFER]: \"internal-transfer\",\n [Proto.PolicyAction.EXTERNAL_WITHDRAW]: \"external-withdraw\",\n [Proto.PolicyAction.READ_BALANCES]: \"read-balances\",\n [Proto.PolicyAction.READ_SPOT]: \"read-spot\",\n [Proto.PolicyAction.READ_PERP]: \"read-perp\",\n [Proto.PolicyAction.READ_INTERNAL_TRANSFERS]: \"read-internal-transfers\",\n [Proto.PolicyAction.READ_EXTERNAL_WITHDRAWALS]: \"read-external-withdrawals\",\n [Proto.PolicyAction.READ_TRANSFER_CONTROLS]: \"read-transfer-controls\",\n [Proto.PolicyAction.MANAGE_ADDRESS_BOOK]: \"manage-address-book\",\n [Proto.PolicyAction.MANAGE_TRANSFER_WHITELISTS]: \"manage-transfer-whitelists\",\n } satisfies ProtoToOutput<Proto.PolicyAction, PolicyActionLabel>,\n inputToProto: {\n \"trade-spot\": Proto.PolicyAction.TRADE_SPOT,\n \"trade-perp\": Proto.PolicyAction.TRADE_PERP,\n \"internal-transfer\": Proto.PolicyAction.INTERNAL_TRANSFER,\n \"external-withdraw\": Proto.PolicyAction.EXTERNAL_WITHDRAW,\n \"read-balances\": Proto.PolicyAction.READ_BALANCES,\n \"read-spot\": Proto.PolicyAction.READ_SPOT,\n \"read-perp\": Proto.PolicyAction.READ_PERP,\n \"read-internal-transfers\": Proto.PolicyAction.READ_INTERNAL_TRANSFERS,\n \"read-external-withdrawals\": Proto.PolicyAction.READ_EXTERNAL_WITHDRAWALS,\n \"read-transfer-controls\": Proto.PolicyAction.READ_TRANSFER_CONTROLS,\n \"manage-address-book\": Proto.PolicyAction.MANAGE_ADDRESS_BOOK,\n \"manage-transfer-whitelists\": Proto.PolicyAction.MANAGE_TRANSFER_WHITELISTS,\n } satisfies Record<PolicyActionLabel, Proto.PolicyAction>,\n} as const;\n\n/**\n * Returns the display label for a policy market scope.\n */\nexport function policyMarketScopeLabelFor(\n value: Proto.MarketScope_Value,\n): DecodedEnum<PolicyMarketScopeLabel> {\n return requiredEnumLabel(\n PolicyMarketScopeCodec.protoToOutput,\n value,\n \"PolicyMarketScopeCodec\",\n \"market scope\",\n );\n}\n\n/**\n * Returns the display label for a policy action.\n */\nexport function policyActionLabelFor(value: Proto.PolicyAction): DecodedEnum<PolicyActionLabel> {\n return requiredEnumLabel(\n PolicyActionCodec.protoToOutput,\n value,\n \"PolicyActionCodec\",\n \"policy action\",\n );\n}\n"],"mappings":";;;AAuBA,MAAa,yBAAyB;CAClC,cAAc;EACV,KAAA;EACA,WAAA;CACJ;CACA,eAAe;GAC4B,IAAA;GACR,IAAA;GACM,IAAA;CACzC;AACJ;AAEA,MAAa,oBAAoB;CAC7B,eAAe;GACuB,IAAA;GACD,IAAA;GACA,IAAA;GACO,IAAA;GACA,IAAA;GACJ,IAAA;GACJ,IAAA;GACA,IAAA;GACc,IAAA;GACE,IAAA;GACH,KAAA;GACH,KAAA;GACO,KAAA;CACrD;CACA,cAAc;EACV,cAAA;EACA,cAAA;EACA,qBAAA;EACA,qBAAA;EACA,iBAAA;EACA,aAAA;EACA,aAAA;EACA,2BAAA;EACA,6BAAA;EACA,0BAAA;EACA,uBAAA;EACA,8BAAA;CACJ;AACJ;;;;AAKA,SAAgB,0BACZ,OACmC;CACnC,OAAO,kBACH,uBAAuB,eACvB,OACA,0BACA,cACJ;AACJ;;;;AAKA,SAAgB,qBAAqB,OAA2D;CAC5F,OAAO,kBACH,kBAAkB,eAClB,OACA,qBACA,eACJ;AACJ"}
1
+ {"version":3,"file":"shared.codecs.js","names":[],"sources":["../../../src/services/policies/shared.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/auth/v1/policies_pb.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport type { DecodedEnum, ProtoToOutput } from \"../../utils/types.js\";\n\nexport const POLICY_ACTION_LABELS = [\n \"trade-spot\",\n \"internal-transfer\",\n \"external-withdraw\",\n \"read-balances\",\n \"read-spot\",\n \"read-internal-transfers\",\n \"read-address-book\",\n \"manage-address-book\",\n] as const;\nexport type PolicyActionLabel = (typeof POLICY_ACTION_LABELS)[number];\n\nexport const POLICY_MARKET_SCOPE_LABELS = [\"all\", \"allowlist\"] as const;\nexport type PolicyMarketScopeLabel = (typeof POLICY_MARKET_SCOPE_LABELS)[number];\n\nexport const PolicyMarketScopeCodec = {\n inputToProto: {\n all: Proto.MarketScope_Value.ALL,\n allowlist: Proto.MarketScope_Value.ALLOWLIST,\n } satisfies Record<PolicyMarketScopeLabel, Proto.MarketScope_Value>,\n protoToOutput: {\n [Proto.MarketScope_Value.UNSPECIFIED]: \"unspecified\",\n [Proto.MarketScope_Value.ALL]: \"all\",\n [Proto.MarketScope_Value.ALLOWLIST]: \"allowlist\",\n } satisfies ProtoToOutput<Proto.MarketScope_Value, PolicyMarketScopeLabel>,\n} as const;\n\nexport const PolicyActionCodec = {\n protoToOutput: {\n [Proto.PolicyAction.UNSPECIFIED]: \"unspecified\",\n [Proto.PolicyAction.TRADE_SPOT]: \"trade-spot\",\n [Proto.PolicyAction.INTERNAL_TRANSFER]: \"internal-transfer\",\n [Proto.PolicyAction.EXTERNAL_WITHDRAW]: \"external-withdraw\",\n [Proto.PolicyAction.READ_BALANCES]: \"read-balances\",\n [Proto.PolicyAction.READ_SPOT]: \"read-spot\",\n [Proto.PolicyAction.READ_INTERNAL_TRANSFERS]: \"read-internal-transfers\",\n [Proto.PolicyAction.READ_ADDRESS_BOOK]: \"read-address-book\",\n [Proto.PolicyAction.MANAGE_ADDRESS_BOOK]: \"manage-address-book\",\n } satisfies ProtoToOutput<Proto.PolicyAction, PolicyActionLabel>,\n inputToProto: {\n \"trade-spot\": Proto.PolicyAction.TRADE_SPOT,\n \"internal-transfer\": Proto.PolicyAction.INTERNAL_TRANSFER,\n \"external-withdraw\": Proto.PolicyAction.EXTERNAL_WITHDRAW,\n \"read-balances\": Proto.PolicyAction.READ_BALANCES,\n \"read-spot\": Proto.PolicyAction.READ_SPOT,\n \"read-internal-transfers\": Proto.PolicyAction.READ_INTERNAL_TRANSFERS,\n \"read-address-book\": Proto.PolicyAction.READ_ADDRESS_BOOK,\n \"manage-address-book\": Proto.PolicyAction.MANAGE_ADDRESS_BOOK,\n } satisfies Record<PolicyActionLabel, Proto.PolicyAction>,\n} as const;\n\n/**\n * Returns the display label for a policy market scope.\n */\nexport function policyMarketScopeLabelFor(\n value: Proto.MarketScope_Value,\n): DecodedEnum<PolicyMarketScopeLabel> {\n return requiredEnumLabel(\n PolicyMarketScopeCodec.protoToOutput,\n value,\n \"PolicyMarketScopeCodec\",\n \"market scope\",\n );\n}\n\n/**\n * Returns the display label for a policy action.\n */\nexport function policyActionLabelFor(value: Proto.PolicyAction): DecodedEnum<PolicyActionLabel> {\n return requiredEnumLabel(\n PolicyActionCodec.protoToOutput,\n value,\n \"PolicyActionCodec\",\n \"policy action\",\n );\n}\n"],"mappings":";;;AAmBA,MAAa,yBAAyB;CAClC,cAAc;EACV,KAAA;EACA,WAAA;CACJ;CACA,eAAe;GAC4B,IAAA;GACR,IAAA;GACM,IAAA;CACzC;AACJ;AAEA,MAAa,oBAAoB;CAC7B,eAAe;GACuB,IAAA;GACD,IAAA;GACO,IAAA;GACA,IAAA;GACJ,IAAA;GACJ,IAAA;GACc,IAAA;GACN,KAAA;GACE,KAAA;CAC9C;CACA,cAAc;EACV,cAAA;EACA,qBAAA;EACA,qBAAA;EACA,iBAAA;EACA,aAAA;EACA,2BAAA;EACA,qBAAA;EACA,uBAAA;CACJ;AACJ;;;;AAKA,SAAgB,0BACZ,OACmC;CACnC,OAAO,kBACH,uBAAuB,eACvB,OACA,0BACA,cACJ;AACJ;;;;AAKA,SAAgB,qBAAqB,OAA2D;CAC5F,OAAO,kBACH,kBAAkB,eAClB,OACA,qBACA,eACJ;AACJ"}
@@ -1,7 +1,7 @@
1
1
  import "../../gen/auth/v1/policies_pb.js";
2
2
  import * as v from "valibot";
3
3
  //#region src/services/policies/shared.d.ts
4
- declare const PolicyActionEnumSchema: v.PicklistSchema<readonly ["trade-spot", "trade-perp", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-perp", "read-internal-transfers", "read-external-withdrawals", "read-transfer-controls", "manage-address-book", "manage-transfer-whitelists"], undefined>;
4
+ declare const PolicyActionEnumSchema: v.PicklistSchema<readonly ["trade-spot", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-internal-transfers", "read-address-book", "manage-address-book"], undefined>;
5
5
  declare const PolicyMarketScopeEnumSchema: v.PicklistSchema<readonly ["all", "allowlist"], undefined>;
6
6
  type PolicyMarketScope = v.InferOutput<typeof PolicyMarketScopeEnumSchema>;
7
7
  type PolicyAction = v.InferOutput<typeof PolicyActionEnumSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","names":[],"sources":["../../../src/services/policies/shared.ts"],"mappings":";;;cA+Ba,wBAAsB,EAAA;cAEtB,6BAA2B,EAAA;KAC5B,oBAAoB,EAAE,mBAAmB;KAEzC,eAAe,EAAE,mBAAmB"}
1
+ {"version":3,"file":"shared.d.ts","names":[],"sources":["../../../src/services/policies/shared.ts"],"mappings":";;;cAuBa,wBAAsB,EAAA;cAEtB,6BAA2B,EAAA;KAC5B,oBAAoB,EAAE,mBAAmB;KAEzC,eAAe,EAAE,mBAAmB"}