@coinbase/cdp-sdk 1.44.1 → 1.45.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 (125) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +117 -0
  3. package/_cjs/accounts/evm/toEvmDelegatedAccount.js +27 -0
  4. package/_cjs/accounts/evm/toEvmDelegatedAccount.js.map +1 -0
  5. package/_cjs/accounts/evm/toEvmServerAccount.js +127 -55
  6. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  7. package/_cjs/accounts/evm/toEvmSmartAccount.js +111 -45
  8. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  9. package/_cjs/accounts/solana/toSolanaAccount.js +49 -19
  10. package/_cjs/accounts/solana/toSolanaAccount.js.map +1 -1
  11. package/_cjs/actions/evm/waitForEvmEip7702DelegationStatus.js +37 -0
  12. package/_cjs/actions/evm/waitForEvmEip7702DelegationStatus.js.map +1 -0
  13. package/_cjs/analytics.js +10 -228
  14. package/_cjs/analytics.js.map +1 -1
  15. package/_cjs/client/cdp.js +0 -6
  16. package/_cjs/client/cdp.js.map +1 -1
  17. package/_cjs/client/evm/evm.js +482 -227
  18. package/_cjs/client/evm/evm.js.map +1 -1
  19. package/_cjs/client/policies/policies.js +41 -11
  20. package/_cjs/client/policies/policies.js.map +1 -1
  21. package/_cjs/client/solana/solana.js +177 -106
  22. package/_cjs/client/solana/solana.js.map +1 -1
  23. package/_cjs/index.js +3 -1
  24. package/_cjs/index.js.map +1 -1
  25. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +137 -5
  26. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  27. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +30 -1
  28. package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
  29. package/_cjs/openapi-client/generated/onramp/onramp.js +15 -1
  30. package/_cjs/openapi-client/generated/onramp/onramp.js.map +1 -1
  31. package/_cjs/policies/evmSchema.js +127 -1
  32. package/_cjs/policies/evmSchema.js.map +1 -1
  33. package/_cjs/policies/solanaSchema.js +102 -1
  34. package/_cjs/policies/solanaSchema.js.map +1 -1
  35. package/_cjs/policies/types.js +7 -0
  36. package/_cjs/policies/types.js.map +1 -1
  37. package/_cjs/version.js +1 -1
  38. package/_esm/accounts/evm/toEvmDelegatedAccount.js +24 -0
  39. package/_esm/accounts/evm/toEvmDelegatedAccount.js.map +1 -0
  40. package/_esm/accounts/evm/toEvmServerAccount.js +127 -55
  41. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  42. package/_esm/accounts/evm/toEvmSmartAccount.js +111 -45
  43. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  44. package/_esm/accounts/solana/toSolanaAccount.js +49 -19
  45. package/_esm/accounts/solana/toSolanaAccount.js.map +1 -1
  46. package/_esm/actions/evm/waitForEvmEip7702DelegationStatus.js +34 -0
  47. package/_esm/actions/evm/waitForEvmEip7702DelegationStatus.js.map +1 -0
  48. package/_esm/analytics.js +9 -227
  49. package/_esm/analytics.js.map +1 -1
  50. package/_esm/client/cdp.js +0 -6
  51. package/_esm/client/cdp.js.map +1 -1
  52. package/_esm/client/evm/evm.js +482 -227
  53. package/_esm/client/evm/evm.js.map +1 -1
  54. package/_esm/client/policies/policies.js +41 -11
  55. package/_esm/client/policies/policies.js.map +1 -1
  56. package/_esm/client/solana/solana.js +177 -106
  57. package/_esm/client/solana/solana.js.map +1 -1
  58. package/_esm/index.js +1 -0
  59. package/_esm/index.js.map +1 -1
  60. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +134 -3
  61. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  62. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +27 -0
  63. package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
  64. package/_esm/openapi-client/generated/onramp/onramp.js +13 -0
  65. package/_esm/openapi-client/generated/onramp/onramp.js.map +1 -1
  66. package/_esm/policies/evmSchema.js +126 -0
  67. package/_esm/policies/evmSchema.js.map +1 -1
  68. package/_esm/policies/solanaSchema.js +101 -0
  69. package/_esm/policies/solanaSchema.js.map +1 -1
  70. package/_esm/policies/types.js +9 -2
  71. package/_esm/policies/types.js.map +1 -1
  72. package/_esm/version.js +1 -1
  73. package/_types/accounts/evm/toEvmDelegatedAccount.d.ts +13 -0
  74. package/_types/accounts/evm/toEvmDelegatedAccount.d.ts.map +1 -0
  75. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  76. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
  77. package/_types/accounts/solana/toSolanaAccount.d.ts.map +1 -1
  78. package/_types/actions/evm/waitForEvmEip7702DelegationStatus.d.ts +32 -0
  79. package/_types/actions/evm/waitForEvmEip7702DelegationStatus.d.ts.map +1 -0
  80. package/_types/analytics.d.ts +5 -38
  81. package/_types/analytics.d.ts.map +1 -1
  82. package/_types/client/cdp.d.ts.map +1 -1
  83. package/_types/client/evm/evm.d.ts +54 -1
  84. package/_types/client/evm/evm.d.ts.map +1 -1
  85. package/_types/client/evm/evm.types.d.ts +29 -2
  86. package/_types/client/evm/evm.types.d.ts.map +1 -1
  87. package/_types/client/policies/policies.d.ts.map +1 -1
  88. package/_types/client/solana/solana.d.ts.map +1 -1
  89. package/_types/index.d.ts +2 -0
  90. package/_types/index.d.ts.map +1 -1
  91. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +436 -10
  92. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  93. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +21 -1
  94. package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts.map +1 -1
  95. package/_types/openapi-client/generated/onramp/onramp.d.ts +8 -1
  96. package/_types/openapi-client/generated/onramp/onramp.d.ts.map +1 -1
  97. package/_types/openapi-client/index.d.ts +4 -0
  98. package/_types/openapi-client/index.d.ts.map +1 -1
  99. package/_types/policies/evmSchema.d.ts +2717 -601
  100. package/_types/policies/evmSchema.d.ts.map +1 -1
  101. package/_types/policies/solanaSchema.d.ts +1411 -47
  102. package/_types/policies/solanaSchema.d.ts.map +1 -1
  103. package/_types/policies/types.d.ts +8427 -2942
  104. package/_types/policies/types.d.ts.map +1 -1
  105. package/_types/version.d.ts +1 -1
  106. package/accounts/evm/toEvmDelegatedAccount.ts +26 -0
  107. package/accounts/evm/toEvmServerAccount.ts +115 -67
  108. package/accounts/evm/toEvmSmartAccount.ts +100 -56
  109. package/accounts/solana/toSolanaAccount.ts +44 -24
  110. package/actions/evm/waitForEvmEip7702DelegationStatus.ts +57 -0
  111. package/analytics.ts +8 -294
  112. package/client/cdp.ts +0 -7
  113. package/client/evm/evm.ts +517 -282
  114. package/client/evm/evm.types.ts +41 -0
  115. package/client/policies/policies.ts +41 -16
  116. package/client/solana/solana.ts +195 -141
  117. package/index.ts +5 -0
  118. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +580 -11
  119. package/openapi-client/generated/evm-accounts/evm-accounts.ts +49 -0
  120. package/openapi-client/generated/onramp/onramp.ts +24 -0
  121. package/package.json +1 -1
  122. package/policies/evmSchema.ts +164 -0
  123. package/policies/solanaSchema.ts +130 -0
  124. package/policies/types.ts +14 -0
  125. package/version.ts +1 -1
@@ -113,11 +113,11 @@ export declare const SendEvmTransactionEvmNetworkCriterionSchema: z.ZodObject<{
113
113
  }, "strip", z.ZodTypeAny, {
114
114
  type: "evmNetwork";
115
115
  operator: "in" | "not in";
116
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
116
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
117
117
  }, {
118
118
  type: "evmNetwork";
119
119
  operator: "in" | "not in";
120
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
120
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
121
121
  }>;
122
122
  export declare const PrepareUserOperationEvmNetworkCriterionSchema: z.ZodObject<{
123
123
  /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
@@ -136,11 +136,11 @@ export declare const PrepareUserOperationEvmNetworkCriterionSchema: z.ZodObject<
136
136
  }, "strip", z.ZodTypeAny, {
137
137
  type: "evmNetwork";
138
138
  operator: "in" | "not in";
139
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
139
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
140
140
  }, {
141
141
  type: "evmNetwork";
142
142
  operator: "in" | "not in";
143
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
143
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
144
144
  }>;
145
145
  export declare const EvmNetworkCriterionSchema: z.ZodUnion<[z.ZodObject<{
146
146
  /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
@@ -159,11 +159,11 @@ export declare const EvmNetworkCriterionSchema: z.ZodUnion<[z.ZodObject<{
159
159
  }, "strip", z.ZodTypeAny, {
160
160
  type: "evmNetwork";
161
161
  operator: "in" | "not in";
162
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
162
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
163
163
  }, {
164
164
  type: "evmNetwork";
165
165
  operator: "in" | "not in";
166
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
166
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
167
167
  }>, z.ZodObject<{
168
168
  /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
169
169
  type: z.ZodLiteral<"evmNetwork">;
@@ -181,11 +181,11 @@ export declare const EvmNetworkCriterionSchema: z.ZodUnion<[z.ZodObject<{
181
181
  }, "strip", z.ZodTypeAny, {
182
182
  type: "evmNetwork";
183
183
  operator: "in" | "not in";
184
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
184
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
185
185
  }, {
186
186
  type: "evmNetwork";
187
187
  operator: "in" | "not in";
188
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
188
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
189
189
  }>]>;
190
190
  export type EvmNetworkCriterion = z.ZodUnion<[
191
191
  typeof SendEvmTransactionEvmNetworkCriterionSchema,
@@ -1524,11 +1524,11 @@ export declare const SendEvmTransactionCriteriaSchema: z.ZodArray<z.ZodDiscrimin
1524
1524
  }, "strip", z.ZodTypeAny, {
1525
1525
  type: "evmNetwork";
1526
1526
  operator: "in" | "not in";
1527
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
1527
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
1528
1528
  }, {
1529
1529
  type: "evmNetwork";
1530
1530
  operator: "in" | "not in";
1531
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
1531
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
1532
1532
  }>, z.ZodObject<{
1533
1533
  /** The type of criterion, must be "evmData" for EVM transaction rules. */
1534
1534
  type: z.ZodLiteral<"evmData">;
@@ -1879,11 +1879,11 @@ export declare const PrepareUserOperationCriteriaSchema: z.ZodArray<z.ZodDiscrim
1879
1879
  }, "strip", z.ZodTypeAny, {
1880
1880
  type: "evmNetwork";
1881
1881
  operator: "in" | "not in";
1882
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
1882
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
1883
1883
  }, {
1884
1884
  type: "evmNetwork";
1885
1885
  operator: "in" | "not in";
1886
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
1886
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
1887
1887
  }>, z.ZodObject<{
1888
1888
  /** The type of criterion, must be "evmData" for EVM transaction rules. */
1889
1889
  type: z.ZodLiteral<"evmData">;
@@ -2515,105 +2515,1794 @@ export declare const SendUserOperationCriteriaSchema: z.ZodArray<z.ZodDiscrimina
2515
2515
  */
2516
2516
  export type SendUserOperationCriteria = z.infer<typeof SendUserOperationCriteriaSchema>;
2517
2517
  /**
2518
- * Enum for Evm Operation types
2519
- */
2520
- export declare const EvmOperationEnum: z.ZodEnum<["signEvmTransaction", "sendEvmTransaction", "signEvmMessage", "signEvmTypedData", "signEvmHash", "prepareUserOperation", "sendUserOperation"]>;
2521
- /**
2522
- * Type representing the operations that can be governed by a policy.
2523
- * Defines what EVM operations the policy applies to.
2524
- */
2525
- export type EvmOperation = z.infer<typeof EvmOperationEnum>;
2526
- /**
2527
- * Enum for Action types
2528
- */
2529
- export declare const ActionEnum: z.ZodEnum<["reject", "accept"]>;
2530
- /**
2531
- * Type representing the possible policy actions.
2532
- * Determines whether matching the rule will cause a request to be accepted or rejected.
2533
- */
2534
- export type Action = z.infer<typeof ActionEnum>;
2535
- /**
2536
- * Type representing a 'signEvmTransaction' policy rule that can accept or reject specific operations
2537
- * based on a set of criteria.
2518
+ * Schema for criteria used in SignEndUserEvmTransaction operations
2538
2519
  */
2539
- export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
2520
+ export declare const SignEndUserEvmTransactionCriteriaSchema: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
2521
+ /** The type of criterion, must be "ethValue" for Ethereum value-based rules. */
2522
+ type: z.ZodLiteral<"ethValue">;
2540
2523
  /**
2541
- * Determines whether matching the rule will cause a request to be rejected or accepted.
2542
- * "accept" will allow the transaction, "reject" will block it.
2524
+ * The ETH value amount in wei to compare against, as a string.
2525
+ * Must contain only digits.
2543
2526
  */
2544
- action: z.ZodEnum<["reject", "accept"]>;
2527
+ ethValue: z.ZodString;
2528
+ /** The comparison operator to use for evaluating transaction values against the threshold. */
2529
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
2530
+ }, "strip", z.ZodTypeAny, {
2531
+ ethValue: string;
2532
+ type: "ethValue";
2533
+ operator: ">" | ">=" | "<" | "<=" | "==";
2534
+ }, {
2535
+ ethValue: string;
2536
+ type: "ethValue";
2537
+ operator: ">" | ">=" | "<" | "<=" | "==";
2538
+ }>, z.ZodObject<{
2539
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
2540
+ type: z.ZodLiteral<"evmAddress">;
2545
2541
  /**
2546
- * The operation to which this rule applies.
2547
- * Must be "signEvmTransaction".
2542
+ * Array of EVM addresses to compare against.
2543
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
2544
+ * Limited to a maximum of 300 addresses per criterion.
2548
2545
  */
2549
- operation: z.ZodLiteral<"signEvmTransaction">;
2546
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
2550
2547
  /**
2551
- * The set of criteria that must be matched for this rule to apply.
2552
- * Must be compatible with the specified operation type.
2548
+ * The operator to use for evaluating transaction addresses.
2549
+ * "in" checks if an address is in the provided list.
2550
+ * "not in" checks if an address is not in the provided list.
2553
2551
  */
2554
- criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
2555
- /** The type of criterion, must be "ethValue" for Ethereum value-based rules. */
2556
- type: z.ZodLiteral<"ethValue">;
2557
- /**
2558
- * The ETH value amount in wei to compare against, as a string.
2559
- * Must contain only digits.
2560
- */
2561
- ethValue: z.ZodString;
2562
- /** The comparison operator to use for evaluating transaction values against the threshold. */
2563
- operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
2552
+ operator: z.ZodEnum<["in", "not in"]>;
2553
+ }, "strip", z.ZodTypeAny, {
2554
+ type: "evmAddress";
2555
+ operator: "in" | "not in";
2556
+ addresses: `0x${string}`[];
2557
+ }, {
2558
+ type: "evmAddress";
2559
+ operator: "in" | "not in";
2560
+ addresses: string[];
2561
+ }>, z.ZodObject<{
2562
+ /** The type of criterion, must be "evmData" for EVM transaction rules. */
2563
+ type: z.ZodLiteral<"evmData">;
2564
+ /**
2565
+ * The ABI of the smart contract being called. This can be a partial structure with only specific functions.
2566
+ */
2567
+ abi: z.ZodUnion<[z.ZodEnum<["erc20", "erc721", "erc1155"]>, z.ZodReadonly<z.ZodArray<z.ZodUnion<[z.ZodObject<{
2568
+ type: z.ZodLiteral<"error">;
2569
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2570
+ name: z.ZodString;
2564
2571
  }, "strip", z.ZodTypeAny, {
2565
- ethValue: string;
2566
- type: "ethValue";
2567
- operator: ">" | ">=" | "<" | "<=" | "==";
2572
+ inputs: readonly import("abitype").AbiParameter[];
2573
+ type: "error";
2574
+ name: string;
2568
2575
  }, {
2569
- ethValue: string;
2570
- type: "ethValue";
2571
- operator: ">" | ">=" | "<" | "<=" | "==";
2576
+ inputs: readonly import("abitype").AbiParameter[];
2577
+ type: "error";
2578
+ name: string;
2572
2579
  }>, z.ZodObject<{
2573
- /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
2574
- type: z.ZodLiteral<"evmAddress">;
2575
- /**
2576
- * Array of EVM addresses to compare against.
2580
+ type: z.ZodLiteral<"event">;
2581
+ anonymous: z.ZodOptional<z.ZodBoolean>;
2582
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiEventParameter, z.ZodTypeDef, import("abitype").AbiEventParameter>, "many">>;
2583
+ name: z.ZodString;
2584
+ }, "strip", z.ZodTypeAny, {
2585
+ inputs: readonly import("abitype").AbiEventParameter[];
2586
+ type: "event";
2587
+ name: string;
2588
+ anonymous?: boolean | undefined;
2589
+ }, {
2590
+ inputs: readonly import("abitype").AbiEventParameter[];
2591
+ type: "event";
2592
+ name: string;
2593
+ anonymous?: boolean | undefined;
2594
+ }>, z.ZodEffects<z.ZodIntersection<z.ZodObject<{
2595
+ constant: z.ZodOptional<z.ZodBoolean>;
2596
+ gas: z.ZodOptional<z.ZodNumber>;
2597
+ payable: z.ZodOptional<z.ZodBoolean>;
2598
+ }, "strip", z.ZodTypeAny, {
2599
+ payable?: boolean | undefined;
2600
+ constant?: boolean | undefined;
2601
+ gas?: number | undefined;
2602
+ }, {
2603
+ payable?: boolean | undefined;
2604
+ constant?: boolean | undefined;
2605
+ gas?: number | undefined;
2606
+ }>, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
2607
+ type: z.ZodLiteral<"function">;
2608
+ inputs: z.ZodReadonly<z.ZodArray /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2609
+ name: z.ZodString;
2610
+ outputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2611
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"pure">, z.ZodLiteral<"view">, z.ZodLiteral<"nonpayable">, z.ZodLiteral<"payable">]>;
2612
+ }, "strip", z.ZodTypeAny, {
2613
+ inputs: readonly import("abitype").AbiParameter[];
2614
+ outputs: readonly import("abitype").AbiParameter[];
2615
+ type: "function";
2616
+ name: string;
2617
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
2618
+ }, {
2619
+ inputs: readonly import("abitype").AbiParameter[];
2620
+ outputs: readonly import("abitype").AbiParameter[];
2621
+ type: "function";
2622
+ name: string;
2623
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
2624
+ }>, z.ZodObject<{
2625
+ type: z.ZodLiteral<"constructor">;
2626
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2627
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"payable">, z.ZodLiteral<"nonpayable">]>;
2628
+ }, "strip", z.ZodTypeAny, {
2629
+ inputs: readonly import("abitype").AbiParameter[];
2630
+ type: "constructor";
2631
+ stateMutability: "nonpayable" | "payable";
2632
+ }, {
2633
+ inputs: readonly import("abitype").AbiParameter[];
2634
+ type: "constructor";
2635
+ stateMutability: "nonpayable" | "payable";
2636
+ }>, z.ZodObject<{
2637
+ type: z.ZodLiteral<"fallback">;
2638
+ inputs: z.ZodOptional<z.ZodTuple<[], null>>;
2639
+ stateMutability: z.ZodUnion<[z.ZodLiteral /**
2640
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
2577
2641
  * Each address must be a 0x-prefixed 40-character hexadecimal string.
2578
2642
  * Limited to a maximum of 300 addresses per criterion.
2579
- */
2580
- addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
2581
- /**
2582
- * The operator to use for evaluating transaction addresses.
2583
- * "in" checks if an address is in the provided list.
2584
- * "not in" checks if an address is not in the provided list.
2585
- */
2586
- operator: z.ZodEnum<["in", "not in"]>;
2643
+ */<"payable">, z.ZodLiteral<"nonpayable">]>;
2587
2644
  }, "strip", z.ZodTypeAny, {
2588
- type: "evmAddress";
2589
- operator: "in" | "not in";
2590
- addresses: `0x${string}`[];
2645
+ type: "fallback";
2646
+ stateMutability: "nonpayable" | "payable";
2647
+ inputs?: [] | undefined;
2591
2648
  }, {
2592
- type: "evmAddress";
2593
- operator: "in" | "not in";
2594
- addresses: string[];
2649
+ type: "fallback";
2650
+ stateMutability: "nonpayable" | "payable";
2651
+ inputs?: [] | undefined;
2595
2652
  }>, z.ZodObject<{
2596
- /** The type of criterion, must be "evmData" for EVM transaction rules. */
2597
- type: z.ZodLiteral<"evmData">;
2653
+ type: z.ZodLiteral<"receive">;
2654
+ stateMutability: z.ZodLiteral<"payable">;
2655
+ }, "strip", z.ZodTypeAny, {
2656
+ type: "receive";
2657
+ stateMutability: "payable";
2658
+ }, {
2659
+ type: "receive";
2660
+ stateMutability: "payable";
2661
+ }>]>>, {
2662
+ payable?: boolean | undefined;
2663
+ constant?: boolean | undefined;
2664
+ gas?: number | undefined;
2665
+ } & ({
2666
+ inputs: readonly import("abitype").AbiParameter[];
2667
+ outputs: readonly import("abitype").AbiParameter[];
2668
+ type: "function";
2669
+ name: string;
2670
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
2671
+ } | {
2672
+ inputs: readonly import("abitype").AbiParameter[];
2673
+ type: "constructor";
2674
+ stateMutability: "nonpayable" | "payable";
2675
+ } | {
2676
+ type: "fallback";
2677
+ stateMutability: "nonpayable" | "payable";
2678
+ inputs?: [] | undefined;
2679
+ } | {
2680
+ type: "receive";
2681
+ stateMutability: "payable";
2682
+ }), unknown>]>, "many">>]>;
2683
+ /**
2684
+ * A list of conditions to apply against the function and encoded arguments in the transaction's `data` field.
2685
+ * Each condition must be met in order for this policy to be accepted or rejected.
2686
+ */
2687
+ conditions: z.ZodArray<z.ZodObject<{
2598
2688
  /**
2599
- * The ABI of the smart contract being called. This can be a partial structure with only specific functions.
2689
+ * The name of a smart contract function being called.
2600
2690
  */
2601
- abi: z.ZodUnion<[z.ZodEnum<["erc20", "erc721", "erc1155"]>, z.ZodReadonly<z.ZodArray<z.ZodUnion<[z.ZodObject<{
2602
- type: z.ZodLiteral<"error">;
2603
- inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2604
- name: z.ZodString;
2691
+ function: z.ZodString;
2692
+ /**
2693
+ * An optional list of parameter conditions to apply against encoded arguments in the transaction's `data` field.
2694
+ */
2695
+ params: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
2696
+ /**
2697
+ * The name of the parameter to check against a transaction's calldata.
2698
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
2699
+ */
2700
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
2701
+ /**
2702
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
2703
+ * left-hand side of the operator, and the `value` field will be on the right-hand side.
2704
+ */
2705
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
2706
+ /**
2707
+ * A single value to compare the value resolved at `name` to.
2708
+ * All values are encoded as strings. Refer to the table in the documentation for how values
2709
+ * should be encoded, and which operators are supported for each type.
2710
+ */
2711
+ value: z.ZodString;
2605
2712
  }, "strip", z.ZodTypeAny, {
2606
- inputs: readonly import("abitype").AbiParameter[];
2607
- type: "error";
2713
+ value: string;
2608
2714
  name: string;
2715
+ operator: ">" | ">=" | "<" | "<=" | "==";
2609
2716
  }, {
2610
- inputs: readonly import("abitype").AbiParameter[];
2611
- type: "error";
2717
+ value: string;
2612
2718
  name: string;
2719
+ operator: ">" | ">=" | "<" | "<=" | "==";
2613
2720
  }>, z.ZodObject<{
2614
- type: z.ZodLiteral<"event">;
2615
- anonymous: z.ZodOptional<z.ZodBoolean>;
2616
- inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiEventParameter, z.ZodTypeDef, import("abitype").AbiEventParameter>, "many">>;
2721
+ /**
2722
+ * The name of the parameter to check against a transaction's calldata.
2723
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
2724
+ */
2725
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
2726
+ /**
2727
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
2728
+ * left-hand side of the operator, and the `values` field will be on the right-hand side.
2729
+ */
2730
+ operator: z.ZodEnum<["in", "not in"]>;
2731
+ /**
2732
+ * Values to compare against the resolved `name` value.
2733
+ * All values are encoded as strings. Refer to the table in the documentation for how values
2734
+ * should be encoded, and which operators are supported for each type.
2735
+ */
2736
+ values: z.ZodArray<z.ZodString, "many">;
2737
+ }, "strip", z.ZodTypeAny, {
2738
+ values: string[];
2739
+ name: string;
2740
+ operator: "in" | "not in";
2741
+ }, {
2742
+ values: string[];
2743
+ name: string;
2744
+ operator: "in" | "not in";
2745
+ }>]>, "many">>;
2746
+ }, "strip", z.ZodTypeAny, {
2747
+ function: string;
2748
+ params?: ({
2749
+ values: string[];
2750
+ name: string;
2751
+ operator: "in" | "not in";
2752
+ } | {
2753
+ value: string;
2754
+ name: string;
2755
+ operator: ">" | ">=" | "<" | "<=" | "==";
2756
+ })[] | undefined;
2757
+ }, {
2758
+ function: string;
2759
+ params?: ({
2760
+ values: string[];
2761
+ name: string;
2762
+ operator: "in" | "not in";
2763
+ } | {
2764
+ value: string;
2765
+ name: string;
2766
+ operator: ">" | ">=" | "<" | "<=" | "==";
2767
+ })[] | undefined;
2768
+ }>, "many">;
2769
+ }, "strip", z.ZodTypeAny, {
2770
+ type: "evmData";
2771
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
2772
+ inputs: readonly import("abitype").AbiParameter[];
2773
+ type: "error";
2774
+ name: string;
2775
+ } | {
2776
+ inputs: readonly import("abitype").AbiEventParameter[];
2777
+ type: "event";
2778
+ name: string;
2779
+ anonymous?: boolean | undefined;
2780
+ } | ({
2781
+ payable?: boolean | undefined;
2782
+ constant?: boolean | undefined;
2783
+ gas?: number | undefined;
2784
+ } & ({
2785
+ inputs: readonly import("abitype").AbiParameter[];
2786
+ outputs: readonly import("abitype").AbiParameter[];
2787
+ type: "function";
2788
+ name: string;
2789
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
2790
+ } | {
2791
+ inputs: readonly import("abitype").AbiParameter[];
2792
+ type: "constructor";
2793
+ stateMutability: "nonpayable" | "payable";
2794
+ } | {
2795
+ type: "fallback";
2796
+ stateMutability: "nonpayable" | "payable";
2797
+ inputs?: [] | undefined;
2798
+ } | {
2799
+ type: "receive";
2800
+ stateMutability: "payable";
2801
+ })))[];
2802
+ conditions: {
2803
+ function: string;
2804
+ params?: ({
2805
+ values: string[];
2806
+ name: string;
2807
+ operator: "in" | "not in";
2808
+ } | {
2809
+ value: string;
2810
+ name: string;
2811
+ operator: ">" | ">=" | "<" | "<=" | "==";
2812
+ })[] | undefined;
2813
+ }[];
2814
+ }, {
2815
+ type: "evmData";
2816
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
2817
+ conditions: {
2818
+ function: string;
2819
+ params?: ({
2820
+ values: string[];
2821
+ name: string;
2822
+ operator: "in" | "not in";
2823
+ } | {
2824
+ value: string;
2825
+ name: string;
2826
+ operator: ">" | ">=" | "<" | "<=" | "==";
2827
+ })[] | undefined;
2828
+ }[];
2829
+ }>, z.ZodObject<{
2830
+ /** The type of criterion, must be "netUSDChange" for USD denominated asset transfer rules. */
2831
+ type: z.ZodLiteral<"netUSDChange">;
2832
+ /**
2833
+ * The amount of USD, in cents, that the total USD value of a transaction's asset transfer and exposure should be compared to.
2834
+ */
2835
+ changeCents: z.ZodNumber;
2836
+ /**
2837
+ * The operator to use for the comparison. The total value of a transaction's asset transfer and exposure in USD will be on the left-hand side of the operator, and the `changeCents` field will be on the right-hand side.
2838
+ */
2839
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
2840
+ }, "strip", z.ZodTypeAny, {
2841
+ type: "netUSDChange";
2842
+ operator: ">" | ">=" | "<" | "<=" | "==";
2843
+ changeCents: number;
2844
+ }, {
2845
+ type: "netUSDChange";
2846
+ operator: ">" | ">=" | "<" | "<=" | "==";
2847
+ changeCents: number;
2848
+ }>]>, "many">;
2849
+ /**
2850
+ * Type representing a set of criteria for the signEndUserEvmTransaction operation.
2851
+ */
2852
+ export type SignEndUserEvmTransactionCriteria = z.infer<typeof SignEndUserEvmTransactionCriteriaSchema>;
2853
+ /**
2854
+ * Schema for criteria used in SendEndUserEvmTransaction operations
2855
+ */
2856
+ export declare const SendEndUserEvmTransactionCriteriaSchema: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
2857
+ /** The type of criterion, must be "ethValue" for Ethereum value-based rules. */
2858
+ type: z.ZodLiteral<"ethValue">;
2859
+ /**
2860
+ * The ETH value amount in wei to compare against, as a string.
2861
+ * Must contain only digits.
2862
+ */
2863
+ ethValue: z.ZodString;
2864
+ /** The comparison operator to use for evaluating transaction values against the threshold. */
2865
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
2866
+ }, "strip", z.ZodTypeAny, {
2867
+ ethValue: string;
2868
+ type: "ethValue";
2869
+ operator: ">" | ">=" | "<" | "<=" | "==";
2870
+ }, {
2871
+ ethValue: string;
2872
+ type: "ethValue";
2873
+ operator: ">" | ">=" | "<" | "<=" | "==";
2874
+ }>, z.ZodObject<{
2875
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
2876
+ type: z.ZodLiteral<"evmAddress">;
2877
+ /**
2878
+ * Array of EVM addresses to compare against.
2879
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
2880
+ * Limited to a maximum of 300 addresses per criterion.
2881
+ */
2882
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
2883
+ /**
2884
+ * The operator to use for evaluating transaction addresses.
2885
+ * "in" checks if an address is in the provided list.
2886
+ * "not in" checks if an address is not in the provided list.
2887
+ */
2888
+ operator: z.ZodEnum<["in", "not in"]>;
2889
+ }, "strip", z.ZodTypeAny, {
2890
+ type: "evmAddress";
2891
+ operator: "in" | "not in";
2892
+ addresses: `0x${string}`[];
2893
+ }, {
2894
+ type: "evmAddress";
2895
+ operator: "in" | "not in";
2896
+ addresses: string[];
2897
+ }>, z.ZodObject<{
2898
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
2899
+ type: z.ZodLiteral<"evmNetwork">;
2900
+ /**
2901
+ * Array of EVM network identifiers to compare against.
2902
+ * Either "base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"
2903
+ */
2904
+ networks: z.ZodArray<z.ZodEnum<["base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"]>, "many">;
2905
+ /**
2906
+ * The operator to use for evaluating transaction network.
2907
+ * "in" checks if a network is in the provided list.
2908
+ * "not in" checks if a network is not in the provided list.
2909
+ */
2910
+ operator: z.ZodEnum<["in", "not in"]>;
2911
+ }, "strip", z.ZodTypeAny, {
2912
+ type: "evmNetwork";
2913
+ operator: "in" | "not in";
2914
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
2915
+ }, {
2916
+ type: "evmNetwork";
2917
+ operator: "in" | "not in";
2918
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
2919
+ }>, z.ZodObject<{
2920
+ /** The type of criterion, must be "evmData" for EVM transaction rules. */
2921
+ type: z.ZodLiteral<"evmData">;
2922
+ /**
2923
+ * The ABI of the smart contract being called. This can be a partial structure with only specific functions.
2924
+ */
2925
+ abi: z.ZodUnion<[z.ZodEnum<["erc20", "erc721", "erc1155"]>, z.ZodReadonly<z.ZodArray<z.ZodUnion<[z.ZodObject<{
2926
+ type: z.ZodLiteral<"error">;
2927
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2928
+ name: z.ZodString;
2929
+ }, "strip", z.ZodTypeAny, {
2930
+ inputs: readonly import("abitype").AbiParameter[];
2931
+ type: "error";
2932
+ name: string;
2933
+ }, {
2934
+ inputs: readonly import("abitype").AbiParameter[];
2935
+ type: "error";
2936
+ name: string;
2937
+ }>, z.ZodObject<{
2938
+ type: z.ZodLiteral<"event">;
2939
+ anonymous: z.ZodOptional<z.ZodBoolean>;
2940
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiEventParameter, z.ZodTypeDef, import("abitype").AbiEventParameter>, "many">>;
2941
+ name: z.ZodString;
2942
+ }, "strip", z.ZodTypeAny, {
2943
+ inputs: readonly import("abitype").AbiEventParameter[];
2944
+ type: "event";
2945
+ name: string;
2946
+ anonymous?: boolean | undefined;
2947
+ }, {
2948
+ inputs: readonly import("abitype").AbiEventParameter[];
2949
+ type: "event";
2950
+ name: string;
2951
+ anonymous?: boolean | undefined;
2952
+ }>, z.ZodEffects<z.ZodIntersection<z.ZodObject<{
2953
+ constant: z.ZodOptional<z.ZodBoolean>;
2954
+ gas: z.ZodOptional<z.ZodNumber>;
2955
+ payable: z.ZodOptional<z.ZodBoolean>;
2956
+ }, "strip", z.ZodTypeAny, {
2957
+ payable?: boolean | undefined;
2958
+ constant?: boolean | undefined;
2959
+ gas?: number | undefined;
2960
+ }, {
2961
+ payable?: boolean | undefined;
2962
+ constant?: boolean | undefined;
2963
+ gas?: number | undefined;
2964
+ }>, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
2965
+ type: z.ZodLiteral<"function">;
2966
+ inputs: z.ZodReadonly<z.ZodArray /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2967
+ name: z.ZodString;
2968
+ outputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2969
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"pure">, z.ZodLiteral<"view">, z.ZodLiteral<"nonpayable">, z.ZodLiteral<"payable">]>;
2970
+ }, "strip", z.ZodTypeAny, {
2971
+ inputs: readonly import("abitype").AbiParameter[];
2972
+ outputs: readonly import("abitype").AbiParameter[];
2973
+ type: "function";
2974
+ name: string;
2975
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
2976
+ }, {
2977
+ inputs: readonly import("abitype").AbiParameter[];
2978
+ outputs: readonly import("abitype").AbiParameter[];
2979
+ type: "function";
2980
+ name: string;
2981
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
2982
+ }>, z.ZodObject<{
2983
+ type: z.ZodLiteral<"constructor">;
2984
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
2985
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"payable">, z.ZodLiteral<"nonpayable">]>;
2986
+ }, "strip", z.ZodTypeAny, {
2987
+ inputs: readonly import("abitype").AbiParameter[];
2988
+ type: "constructor";
2989
+ stateMutability: "nonpayable" | "payable";
2990
+ }, {
2991
+ inputs: readonly import("abitype").AbiParameter[];
2992
+ type: "constructor";
2993
+ stateMutability: "nonpayable" | "payable";
2994
+ }>, z.ZodObject<{
2995
+ type: z.ZodLiteral<"fallback">;
2996
+ inputs: z.ZodOptional<z.ZodTuple<[], null>>;
2997
+ stateMutability: z.ZodUnion<[z.ZodLiteral /**
2998
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
2999
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
3000
+ * Limited to a maximum of 300 addresses per criterion.
3001
+ */<"payable">, z.ZodLiteral<"nonpayable">]>;
3002
+ }, "strip", z.ZodTypeAny, {
3003
+ type: "fallback";
3004
+ stateMutability: "nonpayable" | "payable";
3005
+ inputs?: [] | undefined;
3006
+ }, {
3007
+ type: "fallback";
3008
+ stateMutability: "nonpayable" | "payable";
3009
+ inputs?: [] | undefined;
3010
+ }>, z.ZodObject<{
3011
+ type: z.ZodLiteral<"receive">;
3012
+ stateMutability: z.ZodLiteral<"payable">;
3013
+ }, "strip", z.ZodTypeAny, {
3014
+ type: "receive";
3015
+ stateMutability: "payable";
3016
+ }, {
3017
+ type: "receive";
3018
+ stateMutability: "payable";
3019
+ }>]>>, {
3020
+ payable?: boolean | undefined;
3021
+ constant?: boolean | undefined;
3022
+ gas?: number | undefined;
3023
+ } & ({
3024
+ inputs: readonly import("abitype").AbiParameter[];
3025
+ outputs: readonly import("abitype").AbiParameter[];
3026
+ type: "function";
3027
+ name: string;
3028
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3029
+ } | {
3030
+ inputs: readonly import("abitype").AbiParameter[];
3031
+ type: "constructor";
3032
+ stateMutability: "nonpayable" | "payable";
3033
+ } | {
3034
+ type: "fallback";
3035
+ stateMutability: "nonpayable" | "payable";
3036
+ inputs?: [] | undefined;
3037
+ } | {
3038
+ type: "receive";
3039
+ stateMutability: "payable";
3040
+ }), unknown>]>, "many">>]>;
3041
+ /**
3042
+ * A list of conditions to apply against the function and encoded arguments in the transaction's `data` field.
3043
+ * Each condition must be met in order for this policy to be accepted or rejected.
3044
+ */
3045
+ conditions: z.ZodArray<z.ZodObject<{
3046
+ /**
3047
+ * The name of a smart contract function being called.
3048
+ */
3049
+ function: z.ZodString;
3050
+ /**
3051
+ * An optional list of parameter conditions to apply against encoded arguments in the transaction's `data` field.
3052
+ */
3053
+ params: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3054
+ /**
3055
+ * The name of the parameter to check against a transaction's calldata.
3056
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
3057
+ */
3058
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
3059
+ /**
3060
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
3061
+ * left-hand side of the operator, and the `value` field will be on the right-hand side.
3062
+ */
3063
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3064
+ /**
3065
+ * A single value to compare the value resolved at `name` to.
3066
+ * All values are encoded as strings. Refer to the table in the documentation for how values
3067
+ * should be encoded, and which operators are supported for each type.
3068
+ */
3069
+ value: z.ZodString;
3070
+ }, "strip", z.ZodTypeAny, {
3071
+ value: string;
3072
+ name: string;
3073
+ operator: ">" | ">=" | "<" | "<=" | "==";
3074
+ }, {
3075
+ value: string;
3076
+ name: string;
3077
+ operator: ">" | ">=" | "<" | "<=" | "==";
3078
+ }>, z.ZodObject<{
3079
+ /**
3080
+ * The name of the parameter to check against a transaction's calldata.
3081
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
3082
+ */
3083
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
3084
+ /**
3085
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
3086
+ * left-hand side of the operator, and the `values` field will be on the right-hand side.
3087
+ */
3088
+ operator: z.ZodEnum<["in", "not in"]>;
3089
+ /**
3090
+ * Values to compare against the resolved `name` value.
3091
+ * All values are encoded as strings. Refer to the table in the documentation for how values
3092
+ * should be encoded, and which operators are supported for each type.
3093
+ */
3094
+ values: z.ZodArray<z.ZodString, "many">;
3095
+ }, "strip", z.ZodTypeAny, {
3096
+ values: string[];
3097
+ name: string;
3098
+ operator: "in" | "not in";
3099
+ }, {
3100
+ values: string[];
3101
+ name: string;
3102
+ operator: "in" | "not in";
3103
+ }>]>, "many">>;
3104
+ }, "strip", z.ZodTypeAny, {
3105
+ function: string;
3106
+ params?: ({
3107
+ values: string[];
3108
+ name: string;
3109
+ operator: "in" | "not in";
3110
+ } | {
3111
+ value: string;
3112
+ name: string;
3113
+ operator: ">" | ">=" | "<" | "<=" | "==";
3114
+ })[] | undefined;
3115
+ }, {
3116
+ function: string;
3117
+ params?: ({
3118
+ values: string[];
3119
+ name: string;
3120
+ operator: "in" | "not in";
3121
+ } | {
3122
+ value: string;
3123
+ name: string;
3124
+ operator: ">" | ">=" | "<" | "<=" | "==";
3125
+ })[] | undefined;
3126
+ }>, "many">;
3127
+ }, "strip", z.ZodTypeAny, {
3128
+ type: "evmData";
3129
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
3130
+ inputs: readonly import("abitype").AbiParameter[];
3131
+ type: "error";
3132
+ name: string;
3133
+ } | {
3134
+ inputs: readonly import("abitype").AbiEventParameter[];
3135
+ type: "event";
3136
+ name: string;
3137
+ anonymous?: boolean | undefined;
3138
+ } | ({
3139
+ payable?: boolean | undefined;
3140
+ constant?: boolean | undefined;
3141
+ gas?: number | undefined;
3142
+ } & ({
3143
+ inputs: readonly import("abitype").AbiParameter[];
3144
+ outputs: readonly import("abitype").AbiParameter[];
3145
+ type: "function";
3146
+ name: string;
3147
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3148
+ } | {
3149
+ inputs: readonly import("abitype").AbiParameter[];
3150
+ type: "constructor";
3151
+ stateMutability: "nonpayable" | "payable";
3152
+ } | {
3153
+ type: "fallback";
3154
+ stateMutability: "nonpayable" | "payable";
3155
+ inputs?: [] | undefined;
3156
+ } | {
3157
+ type: "receive";
3158
+ stateMutability: "payable";
3159
+ })))[];
3160
+ conditions: {
3161
+ function: string;
3162
+ params?: ({
3163
+ values: string[];
3164
+ name: string;
3165
+ operator: "in" | "not in";
3166
+ } | {
3167
+ value: string;
3168
+ name: string;
3169
+ operator: ">" | ">=" | "<" | "<=" | "==";
3170
+ })[] | undefined;
3171
+ }[];
3172
+ }, {
3173
+ type: "evmData";
3174
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
3175
+ conditions: {
3176
+ function: string;
3177
+ params?: ({
3178
+ values: string[];
3179
+ name: string;
3180
+ operator: "in" | "not in";
3181
+ } | {
3182
+ value: string;
3183
+ name: string;
3184
+ operator: ">" | ">=" | "<" | "<=" | "==";
3185
+ })[] | undefined;
3186
+ }[];
3187
+ }>, z.ZodObject<{
3188
+ /** The type of criterion, must be "netUSDChange" for USD denominated asset transfer rules. */
3189
+ type: z.ZodLiteral<"netUSDChange">;
3190
+ /**
3191
+ * The amount of USD, in cents, that the total USD value of a transaction's asset transfer and exposure should be compared to.
3192
+ */
3193
+ changeCents: z.ZodNumber;
3194
+ /**
3195
+ * The operator to use for the comparison. The total value of a transaction's asset transfer and exposure in USD will be on the left-hand side of the operator, and the `changeCents` field will be on the right-hand side.
3196
+ */
3197
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3198
+ }, "strip", z.ZodTypeAny, {
3199
+ type: "netUSDChange";
3200
+ operator: ">" | ">=" | "<" | "<=" | "==";
3201
+ changeCents: number;
3202
+ }, {
3203
+ type: "netUSDChange";
3204
+ operator: ">" | ">=" | "<" | "<=" | "==";
3205
+ changeCents: number;
3206
+ }>]>, "many">;
3207
+ /**
3208
+ * Type representing a set of criteria for the sendEndUserEvmTransaction operation.
3209
+ */
3210
+ export type SendEndUserEvmTransactionCriteria = z.infer<typeof SendEndUserEvmTransactionCriteriaSchema>;
3211
+ /**
3212
+ * Schema for criteria used in SignEndUserEvmMessage operations
3213
+ */
3214
+ export declare const SignEndUserEvmMessageCriteriaSchema: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3215
+ /** The type of criterion, must be "evmMessage" for EVM message-based rules. */
3216
+ type: z.ZodLiteral<"evmMessage">;
3217
+ /**
3218
+ * A regular expression the message is matched against.
3219
+ * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
3220
+ */
3221
+ match: z.ZodString;
3222
+ }, "strip", z.ZodTypeAny, {
3223
+ match: string;
3224
+ type: "evmMessage";
3225
+ }, {
3226
+ match: string;
3227
+ type: "evmMessage";
3228
+ }>]>, "many">;
3229
+ /**
3230
+ * Type representing a set of criteria for the signEndUserEvmMessage operation.
3231
+ */
3232
+ export type SignEndUserEvmMessageCriteria = z.infer<typeof SignEndUserEvmMessageCriteriaSchema>;
3233
+ /**
3234
+ * Schema for criteria used in SignEndUserEvmTypedData operations
3235
+ */
3236
+ export declare const SignEndUserEvmTypedDataCriteriaSchema: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3237
+ /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */
3238
+ type: z.ZodLiteral<"evmTypedDataField">;
3239
+ /**
3240
+ * The EIP-712 type definitions for the typed data.
3241
+ * Must include at minimum the primary type being signed.
3242
+ */
3243
+ types: z.ZodObject<{
3244
+ /**
3245
+ * EIP-712 compliant map of model names to model definitions.
3246
+ */
3247
+ types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
3248
+ name: z.ZodString;
3249
+ type: z.ZodString;
3250
+ }, "strip", z.ZodTypeAny, {
3251
+ type: string;
3252
+ name: string;
3253
+ }, {
3254
+ type: string;
3255
+ name: string;
3256
+ }>, "many">>;
3257
+ /**
3258
+ * The name of the root EIP-712 type. This value must be included in the `types` object.
3259
+ */
3260
+ primaryType: z.ZodString;
3261
+ }, "strip", z.ZodTypeAny, {
3262
+ types: Record<string, {
3263
+ type: string;
3264
+ name: string;
3265
+ }[]>;
3266
+ primaryType: string;
3267
+ }, {
3268
+ types: Record<string, {
3269
+ type: string;
3270
+ name: string;
3271
+ }[]>;
3272
+ primaryType: string;
3273
+ }>;
3274
+ /**
3275
+ * Array of conditions to apply against typed data fields.
3276
+ * Each condition specifies how to validate a specific field within the typed data.
3277
+ */
3278
+ conditions: z.ZodArray<z.ZodUnion<[z.ZodObject<{
3279
+ /**
3280
+ * Array of EVM addresses to compare against.
3281
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
3282
+ * Limited to a maximum of 300 addresses per condition.
3283
+ */
3284
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
3285
+ /**
3286
+ * The operator to use for evaluating addresses.
3287
+ * "in" checks if an address is in the provided list.
3288
+ * "not in" checks if an address is not in the provided list.
3289
+ */
3290
+ operator: z.ZodEnum<["in", "not in"]>;
3291
+ /**
3292
+ * The path to the field to compare against this criterion.
3293
+ * To reference deeply nested fields, use dot notation (e.g., "order.buyer").
3294
+ */
3295
+ path: z.ZodString;
3296
+ }, "strip", z.ZodTypeAny, {
3297
+ path: string;
3298
+ operator: "in" | "not in";
3299
+ addresses: `0x${string}`[];
3300
+ }, {
3301
+ path: string;
3302
+ operator: "in" | "not in";
3303
+ addresses: string[];
3304
+ }>, z.ZodObject<{
3305
+ /**
3306
+ * The numerical value to compare against, as a string.
3307
+ * Must contain only digits.
3308
+ */
3309
+ value: z.ZodString;
3310
+ /**
3311
+ * The comparison operator to use.
3312
+ */
3313
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3314
+ /**
3315
+ * The path to the field to compare against this criterion.
3316
+ * To reference deeply nested fields, use dot notation (e.g., "order.price").
3317
+ */
3318
+ path: z.ZodString;
3319
+ }, "strip", z.ZodTypeAny, {
3320
+ value: string;
3321
+ path: string;
3322
+ operator: ">" | ">=" | "<" | "<=" | "==";
3323
+ }, {
3324
+ value: string;
3325
+ path: string;
3326
+ operator: ">" | ">=" | "<" | "<=" | "==";
3327
+ }>, z.ZodObject<{
3328
+ /**
3329
+ * A regular expression the string field is matched against.
3330
+ * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
3331
+ */
3332
+ match: z.ZodString;
3333
+ /**
3334
+ * The path to the field to compare against this criterion.
3335
+ * To reference deeply nested fields, use dot notation (e.g., "metadata.description").
3336
+ */
3337
+ path: z.ZodString;
3338
+ }, "strip", z.ZodTypeAny, {
3339
+ match: string;
3340
+ path: string;
3341
+ }, {
3342
+ match: string;
3343
+ path: string;
3344
+ }>]>, "many">;
3345
+ }, "strip", z.ZodTypeAny, {
3346
+ type: "evmTypedDataField";
3347
+ types: {
3348
+ types: Record<string, {
3349
+ type: string;
3350
+ name: string;
3351
+ }[]>;
3352
+ primaryType: string;
3353
+ };
3354
+ conditions: ({
3355
+ path: string;
3356
+ operator: "in" | "not in";
3357
+ addresses: `0x${string}`[];
3358
+ } | {
3359
+ value: string;
3360
+ path: string;
3361
+ operator: ">" | ">=" | "<" | "<=" | "==";
3362
+ } | {
3363
+ match: string;
3364
+ path: string;
3365
+ })[];
3366
+ }, {
3367
+ type: "evmTypedDataField";
3368
+ types: {
3369
+ types: Record<string, {
3370
+ type: string;
3371
+ name: string;
3372
+ }[]>;
3373
+ primaryType: string;
3374
+ };
3375
+ conditions: ({
3376
+ path: string;
3377
+ operator: "in" | "not in";
3378
+ addresses: string[];
3379
+ } | {
3380
+ value: string;
3381
+ path: string;
3382
+ operator: ">" | ">=" | "<" | "<=" | "==";
3383
+ } | {
3384
+ match: string;
3385
+ path: string;
3386
+ })[];
3387
+ }>, z.ZodObject<{
3388
+ /** The type of criterion, must be "evmTypedDataVerifyingContract" for verifying contract-based rules. */
3389
+ type: z.ZodLiteral<"evmTypedDataVerifyingContract">;
3390
+ /**
3391
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
3392
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
3393
+ * Limited to a maximum of 300 addresses per criterion.
3394
+ */
3395
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
3396
+ /**
3397
+ * The operator to use for evaluating verifying contract addresses.
3398
+ * "in" checks if the verifying contract is in the provided list.
3399
+ * "not in" checks if the verifying contract is not in the provided list.
3400
+ */
3401
+ operator: z.ZodEnum<["in", "not in"]>;
3402
+ }, "strip", z.ZodTypeAny, {
3403
+ type: "evmTypedDataVerifyingContract";
3404
+ operator: "in" | "not in";
3405
+ addresses: `0x${string}`[];
3406
+ }, {
3407
+ type: "evmTypedDataVerifyingContract";
3408
+ operator: "in" | "not in";
3409
+ addresses: string[];
3410
+ }>]>, "many">;
3411
+ /**
3412
+ * Type representing a set of criteria for the signEndUserEvmTypedData operation.
3413
+ */
3414
+ export type SignEndUserEvmTypedDataCriteria = z.infer<typeof SignEndUserEvmTypedDataCriteriaSchema>;
3415
+ /**
3416
+ * Enum for Evm Operation types
3417
+ */
3418
+ export declare const EvmOperationEnum: z.ZodEnum<["signEvmTransaction", "sendEvmTransaction", "signEvmMessage", "signEvmTypedData", "signEvmHash", "prepareUserOperation", "sendUserOperation"]>;
3419
+ /**
3420
+ * Type representing the operations that can be governed by a policy.
3421
+ * Defines what EVM operations the policy applies to.
3422
+ */
3423
+ export type EvmOperation = z.infer<typeof EvmOperationEnum>;
3424
+ /**
3425
+ * Enum for Action types
3426
+ */
3427
+ export declare const ActionEnum: z.ZodEnum<["reject", "accept"]>;
3428
+ /**
3429
+ * Type representing the possible policy actions.
3430
+ * Determines whether matching the rule will cause a request to be accepted or rejected.
3431
+ */
3432
+ export type Action = z.infer<typeof ActionEnum>;
3433
+ /**
3434
+ * Type representing a 'signEvmTransaction' policy rule that can accept or reject specific operations
3435
+ * based on a set of criteria.
3436
+ */
3437
+ export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
3438
+ /**
3439
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
3440
+ * "accept" will allow the transaction, "reject" will block it.
3441
+ */
3442
+ action: z.ZodEnum<["reject", "accept"]>;
3443
+ /**
3444
+ * The operation to which this rule applies.
3445
+ * Must be "signEvmTransaction".
3446
+ */
3447
+ operation: z.ZodLiteral<"signEvmTransaction">;
3448
+ /**
3449
+ * The set of criteria that must be matched for this rule to apply.
3450
+ * Must be compatible with the specified operation type.
3451
+ */
3452
+ criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3453
+ /** The type of criterion, must be "ethValue" for Ethereum value-based rules. */
3454
+ type: z.ZodLiteral<"ethValue">;
3455
+ /**
3456
+ * The ETH value amount in wei to compare against, as a string.
3457
+ * Must contain only digits.
3458
+ */
3459
+ ethValue: z.ZodString;
3460
+ /** The comparison operator to use for evaluating transaction values against the threshold. */
3461
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3462
+ }, "strip", z.ZodTypeAny, {
3463
+ ethValue: string;
3464
+ type: "ethValue";
3465
+ operator: ">" | ">=" | "<" | "<=" | "==";
3466
+ }, {
3467
+ ethValue: string;
3468
+ type: "ethValue";
3469
+ operator: ">" | ">=" | "<" | "<=" | "==";
3470
+ }>, z.ZodObject<{
3471
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
3472
+ type: z.ZodLiteral<"evmAddress">;
3473
+ /**
3474
+ * Array of EVM addresses to compare against.
3475
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
3476
+ * Limited to a maximum of 300 addresses per criterion.
3477
+ */
3478
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
3479
+ /**
3480
+ * The operator to use for evaluating transaction addresses.
3481
+ * "in" checks if an address is in the provided list.
3482
+ * "not in" checks if an address is not in the provided list.
3483
+ */
3484
+ operator: z.ZodEnum<["in", "not in"]>;
3485
+ }, "strip", z.ZodTypeAny, {
3486
+ type: "evmAddress";
3487
+ operator: "in" | "not in";
3488
+ addresses: `0x${string}`[];
3489
+ }, {
3490
+ type: "evmAddress";
3491
+ operator: "in" | "not in";
3492
+ addresses: string[];
3493
+ }>, z.ZodObject<{
3494
+ /** The type of criterion, must be "evmData" for EVM transaction rules. */
3495
+ type: z.ZodLiteral<"evmData">;
3496
+ /**
3497
+ * The ABI of the smart contract being called. This can be a partial structure with only specific functions.
3498
+ */
3499
+ abi: z.ZodUnion<[z.ZodEnum<["erc20", "erc721", "erc1155"]>, z.ZodReadonly<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3500
+ type: z.ZodLiteral<"error">;
3501
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
3502
+ name: z.ZodString;
3503
+ }, "strip", z.ZodTypeAny, {
3504
+ inputs: readonly import("abitype").AbiParameter[];
3505
+ type: "error";
3506
+ name: string;
3507
+ }, {
3508
+ inputs: readonly import("abitype").AbiParameter[];
3509
+ type: "error";
3510
+ name: string;
3511
+ }>, z.ZodObject<{
3512
+ type: z.ZodLiteral<"event">;
3513
+ anonymous: z.ZodOptional<z.ZodBoolean>;
3514
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiEventParameter, z.ZodTypeDef, import("abitype").AbiEventParameter>, "many">>;
3515
+ name: z.ZodString;
3516
+ }, "strip", z.ZodTypeAny, {
3517
+ inputs: readonly import("abitype").AbiEventParameter[];
3518
+ type: "event";
3519
+ name: string;
3520
+ anonymous?: boolean | undefined;
3521
+ }, {
3522
+ inputs: readonly import("abitype").AbiEventParameter[];
3523
+ type: "event";
3524
+ name: string;
3525
+ anonymous?: boolean | undefined;
3526
+ }>, z.ZodEffects<z.ZodIntersection<z.ZodObject<{
3527
+ constant: z.ZodOptional<z.ZodBoolean>;
3528
+ gas: z.ZodOptional<z.ZodNumber>;
3529
+ payable: z.ZodOptional<z.ZodBoolean>;
3530
+ }, "strip", z.ZodTypeAny, {
3531
+ payable?: boolean | undefined;
3532
+ constant?: boolean | undefined;
3533
+ gas?: number | undefined;
3534
+ }, {
3535
+ payable?: boolean | undefined;
3536
+ constant?: boolean | undefined;
3537
+ gas?: number | undefined;
3538
+ }>, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3539
+ type: z.ZodLiteral<"function">;
3540
+ inputs: z.ZodReadonly<z.ZodArray /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
3541
+ name: z.ZodString;
3542
+ outputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
3543
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"pure">, z.ZodLiteral<"view">, z.ZodLiteral<"nonpayable">, z.ZodLiteral<"payable">]>;
3544
+ }, "strip", z.ZodTypeAny, {
3545
+ inputs: readonly import("abitype").AbiParameter[];
3546
+ outputs: readonly import("abitype").AbiParameter[];
3547
+ type: "function";
3548
+ name: string;
3549
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3550
+ }, {
3551
+ inputs: readonly import("abitype").AbiParameter[];
3552
+ outputs: readonly import("abitype").AbiParameter[];
3553
+ type: "function";
3554
+ name: string;
3555
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3556
+ }>, z.ZodObject<{
3557
+ type: z.ZodLiteral<"constructor">;
3558
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
3559
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"payable">, z.ZodLiteral<"nonpayable">]>;
3560
+ }, "strip", z.ZodTypeAny, {
3561
+ inputs: readonly import("abitype").AbiParameter[];
3562
+ type: "constructor";
3563
+ stateMutability: "nonpayable" | "payable";
3564
+ }, {
3565
+ inputs: readonly import("abitype").AbiParameter[];
3566
+ type: "constructor";
3567
+ stateMutability: "nonpayable" | "payable";
3568
+ }>, z.ZodObject<{
3569
+ type: z.ZodLiteral<"fallback">;
3570
+ inputs: z.ZodOptional<z.ZodTuple<[], null>>;
3571
+ stateMutability: z.ZodUnion<[z.ZodLiteral /**
3572
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
3573
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
3574
+ * Limited to a maximum of 300 addresses per criterion.
3575
+ */<"payable">, z.ZodLiteral<"nonpayable">]>;
3576
+ }, "strip", z.ZodTypeAny, {
3577
+ type: "fallback";
3578
+ stateMutability: "nonpayable" | "payable";
3579
+ inputs?: [] | undefined;
3580
+ }, {
3581
+ type: "fallback";
3582
+ stateMutability: "nonpayable" | "payable";
3583
+ inputs?: [] | undefined;
3584
+ }>, z.ZodObject<{
3585
+ type: z.ZodLiteral<"receive">;
3586
+ stateMutability: z.ZodLiteral<"payable">;
3587
+ }, "strip", z.ZodTypeAny, {
3588
+ type: "receive";
3589
+ stateMutability: "payable";
3590
+ }, {
3591
+ type: "receive";
3592
+ stateMutability: "payable";
3593
+ }>]>>, {
3594
+ payable?: boolean | undefined;
3595
+ constant?: boolean | undefined;
3596
+ gas?: number | undefined;
3597
+ } & ({
3598
+ inputs: readonly import("abitype").AbiParameter[];
3599
+ outputs: readonly import("abitype").AbiParameter[];
3600
+ type: "function";
3601
+ name: string;
3602
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3603
+ } | {
3604
+ inputs: readonly import("abitype").AbiParameter[];
3605
+ type: "constructor";
3606
+ stateMutability: "nonpayable" | "payable";
3607
+ } | {
3608
+ type: "fallback";
3609
+ stateMutability: "nonpayable" | "payable";
3610
+ inputs?: [] | undefined;
3611
+ } | {
3612
+ type: "receive";
3613
+ stateMutability: "payable";
3614
+ }), unknown>]>, "many">>]>;
3615
+ /**
3616
+ * A list of conditions to apply against the function and encoded arguments in the transaction's `data` field.
3617
+ * Each condition must be met in order for this policy to be accepted or rejected.
3618
+ */
3619
+ conditions: z.ZodArray<z.ZodObject<{
3620
+ /**
3621
+ * The name of a smart contract function being called.
3622
+ */
3623
+ function: z.ZodString;
3624
+ /**
3625
+ * An optional list of parameter conditions to apply against encoded arguments in the transaction's `data` field.
3626
+ */
3627
+ params: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
3628
+ /**
3629
+ * The name of the parameter to check against a transaction's calldata.
3630
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
3631
+ */
3632
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
3633
+ /**
3634
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
3635
+ * left-hand side of the operator, and the `value` field will be on the right-hand side.
3636
+ */
3637
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3638
+ /**
3639
+ * A single value to compare the value resolved at `name` to.
3640
+ * All values are encoded as strings. Refer to the table in the documentation for how values
3641
+ * should be encoded, and which operators are supported for each type.
3642
+ */
3643
+ value: z.ZodString;
3644
+ }, "strip", z.ZodTypeAny, {
3645
+ value: string;
3646
+ name: string;
3647
+ operator: ">" | ">=" | "<" | "<=" | "==";
3648
+ }, {
3649
+ value: string;
3650
+ name: string;
3651
+ operator: ">" | ">=" | "<" | "<=" | "==";
3652
+ }>, z.ZodObject<{
3653
+ /**
3654
+ * The name of the parameter to check against a transaction's calldata.
3655
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
3656
+ */
3657
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
3658
+ /**
3659
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
3660
+ * left-hand side of the operator, and the `values` field will be on the right-hand side.
3661
+ */
3662
+ operator: z.ZodEnum<["in", "not in"]>;
3663
+ /**
3664
+ * Values to compare against the resolved `name` value.
3665
+ * All values are encoded as strings. Refer to the table in the documentation for how values
3666
+ * should be encoded, and which operators are supported for each type.
3667
+ */
3668
+ values: z.ZodArray<z.ZodString, "many">;
3669
+ }, "strip", z.ZodTypeAny, {
3670
+ values: string[];
3671
+ name: string;
3672
+ operator: "in" | "not in";
3673
+ }, {
3674
+ values: string[];
3675
+ name: string;
3676
+ operator: "in" | "not in";
3677
+ }>]>, "many">>;
3678
+ }, "strip", z.ZodTypeAny, {
3679
+ function: string;
3680
+ params?: ({
3681
+ values: string[];
3682
+ name: string;
3683
+ operator: "in" | "not in";
3684
+ } | {
3685
+ value: string;
3686
+ name: string;
3687
+ operator: ">" | ">=" | "<" | "<=" | "==";
3688
+ })[] | undefined;
3689
+ }, {
3690
+ function: string;
3691
+ params?: ({
3692
+ values: string[];
3693
+ name: string;
3694
+ operator: "in" | "not in";
3695
+ } | {
3696
+ value: string;
3697
+ name: string;
3698
+ operator: ">" | ">=" | "<" | "<=" | "==";
3699
+ })[] | undefined;
3700
+ }>, "many">;
3701
+ }, "strip", z.ZodTypeAny, {
3702
+ type: "evmData";
3703
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
3704
+ inputs: readonly import("abitype").AbiParameter[];
3705
+ type: "error";
3706
+ name: string;
3707
+ } | {
3708
+ inputs: readonly import("abitype").AbiEventParameter[];
3709
+ type: "event";
3710
+ name: string;
3711
+ anonymous?: boolean | undefined;
3712
+ } | ({
3713
+ payable?: boolean | undefined;
3714
+ constant?: boolean | undefined;
3715
+ gas?: number | undefined;
3716
+ } & ({
3717
+ inputs: readonly import("abitype").AbiParameter[];
3718
+ outputs: readonly import("abitype").AbiParameter[];
3719
+ type: "function";
3720
+ name: string;
3721
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3722
+ } | {
3723
+ inputs: readonly import("abitype").AbiParameter[];
3724
+ type: "constructor";
3725
+ stateMutability: "nonpayable" | "payable";
3726
+ } | {
3727
+ type: "fallback";
3728
+ stateMutability: "nonpayable" | "payable";
3729
+ inputs?: [] | undefined;
3730
+ } | {
3731
+ type: "receive";
3732
+ stateMutability: "payable";
3733
+ })))[];
3734
+ conditions: {
3735
+ function: string;
3736
+ params?: ({
3737
+ values: string[];
3738
+ name: string;
3739
+ operator: "in" | "not in";
3740
+ } | {
3741
+ value: string;
3742
+ name: string;
3743
+ operator: ">" | ">=" | "<" | "<=" | "==";
3744
+ })[] | undefined;
3745
+ }[];
3746
+ }, {
3747
+ type: "evmData";
3748
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
3749
+ conditions: {
3750
+ function: string;
3751
+ params?: ({
3752
+ values: string[];
3753
+ name: string;
3754
+ operator: "in" | "not in";
3755
+ } | {
3756
+ value: string;
3757
+ name: string;
3758
+ operator: ">" | ">=" | "<" | "<=" | "==";
3759
+ })[] | undefined;
3760
+ }[];
3761
+ }>, z.ZodObject<{
3762
+ /** The type of criterion, must be "netUSDChange" for USD denominated asset transfer rules. */
3763
+ type: z.ZodLiteral<"netUSDChange">;
3764
+ /**
3765
+ * The amount of USD, in cents, that the total USD value of a transaction's asset transfer and exposure should be compared to.
3766
+ */
3767
+ changeCents: z.ZodNumber;
3768
+ /**
3769
+ * The operator to use for the comparison. The total value of a transaction's asset transfer and exposure in USD will be on the left-hand side of the operator, and the `changeCents` field will be on the right-hand side.
3770
+ */
3771
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3772
+ }, "strip", z.ZodTypeAny, {
3773
+ type: "netUSDChange";
3774
+ operator: ">" | ">=" | "<" | "<=" | "==";
3775
+ changeCents: number;
3776
+ }, {
3777
+ type: "netUSDChange";
3778
+ operator: ">" | ">=" | "<" | "<=" | "==";
3779
+ changeCents: number;
3780
+ }>]>, "many">;
3781
+ }, "strip", z.ZodTypeAny, {
3782
+ action: "reject" | "accept";
3783
+ operation: "signEvmTransaction";
3784
+ criteria: ({
3785
+ ethValue: string;
3786
+ type: "ethValue";
3787
+ operator: ">" | ">=" | "<" | "<=" | "==";
3788
+ } | {
3789
+ type: "evmAddress";
3790
+ operator: "in" | "not in";
3791
+ addresses: `0x${string}`[];
3792
+ } | {
3793
+ type: "netUSDChange";
3794
+ operator: ">" | ">=" | "<" | "<=" | "==";
3795
+ changeCents: number;
3796
+ } | {
3797
+ type: "evmData";
3798
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
3799
+ inputs: readonly import("abitype").AbiParameter[];
3800
+ type: "error";
3801
+ name: string;
3802
+ } | {
3803
+ inputs: readonly import("abitype").AbiEventParameter[];
3804
+ type: "event";
3805
+ name: string;
3806
+ anonymous?: boolean | undefined;
3807
+ } | ({
3808
+ payable?: boolean | undefined;
3809
+ constant?: boolean | undefined;
3810
+ gas?: number | undefined;
3811
+ } & ({
3812
+ inputs: readonly import("abitype").AbiParameter[];
3813
+ outputs: readonly import("abitype").AbiParameter[];
3814
+ type: "function";
3815
+ name: string;
3816
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3817
+ } | {
3818
+ inputs: readonly import("abitype").AbiParameter[];
3819
+ type: "constructor";
3820
+ stateMutability: "nonpayable" | "payable";
3821
+ } | {
3822
+ type: "fallback";
3823
+ stateMutability: "nonpayable" | "payable";
3824
+ inputs?: [] | undefined;
3825
+ } | {
3826
+ type: "receive";
3827
+ stateMutability: "payable";
3828
+ })))[];
3829
+ conditions: {
3830
+ function: string;
3831
+ params?: ({
3832
+ values: string[];
3833
+ name: string;
3834
+ operator: "in" | "not in";
3835
+ } | {
3836
+ value: string;
3837
+ name: string;
3838
+ operator: ">" | ">=" | "<" | "<=" | "==";
3839
+ })[] | undefined;
3840
+ }[];
3841
+ })[];
3842
+ }, {
3843
+ action: "reject" | "accept";
3844
+ operation: "signEvmTransaction";
3845
+ criteria: ({
3846
+ ethValue: string;
3847
+ type: "ethValue";
3848
+ operator: ">" | ">=" | "<" | "<=" | "==";
3849
+ } | {
3850
+ type: "evmAddress";
3851
+ operator: "in" | "not in";
3852
+ addresses: string[];
3853
+ } | {
3854
+ type: "netUSDChange";
3855
+ operator: ">" | ">=" | "<" | "<=" | "==";
3856
+ changeCents: number;
3857
+ } | {
3858
+ type: "evmData";
3859
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
3860
+ conditions: {
3861
+ function: string;
3862
+ params?: ({
3863
+ values: string[];
3864
+ name: string;
3865
+ operator: "in" | "not in";
3866
+ } | {
3867
+ value: string;
3868
+ name: string;
3869
+ operator: ">" | ">=" | "<" | "<=" | "==";
3870
+ })[] | undefined;
3871
+ }[];
3872
+ })[];
3873
+ }>;
3874
+ export type SignEvmTransactionRule = z.infer<typeof SignEvmTransactionRuleSchema>;
3875
+ /**
3876
+ * Type representing a 'signEvmHash' policy rule that can accept or reject specific operations
3877
+ * based on a set of criteria.
3878
+ */
3879
+ export declare const SignEvmHashRuleSchema: z.ZodObject<{
3880
+ /**
3881
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
3882
+ * "accept" will allow the signing, "reject" will block it.
3883
+ */
3884
+ action: z.ZodEnum<["reject", "accept"]>;
3885
+ /**
3886
+ * The operation to which this rule applies.
3887
+ * Must be "signEvmHash".
3888
+ */
3889
+ operation: z.ZodLiteral<"signEvmHash">;
3890
+ }, "strip", z.ZodTypeAny, {
3891
+ action: "reject" | "accept";
3892
+ operation: "signEvmHash";
3893
+ }, {
3894
+ action: "reject" | "accept";
3895
+ operation: "signEvmHash";
3896
+ }>;
3897
+ export type SignEvmHashRule = z.infer<typeof SignEvmHashRuleSchema>;
3898
+ /**
3899
+ * Type representing a 'signEvmMessage' policy rule that can accept or reject specific operations
3900
+ * based on a set of criteria.
3901
+ */
3902
+ export declare const SignEvmMessageRuleSchema: z.ZodObject<{
3903
+ /**
3904
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
3905
+ * "accept" will allow the signing, "reject" will block it.
3906
+ */
3907
+ action: z.ZodEnum<["reject", "accept"]>;
3908
+ /**
3909
+ * The operation to which this rule applies.
3910
+ * Must be "signEvmMessage".
3911
+ */
3912
+ operation: z.ZodLiteral<"signEvmMessage">;
3913
+ /**
3914
+ * The set of criteria that must be matched for this rule to apply.
3915
+ * Must be compatible with the specified operation type.
3916
+ */
3917
+ criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3918
+ /** The type of criterion, must be "evmMessage" for EVM message-based rules. */
3919
+ type: z.ZodLiteral<"evmMessage">;
3920
+ /**
3921
+ * A regular expression the message is matched against.
3922
+ * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
3923
+ */
3924
+ match: z.ZodString;
3925
+ }, "strip", z.ZodTypeAny, {
3926
+ match: string;
3927
+ type: "evmMessage";
3928
+ }, {
3929
+ match: string;
3930
+ type: "evmMessage";
3931
+ }>]>, "many">;
3932
+ }, "strip", z.ZodTypeAny, {
3933
+ action: "reject" | "accept";
3934
+ operation: "signEvmMessage";
3935
+ criteria: {
3936
+ match: string;
3937
+ type: "evmMessage";
3938
+ }[];
3939
+ }, {
3940
+ action: "reject" | "accept";
3941
+ operation: "signEvmMessage";
3942
+ criteria: {
3943
+ match: string;
3944
+ type: "evmMessage";
3945
+ }[];
3946
+ }>;
3947
+ export type SignEvmMessageRule = z.infer<typeof SignEvmMessageRuleSchema>;
3948
+ /**
3949
+ * Type representing a 'signEvmTypedData' policy rule that can accept or reject specific operations
3950
+ * based on a set of criteria.
3951
+ */
3952
+ export declare const SignEvmTypedDataRuleSchema: z.ZodObject<{
3953
+ /**
3954
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
3955
+ * "accept" will allow the signing, "reject" will block it.
3956
+ */
3957
+ action: z.ZodEnum<["reject", "accept"]>;
3958
+ /**
3959
+ * The operation to which this rule applies.
3960
+ * Must be "signEvmTypedData".
3961
+ */
3962
+ operation: z.ZodLiteral<"signEvmTypedData">;
3963
+ /**
3964
+ * The set of criteria that must be matched for this rule to apply.
3965
+ * Must be compatible with the specified operation type.
3966
+ */
3967
+ criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3968
+ /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */
3969
+ type: z.ZodLiteral<"evmTypedDataField">;
3970
+ /**
3971
+ * The EIP-712 type definitions for the typed data.
3972
+ * Must include at minimum the primary type being signed.
3973
+ */
3974
+ types: z.ZodObject<{
3975
+ /**
3976
+ * EIP-712 compliant map of model names to model definitions.
3977
+ */
3978
+ types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
3979
+ name: z.ZodString;
3980
+ type: z.ZodString;
3981
+ }, "strip", z.ZodTypeAny, {
3982
+ type: string;
3983
+ name: string;
3984
+ }, {
3985
+ type: string;
3986
+ name: string;
3987
+ }>, "many">>;
3988
+ /**
3989
+ * The name of the root EIP-712 type. This value must be included in the `types` object.
3990
+ */
3991
+ primaryType: z.ZodString;
3992
+ }, "strip", z.ZodTypeAny, {
3993
+ types: Record<string, {
3994
+ type: string;
3995
+ name: string;
3996
+ }[]>;
3997
+ primaryType: string;
3998
+ }, {
3999
+ types: Record<string, {
4000
+ type: string;
4001
+ name: string;
4002
+ }[]>;
4003
+ primaryType: string;
4004
+ }>;
4005
+ /**
4006
+ * Array of conditions to apply against typed data fields.
4007
+ * Each condition specifies how to validate a specific field within the typed data.
4008
+ */
4009
+ conditions: z.ZodArray<z.ZodUnion<[z.ZodObject<{
4010
+ /**
4011
+ * Array of EVM addresses to compare against.
4012
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
4013
+ * Limited to a maximum of 300 addresses per condition.
4014
+ */
4015
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
4016
+ /**
4017
+ * The operator to use for evaluating addresses.
4018
+ * "in" checks if an address is in the provided list.
4019
+ * "not in" checks if an address is not in the provided list.
4020
+ */
4021
+ operator: z.ZodEnum<["in", "not in"]>;
4022
+ /**
4023
+ * The path to the field to compare against this criterion.
4024
+ * To reference deeply nested fields, use dot notation (e.g., "order.buyer").
4025
+ */
4026
+ path: z.ZodString;
4027
+ }, "strip", z.ZodTypeAny, {
4028
+ path: string;
4029
+ operator: "in" | "not in";
4030
+ addresses: `0x${string}`[];
4031
+ }, {
4032
+ path: string;
4033
+ operator: "in" | "not in";
4034
+ addresses: string[];
4035
+ }>, z.ZodObject<{
4036
+ /**
4037
+ * The numerical value to compare against, as a string.
4038
+ * Must contain only digits.
4039
+ */
4040
+ value: z.ZodString;
4041
+ /**
4042
+ * The comparison operator to use.
4043
+ */
4044
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
4045
+ /**
4046
+ * The path to the field to compare against this criterion.
4047
+ * To reference deeply nested fields, use dot notation (e.g., "order.price").
4048
+ */
4049
+ path: z.ZodString;
4050
+ }, "strip", z.ZodTypeAny, {
4051
+ value: string;
4052
+ path: string;
4053
+ operator: ">" | ">=" | "<" | "<=" | "==";
4054
+ }, {
4055
+ value: string;
4056
+ path: string;
4057
+ operator: ">" | ">=" | "<" | "<=" | "==";
4058
+ }>, z.ZodObject<{
4059
+ /**
4060
+ * A regular expression the string field is matched against.
4061
+ * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
4062
+ */
4063
+ match: z.ZodString;
4064
+ /**
4065
+ * The path to the field to compare against this criterion.
4066
+ * To reference deeply nested fields, use dot notation (e.g., "metadata.description").
4067
+ */
4068
+ path: z.ZodString;
4069
+ }, "strip", z.ZodTypeAny, {
4070
+ match: string;
4071
+ path: string;
4072
+ }, {
4073
+ match: string;
4074
+ path: string;
4075
+ }>]>, "many">;
4076
+ }, "strip", z.ZodTypeAny, {
4077
+ type: "evmTypedDataField";
4078
+ types: {
4079
+ types: Record<string, {
4080
+ type: string;
4081
+ name: string;
4082
+ }[]>;
4083
+ primaryType: string;
4084
+ };
4085
+ conditions: ({
4086
+ path: string;
4087
+ operator: "in" | "not in";
4088
+ addresses: `0x${string}`[];
4089
+ } | {
4090
+ value: string;
4091
+ path: string;
4092
+ operator: ">" | ">=" | "<" | "<=" | "==";
4093
+ } | {
4094
+ match: string;
4095
+ path: string;
4096
+ })[];
4097
+ }, {
4098
+ type: "evmTypedDataField";
4099
+ types: {
4100
+ types: Record<string, {
4101
+ type: string;
4102
+ name: string;
4103
+ }[]>;
4104
+ primaryType: string;
4105
+ };
4106
+ conditions: ({
4107
+ path: string;
4108
+ operator: "in" | "not in";
4109
+ addresses: string[];
4110
+ } | {
4111
+ value: string;
4112
+ path: string;
4113
+ operator: ">" | ">=" | "<" | "<=" | "==";
4114
+ } | {
4115
+ match: string;
4116
+ path: string;
4117
+ })[];
4118
+ }>, z.ZodObject<{
4119
+ /** The type of criterion, must be "evmTypedDataVerifyingContract" for verifying contract-based rules. */
4120
+ type: z.ZodLiteral<"evmTypedDataVerifyingContract">;
4121
+ /**
4122
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
4123
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
4124
+ * Limited to a maximum of 300 addresses per criterion.
4125
+ */
4126
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
4127
+ /**
4128
+ * The operator to use for evaluating verifying contract addresses.
4129
+ * "in" checks if the verifying contract is in the provided list.
4130
+ * "not in" checks if the verifying contract is not in the provided list.
4131
+ */
4132
+ operator: z.ZodEnum<["in", "not in"]>;
4133
+ }, "strip", z.ZodTypeAny, {
4134
+ type: "evmTypedDataVerifyingContract";
4135
+ operator: "in" | "not in";
4136
+ addresses: `0x${string}`[];
4137
+ }, {
4138
+ type: "evmTypedDataVerifyingContract";
4139
+ operator: "in" | "not in";
4140
+ addresses: string[];
4141
+ }>]>, "many">;
4142
+ }, "strip", z.ZodTypeAny, {
4143
+ action: "reject" | "accept";
4144
+ operation: "signEvmTypedData";
4145
+ criteria: ({
4146
+ type: "evmTypedDataField";
4147
+ types: {
4148
+ types: Record<string, {
4149
+ type: string;
4150
+ name: string;
4151
+ }[]>;
4152
+ primaryType: string;
4153
+ };
4154
+ conditions: ({
4155
+ path: string;
4156
+ operator: "in" | "not in";
4157
+ addresses: `0x${string}`[];
4158
+ } | {
4159
+ value: string;
4160
+ path: string;
4161
+ operator: ">" | ">=" | "<" | "<=" | "==";
4162
+ } | {
4163
+ match: string;
4164
+ path: string;
4165
+ })[];
4166
+ } | {
4167
+ type: "evmTypedDataVerifyingContract";
4168
+ operator: "in" | "not in";
4169
+ addresses: `0x${string}`[];
4170
+ })[];
4171
+ }, {
4172
+ action: "reject" | "accept";
4173
+ operation: "signEvmTypedData";
4174
+ criteria: ({
4175
+ type: "evmTypedDataField";
4176
+ types: {
4177
+ types: Record<string, {
4178
+ type: string;
4179
+ name: string;
4180
+ }[]>;
4181
+ primaryType: string;
4182
+ };
4183
+ conditions: ({
4184
+ path: string;
4185
+ operator: "in" | "not in";
4186
+ addresses: string[];
4187
+ } | {
4188
+ value: string;
4189
+ path: string;
4190
+ operator: ">" | ">=" | "<" | "<=" | "==";
4191
+ } | {
4192
+ match: string;
4193
+ path: string;
4194
+ })[];
4195
+ } | {
4196
+ type: "evmTypedDataVerifyingContract";
4197
+ operator: "in" | "not in";
4198
+ addresses: string[];
4199
+ })[];
4200
+ }>;
4201
+ export type SignEvmTypedDataRule = z.infer<typeof SignEvmTypedDataRuleSchema>;
4202
+ /**
4203
+ * Type representing a 'sendEvmTransaction' policy rule that can accept or reject specific operations
4204
+ * based on a set of criteria.
4205
+ */
4206
+ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
4207
+ /**
4208
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
4209
+ * "accept" will allow the transaction, "reject" will block it.
4210
+ */
4211
+ action: z.ZodEnum<["reject", "accept"]>;
4212
+ /**
4213
+ * The operation to which this rule applies.
4214
+ * Must be "sendEvmTransaction".
4215
+ */
4216
+ operation: z.ZodLiteral<"sendEvmTransaction">;
4217
+ /**
4218
+ * The set of criteria that must be matched for this rule to apply.
4219
+ * Must be compatible with the specified operation type.
4220
+ */
4221
+ criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
4222
+ /** The type of criterion, must be "ethValue" for Ethereum value-based rules. */
4223
+ type: z.ZodLiteral<"ethValue">;
4224
+ /**
4225
+ * The ETH value amount in wei to compare against, as a string.
4226
+ * Must contain only digits.
4227
+ */
4228
+ ethValue: z.ZodString;
4229
+ /** The comparison operator to use for evaluating transaction values against the threshold. */
4230
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
4231
+ }, "strip", z.ZodTypeAny, {
4232
+ ethValue: string;
4233
+ type: "ethValue";
4234
+ operator: ">" | ">=" | "<" | "<=" | "==";
4235
+ }, {
4236
+ ethValue: string;
4237
+ type: "ethValue";
4238
+ operator: ">" | ">=" | "<" | "<=" | "==";
4239
+ }>, z.ZodObject<{
4240
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
4241
+ type: z.ZodLiteral<"evmAddress">;
4242
+ /**
4243
+ * Array of EVM addresses to compare against.
4244
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
4245
+ * Limited to a maximum of 300 addresses per criterion.
4246
+ */
4247
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
4248
+ /**
4249
+ * The operator to use for evaluating transaction addresses.
4250
+ * "in" checks if an address is in the provided list.
4251
+ * "not in" checks if an address is not in the provided list.
4252
+ */
4253
+ operator: z.ZodEnum<["in", "not in"]>;
4254
+ }, "strip", z.ZodTypeAny, {
4255
+ type: "evmAddress";
4256
+ operator: "in" | "not in";
4257
+ addresses: `0x${string}`[];
4258
+ }, {
4259
+ type: "evmAddress";
4260
+ operator: "in" | "not in";
4261
+ addresses: string[];
4262
+ }>, z.ZodObject<{
4263
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
4264
+ type: z.ZodLiteral<"evmNetwork">;
4265
+ /**
4266
+ * Array of EVM network identifiers to compare against.
4267
+ * Either "base", "base-sepolia", "ethereum", "ethereum-sepolia", "avalanche", "polygon", "optimism", "arbitrum"
4268
+ */
4269
+ networks: z.ZodArray<z.ZodEnum<["base", "base-sepolia", "ethereum", "ethereum-sepolia", "avalanche", "polygon", "optimism", "arbitrum"]>, "many">;
4270
+ /**
4271
+ * The operator to use for evaluating transaction network.
4272
+ * "in" checks if a network is in the provided list.
4273
+ * "not in" checks if a network is not in the provided list.
4274
+ */
4275
+ operator: z.ZodEnum<["in", "not in"]>;
4276
+ }, "strip", z.ZodTypeAny, {
4277
+ type: "evmNetwork";
4278
+ operator: "in" | "not in";
4279
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
4280
+ }, {
4281
+ type: "evmNetwork";
4282
+ operator: "in" | "not in";
4283
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
4284
+ }>, z.ZodObject<{
4285
+ /** The type of criterion, must be "evmData" for EVM transaction rules. */
4286
+ type: z.ZodLiteral<"evmData">;
4287
+ /**
4288
+ * The ABI of the smart contract being called. This can be a partial structure with only specific functions.
4289
+ */
4290
+ abi: z.ZodUnion<[z.ZodEnum<["erc20", "erc721", "erc1155"]>, z.ZodReadonly<z.ZodArray<z.ZodUnion<[z.ZodObject<{
4291
+ type: z.ZodLiteral<"error">;
4292
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
4293
+ name: z.ZodString;
4294
+ }, "strip", z.ZodTypeAny, {
4295
+ inputs: readonly import("abitype").AbiParameter[];
4296
+ type: "error";
4297
+ name: string;
4298
+ }, {
4299
+ inputs: readonly import("abitype").AbiParameter[];
4300
+ type: "error";
4301
+ name: string;
4302
+ }>, z.ZodObject<{
4303
+ type: z.ZodLiteral<"event">;
4304
+ anonymous: z.ZodOptional<z.ZodBoolean>;
4305
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiEventParameter, z.ZodTypeDef, import("abitype").AbiEventParameter>, "many">>;
2617
4306
  name: z.ZodString;
2618
4307
  }, "strip", z.ZodTypeAny, {
2619
4308
  inputs: readonly import("abitype").AbiEventParameter[];
@@ -2882,7 +4571,7 @@ export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
2882
4571
  }>]>, "many">;
2883
4572
  }, "strip", z.ZodTypeAny, {
2884
4573
  action: "reject" | "accept";
2885
- operation: "signEvmTransaction";
4574
+ operation: "sendEvmTransaction";
2886
4575
  criteria: ({
2887
4576
  ethValue: string;
2888
4577
  type: "ethValue";
@@ -2891,6 +4580,10 @@ export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
2891
4580
  type: "evmAddress";
2892
4581
  operator: "in" | "not in";
2893
4582
  addresses: `0x${string}`[];
4583
+ } | {
4584
+ type: "evmNetwork";
4585
+ operator: "in" | "not in";
4586
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
2894
4587
  } | {
2895
4588
  type: "netUSDChange";
2896
4589
  operator: ">" | ">=" | "<" | "<=" | "==";
@@ -2943,7 +4636,7 @@ export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
2943
4636
  })[];
2944
4637
  }, {
2945
4638
  action: "reject" | "accept";
2946
- operation: "signEvmTransaction";
4639
+ operation: "sendEvmTransaction";
2947
4640
  criteria: ({
2948
4641
  ethValue: string;
2949
4642
  type: "ethValue";
@@ -2952,6 +4645,10 @@ export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
2952
4645
  type: "evmAddress";
2953
4646
  operator: "in" | "not in";
2954
4647
  addresses: string[];
4648
+ } | {
4649
+ type: "evmNetwork";
4650
+ operator: "in" | "not in";
4651
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "avalanche")[];
2955
4652
  } | {
2956
4653
  type: "netUSDChange";
2957
4654
  operator: ">" | ">=" | "<" | "<=" | "==";
@@ -2973,349 +4670,494 @@ export declare const SignEvmTransactionRuleSchema: z.ZodObject<{
2973
4670
  }[];
2974
4671
  })[];
2975
4672
  }>;
2976
- export type SignEvmTransactionRule = z.infer<typeof SignEvmTransactionRuleSchema>;
2977
- /**
2978
- * Type representing a 'signEvmHash' policy rule that can accept or reject specific operations
2979
- * based on a set of criteria.
2980
- */
2981
- export declare const SignEvmHashRuleSchema: z.ZodObject<{
2982
- /**
2983
- * Determines whether matching the rule will cause a request to be rejected or accepted.
2984
- * "accept" will allow the signing, "reject" will block it.
2985
- */
2986
- action: z.ZodEnum<["reject", "accept"]>;
2987
- /**
2988
- * The operation to which this rule applies.
2989
- * Must be "signEvmHash".
2990
- */
2991
- operation: z.ZodLiteral<"signEvmHash">;
2992
- }, "strip", z.ZodTypeAny, {
2993
- action: "reject" | "accept";
2994
- operation: "signEvmHash";
2995
- }, {
2996
- action: "reject" | "accept";
2997
- operation: "signEvmHash";
2998
- }>;
2999
- export type SignEvmHashRule = z.infer<typeof SignEvmHashRuleSchema>;
4673
+ export type SendEvmTransactionRule = z.infer<typeof SendEvmTransactionRuleSchema>;
3000
4674
  /**
3001
- * Type representing a 'signEvmMessage' policy rule that can accept or reject specific operations
4675
+ * Type representing a 'prepareUserOperation' policy rule that can accept or reject specific operations
3002
4676
  * based on a set of criteria.
3003
4677
  */
3004
- export declare const SignEvmMessageRuleSchema: z.ZodObject<{
4678
+ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
3005
4679
  /**
3006
4680
  * Determines whether matching the rule will cause a request to be rejected or accepted.
3007
- * "accept" will allow the signing, "reject" will block it.
4681
+ * "accept" will allow the operation, "reject" will block it.
3008
4682
  */
3009
4683
  action: z.ZodEnum<["reject", "accept"]>;
3010
4684
  /**
3011
4685
  * The operation to which this rule applies.
3012
- * Must be "signEvmMessage".
4686
+ * Must be "prepareUserOperation".
3013
4687
  */
3014
- operation: z.ZodLiteral<"signEvmMessage">;
4688
+ operation: z.ZodLiteral<"prepareUserOperation">;
3015
4689
  /**
3016
4690
  * The set of criteria that must be matched for this rule to apply.
3017
4691
  * Must be compatible with the specified operation type.
3018
4692
  */
3019
4693
  criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3020
- /** The type of criterion, must be "evmMessage" for EVM message-based rules. */
3021
- type: z.ZodLiteral<"evmMessage">;
4694
+ /** The type of criterion, must be "ethValue" for Ethereum value-based rules. */
4695
+ type: z.ZodLiteral<"ethValue">;
3022
4696
  /**
3023
- * A regular expression the message is matched against.
3024
- * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
4697
+ * The ETH value amount in wei to compare against, as a string.
4698
+ * Must contain only digits.
3025
4699
  */
3026
- match: z.ZodString;
4700
+ ethValue: z.ZodString;
4701
+ /** The comparison operator to use for evaluating transaction values against the threshold. */
4702
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3027
4703
  }, "strip", z.ZodTypeAny, {
3028
- match: string;
3029
- type: "evmMessage";
4704
+ ethValue: string;
4705
+ type: "ethValue";
4706
+ operator: ">" | ">=" | "<" | "<=" | "==";
3030
4707
  }, {
3031
- match: string;
3032
- type: "evmMessage";
3033
- }>]>, "many">;
3034
- }, "strip", z.ZodTypeAny, {
3035
- action: "reject" | "accept";
3036
- operation: "signEvmMessage";
3037
- criteria: {
3038
- match: string;
3039
- type: "evmMessage";
3040
- }[];
3041
- }, {
3042
- action: "reject" | "accept";
3043
- operation: "signEvmMessage";
3044
- criteria: {
3045
- match: string;
3046
- type: "evmMessage";
3047
- }[];
3048
- }>;
3049
- export type SignEvmMessageRule = z.infer<typeof SignEvmMessageRuleSchema>;
3050
- /**
3051
- * Type representing a 'signEvmTypedData' policy rule that can accept or reject specific operations
3052
- * based on a set of criteria.
3053
- */
3054
- export declare const SignEvmTypedDataRuleSchema: z.ZodObject<{
3055
- /**
3056
- * Determines whether matching the rule will cause a request to be rejected or accepted.
3057
- * "accept" will allow the signing, "reject" will block it.
3058
- */
3059
- action: z.ZodEnum<["reject", "accept"]>;
3060
- /**
3061
- * The operation to which this rule applies.
3062
- * Must be "signEvmTypedData".
3063
- */
3064
- operation: z.ZodLiteral<"signEvmTypedData">;
3065
- /**
3066
- * The set of criteria that must be matched for this rule to apply.
3067
- * Must be compatible with the specified operation type.
3068
- */
3069
- criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
3070
- /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */
3071
- type: z.ZodLiteral<"evmTypedDataField">;
4708
+ ethValue: string;
4709
+ type: "ethValue";
4710
+ operator: ">" | ">=" | "<" | "<=" | "==";
4711
+ }>, z.ZodObject<{
4712
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
4713
+ type: z.ZodLiteral<"evmAddress">;
4714
+ /**
4715
+ * Array of EVM addresses to compare against.
4716
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
4717
+ * Limited to a maximum of 300 addresses per criterion.
4718
+ */
4719
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
4720
+ /**
4721
+ * The operator to use for evaluating transaction addresses.
4722
+ * "in" checks if an address is in the provided list.
4723
+ * "not in" checks if an address is not in the provided list.
4724
+ */
4725
+ operator: z.ZodEnum<["in", "not in"]>;
4726
+ }, "strip", z.ZodTypeAny, {
4727
+ type: "evmAddress";
4728
+ operator: "in" | "not in";
4729
+ addresses: `0x${string}`[];
4730
+ }, {
4731
+ type: "evmAddress";
4732
+ operator: "in" | "not in";
4733
+ addresses: string[];
4734
+ }>, z.ZodObject<{
4735
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
4736
+ type: z.ZodLiteral<"evmNetwork">;
3072
4737
  /**
3073
- * The EIP-712 type definitions for the typed data.
3074
- * Must include at minimum the primary type being signed.
4738
+ * Array of EVM network identifiers to compare against.
4739
+ * Either "base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"
3075
4740
  */
3076
- types: z.ZodObject<{
3077
- /**
3078
- * EIP-712 compliant map of model names to model definitions.
3079
- */
3080
- types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
3081
- name: z.ZodString;
3082
- type: z.ZodString;
3083
- }, "strip", z.ZodTypeAny, {
3084
- type: string;
3085
- name: string;
3086
- }, {
3087
- type: string;
3088
- name: string;
3089
- }>, "many">>;
3090
- /**
3091
- * The name of the root EIP-712 type. This value must be included in the `types` object.
3092
- */
3093
- primaryType: z.ZodString;
3094
- }, "strip", z.ZodTypeAny, {
3095
- types: Record<string, {
3096
- type: string;
3097
- name: string;
3098
- }[]>;
3099
- primaryType: string;
3100
- }, {
3101
- types: Record<string, {
3102
- type: string;
3103
- name: string;
3104
- }[]>;
3105
- primaryType: string;
3106
- }>;
4741
+ networks: z.ZodArray<z.ZodEnum<["base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"]>, "many">;
3107
4742
  /**
3108
- * Array of conditions to apply against typed data fields.
3109
- * Each condition specifies how to validate a specific field within the typed data.
4743
+ * The operator to use for evaluating transaction network.
4744
+ * "in" checks if a network is in the provided list.
4745
+ * "not in" checks if a network is not in the provided list.
3110
4746
  */
3111
- conditions: z.ZodArray<z.ZodUnion<[z.ZodObject<{
3112
- /**
3113
- * Array of EVM addresses to compare against.
3114
- * Each address must be a 0x-prefixed 40-character hexadecimal string.
3115
- * Limited to a maximum of 300 addresses per condition.
3116
- */
3117
- addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
3118
- /**
3119
- * The operator to use for evaluating addresses.
3120
- * "in" checks if an address is in the provided list.
3121
- * "not in" checks if an address is not in the provided list.
3122
- */
3123
- operator: z.ZodEnum<["in", "not in"]>;
3124
- /**
3125
- * The path to the field to compare against this criterion.
3126
- * To reference deeply nested fields, use dot notation (e.g., "order.buyer").
3127
- */
3128
- path: z.ZodString;
4747
+ operator: z.ZodEnum<["in", "not in"]>;
4748
+ }, "strip", z.ZodTypeAny, {
4749
+ type: "evmNetwork";
4750
+ operator: "in" | "not in";
4751
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
4752
+ }, {
4753
+ type: "evmNetwork";
4754
+ operator: "in" | "not in";
4755
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
4756
+ }>, z.ZodObject<{
4757
+ /** The type of criterion, must be "evmData" for EVM transaction rules. */
4758
+ type: z.ZodLiteral<"evmData">;
4759
+ /**
4760
+ * The ABI of the smart contract being called. This can be a partial structure with only specific functions.
4761
+ */
4762
+ abi: z.ZodUnion<[z.ZodEnum<["erc20", "erc721", "erc1155"]>, z.ZodReadonly<z.ZodArray<z.ZodUnion<[z.ZodObject<{
4763
+ type: z.ZodLiteral<"error">;
4764
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
4765
+ name: z.ZodString;
3129
4766
  }, "strip", z.ZodTypeAny, {
3130
- path: string;
3131
- operator: "in" | "not in";
3132
- addresses: `0x${string}`[];
4767
+ inputs: readonly import("abitype").AbiParameter[];
4768
+ type: "error";
4769
+ name: string;
3133
4770
  }, {
3134
- path: string;
3135
- operator: "in" | "not in";
3136
- addresses: string[];
4771
+ inputs: readonly import("abitype").AbiParameter[];
4772
+ type: "error";
4773
+ name: string;
3137
4774
  }>, z.ZodObject<{
3138
- /**
3139
- * The numerical value to compare against, as a string.
3140
- * Must contain only digits.
3141
- */
3142
- value: z.ZodString;
3143
- /**
3144
- * The comparison operator to use.
3145
- */
3146
- operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3147
- /**
3148
- * The path to the field to compare against this criterion.
3149
- * To reference deeply nested fields, use dot notation (e.g., "order.price").
3150
- */
3151
- path: z.ZodString;
4775
+ type: z.ZodLiteral<"event">;
4776
+ anonymous: z.ZodOptional<z.ZodBoolean>;
4777
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiEventParameter, z.ZodTypeDef, import("abitype").AbiEventParameter>, "many">>;
4778
+ name: z.ZodString;
3152
4779
  }, "strip", z.ZodTypeAny, {
3153
- value: string;
3154
- path: string;
3155
- operator: ">" | ">=" | "<" | "<=" | "==";
4780
+ inputs: readonly import("abitype").AbiEventParameter[];
4781
+ type: "event";
4782
+ name: string;
4783
+ anonymous?: boolean | undefined;
3156
4784
  }, {
3157
- value: string;
3158
- path: string;
3159
- operator: ">" | ">=" | "<" | "<=" | "==";
4785
+ inputs: readonly import("abitype").AbiEventParameter[];
4786
+ type: "event";
4787
+ name: string;
4788
+ anonymous?: boolean | undefined;
4789
+ }>, z.ZodEffects<z.ZodIntersection<z.ZodObject<{
4790
+ constant: z.ZodOptional<z.ZodBoolean>;
4791
+ gas: z.ZodOptional<z.ZodNumber>;
4792
+ payable: z.ZodOptional<z.ZodBoolean>;
4793
+ }, "strip", z.ZodTypeAny, {
4794
+ payable?: boolean | undefined;
4795
+ constant?: boolean | undefined;
4796
+ gas?: number | undefined;
4797
+ }, {
4798
+ payable?: boolean | undefined;
4799
+ constant?: boolean | undefined;
4800
+ gas?: number | undefined;
4801
+ }>, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
4802
+ type: z.ZodLiteral<"function">;
4803
+ inputs: z.ZodReadonly<z.ZodArray /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
4804
+ name: z.ZodString;
4805
+ outputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
4806
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"pure">, z.ZodLiteral<"view">, z.ZodLiteral<"nonpayable">, z.ZodLiteral<"payable">]>;
4807
+ }, "strip", z.ZodTypeAny, {
4808
+ inputs: readonly import("abitype").AbiParameter[];
4809
+ outputs: readonly import("abitype").AbiParameter[];
4810
+ type: "function";
4811
+ name: string;
4812
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
4813
+ }, {
4814
+ inputs: readonly import("abitype").AbiParameter[];
4815
+ outputs: readonly import("abitype").AbiParameter[];
4816
+ type: "function";
4817
+ name: string;
4818
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
4819
+ }>, z.ZodObject<{
4820
+ type: z.ZodLiteral<"constructor">;
4821
+ inputs: z.ZodReadonly<z.ZodArray<z.ZodType<import("abitype").AbiParameter, z.ZodTypeDef, import("abitype").AbiParameter>, "many">>;
4822
+ stateMutability: z.ZodUnion<[z.ZodLiteral<"payable">, z.ZodLiteral<"nonpayable">]>;
4823
+ }, "strip", z.ZodTypeAny, {
4824
+ inputs: readonly import("abitype").AbiParameter[];
4825
+ type: "constructor";
4826
+ stateMutability: "nonpayable" | "payable";
4827
+ }, {
4828
+ inputs: readonly import("abitype").AbiParameter[];
4829
+ type: "constructor";
4830
+ stateMutability: "nonpayable" | "payable";
4831
+ }>, z.ZodObject<{
4832
+ type: z.ZodLiteral<"fallback">;
4833
+ inputs: z.ZodOptional<z.ZodTuple<[], null>>;
4834
+ stateMutability: z.ZodUnion<[z.ZodLiteral /**
4835
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
4836
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
4837
+ * Limited to a maximum of 300 addresses per criterion.
4838
+ */<"payable">, z.ZodLiteral<"nonpayable">]>;
4839
+ }, "strip", z.ZodTypeAny, {
4840
+ type: "fallback";
4841
+ stateMutability: "nonpayable" | "payable";
4842
+ inputs?: [] | undefined;
4843
+ }, {
4844
+ type: "fallback";
4845
+ stateMutability: "nonpayable" | "payable";
4846
+ inputs?: [] | undefined;
3160
4847
  }>, z.ZodObject<{
4848
+ type: z.ZodLiteral<"receive">;
4849
+ stateMutability: z.ZodLiteral<"payable">;
4850
+ }, "strip", z.ZodTypeAny, {
4851
+ type: "receive";
4852
+ stateMutability: "payable";
4853
+ }, {
4854
+ type: "receive";
4855
+ stateMutability: "payable";
4856
+ }>]>>, {
4857
+ payable?: boolean | undefined;
4858
+ constant?: boolean | undefined;
4859
+ gas?: number | undefined;
4860
+ } & ({
4861
+ inputs: readonly import("abitype").AbiParameter[];
4862
+ outputs: readonly import("abitype").AbiParameter[];
4863
+ type: "function";
4864
+ name: string;
4865
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
4866
+ } | {
4867
+ inputs: readonly import("abitype").AbiParameter[];
4868
+ type: "constructor";
4869
+ stateMutability: "nonpayable" | "payable";
4870
+ } | {
4871
+ type: "fallback";
4872
+ stateMutability: "nonpayable" | "payable";
4873
+ inputs?: [] | undefined;
4874
+ } | {
4875
+ type: "receive";
4876
+ stateMutability: "payable";
4877
+ }), unknown>]>, "many">>]>;
4878
+ /**
4879
+ * A list of conditions to apply against the function and encoded arguments in the transaction's `data` field.
4880
+ * Each condition must be met in order for this policy to be accepted or rejected.
4881
+ */
4882
+ conditions: z.ZodArray<z.ZodObject<{
3161
4883
  /**
3162
- * A regular expression the string field is matched against.
3163
- * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
4884
+ * The name of a smart contract function being called.
3164
4885
  */
3165
- match: z.ZodString;
4886
+ function: z.ZodString;
3166
4887
  /**
3167
- * The path to the field to compare against this criterion.
3168
- * To reference deeply nested fields, use dot notation (e.g., "metadata.description").
4888
+ * An optional list of parameter conditions to apply against encoded arguments in the transaction's `data` field.
3169
4889
  */
3170
- path: z.ZodString;
4890
+ params: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
4891
+ /**
4892
+ * The name of the parameter to check against a transaction's calldata.
4893
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
4894
+ */
4895
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
4896
+ /**
4897
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
4898
+ * left-hand side of the operator, and the `value` field will be on the right-hand side.
4899
+ */
4900
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
4901
+ /**
4902
+ * A single value to compare the value resolved at `name` to.
4903
+ * All values are encoded as strings. Refer to the table in the documentation for how values
4904
+ * should be encoded, and which operators are supported for each type.
4905
+ */
4906
+ value: z.ZodString;
4907
+ }, "strip", z.ZodTypeAny, {
4908
+ value: string;
4909
+ name: string;
4910
+ operator: ">" | ">=" | "<" | "<=" | "==";
4911
+ }, {
4912
+ value: string;
4913
+ name: string;
4914
+ operator: ">" | ">=" | "<" | "<=" | "==";
4915
+ }>, z.ZodObject<{
4916
+ /**
4917
+ * The name of the parameter to check against a transaction's calldata.
4918
+ * If name is unknown, or is not named, you may supply an array index, e.g., `0` for first parameter.
4919
+ */
4920
+ name: z.ZodUnion<[z.ZodString, z.ZodString]>;
4921
+ /**
4922
+ * The operator to use for the comparison. The value resolved at the `name` will be on the
4923
+ * left-hand side of the operator, and the `values` field will be on the right-hand side.
4924
+ */
4925
+ operator: z.ZodEnum<["in", "not in"]>;
4926
+ /**
4927
+ * Values to compare against the resolved `name` value.
4928
+ * All values are encoded as strings. Refer to the table in the documentation for how values
4929
+ * should be encoded, and which operators are supported for each type.
4930
+ */
4931
+ values: z.ZodArray<z.ZodString, "many">;
4932
+ }, "strip", z.ZodTypeAny, {
4933
+ values: string[];
4934
+ name: string;
4935
+ operator: "in" | "not in";
4936
+ }, {
4937
+ values: string[];
4938
+ name: string;
4939
+ operator: "in" | "not in";
4940
+ }>]>, "many">>;
3171
4941
  }, "strip", z.ZodTypeAny, {
3172
- match: string;
3173
- path: string;
4942
+ function: string;
4943
+ params?: ({
4944
+ values: string[];
4945
+ name: string;
4946
+ operator: "in" | "not in";
4947
+ } | {
4948
+ value: string;
4949
+ name: string;
4950
+ operator: ">" | ">=" | "<" | "<=" | "==";
4951
+ })[] | undefined;
3174
4952
  }, {
3175
- match: string;
3176
- path: string;
3177
- }>]>, "many">;
3178
- }, "strip", z.ZodTypeAny, {
3179
- type: "evmTypedDataField";
3180
- types: {
3181
- types: Record<string, {
3182
- type: string;
4953
+ function: string;
4954
+ params?: ({
4955
+ values: string[];
3183
4956
  name: string;
3184
- }[]>;
3185
- primaryType: string;
3186
- };
3187
- conditions: ({
3188
- path: string;
3189
- operator: "in" | "not in";
3190
- addresses: `0x${string}`[];
4957
+ operator: "in" | "not in";
4958
+ } | {
4959
+ value: string;
4960
+ name: string;
4961
+ operator: ">" | ">=" | "<" | "<=" | "==";
4962
+ })[] | undefined;
4963
+ }>, "many">;
4964
+ }, "strip", z.ZodTypeAny, {
4965
+ type: "evmData";
4966
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
4967
+ inputs: readonly import("abitype").AbiParameter[];
4968
+ type: "error";
4969
+ name: string;
3191
4970
  } | {
3192
- value: string;
3193
- path: string;
3194
- operator: ">" | ">=" | "<" | "<=" | "==";
4971
+ inputs: readonly import("abitype").AbiEventParameter[];
4972
+ type: "event";
4973
+ name: string;
4974
+ anonymous?: boolean | undefined;
4975
+ } | ({
4976
+ payable?: boolean | undefined;
4977
+ constant?: boolean | undefined;
4978
+ gas?: number | undefined;
4979
+ } & ({
4980
+ inputs: readonly import("abitype").AbiParameter[];
4981
+ outputs: readonly import("abitype").AbiParameter[];
4982
+ type: "function";
4983
+ name: string;
4984
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3195
4985
  } | {
3196
- match: string;
3197
- path: string;
3198
- })[];
3199
- }, {
3200
- type: "evmTypedDataField";
3201
- types: {
3202
- types: Record<string, {
3203
- type: string;
3204
- name: string;
3205
- }[]>;
3206
- primaryType: string;
3207
- };
3208
- conditions: ({
3209
- path: string;
3210
- operator: "in" | "not in";
3211
- addresses: string[];
4986
+ inputs: readonly import("abitype").AbiParameter[];
4987
+ type: "constructor";
4988
+ stateMutability: "nonpayable" | "payable";
3212
4989
  } | {
3213
- value: string;
3214
- path: string;
3215
- operator: ">" | ">=" | "<" | "<=" | "==";
4990
+ type: "fallback";
4991
+ stateMutability: "nonpayable" | "payable";
4992
+ inputs?: [] | undefined;
3216
4993
  } | {
3217
- match: string;
3218
- path: string;
3219
- })[];
4994
+ type: "receive";
4995
+ stateMutability: "payable";
4996
+ })))[];
4997
+ conditions: {
4998
+ function: string;
4999
+ params?: ({
5000
+ values: string[];
5001
+ name: string;
5002
+ operator: "in" | "not in";
5003
+ } | {
5004
+ value: string;
5005
+ name: string;
5006
+ operator: ">" | ">=" | "<" | "<=" | "==";
5007
+ })[] | undefined;
5008
+ }[];
5009
+ }, {
5010
+ type: "evmData";
5011
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
5012
+ conditions: {
5013
+ function: string;
5014
+ params?: ({
5015
+ values: string[];
5016
+ name: string;
5017
+ operator: "in" | "not in";
5018
+ } | {
5019
+ value: string;
5020
+ name: string;
5021
+ operator: ">" | ">=" | "<" | "<=" | "==";
5022
+ })[] | undefined;
5023
+ }[];
3220
5024
  }>, z.ZodObject<{
3221
- /** The type of criterion, must be "evmTypedDataVerifyingContract" for verifying contract-based rules. */
3222
- type: z.ZodLiteral<"evmTypedDataVerifyingContract">;
5025
+ /** The type of criterion, must be "netUSDChange" for USD denominated asset transfer rules. */
5026
+ type: z.ZodLiteral<"netUSDChange">;
3223
5027
  /**
3224
- * Array of EVM addresses allowed or disallowed as verifying contracts.
3225
- * Each address must be a 0x-prefixed 40-character hexadecimal string.
3226
- * Limited to a maximum of 300 addresses per criterion.
5028
+ * The amount of USD, in cents, that the total USD value of a transaction's asset transfer and exposure should be compared to.
3227
5029
  */
3228
- addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
5030
+ changeCents: z.ZodNumber;
3229
5031
  /**
3230
- * The operator to use for evaluating verifying contract addresses.
3231
- * "in" checks if the verifying contract is in the provided list.
3232
- * "not in" checks if the verifying contract is not in the provided list.
5032
+ * The operator to use for the comparison. The total value of a transaction's asset transfer and exposure in USD will be on the left-hand side of the operator, and the `changeCents` field will be on the right-hand side.
3233
5033
  */
3234
- operator: z.ZodEnum<["in", "not in"]>;
5034
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
3235
5035
  }, "strip", z.ZodTypeAny, {
3236
- type: "evmTypedDataVerifyingContract";
3237
- operator: "in" | "not in";
3238
- addresses: `0x${string}`[];
5036
+ type: "netUSDChange";
5037
+ operator: ">" | ">=" | "<" | "<=" | "==";
5038
+ changeCents: number;
3239
5039
  }, {
3240
- type: "evmTypedDataVerifyingContract";
3241
- operator: "in" | "not in";
3242
- addresses: string[];
5040
+ type: "netUSDChange";
5041
+ operator: ">" | ">=" | "<" | "<=" | "==";
5042
+ changeCents: number;
3243
5043
  }>]>, "many">;
3244
5044
  }, "strip", z.ZodTypeAny, {
3245
5045
  action: "reject" | "accept";
3246
- operation: "signEvmTypedData";
5046
+ operation: "prepareUserOperation";
3247
5047
  criteria: ({
3248
- type: "evmTypedDataField";
3249
- types: {
3250
- types: Record<string, {
3251
- type: string;
3252
- name: string;
3253
- }[]>;
3254
- primaryType: string;
3255
- };
3256
- conditions: ({
3257
- path: string;
3258
- operator: "in" | "not in";
3259
- addresses: `0x${string}`[];
3260
- } | {
3261
- value: string;
3262
- path: string;
3263
- operator: ">" | ">=" | "<" | "<=" | "==";
3264
- } | {
3265
- match: string;
3266
- path: string;
3267
- })[];
5048
+ ethValue: string;
5049
+ type: "ethValue";
5050
+ operator: ">" | ">=" | "<" | "<=" | "==";
3268
5051
  } | {
3269
- type: "evmTypedDataVerifyingContract";
5052
+ type: "evmAddress";
3270
5053
  operator: "in" | "not in";
3271
5054
  addresses: `0x${string}`[];
3272
- })[];
3273
- }, {
3274
- action: "reject" | "accept";
3275
- operation: "signEvmTypedData";
3276
- criteria: ({
3277
- type: "evmTypedDataField";
3278
- types: {
3279
- types: Record<string, {
3280
- type: string;
3281
- name: string;
3282
- }[]>;
3283
- primaryType: string;
3284
- };
3285
- conditions: ({
3286
- path: string;
3287
- operator: "in" | "not in";
3288
- addresses: string[];
5055
+ } | {
5056
+ type: "evmNetwork";
5057
+ operator: "in" | "not in";
5058
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
5059
+ } | {
5060
+ type: "netUSDChange";
5061
+ operator: ">" | ">=" | "<" | "<=" | "==";
5062
+ changeCents: number;
5063
+ } | {
5064
+ type: "evmData";
5065
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
5066
+ inputs: readonly import("abitype").AbiParameter[];
5067
+ type: "error";
5068
+ name: string;
3289
5069
  } | {
3290
- value: string;
3291
- path: string;
3292
- operator: ">" | ">=" | "<" | "<=" | "==";
5070
+ inputs: readonly import("abitype").AbiEventParameter[];
5071
+ type: "event";
5072
+ name: string;
5073
+ anonymous?: boolean | undefined;
5074
+ } | ({
5075
+ payable?: boolean | undefined;
5076
+ constant?: boolean | undefined;
5077
+ gas?: number | undefined;
5078
+ } & ({
5079
+ inputs: readonly import("abitype").AbiParameter[];
5080
+ outputs: readonly import("abitype").AbiParameter[];
5081
+ type: "function";
5082
+ name: string;
5083
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
3293
5084
  } | {
3294
- match: string;
3295
- path: string;
3296
- })[];
5085
+ inputs: readonly import("abitype").AbiParameter[];
5086
+ type: "constructor";
5087
+ stateMutability: "nonpayable" | "payable";
5088
+ } | {
5089
+ type: "fallback";
5090
+ stateMutability: "nonpayable" | "payable";
5091
+ inputs?: [] | undefined;
5092
+ } | {
5093
+ type: "receive";
5094
+ stateMutability: "payable";
5095
+ })))[];
5096
+ conditions: {
5097
+ function: string;
5098
+ params?: ({
5099
+ values: string[];
5100
+ name: string;
5101
+ operator: "in" | "not in";
5102
+ } | {
5103
+ value: string;
5104
+ name: string;
5105
+ operator: ">" | ">=" | "<" | "<=" | "==";
5106
+ })[] | undefined;
5107
+ }[];
5108
+ })[];
5109
+ }, {
5110
+ action: "reject" | "accept";
5111
+ operation: "prepareUserOperation";
5112
+ criteria: ({
5113
+ ethValue: string;
5114
+ type: "ethValue";
5115
+ operator: ">" | ">=" | "<" | "<=" | "==";
3297
5116
  } | {
3298
- type: "evmTypedDataVerifyingContract";
5117
+ type: "evmAddress";
3299
5118
  operator: "in" | "not in";
3300
5119
  addresses: string[];
5120
+ } | {
5121
+ type: "evmNetwork";
5122
+ operator: "in" | "not in";
5123
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
5124
+ } | {
5125
+ type: "netUSDChange";
5126
+ operator: ">" | ">=" | "<" | "<=" | "==";
5127
+ changeCents: number;
5128
+ } | {
5129
+ type: "evmData";
5130
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
5131
+ conditions: {
5132
+ function: string;
5133
+ params?: ({
5134
+ values: string[];
5135
+ name: string;
5136
+ operator: "in" | "not in";
5137
+ } | {
5138
+ value: string;
5139
+ name: string;
5140
+ operator: ">" | ">=" | "<" | "<=" | "==";
5141
+ })[] | undefined;
5142
+ }[];
3301
5143
  })[];
3302
5144
  }>;
3303
- export type SignEvmTypedDataRule = z.infer<typeof SignEvmTypedDataRuleSchema>;
5145
+ export type PrepareUserOperationRule = z.infer<typeof PrepareUserOperationRuleSchema>;
3304
5146
  /**
3305
- * Type representing a 'sendEvmTransaction' policy rule that can accept or reject specific operations
5147
+ * Type representing a 'sendUserOperation' policy rule that can accept or reject specific operations
3306
5148
  * based on a set of criteria.
3307
5149
  */
3308
- export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
5150
+ export declare const SendUserOperationRuleSchema: z.ZodObject<{
3309
5151
  /**
3310
5152
  * Determines whether matching the rule will cause a request to be rejected or accepted.
3311
- * "accept" will allow the transaction, "reject" will block it.
5153
+ * "accept" will allow the operation, "reject" will block it.
3312
5154
  */
3313
5155
  action: z.ZodEnum<["reject", "accept"]>;
3314
5156
  /**
3315
5157
  * The operation to which this rule applies.
3316
- * Must be "sendEvmTransaction".
5158
+ * Must be "sendUserOperation".
3317
5159
  */
3318
- operation: z.ZodLiteral<"sendEvmTransaction">;
5160
+ operation: z.ZodLiteral<"sendUserOperation">;
3319
5161
  /**
3320
5162
  * The set of criteria that must be matched for this rule to apply.
3321
5163
  * Must be compatible with the specified operation type.
@@ -3361,28 +5203,6 @@ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
3361
5203
  type: "evmAddress";
3362
5204
  operator: "in" | "not in";
3363
5205
  addresses: string[];
3364
- }>, z.ZodObject<{
3365
- /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
3366
- type: z.ZodLiteral<"evmNetwork">;
3367
- /**
3368
- * Array of EVM network identifiers to compare against.
3369
- * Either "base", "base-sepolia", "ethereum", "ethereum-sepolia", "avalanche", "polygon", "optimism", "arbitrum"
3370
- */
3371
- networks: z.ZodArray<z.ZodEnum<["base", "base-sepolia", "ethereum", "ethereum-sepolia", "avalanche", "polygon", "optimism", "arbitrum"]>, "many">;
3372
- /**
3373
- * The operator to use for evaluating transaction network.
3374
- * "in" checks if a network is in the provided list.
3375
- * "not in" checks if a network is not in the provided list.
3376
- */
3377
- operator: z.ZodEnum<["in", "not in"]>;
3378
- }, "strip", z.ZodTypeAny, {
3379
- type: "evmNetwork";
3380
- operator: "in" | "not in";
3381
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
3382
- }, {
3383
- type: "evmNetwork";
3384
- operator: "in" | "not in";
3385
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
3386
5206
  }>, z.ZodObject<{
3387
5207
  /** The type of criterion, must be "evmData" for EVM transaction rules. */
3388
5208
  type: z.ZodLiteral<"evmData">;
@@ -3673,7 +5493,7 @@ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
3673
5493
  }>]>, "many">;
3674
5494
  }, "strip", z.ZodTypeAny, {
3675
5495
  action: "reject" | "accept";
3676
- operation: "sendEvmTransaction";
5496
+ operation: "sendUserOperation";
3677
5497
  criteria: ({
3678
5498
  ethValue: string;
3679
5499
  type: "ethValue";
@@ -3682,10 +5502,6 @@ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
3682
5502
  type: "evmAddress";
3683
5503
  operator: "in" | "not in";
3684
5504
  addresses: `0x${string}`[];
3685
- } | {
3686
- type: "evmNetwork";
3687
- operator: "in" | "not in";
3688
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
3689
5505
  } | {
3690
5506
  type: "netUSDChange";
3691
5507
  operator: ">" | ">=" | "<" | "<=" | "==";
@@ -3738,7 +5554,7 @@ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
3738
5554
  })[];
3739
5555
  }, {
3740
5556
  action: "reject" | "accept";
3741
- operation: "sendEvmTransaction";
5557
+ operation: "sendUserOperation";
3742
5558
  criteria: ({
3743
5559
  ethValue: string;
3744
5560
  type: "ethValue";
@@ -3747,10 +5563,6 @@ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
3747
5563
  type: "evmAddress";
3748
5564
  operator: "in" | "not in";
3749
5565
  addresses: string[];
3750
- } | {
3751
- type: "evmNetwork";
3752
- operator: "in" | "not in";
3753
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
3754
5566
  } | {
3755
5567
  type: "netUSDChange";
3756
5568
  operator: ">" | ">=" | "<" | "<=" | "==";
@@ -3772,22 +5584,22 @@ export declare const SendEvmTransactionRuleSchema: z.ZodObject<{
3772
5584
  }[];
3773
5585
  })[];
3774
5586
  }>;
3775
- export type SendEvmTransactionRule = z.infer<typeof SendEvmTransactionRuleSchema>;
5587
+ export type SendUserOperationRule = z.infer<typeof SendUserOperationRuleSchema>;
3776
5588
  /**
3777
- * Type representing a 'prepareUserOperation' policy rule that can accept or reject specific operations
5589
+ * Type representing a 'signEndUserEvmTransaction' policy rule that can accept or reject specific operations
3778
5590
  * based on a set of criteria.
3779
5591
  */
3780
- export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
5592
+ export declare const SignEndUserEvmTransactionRuleSchema: z.ZodObject<{
3781
5593
  /**
3782
5594
  * Determines whether matching the rule will cause a request to be rejected or accepted.
3783
- * "accept" will allow the operation, "reject" will block it.
5595
+ * "accept" will allow the transaction, "reject" will block it.
3784
5596
  */
3785
5597
  action: z.ZodEnum<["reject", "accept"]>;
3786
5598
  /**
3787
5599
  * The operation to which this rule applies.
3788
- * Must be "prepareUserOperation".
5600
+ * Must be "signEndUserEvmTransaction".
3789
5601
  */
3790
- operation: z.ZodLiteral<"prepareUserOperation">;
5602
+ operation: z.ZodLiteral<"signEndUserEvmTransaction">;
3791
5603
  /**
3792
5604
  * The set of criteria that must be matched for this rule to apply.
3793
5605
  * Must be compatible with the specified operation type.
@@ -3833,28 +5645,6 @@ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
3833
5645
  type: "evmAddress";
3834
5646
  operator: "in" | "not in";
3835
5647
  addresses: string[];
3836
- }>, z.ZodObject<{
3837
- /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
3838
- type: z.ZodLiteral<"evmNetwork">;
3839
- /**
3840
- * Array of EVM network identifiers to compare against.
3841
- * Either "base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"
3842
- */
3843
- networks: z.ZodArray<z.ZodEnum<["base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"]>, "many">;
3844
- /**
3845
- * The operator to use for evaluating transaction network.
3846
- * "in" checks if a network is in the provided list.
3847
- * "not in" checks if a network is not in the provided list.
3848
- */
3849
- operator: z.ZodEnum<["in", "not in"]>;
3850
- }, "strip", z.ZodTypeAny, {
3851
- type: "evmNetwork";
3852
- operator: "in" | "not in";
3853
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
3854
- }, {
3855
- type: "evmNetwork";
3856
- operator: "in" | "not in";
3857
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
3858
5648
  }>, z.ZodObject<{
3859
5649
  /** The type of criterion, must be "evmData" for EVM transaction rules. */
3860
5650
  type: z.ZodLiteral<"evmData">;
@@ -4145,7 +5935,7 @@ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
4145
5935
  }>]>, "many">;
4146
5936
  }, "strip", z.ZodTypeAny, {
4147
5937
  action: "reject" | "accept";
4148
- operation: "prepareUserOperation";
5938
+ operation: "signEndUserEvmTransaction";
4149
5939
  criteria: ({
4150
5940
  ethValue: string;
4151
5941
  type: "ethValue";
@@ -4154,10 +5944,6 @@ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
4154
5944
  type: "evmAddress";
4155
5945
  operator: "in" | "not in";
4156
5946
  addresses: `0x${string}`[];
4157
- } | {
4158
- type: "evmNetwork";
4159
- operator: "in" | "not in";
4160
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
4161
5947
  } | {
4162
5948
  type: "netUSDChange";
4163
5949
  operator: ">" | ">=" | "<" | "<=" | "==";
@@ -4210,7 +5996,7 @@ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
4210
5996
  })[];
4211
5997
  }, {
4212
5998
  action: "reject" | "accept";
4213
- operation: "prepareUserOperation";
5999
+ operation: "signEndUserEvmTransaction";
4214
6000
  criteria: ({
4215
6001
  ethValue: string;
4216
6002
  type: "ethValue";
@@ -4219,10 +6005,6 @@ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
4219
6005
  type: "evmAddress";
4220
6006
  operator: "in" | "not in";
4221
6007
  addresses: string[];
4222
- } | {
4223
- type: "evmNetwork";
4224
- operator: "in" | "not in";
4225
- networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "zora" | "polygon" | "bnb" | "avalanche" | "ethereum" | "ethereum-sepolia")[];
4226
6008
  } | {
4227
6009
  type: "netUSDChange";
4228
6010
  operator: ">" | ">=" | "<" | "<=" | "==";
@@ -4244,22 +6026,22 @@ export declare const PrepareUserOperationRuleSchema: z.ZodObject<{
4244
6026
  }[];
4245
6027
  })[];
4246
6028
  }>;
4247
- export type PrepareUserOperationRule = z.infer<typeof PrepareUserOperationRuleSchema>;
6029
+ export type SignEndUserEvmTransactionRule = z.infer<typeof SignEndUserEvmTransactionRuleSchema>;
4248
6030
  /**
4249
- * Type representing a 'sendUserOperation' policy rule that can accept or reject specific operations
6031
+ * Type representing a 'sendEndUserEvmTransaction' policy rule that can accept or reject specific operations
4250
6032
  * based on a set of criteria.
4251
6033
  */
4252
- export declare const SendUserOperationRuleSchema: z.ZodObject<{
6034
+ export declare const SendEndUserEvmTransactionRuleSchema: z.ZodObject<{
4253
6035
  /**
4254
6036
  * Determines whether matching the rule will cause a request to be rejected or accepted.
4255
- * "accept" will allow the operation, "reject" will block it.
6037
+ * "accept" will allow the transaction, "reject" will block it.
4256
6038
  */
4257
6039
  action: z.ZodEnum<["reject", "accept"]>;
4258
6040
  /**
4259
6041
  * The operation to which this rule applies.
4260
- * Must be "sendUserOperation".
6042
+ * Must be "sendEndUserEvmTransaction".
4261
6043
  */
4262
- operation: z.ZodLiteral<"sendUserOperation">;
6044
+ operation: z.ZodLiteral<"sendEndUserEvmTransaction">;
4263
6045
  /**
4264
6046
  * The set of criteria that must be matched for this rule to apply.
4265
6047
  * Must be compatible with the specified operation type.
@@ -4305,6 +6087,28 @@ export declare const SendUserOperationRuleSchema: z.ZodObject<{
4305
6087
  type: "evmAddress";
4306
6088
  operator: "in" | "not in";
4307
6089
  addresses: string[];
6090
+ }>, z.ZodObject<{
6091
+ /** The type of criterion, must be "evmAddress" for EVM address-based rules. */
6092
+ type: z.ZodLiteral<"evmNetwork">;
6093
+ /**
6094
+ * Array of EVM network identifiers to compare against.
6095
+ * Either "base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"
6096
+ */
6097
+ networks: z.ZodArray<z.ZodEnum<["base-sepolia", "base", "arbitrum", "optimism", "zora", "polygon", "bnb", "avalanche", "ethereum", "ethereum-sepolia"]>, "many">;
6098
+ /**
6099
+ * The operator to use for evaluating transaction network.
6100
+ * "in" checks if a network is in the provided list.
6101
+ * "not in" checks if a network is not in the provided list.
6102
+ */
6103
+ operator: z.ZodEnum<["in", "not in"]>;
6104
+ }, "strip", z.ZodTypeAny, {
6105
+ type: "evmNetwork";
6106
+ operator: "in" | "not in";
6107
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
6108
+ }, {
6109
+ type: "evmNetwork";
6110
+ operator: "in" | "not in";
6111
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
4308
6112
  }>, z.ZodObject<{
4309
6113
  /** The type of criterion, must be "evmData" for EVM transaction rules. */
4310
6114
  type: z.ZodLiteral<"evmData">;
@@ -4485,12 +6289,202 @@ export declare const SendUserOperationRuleSchema: z.ZodObject<{
4485
6289
  values: string[];
4486
6290
  name: string;
4487
6291
  operator: "in" | "not in";
4488
- }, {
4489
- values: string[];
6292
+ }, {
6293
+ values: string[];
6294
+ name: string;
6295
+ operator: "in" | "not in";
6296
+ }>]>, "many">>;
6297
+ }, "strip", z.ZodTypeAny, {
6298
+ function: string;
6299
+ params?: ({
6300
+ values: string[];
6301
+ name: string;
6302
+ operator: "in" | "not in";
6303
+ } | {
6304
+ value: string;
6305
+ name: string;
6306
+ operator: ">" | ">=" | "<" | "<=" | "==";
6307
+ })[] | undefined;
6308
+ }, {
6309
+ function: string;
6310
+ params?: ({
6311
+ values: string[];
6312
+ name: string;
6313
+ operator: "in" | "not in";
6314
+ } | {
6315
+ value: string;
6316
+ name: string;
6317
+ operator: ">" | ">=" | "<" | "<=" | "==";
6318
+ })[] | undefined;
6319
+ }>, "many">;
6320
+ }, "strip", z.ZodTypeAny, {
6321
+ type: "evmData";
6322
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
6323
+ inputs: readonly import("abitype").AbiParameter[];
6324
+ type: "error";
6325
+ name: string;
6326
+ } | {
6327
+ inputs: readonly import("abitype").AbiEventParameter[];
6328
+ type: "event";
6329
+ name: string;
6330
+ anonymous?: boolean | undefined;
6331
+ } | ({
6332
+ payable?: boolean | undefined;
6333
+ constant?: boolean | undefined;
6334
+ gas?: number | undefined;
6335
+ } & ({
6336
+ inputs: readonly import("abitype").AbiParameter[];
6337
+ outputs: readonly import("abitype").AbiParameter[];
6338
+ type: "function";
6339
+ name: string;
6340
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
6341
+ } | {
6342
+ inputs: readonly import("abitype").AbiParameter[];
6343
+ type: "constructor";
6344
+ stateMutability: "nonpayable" | "payable";
6345
+ } | {
6346
+ type: "fallback";
6347
+ stateMutability: "nonpayable" | "payable";
6348
+ inputs?: [] | undefined;
6349
+ } | {
6350
+ type: "receive";
6351
+ stateMutability: "payable";
6352
+ })))[];
6353
+ conditions: {
6354
+ function: string;
6355
+ params?: ({
6356
+ values: string[];
6357
+ name: string;
6358
+ operator: "in" | "not in";
6359
+ } | {
6360
+ value: string;
6361
+ name: string;
6362
+ operator: ">" | ">=" | "<" | "<=" | "==";
6363
+ })[] | undefined;
6364
+ }[];
6365
+ }, {
6366
+ type: "evmData";
6367
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
6368
+ conditions: {
6369
+ function: string;
6370
+ params?: ({
6371
+ values: string[];
6372
+ name: string;
6373
+ operator: "in" | "not in";
6374
+ } | {
6375
+ value: string;
6376
+ name: string;
6377
+ operator: ">" | ">=" | "<" | "<=" | "==";
6378
+ })[] | undefined;
6379
+ }[];
6380
+ }>, z.ZodObject<{
6381
+ /** The type of criterion, must be "netUSDChange" for USD denominated asset transfer rules. */
6382
+ type: z.ZodLiteral<"netUSDChange">;
6383
+ /**
6384
+ * The amount of USD, in cents, that the total USD value of a transaction's asset transfer and exposure should be compared to.
6385
+ */
6386
+ changeCents: z.ZodNumber;
6387
+ /**
6388
+ * The operator to use for the comparison. The total value of a transaction's asset transfer and exposure in USD will be on the left-hand side of the operator, and the `changeCents` field will be on the right-hand side.
6389
+ */
6390
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
6391
+ }, "strip", z.ZodTypeAny, {
6392
+ type: "netUSDChange";
6393
+ operator: ">" | ">=" | "<" | "<=" | "==";
6394
+ changeCents: number;
6395
+ }, {
6396
+ type: "netUSDChange";
6397
+ operator: ">" | ">=" | "<" | "<=" | "==";
6398
+ changeCents: number;
6399
+ }>]>, "many">;
6400
+ }, "strip", z.ZodTypeAny, {
6401
+ action: "reject" | "accept";
6402
+ operation: "sendEndUserEvmTransaction";
6403
+ criteria: ({
6404
+ ethValue: string;
6405
+ type: "ethValue";
6406
+ operator: ">" | ">=" | "<" | "<=" | "==";
6407
+ } | {
6408
+ type: "evmAddress";
6409
+ operator: "in" | "not in";
6410
+ addresses: `0x${string}`[];
6411
+ } | {
6412
+ type: "evmNetwork";
6413
+ operator: "in" | "not in";
6414
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
6415
+ } | {
6416
+ type: "netUSDChange";
6417
+ operator: ">" | ">=" | "<" | "<=" | "==";
6418
+ changeCents: number;
6419
+ } | {
6420
+ type: "evmData";
6421
+ abi: "erc20" | "erc721" | "erc1155" | readonly ({
6422
+ inputs: readonly import("abitype").AbiParameter[];
6423
+ type: "error";
6424
+ name: string;
6425
+ } | {
6426
+ inputs: readonly import("abitype").AbiEventParameter[];
6427
+ type: "event";
6428
+ name: string;
6429
+ anonymous?: boolean | undefined;
6430
+ } | ({
6431
+ payable?: boolean | undefined;
6432
+ constant?: boolean | undefined;
6433
+ gas?: number | undefined;
6434
+ } & ({
6435
+ inputs: readonly import("abitype").AbiParameter[];
6436
+ outputs: readonly import("abitype").AbiParameter[];
6437
+ type: "function";
6438
+ name: string;
6439
+ stateMutability: "pure" | "view" | "nonpayable" | "payable";
6440
+ } | {
6441
+ inputs: readonly import("abitype").AbiParameter[];
6442
+ type: "constructor";
6443
+ stateMutability: "nonpayable" | "payable";
6444
+ } | {
6445
+ type: "fallback";
6446
+ stateMutability: "nonpayable" | "payable";
6447
+ inputs?: [] | undefined;
6448
+ } | {
6449
+ type: "receive";
6450
+ stateMutability: "payable";
6451
+ })))[];
6452
+ conditions: {
6453
+ function: string;
6454
+ params?: ({
6455
+ values: string[];
6456
+ name: string;
6457
+ operator: "in" | "not in";
6458
+ } | {
6459
+ value: string;
4490
6460
  name: string;
4491
- operator: "in" | "not in";
4492
- }>]>, "many">>;
4493
- }, "strip", z.ZodTypeAny, {
6461
+ operator: ">" | ">=" | "<" | "<=" | "==";
6462
+ })[] | undefined;
6463
+ }[];
6464
+ })[];
6465
+ }, {
6466
+ action: "reject" | "accept";
6467
+ operation: "sendEndUserEvmTransaction";
6468
+ criteria: ({
6469
+ ethValue: string;
6470
+ type: "ethValue";
6471
+ operator: ">" | ">=" | "<" | "<=" | "==";
6472
+ } | {
6473
+ type: "evmAddress";
6474
+ operator: "in" | "not in";
6475
+ addresses: string[];
6476
+ } | {
6477
+ type: "evmNetwork";
6478
+ operator: "in" | "not in";
6479
+ networks: ("base-sepolia" | "base" | "arbitrum" | "optimism" | "polygon" | "ethereum" | "ethereum-sepolia" | "zora" | "bnb" | "avalanche")[];
6480
+ } | {
6481
+ type: "netUSDChange";
6482
+ operator: ">" | ">=" | "<" | "<=" | "==";
6483
+ changeCents: number;
6484
+ } | {
6485
+ type: "evmData";
6486
+ abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
6487
+ conditions: {
4494
6488
  function: string;
4495
6489
  params?: ({
4496
6490
  values: string[];
@@ -4501,190 +6495,312 @@ export declare const SendUserOperationRuleSchema: z.ZodObject<{
4501
6495
  name: string;
4502
6496
  operator: ">" | ">=" | "<" | "<=" | "==";
4503
6497
  })[] | undefined;
6498
+ }[];
6499
+ })[];
6500
+ }>;
6501
+ export type SendEndUserEvmTransactionRule = z.infer<typeof SendEndUserEvmTransactionRuleSchema>;
6502
+ /**
6503
+ * Type representing a 'signEndUserEvmMessage' policy rule that can accept or reject specific operations
6504
+ * based on a set of criteria.
6505
+ */
6506
+ export declare const SignEndUserEvmMessageRuleSchema: z.ZodObject<{
6507
+ /**
6508
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
6509
+ * "accept" will allow the signing, "reject" will block it.
6510
+ */
6511
+ action: z.ZodEnum<["reject", "accept"]>;
6512
+ /**
6513
+ * The operation to which this rule applies.
6514
+ * Must be "signEndUserEvmMessage".
6515
+ */
6516
+ operation: z.ZodLiteral<"signEndUserEvmMessage">;
6517
+ /**
6518
+ * The set of criteria that must be matched for this rule to apply.
6519
+ * Must be compatible with the specified operation type.
6520
+ */
6521
+ criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
6522
+ /** The type of criterion, must be "evmMessage" for EVM message-based rules. */
6523
+ type: z.ZodLiteral<"evmMessage">;
6524
+ /**
6525
+ * A regular expression the message is matched against.
6526
+ * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
6527
+ */
6528
+ match: z.ZodString;
6529
+ }, "strip", z.ZodTypeAny, {
6530
+ match: string;
6531
+ type: "evmMessage";
6532
+ }, {
6533
+ match: string;
6534
+ type: "evmMessage";
6535
+ }>]>, "many">;
6536
+ }, "strip", z.ZodTypeAny, {
6537
+ action: "reject" | "accept";
6538
+ operation: "signEndUserEvmMessage";
6539
+ criteria: {
6540
+ match: string;
6541
+ type: "evmMessage";
6542
+ }[];
6543
+ }, {
6544
+ action: "reject" | "accept";
6545
+ operation: "signEndUserEvmMessage";
6546
+ criteria: {
6547
+ match: string;
6548
+ type: "evmMessage";
6549
+ }[];
6550
+ }>;
6551
+ export type SignEndUserEvmMessageRule = z.infer<typeof SignEndUserEvmMessageRuleSchema>;
6552
+ /**
6553
+ * Type representing a 'signEndUserEvmTypedData' policy rule that can accept or reject specific operations
6554
+ * based on a set of criteria.
6555
+ */
6556
+ export declare const SignEndUserEvmTypedDataRuleSchema: z.ZodObject<{
6557
+ /**
6558
+ * Determines whether matching the rule will cause a request to be rejected or accepted.
6559
+ * "accept" will allow the signing, "reject" will block it.
6560
+ */
6561
+ action: z.ZodEnum<["reject", "accept"]>;
6562
+ /**
6563
+ * The operation to which this rule applies.
6564
+ * Must be "signEndUserEvmTypedData".
6565
+ */
6566
+ operation: z.ZodLiteral<"signEndUserEvmTypedData">;
6567
+ /**
6568
+ * The set of criteria that must be matched for this rule to apply.
6569
+ * Must be compatible with the specified operation type.
6570
+ */
6571
+ criteria: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
6572
+ /** The type of criterion, must be "evmTypedDataField" for typed data field-based rules. */
6573
+ type: z.ZodLiteral<"evmTypedDataField">;
6574
+ /**
6575
+ * The EIP-712 type definitions for the typed data.
6576
+ * Must include at minimum the primary type being signed.
6577
+ */
6578
+ types: z.ZodObject<{
6579
+ /**
6580
+ * EIP-712 compliant map of model names to model definitions.
6581
+ */
6582
+ types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
6583
+ name: z.ZodString;
6584
+ type: z.ZodString;
6585
+ }, "strip", z.ZodTypeAny, {
6586
+ type: string;
6587
+ name: string;
6588
+ }, {
6589
+ type: string;
6590
+ name: string;
6591
+ }>, "many">>;
6592
+ /**
6593
+ * The name of the root EIP-712 type. This value must be included in the `types` object.
6594
+ */
6595
+ primaryType: z.ZodString;
6596
+ }, "strip", z.ZodTypeAny, {
6597
+ types: Record<string, {
6598
+ type: string;
6599
+ name: string;
6600
+ }[]>;
6601
+ primaryType: string;
6602
+ }, {
6603
+ types: Record<string, {
6604
+ type: string;
6605
+ name: string;
6606
+ }[]>;
6607
+ primaryType: string;
6608
+ }>;
6609
+ /**
6610
+ * Array of conditions to apply against typed data fields.
6611
+ * Each condition specifies how to validate a specific field within the typed data.
6612
+ */
6613
+ conditions: z.ZodArray<z.ZodUnion<[z.ZodObject<{
6614
+ /**
6615
+ * Array of EVM addresses to compare against.
6616
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
6617
+ * Limited to a maximum of 300 addresses per condition.
6618
+ */
6619
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
6620
+ /**
6621
+ * The operator to use for evaluating addresses.
6622
+ * "in" checks if an address is in the provided list.
6623
+ * "not in" checks if an address is not in the provided list.
6624
+ */
6625
+ operator: z.ZodEnum<["in", "not in"]>;
6626
+ /**
6627
+ * The path to the field to compare against this criterion.
6628
+ * To reference deeply nested fields, use dot notation (e.g., "order.buyer").
6629
+ */
6630
+ path: z.ZodString;
6631
+ }, "strip", z.ZodTypeAny, {
6632
+ path: string;
6633
+ operator: "in" | "not in";
6634
+ addresses: `0x${string}`[];
6635
+ }, {
6636
+ path: string;
6637
+ operator: "in" | "not in";
6638
+ addresses: string[];
6639
+ }>, z.ZodObject<{
6640
+ /**
6641
+ * The numerical value to compare against, as a string.
6642
+ * Must contain only digits.
6643
+ */
6644
+ value: z.ZodString;
6645
+ /**
6646
+ * The comparison operator to use.
6647
+ */
6648
+ operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
6649
+ /**
6650
+ * The path to the field to compare against this criterion.
6651
+ * To reference deeply nested fields, use dot notation (e.g., "order.price").
6652
+ */
6653
+ path: z.ZodString;
6654
+ }, "strip", z.ZodTypeAny, {
6655
+ value: string;
6656
+ path: string;
6657
+ operator: ">" | ">=" | "<" | "<=" | "==";
6658
+ }, {
6659
+ value: string;
6660
+ path: string;
6661
+ operator: ">" | ">=" | "<" | "<=" | "==";
6662
+ }>, z.ZodObject<{
6663
+ /**
6664
+ * A regular expression the string field is matched against.
6665
+ * Accepts valid regular expression syntax described by [RE2](https://github.com/google/re2/wiki/Syntax).
6666
+ */
6667
+ match: z.ZodString;
6668
+ /**
6669
+ * The path to the field to compare against this criterion.
6670
+ * To reference deeply nested fields, use dot notation (e.g., "metadata.description").
6671
+ */
6672
+ path: z.ZodString;
6673
+ }, "strip", z.ZodTypeAny, {
6674
+ match: string;
6675
+ path: string;
4504
6676
  }, {
4505
- function: string;
4506
- params?: ({
4507
- values: string[];
4508
- name: string;
4509
- operator: "in" | "not in";
4510
- } | {
4511
- value: string;
4512
- name: string;
4513
- operator: ">" | ">=" | "<" | "<=" | "==";
4514
- })[] | undefined;
4515
- }>, "many">;
6677
+ match: string;
6678
+ path: string;
6679
+ }>]>, "many">;
4516
6680
  }, "strip", z.ZodTypeAny, {
4517
- type: "evmData";
4518
- abi: "erc20" | "erc721" | "erc1155" | readonly ({
4519
- inputs: readonly import("abitype").AbiParameter[];
4520
- type: "error";
4521
- name: string;
4522
- } | {
4523
- inputs: readonly import("abitype").AbiEventParameter[];
4524
- type: "event";
4525
- name: string;
4526
- anonymous?: boolean | undefined;
4527
- } | ({
4528
- payable?: boolean | undefined;
4529
- constant?: boolean | undefined;
4530
- gas?: number | undefined;
4531
- } & ({
4532
- inputs: readonly import("abitype").AbiParameter[];
4533
- outputs: readonly import("abitype").AbiParameter[];
4534
- type: "function";
4535
- name: string;
4536
- stateMutability: "pure" | "view" | "nonpayable" | "payable";
4537
- } | {
4538
- inputs: readonly import("abitype").AbiParameter[];
4539
- type: "constructor";
4540
- stateMutability: "nonpayable" | "payable";
6681
+ type: "evmTypedDataField";
6682
+ types: {
6683
+ types: Record<string, {
6684
+ type: string;
6685
+ name: string;
6686
+ }[]>;
6687
+ primaryType: string;
6688
+ };
6689
+ conditions: ({
6690
+ path: string;
6691
+ operator: "in" | "not in";
6692
+ addresses: `0x${string}`[];
4541
6693
  } | {
4542
- type: "fallback";
4543
- stateMutability: "nonpayable" | "payable";
4544
- inputs?: [] | undefined;
6694
+ value: string;
6695
+ path: string;
6696
+ operator: ">" | ">=" | "<" | "<=" | "==";
4545
6697
  } | {
4546
- type: "receive";
4547
- stateMutability: "payable";
4548
- })))[];
4549
- conditions: {
4550
- function: string;
4551
- params?: ({
4552
- values: string[];
4553
- name: string;
4554
- operator: "in" | "not in";
4555
- } | {
4556
- value: string;
4557
- name: string;
4558
- operator: ">" | ">=" | "<" | "<=" | "==";
4559
- })[] | undefined;
4560
- }[];
6698
+ match: string;
6699
+ path: string;
6700
+ })[];
4561
6701
  }, {
4562
- type: "evmData";
4563
- abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
4564
- conditions: {
4565
- function: string;
4566
- params?: ({
4567
- values: string[];
4568
- name: string;
4569
- operator: "in" | "not in";
4570
- } | {
4571
- value: string;
6702
+ type: "evmTypedDataField";
6703
+ types: {
6704
+ types: Record<string, {
6705
+ type: string;
4572
6706
  name: string;
4573
- operator: ">" | ">=" | "<" | "<=" | "==";
4574
- })[] | undefined;
4575
- }[];
6707
+ }[]>;
6708
+ primaryType: string;
6709
+ };
6710
+ conditions: ({
6711
+ path: string;
6712
+ operator: "in" | "not in";
6713
+ addresses: string[];
6714
+ } | {
6715
+ value: string;
6716
+ path: string;
6717
+ operator: ">" | ">=" | "<" | "<=" | "==";
6718
+ } | {
6719
+ match: string;
6720
+ path: string;
6721
+ })[];
4576
6722
  }>, z.ZodObject<{
4577
- /** The type of criterion, must be "netUSDChange" for USD denominated asset transfer rules. */
4578
- type: z.ZodLiteral<"netUSDChange">;
6723
+ /** The type of criterion, must be "evmTypedDataVerifyingContract" for verifying contract-based rules. */
6724
+ type: z.ZodLiteral<"evmTypedDataVerifyingContract">;
4579
6725
  /**
4580
- * The amount of USD, in cents, that the total USD value of a transaction's asset transfer and exposure should be compared to.
6726
+ * Array of EVM addresses allowed or disallowed as verifying contracts.
6727
+ * Each address must be a 0x-prefixed 40-character hexadecimal string.
6728
+ * Limited to a maximum of 300 addresses per criterion.
4581
6729
  */
4582
- changeCents: z.ZodNumber;
6730
+ addresses: z.ZodArray<z.ZodEffects<z.ZodString, `0x${string}`, string>, "many">;
4583
6731
  /**
4584
- * The operator to use for the comparison. The total value of a transaction's asset transfer and exposure in USD will be on the left-hand side of the operator, and the `changeCents` field will be on the right-hand side.
6732
+ * The operator to use for evaluating verifying contract addresses.
6733
+ * "in" checks if the verifying contract is in the provided list.
6734
+ * "not in" checks if the verifying contract is not in the provided list.
4585
6735
  */
4586
- operator: z.ZodEnum<[">", ">=", "<", "<=", "=="]>;
6736
+ operator: z.ZodEnum<["in", "not in"]>;
4587
6737
  }, "strip", z.ZodTypeAny, {
4588
- type: "netUSDChange";
4589
- operator: ">" | ">=" | "<" | "<=" | "==";
4590
- changeCents: number;
6738
+ type: "evmTypedDataVerifyingContract";
6739
+ operator: "in" | "not in";
6740
+ addresses: `0x${string}`[];
4591
6741
  }, {
4592
- type: "netUSDChange";
4593
- operator: ">" | ">=" | "<" | "<=" | "==";
4594
- changeCents: number;
6742
+ type: "evmTypedDataVerifyingContract";
6743
+ operator: "in" | "not in";
6744
+ addresses: string[];
4595
6745
  }>]>, "many">;
4596
6746
  }, "strip", z.ZodTypeAny, {
4597
6747
  action: "reject" | "accept";
4598
- operation: "sendUserOperation";
6748
+ operation: "signEndUserEvmTypedData";
4599
6749
  criteria: ({
4600
- ethValue: string;
4601
- type: "ethValue";
4602
- operator: ">" | ">=" | "<" | "<=" | "==";
6750
+ type: "evmTypedDataField";
6751
+ types: {
6752
+ types: Record<string, {
6753
+ type: string;
6754
+ name: string;
6755
+ }[]>;
6756
+ primaryType: string;
6757
+ };
6758
+ conditions: ({
6759
+ path: string;
6760
+ operator: "in" | "not in";
6761
+ addresses: `0x${string}`[];
6762
+ } | {
6763
+ value: string;
6764
+ path: string;
6765
+ operator: ">" | ">=" | "<" | "<=" | "==";
6766
+ } | {
6767
+ match: string;
6768
+ path: string;
6769
+ })[];
4603
6770
  } | {
4604
- type: "evmAddress";
6771
+ type: "evmTypedDataVerifyingContract";
4605
6772
  operator: "in" | "not in";
4606
6773
  addresses: `0x${string}`[];
4607
- } | {
4608
- type: "netUSDChange";
4609
- operator: ">" | ">=" | "<" | "<=" | "==";
4610
- changeCents: number;
4611
- } | {
4612
- type: "evmData";
4613
- abi: "erc20" | "erc721" | "erc1155" | readonly ({
4614
- inputs: readonly import("abitype").AbiParameter[];
4615
- type: "error";
4616
- name: string;
4617
- } | {
4618
- inputs: readonly import("abitype").AbiEventParameter[];
4619
- type: "event";
4620
- name: string;
4621
- anonymous?: boolean | undefined;
4622
- } | ({
4623
- payable?: boolean | undefined;
4624
- constant?: boolean | undefined;
4625
- gas?: number | undefined;
4626
- } & ({
4627
- inputs: readonly import("abitype").AbiParameter[];
4628
- outputs: readonly import("abitype").AbiParameter[];
4629
- type: "function";
4630
- name: string;
4631
- stateMutability: "pure" | "view" | "nonpayable" | "payable";
4632
- } | {
4633
- inputs: readonly import("abitype").AbiParameter[];
4634
- type: "constructor";
4635
- stateMutability: "nonpayable" | "payable";
4636
- } | {
4637
- type: "fallback";
4638
- stateMutability: "nonpayable" | "payable";
4639
- inputs?: [] | undefined;
4640
- } | {
4641
- type: "receive";
4642
- stateMutability: "payable";
4643
- })))[];
4644
- conditions: {
4645
- function: string;
4646
- params?: ({
4647
- values: string[];
4648
- name: string;
4649
- operator: "in" | "not in";
4650
- } | {
4651
- value: string;
4652
- name: string;
4653
- operator: ">" | ">=" | "<" | "<=" | "==";
4654
- })[] | undefined;
4655
- }[];
4656
6774
  })[];
4657
6775
  }, {
4658
6776
  action: "reject" | "accept";
4659
- operation: "sendUserOperation";
6777
+ operation: "signEndUserEvmTypedData";
4660
6778
  criteria: ({
4661
- ethValue: string;
4662
- type: "ethValue";
4663
- operator: ">" | ">=" | "<" | "<=" | "==";
6779
+ type: "evmTypedDataField";
6780
+ types: {
6781
+ types: Record<string, {
6782
+ type: string;
6783
+ name: string;
6784
+ }[]>;
6785
+ primaryType: string;
6786
+ };
6787
+ conditions: ({
6788
+ path: string;
6789
+ operator: "in" | "not in";
6790
+ addresses: string[];
6791
+ } | {
6792
+ value: string;
6793
+ path: string;
6794
+ operator: ">" | ">=" | "<" | "<=" | "==";
6795
+ } | {
6796
+ match: string;
6797
+ path: string;
6798
+ })[];
4664
6799
  } | {
4665
- type: "evmAddress";
6800
+ type: "evmTypedDataVerifyingContract";
4666
6801
  operator: "in" | "not in";
4667
6802
  addresses: string[];
4668
- } | {
4669
- type: "netUSDChange";
4670
- operator: ">" | ">=" | "<" | "<=" | "==";
4671
- changeCents: number;
4672
- } | {
4673
- type: "evmData";
4674
- abi: "erc20" | "erc721" | "erc1155" | readonly unknown[];
4675
- conditions: {
4676
- function: string;
4677
- params?: ({
4678
- values: string[];
4679
- name: string;
4680
- operator: "in" | "not in";
4681
- } | {
4682
- value: string;
4683
- name: string;
4684
- operator: ">" | ">=" | "<" | "<=" | "==";
4685
- })[] | undefined;
4686
- }[];
4687
6803
  })[];
4688
6804
  }>;
4689
- export type SendUserOperationRule = z.infer<typeof SendUserOperationRuleSchema>;
6805
+ export type SignEndUserEvmTypedDataRule = z.infer<typeof SignEndUserEvmTypedDataRuleSchema>;
4690
6806
  //# sourceMappingURL=evmSchema.d.ts.map