@privy-io/node 0.10.1 → 0.11.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 (214) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/client.d.mts +37 -19
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +37 -19
  5. package/client.d.ts.map +1 -1
  6. package/client.js +29 -10
  7. package/client.js.map +1 -1
  8. package/client.mjs +30 -11
  9. package/client.mjs.map +1 -1
  10. package/index.d.mts +2 -0
  11. package/index.d.mts.map +1 -1
  12. package/index.d.ts +2 -0
  13. package/index.d.ts.map +1 -1
  14. package/index.js.map +1 -1
  15. package/index.mjs.map +1 -1
  16. package/package.json +12 -1
  17. package/public-api/PrivyClient.d.mts +3 -0
  18. package/public-api/PrivyClient.d.mts.map +1 -1
  19. package/public-api/PrivyClient.d.ts +3 -0
  20. package/public-api/PrivyClient.d.ts.map +1 -1
  21. package/public-api/PrivyClient.js +5 -0
  22. package/public-api/PrivyClient.js.map +1 -1
  23. package/public-api/PrivyClient.mjs +5 -0
  24. package/public-api/PrivyClient.mjs.map +1 -1
  25. package/public-api/services/apps.d.mts +25 -0
  26. package/public-api/services/apps.d.mts.map +1 -0
  27. package/public-api/services/apps.d.ts +25 -0
  28. package/public-api/services/apps.d.ts.map +1 -0
  29. package/public-api/services/apps.js +56 -0
  30. package/public-api/services/apps.js.map +1 -0
  31. package/public-api/services/apps.mjs +52 -0
  32. package/public-api/services/apps.mjs.map +1 -0
  33. package/public-api/services/policies.d.mts +6 -2
  34. package/public-api/services/policies.d.mts.map +1 -1
  35. package/public-api/services/policies.d.ts +6 -2
  36. package/public-api/services/policies.d.ts.map +1 -1
  37. package/public-api/services/policies.js +6 -0
  38. package/public-api/services/policies.js.map +1 -1
  39. package/public-api/services/policies.mjs +6 -0
  40. package/public-api/services/policies.mjs.map +1 -1
  41. package/public-api/services/wallets.d.mts +5 -1
  42. package/public-api/services/wallets.d.mts.map +1 -1
  43. package/public-api/services/wallets.d.ts +5 -1
  44. package/public-api/services/wallets.d.ts.map +1 -1
  45. package/public-api/services/wallets.js +6 -0
  46. package/public-api/services/wallets.js.map +1 -1
  47. package/public-api/services/wallets.mjs +6 -0
  48. package/public-api/services/wallets.mjs.map +1 -1
  49. package/resources/accounts.d.mts +182 -4
  50. package/resources/accounts.d.mts.map +1 -1
  51. package/resources/accounts.d.ts +182 -4
  52. package/resources/accounts.d.ts.map +1 -1
  53. package/resources/apps/allowlist.d.mts +81 -0
  54. package/resources/apps/allowlist.d.mts.map +1 -0
  55. package/resources/apps/allowlist.d.ts +81 -0
  56. package/resources/apps/allowlist.d.ts.map +1 -0
  57. package/resources/apps/allowlist.js +56 -0
  58. package/resources/apps/allowlist.js.map +1 -0
  59. package/resources/apps/allowlist.mjs +52 -0
  60. package/resources/apps/allowlist.mjs.map +1 -0
  61. package/resources/apps/apps.d.mts +238 -0
  62. package/resources/apps/apps.d.mts.map +1 -0
  63. package/resources/apps/apps.d.ts +238 -0
  64. package/resources/apps/apps.d.ts.map +1 -0
  65. package/resources/apps/apps.js +44 -0
  66. package/resources/apps/apps.js.map +1 -0
  67. package/resources/apps/apps.mjs +39 -0
  68. package/resources/apps/apps.mjs.map +1 -0
  69. package/resources/apps/index.d.mts +3 -0
  70. package/resources/apps/index.d.mts.map +1 -0
  71. package/resources/apps/index.d.ts +3 -0
  72. package/resources/apps/index.d.ts.map +1 -0
  73. package/resources/apps/index.js +9 -0
  74. package/resources/apps/index.js.map +1 -0
  75. package/resources/apps/index.mjs +4 -0
  76. package/resources/apps/index.mjs.map +1 -0
  77. package/resources/apps.d.mts +1 -151
  78. package/resources/apps.d.mts.map +1 -1
  79. package/resources/apps.d.ts +1 -151
  80. package/resources/apps.d.ts.map +1 -1
  81. package/resources/apps.js +2 -5
  82. package/resources/apps.js.map +1 -1
  83. package/resources/apps.mjs +1 -3
  84. package/resources/apps.mjs.map +1 -1
  85. package/resources/client-auth.d.mts +144 -1
  86. package/resources/client-auth.d.mts.map +1 -1
  87. package/resources/client-auth.d.ts +144 -1
  88. package/resources/client-auth.d.ts.map +1 -1
  89. package/resources/index.d.mts +11 -10
  90. package/resources/index.d.mts.map +1 -1
  91. package/resources/index.d.ts +11 -10
  92. package/resources/index.d.ts.map +1 -1
  93. package/resources/index.js +4 -2
  94. package/resources/index.js.map +1 -1
  95. package/resources/index.mjs +3 -2
  96. package/resources/index.mjs.map +1 -1
  97. package/resources/intents.d.mts +2815 -31
  98. package/resources/intents.d.mts.map +1 -1
  99. package/resources/intents.d.ts +2815 -31
  100. package/resources/intents.d.ts.map +1 -1
  101. package/resources/intents.js +156 -0
  102. package/resources/intents.js.map +1 -1
  103. package/resources/intents.mjs +156 -0
  104. package/resources/intents.mjs.map +1 -1
  105. package/resources/key-quorums.d.mts +45 -2
  106. package/resources/key-quorums.d.mts.map +1 -1
  107. package/resources/key-quorums.d.ts +45 -2
  108. package/resources/key-quorums.d.ts.map +1 -1
  109. package/resources/key-quorums.js +18 -1
  110. package/resources/key-quorums.js.map +1 -1
  111. package/resources/key-quorums.mjs +18 -1
  112. package/resources/key-quorums.mjs.map +1 -1
  113. package/resources/kraken-embed.d.mts +62 -0
  114. package/resources/kraken-embed.d.mts.map +1 -0
  115. package/resources/kraken-embed.d.ts +62 -0
  116. package/resources/kraken-embed.d.ts.map +1 -0
  117. package/resources/kraken-embed.js +9 -0
  118. package/resources/kraken-embed.js.map +1 -0
  119. package/resources/kraken-embed.mjs +5 -0
  120. package/resources/kraken-embed.mjs.map +1 -0
  121. package/resources/policies.d.mts +63 -56
  122. package/resources/policies.d.mts.map +1 -1
  123. package/resources/policies.d.ts +63 -56
  124. package/resources/policies.d.ts.map +1 -1
  125. package/resources/policies.js +3 -0
  126. package/resources/policies.js.map +1 -1
  127. package/resources/policies.mjs +3 -0
  128. package/resources/policies.mjs.map +1 -1
  129. package/resources/transactions.d.mts +3 -0
  130. package/resources/transactions.d.mts.map +1 -1
  131. package/resources/transactions.d.ts +3 -0
  132. package/resources/transactions.d.ts.map +1 -1
  133. package/resources/transactions.js +3 -0
  134. package/resources/transactions.js.map +1 -1
  135. package/resources/transactions.mjs +3 -0
  136. package/resources/transactions.mjs.map +1 -1
  137. package/resources/users.d.mts +50 -47
  138. package/resources/users.d.mts.map +1 -1
  139. package/resources/users.d.ts +50 -47
  140. package/resources/users.d.ts.map +1 -1
  141. package/resources/users.js +3 -0
  142. package/resources/users.js.map +1 -1
  143. package/resources/users.mjs +3 -0
  144. package/resources/users.mjs.map +1 -1
  145. package/resources/wallets/balance.d.mts +7 -4
  146. package/resources/wallets/balance.d.mts.map +1 -1
  147. package/resources/wallets/balance.d.ts +7 -4
  148. package/resources/wallets/balance.d.ts.map +1 -1
  149. package/resources/wallets/balance.js +3 -0
  150. package/resources/wallets/balance.js.map +1 -1
  151. package/resources/wallets/balance.mjs +3 -0
  152. package/resources/wallets/balance.mjs.map +1 -1
  153. package/resources/wallets/index.d.mts +1 -1
  154. package/resources/wallets/index.d.mts.map +1 -1
  155. package/resources/wallets/index.d.ts +1 -1
  156. package/resources/wallets/index.d.ts.map +1 -1
  157. package/resources/wallets/index.js.map +1 -1
  158. package/resources/wallets/index.mjs.map +1 -1
  159. package/resources/wallets/transactions.d.mts +9 -6
  160. package/resources/wallets/transactions.d.mts.map +1 -1
  161. package/resources/wallets/transactions.d.ts +9 -6
  162. package/resources/wallets/transactions.d.ts.map +1 -1
  163. package/resources/wallets/transactions.js +3 -0
  164. package/resources/wallets/transactions.js.map +1 -1
  165. package/resources/wallets/transactions.mjs +3 -0
  166. package/resources/wallets/transactions.mjs.map +1 -1
  167. package/resources/wallets/wallets.d.mts +126 -69
  168. package/resources/wallets/wallets.d.mts.map +1 -1
  169. package/resources/wallets/wallets.d.ts +126 -69
  170. package/resources/wallets/wallets.d.ts.map +1 -1
  171. package/resources/wallets/wallets.js +11 -5
  172. package/resources/wallets/wallets.js.map +1 -1
  173. package/resources/wallets/wallets.mjs +11 -5
  174. package/resources/wallets/wallets.mjs.map +1 -1
  175. package/resources/webhooks.d.mts +319 -283
  176. package/resources/webhooks.d.mts.map +1 -1
  177. package/resources/webhooks.d.ts +319 -283
  178. package/resources/webhooks.d.ts.map +1 -1
  179. package/resources/webhooks.js.map +1 -1
  180. package/resources/webhooks.mjs.map +1 -1
  181. package/resources/yield.d.mts +26 -9
  182. package/resources/yield.d.mts.map +1 -1
  183. package/resources/yield.d.ts +26 -9
  184. package/resources/yield.d.ts.map +1 -1
  185. package/src/client.ts +196 -37
  186. package/src/index.ts +10 -0
  187. package/src/public-api/PrivyClient.ts +7 -0
  188. package/src/public-api/services/apps.ts +85 -0
  189. package/src/public-api/services/policies.ts +15 -1
  190. package/src/public-api/services/wallets.ts +14 -0
  191. package/src/resources/accounts.ts +217 -3
  192. package/src/resources/apps/allowlist.ts +126 -0
  193. package/src/resources/apps/apps.ts +391 -0
  194. package/src/resources/apps/index.ts +20 -0
  195. package/src/resources/apps.ts +1 -257
  196. package/src/resources/client-auth.ts +202 -0
  197. package/src/resources/index.ts +93 -21
  198. package/src/resources/intents.ts +4579 -40
  199. package/src/resources/key-quorums.ts +50 -2
  200. package/src/resources/kraken-embed.ts +85 -0
  201. package/src/resources/policies.ts +83 -76
  202. package/src/resources/transactions.ts +3 -0
  203. package/src/resources/users.ts +66 -63
  204. package/src/resources/wallets/balance.ts +9 -2
  205. package/src/resources/wallets/index.ts +4 -2
  206. package/src/resources/wallets/transactions.ts +10 -4
  207. package/src/resources/wallets/wallets.ts +171 -93
  208. package/src/resources/webhooks.ts +454 -438
  209. package/src/resources/yield.ts +39 -10
  210. package/src/version.ts +1 -1
  211. package/version.d.mts +1 -1
  212. package/version.d.ts +1 -1
  213. package/version.js +1 -1
  214. package/version.mjs +1 -1
@@ -2,8 +2,887 @@
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
4
  import * as IntentsAPI from './intents';
5
+ import * as PoliciesAPI from './policies';
6
+ import * as WalletsAPI from './wallets/wallets';
7
+ import { APIPromise } from '../core/api-promise';
8
+ import { Cursor, type CursorParams, PagePromise } from '../core/pagination';
9
+ import { RequestOptions } from '../internal/request-options';
10
+ import { path } from '../internal/utils/path';
5
11
 
6
- export class Intents extends APIResource {}
12
+ export class Intents extends APIResource {
13
+ /**
14
+ * List intents for an app. Returns a paginated list of intents with their current
15
+ * status and details.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * // Automatically fetches more pages as needed.
20
+ * for await (const intentResponse of client.intents.list()) {
21
+ * // ...
22
+ * }
23
+ * ```
24
+ */
25
+ list(
26
+ query: IntentListParams | null | undefined = {},
27
+ options?: RequestOptions,
28
+ ): PagePromise<IntentResponsesCursor, IntentResponse> {
29
+ return this._client.getAPIList('/v1/intents', Cursor<IntentResponse>, { query, ...options });
30
+ }
31
+
32
+ /**
33
+ * Create an intent to add a rule to a policy. The intent must be authorized by the
34
+ * policy owner before it can be executed.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const ruleIntentResponse =
39
+ * await client.intents.createPolicyRule('policy_id', {
40
+ * action: 'ALLOW',
41
+ * conditions: [
42
+ * {
43
+ * field: 'to',
44
+ * field_source: 'ethereum_transaction',
45
+ * operator: 'eq',
46
+ * value: 'string',
47
+ * },
48
+ * ],
49
+ * method: 'eth_sendTransaction',
50
+ * name: 'x',
51
+ * });
52
+ * ```
53
+ */
54
+ createPolicyRule(
55
+ policyID: string,
56
+ body: IntentCreatePolicyRuleParams,
57
+ options?: RequestOptions,
58
+ ): APIPromise<RuleIntentResponse> {
59
+ return this._client.post(path`/v1/intents/policies/${policyID}/rules`, { body, ...options });
60
+ }
61
+
62
+ /**
63
+ * Create an intent to delete a rule from a policy. The intent must be authorized
64
+ * by the policy owner before it can be executed.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const ruleIntentResponse =
69
+ * await client.intents.deletePolicyRule('rule_id', {
70
+ * policy_id: 'policy_id',
71
+ * });
72
+ * ```
73
+ */
74
+ deletePolicyRule(
75
+ ruleID: string,
76
+ params: IntentDeletePolicyRuleParams,
77
+ options?: RequestOptions,
78
+ ): APIPromise<RuleIntentResponse> {
79
+ const { policy_id } = params;
80
+ return this._client.delete(path`/v1/intents/policies/${policy_id}/rules/${ruleID}`, options);
81
+ }
82
+
83
+ /**
84
+ * Retrieve an intent by ID. Returns the intent details including its current
85
+ * status, authorization details, and execution result if applicable.
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const intentResponse = await client.intents.get(
90
+ * 'intent_id',
91
+ * );
92
+ * ```
93
+ */
94
+ get(intentID: string, options?: RequestOptions): APIPromise<IntentResponse> {
95
+ return this._client.get(path`/v1/intents/${intentID}`, options);
96
+ }
97
+
98
+ /**
99
+ * Create an intent to execute an RPC method on a wallet. The intent must be
100
+ * authorized by either the wallet owner or signers before it can be executed.
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * const rpcIntentResponse = await client.intents.rpc(
105
+ * 'wallet_id',
106
+ * {
107
+ * method: 'personal_sign',
108
+ * params: { encoding: 'utf-8', message: 'message' },
109
+ * },
110
+ * );
111
+ * ```
112
+ */
113
+ rpc(walletID: string, body: IntentRpcParams, options?: RequestOptions): APIPromise<RpcIntentResponse> {
114
+ return this._client.post(path`/v1/intents/wallets/${walletID}/rpc`, { body, ...options });
115
+ }
116
+
117
+ /**
118
+ * Create an intent to update a key quorum. The intent must be authorized by the
119
+ * key quorum members before it can be executed.
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * const keyQuorumIntentResponse =
124
+ * await client.intents.updateKeyQuorum('key_quorum_id');
125
+ * ```
126
+ */
127
+ updateKeyQuorum(
128
+ keyQuorumID: string,
129
+ body: IntentUpdateKeyQuorumParams,
130
+ options?: RequestOptions,
131
+ ): APIPromise<KeyQuorumIntentResponse> {
132
+ return this._client.patch(path`/v1/intents/key_quorums/${keyQuorumID}`, { body, ...options });
133
+ }
134
+
135
+ /**
136
+ * Create an intent to update a policy. The intent must be authorized by the policy
137
+ * owner before it can be executed.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * const policyIntentResponse =
142
+ * await client.intents.updatePolicy('policy_id');
143
+ * ```
144
+ */
145
+ updatePolicy(
146
+ policyID: string,
147
+ body: IntentUpdatePolicyParams,
148
+ options?: RequestOptions,
149
+ ): APIPromise<PolicyIntentResponse> {
150
+ return this._client.patch(path`/v1/intents/policies/${policyID}`, { body, ...options });
151
+ }
152
+
153
+ /**
154
+ * Create an intent to update a rule on a policy. The intent must be authorized by
155
+ * the policy owner before it can be executed.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * const ruleIntentResponse =
160
+ * await client.intents.updatePolicyRule('rule_id', {
161
+ * policy_id: 'policy_id',
162
+ * action: 'ALLOW',
163
+ * conditions: [
164
+ * {
165
+ * field: 'to',
166
+ * field_source: 'ethereum_transaction',
167
+ * operator: 'eq',
168
+ * value: 'string',
169
+ * },
170
+ * ],
171
+ * method: 'eth_sendTransaction',
172
+ * name: 'x',
173
+ * });
174
+ * ```
175
+ */
176
+ updatePolicyRule(
177
+ ruleID: string,
178
+ params: IntentUpdatePolicyRuleParams,
179
+ options?: RequestOptions,
180
+ ): APIPromise<RuleIntentResponse> {
181
+ const { policy_id, ...body } = params;
182
+ return this._client.patch(path`/v1/intents/policies/${policy_id}/rules/${ruleID}`, { body, ...options });
183
+ }
184
+
185
+ /**
186
+ * Create an intent to update a wallet. The intent must be authorized by the wallet
187
+ * owner before it can be executed.
188
+ *
189
+ * @example
190
+ * ```ts
191
+ * const walletIntentResponse =
192
+ * await client.intents.updateWallet('wallet_id');
193
+ * ```
194
+ */
195
+ updateWallet(
196
+ walletID: string,
197
+ body: IntentUpdateWalletParams,
198
+ options?: RequestOptions,
199
+ ): APIPromise<WalletIntentResponse> {
200
+ return this._client.patch(path`/v1/intents/wallets/${walletID}`, { body, ...options });
201
+ }
202
+ }
203
+
204
+ export type IntentResponsesCursor = Cursor<IntentResponse>;
205
+
206
+ /**
207
+ * Type of intent.
208
+ */
209
+ export type IntentType = 'KEY_QUORUM' | 'POLICY' | 'RULE' | 'RPC' | 'WALLET';
210
+
211
+ /**
212
+ * Current status of an intent.
213
+ */
214
+ export type IntentStatus = 'pending' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed';
215
+
216
+ /**
217
+ * The original rule request. Method is POST (create), PATCH (update), or DELETE
218
+ * (delete)
219
+ */
220
+ export type RuleIntentRequestDetails =
221
+ | RuleIntentRequestDetails.UnionMember0
222
+ | RuleIntentRequestDetails.UnionMember1
223
+ | RuleIntentRequestDetails.UnionMember2;
224
+
225
+ export namespace RuleIntentRequestDetails {
226
+ export interface UnionMember0 {
227
+ body: UnionMember0.Body;
228
+
229
+ method: 'POST';
230
+
231
+ url: string;
232
+ }
233
+
234
+ export namespace UnionMember0 {
235
+ export interface Body {
236
+ action: 'ALLOW' | 'DENY';
237
+
238
+ conditions: Array<
239
+ | Body.UnionMember0
240
+ | Body.UnionMember1
241
+ | Body.UnionMember2
242
+ | Body.UnionMember3
243
+ | Body.UnionMember4
244
+ | Body.UnionMember5
245
+ | Body.UnionMember6
246
+ | Body.UnionMember7
247
+ | Body.UnionMember8
248
+ | Body.UnionMember9
249
+ | Body.UnionMember10
250
+ | Body.UnionMember11
251
+ | Body.UnionMember12
252
+ | Body.UnionMember13
253
+ >;
254
+
255
+ method:
256
+ | 'eth_sendTransaction'
257
+ | 'eth_signTransaction'
258
+ | 'eth_signTypedData_v4'
259
+ | 'eth_signUserOperation'
260
+ | 'eth_sign7702Authorization'
261
+ | 'signTransaction'
262
+ | 'signAndSendTransaction'
263
+ | 'signTransactionBytes'
264
+ | 'exportPrivateKey'
265
+ | '*';
266
+
267
+ name: string;
268
+ }
269
+
270
+ export namespace Body {
271
+ export interface UnionMember0 {
272
+ field: 'to' | 'value' | 'chain_id';
273
+
274
+ field_source: 'ethereum_transaction';
275
+
276
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
277
+
278
+ value: string | Array<string>;
279
+ }
280
+
281
+ export interface UnionMember1 {
282
+ abi: Array<UnionMember1.Abi>;
283
+
284
+ field: string;
285
+
286
+ field_source: 'ethereum_calldata';
287
+
288
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
289
+
290
+ value: string | Array<string>;
291
+ }
292
+
293
+ export namespace UnionMember1 {
294
+ export interface Abi {
295
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
296
+
297
+ anonymous?: boolean;
298
+
299
+ inputs?: Array<Abi.Input>;
300
+
301
+ name?: string;
302
+
303
+ outputs?: Array<Abi.Output>;
304
+
305
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
306
+ }
307
+
308
+ export namespace Abi {
309
+ export interface Input {
310
+ type: string;
311
+
312
+ components?: Array<unknown>;
313
+
314
+ indexed?: boolean;
315
+
316
+ internalType?: string;
317
+
318
+ name?: string;
319
+ }
320
+
321
+ export interface Output {
322
+ type: string;
323
+
324
+ components?: Array<unknown>;
325
+
326
+ indexed?: boolean;
327
+
328
+ internalType?: string;
329
+
330
+ name?: string;
331
+ }
332
+ }
333
+ }
334
+
335
+ export interface UnionMember2 {
336
+ field: 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract';
337
+
338
+ field_source: 'ethereum_typed_data_domain';
339
+
340
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
341
+
342
+ value: string | Array<string>;
343
+ }
344
+
345
+ export interface UnionMember3 {
346
+ field: string;
347
+
348
+ field_source: 'ethereum_typed_data_message';
349
+
350
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
351
+
352
+ typed_data: UnionMember3.TypedData;
353
+
354
+ value: string | Array<string>;
355
+ }
356
+
357
+ export namespace UnionMember3 {
358
+ export interface TypedData {
359
+ primary_type: string;
360
+
361
+ types: { [key: string]: Array<TypedData.Type> };
362
+ }
363
+
364
+ export namespace TypedData {
365
+ export interface Type {
366
+ name: string;
367
+
368
+ type: string;
369
+ }
370
+ }
371
+ }
372
+
373
+ export interface UnionMember4 {
374
+ field: 'contract';
375
+
376
+ field_source: 'ethereum_7702_authorization';
377
+
378
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
379
+
380
+ value: string | Array<string>;
381
+ }
382
+
383
+ export interface UnionMember5 {
384
+ field: 'programId';
385
+
386
+ field_source: 'solana_program_instruction';
387
+
388
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
389
+
390
+ value: string | Array<string>;
391
+ }
392
+
393
+ export interface UnionMember6 {
394
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
395
+
396
+ field_source: 'solana_system_program_instruction';
397
+
398
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
399
+
400
+ value: string | Array<string>;
401
+ }
402
+
403
+ export interface UnionMember7 {
404
+ field:
405
+ | 'instructionName'
406
+ | 'Transfer.source'
407
+ | 'Transfer.destination'
408
+ | 'Transfer.authority'
409
+ | 'Transfer.amount'
410
+ | 'TransferChecked.source'
411
+ | 'TransferChecked.destination'
412
+ | 'TransferChecked.authority'
413
+ | 'TransferChecked.amount'
414
+ | 'TransferChecked.mint'
415
+ | 'Burn.account'
416
+ | 'Burn.mint'
417
+ | 'Burn.authority'
418
+ | 'Burn.amount'
419
+ | 'MintTo.mint'
420
+ | 'MintTo.account'
421
+ | 'MintTo.authority'
422
+ | 'MintTo.amount'
423
+ | 'CloseAccount.account'
424
+ | 'CloseAccount.destination'
425
+ | 'CloseAccount.authority'
426
+ | 'InitializeAccount3.account'
427
+ | 'InitializeAccount3.mint'
428
+ | 'InitializeAccount3.owner';
429
+
430
+ field_source: 'solana_token_program_instruction';
431
+
432
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
433
+
434
+ value: string | Array<string>;
435
+ }
436
+
437
+ export interface UnionMember8 {
438
+ field:
439
+ | 'TransferContract.to_address'
440
+ | 'TransferContract.amount'
441
+ | 'TriggerSmartContract.contract_address'
442
+ | 'TriggerSmartContract.call_value'
443
+ | 'TriggerSmartContract.token_id'
444
+ | 'TriggerSmartContract.call_token_value';
445
+
446
+ field_source: 'tron_transaction';
447
+
448
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
449
+
450
+ value: string | Array<string>;
451
+ }
452
+
453
+ export interface UnionMember9 {
454
+ field: 'current_unix_timestamp';
455
+
456
+ field_source: 'system';
457
+
458
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
459
+
460
+ value: string | Array<string>;
461
+ }
462
+
463
+ export interface UnionMember10 {
464
+ field: string;
465
+
466
+ field_source: 'reference';
467
+
468
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
469
+
470
+ value: string | Array<string>;
471
+ }
472
+
473
+ export interface UnionMember11 {
474
+ abi: Array<UnionMember11.Abi>;
475
+
476
+ field: string;
477
+
478
+ field_source: 'tron_trigger_smart_contract_data';
479
+
480
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
481
+
482
+ value: string | Array<string>;
483
+ }
484
+
485
+ export namespace UnionMember11 {
486
+ export interface Abi {
487
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
488
+
489
+ anonymous?: boolean;
490
+
491
+ inputs?: Array<Abi.Input>;
492
+
493
+ name?: string;
494
+
495
+ outputs?: Array<Abi.Output>;
496
+
497
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
498
+ }
499
+
500
+ export namespace Abi {
501
+ export interface Input {
502
+ type: string;
503
+
504
+ components?: Array<unknown>;
505
+
506
+ indexed?: boolean;
507
+
508
+ internalType?: string;
509
+
510
+ name?: string;
511
+ }
512
+
513
+ export interface Output {
514
+ type: string;
515
+
516
+ components?: Array<unknown>;
517
+
518
+ indexed?: boolean;
519
+
520
+ internalType?: string;
521
+
522
+ name?: string;
523
+ }
524
+ }
525
+ }
526
+
527
+ export interface UnionMember12 {
528
+ field: 'commandName';
529
+
530
+ field_source: 'sui_transaction_command';
531
+
532
+ operator: 'eq' | 'in';
533
+
534
+ /**
535
+ * SUI transaction commands allowlist for raw_sign endpoint policy evaluation
536
+ */
537
+ value: WalletsAPI.SuiCommandName | Array<WalletsAPI.SuiCommandName>;
538
+ }
539
+
540
+ export interface UnionMember13 {
541
+ field: 'recipient' | 'amount';
542
+
543
+ field_source: 'sui_transfer_objects_command';
544
+
545
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
546
+
547
+ value: string | Array<string>;
548
+ }
549
+ }
550
+ }
551
+
552
+ export interface UnionMember1 {
553
+ body: UnionMember1.Body;
554
+
555
+ method: 'PATCH';
556
+
557
+ url: string;
558
+ }
559
+
560
+ export namespace UnionMember1 {
561
+ export interface Body {
562
+ action: 'ALLOW' | 'DENY';
563
+
564
+ conditions: Array<
565
+ | Body.UnionMember0
566
+ | Body.UnionMember1
567
+ | Body.UnionMember2
568
+ | Body.UnionMember3
569
+ | Body.UnionMember4
570
+ | Body.UnionMember5
571
+ | Body.UnionMember6
572
+ | Body.UnionMember7
573
+ | Body.UnionMember8
574
+ | Body.UnionMember9
575
+ | Body.UnionMember10
576
+ | Body.UnionMember11
577
+ | Body.UnionMember12
578
+ | Body.UnionMember13
579
+ >;
580
+
581
+ method:
582
+ | 'eth_sendTransaction'
583
+ | 'eth_signTransaction'
584
+ | 'eth_signTypedData_v4'
585
+ | 'eth_signUserOperation'
586
+ | 'eth_sign7702Authorization'
587
+ | 'signTransaction'
588
+ | 'signAndSendTransaction'
589
+ | 'signTransactionBytes'
590
+ | 'exportPrivateKey'
591
+ | '*';
592
+
593
+ name: string;
594
+ }
595
+
596
+ export namespace Body {
597
+ export interface UnionMember0 {
598
+ field: 'to' | 'value' | 'chain_id';
599
+
600
+ field_source: 'ethereum_transaction';
601
+
602
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
603
+
604
+ value: string | Array<string>;
605
+ }
606
+
607
+ export interface UnionMember1 {
608
+ abi: Array<UnionMember1.Abi>;
609
+
610
+ field: string;
611
+
612
+ field_source: 'ethereum_calldata';
613
+
614
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
615
+
616
+ value: string | Array<string>;
617
+ }
618
+
619
+ export namespace UnionMember1 {
620
+ export interface Abi {
621
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
622
+
623
+ anonymous?: boolean;
624
+
625
+ inputs?: Array<Abi.Input>;
626
+
627
+ name?: string;
628
+
629
+ outputs?: Array<Abi.Output>;
630
+
631
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
632
+ }
633
+
634
+ export namespace Abi {
635
+ export interface Input {
636
+ type: string;
637
+
638
+ components?: Array<unknown>;
639
+
640
+ indexed?: boolean;
641
+
642
+ internalType?: string;
643
+
644
+ name?: string;
645
+ }
646
+
647
+ export interface Output {
648
+ type: string;
649
+
650
+ components?: Array<unknown>;
651
+
652
+ indexed?: boolean;
653
+
654
+ internalType?: string;
655
+
656
+ name?: string;
657
+ }
658
+ }
659
+ }
660
+
661
+ export interface UnionMember2 {
662
+ field: 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract';
663
+
664
+ field_source: 'ethereum_typed_data_domain';
665
+
666
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
667
+
668
+ value: string | Array<string>;
669
+ }
670
+
671
+ export interface UnionMember3 {
672
+ field: string;
673
+
674
+ field_source: 'ethereum_typed_data_message';
675
+
676
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
677
+
678
+ typed_data: UnionMember3.TypedData;
679
+
680
+ value: string | Array<string>;
681
+ }
682
+
683
+ export namespace UnionMember3 {
684
+ export interface TypedData {
685
+ primary_type: string;
686
+
687
+ types: { [key: string]: Array<TypedData.Type> };
688
+ }
689
+
690
+ export namespace TypedData {
691
+ export interface Type {
692
+ name: string;
693
+
694
+ type: string;
695
+ }
696
+ }
697
+ }
698
+
699
+ export interface UnionMember4 {
700
+ field: 'contract';
701
+
702
+ field_source: 'ethereum_7702_authorization';
703
+
704
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
705
+
706
+ value: string | Array<string>;
707
+ }
708
+
709
+ export interface UnionMember5 {
710
+ field: 'programId';
711
+
712
+ field_source: 'solana_program_instruction';
713
+
714
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
715
+
716
+ value: string | Array<string>;
717
+ }
718
+
719
+ export interface UnionMember6 {
720
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
721
+
722
+ field_source: 'solana_system_program_instruction';
723
+
724
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
725
+
726
+ value: string | Array<string>;
727
+ }
728
+
729
+ export interface UnionMember7 {
730
+ field:
731
+ | 'instructionName'
732
+ | 'Transfer.source'
733
+ | 'Transfer.destination'
734
+ | 'Transfer.authority'
735
+ | 'Transfer.amount'
736
+ | 'TransferChecked.source'
737
+ | 'TransferChecked.destination'
738
+ | 'TransferChecked.authority'
739
+ | 'TransferChecked.amount'
740
+ | 'TransferChecked.mint'
741
+ | 'Burn.account'
742
+ | 'Burn.mint'
743
+ | 'Burn.authority'
744
+ | 'Burn.amount'
745
+ | 'MintTo.mint'
746
+ | 'MintTo.account'
747
+ | 'MintTo.authority'
748
+ | 'MintTo.amount'
749
+ | 'CloseAccount.account'
750
+ | 'CloseAccount.destination'
751
+ | 'CloseAccount.authority'
752
+ | 'InitializeAccount3.account'
753
+ | 'InitializeAccount3.mint'
754
+ | 'InitializeAccount3.owner';
755
+
756
+ field_source: 'solana_token_program_instruction';
757
+
758
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
759
+
760
+ value: string | Array<string>;
761
+ }
762
+
763
+ export interface UnionMember8 {
764
+ field:
765
+ | 'TransferContract.to_address'
766
+ | 'TransferContract.amount'
767
+ | 'TriggerSmartContract.contract_address'
768
+ | 'TriggerSmartContract.call_value'
769
+ | 'TriggerSmartContract.token_id'
770
+ | 'TriggerSmartContract.call_token_value';
771
+
772
+ field_source: 'tron_transaction';
773
+
774
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
775
+
776
+ value: string | Array<string>;
777
+ }
778
+
779
+ export interface UnionMember9 {
780
+ field: 'current_unix_timestamp';
781
+
782
+ field_source: 'system';
783
+
784
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
785
+
786
+ value: string | Array<string>;
787
+ }
788
+
789
+ export interface UnionMember10 {
790
+ field: string;
791
+
792
+ field_source: 'reference';
793
+
794
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
795
+
796
+ value: string | Array<string>;
797
+ }
798
+
799
+ export interface UnionMember11 {
800
+ abi: Array<UnionMember11.Abi>;
801
+
802
+ field: string;
803
+
804
+ field_source: 'tron_trigger_smart_contract_data';
805
+
806
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
807
+
808
+ value: string | Array<string>;
809
+ }
810
+
811
+ export namespace UnionMember11 {
812
+ export interface Abi {
813
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
814
+
815
+ anonymous?: boolean;
816
+
817
+ inputs?: Array<Abi.Input>;
818
+
819
+ name?: string;
820
+
821
+ outputs?: Array<Abi.Output>;
822
+
823
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
824
+ }
825
+
826
+ export namespace Abi {
827
+ export interface Input {
828
+ type: string;
829
+
830
+ components?: Array<unknown>;
831
+
832
+ indexed?: boolean;
833
+
834
+ internalType?: string;
835
+
836
+ name?: string;
837
+ }
838
+
839
+ export interface Output {
840
+ type: string;
841
+
842
+ components?: Array<unknown>;
843
+
844
+ indexed?: boolean;
845
+
846
+ internalType?: string;
847
+
848
+ name?: string;
849
+ }
850
+ }
851
+ }
852
+
853
+ export interface UnionMember12 {
854
+ field: 'commandName';
855
+
856
+ field_source: 'sui_transaction_command';
857
+
858
+ operator: 'eq' | 'in';
859
+
860
+ /**
861
+ * SUI transaction commands allowlist for raw_sign endpoint policy evaluation
862
+ */
863
+ value: WalletsAPI.SuiCommandName | Array<WalletsAPI.SuiCommandName>;
864
+ }
865
+
866
+ export interface UnionMember13 {
867
+ field: 'recipient' | 'amount';
868
+
869
+ field_source: 'sui_transfer_objects_command';
870
+
871
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
872
+
873
+ value: string | Array<string>;
874
+ }
875
+ }
876
+ }
877
+
878
+ export interface UnionMember2 {
879
+ method: 'DELETE';
880
+
881
+ url: string;
882
+
883
+ body?: unknown;
884
+ }
885
+ }
7
886
 
8
887
  /**
9
888
  * A leaf member (user or key) of a nested key quorum in an intent authorization.
@@ -15,9 +894,9 @@ export type IntentAuthorizationKeyQuorumMember =
15
894
  export namespace IntentAuthorizationKeyQuorumMember {
16
895
  export interface UserMember {
17
896
  /**
18
- * Whether this member has signed the intent
897
+ * Unix timestamp when this member signed, or null if not yet signed.
19
898
  */
20
- has_signed: boolean;
899
+ signed_at: number | null;
21
900
 
22
901
  type: 'user';
23
902
 
@@ -25,30 +904,20 @@ export namespace IntentAuthorizationKeyQuorumMember {
25
904
  * User ID of the key quorum member
26
905
  */
27
906
  user_id: string;
28
-
29
- /**
30
- * Display name for the user (email, etc)
31
- */
32
- display_name?: string;
33
907
  }
34
908
 
35
909
  export interface KeyMember {
36
- /**
37
- * Whether this key has signed the intent
38
- */
39
- has_signed: boolean;
40
-
41
910
  /**
42
911
  * Public key of the key quorum member
43
912
  */
44
913
  public_key: string;
45
914
 
46
- type: 'key';
47
-
48
915
  /**
49
- * Display name for the key (if any)
916
+ * Unix timestamp when this member signed, or null if not yet signed.
50
917
  */
51
- display_name?: string;
918
+ signed_at: number | null;
919
+
920
+ type: 'key';
52
921
  }
53
922
  }
54
923
 
@@ -64,9 +933,9 @@ export type IntentAuthorizationMember =
64
933
  export namespace IntentAuthorizationMember {
65
934
  export interface UserMember {
66
935
  /**
67
- * Whether this member has signed the intent
936
+ * Unix timestamp when this member signed, or null if not yet signed.
68
937
  */
69
- has_signed: boolean;
938
+ signed_at: number | null;
70
939
 
71
940
  type: 'user';
72
941
 
@@ -74,38 +943,23 @@ export namespace IntentAuthorizationMember {
74
943
  * User ID of the key quorum member
75
944
  */
76
945
  user_id: string;
946
+ }
77
947
 
948
+ export interface KeyMember {
78
949
  /**
79
- * Display name for the user (email, etc)
950
+ * Public key of the key quorum member
80
951
  */
81
- display_name?: string;
82
- }
83
-
84
- export interface KeyMember {
85
- /**
86
- * Whether this key has signed the intent
87
- */
88
- has_signed: boolean;
952
+ public_key: string;
89
953
 
90
954
  /**
91
- * Public key of the key quorum member
955
+ * Unix timestamp when this member signed, or null if not yet signed.
92
956
  */
93
- public_key: string;
957
+ signed_at: number | null;
94
958
 
95
959
  type: 'key';
96
-
97
- /**
98
- * Display name for the key (if any)
99
- */
100
- display_name?: string;
101
960
  }
102
961
 
103
962
  export interface KeyQuorumMember {
104
- /**
105
- * Whether this child key quorum has fulfilled its threshold
106
- */
107
- has_signed: boolean;
108
-
109
963
  /**
110
964
  * ID of the child key quorum member
111
965
  */
@@ -121,6 +975,11 @@ export namespace IntentAuthorizationMember {
121
975
  */
122
976
  threshold: number;
123
977
 
978
+ /**
979
+ * Whether this child key quorum has met its signature threshold
980
+ */
981
+ threshold_met: boolean;
982
+
124
983
  type: 'key_quorum';
125
984
 
126
985
  /**
@@ -130,9 +989,3689 @@ export namespace IntentAuthorizationMember {
130
989
  }
131
990
  }
132
991
 
992
+ /**
993
+ * Authorization quorum for an intent
994
+ */
995
+ export interface IntentAuthorization {
996
+ /**
997
+ * Members in this authorization quorum
998
+ */
999
+ members: Array<IntentAuthorizationMember>;
1000
+
1001
+ /**
1002
+ * Number of signatures required to satisfy this quorum
1003
+ */
1004
+ threshold: number;
1005
+
1006
+ /**
1007
+ * Display name of the key quorum
1008
+ */
1009
+ display_name?: string;
1010
+ }
1011
+
1012
+ /**
1013
+ * Common fields for intent action execution results.
1014
+ */
1015
+ export interface BaseActionResult {
1016
+ /**
1017
+ * Unix timestamp when the action was executed
1018
+ */
1019
+ executed_at: number;
1020
+
1021
+ /**
1022
+ * HTTP status code from the action execution
1023
+ */
1024
+ status_code: number;
1025
+
1026
+ /**
1027
+ * Display name of the key quorum that authorized execution
1028
+ */
1029
+ authorized_by_display_name?: string;
1030
+
1031
+ /**
1032
+ * ID of the key quorum that authorized execution
1033
+ */
1034
+ authorized_by_id?: string;
1035
+ }
1036
+
1037
+ /**
1038
+ * Response for an RPC intent
1039
+ */
1040
+ export interface RpcIntentResponse {
1041
+ /**
1042
+ * Detailed authorization information including key quorum members, thresholds, and
1043
+ * signature status
1044
+ */
1045
+ authorization_details: Array<IntentAuthorization>;
1046
+
1047
+ /**
1048
+ * Unix timestamp when the intent was created
1049
+ */
1050
+ created_at: number;
1051
+
1052
+ /**
1053
+ * Display name of the user who created the intent
1054
+ */
1055
+ created_by_display_name: string;
1056
+
1057
+ /**
1058
+ * Unix timestamp when the intent expires
1059
+ */
1060
+ expires_at: number;
1061
+
1062
+ /**
1063
+ * Unique ID for the intent
1064
+ */
1065
+ intent_id: string;
1066
+
1067
+ intent_type: 'RPC';
1068
+
1069
+ /**
1070
+ * The original RPC request that would be sent to the wallet endpoint
1071
+ */
1072
+ request_details: RpcIntentResponse.RequestDetails;
1073
+
1074
+ /**
1075
+ * ID of the resource being modified (wallet_id, policy_id, etc)
1076
+ */
1077
+ resource_id: string;
1078
+
1079
+ /**
1080
+ * Current status of an intent.
1081
+ */
1082
+ status: IntentStatus;
1083
+
1084
+ /**
1085
+ * Result of RPC execution (only present if status is 'executed' or 'failed')
1086
+ */
1087
+ action_result?: BaseActionResult;
1088
+
1089
+ /**
1090
+ * ID of the user who created the intent. If undefined, the intent was created
1091
+ * using the app secret
1092
+ */
1093
+ created_by_id?: string;
1094
+
1095
+ /**
1096
+ * Current state of the wallet before any changes. If undefined, the resource was
1097
+ * deleted and no longer exists
1098
+ */
1099
+ current_resource_data?: RpcIntentResponse.CurrentResourceData;
1100
+
1101
+ /**
1102
+ * Human-readable reason for dismissal, present when status is 'dismissed'
1103
+ */
1104
+ dismissal_reason?: string;
1105
+
1106
+ /**
1107
+ * Unix timestamp when the intent was dismissed, present when status is 'dismissed'
1108
+ */
1109
+ dismissed_at?: number;
1110
+
1111
+ /**
1112
+ * Unix timestamp when the intent was rejected, present when status is 'rejected'
1113
+ */
1114
+ rejected_at?: number;
1115
+ }
1116
+
1117
+ export namespace RpcIntentResponse {
1118
+ /**
1119
+ * The original RPC request that would be sent to the wallet endpoint
1120
+ */
1121
+ export interface RequestDetails {
1122
+ body:
1123
+ | RequestDetails.UnionMember0
1124
+ | RequestDetails.UnionMember1
1125
+ | RequestDetails.UnionMember2
1126
+ | RequestDetails.UnionMember3
1127
+ | RequestDetails.UnionMember4
1128
+ | RequestDetails.UnionMember5
1129
+ | RequestDetails.UnionMember6
1130
+ | RequestDetails.UnionMember7
1131
+ | RequestDetails.UnionMember8
1132
+ | RequestDetails.UnionMember9
1133
+ | RequestDetails.UnionMember10
1134
+ | RequestDetails.UnionMember11
1135
+ | RequestDetails.UnionMember12
1136
+ | RequestDetails.UnionMember13
1137
+ | RequestDetails.UnionMember14
1138
+ | RequestDetails.UnionMember15
1139
+ | RequestDetails.UnionMember16
1140
+ | RequestDetails.UnionMember17
1141
+ | RequestDetails.UnionMember18
1142
+ | RequestDetails.UnionMember19;
1143
+
1144
+ method: 'POST';
1145
+
1146
+ url: string;
1147
+ }
1148
+
1149
+ export namespace RequestDetails {
1150
+ export interface UnionMember0 {
1151
+ method: 'eth_signTransaction';
1152
+
1153
+ params: UnionMember0.Params;
1154
+
1155
+ address?: string;
1156
+
1157
+ chain_type?: 'ethereum';
1158
+
1159
+ wallet_id?: string;
1160
+ }
1161
+
1162
+ export namespace UnionMember0 {
1163
+ export interface Params {
1164
+ transaction: Params.Transaction;
1165
+ }
1166
+
1167
+ export namespace Params {
1168
+ export interface Transaction {
1169
+ authorization_list?: Array<Transaction.AuthorizationList>;
1170
+
1171
+ chain_id?: string | number;
1172
+
1173
+ data?: string;
1174
+
1175
+ from?: string;
1176
+
1177
+ gas_limit?: string | number;
1178
+
1179
+ gas_price?: string | number;
1180
+
1181
+ max_fee_per_gas?: string | number;
1182
+
1183
+ max_priority_fee_per_gas?: string | number;
1184
+
1185
+ nonce?: string | number;
1186
+
1187
+ to?: string;
1188
+
1189
+ type?: 0 | 1 | 2 | 4;
1190
+
1191
+ value?: string | number;
1192
+ }
1193
+
1194
+ export namespace Transaction {
1195
+ export interface AuthorizationList {
1196
+ chain_id: string | number;
1197
+
1198
+ contract: string;
1199
+
1200
+ nonce: string | number;
1201
+
1202
+ r: string;
1203
+
1204
+ s: string;
1205
+
1206
+ y_parity: number;
1207
+ }
1208
+ }
1209
+ }
1210
+ }
1211
+
1212
+ export interface UnionMember1 {
1213
+ caip2: string;
1214
+
1215
+ method: 'eth_sendTransaction';
1216
+
1217
+ params: UnionMember1.Params;
1218
+
1219
+ address?: string;
1220
+
1221
+ chain_type?: 'ethereum';
1222
+
1223
+ sponsor?: boolean;
1224
+
1225
+ wallet_id?: string;
1226
+ }
1227
+
1228
+ export namespace UnionMember1 {
1229
+ export interface Params {
1230
+ transaction: Params.Transaction;
1231
+ }
1232
+
1233
+ export namespace Params {
1234
+ export interface Transaction {
1235
+ authorization_list?: Array<Transaction.AuthorizationList>;
1236
+
1237
+ chain_id?: string | number;
1238
+
1239
+ data?: string;
1240
+
1241
+ from?: string;
1242
+
1243
+ gas_limit?: string | number;
1244
+
1245
+ gas_price?: string | number;
1246
+
1247
+ max_fee_per_gas?: string | number;
1248
+
1249
+ max_priority_fee_per_gas?: string | number;
1250
+
1251
+ nonce?: string | number;
1252
+
1253
+ to?: string;
1254
+
1255
+ type?: 0 | 1 | 2 | 4;
1256
+
1257
+ value?: string | number;
1258
+ }
1259
+
1260
+ export namespace Transaction {
1261
+ export interface AuthorizationList {
1262
+ chain_id: string | number;
1263
+
1264
+ contract: string;
1265
+
1266
+ nonce: string | number;
1267
+
1268
+ r: string;
1269
+
1270
+ s: string;
1271
+
1272
+ y_parity: number;
1273
+ }
1274
+ }
1275
+ }
1276
+ }
1277
+
1278
+ export interface UnionMember2 {
1279
+ method: 'personal_sign';
1280
+
1281
+ params: UnionMember2.Params;
1282
+
1283
+ address?: string;
1284
+
1285
+ chain_type?: 'ethereum';
1286
+
1287
+ wallet_id?: string;
1288
+ }
1289
+
1290
+ export namespace UnionMember2 {
1291
+ export interface Params {
1292
+ encoding: 'utf-8' | 'hex';
1293
+
1294
+ message: string;
1295
+ }
1296
+ }
1297
+
1298
+ export interface UnionMember3 {
1299
+ method: 'eth_signTypedData_v4';
1300
+
1301
+ params: UnionMember3.Params;
1302
+
1303
+ address?: string;
1304
+
1305
+ chain_type?: 'ethereum';
1306
+
1307
+ wallet_id?: string;
1308
+ }
1309
+
1310
+ export namespace UnionMember3 {
1311
+ export interface Params {
1312
+ typed_data: Params.TypedData;
1313
+ }
1314
+
1315
+ export namespace Params {
1316
+ export interface TypedData {
1317
+ domain: { [key: string]: unknown };
1318
+
1319
+ message: { [key: string]: unknown };
1320
+
1321
+ primary_type: string;
1322
+
1323
+ types: { [key: string]: Array<TypedData.Type> };
1324
+ }
1325
+
1326
+ export namespace TypedData {
1327
+ export interface Type {
1328
+ name: string;
1329
+
1330
+ type: string;
1331
+ }
1332
+ }
1333
+ }
1334
+ }
1335
+
1336
+ export interface UnionMember4 {
1337
+ method: 'secp256k1_sign';
1338
+
1339
+ params: UnionMember4.Params;
1340
+
1341
+ address?: string;
1342
+
1343
+ chain_type?: 'ethereum';
1344
+
1345
+ wallet_id?: string;
1346
+ }
1347
+
1348
+ export namespace UnionMember4 {
1349
+ export interface Params {
1350
+ hash: string;
1351
+ }
1352
+ }
1353
+
1354
+ export interface UnionMember5 {
1355
+ method: 'eth_sign7702Authorization';
1356
+
1357
+ params: UnionMember5.Params;
1358
+
1359
+ address?: string;
1360
+
1361
+ chain_type?: 'ethereum';
1362
+
1363
+ wallet_id?: string;
1364
+ }
1365
+
1366
+ export namespace UnionMember5 {
1367
+ export interface Params {
1368
+ chain_id: string | number;
1369
+
1370
+ contract: string;
1371
+
1372
+ nonce?: string | number;
1373
+ }
1374
+ }
1375
+
1376
+ export interface UnionMember6 {
1377
+ method: 'eth_signUserOperation';
1378
+
1379
+ params: UnionMember6.Params;
1380
+
1381
+ address?: string;
1382
+
1383
+ chain_type?: 'ethereum';
1384
+
1385
+ wallet_id?: string;
1386
+ }
1387
+
1388
+ export namespace UnionMember6 {
1389
+ export interface Params {
1390
+ chain_id: string | number;
1391
+
1392
+ contract: string;
1393
+
1394
+ user_operation: Params.UserOperation;
1395
+ }
1396
+
1397
+ export namespace Params {
1398
+ export interface UserOperation {
1399
+ call_data: string;
1400
+
1401
+ call_gas_limit: string;
1402
+
1403
+ max_fee_per_gas: string;
1404
+
1405
+ max_priority_fee_per_gas: string;
1406
+
1407
+ nonce: string;
1408
+
1409
+ paymaster: string;
1410
+
1411
+ paymaster_data: string;
1412
+
1413
+ paymaster_post_op_gas_limit: string;
1414
+
1415
+ paymaster_verification_gas_limit: string;
1416
+
1417
+ pre_verification_gas: string;
1418
+
1419
+ sender: string;
1420
+
1421
+ verification_gas_limit: string;
1422
+ }
1423
+ }
1424
+ }
1425
+
1426
+ export interface UnionMember7 {
1427
+ method: 'signTransaction';
1428
+
1429
+ params: UnionMember7.Params;
1430
+
1431
+ address?: string;
1432
+
1433
+ chain_type?: 'solana';
1434
+
1435
+ wallet_id?: string;
1436
+ }
1437
+
1438
+ export namespace UnionMember7 {
1439
+ export interface Params {
1440
+ encoding: 'base64';
1441
+
1442
+ transaction: string;
1443
+ }
1444
+ }
1445
+
1446
+ export interface UnionMember8 {
1447
+ caip2: string;
1448
+
1449
+ method: 'signAndSendTransaction';
1450
+
1451
+ params: UnionMember8.Params;
1452
+
1453
+ address?: string;
1454
+
1455
+ chain_type?: 'solana';
1456
+
1457
+ sponsor?: boolean;
1458
+
1459
+ wallet_id?: string;
1460
+ }
1461
+
1462
+ export namespace UnionMember8 {
1463
+ export interface Params {
1464
+ encoding: 'base64';
1465
+
1466
+ transaction: string;
1467
+ }
1468
+ }
1469
+
1470
+ export interface UnionMember9 {
1471
+ method: 'signMessage';
1472
+
1473
+ params: UnionMember9.Params;
1474
+
1475
+ address?: string;
1476
+
1477
+ chain_type?: 'solana';
1478
+
1479
+ wallet_id?: string;
1480
+ }
1481
+
1482
+ export namespace UnionMember9 {
1483
+ export interface Params {
1484
+ encoding: 'base64';
1485
+
1486
+ message: string;
1487
+ }
1488
+ }
1489
+
1490
+ export interface UnionMember10 {
1491
+ address: string;
1492
+
1493
+ method: 'exportPrivateKey';
1494
+
1495
+ params: UnionMember10.Params;
1496
+ }
1497
+
1498
+ export namespace UnionMember10 {
1499
+ export interface Params {
1500
+ encryption_type: 'HPKE';
1501
+
1502
+ recipient_public_key: string;
1503
+
1504
+ export_type?: 'display' | 'client';
1505
+ }
1506
+ }
1507
+
1508
+ export interface UnionMember11 {
1509
+ method: 'transfer';
1510
+
1511
+ params: UnionMember11.Params;
1512
+
1513
+ network?: 'MAINNET' | 'REGTEST';
1514
+ }
1515
+
1516
+ export namespace UnionMember11 {
1517
+ export interface Params {
1518
+ amount_sats: number;
1519
+
1520
+ receiver_spark_address: string;
1521
+ }
1522
+ }
1523
+
1524
+ export interface UnionMember12 {
1525
+ method: 'getBalance';
1526
+
1527
+ network?: 'MAINNET' | 'REGTEST';
1528
+ }
1529
+
1530
+ export interface UnionMember13 {
1531
+ method: 'transferTokens';
1532
+
1533
+ params: UnionMember13.Params;
1534
+
1535
+ network?: 'MAINNET' | 'REGTEST';
1536
+ }
1537
+
1538
+ export namespace UnionMember13 {
1539
+ export interface Params {
1540
+ receiver_spark_address: string;
1541
+
1542
+ token_amount: number;
1543
+
1544
+ token_identifier: string;
1545
+
1546
+ output_selection_strategy?: 'SMALL_FIRST' | 'LARGE_FIRST';
1547
+
1548
+ selected_outputs?: Array<Params.SelectedOutput>;
1549
+ }
1550
+
1551
+ export namespace Params {
1552
+ export interface SelectedOutput {
1553
+ previous_transaction_hash: string;
1554
+
1555
+ previous_transaction_vout: number;
1556
+
1557
+ output?: SelectedOutput.Output;
1558
+ }
1559
+
1560
+ export namespace SelectedOutput {
1561
+ export interface Output {
1562
+ owner_public_key: string;
1563
+
1564
+ token_amount: string;
1565
+
1566
+ id?: string;
1567
+
1568
+ revocation_commitment?: string;
1569
+
1570
+ token_identifier?: string;
1571
+
1572
+ token_public_key?: string;
1573
+
1574
+ withdraw_bond_sats?: number;
1575
+
1576
+ withdraw_relative_block_locktime?: number;
1577
+ }
1578
+ }
1579
+ }
1580
+ }
1581
+
1582
+ export interface UnionMember14 {
1583
+ method: 'getStaticDepositAddress';
1584
+
1585
+ network?: 'MAINNET' | 'REGTEST';
1586
+ }
1587
+
1588
+ export interface UnionMember15 {
1589
+ method: 'getClaimStaticDepositQuote';
1590
+
1591
+ params: UnionMember15.Params;
1592
+
1593
+ network?: 'MAINNET' | 'REGTEST';
1594
+ }
1595
+
1596
+ export namespace UnionMember15 {
1597
+ export interface Params {
1598
+ transaction_id: string;
1599
+
1600
+ output_index?: number;
1601
+ }
1602
+ }
1603
+
1604
+ export interface UnionMember16 {
1605
+ method: 'claimStaticDeposit';
1606
+
1607
+ params: UnionMember16.Params;
1608
+
1609
+ network?: 'MAINNET' | 'REGTEST';
1610
+ }
1611
+
1612
+ export namespace UnionMember16 {
1613
+ export interface Params {
1614
+ credit_amount_sats: number;
1615
+
1616
+ signature: string;
1617
+
1618
+ transaction_id: string;
1619
+
1620
+ output_index?: number;
1621
+ }
1622
+ }
1623
+
1624
+ export interface UnionMember17 {
1625
+ method: 'createLightningInvoice';
1626
+
1627
+ params: UnionMember17.Params;
1628
+
1629
+ network?: 'MAINNET' | 'REGTEST';
1630
+ }
1631
+
1632
+ export namespace UnionMember17 {
1633
+ export interface Params {
1634
+ amount_sats: number;
1635
+
1636
+ description_hash?: string;
1637
+
1638
+ expiry_seconds?: number;
1639
+
1640
+ include_spark_address?: boolean;
1641
+
1642
+ memo?: string;
1643
+
1644
+ receiver_identity_pubkey?: string;
1645
+ }
1646
+ }
1647
+
1648
+ export interface UnionMember18 {
1649
+ method: 'payLightningInvoice';
1650
+
1651
+ params: UnionMember18.Params;
1652
+
1653
+ network?: 'MAINNET' | 'REGTEST';
1654
+ }
1655
+
1656
+ export namespace UnionMember18 {
1657
+ export interface Params {
1658
+ invoice: string;
1659
+
1660
+ max_fee_sats: number;
1661
+
1662
+ amount_sats_to_send?: number;
1663
+
1664
+ prefer_spark?: boolean;
1665
+ }
1666
+ }
1667
+
1668
+ export interface UnionMember19 {
1669
+ method: 'signMessageWithIdentityKey';
1670
+
1671
+ params: UnionMember19.Params;
1672
+
1673
+ network?: 'MAINNET' | 'REGTEST';
1674
+ }
1675
+
1676
+ export namespace UnionMember19 {
1677
+ export interface Params {
1678
+ message: string;
1679
+
1680
+ compact?: boolean;
1681
+ }
1682
+ }
1683
+ }
1684
+
1685
+ /**
1686
+ * Current state of the wallet before any changes. If undefined, the resource was
1687
+ * deleted and no longer exists
1688
+ */
1689
+ export interface CurrentResourceData {
1690
+ id: string;
1691
+
1692
+ additional_signers: Array<CurrentResourceData.AdditionalSigner>;
1693
+
1694
+ address: string;
1695
+
1696
+ /**
1697
+ * The wallet chain types.
1698
+ */
1699
+ chain_type: WalletsAPI.WalletChainType;
1700
+
1701
+ created_at: number;
1702
+
1703
+ exported_at: number | null;
1704
+
1705
+ imported_at: number | null;
1706
+
1707
+ owner_id: string | null;
1708
+
1709
+ policy_ids: Array<string>;
1710
+
1711
+ authorization_threshold?: number;
1712
+
1713
+ custodian?: CurrentResourceData.Custodian;
1714
+
1715
+ /**
1716
+ * Information about the custodian managing this wallet.
1717
+ */
1718
+ custody?: WalletsAPI.WalletCustodian;
1719
+
1720
+ public_key?: string;
1721
+ }
1722
+
1723
+ export namespace CurrentResourceData {
1724
+ export interface AdditionalSigner {
1725
+ signer_id: string;
1726
+
1727
+ override_policy_ids?: Array<string>;
1728
+ }
1729
+
1730
+ export interface Custodian {
1731
+ name: string;
1732
+ }
1733
+ }
1734
+ }
1735
+
1736
+ /**
1737
+ * Response for a wallet intent
1738
+ */
1739
+ export interface WalletIntentResponse {
1740
+ /**
1741
+ * Detailed authorization information including key quorum members, thresholds, and
1742
+ * signature status
1743
+ */
1744
+ authorization_details: Array<IntentAuthorization>;
1745
+
1746
+ /**
1747
+ * Unix timestamp when the intent was created
1748
+ */
1749
+ created_at: number;
1750
+
1751
+ /**
1752
+ * Display name of the user who created the intent
1753
+ */
1754
+ created_by_display_name: string;
1755
+
1756
+ /**
1757
+ * Unix timestamp when the intent expires
1758
+ */
1759
+ expires_at: number;
1760
+
1761
+ /**
1762
+ * Unique ID for the intent
1763
+ */
1764
+ intent_id: string;
1765
+
1766
+ intent_type: 'WALLET';
1767
+
1768
+ /**
1769
+ * The original wallet update request that would be sent to the wallet endpoint
1770
+ */
1771
+ request_details: WalletIntentResponse.RequestDetails;
1772
+
1773
+ /**
1774
+ * ID of the resource being modified (wallet_id, policy_id, etc)
1775
+ */
1776
+ resource_id: string;
1777
+
1778
+ /**
1779
+ * Current status of an intent.
1780
+ */
1781
+ status: IntentStatus;
1782
+
1783
+ /**
1784
+ * Result of wallet update execution (only present if status is 'executed' or
1785
+ * 'failed')
1786
+ */
1787
+ action_result?: BaseActionResult;
1788
+
1789
+ /**
1790
+ * ID of the user who created the intent. If undefined, the intent was created
1791
+ * using the app secret
1792
+ */
1793
+ created_by_id?: string;
1794
+
1795
+ /**
1796
+ * Current state of the wallet before any changes. If undefined, the resource was
1797
+ * deleted and no longer exists
1798
+ */
1799
+ current_resource_data?: WalletIntentResponse.CurrentResourceData;
1800
+
1801
+ /**
1802
+ * Human-readable reason for dismissal, present when status is 'dismissed'
1803
+ */
1804
+ dismissal_reason?: string;
1805
+
1806
+ /**
1807
+ * Unix timestamp when the intent was dismissed, present when status is 'dismissed'
1808
+ */
1809
+ dismissed_at?: number;
1810
+
1811
+ /**
1812
+ * Unix timestamp when the intent was rejected, present when status is 'rejected'
1813
+ */
1814
+ rejected_at?: number;
1815
+ }
1816
+
1817
+ export namespace WalletIntentResponse {
1818
+ /**
1819
+ * The original wallet update request that would be sent to the wallet endpoint
1820
+ */
1821
+ export interface RequestDetails {
1822
+ body: RequestDetails.Body;
1823
+
1824
+ method: 'PATCH';
1825
+
1826
+ url: string;
1827
+ }
1828
+
1829
+ export namespace RequestDetails {
1830
+ export interface Body {
1831
+ additional_signers?: Array<Body.AdditionalSigner>;
1832
+
1833
+ authorization_key_ids?: Array<string>;
1834
+
1835
+ authorization_threshold?: number;
1836
+
1837
+ owner?: Body.UserID | Body.PublicKey | null;
1838
+
1839
+ owner_id?: string | null;
1840
+
1841
+ policy_ids?: Array<string>;
1842
+ }
1843
+
1844
+ export namespace Body {
1845
+ export interface AdditionalSigner {
1846
+ signer_id: string;
1847
+
1848
+ override_policy_ids?: Array<string>;
1849
+ }
1850
+
1851
+ export interface UserID {
1852
+ user_id: string;
1853
+ }
1854
+
1855
+ export interface PublicKey {
1856
+ public_key: string;
1857
+ }
1858
+ }
1859
+ }
1860
+
1861
+ /**
1862
+ * Current state of the wallet before any changes. If undefined, the resource was
1863
+ * deleted and no longer exists
1864
+ */
1865
+ export interface CurrentResourceData {
1866
+ id: string;
1867
+
1868
+ additional_signers: Array<CurrentResourceData.AdditionalSigner>;
1869
+
1870
+ address: string;
1871
+
1872
+ /**
1873
+ * The wallet chain types.
1874
+ */
1875
+ chain_type: WalletsAPI.WalletChainType;
1876
+
1877
+ created_at: number;
1878
+
1879
+ exported_at: number | null;
1880
+
1881
+ imported_at: number | null;
1882
+
1883
+ owner_id: string | null;
1884
+
1885
+ policy_ids: Array<string>;
1886
+
1887
+ authorization_threshold?: number;
1888
+
1889
+ custodian?: CurrentResourceData.Custodian;
1890
+
1891
+ /**
1892
+ * Information about the custodian managing this wallet.
1893
+ */
1894
+ custody?: WalletsAPI.WalletCustodian;
1895
+
1896
+ public_key?: string;
1897
+ }
1898
+
1899
+ export namespace CurrentResourceData {
1900
+ export interface AdditionalSigner {
1901
+ signer_id: string;
1902
+
1903
+ override_policy_ids?: Array<string>;
1904
+ }
1905
+
1906
+ export interface Custodian {
1907
+ name: string;
1908
+ }
1909
+ }
1910
+ }
1911
+
1912
+ /**
1913
+ * Response for a policy intent
1914
+ */
1915
+ export interface PolicyIntentResponse {
1916
+ /**
1917
+ * Detailed authorization information including key quorum members, thresholds, and
1918
+ * signature status
1919
+ */
1920
+ authorization_details: Array<IntentAuthorization>;
1921
+
1922
+ /**
1923
+ * Unix timestamp when the intent was created
1924
+ */
1925
+ created_at: number;
1926
+
1927
+ /**
1928
+ * Display name of the user who created the intent
1929
+ */
1930
+ created_by_display_name: string;
1931
+
1932
+ /**
1933
+ * Unix timestamp when the intent expires
1934
+ */
1935
+ expires_at: number;
1936
+
1937
+ /**
1938
+ * Unique ID for the intent
1939
+ */
1940
+ intent_id: string;
1941
+
1942
+ intent_type: 'POLICY';
1943
+
1944
+ /**
1945
+ * The original policy update request that would be sent to the policy endpoint
1946
+ */
1947
+ request_details: PolicyIntentResponse.RequestDetails;
1948
+
1949
+ /**
1950
+ * ID of the resource being modified (wallet_id, policy_id, etc)
1951
+ */
1952
+ resource_id: string;
1953
+
1954
+ /**
1955
+ * Current status of an intent.
1956
+ */
1957
+ status: IntentStatus;
1958
+
1959
+ /**
1960
+ * Result of policy update execution (only present if status is 'executed' or
1961
+ * 'failed')
1962
+ */
1963
+ action_result?: BaseActionResult;
1964
+
1965
+ /**
1966
+ * ID of the user who created the intent. If undefined, the intent was created
1967
+ * using the app secret
1968
+ */
1969
+ created_by_id?: string;
1970
+
1971
+ /**
1972
+ * Current state of the policy before any changes. If undefined, the resource was
1973
+ * deleted and no longer exists
1974
+ */
1975
+ current_resource_data?: PolicyIntentResponse.CurrentResourceData;
1976
+
1977
+ /**
1978
+ * Human-readable reason for dismissal, present when status is 'dismissed'
1979
+ */
1980
+ dismissal_reason?: string;
1981
+
1982
+ /**
1983
+ * Unix timestamp when the intent was dismissed, present when status is 'dismissed'
1984
+ */
1985
+ dismissed_at?: number;
1986
+
1987
+ /**
1988
+ * Unix timestamp when the intent was rejected, present when status is 'rejected'
1989
+ */
1990
+ rejected_at?: number;
1991
+ }
1992
+
1993
+ export namespace PolicyIntentResponse {
1994
+ /**
1995
+ * The original policy update request that would be sent to the policy endpoint
1996
+ */
1997
+ export interface RequestDetails {
1998
+ body: RequestDetails.Body;
1999
+
2000
+ method: 'PATCH';
2001
+
2002
+ url: string;
2003
+ }
2004
+
2005
+ export namespace RequestDetails {
2006
+ export interface Body {
2007
+ name?: string;
2008
+
2009
+ owner?: Body.UserID | Body.PublicKey | null;
2010
+
2011
+ owner_id?: string | null;
2012
+
2013
+ rules?: Array<Body.Rule>;
2014
+ }
2015
+
2016
+ export namespace Body {
2017
+ export interface UserID {
2018
+ user_id: string;
2019
+ }
2020
+
2021
+ export interface PublicKey {
2022
+ public_key: string;
2023
+ }
2024
+
2025
+ export interface Rule {
2026
+ action: 'ALLOW' | 'DENY';
2027
+
2028
+ conditions: Array<
2029
+ | Rule.UnionMember0
2030
+ | Rule.UnionMember1
2031
+ | Rule.UnionMember2
2032
+ | Rule.UnionMember3
2033
+ | Rule.UnionMember4
2034
+ | Rule.UnionMember5
2035
+ | Rule.UnionMember6
2036
+ | Rule.UnionMember7
2037
+ | Rule.UnionMember8
2038
+ | Rule.UnionMember9
2039
+ | Rule.UnionMember10
2040
+ | Rule.UnionMember11
2041
+ | Rule.UnionMember12
2042
+ | Rule.UnionMember13
2043
+ >;
2044
+
2045
+ method:
2046
+ | 'eth_sendTransaction'
2047
+ | 'eth_signTransaction'
2048
+ | 'eth_signTypedData_v4'
2049
+ | 'eth_signUserOperation'
2050
+ | 'eth_sign7702Authorization'
2051
+ | 'signTransaction'
2052
+ | 'signAndSendTransaction'
2053
+ | 'signTransactionBytes'
2054
+ | 'exportPrivateKey'
2055
+ | '*';
2056
+
2057
+ name: string;
2058
+ }
2059
+
2060
+ export namespace Rule {
2061
+ export interface UnionMember0 {
2062
+ field: 'to' | 'value' | 'chain_id';
2063
+
2064
+ field_source: 'ethereum_transaction';
2065
+
2066
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2067
+
2068
+ value: string | Array<string>;
2069
+ }
2070
+
2071
+ export interface UnionMember1 {
2072
+ abi: Array<UnionMember1.Abi>;
2073
+
2074
+ field: string;
2075
+
2076
+ field_source: 'ethereum_calldata';
2077
+
2078
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2079
+
2080
+ value: string | Array<string>;
2081
+ }
2082
+
2083
+ export namespace UnionMember1 {
2084
+ export interface Abi {
2085
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
2086
+
2087
+ anonymous?: boolean;
2088
+
2089
+ inputs?: Array<Abi.Input>;
2090
+
2091
+ name?: string;
2092
+
2093
+ outputs?: Array<Abi.Output>;
2094
+
2095
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
2096
+ }
2097
+
2098
+ export namespace Abi {
2099
+ export interface Input {
2100
+ type: string;
2101
+
2102
+ components?: Array<unknown>;
2103
+
2104
+ indexed?: boolean;
2105
+
2106
+ internalType?: string;
2107
+
2108
+ name?: string;
2109
+ }
2110
+
2111
+ export interface Output {
2112
+ type: string;
2113
+
2114
+ components?: Array<unknown>;
2115
+
2116
+ indexed?: boolean;
2117
+
2118
+ internalType?: string;
2119
+
2120
+ name?: string;
2121
+ }
2122
+ }
2123
+ }
2124
+
2125
+ export interface UnionMember2 {
2126
+ field: 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract';
2127
+
2128
+ field_source: 'ethereum_typed_data_domain';
2129
+
2130
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2131
+
2132
+ value: string | Array<string>;
2133
+ }
2134
+
2135
+ export interface UnionMember3 {
2136
+ field: string;
2137
+
2138
+ field_source: 'ethereum_typed_data_message';
2139
+
2140
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2141
+
2142
+ typed_data: UnionMember3.TypedData;
2143
+
2144
+ value: string | Array<string>;
2145
+ }
2146
+
2147
+ export namespace UnionMember3 {
2148
+ export interface TypedData {
2149
+ primary_type: string;
2150
+
2151
+ types: { [key: string]: Array<TypedData.Type> };
2152
+ }
2153
+
2154
+ export namespace TypedData {
2155
+ export interface Type {
2156
+ name: string;
2157
+
2158
+ type: string;
2159
+ }
2160
+ }
2161
+ }
2162
+
2163
+ export interface UnionMember4 {
2164
+ field: 'contract';
2165
+
2166
+ field_source: 'ethereum_7702_authorization';
2167
+
2168
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2169
+
2170
+ value: string | Array<string>;
2171
+ }
2172
+
2173
+ export interface UnionMember5 {
2174
+ field: 'programId';
2175
+
2176
+ field_source: 'solana_program_instruction';
2177
+
2178
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2179
+
2180
+ value: string | Array<string>;
2181
+ }
2182
+
2183
+ export interface UnionMember6 {
2184
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
2185
+
2186
+ field_source: 'solana_system_program_instruction';
2187
+
2188
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2189
+
2190
+ value: string | Array<string>;
2191
+ }
2192
+
2193
+ export interface UnionMember7 {
2194
+ field:
2195
+ | 'instructionName'
2196
+ | 'Transfer.source'
2197
+ | 'Transfer.destination'
2198
+ | 'Transfer.authority'
2199
+ | 'Transfer.amount'
2200
+ | 'TransferChecked.source'
2201
+ | 'TransferChecked.destination'
2202
+ | 'TransferChecked.authority'
2203
+ | 'TransferChecked.amount'
2204
+ | 'TransferChecked.mint'
2205
+ | 'Burn.account'
2206
+ | 'Burn.mint'
2207
+ | 'Burn.authority'
2208
+ | 'Burn.amount'
2209
+ | 'MintTo.mint'
2210
+ | 'MintTo.account'
2211
+ | 'MintTo.authority'
2212
+ | 'MintTo.amount'
2213
+ | 'CloseAccount.account'
2214
+ | 'CloseAccount.destination'
2215
+ | 'CloseAccount.authority'
2216
+ | 'InitializeAccount3.account'
2217
+ | 'InitializeAccount3.mint'
2218
+ | 'InitializeAccount3.owner';
2219
+
2220
+ field_source: 'solana_token_program_instruction';
2221
+
2222
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2223
+
2224
+ value: string | Array<string>;
2225
+ }
2226
+
2227
+ export interface UnionMember8 {
2228
+ field:
2229
+ | 'TransferContract.to_address'
2230
+ | 'TransferContract.amount'
2231
+ | 'TriggerSmartContract.contract_address'
2232
+ | 'TriggerSmartContract.call_value'
2233
+ | 'TriggerSmartContract.token_id'
2234
+ | 'TriggerSmartContract.call_token_value';
2235
+
2236
+ field_source: 'tron_transaction';
2237
+
2238
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2239
+
2240
+ value: string | Array<string>;
2241
+ }
2242
+
2243
+ export interface UnionMember9 {
2244
+ field: 'current_unix_timestamp';
2245
+
2246
+ field_source: 'system';
2247
+
2248
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2249
+
2250
+ value: string | Array<string>;
2251
+ }
2252
+
2253
+ export interface UnionMember10 {
2254
+ field: string;
2255
+
2256
+ field_source: 'reference';
2257
+
2258
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2259
+
2260
+ value: string | Array<string>;
2261
+ }
2262
+
2263
+ export interface UnionMember11 {
2264
+ abi: Array<UnionMember11.Abi>;
2265
+
2266
+ field: string;
2267
+
2268
+ field_source: 'tron_trigger_smart_contract_data';
2269
+
2270
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2271
+
2272
+ value: string | Array<string>;
2273
+ }
2274
+
2275
+ export namespace UnionMember11 {
2276
+ export interface Abi {
2277
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
2278
+
2279
+ anonymous?: boolean;
2280
+
2281
+ inputs?: Array<Abi.Input>;
2282
+
2283
+ name?: string;
2284
+
2285
+ outputs?: Array<Abi.Output>;
2286
+
2287
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
2288
+ }
2289
+
2290
+ export namespace Abi {
2291
+ export interface Input {
2292
+ type: string;
2293
+
2294
+ components?: Array<unknown>;
2295
+
2296
+ indexed?: boolean;
2297
+
2298
+ internalType?: string;
2299
+
2300
+ name?: string;
2301
+ }
2302
+
2303
+ export interface Output {
2304
+ type: string;
2305
+
2306
+ components?: Array<unknown>;
2307
+
2308
+ indexed?: boolean;
2309
+
2310
+ internalType?: string;
2311
+
2312
+ name?: string;
2313
+ }
2314
+ }
2315
+ }
2316
+
2317
+ export interface UnionMember12 {
2318
+ field: 'commandName';
2319
+
2320
+ field_source: 'sui_transaction_command';
2321
+
2322
+ operator: 'eq' | 'in';
2323
+
2324
+ /**
2325
+ * SUI transaction commands allowlist for raw_sign endpoint policy evaluation
2326
+ */
2327
+ value: WalletsAPI.SuiCommandName | Array<WalletsAPI.SuiCommandName>;
2328
+ }
2329
+
2330
+ export interface UnionMember13 {
2331
+ field: 'recipient' | 'amount';
2332
+
2333
+ field_source: 'sui_transfer_objects_command';
2334
+
2335
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2336
+
2337
+ value: string | Array<string>;
2338
+ }
2339
+ }
2340
+ }
2341
+ }
2342
+
2343
+ /**
2344
+ * Current state of the policy before any changes. If undefined, the resource was
2345
+ * deleted and no longer exists
2346
+ */
2347
+ export interface CurrentResourceData {
2348
+ id: string;
2349
+
2350
+ /**
2351
+ * The wallet chain types.
2352
+ */
2353
+ chain_type: WalletsAPI.WalletChainType;
2354
+
2355
+ created_at: number;
2356
+
2357
+ name: string;
2358
+
2359
+ owner_id: string | null;
2360
+
2361
+ rules: Array<CurrentResourceData.Rule>;
2362
+
2363
+ version: '1.0';
2364
+ }
2365
+
2366
+ export namespace CurrentResourceData {
2367
+ export interface Rule {
2368
+ id: string;
2369
+
2370
+ action: 'ALLOW' | 'DENY';
2371
+
2372
+ conditions: Array<
2373
+ | Rule.UnionMember0
2374
+ | Rule.UnionMember1
2375
+ | Rule.UnionMember2
2376
+ | Rule.UnionMember3
2377
+ | Rule.UnionMember4
2378
+ | Rule.UnionMember5
2379
+ | Rule.UnionMember6
2380
+ | Rule.UnionMember7
2381
+ | Rule.UnionMember8
2382
+ | Rule.UnionMember9
2383
+ | Rule.UnionMember10
2384
+ | Rule.UnionMember11
2385
+ | Rule.UnionMember12
2386
+ | Rule.UnionMember13
2387
+ >;
2388
+
2389
+ method:
2390
+ | 'eth_sendTransaction'
2391
+ | 'eth_signTransaction'
2392
+ | 'eth_signTypedData_v4'
2393
+ | 'eth_signUserOperation'
2394
+ | 'eth_sign7702Authorization'
2395
+ | 'signTransaction'
2396
+ | 'signAndSendTransaction'
2397
+ | 'signTransactionBytes'
2398
+ | 'exportPrivateKey'
2399
+ | '*';
2400
+
2401
+ name: string;
2402
+ }
2403
+
2404
+ export namespace Rule {
2405
+ export interface UnionMember0 {
2406
+ field: 'to' | 'value' | 'chain_id';
2407
+
2408
+ field_source: 'ethereum_transaction';
2409
+
2410
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2411
+
2412
+ value: string | Array<string>;
2413
+ }
2414
+
2415
+ export interface UnionMember1 {
2416
+ abi: Array<UnionMember1.Abi>;
2417
+
2418
+ field: string;
2419
+
2420
+ field_source: 'ethereum_calldata';
2421
+
2422
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2423
+
2424
+ value: string | Array<string>;
2425
+ }
2426
+
2427
+ export namespace UnionMember1 {
2428
+ export interface Abi {
2429
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
2430
+
2431
+ anonymous?: boolean;
2432
+
2433
+ inputs?: Array<Abi.Input>;
2434
+
2435
+ name?: string;
2436
+
2437
+ outputs?: Array<Abi.Output>;
2438
+
2439
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
2440
+ }
2441
+
2442
+ export namespace Abi {
2443
+ export interface Input {
2444
+ type: string;
2445
+
2446
+ components?: Array<unknown>;
2447
+
2448
+ indexed?: boolean;
2449
+
2450
+ internalType?: string;
2451
+
2452
+ name?: string;
2453
+ }
2454
+
2455
+ export interface Output {
2456
+ type: string;
2457
+
2458
+ components?: Array<unknown>;
2459
+
2460
+ indexed?: boolean;
2461
+
2462
+ internalType?: string;
2463
+
2464
+ name?: string;
2465
+ }
2466
+ }
2467
+ }
2468
+
2469
+ export interface UnionMember2 {
2470
+ field: 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract';
2471
+
2472
+ field_source: 'ethereum_typed_data_domain';
2473
+
2474
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2475
+
2476
+ value: string | Array<string>;
2477
+ }
2478
+
2479
+ export interface UnionMember3 {
2480
+ field: string;
2481
+
2482
+ field_source: 'ethereum_typed_data_message';
2483
+
2484
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2485
+
2486
+ typed_data: UnionMember3.TypedData;
2487
+
2488
+ value: string | Array<string>;
2489
+ }
2490
+
2491
+ export namespace UnionMember3 {
2492
+ export interface TypedData {
2493
+ primary_type: string;
2494
+
2495
+ types: { [key: string]: Array<TypedData.Type> };
2496
+ }
2497
+
2498
+ export namespace TypedData {
2499
+ export interface Type {
2500
+ name: string;
2501
+
2502
+ type: string;
2503
+ }
2504
+ }
2505
+ }
2506
+
2507
+ export interface UnionMember4 {
2508
+ field: 'contract';
2509
+
2510
+ field_source: 'ethereum_7702_authorization';
2511
+
2512
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2513
+
2514
+ value: string | Array<string>;
2515
+ }
2516
+
2517
+ export interface UnionMember5 {
2518
+ field: 'programId';
2519
+
2520
+ field_source: 'solana_program_instruction';
2521
+
2522
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2523
+
2524
+ value: string | Array<string>;
2525
+ }
2526
+
2527
+ export interface UnionMember6 {
2528
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
2529
+
2530
+ field_source: 'solana_system_program_instruction';
2531
+
2532
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2533
+
2534
+ value: string | Array<string>;
2535
+ }
2536
+
2537
+ export interface UnionMember7 {
2538
+ field:
2539
+ | 'instructionName'
2540
+ | 'Transfer.source'
2541
+ | 'Transfer.destination'
2542
+ | 'Transfer.authority'
2543
+ | 'Transfer.amount'
2544
+ | 'TransferChecked.source'
2545
+ | 'TransferChecked.destination'
2546
+ | 'TransferChecked.authority'
2547
+ | 'TransferChecked.amount'
2548
+ | 'TransferChecked.mint'
2549
+ | 'Burn.account'
2550
+ | 'Burn.mint'
2551
+ | 'Burn.authority'
2552
+ | 'Burn.amount'
2553
+ | 'MintTo.mint'
2554
+ | 'MintTo.account'
2555
+ | 'MintTo.authority'
2556
+ | 'MintTo.amount'
2557
+ | 'CloseAccount.account'
2558
+ | 'CloseAccount.destination'
2559
+ | 'CloseAccount.authority'
2560
+ | 'InitializeAccount3.account'
2561
+ | 'InitializeAccount3.mint'
2562
+ | 'InitializeAccount3.owner';
2563
+
2564
+ field_source: 'solana_token_program_instruction';
2565
+
2566
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2567
+
2568
+ value: string | Array<string>;
2569
+ }
2570
+
2571
+ export interface UnionMember8 {
2572
+ field:
2573
+ | 'TransferContract.to_address'
2574
+ | 'TransferContract.amount'
2575
+ | 'TriggerSmartContract.contract_address'
2576
+ | 'TriggerSmartContract.call_value'
2577
+ | 'TriggerSmartContract.token_id'
2578
+ | 'TriggerSmartContract.call_token_value';
2579
+
2580
+ field_source: 'tron_transaction';
2581
+
2582
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2583
+
2584
+ value: string | Array<string>;
2585
+ }
2586
+
2587
+ export interface UnionMember9 {
2588
+ field: 'current_unix_timestamp';
2589
+
2590
+ field_source: 'system';
2591
+
2592
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2593
+
2594
+ value: string | Array<string>;
2595
+ }
2596
+
2597
+ export interface UnionMember10 {
2598
+ field: string;
2599
+
2600
+ field_source: 'reference';
2601
+
2602
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2603
+
2604
+ value: string | Array<string>;
2605
+ }
2606
+
2607
+ export interface UnionMember11 {
2608
+ abi: Array<UnionMember11.Abi>;
2609
+
2610
+ field: string;
2611
+
2612
+ field_source: 'tron_trigger_smart_contract_data';
2613
+
2614
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2615
+
2616
+ value: string | Array<string>;
2617
+ }
2618
+
2619
+ export namespace UnionMember11 {
2620
+ export interface Abi {
2621
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
2622
+
2623
+ anonymous?: boolean;
2624
+
2625
+ inputs?: Array<Abi.Input>;
2626
+
2627
+ name?: string;
2628
+
2629
+ outputs?: Array<Abi.Output>;
2630
+
2631
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
2632
+ }
2633
+
2634
+ export namespace Abi {
2635
+ export interface Input {
2636
+ type: string;
2637
+
2638
+ components?: Array<unknown>;
2639
+
2640
+ indexed?: boolean;
2641
+
2642
+ internalType?: string;
2643
+
2644
+ name?: string;
2645
+ }
2646
+
2647
+ export interface Output {
2648
+ type: string;
2649
+
2650
+ components?: Array<unknown>;
2651
+
2652
+ indexed?: boolean;
2653
+
2654
+ internalType?: string;
2655
+
2656
+ name?: string;
2657
+ }
2658
+ }
2659
+ }
2660
+
2661
+ export interface UnionMember12 {
2662
+ field: 'commandName';
2663
+
2664
+ field_source: 'sui_transaction_command';
2665
+
2666
+ operator: 'eq' | 'in';
2667
+
2668
+ /**
2669
+ * SUI transaction commands allowlist for raw_sign endpoint policy evaluation
2670
+ */
2671
+ value: WalletsAPI.SuiCommandName | Array<WalletsAPI.SuiCommandName>;
2672
+ }
2673
+
2674
+ export interface UnionMember13 {
2675
+ field: 'recipient' | 'amount';
2676
+
2677
+ field_source: 'sui_transfer_objects_command';
2678
+
2679
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2680
+
2681
+ value: string | Array<string>;
2682
+ }
2683
+ }
2684
+ }
2685
+ }
2686
+
2687
+ /**
2688
+ * Response for a key quorum intent
2689
+ */
2690
+ export interface KeyQuorumIntentResponse {
2691
+ /**
2692
+ * Detailed authorization information including key quorum members, thresholds, and
2693
+ * signature status
2694
+ */
2695
+ authorization_details: Array<IntentAuthorization>;
2696
+
2697
+ /**
2698
+ * Unix timestamp when the intent was created
2699
+ */
2700
+ created_at: number;
2701
+
2702
+ /**
2703
+ * Display name of the user who created the intent
2704
+ */
2705
+ created_by_display_name: string;
2706
+
2707
+ /**
2708
+ * Unix timestamp when the intent expires
2709
+ */
2710
+ expires_at: number;
2711
+
2712
+ /**
2713
+ * Unique ID for the intent
2714
+ */
2715
+ intent_id: string;
2716
+
2717
+ intent_type: 'KEY_QUORUM';
2718
+
2719
+ /**
2720
+ * The original key quorum update request that would be sent to the key quorum
2721
+ * endpoint
2722
+ */
2723
+ request_details: KeyQuorumIntentResponse.RequestDetails;
2724
+
2725
+ /**
2726
+ * ID of the resource being modified (wallet_id, policy_id, etc)
2727
+ */
2728
+ resource_id: string;
2729
+
2730
+ /**
2731
+ * Current status of an intent.
2732
+ */
2733
+ status: IntentStatus;
2734
+
2735
+ /**
2736
+ * Result of key quorum update execution (only present if status is 'executed' or
2737
+ * 'failed')
2738
+ */
2739
+ action_result?: BaseActionResult;
2740
+
2741
+ /**
2742
+ * ID of the user who created the intent. If undefined, the intent was created
2743
+ * using the app secret
2744
+ */
2745
+ created_by_id?: string;
2746
+
2747
+ /**
2748
+ * Current state of the key quorum before any changes. If undefined, the resource
2749
+ * was deleted and no longer exists
2750
+ */
2751
+ current_resource_data?: KeyQuorumIntentResponse.CurrentResourceData;
2752
+
2753
+ /**
2754
+ * Human-readable reason for dismissal, present when status is 'dismissed'
2755
+ */
2756
+ dismissal_reason?: string;
2757
+
2758
+ /**
2759
+ * Unix timestamp when the intent was dismissed, present when status is 'dismissed'
2760
+ */
2761
+ dismissed_at?: number;
2762
+
2763
+ /**
2764
+ * Unix timestamp when the intent was rejected, present when status is 'rejected'
2765
+ */
2766
+ rejected_at?: number;
2767
+ }
2768
+
2769
+ export namespace KeyQuorumIntentResponse {
2770
+ /**
2771
+ * The original key quorum update request that would be sent to the key quorum
2772
+ * endpoint
2773
+ */
2774
+ export interface RequestDetails {
2775
+ body: RequestDetails.Body;
2776
+
2777
+ method: 'PATCH';
2778
+
2779
+ url: string;
2780
+ }
2781
+
2782
+ export namespace RequestDetails {
2783
+ export interface Body {
2784
+ authorization_threshold?: number;
2785
+
2786
+ display_name?: string;
2787
+
2788
+ key_quorum_ids?: Array<string>;
2789
+
2790
+ public_keys?: Array<string>;
2791
+
2792
+ user_ids?: Array<string>;
2793
+ }
2794
+ }
2795
+
2796
+ /**
2797
+ * Current state of the key quorum before any changes. If undefined, the resource
2798
+ * was deleted and no longer exists
2799
+ */
2800
+ export interface CurrentResourceData {
2801
+ id: string;
2802
+
2803
+ authorization_keys: Array<CurrentResourceData.AuthorizationKey>;
2804
+
2805
+ authorization_threshold: number | null;
2806
+
2807
+ display_name: string | null;
2808
+
2809
+ user_ids: Array<string> | null;
2810
+
2811
+ key_quorum_ids?: Array<string>;
2812
+ }
2813
+
2814
+ export namespace CurrentResourceData {
2815
+ export interface AuthorizationKey {
2816
+ display_name: string | null;
2817
+
2818
+ public_key: string;
2819
+ }
2820
+ }
2821
+ }
2822
+
2823
+ /**
2824
+ * Response for a rule intent
2825
+ */
2826
+ export interface RuleIntentResponse {
2827
+ /**
2828
+ * Detailed authorization information including key quorum members, thresholds, and
2829
+ * signature status
2830
+ */
2831
+ authorization_details: Array<IntentAuthorization>;
2832
+
2833
+ /**
2834
+ * Unix timestamp when the intent was created
2835
+ */
2836
+ created_at: number;
2837
+
2838
+ /**
2839
+ * Display name of the user who created the intent
2840
+ */
2841
+ created_by_display_name: string;
2842
+
2843
+ /**
2844
+ * Unix timestamp when the intent expires
2845
+ */
2846
+ expires_at: number;
2847
+
2848
+ /**
2849
+ * Unique ID for the intent
2850
+ */
2851
+ intent_id: string;
2852
+
2853
+ intent_type: 'RULE';
2854
+
2855
+ /**
2856
+ * The original rule request. Method is POST (create), PATCH (update), or DELETE
2857
+ * (delete)
2858
+ */
2859
+ request_details: RuleIntentRequestDetails;
2860
+
2861
+ /**
2862
+ * ID of the resource being modified (wallet_id, policy_id, etc)
2863
+ */
2864
+ resource_id: string;
2865
+
2866
+ /**
2867
+ * Current status of an intent.
2868
+ */
2869
+ status: IntentStatus;
2870
+
2871
+ /**
2872
+ * Result of rule execution (only present if status is 'executed' or 'failed')
2873
+ */
2874
+ action_result?: BaseActionResult;
2875
+
2876
+ /**
2877
+ * ID of the user who created the intent. If undefined, the intent was created
2878
+ * using the app secret
2879
+ */
2880
+ created_by_id?: string;
2881
+
2882
+ /**
2883
+ * Current state of the rule before any changes. Undefined for create intents or if
2884
+ * the rule was deleted
2885
+ */
2886
+ current_resource_data?: RuleIntentResponse.CurrentResourceData;
2887
+
2888
+ /**
2889
+ * Human-readable reason for dismissal, present when status is 'dismissed'
2890
+ */
2891
+ dismissal_reason?: string;
2892
+
2893
+ /**
2894
+ * Unix timestamp when the intent was dismissed, present when status is 'dismissed'
2895
+ */
2896
+ dismissed_at?: number;
2897
+
2898
+ /**
2899
+ * Parent policy containing this rule, including sibling rules for contextual
2900
+ * display
2901
+ */
2902
+ policy?: RuleIntentResponse.Policy;
2903
+
2904
+ /**
2905
+ * Unix timestamp when the intent was rejected, present when status is 'rejected'
2906
+ */
2907
+ rejected_at?: number;
2908
+ }
2909
+
2910
+ export namespace RuleIntentResponse {
2911
+ /**
2912
+ * Current state of the rule before any changes. Undefined for create intents or if
2913
+ * the rule was deleted
2914
+ */
2915
+ export interface CurrentResourceData {
2916
+ id: string;
2917
+
2918
+ action: 'ALLOW' | 'DENY';
2919
+
2920
+ conditions: Array<
2921
+ | CurrentResourceData.UnionMember0
2922
+ | CurrentResourceData.UnionMember1
2923
+ | CurrentResourceData.UnionMember2
2924
+ | CurrentResourceData.UnionMember3
2925
+ | CurrentResourceData.UnionMember4
2926
+ | CurrentResourceData.UnionMember5
2927
+ | CurrentResourceData.UnionMember6
2928
+ | CurrentResourceData.UnionMember7
2929
+ | CurrentResourceData.UnionMember8
2930
+ | CurrentResourceData.UnionMember9
2931
+ | CurrentResourceData.UnionMember10
2932
+ | CurrentResourceData.UnionMember11
2933
+ | CurrentResourceData.UnionMember12
2934
+ | CurrentResourceData.UnionMember13
2935
+ >;
2936
+
2937
+ method:
2938
+ | 'eth_sendTransaction'
2939
+ | 'eth_signTransaction'
2940
+ | 'eth_signTypedData_v4'
2941
+ | 'eth_signUserOperation'
2942
+ | 'eth_sign7702Authorization'
2943
+ | 'signTransaction'
2944
+ | 'signAndSendTransaction'
2945
+ | 'signTransactionBytes'
2946
+ | 'exportPrivateKey'
2947
+ | '*';
2948
+
2949
+ name: string;
2950
+ }
2951
+
2952
+ export namespace CurrentResourceData {
2953
+ export interface UnionMember0 {
2954
+ field: 'to' | 'value' | 'chain_id';
2955
+
2956
+ field_source: 'ethereum_transaction';
2957
+
2958
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2959
+
2960
+ value: string | Array<string>;
2961
+ }
2962
+
2963
+ export interface UnionMember1 {
2964
+ abi: Array<UnionMember1.Abi>;
2965
+
2966
+ field: string;
2967
+
2968
+ field_source: 'ethereum_calldata';
2969
+
2970
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
2971
+
2972
+ value: string | Array<string>;
2973
+ }
2974
+
2975
+ export namespace UnionMember1 {
2976
+ export interface Abi {
2977
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
2978
+
2979
+ anonymous?: boolean;
2980
+
2981
+ inputs?: Array<Abi.Input>;
2982
+
2983
+ name?: string;
2984
+
2985
+ outputs?: Array<Abi.Output>;
2986
+
2987
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
2988
+ }
2989
+
2990
+ export namespace Abi {
2991
+ export interface Input {
2992
+ type: string;
2993
+
2994
+ components?: Array<unknown>;
2995
+
2996
+ indexed?: boolean;
2997
+
2998
+ internalType?: string;
2999
+
3000
+ name?: string;
3001
+ }
3002
+
3003
+ export interface Output {
3004
+ type: string;
3005
+
3006
+ components?: Array<unknown>;
3007
+
3008
+ indexed?: boolean;
3009
+
3010
+ internalType?: string;
3011
+
3012
+ name?: string;
3013
+ }
3014
+ }
3015
+ }
3016
+
3017
+ export interface UnionMember2 {
3018
+ field: 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract';
3019
+
3020
+ field_source: 'ethereum_typed_data_domain';
3021
+
3022
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3023
+
3024
+ value: string | Array<string>;
3025
+ }
3026
+
3027
+ export interface UnionMember3 {
3028
+ field: string;
3029
+
3030
+ field_source: 'ethereum_typed_data_message';
3031
+
3032
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3033
+
3034
+ typed_data: UnionMember3.TypedData;
3035
+
3036
+ value: string | Array<string>;
3037
+ }
3038
+
3039
+ export namespace UnionMember3 {
3040
+ export interface TypedData {
3041
+ primary_type: string;
3042
+
3043
+ types: { [key: string]: Array<TypedData.Type> };
3044
+ }
3045
+
3046
+ export namespace TypedData {
3047
+ export interface Type {
3048
+ name: string;
3049
+
3050
+ type: string;
3051
+ }
3052
+ }
3053
+ }
3054
+
3055
+ export interface UnionMember4 {
3056
+ field: 'contract';
3057
+
3058
+ field_source: 'ethereum_7702_authorization';
3059
+
3060
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3061
+
3062
+ value: string | Array<string>;
3063
+ }
3064
+
3065
+ export interface UnionMember5 {
3066
+ field: 'programId';
3067
+
3068
+ field_source: 'solana_program_instruction';
3069
+
3070
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3071
+
3072
+ value: string | Array<string>;
3073
+ }
3074
+
3075
+ export interface UnionMember6 {
3076
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
3077
+
3078
+ field_source: 'solana_system_program_instruction';
3079
+
3080
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3081
+
3082
+ value: string | Array<string>;
3083
+ }
3084
+
3085
+ export interface UnionMember7 {
3086
+ field:
3087
+ | 'instructionName'
3088
+ | 'Transfer.source'
3089
+ | 'Transfer.destination'
3090
+ | 'Transfer.authority'
3091
+ | 'Transfer.amount'
3092
+ | 'TransferChecked.source'
3093
+ | 'TransferChecked.destination'
3094
+ | 'TransferChecked.authority'
3095
+ | 'TransferChecked.amount'
3096
+ | 'TransferChecked.mint'
3097
+ | 'Burn.account'
3098
+ | 'Burn.mint'
3099
+ | 'Burn.authority'
3100
+ | 'Burn.amount'
3101
+ | 'MintTo.mint'
3102
+ | 'MintTo.account'
3103
+ | 'MintTo.authority'
3104
+ | 'MintTo.amount'
3105
+ | 'CloseAccount.account'
3106
+ | 'CloseAccount.destination'
3107
+ | 'CloseAccount.authority'
3108
+ | 'InitializeAccount3.account'
3109
+ | 'InitializeAccount3.mint'
3110
+ | 'InitializeAccount3.owner';
3111
+
3112
+ field_source: 'solana_token_program_instruction';
3113
+
3114
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3115
+
3116
+ value: string | Array<string>;
3117
+ }
3118
+
3119
+ export interface UnionMember8 {
3120
+ field:
3121
+ | 'TransferContract.to_address'
3122
+ | 'TransferContract.amount'
3123
+ | 'TriggerSmartContract.contract_address'
3124
+ | 'TriggerSmartContract.call_value'
3125
+ | 'TriggerSmartContract.token_id'
3126
+ | 'TriggerSmartContract.call_token_value';
3127
+
3128
+ field_source: 'tron_transaction';
3129
+
3130
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3131
+
3132
+ value: string | Array<string>;
3133
+ }
3134
+
3135
+ export interface UnionMember9 {
3136
+ field: 'current_unix_timestamp';
3137
+
3138
+ field_source: 'system';
3139
+
3140
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3141
+
3142
+ value: string | Array<string>;
3143
+ }
3144
+
3145
+ export interface UnionMember10 {
3146
+ field: string;
3147
+
3148
+ field_source: 'reference';
3149
+
3150
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3151
+
3152
+ value: string | Array<string>;
3153
+ }
3154
+
3155
+ export interface UnionMember11 {
3156
+ abi: Array<UnionMember11.Abi>;
3157
+
3158
+ field: string;
3159
+
3160
+ field_source: 'tron_trigger_smart_contract_data';
3161
+
3162
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3163
+
3164
+ value: string | Array<string>;
3165
+ }
3166
+
3167
+ export namespace UnionMember11 {
3168
+ export interface Abi {
3169
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
3170
+
3171
+ anonymous?: boolean;
3172
+
3173
+ inputs?: Array<Abi.Input>;
3174
+
3175
+ name?: string;
3176
+
3177
+ outputs?: Array<Abi.Output>;
3178
+
3179
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
3180
+ }
3181
+
3182
+ export namespace Abi {
3183
+ export interface Input {
3184
+ type: string;
3185
+
3186
+ components?: Array<unknown>;
3187
+
3188
+ indexed?: boolean;
3189
+
3190
+ internalType?: string;
3191
+
3192
+ name?: string;
3193
+ }
3194
+
3195
+ export interface Output {
3196
+ type: string;
3197
+
3198
+ components?: Array<unknown>;
3199
+
3200
+ indexed?: boolean;
3201
+
3202
+ internalType?: string;
3203
+
3204
+ name?: string;
3205
+ }
3206
+ }
3207
+ }
3208
+
3209
+ export interface UnionMember12 {
3210
+ field: 'commandName';
3211
+
3212
+ field_source: 'sui_transaction_command';
3213
+
3214
+ operator: 'eq' | 'in';
3215
+
3216
+ /**
3217
+ * SUI transaction commands allowlist for raw_sign endpoint policy evaluation
3218
+ */
3219
+ value: WalletsAPI.SuiCommandName | Array<WalletsAPI.SuiCommandName>;
3220
+ }
3221
+
3222
+ export interface UnionMember13 {
3223
+ field: 'recipient' | 'amount';
3224
+
3225
+ field_source: 'sui_transfer_objects_command';
3226
+
3227
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3228
+
3229
+ value: string | Array<string>;
3230
+ }
3231
+ }
3232
+
3233
+ /**
3234
+ * Parent policy containing this rule, including sibling rules for contextual
3235
+ * display
3236
+ */
3237
+ export interface Policy {
3238
+ id: string;
3239
+
3240
+ /**
3241
+ * The wallet chain types.
3242
+ */
3243
+ chain_type: WalletsAPI.WalletChainType;
3244
+
3245
+ created_at: number;
3246
+
3247
+ name: string;
3248
+
3249
+ owner_id: string | null;
3250
+
3251
+ rules: Array<Policy.Rule>;
3252
+
3253
+ version: '1.0';
3254
+ }
3255
+
3256
+ export namespace Policy {
3257
+ export interface Rule {
3258
+ id: string;
3259
+
3260
+ action: 'ALLOW' | 'DENY';
3261
+
3262
+ conditions: Array<
3263
+ | Rule.UnionMember0
3264
+ | Rule.UnionMember1
3265
+ | Rule.UnionMember2
3266
+ | Rule.UnionMember3
3267
+ | Rule.UnionMember4
3268
+ | Rule.UnionMember5
3269
+ | Rule.UnionMember6
3270
+ | Rule.UnionMember7
3271
+ | Rule.UnionMember8
3272
+ | Rule.UnionMember9
3273
+ | Rule.UnionMember10
3274
+ | Rule.UnionMember11
3275
+ | Rule.UnionMember12
3276
+ | Rule.UnionMember13
3277
+ >;
3278
+
3279
+ method:
3280
+ | 'eth_sendTransaction'
3281
+ | 'eth_signTransaction'
3282
+ | 'eth_signTypedData_v4'
3283
+ | 'eth_signUserOperation'
3284
+ | 'eth_sign7702Authorization'
3285
+ | 'signTransaction'
3286
+ | 'signAndSendTransaction'
3287
+ | 'signTransactionBytes'
3288
+ | 'exportPrivateKey'
3289
+ | '*';
3290
+
3291
+ name: string;
3292
+ }
3293
+
3294
+ export namespace Rule {
3295
+ export interface UnionMember0 {
3296
+ field: 'to' | 'value' | 'chain_id';
3297
+
3298
+ field_source: 'ethereum_transaction';
3299
+
3300
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3301
+
3302
+ value: string | Array<string>;
3303
+ }
3304
+
3305
+ export interface UnionMember1 {
3306
+ abi: Array<UnionMember1.Abi>;
3307
+
3308
+ field: string;
3309
+
3310
+ field_source: 'ethereum_calldata';
3311
+
3312
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3313
+
3314
+ value: string | Array<string>;
3315
+ }
3316
+
3317
+ export namespace UnionMember1 {
3318
+ export interface Abi {
3319
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
3320
+
3321
+ anonymous?: boolean;
3322
+
3323
+ inputs?: Array<Abi.Input>;
3324
+
3325
+ name?: string;
3326
+
3327
+ outputs?: Array<Abi.Output>;
3328
+
3329
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
3330
+ }
3331
+
3332
+ export namespace Abi {
3333
+ export interface Input {
3334
+ type: string;
3335
+
3336
+ components?: Array<unknown>;
3337
+
3338
+ indexed?: boolean;
3339
+
3340
+ internalType?: string;
3341
+
3342
+ name?: string;
3343
+ }
3344
+
3345
+ export interface Output {
3346
+ type: string;
3347
+
3348
+ components?: Array<unknown>;
3349
+
3350
+ indexed?: boolean;
3351
+
3352
+ internalType?: string;
3353
+
3354
+ name?: string;
3355
+ }
3356
+ }
3357
+ }
3358
+
3359
+ export interface UnionMember2 {
3360
+ field: 'chainId' | 'verifyingContract' | 'chain_id' | 'verifying_contract';
3361
+
3362
+ field_source: 'ethereum_typed_data_domain';
3363
+
3364
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3365
+
3366
+ value: string | Array<string>;
3367
+ }
3368
+
3369
+ export interface UnionMember3 {
3370
+ field: string;
3371
+
3372
+ field_source: 'ethereum_typed_data_message';
3373
+
3374
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3375
+
3376
+ typed_data: UnionMember3.TypedData;
3377
+
3378
+ value: string | Array<string>;
3379
+ }
3380
+
3381
+ export namespace UnionMember3 {
3382
+ export interface TypedData {
3383
+ primary_type: string;
3384
+
3385
+ types: { [key: string]: Array<TypedData.Type> };
3386
+ }
3387
+
3388
+ export namespace TypedData {
3389
+ export interface Type {
3390
+ name: string;
3391
+
3392
+ type: string;
3393
+ }
3394
+ }
3395
+ }
3396
+
3397
+ export interface UnionMember4 {
3398
+ field: 'contract';
3399
+
3400
+ field_source: 'ethereum_7702_authorization';
3401
+
3402
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3403
+
3404
+ value: string | Array<string>;
3405
+ }
3406
+
3407
+ export interface UnionMember5 {
3408
+ field: 'programId';
3409
+
3410
+ field_source: 'solana_program_instruction';
3411
+
3412
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3413
+
3414
+ value: string | Array<string>;
3415
+ }
3416
+
3417
+ export interface UnionMember6 {
3418
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
3419
+
3420
+ field_source: 'solana_system_program_instruction';
3421
+
3422
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3423
+
3424
+ value: string | Array<string>;
3425
+ }
3426
+
3427
+ export interface UnionMember7 {
3428
+ field:
3429
+ | 'instructionName'
3430
+ | 'Transfer.source'
3431
+ | 'Transfer.destination'
3432
+ | 'Transfer.authority'
3433
+ | 'Transfer.amount'
3434
+ | 'TransferChecked.source'
3435
+ | 'TransferChecked.destination'
3436
+ | 'TransferChecked.authority'
3437
+ | 'TransferChecked.amount'
3438
+ | 'TransferChecked.mint'
3439
+ | 'Burn.account'
3440
+ | 'Burn.mint'
3441
+ | 'Burn.authority'
3442
+ | 'Burn.amount'
3443
+ | 'MintTo.mint'
3444
+ | 'MintTo.account'
3445
+ | 'MintTo.authority'
3446
+ | 'MintTo.amount'
3447
+ | 'CloseAccount.account'
3448
+ | 'CloseAccount.destination'
3449
+ | 'CloseAccount.authority'
3450
+ | 'InitializeAccount3.account'
3451
+ | 'InitializeAccount3.mint'
3452
+ | 'InitializeAccount3.owner';
3453
+
3454
+ field_source: 'solana_token_program_instruction';
3455
+
3456
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3457
+
3458
+ value: string | Array<string>;
3459
+ }
3460
+
3461
+ export interface UnionMember8 {
3462
+ field:
3463
+ | 'TransferContract.to_address'
3464
+ | 'TransferContract.amount'
3465
+ | 'TriggerSmartContract.contract_address'
3466
+ | 'TriggerSmartContract.call_value'
3467
+ | 'TriggerSmartContract.token_id'
3468
+ | 'TriggerSmartContract.call_token_value';
3469
+
3470
+ field_source: 'tron_transaction';
3471
+
3472
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3473
+
3474
+ value: string | Array<string>;
3475
+ }
3476
+
3477
+ export interface UnionMember9 {
3478
+ field: 'current_unix_timestamp';
3479
+
3480
+ field_source: 'system';
3481
+
3482
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3483
+
3484
+ value: string | Array<string>;
3485
+ }
3486
+
3487
+ export interface UnionMember10 {
3488
+ field: string;
3489
+
3490
+ field_source: 'reference';
3491
+
3492
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3493
+
3494
+ value: string | Array<string>;
3495
+ }
3496
+
3497
+ export interface UnionMember11 {
3498
+ abi: Array<UnionMember11.Abi>;
3499
+
3500
+ field: string;
3501
+
3502
+ field_source: 'tron_trigger_smart_contract_data';
3503
+
3504
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3505
+
3506
+ value: string | Array<string>;
3507
+ }
3508
+
3509
+ export namespace UnionMember11 {
3510
+ export interface Abi {
3511
+ type: 'function' | 'constructor' | 'event' | 'fallback' | 'receive';
3512
+
3513
+ anonymous?: boolean;
3514
+
3515
+ inputs?: Array<Abi.Input>;
3516
+
3517
+ name?: string;
3518
+
3519
+ outputs?: Array<Abi.Output>;
3520
+
3521
+ stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable';
3522
+ }
3523
+
3524
+ export namespace Abi {
3525
+ export interface Input {
3526
+ type: string;
3527
+
3528
+ components?: Array<unknown>;
3529
+
3530
+ indexed?: boolean;
3531
+
3532
+ internalType?: string;
3533
+
3534
+ name?: string;
3535
+ }
3536
+
3537
+ export interface Output {
3538
+ type: string;
3539
+
3540
+ components?: Array<unknown>;
3541
+
3542
+ indexed?: boolean;
3543
+
3544
+ internalType?: string;
3545
+
3546
+ name?: string;
3547
+ }
3548
+ }
3549
+ }
3550
+
3551
+ export interface UnionMember12 {
3552
+ field: 'commandName';
3553
+
3554
+ field_source: 'sui_transaction_command';
3555
+
3556
+ operator: 'eq' | 'in';
3557
+
3558
+ /**
3559
+ * SUI transaction commands allowlist for raw_sign endpoint policy evaluation
3560
+ */
3561
+ value: WalletsAPI.SuiCommandName | Array<WalletsAPI.SuiCommandName>;
3562
+ }
3563
+
3564
+ export interface UnionMember13 {
3565
+ field: 'recipient' | 'amount';
3566
+
3567
+ field_source: 'sui_transfer_objects_command';
3568
+
3569
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3570
+
3571
+ value: string | Array<string>;
3572
+ }
3573
+ }
3574
+ }
3575
+ }
3576
+
3577
+ /**
3578
+ * Response for an intent object
3579
+ */
3580
+ export type IntentResponse =
3581
+ | RpcIntentResponse
3582
+ | WalletIntentResponse
3583
+ | PolicyIntentResponse
3584
+ | RuleIntentResponse
3585
+ | KeyQuorumIntentResponse;
3586
+
3587
+ export interface IntentListParams extends CursorParams {
3588
+ created_by_id?: string;
3589
+
3590
+ current_user_has_signed?: 'true' | 'false';
3591
+
3592
+ /**
3593
+ * Type of intent.
3594
+ */
3595
+ intent_type?: IntentType;
3596
+
3597
+ pending_member_id?: string;
3598
+
3599
+ resource_id?: string;
3600
+
3601
+ sort_by?: 'created_at_desc' | 'expires_at_asc' | 'updated_at_desc';
3602
+
3603
+ /**
3604
+ * Current status of an intent.
3605
+ */
3606
+ status?: IntentStatus;
3607
+ }
3608
+
3609
+ export interface IntentCreatePolicyRuleParams {
3610
+ /**
3611
+ * Action to take if the conditions are true.
3612
+ */
3613
+ action: 'ALLOW' | 'DENY';
3614
+
3615
+ conditions: Array<
3616
+ | IntentCreatePolicyRuleParams.EthereumTransactionCondition
3617
+ | IntentCreatePolicyRuleParams.EthereumCalldataCondition
3618
+ | IntentCreatePolicyRuleParams.EthereumTypedDataDomainCondition
3619
+ | IntentCreatePolicyRuleParams.EthereumTypedDataMessageCondition
3620
+ | IntentCreatePolicyRuleParams.Ethereum7702AuthorizationCondition
3621
+ | IntentCreatePolicyRuleParams.SolanaProgramInstructionCondition
3622
+ | IntentCreatePolicyRuleParams.SolanaSystemProgramInstructionCondition
3623
+ | IntentCreatePolicyRuleParams.SolanaTokenProgramInstructionCondition
3624
+ | IntentCreatePolicyRuleParams.SystemCondition
3625
+ | PoliciesAPI.TronTransactionCondition
3626
+ | PoliciesAPI.SuiTransactionCommandCondition
3627
+ | PoliciesAPI.SuiTransferObjectsCommandCondition
3628
+ >;
3629
+
3630
+ /**
3631
+ * Method the rule applies to.
3632
+ */
3633
+ method:
3634
+ | 'eth_sendTransaction'
3635
+ | 'eth_signTransaction'
3636
+ | 'eth_signUserOperation'
3637
+ | 'eth_signTypedData_v4'
3638
+ | 'eth_sign7702Authorization'
3639
+ | 'signTransaction'
3640
+ | 'signAndSendTransaction'
3641
+ | 'exportPrivateKey'
3642
+ | 'signTransactionBytes'
3643
+ | '*';
3644
+
3645
+ name: string;
3646
+ }
3647
+
3648
+ export namespace IntentCreatePolicyRuleParams {
3649
+ /**
3650
+ * The verbatim Ethereum transaction object in an eth_signTransaction or
3651
+ * eth_sendTransaction request.
3652
+ */
3653
+ export interface EthereumTransactionCondition {
3654
+ field: 'to' | 'value' | 'chain_id';
3655
+
3656
+ field_source: 'ethereum_transaction';
3657
+
3658
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3659
+
3660
+ value: string | Array<string>;
3661
+ }
3662
+
3663
+ /**
3664
+ * The decoded calldata in a smart contract interaction as the smart contract
3665
+ * method's parameters. Note that that 'ethereum_calldata' conditions must contain
3666
+ * an abi parameter with the JSON ABI of the smart contract.
3667
+ */
3668
+ export interface EthereumCalldataCondition {
3669
+ abi: unknown;
3670
+
3671
+ field: string;
3672
+
3673
+ field_source: 'ethereum_calldata';
3674
+
3675
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3676
+
3677
+ value: string | Array<string>;
3678
+ }
3679
+
3680
+ /**
3681
+ * Attributes from the signing domain that will verify the signature.
3682
+ */
3683
+ export interface EthereumTypedDataDomainCondition {
3684
+ field: 'chainId' | 'verifyingContract';
3685
+
3686
+ field_source: 'ethereum_typed_data_domain';
3687
+
3688
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3689
+
3690
+ value: string | Array<string>;
3691
+ }
3692
+
3693
+ /**
3694
+ * 'types' and 'primary_type' attributes of the TypedData JSON object defined in
3695
+ * EIP-712.
3696
+ */
3697
+ export interface EthereumTypedDataMessageCondition {
3698
+ field: string;
3699
+
3700
+ field_source: 'ethereum_typed_data_message';
3701
+
3702
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3703
+
3704
+ typed_data: EthereumTypedDataMessageCondition.TypedData;
3705
+
3706
+ value: string | Array<string>;
3707
+ }
3708
+
3709
+ export namespace EthereumTypedDataMessageCondition {
3710
+ export interface TypedData {
3711
+ primary_type: string;
3712
+
3713
+ types: { [key: string]: Array<TypedData.Type> };
3714
+ }
3715
+
3716
+ export namespace TypedData {
3717
+ export interface Type {
3718
+ name: string;
3719
+
3720
+ type: string;
3721
+ }
3722
+ }
3723
+ }
3724
+
3725
+ /**
3726
+ * Allowed contract addresses for eth_sign7702Authorization requests.
3727
+ */
3728
+ export interface Ethereum7702AuthorizationCondition {
3729
+ field: 'contract';
3730
+
3731
+ field_source: 'ethereum_7702_authorization';
3732
+
3733
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3734
+
3735
+ value: string | Array<string>;
3736
+ }
3737
+
3738
+ /**
3739
+ * Solana Program attributes, enables allowlisting Solana Programs.
3740
+ */
3741
+ export interface SolanaProgramInstructionCondition {
3742
+ field: 'programId';
3743
+
3744
+ field_source: 'solana_program_instruction';
3745
+
3746
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3747
+
3748
+ value: string | Array<string>;
3749
+ }
3750
+
3751
+ /**
3752
+ * Solana System Program attributes, including more granular Transfer instruction
3753
+ * fields.
3754
+ */
3755
+ export interface SolanaSystemProgramInstructionCondition {
3756
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
3757
+
3758
+ field_source: 'solana_system_program_instruction';
3759
+
3760
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3761
+
3762
+ value: string | Array<string>;
3763
+ }
3764
+
3765
+ /**
3766
+ * Solana Token Program attributes, including more granular TransferChecked
3767
+ * instruction fields.
3768
+ */
3769
+ export interface SolanaTokenProgramInstructionCondition {
3770
+ field:
3771
+ | 'instructionName'
3772
+ | 'TransferChecked.source'
3773
+ | 'TransferChecked.destination'
3774
+ | 'TransferChecked.authority'
3775
+ | 'TransferChecked.amount'
3776
+ | 'TransferChecked.mint';
3777
+
3778
+ field_source: 'solana_token_program_instruction';
3779
+
3780
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3781
+
3782
+ value: string | Array<string>;
3783
+ }
3784
+
3785
+ /**
3786
+ * System attributes, including current unix timestamp (in seconds).
3787
+ */
3788
+ export interface SystemCondition {
3789
+ field: 'current_unix_timestamp';
3790
+
3791
+ field_source: 'system';
3792
+
3793
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
3794
+
3795
+ value: string | Array<string>;
3796
+ }
3797
+ }
3798
+
3799
+ export interface IntentDeletePolicyRuleParams {
3800
+ /**
3801
+ * ID of the policy.
3802
+ */
3803
+ policy_id: string;
3804
+ }
3805
+
3806
+ export type IntentRpcParams =
3807
+ | IntentRpcParams.EthereumPersonalSignRpcInput
3808
+ | IntentRpcParams.EthereumSignTypedDataRpcInput
3809
+ | IntentRpcParams.EthereumSignTransactionRpcInput
3810
+ | IntentRpcParams.EthereumSignUserOperationRpcInput
3811
+ | IntentRpcParams.EthereumSendTransactionRpcInput
3812
+ | IntentRpcParams.EthereumSign7702AuthorizationRpcInput
3813
+ | IntentRpcParams.EthereumSecp256k1SignRpcInput
3814
+ | IntentRpcParams.SolanaSignMessageRpcInput
3815
+ | IntentRpcParams.SolanaSignTransactionRpcInput
3816
+ | IntentRpcParams.SolanaSignAndSendTransactionRpcInput;
3817
+
3818
+ export declare namespace IntentRpcParams {
3819
+ export interface EthereumPersonalSignRpcInput {
3820
+ method: 'personal_sign';
3821
+
3822
+ params: EthereumPersonalSignRpcInput.Params;
3823
+
3824
+ address?: string;
3825
+
3826
+ chain_type?: 'ethereum';
3827
+ }
3828
+
3829
+ export namespace EthereumPersonalSignRpcInput {
3830
+ export interface Params {
3831
+ encoding: 'utf-8' | 'hex';
3832
+
3833
+ message: string;
3834
+ }
3835
+ }
3836
+
3837
+ export interface EthereumSignTypedDataRpcInput {
3838
+ method: 'eth_signTypedData_v4';
3839
+
3840
+ params: EthereumSignTypedDataRpcInput.Params;
3841
+
3842
+ address?: string;
3843
+
3844
+ chain_type?: 'ethereum';
3845
+ }
3846
+
3847
+ export namespace EthereumSignTypedDataRpcInput {
3848
+ export interface Params {
3849
+ typed_data: Params.TypedData;
3850
+ }
3851
+
3852
+ export namespace Params {
3853
+ export interface TypedData {
3854
+ domain: { [key: string]: unknown };
3855
+
3856
+ message: { [key: string]: unknown };
3857
+
3858
+ primary_type: string;
3859
+
3860
+ types: { [key: string]: Array<TypedData.Type> };
3861
+ }
3862
+
3863
+ export namespace TypedData {
3864
+ export interface Type {
3865
+ name: string;
3866
+
3867
+ type: string;
3868
+ }
3869
+ }
3870
+ }
3871
+ }
3872
+
3873
+ export interface EthereumSignTransactionRpcInput {
3874
+ method: 'eth_signTransaction';
3875
+
3876
+ params: EthereumSignTransactionRpcInput.Params;
3877
+
3878
+ address?: string;
3879
+
3880
+ chain_type?: 'ethereum';
3881
+ }
3882
+
3883
+ export namespace EthereumSignTransactionRpcInput {
3884
+ export interface Params {
3885
+ transaction: Params.Transaction;
3886
+ }
3887
+
3888
+ export namespace Params {
3889
+ export interface Transaction {
3890
+ authorization_list?: Array<Transaction.AuthorizationList>;
3891
+
3892
+ chain_id?: string | number;
3893
+
3894
+ data?: string;
3895
+
3896
+ from?: string;
3897
+
3898
+ gas_limit?: string | number;
3899
+
3900
+ gas_price?: string | number;
3901
+
3902
+ max_fee_per_gas?: string | number;
3903
+
3904
+ max_priority_fee_per_gas?: string | number;
3905
+
3906
+ nonce?: string | number;
3907
+
3908
+ to?: string;
3909
+
3910
+ type?: 0 | 1 | 2 | 4;
3911
+
3912
+ value?: string | number;
3913
+ }
3914
+
3915
+ export namespace Transaction {
3916
+ export interface AuthorizationList {
3917
+ chain_id: string | number;
3918
+
3919
+ contract: string;
3920
+
3921
+ nonce: string | number;
3922
+
3923
+ r: string;
3924
+
3925
+ s: string;
3926
+
3927
+ y_parity: number;
3928
+ }
3929
+ }
3930
+ }
3931
+ }
3932
+
3933
+ export interface EthereumSignUserOperationRpcInput {
3934
+ method: 'eth_signUserOperation';
3935
+
3936
+ params: EthereumSignUserOperationRpcInput.Params;
3937
+
3938
+ address?: string;
3939
+
3940
+ chain_type?: 'ethereum';
3941
+ }
3942
+
3943
+ export namespace EthereumSignUserOperationRpcInput {
3944
+ export interface Params {
3945
+ chain_id: string | number;
3946
+
3947
+ contract: string;
3948
+
3949
+ user_operation: Params.UserOperation;
3950
+ }
3951
+
3952
+ export namespace Params {
3953
+ export interface UserOperation {
3954
+ call_data: string;
3955
+
3956
+ call_gas_limit: string;
3957
+
3958
+ max_fee_per_gas: string;
3959
+
3960
+ max_priority_fee_per_gas: string;
3961
+
3962
+ nonce: string;
3963
+
3964
+ paymaster: string;
3965
+
3966
+ paymaster_data: string;
3967
+
3968
+ paymaster_post_op_gas_limit: string;
3969
+
3970
+ paymaster_verification_gas_limit: string;
3971
+
3972
+ pre_verification_gas: string;
3973
+
3974
+ sender: string;
3975
+
3976
+ verification_gas_limit: string;
3977
+ }
3978
+ }
3979
+ }
3980
+
3981
+ export interface EthereumSendTransactionRpcInput {
3982
+ caip2: string;
3983
+
3984
+ method: 'eth_sendTransaction';
3985
+
3986
+ params: EthereumSendTransactionRpcInput.Params;
3987
+
3988
+ address?: string;
3989
+
3990
+ chain_type?: 'ethereum';
3991
+
3992
+ sponsor?: boolean;
3993
+ }
3994
+
3995
+ export namespace EthereumSendTransactionRpcInput {
3996
+ export interface Params {
3997
+ transaction: Params.Transaction;
3998
+ }
3999
+
4000
+ export namespace Params {
4001
+ export interface Transaction {
4002
+ authorization_list?: Array<Transaction.AuthorizationList>;
4003
+
4004
+ chain_id?: string | number;
4005
+
4006
+ data?: string;
4007
+
4008
+ from?: string;
4009
+
4010
+ gas_limit?: string | number;
4011
+
4012
+ gas_price?: string | number;
4013
+
4014
+ max_fee_per_gas?: string | number;
4015
+
4016
+ max_priority_fee_per_gas?: string | number;
4017
+
4018
+ nonce?: string | number;
4019
+
4020
+ to?: string;
4021
+
4022
+ type?: 0 | 1 | 2 | 4;
4023
+
4024
+ value?: string | number;
4025
+ }
4026
+
4027
+ export namespace Transaction {
4028
+ export interface AuthorizationList {
4029
+ chain_id: string | number;
4030
+
4031
+ contract: string;
4032
+
4033
+ nonce: string | number;
4034
+
4035
+ r: string;
4036
+
4037
+ s: string;
4038
+
4039
+ y_parity: number;
4040
+ }
4041
+ }
4042
+ }
4043
+ }
4044
+
4045
+ export interface EthereumSign7702AuthorizationRpcInput {
4046
+ method: 'eth_sign7702Authorization';
4047
+
4048
+ params: EthereumSign7702AuthorizationRpcInput.Params;
4049
+
4050
+ address?: string;
4051
+
4052
+ chain_type?: 'ethereum';
4053
+ }
4054
+
4055
+ export namespace EthereumSign7702AuthorizationRpcInput {
4056
+ export interface Params {
4057
+ chain_id: string | number;
4058
+
4059
+ contract: string;
4060
+
4061
+ nonce?: string | number;
4062
+ }
4063
+ }
4064
+
4065
+ export interface EthereumSecp256k1SignRpcInput {
4066
+ method: 'secp256k1_sign';
4067
+
4068
+ params: EthereumSecp256k1SignRpcInput.Params;
4069
+
4070
+ address?: string;
4071
+
4072
+ chain_type?: 'ethereum';
4073
+ }
4074
+
4075
+ export namespace EthereumSecp256k1SignRpcInput {
4076
+ export interface Params {
4077
+ hash: string;
4078
+ }
4079
+ }
4080
+
4081
+ export interface SolanaSignMessageRpcInput {
4082
+ method: 'signMessage';
4083
+
4084
+ params: SolanaSignMessageRpcInput.Params;
4085
+
4086
+ address?: string;
4087
+
4088
+ chain_type?: 'solana';
4089
+ }
4090
+
4091
+ export namespace SolanaSignMessageRpcInput {
4092
+ export interface Params {
4093
+ encoding: 'base64';
4094
+
4095
+ message: string;
4096
+ }
4097
+ }
4098
+
4099
+ export interface SolanaSignTransactionRpcInput {
4100
+ method: 'signTransaction';
4101
+
4102
+ params: SolanaSignTransactionRpcInput.Params;
4103
+
4104
+ address?: string;
4105
+
4106
+ chain_type?: 'solana';
4107
+ }
4108
+
4109
+ export namespace SolanaSignTransactionRpcInput {
4110
+ export interface Params {
4111
+ encoding: 'base64';
4112
+
4113
+ transaction: string;
4114
+ }
4115
+ }
4116
+
4117
+ export interface SolanaSignAndSendTransactionRpcInput {
4118
+ caip2: string;
4119
+
4120
+ method: 'signAndSendTransaction';
4121
+
4122
+ params: SolanaSignAndSendTransactionRpcInput.Params;
4123
+
4124
+ address?: string;
4125
+
4126
+ chain_type?: 'solana';
4127
+
4128
+ sponsor?: boolean;
4129
+ }
4130
+
4131
+ export namespace SolanaSignAndSendTransactionRpcInput {
4132
+ export interface Params {
4133
+ encoding: 'base64';
4134
+
4135
+ transaction: string;
4136
+ }
4137
+ }
4138
+ }
4139
+
4140
+ export interface IntentUpdateKeyQuorumParams {
4141
+ /**
4142
+ * The number of keys that must sign for an action to be valid. Must be less than
4143
+ * or equal to total number of key quorum members.
4144
+ */
4145
+ authorization_threshold?: number;
4146
+
4147
+ display_name?: string;
4148
+
4149
+ /**
4150
+ * List of key quorum IDs that should be members of this key quorum. Key quorums
4151
+ * can only be nested 1 level deep.
4152
+ */
4153
+ key_quorum_ids?: Array<string>;
4154
+
4155
+ /**
4156
+ * List of P-256 public keys of the keys that should be authorized to sign on the
4157
+ * key quorum, in base64-encoded DER format.
4158
+ */
4159
+ public_keys?: Array<string>;
4160
+
4161
+ /**
4162
+ * List of user IDs of the users that should be authorized to sign on the key
4163
+ * quorum.
4164
+ */
4165
+ user_ids?: Array<string>;
4166
+ }
4167
+
4168
+ export interface IntentUpdatePolicyParams {
4169
+ /**
4170
+ * Name to assign to policy.
4171
+ */
4172
+ name?: string;
4173
+
4174
+ /**
4175
+ * The owner of the resource. If you provide this, do not specify an owner_id as it
4176
+ * will be generated automatically. When updating a wallet, you can set the owner
4177
+ * to null to remove the owner.
4178
+ */
4179
+ owner?: IntentUpdatePolicyParams.PublicKeyOwner | IntentUpdatePolicyParams.UserOwner | null;
4180
+
4181
+ owner_id?: string | null;
4182
+
4183
+ rules?: Array<IntentUpdatePolicyParams.Rule>;
4184
+ }
4185
+
4186
+ export namespace IntentUpdatePolicyParams {
4187
+ /**
4188
+ * The P-256 public key of the owner of the resource, in base64-encoded DER format.
4189
+ * If you provide this, do not specify an owner_id as it will be generated
4190
+ * automatically.
4191
+ */
4192
+ export interface PublicKeyOwner {
4193
+ public_key: string;
4194
+ }
4195
+
4196
+ /**
4197
+ * The user ID of the owner of the resource. The user must already exist, and this
4198
+ * value must start with "did:privy:". If you provide this, do not specify an
4199
+ * owner_id as it will be generated automatically.
4200
+ */
4201
+ export interface UserOwner {
4202
+ user_id: string;
4203
+ }
4204
+
4205
+ /**
4206
+ * The rules that apply to each method the policy covers.
4207
+ */
4208
+ export interface Rule {
4209
+ /**
4210
+ * Action to take if the conditions are true.
4211
+ */
4212
+ action: 'ALLOW' | 'DENY';
4213
+
4214
+ conditions: Array<
4215
+ | Rule.EthereumTransactionCondition
4216
+ | Rule.EthereumCalldataCondition
4217
+ | Rule.EthereumTypedDataDomainCondition
4218
+ | Rule.EthereumTypedDataMessageCondition
4219
+ | Rule.Ethereum7702AuthorizationCondition
4220
+ | Rule.SolanaProgramInstructionCondition
4221
+ | Rule.SolanaSystemProgramInstructionCondition
4222
+ | Rule.SolanaTokenProgramInstructionCondition
4223
+ | Rule.SystemCondition
4224
+ | PoliciesAPI.TronTransactionCondition
4225
+ | PoliciesAPI.SuiTransactionCommandCondition
4226
+ | PoliciesAPI.SuiTransferObjectsCommandCondition
4227
+ >;
4228
+
4229
+ /**
4230
+ * Method the rule applies to.
4231
+ */
4232
+ method:
4233
+ | 'eth_sendTransaction'
4234
+ | 'eth_signTransaction'
4235
+ | 'eth_signUserOperation'
4236
+ | 'eth_signTypedData_v4'
4237
+ | 'eth_sign7702Authorization'
4238
+ | 'signTransaction'
4239
+ | 'signAndSendTransaction'
4240
+ | 'exportPrivateKey'
4241
+ | 'signTransactionBytes'
4242
+ | '*';
4243
+
4244
+ name: string;
4245
+ }
4246
+
4247
+ export namespace Rule {
4248
+ /**
4249
+ * The verbatim Ethereum transaction object in an eth_signTransaction or
4250
+ * eth_sendTransaction request.
4251
+ */
4252
+ export interface EthereumTransactionCondition {
4253
+ field: 'to' | 'value' | 'chain_id';
4254
+
4255
+ field_source: 'ethereum_transaction';
4256
+
4257
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4258
+
4259
+ value: string | Array<string>;
4260
+ }
4261
+
4262
+ /**
4263
+ * The decoded calldata in a smart contract interaction as the smart contract
4264
+ * method's parameters. Note that that 'ethereum_calldata' conditions must contain
4265
+ * an abi parameter with the JSON ABI of the smart contract.
4266
+ */
4267
+ export interface EthereumCalldataCondition {
4268
+ abi: unknown;
4269
+
4270
+ field: string;
4271
+
4272
+ field_source: 'ethereum_calldata';
4273
+
4274
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4275
+
4276
+ value: string | Array<string>;
4277
+ }
4278
+
4279
+ /**
4280
+ * Attributes from the signing domain that will verify the signature.
4281
+ */
4282
+ export interface EthereumTypedDataDomainCondition {
4283
+ field: 'chainId' | 'verifyingContract';
4284
+
4285
+ field_source: 'ethereum_typed_data_domain';
4286
+
4287
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4288
+
4289
+ value: string | Array<string>;
4290
+ }
4291
+
4292
+ /**
4293
+ * 'types' and 'primary_type' attributes of the TypedData JSON object defined in
4294
+ * EIP-712.
4295
+ */
4296
+ export interface EthereumTypedDataMessageCondition {
4297
+ field: string;
4298
+
4299
+ field_source: 'ethereum_typed_data_message';
4300
+
4301
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4302
+
4303
+ typed_data: EthereumTypedDataMessageCondition.TypedData;
4304
+
4305
+ value: string | Array<string>;
4306
+ }
4307
+
4308
+ export namespace EthereumTypedDataMessageCondition {
4309
+ export interface TypedData {
4310
+ primary_type: string;
4311
+
4312
+ types: { [key: string]: Array<TypedData.Type> };
4313
+ }
4314
+
4315
+ export namespace TypedData {
4316
+ export interface Type {
4317
+ name: string;
4318
+
4319
+ type: string;
4320
+ }
4321
+ }
4322
+ }
4323
+
4324
+ /**
4325
+ * Allowed contract addresses for eth_sign7702Authorization requests.
4326
+ */
4327
+ export interface Ethereum7702AuthorizationCondition {
4328
+ field: 'contract';
4329
+
4330
+ field_source: 'ethereum_7702_authorization';
4331
+
4332
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4333
+
4334
+ value: string | Array<string>;
4335
+ }
4336
+
4337
+ /**
4338
+ * Solana Program attributes, enables allowlisting Solana Programs.
4339
+ */
4340
+ export interface SolanaProgramInstructionCondition {
4341
+ field: 'programId';
4342
+
4343
+ field_source: 'solana_program_instruction';
4344
+
4345
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4346
+
4347
+ value: string | Array<string>;
4348
+ }
4349
+
4350
+ /**
4351
+ * Solana System Program attributes, including more granular Transfer instruction
4352
+ * fields.
4353
+ */
4354
+ export interface SolanaSystemProgramInstructionCondition {
4355
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
4356
+
4357
+ field_source: 'solana_system_program_instruction';
4358
+
4359
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4360
+
4361
+ value: string | Array<string>;
4362
+ }
4363
+
4364
+ /**
4365
+ * Solana Token Program attributes, including more granular TransferChecked
4366
+ * instruction fields.
4367
+ */
4368
+ export interface SolanaTokenProgramInstructionCondition {
4369
+ field:
4370
+ | 'instructionName'
4371
+ | 'TransferChecked.source'
4372
+ | 'TransferChecked.destination'
4373
+ | 'TransferChecked.authority'
4374
+ | 'TransferChecked.amount'
4375
+ | 'TransferChecked.mint';
4376
+
4377
+ field_source: 'solana_token_program_instruction';
4378
+
4379
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4380
+
4381
+ value: string | Array<string>;
4382
+ }
4383
+
4384
+ /**
4385
+ * System attributes, including current unix timestamp (in seconds).
4386
+ */
4387
+ export interface SystemCondition {
4388
+ field: 'current_unix_timestamp';
4389
+
4390
+ field_source: 'system';
4391
+
4392
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4393
+
4394
+ value: string | Array<string>;
4395
+ }
4396
+ }
4397
+ }
4398
+
4399
+ export interface IntentUpdatePolicyRuleParams {
4400
+ /**
4401
+ * Path param: ID of the policy.
4402
+ */
4403
+ policy_id: string;
4404
+
4405
+ /**
4406
+ * Body param: Action to take if the conditions are true.
4407
+ */
4408
+ action: 'ALLOW' | 'DENY';
4409
+
4410
+ /**
4411
+ * Body param
4412
+ */
4413
+ conditions: Array<
4414
+ | IntentUpdatePolicyRuleParams.EthereumTransactionCondition
4415
+ | IntentUpdatePolicyRuleParams.EthereumCalldataCondition
4416
+ | IntentUpdatePolicyRuleParams.EthereumTypedDataDomainCondition
4417
+ | IntentUpdatePolicyRuleParams.EthereumTypedDataMessageCondition
4418
+ | IntentUpdatePolicyRuleParams.Ethereum7702AuthorizationCondition
4419
+ | IntentUpdatePolicyRuleParams.SolanaProgramInstructionCondition
4420
+ | IntentUpdatePolicyRuleParams.SolanaSystemProgramInstructionCondition
4421
+ | IntentUpdatePolicyRuleParams.SolanaTokenProgramInstructionCondition
4422
+ | IntentUpdatePolicyRuleParams.SystemCondition
4423
+ | PoliciesAPI.TronTransactionCondition
4424
+ | PoliciesAPI.SuiTransactionCommandCondition
4425
+ | PoliciesAPI.SuiTransferObjectsCommandCondition
4426
+ >;
4427
+
4428
+ /**
4429
+ * Body param: Method the rule applies to.
4430
+ */
4431
+ method:
4432
+ | 'eth_sendTransaction'
4433
+ | 'eth_signTransaction'
4434
+ | 'eth_signUserOperation'
4435
+ | 'eth_signTypedData_v4'
4436
+ | 'eth_sign7702Authorization'
4437
+ | 'signTransaction'
4438
+ | 'signAndSendTransaction'
4439
+ | 'exportPrivateKey'
4440
+ | 'signTransactionBytes'
4441
+ | '*';
4442
+
4443
+ /**
4444
+ * Body param
4445
+ */
4446
+ name: string;
4447
+ }
4448
+
4449
+ export namespace IntentUpdatePolicyRuleParams {
4450
+ /**
4451
+ * The verbatim Ethereum transaction object in an eth_signTransaction or
4452
+ * eth_sendTransaction request.
4453
+ */
4454
+ export interface EthereumTransactionCondition {
4455
+ field: 'to' | 'value' | 'chain_id';
4456
+
4457
+ field_source: 'ethereum_transaction';
4458
+
4459
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4460
+
4461
+ value: string | Array<string>;
4462
+ }
4463
+
4464
+ /**
4465
+ * The decoded calldata in a smart contract interaction as the smart contract
4466
+ * method's parameters. Note that that 'ethereum_calldata' conditions must contain
4467
+ * an abi parameter with the JSON ABI of the smart contract.
4468
+ */
4469
+ export interface EthereumCalldataCondition {
4470
+ abi: unknown;
4471
+
4472
+ field: string;
4473
+
4474
+ field_source: 'ethereum_calldata';
4475
+
4476
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4477
+
4478
+ value: string | Array<string>;
4479
+ }
4480
+
4481
+ /**
4482
+ * Attributes from the signing domain that will verify the signature.
4483
+ */
4484
+ export interface EthereumTypedDataDomainCondition {
4485
+ field: 'chainId' | 'verifyingContract';
4486
+
4487
+ field_source: 'ethereum_typed_data_domain';
4488
+
4489
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4490
+
4491
+ value: string | Array<string>;
4492
+ }
4493
+
4494
+ /**
4495
+ * 'types' and 'primary_type' attributes of the TypedData JSON object defined in
4496
+ * EIP-712.
4497
+ */
4498
+ export interface EthereumTypedDataMessageCondition {
4499
+ field: string;
4500
+
4501
+ field_source: 'ethereum_typed_data_message';
4502
+
4503
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4504
+
4505
+ typed_data: EthereumTypedDataMessageCondition.TypedData;
4506
+
4507
+ value: string | Array<string>;
4508
+ }
4509
+
4510
+ export namespace EthereumTypedDataMessageCondition {
4511
+ export interface TypedData {
4512
+ primary_type: string;
4513
+
4514
+ types: { [key: string]: Array<TypedData.Type> };
4515
+ }
4516
+
4517
+ export namespace TypedData {
4518
+ export interface Type {
4519
+ name: string;
4520
+
4521
+ type: string;
4522
+ }
4523
+ }
4524
+ }
4525
+
4526
+ /**
4527
+ * Allowed contract addresses for eth_sign7702Authorization requests.
4528
+ */
4529
+ export interface Ethereum7702AuthorizationCondition {
4530
+ field: 'contract';
4531
+
4532
+ field_source: 'ethereum_7702_authorization';
4533
+
4534
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4535
+
4536
+ value: string | Array<string>;
4537
+ }
4538
+
4539
+ /**
4540
+ * Solana Program attributes, enables allowlisting Solana Programs.
4541
+ */
4542
+ export interface SolanaProgramInstructionCondition {
4543
+ field: 'programId';
4544
+
4545
+ field_source: 'solana_program_instruction';
4546
+
4547
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4548
+
4549
+ value: string | Array<string>;
4550
+ }
4551
+
4552
+ /**
4553
+ * Solana System Program attributes, including more granular Transfer instruction
4554
+ * fields.
4555
+ */
4556
+ export interface SolanaSystemProgramInstructionCondition {
4557
+ field: 'instructionName' | 'Transfer.from' | 'Transfer.to' | 'Transfer.lamports';
4558
+
4559
+ field_source: 'solana_system_program_instruction';
4560
+
4561
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4562
+
4563
+ value: string | Array<string>;
4564
+ }
4565
+
4566
+ /**
4567
+ * Solana Token Program attributes, including more granular TransferChecked
4568
+ * instruction fields.
4569
+ */
4570
+ export interface SolanaTokenProgramInstructionCondition {
4571
+ field:
4572
+ | 'instructionName'
4573
+ | 'TransferChecked.source'
4574
+ | 'TransferChecked.destination'
4575
+ | 'TransferChecked.authority'
4576
+ | 'TransferChecked.amount'
4577
+ | 'TransferChecked.mint';
4578
+
4579
+ field_source: 'solana_token_program_instruction';
4580
+
4581
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4582
+
4583
+ value: string | Array<string>;
4584
+ }
4585
+
4586
+ /**
4587
+ * System attributes, including current unix timestamp (in seconds).
4588
+ */
4589
+ export interface SystemCondition {
4590
+ field: 'current_unix_timestamp';
4591
+
4592
+ field_source: 'system';
4593
+
4594
+ operator: 'eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'in_condition_set';
4595
+
4596
+ value: string | Array<string>;
4597
+ }
4598
+ }
4599
+
4600
+ export interface IntentUpdateWalletParams {
4601
+ /**
4602
+ * Additional signers for the wallet.
4603
+ */
4604
+ additional_signers?: Array<IntentUpdateWalletParams.AdditionalSigner>;
4605
+
4606
+ /**
4607
+ * The owner of the resource. If you provide this, do not specify an owner_id as it
4608
+ * will be generated automatically. When updating a wallet, you can set the owner
4609
+ * to null to remove the owner.
4610
+ */
4611
+ owner?: IntentUpdateWalletParams.PublicKeyOwner | IntentUpdateWalletParams.UserOwner | null;
4612
+
4613
+ owner_id?: string | null;
4614
+
4615
+ /**
4616
+ * New policy IDs to enforce on the wallet. Currently, only one policy is supported
4617
+ * per wallet.
4618
+ */
4619
+ policy_ids?: Array<string>;
4620
+ }
4621
+
4622
+ export namespace IntentUpdateWalletParams {
4623
+ export interface AdditionalSigner {
4624
+ signer_id: string;
4625
+
4626
+ /**
4627
+ * The array of policy IDs that will be applied to wallet requests. If specified,
4628
+ * this will override the base policy IDs set on the wallet.
4629
+ */
4630
+ override_policy_ids?: Array<string>;
4631
+ }
4632
+
4633
+ /**
4634
+ * The P-256 public key of the owner of the resource, in base64-encoded DER format.
4635
+ * If you provide this, do not specify an owner_id as it will be generated
4636
+ * automatically.
4637
+ */
4638
+ export interface PublicKeyOwner {
4639
+ public_key: string;
4640
+ }
4641
+
4642
+ /**
4643
+ * The user ID of the owner of the resource. The user must already exist, and this
4644
+ * value must start with "did:privy:". If you provide this, do not specify an
4645
+ * owner_id as it will be generated automatically.
4646
+ */
4647
+ export interface UserOwner {
4648
+ user_id: string;
4649
+ }
4650
+ }
4651
+
133
4652
  export declare namespace Intents {
134
4653
  export {
4654
+ type IntentType as IntentType,
4655
+ type IntentStatus as IntentStatus,
4656
+ type RuleIntentRequestDetails as RuleIntentRequestDetails,
135
4657
  type IntentAuthorizationKeyQuorumMember as IntentAuthorizationKeyQuorumMember,
136
4658
  type IntentAuthorizationMember as IntentAuthorizationMember,
4659
+ type IntentAuthorization as IntentAuthorization,
4660
+ type BaseActionResult as BaseActionResult,
4661
+ type RpcIntentResponse as RpcIntentResponse,
4662
+ type WalletIntentResponse as WalletIntentResponse,
4663
+ type PolicyIntentResponse as PolicyIntentResponse,
4664
+ type KeyQuorumIntentResponse as KeyQuorumIntentResponse,
4665
+ type RuleIntentResponse as RuleIntentResponse,
4666
+ type IntentResponse as IntentResponse,
4667
+ type IntentResponsesCursor as IntentResponsesCursor,
4668
+ type IntentListParams as IntentListParams,
4669
+ type IntentCreatePolicyRuleParams as IntentCreatePolicyRuleParams,
4670
+ type IntentDeletePolicyRuleParams as IntentDeletePolicyRuleParams,
4671
+ type IntentRpcParams as IntentRpcParams,
4672
+ type IntentUpdateKeyQuorumParams as IntentUpdateKeyQuorumParams,
4673
+ type IntentUpdatePolicyParams as IntentUpdatePolicyParams,
4674
+ type IntentUpdatePolicyRuleParams as IntentUpdatePolicyRuleParams,
4675
+ type IntentUpdateWalletParams as IntentUpdateWalletParams,
137
4676
  };
138
4677
  }