@xkova/sdk 0.1.0-alpha.1 → 0.1.0-alpha.10

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 (51) hide show
  1. package/README.md +324 -32
  2. package/dist/abi.d.ts +40 -0
  3. package/dist/abi.js +25 -0
  4. package/dist/client.d.ts +4 -0
  5. package/dist/client.js +62 -3
  6. package/dist/generated/types.d.ts +8629 -5182
  7. package/dist/held-approval.d.ts +41 -0
  8. package/dist/held-approval.js +33 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +1 -0
  11. package/dist/member-action-intents.js +2 -2
  12. package/dist/member-bff.d.ts +60 -21
  13. package/dist/member-bff.js +81 -79
  14. package/dist/member-resources.d.ts +67 -1
  15. package/dist/member-resources.js +9 -5
  16. package/dist/request-signing.js +6 -0
  17. package/dist/resources/account-holders.d.ts +131 -1
  18. package/dist/resources/account-holders.js +44 -9
  19. package/dist/resources/branding.d.ts +10 -0
  20. package/dist/resources/branding.js +2 -0
  21. package/dist/resources/contacts.d.ts +2 -2
  22. package/dist/resources/contacts.js +3 -3
  23. package/dist/resources/escrows.d.ts +3 -0
  24. package/dist/resources/payment-requests.d.ts +4 -0
  25. package/dist/resources/payments.d.ts +13 -0
  26. package/dist/resources/payments.js +7 -0
  27. package/dist/resources/ramps.d.ts +73 -64
  28. package/dist/resources/ramps.js +2 -2
  29. package/dist/resources/rwa.d.ts +9 -9
  30. package/dist/resources/tenant.d.ts +15 -0
  31. package/dist/resources/tenant.js +6 -1
  32. package/dist/resources/tokenization.d.ts +30 -11
  33. package/dist/resources/tokenization.js +10 -10
  34. package/dist/resources/treasury.d.ts +404 -0
  35. package/dist/resources/treasury.js +115 -0
  36. package/dist/resources/wallets.d.ts +2 -0
  37. package/dist/resources/webhooks.d.ts +1 -1
  38. package/dist/resources/webhooks.js +2 -2
  39. package/dist/resources/workflows.d.ts +7 -6
  40. package/dist/resources/workflows.js +87 -24
  41. package/dist/resources/workforce-wallets.d.ts +34 -0
  42. package/dist/resources/workforce-wallets.js +19 -0
  43. package/dist/url.d.ts +1 -0
  44. package/dist/url.js +4 -0
  45. package/dist/webhook.js +1 -1
  46. package/dist/workforce-bff.d.ts +202 -0
  47. package/dist/workforce-bff.js +462 -0
  48. package/examples/postgres-checkpoint-store.mjs +116 -0
  49. package/examples/postgres-checkpoints.sql +9 -0
  50. package/llms.txt +29 -9
  51. package/package.json +8 -3
@@ -0,0 +1,404 @@
1
+ /** Tenant treasury wallets and transfers. Signer authority is verified by the API. */
2
+ import { Resource, type ReqBody, type Query } from './base.js';
3
+ import type { XKOVAMutationOptions } from '../client.js';
4
+ export declare class TreasuryResource extends Resource {
5
+ listWallets(query?: Query<'listTreasuryWallets'>): Promise<{
6
+ data?: import("../generated/types.js").components["schemas"]["TreasuryWallet"][];
7
+ }>;
8
+ createWallet(body: ReqBody<'createTreasuryWallet'>, opts?: XKOVAMutationOptions): Promise<{
9
+ id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
10
+ tenant_id: string;
11
+ chain_id: string;
12
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
13
+ address: string;
14
+ name: string;
15
+ threshold: number;
16
+ state: "deploying" | "active" | "decommissioned";
17
+ is_revenue_treasury: boolean;
18
+ signers: import("../generated/types.js").components["schemas"]["TreasurySigner"][];
19
+ deploy_tx_hash: string | null;
20
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
21
+ updated_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
22
+ }>;
23
+ getWallet(id: string): Promise<{
24
+ id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
25
+ tenant_id: string;
26
+ chain_id: string;
27
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
28
+ address: string;
29
+ name: string;
30
+ threshold: number;
31
+ state: "deploying" | "active" | "decommissioned";
32
+ is_revenue_treasury: boolean;
33
+ signers: import("../generated/types.js").components["schemas"]["TreasurySigner"][];
34
+ deploy_tx_hash: string | null;
35
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
36
+ updated_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
37
+ }>;
38
+ walletBalance(id: string): Promise<{
39
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
40
+ chain_id: string;
41
+ balances: import("../generated/types.js").components["schemas"]["TreasuryBalance"][];
42
+ fetched_at: string;
43
+ }>;
44
+ listSigners(id: string): Promise<{
45
+ data?: import("../generated/types.js").components["schemas"]["TreasurySigner"][];
46
+ }>;
47
+ addSigner(id: string, body: ReqBody<'addTreasurySigner'>, opts?: XKOVAMutationOptions): Promise<{
48
+ status: "pending_approval";
49
+ pending_approval_request_id: import("../generated/types.js").components["schemas"]["ApprovalRequestId"];
50
+ } | {
51
+ wallet: import("../generated/types.js").components["schemas"]["TreasuryWallet"];
52
+ draft_transfer_id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
53
+ }>;
54
+ changeThreshold(id: string, body: ReqBody<'changeTreasuryThreshold'>, opts?: XKOVAMutationOptions): Promise<{
55
+ status: "pending_approval";
56
+ pending_approval_request_id: import("../generated/types.js").components["schemas"]["ApprovalRequestId"];
57
+ } | {
58
+ wallet: import("../generated/types.js").components["schemas"]["TreasuryWallet"];
59
+ draft_transfer_id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
60
+ }>;
61
+ listTransfers(walletId: string, query?: Query<'listTreasuryTransfers'>): Promise<{
62
+ data: unknown[];
63
+ next_cursor: string | null;
64
+ has_more: boolean;
65
+ } & {
66
+ data?: import("../generated/types.js").components["schemas"]["TreasuryTransfer"][];
67
+ }>;
68
+ draftTransfer(walletId: string, body: ReqBody<'draftTreasuryTransfer'>, opts?: XKOVAMutationOptions): Promise<{
69
+ id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
70
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
71
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
72
+ initiated_by_staff_id: import("../generated/types.js").components["schemas"]["StaffId"];
73
+ kind: import("../generated/types.js").components["schemas"]["TreasuryTransferKind"];
74
+ to_address: string;
75
+ asset_token_address: string | null;
76
+ amount: string | null;
77
+ safe_nonce: string;
78
+ safe_tx_hash: string;
79
+ state: import("../generated/types.js").components["schemas"]["TreasuryTransferState"];
80
+ memo?: string | null;
81
+ tax_classification?: string | null;
82
+ counterparty_id?: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"] | null;
83
+ signatures: import("../generated/types.js").components["schemas"]["TreasuryTransferSignature"][];
84
+ threshold: number;
85
+ threshold_met: boolean;
86
+ signing_context?: import("../generated/types.js").components["schemas"]["TreasuryTransferSigningContext"] | null;
87
+ execute_tx_hash: string | null;
88
+ failure_reason_code: string | null;
89
+ failure_reason_detail: string | null;
90
+ failure_retryable: boolean;
91
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
92
+ executed_at: string | null;
93
+ confirmed_at: string | null;
94
+ }>;
95
+ getTransfer(id: string, query?: Query<'getTreasuryTransfer'>): Promise<{
96
+ id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
97
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
98
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
99
+ initiated_by_staff_id: import("../generated/types.js").components["schemas"]["StaffId"];
100
+ kind: import("../generated/types.js").components["schemas"]["TreasuryTransferKind"];
101
+ to_address: string;
102
+ asset_token_address: string | null;
103
+ amount: string | null;
104
+ safe_nonce: string;
105
+ safe_tx_hash: string;
106
+ state: import("../generated/types.js").components["schemas"]["TreasuryTransferState"];
107
+ memo?: string | null;
108
+ tax_classification?: string | null;
109
+ counterparty_id?: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"] | null;
110
+ signatures: import("../generated/types.js").components["schemas"]["TreasuryTransferSignature"][];
111
+ threshold: number;
112
+ threshold_met: boolean;
113
+ signing_context?: import("../generated/types.js").components["schemas"]["TreasuryTransferSigningContext"] | null;
114
+ execute_tx_hash: string | null;
115
+ failure_reason_code: string | null;
116
+ failure_reason_detail: string | null;
117
+ failure_retryable: boolean;
118
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
119
+ executed_at: string | null;
120
+ confirmed_at: string | null;
121
+ }>;
122
+ submitTransferSignature(id: string, body: ReqBody<'submitTreasuryTransferSignature'>, opts?: XKOVAMutationOptions): Promise<{
123
+ id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
124
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
125
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
126
+ initiated_by_staff_id: import("../generated/types.js").components["schemas"]["StaffId"];
127
+ kind: import("../generated/types.js").components["schemas"]["TreasuryTransferKind"];
128
+ to_address: string;
129
+ asset_token_address: string | null;
130
+ amount: string | null;
131
+ safe_nonce: string;
132
+ safe_tx_hash: string;
133
+ state: import("../generated/types.js").components["schemas"]["TreasuryTransferState"];
134
+ memo?: string | null;
135
+ tax_classification?: string | null;
136
+ counterparty_id?: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"] | null;
137
+ signatures: import("../generated/types.js").components["schemas"]["TreasuryTransferSignature"][];
138
+ threshold: number;
139
+ threshold_met: boolean;
140
+ signing_context?: import("../generated/types.js").components["schemas"]["TreasuryTransferSigningContext"] | null;
141
+ execute_tx_hash: string | null;
142
+ failure_reason_code: string | null;
143
+ failure_reason_detail: string | null;
144
+ failure_retryable: boolean;
145
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
146
+ executed_at: string | null;
147
+ confirmed_at: string | null;
148
+ }>;
149
+ executeTransfer(id: string, opts?: XKOVAMutationOptions): Promise<{
150
+ id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
151
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
152
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
153
+ initiated_by_staff_id: import("../generated/types.js").components["schemas"]["StaffId"];
154
+ kind: import("../generated/types.js").components["schemas"]["TreasuryTransferKind"];
155
+ to_address: string;
156
+ asset_token_address: string | null;
157
+ amount: string | null;
158
+ safe_nonce: string;
159
+ safe_tx_hash: string;
160
+ state: import("../generated/types.js").components["schemas"]["TreasuryTransferState"];
161
+ memo?: string | null;
162
+ tax_classification?: string | null;
163
+ counterparty_id?: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"] | null;
164
+ signatures: import("../generated/types.js").components["schemas"]["TreasuryTransferSignature"][];
165
+ threshold: number;
166
+ threshold_met: boolean;
167
+ signing_context?: import("../generated/types.js").components["schemas"]["TreasuryTransferSigningContext"] | null;
168
+ execute_tx_hash: string | null;
169
+ failure_reason_code: string | null;
170
+ failure_reason_detail: string | null;
171
+ failure_retryable: boolean;
172
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
173
+ executed_at: string | null;
174
+ confirmed_at: string | null;
175
+ }>;
176
+ cancelTransfer(id: string, opts?: XKOVAMutationOptions): Promise<{
177
+ id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
178
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
179
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
180
+ initiated_by_staff_id: import("../generated/types.js").components["schemas"]["StaffId"];
181
+ kind: import("../generated/types.js").components["schemas"]["TreasuryTransferKind"];
182
+ to_address: string;
183
+ asset_token_address: string | null;
184
+ amount: string | null;
185
+ safe_nonce: string;
186
+ safe_tx_hash: string;
187
+ state: import("../generated/types.js").components["schemas"]["TreasuryTransferState"];
188
+ memo?: string | null;
189
+ tax_classification?: string | null;
190
+ counterparty_id?: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"] | null;
191
+ signatures: import("../generated/types.js").components["schemas"]["TreasuryTransferSignature"][];
192
+ threshold: number;
193
+ threshold_met: boolean;
194
+ signing_context?: import("../generated/types.js").components["schemas"]["TreasuryTransferSigningContext"] | null;
195
+ execute_tx_hash: string | null;
196
+ failure_reason_code: string | null;
197
+ failure_reason_detail: string | null;
198
+ failure_retryable: boolean;
199
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
200
+ executed_at: string | null;
201
+ confirmed_at: string | null;
202
+ }>;
203
+ decommissionWallet(id: string, opts?: XKOVAMutationOptions): Promise<void>;
204
+ designateRevenueWallet(id: string, opts?: XKOVAMutationOptions): Promise<{
205
+ status: "pending_approval";
206
+ pending_approval_request_id: import("../generated/types.js").components["schemas"]["ApprovalRequestId"];
207
+ } | {
208
+ id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
209
+ tenant_id: string;
210
+ chain_id: string;
211
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
212
+ address: string;
213
+ name: string;
214
+ threshold: number;
215
+ state: "deploying" | "active" | "decommissioned";
216
+ is_revenue_treasury: boolean;
217
+ signers: import("../generated/types.js").components["schemas"]["TreasurySigner"][];
218
+ deploy_tx_hash: string | null;
219
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
220
+ updated_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
221
+ }>;
222
+ deleteSigner(id: string, staffId: string, opts?: XKOVAMutationOptions, query?: Query<'removeTreasurySigner'>): Promise<{
223
+ status: "pending_approval";
224
+ pending_approval_request_id: import("../generated/types.js").components["schemas"]["ApprovalRequestId"];
225
+ } | {
226
+ wallet: import("../generated/types.js").components["schemas"]["TreasuryWallet"];
227
+ draft_transfer_id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
228
+ }>;
229
+ walletTransactions(id: string, query?: Query<'getTreasuryWalletTransactions'>): Promise<{
230
+ data: unknown[];
231
+ next_cursor: string | null;
232
+ has_more: boolean;
233
+ } & {
234
+ data?: import("../generated/types.js").components["schemas"]["TreasuryTransfer"][];
235
+ }>;
236
+ listNftHoldings(walletId: string, query?: Query<'listTreasuryNftHoldings'>): Promise<{
237
+ data: import("../generated/types.js").components["schemas"]["TreasuryNftHolding"][];
238
+ next_cursor: string | null;
239
+ has_more: boolean;
240
+ }>;
241
+ draftNftTransfer(walletId: string, body: ReqBody<'draftTreasuryNftTransfer'>, opts?: XKOVAMutationOptions): Promise<{
242
+ id: import("../generated/types.js").components["schemas"]["TreasuryTransferId"];
243
+ treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
244
+ chain: import("../generated/types.js").components["schemas"]["ChainDescriptor"];
245
+ initiated_by_staff_id: import("../generated/types.js").components["schemas"]["StaffId"];
246
+ kind: import("../generated/types.js").components["schemas"]["TreasuryTransferKind"];
247
+ to_address: string;
248
+ asset_token_address: string | null;
249
+ amount: string | null;
250
+ safe_nonce: string;
251
+ safe_tx_hash: string;
252
+ state: import("../generated/types.js").components["schemas"]["TreasuryTransferState"];
253
+ memo?: string | null;
254
+ tax_classification?: string | null;
255
+ counterparty_id?: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"] | null;
256
+ signatures: import("../generated/types.js").components["schemas"]["TreasuryTransferSignature"][];
257
+ threshold: number;
258
+ threshold_met: boolean;
259
+ signing_context?: import("../generated/types.js").components["schemas"]["TreasuryTransferSigningContext"] | null;
260
+ execute_tx_hash: string | null;
261
+ failure_reason_code: string | null;
262
+ failure_reason_detail: string | null;
263
+ failure_retryable: boolean;
264
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
265
+ executed_at: string | null;
266
+ confirmed_at: string | null;
267
+ }>;
268
+ listAssets(query: Query<'listTreasuryAssets'>): Promise<{
269
+ data?: import("../generated/types.js").components["schemas"]["TreasuryAsset"][];
270
+ }>;
271
+ listCounterparties(query?: Query<'listTreasuryCounterparties'>): Promise<{
272
+ data: unknown[];
273
+ next_cursor: string | null;
274
+ has_more: boolean;
275
+ } & {
276
+ data?: import("../generated/types.js").components["schemas"]["TreasuryCounterparty"][];
277
+ }>;
278
+ createCounterparty(body: ReqBody<'createTreasuryCounterparty'>, opts?: XKOVAMutationOptions): Promise<{
279
+ status: "pending_approval";
280
+ pending_approval_request_id: import("../generated/types.js").components["schemas"]["ApprovalRequestId"];
281
+ } | {
282
+ id: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"];
283
+ display_name: string;
284
+ legal_name: string | null;
285
+ tax_id: string | null;
286
+ tax_id_type: "ein" | "ssn" | "foreign" | "none";
287
+ classification_default: string | null;
288
+ addresses: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyAddress"][];
289
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
290
+ updated_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
291
+ }>;
292
+ updateCounterparty(id: string, body: ReqBody<'updateTreasuryCounterparty'>, opts?: XKOVAMutationOptions): Promise<{
293
+ id: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyId"];
294
+ display_name: string;
295
+ legal_name: string | null;
296
+ tax_id: string | null;
297
+ tax_id_type: "ein" | "ssn" | "foreign" | "none";
298
+ classification_default: string | null;
299
+ addresses: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyAddress"][];
300
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
301
+ updated_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
302
+ }>;
303
+ addCounterpartyAddress(id: string, body: ReqBody<'addTreasuryCounterpartyAddress'>, opts?: XKOVAMutationOptions): Promise<{
304
+ id: import("../generated/types.js").components["schemas"]["TreasuryCounterpartyAddressId"];
305
+ chain_id: string;
306
+ address: string;
307
+ added_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
308
+ }>;
309
+ deleteCounterpartyAddress(id: string, addressId: string, opts?: XKOVAMutationOptions): Promise<void>;
310
+ listRevenueChanges(): Promise<{
311
+ data: import("../generated/types.js").components["schemas"]["RevenueTreasuryChange"][];
312
+ }>;
313
+ createRevenueChange(body: ReqBody<'createRevenueTreasuryChange'>, opts?: XKOVAMutationOptions): Promise<{
314
+ id: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeId"];
315
+ from_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
316
+ to_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
317
+ required_approvals: number;
318
+ signature_count: number;
319
+ state: "open" | "partially_approved" | "ready_to_apply" | "applied" | "cancelled";
320
+ signatures: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeSignature"][];
321
+ signing_context: {
322
+ [key: string]: unknown;
323
+ };
324
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
325
+ approved_at: string | null;
326
+ applied_at: string | null;
327
+ cancelled_at: string | null;
328
+ } | {
329
+ status: "pending_approval";
330
+ pending_approval_request_id: import("../generated/types.js").components["schemas"]["ApprovalRequestId"];
331
+ }>;
332
+ getRevenueChange(id: string): Promise<{
333
+ id: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeId"];
334
+ from_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
335
+ to_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
336
+ required_approvals: number;
337
+ signature_count: number;
338
+ state: "open" | "partially_approved" | "ready_to_apply" | "applied" | "cancelled";
339
+ signatures: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeSignature"][];
340
+ signing_context: {
341
+ [key: string]: unknown;
342
+ };
343
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
344
+ approved_at: string | null;
345
+ applied_at: string | null;
346
+ cancelled_at: string | null;
347
+ }>;
348
+ applyRevenueChange(id: string, opts?: XKOVAMutationOptions): Promise<{
349
+ id: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeId"];
350
+ from_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
351
+ to_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
352
+ required_approvals: number;
353
+ signature_count: number;
354
+ state: "open" | "partially_approved" | "ready_to_apply" | "applied" | "cancelled";
355
+ signatures: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeSignature"][];
356
+ signing_context: {
357
+ [key: string]: unknown;
358
+ };
359
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
360
+ approved_at: string | null;
361
+ applied_at: string | null;
362
+ cancelled_at: string | null;
363
+ }>;
364
+ cancelRevenueChange(id: string, opts?: XKOVAMutationOptions): Promise<{
365
+ id: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeId"];
366
+ from_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
367
+ to_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
368
+ required_approvals: number;
369
+ signature_count: number;
370
+ state: "open" | "partially_approved" | "ready_to_apply" | "applied" | "cancelled";
371
+ signatures: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeSignature"][];
372
+ signing_context: {
373
+ [key: string]: unknown;
374
+ };
375
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
376
+ approved_at: string | null;
377
+ applied_at: string | null;
378
+ cancelled_at: string | null;
379
+ }>;
380
+ signRevenueChange(id: string, body: ReqBody<'signRevenueTreasuryChange'>, opts?: XKOVAMutationOptions): Promise<{
381
+ id: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeId"];
382
+ from_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
383
+ to_treasury_wallet_id: import("../generated/types.js").components["schemas"]["TreasuryWalletId"];
384
+ required_approvals: number;
385
+ signature_count: number;
386
+ state: "open" | "partially_approved" | "ready_to_apply" | "applied" | "cancelled";
387
+ signatures: import("../generated/types.js").components["schemas"]["RevenueTreasuryChangeSignature"][];
388
+ signing_context: {
389
+ [key: string]: unknown;
390
+ };
391
+ created_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
392
+ approved_at: string | null;
393
+ applied_at: string | null;
394
+ cancelled_at: string | null;
395
+ }>;
396
+ tax1099Summary(query: Query<'getTax1099Summary'>): Promise<{
397
+ year: number;
398
+ counterparties: import("../generated/types.js").components["schemas"]["Tax1099SummaryRow"][];
399
+ }>;
400
+ /** 1099-MISC as raw CSV. */
401
+ tax1099Csv(query: Query<'getTax1099Csv'>): Promise<string>;
402
+ /** Treasury transactions as raw CSV. */
403
+ taxTransactionsCsv(query: Query<'getTaxTransactionsCsv'>): Promise<string>;
404
+ }
@@ -0,0 +1,115 @@
1
+ /** Tenant treasury wallets and transfers. Signer authority is verified by the API. */
2
+ import { Resource } from './base.js';
3
+ export class TreasuryResource extends Resource {
4
+ // ── Wallets (Safes) ──────────────────────────────────────────────
5
+ listWallets(query = {}) {
6
+ return this.getJson('/treasury/wallets', query);
7
+ }
8
+ createWallet(body, opts) {
9
+ return this.postJson('/treasury/wallets', body, opts);
10
+ }
11
+ getWallet(id) {
12
+ return this.getJson(`/treasury/wallets/${this.enc(id)}`);
13
+ }
14
+ walletBalance(id) {
15
+ return this.getJson(`/treasury/wallets/${this.enc(id)}/balance`);
16
+ }
17
+ listSigners(id) {
18
+ return this.getJson(`/treasury/wallets/${this.enc(id)}/signers`);
19
+ }
20
+ addSigner(id, body, opts) {
21
+ return this.postJson(`/treasury/wallets/${this.enc(id)}/signers`, body, opts);
22
+ }
23
+ changeThreshold(id, body, opts) {
24
+ return this.postJson(`/treasury/wallets/${this.enc(id)}/threshold`, body, opts);
25
+ }
26
+ // ── Transfers (draft → sign → execute) ───────────────────────────
27
+ listTransfers(walletId, query = {}) {
28
+ return this.getJson(`/treasury/wallets/${this.enc(walletId)}/transfers`, query);
29
+ }
30
+ draftTransfer(walletId, body, opts) {
31
+ return this.postJson(`/treasury/wallets/${this.enc(walletId)}/transfers`, body, opts);
32
+ }
33
+ getTransfer(id, query = {}) {
34
+ return this.getJson(`/treasury/transfers/${this.enc(id)}`, query);
35
+ }
36
+ submitTransferSignature(id, body, opts) {
37
+ return this.postJson(`/treasury/transfers/${this.enc(id)}/signatures`, body, opts);
38
+ }
39
+ executeTransfer(id, opts) {
40
+ return this.postJson(`/treasury/transfers/${this.enc(id)}/execute`, undefined, opts);
41
+ }
42
+ cancelTransfer(id, opts) {
43
+ return this.postJson(`/treasury/transfers/${this.enc(id)}/cancel`, undefined, opts);
44
+ }
45
+ // ── Wallet lifecycle + NFT holdings ──────────────────────────────
46
+ decommissionWallet(id, opts) {
47
+ return this.postJson(`/treasury/wallets/${this.enc(id)}/decommission`, undefined, opts);
48
+ }
49
+ designateRevenueWallet(id, opts) {
50
+ return this.postJson(`/treasury/wallets/${this.enc(id)}/designate-revenue`, undefined, opts);
51
+ }
52
+ deleteSigner(id, staffId, opts, query = {}) {
53
+ return this.deleteJson(`/treasury/wallets/${this.enc(id)}/signers/${this.enc(staffId)}`, opts, query);
54
+ }
55
+ walletTransactions(id, query = {}) {
56
+ return this.getJson(`/treasury/wallets/${this.enc(id)}/transactions`, query);
57
+ }
58
+ listNftHoldings(walletId, query = {}) {
59
+ return this.getJson(`/treasury/wallets/${this.enc(walletId)}/nft-holdings`, query);
60
+ }
61
+ draftNftTransfer(walletId, body, opts) {
62
+ return this.postJson(`/treasury/wallets/${this.enc(walletId)}/nft-transfers`, body, opts);
63
+ }
64
+ // ── Available assets ─────────────────────────────────────────────
65
+ listAssets(query) {
66
+ return this.getJson('/treasury/assets', query);
67
+ }
68
+ // ── Counterparties ───────────────────────────────────────────────
69
+ listCounterparties(query = {}) {
70
+ return this.getJson('/treasury/counterparties', query);
71
+ }
72
+ createCounterparty(body, opts) {
73
+ return this.postJson('/treasury/counterparties', body, opts);
74
+ }
75
+ updateCounterparty(id, body, opts) {
76
+ return this.patchJson(`/treasury/counterparties/${this.enc(id)}`, body, opts);
77
+ }
78
+ addCounterpartyAddress(id, body, opts) {
79
+ return this.postJson(`/treasury/counterparties/${this.enc(id)}/addresses`, body, opts);
80
+ }
81
+ deleteCounterpartyAddress(id, addressId, opts) {
82
+ return this.deleteJson(`/treasury/counterparties/${this.enc(id)}/addresses/${this.enc(addressId)}`, opts);
83
+ }
84
+ // ── Revenue-treasury change ceremonies ───────────────────────────
85
+ listRevenueChanges() {
86
+ return this.getJson('/treasury/revenue-changes');
87
+ }
88
+ createRevenueChange(body, opts) {
89
+ return this.postJson('/treasury/revenue-changes', body, opts);
90
+ }
91
+ getRevenueChange(id) {
92
+ return this.getJson(`/treasury/revenue-changes/${this.enc(id)}`);
93
+ }
94
+ applyRevenueChange(id, opts) {
95
+ return this.postJson(`/treasury/revenue-changes/${this.enc(id)}/apply`, undefined, opts);
96
+ }
97
+ cancelRevenueChange(id, opts) {
98
+ return this.postJson(`/treasury/revenue-changes/${this.enc(id)}/cancel`, undefined, opts);
99
+ }
100
+ signRevenueChange(id, body, opts) {
101
+ return this.postJson(`/treasury/revenue-changes/${this.enc(id)}/signatures`, body, opts);
102
+ }
103
+ // ── Tax exports ──────────────────────────────────────────────────
104
+ tax1099Summary(query) {
105
+ return this.getJson('/treasury/tax/1099-summary', query);
106
+ }
107
+ /** 1099-MISC as raw CSV. */
108
+ tax1099Csv(query) {
109
+ return this.getText('/treasury/tax/1099-misc.csv', query);
110
+ }
111
+ /** Treasury transactions as raw CSV. */
112
+ taxTransactionsCsv(query) {
113
+ return this.getText('/treasury/tax/transactions.csv', query);
114
+ }
115
+ }
@@ -16,6 +16,7 @@ export declare class WalletsResource extends Resource {
16
16
  updated_at: import("../generated/types.js").components["schemas"]["TimestampUtc"];
17
17
  }>;
18
18
  balance(id: string, query: Query<'getWalletBalance'>): Promise<{
19
+ data_freshness: import("../generated/types.js").components["schemas"]["DataFreshness"][];
19
20
  chain_id: number;
20
21
  wallet: string;
21
22
  token: string;
@@ -34,6 +35,7 @@ export declare class WalletsResource extends Resource {
34
35
  has_more: boolean;
35
36
  } & {
36
37
  data?: import("../generated/types.js").components["schemas"]["LedgerEntry"][];
38
+ data_freshness: import("../generated/types.js").components["schemas"]["DataFreshness"][];
37
39
  }>;
38
40
  decommission(id: string, opts?: XKOVAMutationOptions): Promise<{
39
41
  id: import("../generated/types.js").components["schemas"]["WalletId"];
@@ -48,7 +48,7 @@ export declare class WebhooksResource extends Resource {
48
48
  updated_at?: import("../generated/types.js").components["schemas"]["TimestampUtc"];
49
49
  }>;
50
50
  delete(id: string, opts?: XKOVAMutationOptions): Promise<void>;
51
- rotateSecret(id: string, opts?: XKOVAMutationOptions): Promise<{
51
+ rotateSecret(id: string, opts?: XKOVAMutationOptions, body?: ReqBody<'rotateWebhookEndpointSecret'>): Promise<{
52
52
  id?: import("../generated/types.js").components["schemas"]["WebhookEndpointId"];
53
53
  url?: string;
54
54
  events?: string[];
@@ -19,8 +19,8 @@ export class WebhooksResource extends Resource {
19
19
  delete(id, opts) {
20
20
  return this.deleteJson(`/webhook-endpoints/${this.enc(id)}`, opts);
21
21
  }
22
- rotateSecret(id, opts) {
23
- return this.postJson(`/webhook-endpoints/${this.enc(id)}/rotate`, undefined, opts);
22
+ rotateSecret(id, opts, body) {
23
+ return this.postJson(`/webhook-endpoints/${this.enc(id)}/rotate`, body, opts);
24
24
  }
25
25
  test(id, opts) {
26
26
  return this.postJson(`/webhook-endpoints/${this.enc(id)}/test`, undefined, opts);
@@ -16,8 +16,9 @@ export declare class WorkflowClient {
16
16
  private readonly client;
17
17
  constructor(client: XKOVAClient);
18
18
  /**
19
- * Deploy a token and wait for on-chain confirmation.
20
- * The deploy poller auto-registers the token on the payment router.
19
+ * Submit deployment once and observe the exact customer token until active.
20
+ * The returned operation ID is diagnostic; deployment operations are not
21
+ * available through the operation read API.
21
22
  */
22
23
  tokenDeploy(standard: 'erc20', body: ReqBody<'deployCustomerErc20'>, opts?: XKOVAMutationOptions & {
23
24
  poll?: PollOptions;
@@ -28,14 +29,14 @@ export declare class WorkflowClient {
28
29
  tokenDeploy(standard: 'erc1155', body: ReqBody<'deployCustomerErc1155'>, opts?: XKOVAMutationOptions & {
29
30
  poll?: PollOptions;
30
31
  }): Promise<Ok<'getCustomerToken'>>;
31
- /** Mint to a holder and wait for confirmation. */
32
+ /** Submit once and observe the exact mint operation. Required human signing remains separate. */
32
33
  tokenMint(tokenId: string, body: ReqBody<'mintCustomerToken'>, opts?: XKOVAMutationOptions & {
33
34
  poll?: PollOptions;
34
35
  }): Promise<Ok<'getCustomerToken'>>;
35
36
  /**
36
- * Off-ramp: resolve the burn address and create the request. The member then
37
- * burns stablecoin to the returned address out-of-band; poll
38
- * `client.ramps.getOffRamp(id)` for settlement.
37
+ * Resolve the registered burn address and create the caller's burn-backed
38
+ * request. This helper does not submit a transaction or establish settlement;
39
+ * poll `client.ramps.getOffRamp(id)` for the resulting request's state.
39
40
  */
40
41
  offRampInitiate(chainRef: string, body: ReqBody<'createOffRampRequest'>, opts?: XKOVAMutationOptions): Promise<{
41
42
  request: Ok<'createOffRampRequest'>;