@waiaas/core 2.11.0-rc.8 → 2.12.0-rc

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 (101) hide show
  1. package/README.md +5 -5
  2. package/dist/constants/index.d.ts +1 -0
  3. package/dist/constants/index.d.ts.map +1 -1
  4. package/dist/constants/index.js +2 -0
  5. package/dist/constants/index.js.map +1 -1
  6. package/dist/constants/well-known-contracts.d.ts +22 -0
  7. package/dist/constants/well-known-contracts.d.ts.map +1 -0
  8. package/dist/constants/well-known-contracts.js +415 -0
  9. package/dist/constants/well-known-contracts.js.map +1 -0
  10. package/dist/errors/error-codes.d.ts +29 -1
  11. package/dist/errors/error-codes.d.ts.map +1 -1
  12. package/dist/errors/error-codes.js +29 -1
  13. package/dist/errors/error-codes.js.map +1 -1
  14. package/dist/i18n/en.d.ts.map +1 -1
  15. package/dist/i18n/en.js +6 -2
  16. package/dist/i18n/en.js.map +1 -1
  17. package/dist/i18n/ko.d.ts.map +1 -1
  18. package/dist/i18n/ko.js +6 -2
  19. package/dist/i18n/ko.js.map +1 -1
  20. package/dist/index.d.ts +11 -4
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +21 -4
  23. package/dist/index.js.map +1 -1
  24. package/dist/interfaces/IChainAdapter.d.ts +2 -2
  25. package/dist/interfaces/IChainAdapter.d.ts.map +1 -1
  26. package/dist/interfaces/IChainSubscriber.d.ts +19 -1
  27. package/dist/interfaces/IChainSubscriber.d.ts.map +1 -1
  28. package/dist/interfaces/INotificationChannel.d.ts +1 -1
  29. package/dist/interfaces/action-provider.types.d.ts +21 -0
  30. package/dist/interfaces/action-provider.types.d.ts.map +1 -1
  31. package/dist/interfaces/action-provider.types.js +18 -0
  32. package/dist/interfaces/action-provider.types.js.map +1 -1
  33. package/dist/interfaces/chain-adapter.types.d.ts +19 -0
  34. package/dist/interfaces/chain-adapter.types.d.ts.map +1 -1
  35. package/dist/interfaces/connection-state.d.ts.map +1 -1
  36. package/dist/interfaces/connection-state.js +1 -4
  37. package/dist/interfaces/connection-state.js.map +1 -1
  38. package/dist/interfaces/index.d.ts +4 -2
  39. package/dist/interfaces/index.d.ts.map +1 -1
  40. package/dist/interfaces/index.js +4 -1
  41. package/dist/interfaces/index.js.map +1 -1
  42. package/dist/interfaces/logger.d.ts +25 -0
  43. package/dist/interfaces/logger.d.ts.map +1 -0
  44. package/dist/interfaces/logger.js +28 -0
  45. package/dist/interfaces/logger.js.map +1 -0
  46. package/dist/interfaces/perp-provider.types.d.ts +4 -4
  47. package/dist/interfaces/position-provider.types.d.ts +18 -1
  48. package/dist/interfaces/position-provider.types.d.ts.map +1 -1
  49. package/dist/schemas/index.d.ts +2 -2
  50. package/dist/schemas/index.d.ts.map +1 -1
  51. package/dist/schemas/index.js +6 -2
  52. package/dist/schemas/index.js.map +1 -1
  53. package/dist/schemas/policy.schema.d.ts +291 -0
  54. package/dist/schemas/policy.schema.d.ts.map +1 -1
  55. package/dist/schemas/policy.schema.js +110 -14
  56. package/dist/schemas/policy.schema.js.map +1 -1
  57. package/dist/schemas/resolved-action.schema.d.ts +108 -0
  58. package/dist/schemas/resolved-action.schema.d.ts.map +1 -1
  59. package/dist/schemas/signing-protocol.d.ts +39 -52
  60. package/dist/schemas/signing-protocol.d.ts.map +1 -1
  61. package/dist/schemas/signing-protocol.js +6 -11
  62. package/dist/schemas/signing-protocol.js.map +1 -1
  63. package/dist/schemas/simulation.schema.d.ts +63 -9
  64. package/dist/schemas/simulation.schema.d.ts.map +1 -1
  65. package/dist/schemas/simulation.schema.js +11 -0
  66. package/dist/schemas/simulation.schema.js.map +1 -1
  67. package/dist/schemas/transaction.schema.d.ts +288 -0
  68. package/dist/schemas/transaction.schema.d.ts.map +1 -1
  69. package/dist/schemas/transaction.schema.js +20 -0
  70. package/dist/schemas/transaction.schema.js.map +1 -1
  71. package/dist/schemas/userop.schema.d.ts +168 -0
  72. package/dist/schemas/userop.schema.d.ts.map +1 -1
  73. package/dist/schemas/wallet-preset.d.ts +1 -1
  74. package/dist/schemas/wallet-preset.js +1 -1
  75. package/dist/services/contract-name-registry.d.ts +67 -0
  76. package/dist/services/contract-name-registry.d.ts.map +1 -0
  77. package/dist/services/contract-name-registry.js +118 -0
  78. package/dist/services/contract-name-registry.js.map +1 -0
  79. package/dist/services/index.d.ts +2 -0
  80. package/dist/services/index.d.ts.map +1 -0
  81. package/dist/services/index.js +3 -0
  82. package/dist/services/index.js.map +1 -0
  83. package/dist/testing/chain-adapter-contract.js +1 -1
  84. package/dist/testing/chain-adapter-contract.js.map +1 -1
  85. package/dist/utils/chain-constants.d.ts +17 -0
  86. package/dist/utils/chain-constants.d.ts.map +1 -0
  87. package/dist/utils/chain-constants.js +27 -0
  88. package/dist/utils/chain-constants.js.map +1 -0
  89. package/dist/utils/index.d.ts +3 -0
  90. package/dist/utils/index.d.ts.map +1 -1
  91. package/dist/utils/index.js +6 -0
  92. package/dist/utils/index.js.map +1 -1
  93. package/dist/utils/safe-json-parse.d.ts +52 -0
  94. package/dist/utils/safe-json-parse.d.ts.map +1 -0
  95. package/dist/utils/safe-json-parse.js +68 -0
  96. package/dist/utils/safe-json-parse.js.map +1 -0
  97. package/dist/utils/sleep.d.ts +8 -0
  98. package/dist/utils/sleep.d.ts.map +1 -0
  99. package/dist/utils/sleep.js +10 -0
  100. package/dist/utils/sleep.js.map +1 -0
  101. package/package.json +2 -2
@@ -28,6 +28,137 @@ export declare const PolicySchema: z.ZodObject<{
28
28
  enabled: boolean;
29
29
  }>;
30
30
  export type Policy = z.infer<typeof PolicySchema>;
31
+ /** ALLOWED_TOKENS: rules.tokens array (mint/contract addresses + optional CAIP-19). */
32
+ export declare const AllowedTokensRulesSchema: z.ZodObject<{
33
+ tokens: z.ZodArray<z.ZodObject<{
34
+ address: z.ZodString;
35
+ symbol: z.ZodOptional<z.ZodString>;
36
+ chain: z.ZodOptional<z.ZodEnum<["solana", "ethereum"]>>;
37
+ assetId: z.ZodOptional<z.ZodString>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ address: string;
40
+ symbol?: string | undefined;
41
+ chain?: "solana" | "ethereum" | undefined;
42
+ assetId?: string | undefined;
43
+ }, {
44
+ address: string;
45
+ symbol?: string | undefined;
46
+ chain?: "solana" | "ethereum" | undefined;
47
+ assetId?: string | undefined;
48
+ }>, "many">;
49
+ }, "strip", z.ZodTypeAny, {
50
+ tokens: {
51
+ address: string;
52
+ symbol?: string | undefined;
53
+ chain?: "solana" | "ethereum" | undefined;
54
+ assetId?: string | undefined;
55
+ }[];
56
+ }, {
57
+ tokens: {
58
+ address: string;
59
+ symbol?: string | undefined;
60
+ chain?: "solana" | "ethereum" | undefined;
61
+ assetId?: string | undefined;
62
+ }[];
63
+ }>;
64
+ /** CONTRACT_WHITELIST: rules.contracts array. */
65
+ export declare const ContractWhitelistRulesSchema: z.ZodObject<{
66
+ contracts: z.ZodArray<z.ZodObject<{
67
+ address: z.ZodString;
68
+ name: z.ZodOptional<z.ZodString>;
69
+ chain: z.ZodOptional<z.ZodEnum<["solana", "ethereum"]>>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ address: string;
72
+ name?: string | undefined;
73
+ chain?: "solana" | "ethereum" | undefined;
74
+ }, {
75
+ address: string;
76
+ name?: string | undefined;
77
+ chain?: "solana" | "ethereum" | undefined;
78
+ }>, "many">;
79
+ }, "strip", z.ZodTypeAny, {
80
+ contracts: {
81
+ address: string;
82
+ name?: string | undefined;
83
+ chain?: "solana" | "ethereum" | undefined;
84
+ }[];
85
+ }, {
86
+ contracts: {
87
+ address: string;
88
+ name?: string | undefined;
89
+ chain?: "solana" | "ethereum" | undefined;
90
+ }[];
91
+ }>;
92
+ /** METHOD_WHITELIST: rules.methods array (contract-specific allowed methods). */
93
+ export declare const MethodWhitelistRulesSchema: z.ZodObject<{
94
+ methods: z.ZodArray<z.ZodObject<{
95
+ contractAddress: z.ZodString;
96
+ selectors: z.ZodArray<z.ZodString, "many">;
97
+ }, "strip", z.ZodTypeAny, {
98
+ contractAddress: string;
99
+ selectors: string[];
100
+ }, {
101
+ contractAddress: string;
102
+ selectors: string[];
103
+ }>, "many">;
104
+ }, "strip", z.ZodTypeAny, {
105
+ methods: {
106
+ contractAddress: string;
107
+ selectors: string[];
108
+ }[];
109
+ }, {
110
+ methods: {
111
+ contractAddress: string;
112
+ selectors: string[];
113
+ }[];
114
+ }>;
115
+ /** APPROVED_SPENDERS: rules.spenders array. */
116
+ export declare const ApprovedSpendersRulesSchema: z.ZodObject<{
117
+ spenders: z.ZodArray<z.ZodObject<{
118
+ address: z.ZodString;
119
+ name: z.ZodOptional<z.ZodString>;
120
+ maxAmount: z.ZodOptional<z.ZodString>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ address: string;
123
+ name?: string | undefined;
124
+ maxAmount?: string | undefined;
125
+ }, {
126
+ address: string;
127
+ name?: string | undefined;
128
+ maxAmount?: string | undefined;
129
+ }>, "many">;
130
+ }, "strip", z.ZodTypeAny, {
131
+ spenders: {
132
+ address: string;
133
+ name?: string | undefined;
134
+ maxAmount?: string | undefined;
135
+ }[];
136
+ }, {
137
+ spenders: {
138
+ address: string;
139
+ name?: string | undefined;
140
+ maxAmount?: string | undefined;
141
+ }[];
142
+ }>;
143
+ /** APPROVE_AMOUNT_LIMIT: rules.maxAmount + rules.blockUnlimited. */
144
+ export declare const ApproveAmountLimitRulesSchema: z.ZodObject<{
145
+ maxAmount: z.ZodOptional<z.ZodString>;
146
+ blockUnlimited: z.ZodDefault<z.ZodBoolean>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ blockUnlimited: boolean;
149
+ maxAmount?: string | undefined;
150
+ }, {
151
+ maxAmount?: string | undefined;
152
+ blockUnlimited?: boolean | undefined;
153
+ }>;
154
+ /** APPROVE_TIER_OVERRIDE: rules.tier (forced policy tier). */
155
+ export declare const ApproveTierOverrideRulesSchema: z.ZodObject<{
156
+ tier: z.ZodEnum<["INSTANT", "NOTIFY", "DELAY", "APPROVAL"]>;
157
+ }, "strip", z.ZodTypeAny, {
158
+ tier: "INSTANT" | "NOTIFY" | "DELAY" | "APPROVAL";
159
+ }, {
160
+ tier: "INSTANT" | "NOTIFY" | "DELAY" | "APPROVAL";
161
+ }>;
31
162
  /** Per-token spending limit in human-readable units (e.g., "1.5" SOL, "1000" USDC). */
32
163
  export declare const TokenLimitSchema: z.ZodObject<{
33
164
  instant_max: z.ZodString;
@@ -138,6 +269,29 @@ export declare const SpendingLimitRulesSchema: z.ZodEffects<z.ZodObject<{
138
269
  }> | undefined;
139
270
  }>;
140
271
  export type SpendingLimitRules = z.infer<typeof SpendingLimitRulesSchema>;
272
+ /** ALLOWED_NETWORKS: rules.networks array (permitted networks for wallet). */
273
+ export declare const AllowedNetworksRulesSchema: z.ZodObject<{
274
+ networks: z.ZodArray<z.ZodObject<{
275
+ network: z.ZodEnum<["solana-mainnet", "solana-devnet", "solana-testnet", "ethereum-mainnet", "ethereum-sepolia", "polygon-mainnet", "polygon-amoy", "arbitrum-mainnet", "arbitrum-sepolia", "optimism-mainnet", "optimism-sepolia", "base-mainnet", "base-sepolia", "hyperevm-mainnet", "hyperevm-testnet"]>;
276
+ name: z.ZodOptional<z.ZodString>;
277
+ }, "strip", z.ZodTypeAny, {
278
+ network: "solana-mainnet" | "solana-devnet" | "solana-testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | "hyperevm-mainnet" | "hyperevm-testnet";
279
+ name?: string | undefined;
280
+ }, {
281
+ network: "solana-mainnet" | "solana-devnet" | "solana-testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | "hyperevm-mainnet" | "hyperevm-testnet";
282
+ name?: string | undefined;
283
+ }>, "many">;
284
+ }, "strip", z.ZodTypeAny, {
285
+ networks: {
286
+ network: "solana-mainnet" | "solana-devnet" | "solana-testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | "hyperevm-mainnet" | "hyperevm-testnet";
287
+ name?: string | undefined;
288
+ }[];
289
+ }, {
290
+ networks: {
291
+ network: "solana-mainnet" | "solana-devnet" | "solana-testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | "hyperevm-mainnet" | "hyperevm-testnet";
292
+ name?: string | undefined;
293
+ }[];
294
+ }>;
141
295
  /** WHITELIST: rules.allowed_addresses array (permitted destination addresses). */
142
296
  export declare const WhitelistRulesSchema: z.ZodObject<{
143
297
  allowed_addresses: z.ZodArray<z.ZodString, "many">;
@@ -225,6 +379,136 @@ export declare const ReputationThresholdRulesSchema: z.ZodObject<{
225
379
  check_counterparty?: boolean | undefined;
226
380
  }>;
227
381
  export type ReputationThresholdRules = z.infer<typeof ReputationThresholdRulesSchema>;
382
+ /** LENDING_ASSET_WHITELIST: rules.assets array (permitted lending assets). */
383
+ export declare const LendingAssetWhitelistRulesSchema: z.ZodObject<{
384
+ assets: z.ZodArray<z.ZodObject<{
385
+ address: z.ZodString;
386
+ symbol: z.ZodOptional<z.ZodString>;
387
+ }, "strip", z.ZodTypeAny, {
388
+ address: string;
389
+ symbol?: string | undefined;
390
+ }, {
391
+ address: string;
392
+ symbol?: string | undefined;
393
+ }>, "many">;
394
+ }, "strip", z.ZodTypeAny, {
395
+ assets: {
396
+ address: string;
397
+ symbol?: string | undefined;
398
+ }[];
399
+ }, {
400
+ assets: {
401
+ address: string;
402
+ symbol?: string | undefined;
403
+ }[];
404
+ }>;
405
+ export type LendingAssetWhitelistRules = z.infer<typeof LendingAssetWhitelistRulesSchema>;
406
+ /** LENDING_LTV_LIMIT: LTV-based borrow restriction. */
407
+ export declare const LendingLtvLimitRulesSchema: z.ZodObject<{
408
+ maxLtv: z.ZodNumber;
409
+ warningLtv: z.ZodNumber;
410
+ }, "strip", z.ZodTypeAny, {
411
+ maxLtv: number;
412
+ warningLtv: number;
413
+ }, {
414
+ maxLtv: number;
415
+ warningLtv: number;
416
+ }>;
417
+ export type LendingLtvLimitRules = z.infer<typeof LendingLtvLimitRulesSchema>;
418
+ /** PERP_MAX_LEVERAGE: Maximum leverage restriction. */
419
+ export declare const PerpMaxLeverageRulesSchema: z.ZodObject<{
420
+ maxLeverage: z.ZodNumber;
421
+ warningLeverage: z.ZodOptional<z.ZodNumber>;
422
+ }, "strip", z.ZodTypeAny, {
423
+ maxLeverage: number;
424
+ warningLeverage?: number | undefined;
425
+ }, {
426
+ maxLeverage: number;
427
+ warningLeverage?: number | undefined;
428
+ }>;
429
+ export type PerpMaxLeverageRules = z.infer<typeof PerpMaxLeverageRulesSchema>;
430
+ /** PERP_MAX_POSITION_USD: Maximum position size restriction. */
431
+ export declare const PerpMaxPositionUsdRulesSchema: z.ZodObject<{
432
+ maxPositionUsd: z.ZodNumber;
433
+ warningPositionUsd: z.ZodOptional<z.ZodNumber>;
434
+ }, "strip", z.ZodTypeAny, {
435
+ maxPositionUsd: number;
436
+ warningPositionUsd?: number | undefined;
437
+ }, {
438
+ maxPositionUsd: number;
439
+ warningPositionUsd?: number | undefined;
440
+ }>;
441
+ export type PerpMaxPositionUsdRules = z.infer<typeof PerpMaxPositionUsdRulesSchema>;
442
+ /** PERP_ALLOWED_MARKETS: Permitted perp markets. */
443
+ export declare const PerpAllowedMarketsRulesSchema: z.ZodObject<{
444
+ markets: z.ZodArray<z.ZodObject<{
445
+ market: z.ZodString;
446
+ name: z.ZodOptional<z.ZodString>;
447
+ }, "strip", z.ZodTypeAny, {
448
+ market: string;
449
+ name?: string | undefined;
450
+ }, {
451
+ market: string;
452
+ name?: string | undefined;
453
+ }>, "many">;
454
+ }, "strip", z.ZodTypeAny, {
455
+ markets: {
456
+ market: string;
457
+ name?: string | undefined;
458
+ }[];
459
+ }, {
460
+ markets: {
461
+ market: string;
462
+ name?: string | undefined;
463
+ }[];
464
+ }>;
465
+ export type PerpAllowedMarketsRules = z.infer<typeof PerpAllowedMarketsRulesSchema>;
466
+ /** VENUE_WHITELIST: Permitted external venues. */
467
+ export declare const VenueWhitelistRulesSchema: z.ZodObject<{
468
+ venues: z.ZodArray<z.ZodObject<{
469
+ id: z.ZodString;
470
+ name: z.ZodOptional<z.ZodString>;
471
+ }, "strip", z.ZodTypeAny, {
472
+ id: string;
473
+ name?: string | undefined;
474
+ }, {
475
+ id: string;
476
+ name?: string | undefined;
477
+ }>, "many">;
478
+ }, "strip", z.ZodTypeAny, {
479
+ venues: {
480
+ id: string;
481
+ name?: string | undefined;
482
+ }[];
483
+ }, {
484
+ venues: {
485
+ id: string;
486
+ name?: string | undefined;
487
+ }[];
488
+ }>;
489
+ export type VenueWhitelistRules = z.infer<typeof VenueWhitelistRulesSchema>;
490
+ /** ACTION_CATEGORY_LIMIT: Per-category action spending limits. */
491
+ export declare const ActionCategoryLimitRulesSchema: z.ZodObject<{
492
+ category: z.ZodString;
493
+ daily_limit_usd: z.ZodOptional<z.ZodNumber>;
494
+ monthly_limit_usd: z.ZodOptional<z.ZodNumber>;
495
+ per_action_limit_usd: z.ZodOptional<z.ZodNumber>;
496
+ tier_on_exceed: z.ZodOptional<z.ZodString>;
497
+ }, "strip", z.ZodTypeAny, {
498
+ category: string;
499
+ daily_limit_usd?: number | undefined;
500
+ monthly_limit_usd?: number | undefined;
501
+ per_action_limit_usd?: number | undefined;
502
+ tier_on_exceed?: string | undefined;
503
+ }, {
504
+ category: string;
505
+ daily_limit_usd?: number | undefined;
506
+ monthly_limit_usd?: number | undefined;
507
+ per_action_limit_usd?: number | undefined;
508
+ tier_on_exceed?: string | undefined;
509
+ }>;
510
+ export type ActionCategoryLimitRules = z.infer<typeof ActionCategoryLimitRulesSchema>;
511
+ export declare const POLICY_RULES_SCHEMAS: Record<string, z.ZodTypeAny>;
228
512
  /**
229
513
  * CreatePolicyRequestSchema - body for POST /v1/policies.
230
514
  *
@@ -287,4 +571,11 @@ export declare const UpdatePolicyRequestSchema: z.ZodObject<{
287
571
  priority?: number | undefined;
288
572
  }>;
289
573
  export type UpdatePolicyRequest = z.infer<typeof UpdatePolicyRequestSchema>;
574
+ export type AllowedTokensRules = z.infer<typeof AllowedTokensRulesSchema>;
575
+ export type ContractWhitelistRules = z.infer<typeof ContractWhitelistRulesSchema>;
576
+ export type MethodWhitelistRules = z.infer<typeof MethodWhitelistRulesSchema>;
577
+ export type ApprovedSpendersRules = z.infer<typeof ApprovedSpendersRulesSchema>;
578
+ export type ApproveAmountLimitRules = z.infer<typeof ApproveAmountLimitRulesSchema>;
579
+ export type ApproveTierOverrideRules = z.infer<typeof ApproveTierOverrideRulesSchema>;
580
+ export type AllowedNetworksRules = z.infer<typeof AllowedNetworksRulesSchema>;
290
581
  //# sourceMappingURL=policy.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/policy.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAsDlD,uFAAuF;AACvF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAyC1D,eAAO,MAAM,wBAAwB;IAtBnC,kFAAkF;;IAElF,sBAAsB;;IAEtB,qBAAqB;;IAErB,sDAAsD;;IAEtD,0BAA0B;;IAE1B,yBAAyB;;IAEzB,0BAA0B;;IAE1B,4DAA4D;;IAE5D,gCAAgC;;IAEhC,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmD/D,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAU1E,kFAAkF;AAClF,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,uDAAuD;AACvD,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAMrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,kFAAkF;AAClF,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,8EAA8E;AAC9E,eAAO,MAAM,8BAA8B;IACzC,4FAA4F;;IAE5F,2DAA2D;;IAE3D,sEAAsE;;IAEtE,iDAAiD;;IAEjD,iDAAiD;;IAEjD,uEAAuE;;;;;;;;;;;;;;;;EAEvE,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAoBtF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"policy.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/policy.schema.ts"],"names":[],"mappings":"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"}
@@ -17,44 +17,44 @@ export const PolicySchema = z.object({
17
17
  // Used by superRefine to validate rules per PolicyType.
18
18
  // ---------------------------------------------------------------------------
19
19
  /** ALLOWED_TOKENS: rules.tokens array (mint/contract addresses + optional CAIP-19). */
20
- const AllowedTokensRulesSchema = z.object({
20
+ export const AllowedTokensRulesSchema = z.object({
21
21
  tokens: z.array(z.object({
22
22
  address: z.string().min(1),
23
23
  symbol: z.string().min(1).max(10).optional(),
24
24
  chain: ChainTypeEnum.optional(),
25
25
  assetId: Caip19Schema.optional(),
26
- })).min(1, 'At least one token required'),
26
+ })),
27
27
  });
28
28
  /** CONTRACT_WHITELIST: rules.contracts array. */
29
- const ContractWhitelistRulesSchema = z.object({
29
+ export const ContractWhitelistRulesSchema = z.object({
30
30
  contracts: z.array(z.object({
31
31
  address: z.string().min(1),
32
32
  name: z.string().optional(),
33
33
  chain: ChainTypeEnum.optional(),
34
- })).min(1, 'At least one contract required'),
34
+ })),
35
35
  });
36
36
  /** METHOD_WHITELIST: rules.methods array (contract-specific allowed methods). */
37
- const MethodWhitelistRulesSchema = z.object({
37
+ export const MethodWhitelistRulesSchema = z.object({
38
38
  methods: z.array(z.object({
39
39
  contractAddress: z.string().min(1),
40
- selectors: z.array(z.string().min(1)).min(1),
41
- })).min(1, 'At least one method entry required'),
40
+ selectors: z.array(z.string().min(1)),
41
+ })),
42
42
  });
43
43
  /** APPROVED_SPENDERS: rules.spenders array. */
44
- const ApprovedSpendersRulesSchema = z.object({
44
+ export const ApprovedSpendersRulesSchema = z.object({
45
45
  spenders: z.array(z.object({
46
46
  address: z.string().min(1),
47
47
  name: z.string().optional(),
48
48
  maxAmount: z.string().regex(/^\d+$/).optional(),
49
- })).min(1, 'At least one spender required'),
49
+ })),
50
50
  });
51
51
  /** APPROVE_AMOUNT_LIMIT: rules.maxAmount + rules.blockUnlimited. */
52
- const ApproveAmountLimitRulesSchema = z.object({
52
+ export const ApproveAmountLimitRulesSchema = z.object({
53
53
  maxAmount: z.string().regex(/^\d+$/).optional(),
54
54
  blockUnlimited: z.boolean().default(true),
55
55
  });
56
56
  /** APPROVE_TIER_OVERRIDE: rules.tier (forced policy tier). */
57
- const ApproveTierOverrideRulesSchema = z.object({
57
+ export const ApproveTierOverrideRulesSchema = z.object({
58
58
  tier: PolicyTierEnum,
59
59
  });
60
60
  /** Per-token spending limit in human-readable units (e.g., "1.5" SOL, "1000" USDC). */
@@ -144,7 +144,7 @@ export const SpendingLimitRulesSchema = SpendingLimitRulesBaseSchema.superRefine
144
144
  }
145
145
  });
146
146
  /** ALLOWED_NETWORKS: rules.networks array (permitted networks for wallet). */
147
- const AllowedNetworksRulesSchema = z.object({
147
+ export const AllowedNetworksRulesSchema = z.object({
148
148
  networks: z.array(z.object({
149
149
  network: NetworkTypeEnum,
150
150
  name: z.string().optional(),
@@ -186,9 +186,53 @@ export const ReputationThresholdRulesSchema = z.object({
186
186
  /** Whether to also check counterparty (to address) agent reputation */
187
187
  check_counterparty: z.boolean().default(false),
188
188
  });
189
+ /** LENDING_ASSET_WHITELIST: rules.assets array (permitted lending assets). */
190
+ export const LendingAssetWhitelistRulesSchema = z.object({
191
+ assets: z.array(z.object({
192
+ address: z.string().min(1),
193
+ symbol: z.string().optional(),
194
+ })).min(1, 'At least one asset required'),
195
+ });
196
+ /** LENDING_LTV_LIMIT: LTV-based borrow restriction. */
197
+ export const LendingLtvLimitRulesSchema = z.object({
198
+ maxLtv: z.number().min(0).max(1),
199
+ warningLtv: z.number().min(0).max(1),
200
+ });
201
+ /** PERP_MAX_LEVERAGE: Maximum leverage restriction. */
202
+ export const PerpMaxLeverageRulesSchema = z.object({
203
+ maxLeverage: z.number().positive(),
204
+ warningLeverage: z.number().positive().optional(),
205
+ });
206
+ /** PERP_MAX_POSITION_USD: Maximum position size restriction. */
207
+ export const PerpMaxPositionUsdRulesSchema = z.object({
208
+ maxPositionUsd: z.number().positive(),
209
+ warningPositionUsd: z.number().positive().optional(),
210
+ });
211
+ /** PERP_ALLOWED_MARKETS: Permitted perp markets. */
212
+ export const PerpAllowedMarketsRulesSchema = z.object({
213
+ markets: z.array(z.object({
214
+ market: z.string().min(1),
215
+ name: z.string().optional(),
216
+ })).min(1, 'At least one market required'),
217
+ });
218
+ /** VENUE_WHITELIST: Permitted external venues. */
219
+ export const VenueWhitelistRulesSchema = z.object({
220
+ venues: z.array(z.object({
221
+ id: z.string().min(1),
222
+ name: z.string().optional(),
223
+ })).min(1, 'At least one venue required'),
224
+ });
225
+ /** ACTION_CATEGORY_LIMIT: Per-category action spending limits. */
226
+ export const ActionCategoryLimitRulesSchema = z.object({
227
+ category: z.string().min(1),
228
+ daily_limit_usd: z.number().positive().optional(),
229
+ monthly_limit_usd: z.number().positive().optional(),
230
+ per_action_limit_usd: z.number().positive().optional(),
231
+ tier_on_exceed: z.string().optional(),
232
+ });
189
233
  // Map of policy types to their rules schemas for superRefine lookup.
190
- // All 13 PolicyTypes with dedicated rules schemas are covered.
191
- const POLICY_RULES_SCHEMAS = {
234
+ // All 20 PolicyTypes with dedicated rules schemas are covered.
235
+ export const POLICY_RULES_SCHEMAS = {
192
236
  ALLOWED_TOKENS: AllowedTokensRulesSchema,
193
237
  CONTRACT_WHITELIST: ContractWhitelistRulesSchema,
194
238
  METHOD_WHITELIST: MethodWhitelistRulesSchema,
@@ -202,6 +246,13 @@ const POLICY_RULES_SCHEMAS = {
202
246
  TIME_RESTRICTION: TimeRestrictionRulesSchema,
203
247
  X402_ALLOWED_DOMAINS: X402AllowedDomainsRulesSchema,
204
248
  REPUTATION_THRESHOLD: ReputationThresholdRulesSchema,
249
+ LENDING_ASSET_WHITELIST: LendingAssetWhitelistRulesSchema,
250
+ LENDING_LTV_LIMIT: LendingLtvLimitRulesSchema,
251
+ PERP_MAX_LEVERAGE: PerpMaxLeverageRulesSchema,
252
+ PERP_MAX_POSITION_USD: PerpMaxPositionUsdRulesSchema,
253
+ PERP_ALLOWED_MARKETS: PerpAllowedMarketsRulesSchema,
254
+ VENUE_WHITELIST: VenueWhitelistRulesSchema,
255
+ ACTION_CATEGORY_LIMIT: ActionCategoryLimitRulesSchema,
205
256
  };
206
257
  /**
207
258
  * CreatePolicyRequestSchema - body for POST /v1/policies.
@@ -226,6 +277,51 @@ export const CreatePolicyRequestSchema = z.object({
226
277
  ctx.addIssue({ ...issue, path: ['rules', ...issue.path] });
227
278
  }
228
279
  }
280
+ // API-level stricter validation: reject empty arrays that are semantically invalid
281
+ // (base schemas allow empty for DB backward compat, but creation must have items)
282
+ const rules = data.rules;
283
+ const emptyArrayChecks = {
284
+ ALLOWED_TOKENS: ['tokens'],
285
+ CONTRACT_WHITELIST: ['contracts'],
286
+ APPROVED_SPENDERS: ['spenders'],
287
+ WHITELIST: ['allowed_addresses'],
288
+ X402_ALLOWED_DOMAINS: ['domains'],
289
+ };
290
+ const fieldsToCheck = emptyArrayChecks[data.type];
291
+ if (fieldsToCheck) {
292
+ for (const field of fieldsToCheck) {
293
+ const arr = rules[field];
294
+ if (Array.isArray(arr) && arr.length === 0) {
295
+ ctx.addIssue({
296
+ code: z.ZodIssueCode.too_small,
297
+ minimum: 1,
298
+ type: 'array',
299
+ inclusive: true,
300
+ message: `At least one ${field.replace(/_/g, ' ')} entry required`,
301
+ path: ['rules', field],
302
+ });
303
+ }
304
+ }
305
+ }
306
+ // METHOD_WHITELIST: check methods array and inner selectors arrays
307
+ if (data.type === 'METHOD_WHITELIST') {
308
+ const methods = rules['methods'];
309
+ if (Array.isArray(methods)) {
310
+ for (let i = 0; i < methods.length; i++) {
311
+ const m = methods[i];
312
+ if (m && Array.isArray(m['selectors']) && m['selectors'].length === 0) {
313
+ ctx.addIssue({
314
+ code: z.ZodIssueCode.too_small,
315
+ minimum: 1,
316
+ type: 'array',
317
+ inclusive: true,
318
+ message: 'At least one selector required',
319
+ path: ['rules', 'methods', i, 'selectors'],
320
+ });
321
+ }
322
+ }
323
+ }
324
+ }
229
325
  });
230
326
  /**
231
327
  * UpdatePolicyRequestSchema - body for PUT /v1/policies/:id.
@@ -1 +1 @@
1
- {"version":3,"file":"policy.schema.js","sourceRoot":"","sources":["../../src/schemas/policy.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.schema.js","sourceRoot":"","sources":["../../src/schemas/policy.schema.ts"],"names":[],"mappings":"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"}