maroo-viem-poc 0.1.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.
@@ -0,0 +1,3637 @@
1
+ import { AbiParametersToPrimitiveTypes, ExtractAbiFunction, ExtractAbiFunctionNames } from "abitype";
2
+ import { Abi, Account, Address, Chain, Client, ContractFunctionArgs, ContractFunctionName, Hex, ReadContractReturnType, Transport, WriteContractReturnType } from "viem";
3
+ import { iAgentAbi } from "@maroo-chain/contracts/abi/precompiles/agent/IAgent";
4
+ import { iEasAbi } from "@maroo-chain/contracts/abi/precompiles/eas/IEas";
5
+ import { iOkrwAbi } from "@maroo-chain/contracts/abi/precompiles/okrw/IOkrw";
6
+ import { iPclAbi } from "@maroo-chain/contracts/abi/precompiles/pcl/IPcl";
7
+
8
+ //#region src/constants.d.ts
9
+ /**
10
+ * Maroo static precompile addresses.
11
+ *
12
+ * Mirrors the `*_PRECOMPILED_ADDRESS` constants in
13
+ * `@maroo-chain/contracts/precompiles/{okrw,pcl,eas,agent}/I*.sol`.
14
+ *
15
+ * The contracts package does not export these from its TypeScript build
16
+ * (only the `.sol` sources carry them), so we redeclare them here.
17
+ * `test/addresses.test.ts` asserts these still match the installed package.
18
+ */
19
+ declare const precompileAddresses: {
20
+ readonly okrw: "0x1000000000000000000000000000000000000001";
21
+ readonly pcl: "0x1000000000000000000000000000000000000005"; /** Returns `eas` module params. Not the EAS contract itself — see {@link easContracts}. */
22
+ readonly eas: "0x1000000000000000000000000000000000000009";
23
+ readonly agent: "0x100000000000000000000000000000000000000A"; /** Clairveil shielded pool. Not yet deployed on marooTestnet. */
24
+ readonly privacy: "0x100000000000000000000000000000000000000b";
25
+ };
26
+ /**
27
+ * EAS contracts, as reported by `eas.getParams()` on marooTestnet.
28
+ *
29
+ * These sit at precompile-shaped addresses but implement the standard
30
+ * Ethereum Attestation Service interfaces. `@maroo-chain/contracts@0.0.6`
31
+ * ships no ABI for them; use `@ethereum-attestation-service/eas-contracts`.
32
+ *
33
+ * Do not hardcode these in application code — read them from
34
+ * `client.eas.getParams()`, which is authoritative per network.
35
+ */
36
+ declare const easContracts: {
37
+ readonly schemaRegistry: "0x1000000000000000000000000000000000000006";
38
+ readonly eas: "0x1000000000000000000000000000000000000007";
39
+ readonly indexer: "0x1000000000000000000000000000000000000008";
40
+ };
41
+ /** The selector wildcard. An empty `selector` matches every function. */
42
+ declare const SELECTOR_ALL: "0x";
43
+ /** `VolumeUnitPolicy.maxLimit` sentinel meaning "no upper bound". */
44
+ declare const NO_MAX_LIMIT: bigint;
45
+ //#endregion
46
+ //#region src/core/precompileActions.d.ts
47
+ type ReadName<abi extends Abi> = ContractFunctionName<abi, 'pure' | 'view'>;
48
+ type WriteName<abi extends Abi> = ContractFunctionName<abi, 'nonpayable' | 'payable'>;
49
+ /** Per-call escape hatch: precompile addresses are chain params, not universal. */
50
+ type PrecompileCallOptions = {
51
+ /** Override the precompile address for this call. */address?: Address | undefined;
52
+ };
53
+ type ReadArgs<abi extends Abi, name extends ReadName<abi>> = ContractFunctionArgs<abi, 'pure' | 'view', name>;
54
+ type WriteArgs<abi extends Abi, name extends WriteName<abi>> = ContractFunctionArgs<abi, 'nonpayable' | 'payable', name>;
55
+ /**
56
+ * The parameters tuple for a generated action: `args` (and the whole object)
57
+ * is optional only when the function takes no inputs. This preserves viem's
58
+ * own required-args typing — omitting mandatory args must fail at compile
59
+ * time, not as an AbiEncodingLengthMismatchError at runtime.
60
+ */
61
+ type ParametersFor<args, extra> = readonly [] extends args ? [parameters?: ({
62
+ args?: args;
63
+ } & extra) | undefined] : [parameters: {
64
+ args: args;
65
+ } & extra];
66
+ /**
67
+ * A read call as a plain descriptor, not an executed promise. Its shape is
68
+ * exactly what `multicall`, `simulateContract`, and `estimateContractGas`
69
+ * accept, so batching precompile reads (e.g. one PeriodicVolume per user)
70
+ * costs one round-trip instead of N.
71
+ */
72
+ type PrecompileReadCall<abi extends Abi, name extends ReadName<abi>> = {
73
+ address: Address;
74
+ abi: abi;
75
+ functionName: name;
76
+ args: ReadArgs<abi, name>;
77
+ };
78
+ type PrecompileReadActions<abi extends Abi> = { [name in ReadName<abi>]: ((...parameters: ParametersFor<ReadArgs<abi, name>, PrecompileCallOptions>) => Promise<ReadContractReturnType<abi, name>>) & {
79
+ /** Build a multicall/simulate descriptor for this read instead of executing it. */call: (...parameters: ParametersFor<ReadArgs<abi, name>, PrecompileCallOptions>) => PrecompileReadCall<abi, name>;
80
+ } };
81
+ /**
82
+ * `value` is only accepted for `payable` functions. On this chain no
83
+ * precompile write is payable — `runOnPcl` carries its forwarded value as an
84
+ * argument, and the precompile neither forwards nor refunds `msg.value`, so
85
+ * attaching it to the outer tx strands funds at the precompile address.
86
+ * Typing it `never` (and stripping it at runtime) closes that path.
87
+ *
88
+ * Payability is derived from `ExtractAbiFunction` rather than viem's
89
+ * `ContractFunctionName<abi, 'payable'>`: the latter widens to `string` when
90
+ * an ABI has NO payable functions, which would make every name "payable" —
91
+ * the exact opposite of the guard. With overloads, `value` is allowed when
92
+ * any overload is payable.
93
+ */
94
+ type WriteExtra<abi extends Abi, name> = PrecompileCallOptions & {
95
+ gas?: bigint | undefined;
96
+ } & ([name] extends [ExtractAbiFunctionNames<abi>] ? 'payable' extends ExtractAbiFunction<abi, name>['stateMutability'] ? {
97
+ value?: bigint | undefined;
98
+ } : {
99
+ value?: never;
100
+ } : {
101
+ value?: bigint | undefined;
102
+ });
103
+ type PrecompileWriteActions<abi extends Abi> = { [name in WriteName<abi>]: (...parameters: ParametersFor<WriteArgs<abi, name>, WriteExtra<abi, name>>) => Promise<WriteContractReturnType> };
104
+ /**
105
+ * The public shape of every decorator this factory produces.
106
+ *
107
+ * Declared as an explicit named alias — and used as the annotated return type
108
+ * of {@link precompileActions} — so TypeScript's declaration emit references
109
+ * it by name instead of structurally re-expanding the inferred type at each
110
+ * `export const xActions = precompileActions(...)` site. Without this the
111
+ * emitted `.d.ts` grows superlinearly with the number of decorators.
112
+ */
113
+ type PrecompileActions<abi extends Abi, mode extends 'read' | 'write' | 'all' = 'all'> = mode extends 'read' ? PrecompileReadActions<abi> : mode extends 'write' ? PrecompileWriteActions<abi> : PrecompileReadActions<abi> & PrecompileWriteActions<abi>;
114
+ type PrecompileActionsFactory<abi extends Abi, mode extends 'read' | 'write' | 'all'> = (config?: PrecompileCallOptions) => <transport extends Transport, chain extends Chain | undefined, account extends Account | undefined>(client: Client<transport, chain, account>) => PrecompileActions<abi, mode>;
115
+ /**
116
+ * Build a typed action map from an `as const` ABI by walking it at runtime.
117
+ *
118
+ * Replaces per-precompile codegen: every function in `abi` becomes one method,
119
+ * dispatched to `readContract` or `writeContract` by its state mutability.
120
+ *
121
+ * Overloads that agree on mutability share one dispatcher (viem resolves the
122
+ * overload from `args`). Overloads that mix read and write mutability throw at
123
+ * factory construction — a single dispatcher would silently misroute one side.
124
+ *
125
+ * @param abi - The precompile interface, as an `as const` ABI.
126
+ * @param defaultAddress - Where the precompile lives on a stock Maroo chain.
127
+ * @param options.mode - Emit only reads, only writes, or both.
128
+ * @param options.exclude - Function names to omit (codegen dummies, proxy hooks).
129
+ */
130
+ declare function precompileActions<const abi extends Abi, mode extends 'read' | 'write' | 'all' = 'all'>(abi: abi, defaultAddress: Address, options?: {
131
+ mode?: mode;
132
+ exclude?: readonly string[];
133
+ }): PrecompileActionsFactory<abi, mode>;
134
+ //#endregion
135
+ //#region src/actions/runOnPcl.d.ts
136
+ type RunOnPclBase = {
137
+ /** The contract — or plain account — to call *through* PCL. */address: Address; /** Native value forwarded to `address`. Debited from the caller, not from `msg.value`. */
138
+ value?: bigint | undefined;
139
+ gas?: bigint | undefined; /** Override the PCL precompile address. */
140
+ pclAddress?: Address | undefined;
141
+ };
142
+ type RunOnPclContractCall<abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>> = RunOnPclBase & {
143
+ abi: abi;
144
+ functionName: functionName;
145
+ args?: ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>;
146
+ data?: undefined;
147
+ };
148
+ /** A bare value transfer, or a call whose calldata you already encoded. */
149
+ type RunOnPclRawCall = RunOnPclBase & {
150
+ abi?: undefined;
151
+ functionName?: undefined;
152
+ args?: undefined;
153
+ data?: Hex | undefined;
154
+ };
155
+ type RunOnPclParameters<abi extends Abi | readonly unknown[] = Abi, functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'> = ContractFunctionName<abi, 'nonpayable' | 'payable'>> = RunOnPclContractCall<abi, functionName> | RunOnPclRawCall;
156
+ type RunOnPclReturnType = WriteContractReturnType;
157
+ /**
158
+ * Call a contract *through* the PCL precompile so that contract-scoped
159
+ * policies are enforced.
160
+ *
161
+ * A direct call to the same contract enforces **global policies only**. There
162
+ * is nothing in the target contract's ABI, nor in any revert, that signals
163
+ * this — the call simply succeeds with contract policies unapplied. Route
164
+ * through `runOnPcl` whenever the target has policies registered.
165
+ *
166
+ * For a contract call the parameter shape mirrors `writeContract`, so
167
+ * switching a call site is a one-word change. Omit `abi`/`functionName` to
168
+ * forward a bare native transfer, or pass pre-encoded `data`.
169
+ *
170
+ * @example
171
+ * ```ts
172
+ * const hash = await client.pcl.runOnPcl({
173
+ * address: token,
174
+ * abi: erc20Abi,
175
+ * functionName: 'transfer',
176
+ * args: [recipient, amount],
177
+ * })
178
+ *
179
+ * // Native transfer, policy-checked:
180
+ * const hash = await client.pcl.runOnPcl({ address: recipient, value: parseEther('1') })
181
+ * ```
182
+ */
183
+ declare function runOnPcl<chain extends Chain | undefined, account extends Account | undefined, const abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>>(client: Client<Transport, chain, account>, parameters: RunOnPclParameters<abi, functionName>): Promise<RunOnPclReturnType>;
184
+ //#endregion
185
+ //#region src/decorators/precompiles.d.ts
186
+ /**
187
+ * Per-precompile decorators, generated from the shipped ABIs.
188
+ *
189
+ * `eas` and `agent` are view-only; `okrw` exposes exactly one write (`mint`,
190
+ * restricted to `OkrwParams.minter`). None of them need hand-written actions.
191
+ *
192
+ * Each type alias below is named and exported deliberately — see the note on
193
+ * {@link PrecompileActions}.
194
+ */
195
+ type PclReadActions = PrecompileActions<typeof iPclAbi, 'read'>;
196
+ declare const pclReadActions: PrecompileActionsFactory<readonly [{
197
+ readonly type: "error";
198
+ readonly inputs: readonly [{
199
+ readonly name: "reason";
200
+ readonly internalType: "string";
201
+ readonly type: "string";
202
+ }];
203
+ readonly name: "AbiDecodeFailed";
204
+ }, {
205
+ readonly type: "error";
206
+ readonly inputs: readonly [];
207
+ readonly name: "AgentKeeperRequired";
208
+ }, {
209
+ readonly type: "error";
210
+ readonly inputs: readonly [{
211
+ readonly name: "reason";
212
+ readonly internalType: "string";
213
+ readonly type: "string";
214
+ }];
215
+ readonly name: "AgentTransferLimitMetadataInvalid";
216
+ }, {
217
+ readonly type: "error";
218
+ readonly inputs: readonly [{
219
+ readonly name: "childReverts";
220
+ readonly internalType: "bytes[]";
221
+ readonly type: "bytes[]";
222
+ }];
223
+ readonly name: "AnyOfRejected";
224
+ }, {
225
+ readonly type: "error";
226
+ readonly inputs: readonly [{
227
+ readonly name: "field";
228
+ readonly internalType: "string";
229
+ readonly type: "string";
230
+ }];
231
+ readonly name: "CannotEmpty";
232
+ }, {
233
+ readonly type: "error";
234
+ readonly inputs: readonly [];
235
+ readonly name: "ChildSelectorNotEmpty";
236
+ }, {
237
+ readonly type: "error";
238
+ readonly inputs: readonly [{
239
+ readonly name: "templateId";
240
+ readonly internalType: "string";
241
+ readonly type: "string";
242
+ }];
243
+ readonly name: "DuplicatedPolicyTemplate";
244
+ }, {
245
+ readonly type: "error";
246
+ readonly inputs: readonly [{
247
+ readonly name: "sender";
248
+ readonly internalType: "address";
249
+ readonly type: "address";
250
+ }];
251
+ readonly name: "EasAttestationExpired";
252
+ }, {
253
+ readonly type: "error";
254
+ readonly inputs: readonly [{
255
+ readonly name: "sender";
256
+ readonly internalType: "address";
257
+ readonly type: "address";
258
+ }];
259
+ readonly name: "EasAttestationLookupFailed";
260
+ }, {
261
+ readonly type: "error";
262
+ readonly inputs: readonly [{
263
+ readonly name: "sender";
264
+ readonly internalType: "address";
265
+ readonly type: "address";
266
+ }];
267
+ readonly name: "EasAttestationRequired";
268
+ }, {
269
+ readonly type: "error";
270
+ readonly inputs: readonly [{
271
+ readonly name: "sender";
272
+ readonly internalType: "address";
273
+ readonly type: "address";
274
+ }];
275
+ readonly name: "EasAttestationRevoked";
276
+ }, {
277
+ readonly type: "error";
278
+ readonly inputs: readonly [{
279
+ readonly name: "sender";
280
+ readonly internalType: "address";
281
+ readonly type: "address";
282
+ }];
283
+ readonly name: "EasNoAttestationReceived";
284
+ }, {
285
+ readonly type: "error";
286
+ readonly inputs: readonly [{
287
+ readonly name: "maxLimit";
288
+ readonly internalType: "uint256";
289
+ readonly type: "uint256";
290
+ }, {
291
+ readonly name: "value";
292
+ readonly internalType: "uint256";
293
+ readonly type: "uint256";
294
+ }];
295
+ readonly name: "ExceededAgentTransferLimit";
296
+ }, {
297
+ readonly type: "error";
298
+ readonly inputs: readonly [{
299
+ readonly name: "maxLimit";
300
+ readonly internalType: "uint256";
301
+ readonly type: "uint256";
302
+ }, {
303
+ readonly name: "value";
304
+ readonly internalType: "uint256";
305
+ readonly type: "uint256";
306
+ }, {
307
+ readonly name: "resetAt";
308
+ readonly internalType: "uint256";
309
+ readonly type: "uint256";
310
+ }];
311
+ readonly name: "ExceededPeriodicVolume";
312
+ }, {
313
+ readonly type: "error";
314
+ readonly inputs: readonly [];
315
+ readonly name: "ForEachChildAbsent";
316
+ }, {
317
+ readonly type: "error";
318
+ readonly inputs: readonly [];
319
+ readonly name: "ForEachSubjectUnspecified";
320
+ }, {
321
+ readonly type: "error";
322
+ readonly inputs: readonly [{
323
+ readonly name: "sender";
324
+ readonly internalType: "address";
325
+ readonly type: "address";
326
+ }];
327
+ readonly name: "InDenylist";
328
+ }, {
329
+ readonly type: "error";
330
+ readonly inputs: readonly [{
331
+ readonly name: "input";
332
+ readonly internalType: "string";
333
+ readonly type: "string";
334
+ }];
335
+ readonly name: "InvalidAddress";
336
+ }, {
337
+ readonly type: "error";
338
+ readonly inputs: readonly [];
339
+ readonly name: "InvalidCall";
340
+ }, {
341
+ readonly type: "error";
342
+ readonly inputs: readonly [{
343
+ readonly name: "input";
344
+ readonly internalType: "bytes";
345
+ readonly type: "bytes";
346
+ }];
347
+ readonly name: "InvalidParameter";
348
+ }, {
349
+ readonly type: "error";
350
+ readonly inputs: readonly [{
351
+ readonly name: "input";
352
+ readonly internalType: "string";
353
+ readonly type: "string";
354
+ }];
355
+ readonly name: "InvalidPolicyTemplate";
356
+ }, {
357
+ readonly type: "error";
358
+ readonly inputs: readonly [{
359
+ readonly name: "input";
360
+ readonly internalType: "bytes";
361
+ readonly type: "bytes";
362
+ }];
363
+ readonly name: "InvalidSelector";
364
+ }, {
365
+ readonly type: "error";
366
+ readonly inputs: readonly [{
367
+ readonly name: "got";
368
+ readonly internalType: "string";
369
+ readonly type: "string";
370
+ }];
371
+ readonly name: "InvalidStructType";
372
+ }, {
373
+ readonly type: "error";
374
+ readonly inputs: readonly [];
375
+ readonly name: "JSONMarshal";
376
+ }, {
377
+ readonly type: "error";
378
+ readonly inputs: readonly [];
379
+ readonly name: "JSONUnmarshal";
380
+ }, {
381
+ readonly type: "error";
382
+ readonly inputs: readonly [{
383
+ readonly name: "index";
384
+ readonly internalType: "uint256";
385
+ readonly type: "uint256";
386
+ }];
387
+ readonly name: "LogicalPolicyChildNil";
388
+ }, {
389
+ readonly type: "error";
390
+ readonly inputs: readonly [];
391
+ readonly name: "LogicalPolicyChildrenEmpty";
392
+ }, {
393
+ readonly type: "error";
394
+ readonly inputs: readonly [{
395
+ readonly name: "maxDepth";
396
+ readonly internalType: "uint8";
397
+ readonly type: "uint8";
398
+ }];
399
+ readonly name: "MaxDepthExceeded";
400
+ }, {
401
+ readonly type: "error";
402
+ readonly inputs: readonly [{
403
+ readonly name: "policy";
404
+ readonly internalType: "string";
405
+ readonly type: "string";
406
+ }];
407
+ readonly name: "PolicyAlreadyRegistered";
408
+ }, {
409
+ readonly type: "error";
410
+ readonly inputs: readonly [{
411
+ readonly name: "policyType";
412
+ readonly internalType: "string";
413
+ readonly type: "string";
414
+ }];
415
+ readonly name: "PolicyCannotBeNested";
416
+ }, {
417
+ readonly type: "error";
418
+ readonly inputs: readonly [{
419
+ readonly name: "policy";
420
+ readonly internalType: "string";
421
+ readonly type: "string";
422
+ }];
423
+ readonly name: "PolicyNotRegistered";
424
+ }, {
425
+ readonly type: "error";
426
+ readonly inputs: readonly [];
427
+ readonly name: "PolicyTemplateInUse";
428
+ }, {
429
+ readonly type: "error";
430
+ readonly inputs: readonly [];
431
+ readonly name: "QuantifierUnspecified";
432
+ }, {
433
+ readonly type: "error";
434
+ readonly inputs: readonly [{
435
+ readonly name: "maxLimit";
436
+ readonly internalType: "uint256";
437
+ readonly type: "uint256";
438
+ }, {
439
+ readonly name: "value";
440
+ readonly internalType: "uint256";
441
+ readonly type: "uint256";
442
+ }];
443
+ readonly name: "ReachedLimitOfNonEAS";
444
+ }, {
445
+ readonly type: "error";
446
+ readonly inputs: readonly [];
447
+ readonly name: "Unauthorized";
448
+ }, {
449
+ readonly type: "error";
450
+ readonly inputs: readonly [{
451
+ readonly name: "subject";
452
+ readonly internalType: "uint8";
453
+ readonly type: "uint8";
454
+ }];
455
+ readonly name: "UnknownForEachSubject";
456
+ }, {
457
+ readonly type: "error";
458
+ readonly inputs: readonly [];
459
+ readonly name: "UnknownPolicyConfigType";
460
+ }, {
461
+ readonly type: "error";
462
+ readonly inputs: readonly [{
463
+ readonly name: "templateId";
464
+ readonly internalType: "string";
465
+ readonly type: "string";
466
+ }];
467
+ readonly name: "UnknownPolicyType";
468
+ }, {
469
+ readonly type: "error";
470
+ readonly inputs: readonly [{
471
+ readonly name: "maxLimit";
472
+ readonly internalType: "uint256";
473
+ readonly type: "uint256";
474
+ }, {
475
+ readonly name: "value";
476
+ readonly internalType: "uint256";
477
+ readonly type: "uint256";
478
+ }];
479
+ readonly name: "VolumeAboveMaxLimit";
480
+ }, {
481
+ readonly type: "error";
482
+ readonly inputs: readonly [{
483
+ readonly name: "minLimit";
484
+ readonly internalType: "uint256";
485
+ readonly type: "uint256";
486
+ }, {
487
+ readonly name: "value";
488
+ readonly internalType: "uint256";
489
+ readonly type: "uint256";
490
+ }];
491
+ readonly name: "VolumeBelowMinLimit";
492
+ }, {
493
+ readonly type: "event";
494
+ readonly anonymous: false;
495
+ readonly inputs: readonly [{
496
+ readonly name: "contractAddress";
497
+ readonly internalType: "address";
498
+ readonly type: "address";
499
+ readonly indexed: true;
500
+ }, {
501
+ readonly name: "admin";
502
+ readonly internalType: "address";
503
+ readonly type: "address";
504
+ readonly indexed: false;
505
+ }, {
506
+ readonly name: "policies";
507
+ readonly internalType: "struct PolicySet[]";
508
+ readonly type: "tuple[]";
509
+ readonly components: readonly [{
510
+ readonly name: "templateId";
511
+ readonly internalType: "string";
512
+ readonly type: "string";
513
+ }, {
514
+ readonly name: "policy";
515
+ readonly internalType: "bytes";
516
+ readonly type: "bytes";
517
+ }, {
518
+ readonly name: "selector";
519
+ readonly internalType: "bytes";
520
+ readonly type: "bytes";
521
+ }];
522
+ readonly indexed: false;
523
+ }];
524
+ readonly name: "ContractPoliciesChanged";
525
+ }, {
526
+ readonly type: "event";
527
+ readonly anonymous: false;
528
+ readonly inputs: readonly [{
529
+ readonly name: "contractAddress";
530
+ readonly internalType: "address";
531
+ readonly type: "address";
532
+ readonly indexed: true;
533
+ }, {
534
+ readonly name: "admin";
535
+ readonly internalType: "address";
536
+ readonly type: "address";
537
+ readonly indexed: false;
538
+ }, {
539
+ readonly name: "policies";
540
+ readonly internalType: "struct PolicySet[]";
541
+ readonly type: "tuple[]";
542
+ readonly components: readonly [{
543
+ readonly name: "templateId";
544
+ readonly internalType: "string";
545
+ readonly type: "string";
546
+ }, {
547
+ readonly name: "policy";
548
+ readonly internalType: "bytes";
549
+ readonly type: "bytes";
550
+ }, {
551
+ readonly name: "selector";
552
+ readonly internalType: "bytes";
553
+ readonly type: "bytes";
554
+ }];
555
+ readonly indexed: false;
556
+ }];
557
+ readonly name: "ContractPoliciesRegistered";
558
+ }, {
559
+ readonly type: "event";
560
+ readonly anonymous: false;
561
+ readonly inputs: readonly [{
562
+ readonly name: "contractAddress";
563
+ readonly internalType: "address";
564
+ readonly type: "address";
565
+ readonly indexed: true;
566
+ }];
567
+ readonly name: "ContractPoliciesRemoved";
568
+ }, {
569
+ readonly type: "event";
570
+ readonly anonymous: false;
571
+ readonly inputs: readonly [];
572
+ readonly name: "GlobalPoliciesRemoved";
573
+ }, {
574
+ readonly type: "event";
575
+ readonly anonymous: false;
576
+ readonly inputs: readonly [{
577
+ readonly name: "policies";
578
+ readonly internalType: "struct PolicySet[]";
579
+ readonly type: "tuple[]";
580
+ readonly components: readonly [{
581
+ readonly name: "templateId";
582
+ readonly internalType: "string";
583
+ readonly type: "string";
584
+ }, {
585
+ readonly name: "policy";
586
+ readonly internalType: "bytes";
587
+ readonly type: "bytes";
588
+ }, {
589
+ readonly name: "selector";
590
+ readonly internalType: "bytes";
591
+ readonly type: "bytes";
592
+ }];
593
+ readonly indexed: false;
594
+ }];
595
+ readonly name: "GlobalPoliciesSet";
596
+ }, {
597
+ readonly type: "event";
598
+ readonly anonymous: false;
599
+ readonly inputs: readonly [{
600
+ readonly name: "proxy";
601
+ readonly internalType: "address";
602
+ readonly type: "address";
603
+ readonly indexed: true;
604
+ }, {
605
+ readonly name: "kind";
606
+ readonly internalType: "enum PclProxyKind";
607
+ readonly type: "uint8";
608
+ readonly indexed: false;
609
+ }];
610
+ readonly name: "PclProxyDeployed";
611
+ }, {
612
+ readonly type: "event";
613
+ readonly anonymous: false;
614
+ readonly inputs: readonly [{
615
+ readonly name: "sender";
616
+ readonly internalType: "address";
617
+ readonly type: "address";
618
+ readonly indexed: true;
619
+ }, {
620
+ readonly name: "contractAddress";
621
+ readonly internalType: "address";
622
+ readonly type: "address";
623
+ readonly indexed: true;
624
+ }];
625
+ readonly name: "PolicyCheckPassed";
626
+ }, {
627
+ readonly type: "event";
628
+ readonly anonymous: false;
629
+ readonly inputs: readonly [{
630
+ readonly name: "templateId";
631
+ readonly internalType: "string";
632
+ readonly type: "string";
633
+ readonly indexed: false;
634
+ }];
635
+ readonly name: "PolicyTemplateRegistered";
636
+ }, {
637
+ readonly type: "event";
638
+ readonly anonymous: false;
639
+ readonly inputs: readonly [{
640
+ readonly name: "templateId";
641
+ readonly internalType: "string";
642
+ readonly type: "string";
643
+ readonly indexed: false;
644
+ }];
645
+ readonly name: "PolicyTemplateRemoved";
646
+ }, {
647
+ readonly type: "function";
648
+ readonly inputs: readonly [{
649
+ readonly name: "";
650
+ readonly internalType: "struct EasPolicy";
651
+ readonly type: "tuple";
652
+ readonly components: readonly [{
653
+ readonly name: "easContract";
654
+ readonly internalType: "address";
655
+ readonly type: "address";
656
+ }, {
657
+ readonly name: "indexContract";
658
+ readonly internalType: "address";
659
+ readonly type: "address";
660
+ }, {
661
+ readonly name: "schemaUid";
662
+ readonly internalType: "bytes32";
663
+ readonly type: "bytes32";
664
+ }];
665
+ }, {
666
+ readonly name: "";
667
+ readonly internalType: "struct DenylistPolicy";
668
+ readonly type: "tuple";
669
+ readonly components: readonly [{
670
+ readonly name: "addresses";
671
+ readonly internalType: "address[]";
672
+ readonly type: "address[]";
673
+ }];
674
+ }, {
675
+ readonly name: "";
676
+ readonly internalType: "struct VolumePolicy";
677
+ readonly type: "tuple";
678
+ readonly components: readonly [{
679
+ readonly name: "tokens";
680
+ readonly internalType: "string[]";
681
+ readonly type: "string[]";
682
+ }, {
683
+ readonly name: "limits";
684
+ readonly internalType: "struct VolumeUnitPolicy[]";
685
+ readonly type: "tuple[]";
686
+ readonly components: readonly [{
687
+ readonly name: "minLimit";
688
+ readonly internalType: "uint256";
689
+ readonly type: "uint256";
690
+ }, {
691
+ readonly name: "maxLimit";
692
+ readonly internalType: "uint256";
693
+ readonly type: "uint256";
694
+ }];
695
+ }];
696
+ }, {
697
+ readonly name: "";
698
+ readonly internalType: "struct OkrwEasTransferLimitPolicy";
699
+ readonly type: "tuple";
700
+ readonly components: readonly [{
701
+ readonly name: "easContract";
702
+ readonly internalType: "address";
703
+ readonly type: "address";
704
+ }, {
705
+ readonly name: "indexContract";
706
+ readonly internalType: "address";
707
+ readonly type: "address";
708
+ }, {
709
+ readonly name: "schemaUid";
710
+ readonly internalType: "bytes32";
711
+ readonly type: "bytes32";
712
+ }, {
713
+ readonly name: "transferLimitAmount";
714
+ readonly internalType: "uint256";
715
+ readonly type: "uint256";
716
+ }];
717
+ }, {
718
+ readonly name: "";
719
+ readonly internalType: "struct PeriodicVolumePolicy";
720
+ readonly type: "tuple";
721
+ readonly components: readonly [{
722
+ readonly name: "tokens";
723
+ readonly internalType: "string[]";
724
+ readonly type: "string[]";
725
+ }, {
726
+ readonly name: "limits";
727
+ readonly internalType: "struct UnitPeriodicVolumePolicy[]";
728
+ readonly type: "tuple[]";
729
+ readonly components: readonly [{
730
+ readonly name: "maxAmount";
731
+ readonly internalType: "uint256";
732
+ readonly type: "uint256";
733
+ }, {
734
+ readonly name: "resetPeriodSeconds";
735
+ readonly internalType: "uint64";
736
+ readonly type: "uint64";
737
+ }];
738
+ }];
739
+ }, {
740
+ readonly name: "";
741
+ readonly internalType: "struct AgentOkrwTransferLimitPolicy";
742
+ readonly type: "tuple";
743
+ readonly components: readonly [{
744
+ readonly name: "reserved";
745
+ readonly internalType: "uint256";
746
+ readonly type: "uint256";
747
+ }];
748
+ }, {
749
+ readonly name: "";
750
+ readonly internalType: "struct OkrwEasPeriodicVolumeLimitPolicy";
751
+ readonly type: "tuple";
752
+ readonly components: readonly [{
753
+ readonly name: "easContract";
754
+ readonly internalType: "address";
755
+ readonly type: "address";
756
+ }, {
757
+ readonly name: "indexContract";
758
+ readonly internalType: "address";
759
+ readonly type: "address";
760
+ }, {
761
+ readonly name: "schemaUid";
762
+ readonly internalType: "bytes32";
763
+ readonly type: "bytes32";
764
+ }, {
765
+ readonly name: "maxAmount";
766
+ readonly internalType: "uint256";
767
+ readonly type: "uint256";
768
+ }, {
769
+ readonly name: "resetPeriodSeconds";
770
+ readonly internalType: "uint64";
771
+ readonly type: "uint64";
772
+ }];
773
+ }, {
774
+ readonly name: "";
775
+ readonly internalType: "struct LogicalPolicy";
776
+ readonly type: "tuple";
777
+ readonly components: readonly [{
778
+ readonly name: "quantifier";
779
+ readonly internalType: "enum LogicalQuantifier";
780
+ readonly type: "uint8";
781
+ }, {
782
+ readonly name: "children";
783
+ readonly internalType: "struct PolicySet[]";
784
+ readonly type: "tuple[]";
785
+ readonly components: readonly [{
786
+ readonly name: "templateId";
787
+ readonly internalType: "string";
788
+ readonly type: "string";
789
+ }, {
790
+ readonly name: "policy";
791
+ readonly internalType: "bytes";
792
+ readonly type: "bytes";
793
+ }, {
794
+ readonly name: "selector";
795
+ readonly internalType: "bytes";
796
+ readonly type: "bytes";
797
+ }];
798
+ }];
799
+ }, {
800
+ readonly name: "";
801
+ readonly internalType: "struct ForEachPolicy";
802
+ readonly type: "tuple";
803
+ readonly components: readonly [{
804
+ readonly name: "quantifier";
805
+ readonly internalType: "enum ForEachQuantifier";
806
+ readonly type: "uint8";
807
+ }, {
808
+ readonly name: "subject";
809
+ readonly internalType: "enum ForEachSubject";
810
+ readonly type: "uint8";
811
+ }, {
812
+ readonly name: "child";
813
+ readonly internalType: "struct PolicySet";
814
+ readonly type: "tuple";
815
+ readonly components: readonly [{
816
+ readonly name: "templateId";
817
+ readonly internalType: "string";
818
+ readonly type: "string";
819
+ }, {
820
+ readonly name: "policy";
821
+ readonly internalType: "bytes";
822
+ readonly type: "bytes";
823
+ }, {
824
+ readonly name: "selector";
825
+ readonly internalType: "bytes";
826
+ readonly type: "bytes";
827
+ }];
828
+ }];
829
+ }];
830
+ readonly name: "_policies";
831
+ readonly outputs: readonly [];
832
+ readonly stateMutability: "pure";
833
+ }, {
834
+ readonly type: "function";
835
+ readonly inputs: readonly [{
836
+ readonly name: "policy";
837
+ readonly internalType: "struct ContractPolicyConfig";
838
+ readonly type: "tuple";
839
+ readonly components: readonly [{
840
+ readonly name: "_contract";
841
+ readonly internalType: "address";
842
+ readonly type: "address";
843
+ }, {
844
+ readonly name: "admin";
845
+ readonly internalType: "address";
846
+ readonly type: "address";
847
+ }, {
848
+ readonly name: "policies";
849
+ readonly internalType: "struct PolicySet[]";
850
+ readonly type: "tuple[]";
851
+ readonly components: readonly [{
852
+ readonly name: "templateId";
853
+ readonly internalType: "string";
854
+ readonly type: "string";
855
+ }, {
856
+ readonly name: "policy";
857
+ readonly internalType: "bytes";
858
+ readonly type: "bytes";
859
+ }, {
860
+ readonly name: "selector";
861
+ readonly internalType: "bytes";
862
+ readonly type: "bytes";
863
+ }];
864
+ }];
865
+ }];
866
+ readonly name: "changeContractPolicies";
867
+ readonly outputs: readonly [];
868
+ readonly stateMutability: "nonpayable";
869
+ }, {
870
+ readonly type: "function";
871
+ readonly inputs: readonly [{
872
+ readonly name: "contractAddress";
873
+ readonly internalType: "address";
874
+ readonly type: "address";
875
+ }, {
876
+ readonly name: "user";
877
+ readonly internalType: "address";
878
+ readonly type: "address";
879
+ }, {
880
+ readonly name: "selector";
881
+ readonly internalType: "bytes";
882
+ readonly type: "bytes";
883
+ }];
884
+ readonly name: "contractOkrwEasPeriodicVolume";
885
+ readonly outputs: readonly [{
886
+ readonly name: "";
887
+ readonly internalType: "struct PeriodicVolume";
888
+ readonly type: "tuple";
889
+ readonly components: readonly [{
890
+ readonly name: "amount";
891
+ readonly internalType: "uint256";
892
+ readonly type: "uint256";
893
+ }, {
894
+ readonly name: "maxAmount";
895
+ readonly internalType: "uint256";
896
+ readonly type: "uint256";
897
+ }, {
898
+ readonly name: "resetPeriodSeconds";
899
+ readonly internalType: "uint64";
900
+ readonly type: "uint64";
901
+ }, {
902
+ readonly name: "resetAt";
903
+ readonly internalType: "uint64";
904
+ readonly type: "uint64";
905
+ }];
906
+ }];
907
+ readonly stateMutability: "view";
908
+ }, {
909
+ readonly type: "function";
910
+ readonly inputs: readonly [{
911
+ readonly name: "contractAddress";
912
+ readonly internalType: "address";
913
+ readonly type: "address";
914
+ }, {
915
+ readonly name: "user";
916
+ readonly internalType: "address";
917
+ readonly type: "address";
918
+ }, {
919
+ readonly name: "selector";
920
+ readonly internalType: "bytes";
921
+ readonly type: "bytes";
922
+ }, {
923
+ readonly name: "asset";
924
+ readonly internalType: "string";
925
+ readonly type: "string";
926
+ }, {
927
+ readonly name: "resolveAgentOwners";
928
+ readonly internalType: "bool";
929
+ readonly type: "bool";
930
+ }, {
931
+ readonly name: "pageRequest";
932
+ readonly internalType: "struct PageRequest";
933
+ readonly type: "tuple";
934
+ readonly components: readonly [{
935
+ readonly name: "key";
936
+ readonly internalType: "bytes";
937
+ readonly type: "bytes";
938
+ }, {
939
+ readonly name: "offset";
940
+ readonly internalType: "uint64";
941
+ readonly type: "uint64";
942
+ }, {
943
+ readonly name: "limit";
944
+ readonly internalType: "uint64";
945
+ readonly type: "uint64";
946
+ }, {
947
+ readonly name: "countTotal";
948
+ readonly internalType: "bool";
949
+ readonly type: "bool";
950
+ }, {
951
+ readonly name: "reverse";
952
+ readonly internalType: "bool";
953
+ readonly type: "bool";
954
+ }];
955
+ }];
956
+ readonly name: "contractPeriodicList";
957
+ readonly outputs: readonly [{
958
+ readonly name: "statuses";
959
+ readonly internalType: "struct PeriodicVolume[]";
960
+ readonly type: "tuple[]";
961
+ readonly components: readonly [{
962
+ readonly name: "amount";
963
+ readonly internalType: "uint256";
964
+ readonly type: "uint256";
965
+ }, {
966
+ readonly name: "maxAmount";
967
+ readonly internalType: "uint256";
968
+ readonly type: "uint256";
969
+ }, {
970
+ readonly name: "resetPeriodSeconds";
971
+ readonly internalType: "uint64";
972
+ readonly type: "uint64";
973
+ }, {
974
+ readonly name: "resetAt";
975
+ readonly internalType: "uint64";
976
+ readonly type: "uint64";
977
+ }];
978
+ }, {
979
+ readonly name: "pageResponse";
980
+ readonly internalType: "struct PageResponse";
981
+ readonly type: "tuple";
982
+ readonly components: readonly [{
983
+ readonly name: "nextKey";
984
+ readonly internalType: "bytes";
985
+ readonly type: "bytes";
986
+ }, {
987
+ readonly name: "total";
988
+ readonly internalType: "uint64";
989
+ readonly type: "uint64";
990
+ }];
991
+ }];
992
+ readonly stateMutability: "view";
993
+ }, {
994
+ readonly type: "function";
995
+ readonly inputs: readonly [{
996
+ readonly name: "contractAddress";
997
+ readonly internalType: "address";
998
+ readonly type: "address";
999
+ }, {
1000
+ readonly name: "user";
1001
+ readonly internalType: "address";
1002
+ readonly type: "address";
1003
+ }, {
1004
+ readonly name: "selector";
1005
+ readonly internalType: "bytes";
1006
+ readonly type: "bytes";
1007
+ }, {
1008
+ readonly name: "asset";
1009
+ readonly internalType: "string";
1010
+ readonly type: "string";
1011
+ }, {
1012
+ readonly name: "resetPeriodSeconds";
1013
+ readonly internalType: "uint64";
1014
+ readonly type: "uint64";
1015
+ }, {
1016
+ readonly name: "resolveAgentOwners";
1017
+ readonly internalType: "bool";
1018
+ readonly type: "bool";
1019
+ }];
1020
+ readonly name: "contractPeriodicVolume";
1021
+ readonly outputs: readonly [{
1022
+ readonly name: "";
1023
+ readonly internalType: "struct PeriodicVolume";
1024
+ readonly type: "tuple";
1025
+ readonly components: readonly [{
1026
+ readonly name: "amount";
1027
+ readonly internalType: "uint256";
1028
+ readonly type: "uint256";
1029
+ }, {
1030
+ readonly name: "maxAmount";
1031
+ readonly internalType: "uint256";
1032
+ readonly type: "uint256";
1033
+ }, {
1034
+ readonly name: "resetPeriodSeconds";
1035
+ readonly internalType: "uint64";
1036
+ readonly type: "uint64";
1037
+ }, {
1038
+ readonly name: "resetAt";
1039
+ readonly internalType: "uint64";
1040
+ readonly type: "uint64";
1041
+ }];
1042
+ }];
1043
+ readonly stateMutability: "view";
1044
+ }, {
1045
+ readonly type: "function";
1046
+ readonly inputs: readonly [{
1047
+ readonly name: "contractAddress";
1048
+ readonly internalType: "address";
1049
+ readonly type: "address";
1050
+ }];
1051
+ readonly name: "contractPolicies";
1052
+ readonly outputs: readonly [{
1053
+ readonly name: "";
1054
+ readonly internalType: "struct ContractPolicyConfig";
1055
+ readonly type: "tuple";
1056
+ readonly components: readonly [{
1057
+ readonly name: "_contract";
1058
+ readonly internalType: "address";
1059
+ readonly type: "address";
1060
+ }, {
1061
+ readonly name: "admin";
1062
+ readonly internalType: "address";
1063
+ readonly type: "address";
1064
+ }, {
1065
+ readonly name: "policies";
1066
+ readonly internalType: "struct PolicySet[]";
1067
+ readonly type: "tuple[]";
1068
+ readonly components: readonly [{
1069
+ readonly name: "templateId";
1070
+ readonly internalType: "string";
1071
+ readonly type: "string";
1072
+ }, {
1073
+ readonly name: "policy";
1074
+ readonly internalType: "bytes";
1075
+ readonly type: "bytes";
1076
+ }, {
1077
+ readonly name: "selector";
1078
+ readonly internalType: "bytes";
1079
+ readonly type: "bytes";
1080
+ }];
1081
+ }];
1082
+ }];
1083
+ readonly stateMutability: "view";
1084
+ }, {
1085
+ readonly type: "function";
1086
+ readonly inputs: readonly [{
1087
+ readonly name: "kind";
1088
+ readonly internalType: "enum PclProxyKind";
1089
+ readonly type: "uint8";
1090
+ }, {
1091
+ readonly name: "value";
1092
+ readonly internalType: "uint256";
1093
+ readonly type: "uint256";
1094
+ }, {
1095
+ readonly name: "initData";
1096
+ readonly internalType: "bytes";
1097
+ readonly type: "bytes";
1098
+ }];
1099
+ readonly name: "deployPclProxy";
1100
+ readonly outputs: readonly [{
1101
+ readonly name: "proxy";
1102
+ readonly internalType: "address";
1103
+ readonly type: "address";
1104
+ }];
1105
+ readonly stateMutability: "nonpayable";
1106
+ }, {
1107
+ readonly type: "function";
1108
+ readonly inputs: readonly [];
1109
+ readonly name: "getParams";
1110
+ readonly outputs: readonly [{
1111
+ readonly name: "";
1112
+ readonly internalType: "struct PclParams";
1113
+ readonly type: "tuple";
1114
+ readonly components: readonly [{
1115
+ readonly name: "policyAdmin";
1116
+ readonly internalType: "address";
1117
+ readonly type: "address";
1118
+ }, {
1119
+ readonly name: "entrypoints";
1120
+ readonly internalType: "address[]";
1121
+ readonly type: "address[]";
1122
+ }];
1123
+ }];
1124
+ readonly stateMutability: "view";
1125
+ }, {
1126
+ readonly type: "function";
1127
+ readonly inputs: readonly [{
1128
+ readonly name: "user";
1129
+ readonly internalType: "address";
1130
+ readonly type: "address";
1131
+ }];
1132
+ readonly name: "globalOkrwEasPeriodicVolume";
1133
+ readonly outputs: readonly [{
1134
+ readonly name: "";
1135
+ readonly internalType: "struct PeriodicVolume";
1136
+ readonly type: "tuple";
1137
+ readonly components: readonly [{
1138
+ readonly name: "amount";
1139
+ readonly internalType: "uint256";
1140
+ readonly type: "uint256";
1141
+ }, {
1142
+ readonly name: "maxAmount";
1143
+ readonly internalType: "uint256";
1144
+ readonly type: "uint256";
1145
+ }, {
1146
+ readonly name: "resetPeriodSeconds";
1147
+ readonly internalType: "uint64";
1148
+ readonly type: "uint64";
1149
+ }, {
1150
+ readonly name: "resetAt";
1151
+ readonly internalType: "uint64";
1152
+ readonly type: "uint64";
1153
+ }];
1154
+ }];
1155
+ readonly stateMutability: "view";
1156
+ }, {
1157
+ readonly type: "function";
1158
+ readonly inputs: readonly [{
1159
+ readonly name: "user";
1160
+ readonly internalType: "address";
1161
+ readonly type: "address";
1162
+ }, {
1163
+ readonly name: "asset";
1164
+ readonly internalType: "string";
1165
+ readonly type: "string";
1166
+ }, {
1167
+ readonly name: "resolveAgentOwners";
1168
+ readonly internalType: "bool";
1169
+ readonly type: "bool";
1170
+ }, {
1171
+ readonly name: "pageRequest";
1172
+ readonly internalType: "struct PageRequest";
1173
+ readonly type: "tuple";
1174
+ readonly components: readonly [{
1175
+ readonly name: "key";
1176
+ readonly internalType: "bytes";
1177
+ readonly type: "bytes";
1178
+ }, {
1179
+ readonly name: "offset";
1180
+ readonly internalType: "uint64";
1181
+ readonly type: "uint64";
1182
+ }, {
1183
+ readonly name: "limit";
1184
+ readonly internalType: "uint64";
1185
+ readonly type: "uint64";
1186
+ }, {
1187
+ readonly name: "countTotal";
1188
+ readonly internalType: "bool";
1189
+ readonly type: "bool";
1190
+ }, {
1191
+ readonly name: "reverse";
1192
+ readonly internalType: "bool";
1193
+ readonly type: "bool";
1194
+ }];
1195
+ }];
1196
+ readonly name: "globalPeriodicList";
1197
+ readonly outputs: readonly [{
1198
+ readonly name: "statuses";
1199
+ readonly internalType: "struct PeriodicVolume[]";
1200
+ readonly type: "tuple[]";
1201
+ readonly components: readonly [{
1202
+ readonly name: "amount";
1203
+ readonly internalType: "uint256";
1204
+ readonly type: "uint256";
1205
+ }, {
1206
+ readonly name: "maxAmount";
1207
+ readonly internalType: "uint256";
1208
+ readonly type: "uint256";
1209
+ }, {
1210
+ readonly name: "resetPeriodSeconds";
1211
+ readonly internalType: "uint64";
1212
+ readonly type: "uint64";
1213
+ }, {
1214
+ readonly name: "resetAt";
1215
+ readonly internalType: "uint64";
1216
+ readonly type: "uint64";
1217
+ }];
1218
+ }, {
1219
+ readonly name: "pageResponse";
1220
+ readonly internalType: "struct PageResponse";
1221
+ readonly type: "tuple";
1222
+ readonly components: readonly [{
1223
+ readonly name: "nextKey";
1224
+ readonly internalType: "bytes";
1225
+ readonly type: "bytes";
1226
+ }, {
1227
+ readonly name: "total";
1228
+ readonly internalType: "uint64";
1229
+ readonly type: "uint64";
1230
+ }];
1231
+ }];
1232
+ readonly stateMutability: "view";
1233
+ }, {
1234
+ readonly type: "function";
1235
+ readonly inputs: readonly [{
1236
+ readonly name: "user";
1237
+ readonly internalType: "address";
1238
+ readonly type: "address";
1239
+ }, {
1240
+ readonly name: "asset";
1241
+ readonly internalType: "string";
1242
+ readonly type: "string";
1243
+ }, {
1244
+ readonly name: "resetPeriodSeconds";
1245
+ readonly internalType: "uint64";
1246
+ readonly type: "uint64";
1247
+ }, {
1248
+ readonly name: "resolveAgentOwners";
1249
+ readonly internalType: "bool";
1250
+ readonly type: "bool";
1251
+ }];
1252
+ readonly name: "globalPeriodicVolume";
1253
+ readonly outputs: readonly [{
1254
+ readonly name: "";
1255
+ readonly internalType: "struct PeriodicVolume";
1256
+ readonly type: "tuple";
1257
+ readonly components: readonly [{
1258
+ readonly name: "amount";
1259
+ readonly internalType: "uint256";
1260
+ readonly type: "uint256";
1261
+ }, {
1262
+ readonly name: "maxAmount";
1263
+ readonly internalType: "uint256";
1264
+ readonly type: "uint256";
1265
+ }, {
1266
+ readonly name: "resetPeriodSeconds";
1267
+ readonly internalType: "uint64";
1268
+ readonly type: "uint64";
1269
+ }, {
1270
+ readonly name: "resetAt";
1271
+ readonly internalType: "uint64";
1272
+ readonly type: "uint64";
1273
+ }];
1274
+ }];
1275
+ readonly stateMutability: "view";
1276
+ }, {
1277
+ readonly type: "function";
1278
+ readonly inputs: readonly [];
1279
+ readonly name: "globalPolicies";
1280
+ readonly outputs: readonly [{
1281
+ readonly name: "";
1282
+ readonly internalType: "struct GlobalPolicyConfig";
1283
+ readonly type: "tuple";
1284
+ readonly components: readonly [{
1285
+ readonly name: "policies";
1286
+ readonly internalType: "struct PolicySet[]";
1287
+ readonly type: "tuple[]";
1288
+ readonly components: readonly [{
1289
+ readonly name: "templateId";
1290
+ readonly internalType: "string";
1291
+ readonly type: "string";
1292
+ }, {
1293
+ readonly name: "policy";
1294
+ readonly internalType: "bytes";
1295
+ readonly type: "bytes";
1296
+ }, {
1297
+ readonly name: "selector";
1298
+ readonly internalType: "bytes";
1299
+ readonly type: "bytes";
1300
+ }];
1301
+ }];
1302
+ }];
1303
+ readonly stateMutability: "view";
1304
+ }, {
1305
+ readonly type: "function";
1306
+ readonly inputs: readonly [{
1307
+ readonly name: "proxy";
1308
+ readonly internalType: "address";
1309
+ readonly type: "address";
1310
+ }];
1311
+ readonly name: "pclProxy";
1312
+ readonly outputs: readonly [{
1313
+ readonly name: "";
1314
+ readonly internalType: "struct PclProxyEntry";
1315
+ readonly type: "tuple";
1316
+ readonly components: readonly [{
1317
+ readonly name: "kind";
1318
+ readonly internalType: "enum PclProxyKind";
1319
+ readonly type: "uint8";
1320
+ }];
1321
+ }];
1322
+ readonly stateMutability: "view";
1323
+ }, {
1324
+ readonly type: "function";
1325
+ readonly inputs: readonly [];
1326
+ readonly name: "policyAdmin";
1327
+ readonly outputs: readonly [{
1328
+ readonly name: "";
1329
+ readonly internalType: "address";
1330
+ readonly type: "address";
1331
+ }];
1332
+ readonly stateMutability: "view";
1333
+ }, {
1334
+ readonly type: "function";
1335
+ readonly inputs: readonly [{
1336
+ readonly name: "templateId";
1337
+ readonly internalType: "string";
1338
+ readonly type: "string";
1339
+ }];
1340
+ readonly name: "policyTemplate";
1341
+ readonly outputs: readonly [{
1342
+ readonly name: "";
1343
+ readonly internalType: "struct PolicyTemplate";
1344
+ readonly type: "tuple";
1345
+ readonly components: readonly [{
1346
+ readonly name: "templateId";
1347
+ readonly internalType: "string";
1348
+ readonly type: "string";
1349
+ }, {
1350
+ readonly name: "name";
1351
+ readonly internalType: "string";
1352
+ readonly type: "string";
1353
+ }, {
1354
+ readonly name: "description";
1355
+ readonly internalType: "string";
1356
+ readonly type: "string";
1357
+ }, {
1358
+ readonly name: "paramSchema";
1359
+ readonly internalType: "bytes";
1360
+ readonly type: "bytes";
1361
+ }];
1362
+ }];
1363
+ readonly stateMutability: "view";
1364
+ }, {
1365
+ readonly type: "function";
1366
+ readonly inputs: readonly [{
1367
+ readonly name: "sessionId";
1368
+ readonly internalType: "bytes32";
1369
+ readonly type: "bytes32";
1370
+ }, {
1371
+ readonly name: "contractAddress";
1372
+ readonly internalType: "address";
1373
+ readonly type: "address";
1374
+ }, {
1375
+ readonly name: "principal";
1376
+ readonly internalType: "address";
1377
+ readonly type: "address";
1378
+ }, {
1379
+ readonly name: "data";
1380
+ readonly internalType: "bytes";
1381
+ readonly type: "bytes";
1382
+ }, {
1383
+ readonly name: "value";
1384
+ readonly internalType: "uint256";
1385
+ readonly type: "uint256";
1386
+ }, {
1387
+ readonly name: "workable";
1388
+ readonly internalType: "bool";
1389
+ readonly type: "bool";
1390
+ }];
1391
+ readonly name: "postCall";
1392
+ readonly outputs: readonly [{
1393
+ readonly name: "";
1394
+ readonly internalType: "bytes";
1395
+ readonly type: "bytes";
1396
+ }];
1397
+ readonly stateMutability: "nonpayable";
1398
+ }, {
1399
+ readonly type: "function";
1400
+ readonly inputs: readonly [{
1401
+ readonly name: "contractAddress";
1402
+ readonly internalType: "address";
1403
+ readonly type: "address";
1404
+ }, {
1405
+ readonly name: "principal";
1406
+ readonly internalType: "address";
1407
+ readonly type: "address";
1408
+ }, {
1409
+ readonly name: "data";
1410
+ readonly internalType: "bytes";
1411
+ readonly type: "bytes";
1412
+ }, {
1413
+ readonly name: "value";
1414
+ readonly internalType: "uint256";
1415
+ readonly type: "uint256";
1416
+ }];
1417
+ readonly name: "preCall";
1418
+ readonly outputs: readonly [{
1419
+ readonly name: "sessionId";
1420
+ readonly internalType: "bytes32";
1421
+ readonly type: "bytes32";
1422
+ }];
1423
+ readonly stateMutability: "nonpayable";
1424
+ }, {
1425
+ readonly type: "function";
1426
+ readonly inputs: readonly [{
1427
+ readonly name: "policy";
1428
+ readonly internalType: "struct ContractPolicyConfig";
1429
+ readonly type: "tuple";
1430
+ readonly components: readonly [{
1431
+ readonly name: "_contract";
1432
+ readonly internalType: "address";
1433
+ readonly type: "address";
1434
+ }, {
1435
+ readonly name: "admin";
1436
+ readonly internalType: "address";
1437
+ readonly type: "address";
1438
+ }, {
1439
+ readonly name: "policies";
1440
+ readonly internalType: "struct PolicySet[]";
1441
+ readonly type: "tuple[]";
1442
+ readonly components: readonly [{
1443
+ readonly name: "templateId";
1444
+ readonly internalType: "string";
1445
+ readonly type: "string";
1446
+ }, {
1447
+ readonly name: "policy";
1448
+ readonly internalType: "bytes";
1449
+ readonly type: "bytes";
1450
+ }, {
1451
+ readonly name: "selector";
1452
+ readonly internalType: "bytes";
1453
+ readonly type: "bytes";
1454
+ }];
1455
+ }];
1456
+ }];
1457
+ readonly name: "registerContractPolicies";
1458
+ readonly outputs: readonly [];
1459
+ readonly stateMutability: "nonpayable";
1460
+ }, {
1461
+ readonly type: "function";
1462
+ readonly inputs: readonly [{
1463
+ readonly name: "templateId";
1464
+ readonly internalType: "string";
1465
+ readonly type: "string";
1466
+ }];
1467
+ readonly name: "registerPolicyTemplate";
1468
+ readonly outputs: readonly [];
1469
+ readonly stateMutability: "nonpayable";
1470
+ }, {
1471
+ readonly type: "function";
1472
+ readonly inputs: readonly [{
1473
+ readonly name: "contractAddress";
1474
+ readonly internalType: "address";
1475
+ readonly type: "address";
1476
+ }];
1477
+ readonly name: "removeContractPolicies";
1478
+ readonly outputs: readonly [];
1479
+ readonly stateMutability: "nonpayable";
1480
+ }, {
1481
+ readonly type: "function";
1482
+ readonly inputs: readonly [];
1483
+ readonly name: "removeGlobalPolicies";
1484
+ readonly outputs: readonly [];
1485
+ readonly stateMutability: "nonpayable";
1486
+ }, {
1487
+ readonly type: "function";
1488
+ readonly inputs: readonly [{
1489
+ readonly name: "templateId";
1490
+ readonly internalType: "string";
1491
+ readonly type: "string";
1492
+ }];
1493
+ readonly name: "removePolicyTemplate";
1494
+ readonly outputs: readonly [];
1495
+ readonly stateMutability: "nonpayable";
1496
+ }, {
1497
+ readonly type: "function";
1498
+ readonly inputs: readonly [{
1499
+ readonly name: "contractAddress";
1500
+ readonly internalType: "address";
1501
+ readonly type: "address";
1502
+ }, {
1503
+ readonly name: "data";
1504
+ readonly internalType: "bytes";
1505
+ readonly type: "bytes";
1506
+ }, {
1507
+ readonly name: "value";
1508
+ readonly internalType: "uint256";
1509
+ readonly type: "uint256";
1510
+ }];
1511
+ readonly name: "runOnPcl";
1512
+ readonly outputs: readonly [{
1513
+ readonly name: "";
1514
+ readonly internalType: "bytes";
1515
+ readonly type: "bytes";
1516
+ }];
1517
+ readonly stateMutability: "nonpayable";
1518
+ }, {
1519
+ readonly type: "function";
1520
+ readonly inputs: readonly [{
1521
+ readonly name: "newConfig";
1522
+ readonly internalType: "struct GlobalPolicyConfig";
1523
+ readonly type: "tuple";
1524
+ readonly components: readonly [{
1525
+ readonly name: "policies";
1526
+ readonly internalType: "struct PolicySet[]";
1527
+ readonly type: "tuple[]";
1528
+ readonly components: readonly [{
1529
+ readonly name: "templateId";
1530
+ readonly internalType: "string";
1531
+ readonly type: "string";
1532
+ }, {
1533
+ readonly name: "policy";
1534
+ readonly internalType: "bytes";
1535
+ readonly type: "bytes";
1536
+ }, {
1537
+ readonly name: "selector";
1538
+ readonly internalType: "bytes";
1539
+ readonly type: "bytes";
1540
+ }];
1541
+ }];
1542
+ }];
1543
+ readonly name: "setGlobalPolicies";
1544
+ readonly outputs: readonly [];
1545
+ readonly stateMutability: "nonpayable";
1546
+ }], "read">;
1547
+ type OkrwReadActions = PrecompileActions<typeof iOkrwAbi, 'read'>;
1548
+ declare const okrwReadActions: PrecompileActionsFactory<readonly [{
1549
+ readonly type: "error";
1550
+ readonly inputs: readonly [{
1551
+ readonly name: "addr";
1552
+ readonly internalType: "address";
1553
+ readonly type: "address";
1554
+ }];
1555
+ readonly name: "InvalidAddress";
1556
+ }, {
1557
+ readonly type: "error";
1558
+ readonly inputs: readonly [{
1559
+ readonly name: "amount";
1560
+ readonly internalType: "uint256";
1561
+ readonly type: "uint256";
1562
+ }];
1563
+ readonly name: "InvalidAmount";
1564
+ }, {
1565
+ readonly type: "error";
1566
+ readonly inputs: readonly [{
1567
+ readonly name: "caller";
1568
+ readonly internalType: "address";
1569
+ readonly type: "address";
1570
+ }, {
1571
+ readonly name: "authorizedMinter";
1572
+ readonly internalType: "address";
1573
+ readonly type: "address";
1574
+ }];
1575
+ readonly name: "UnauthorizedMinter";
1576
+ }, {
1577
+ readonly type: "event";
1578
+ readonly anonymous: false;
1579
+ readonly inputs: readonly [{
1580
+ readonly name: "minter";
1581
+ readonly internalType: "address";
1582
+ readonly type: "address";
1583
+ readonly indexed: true;
1584
+ }, {
1585
+ readonly name: "recipient";
1586
+ readonly internalType: "address";
1587
+ readonly type: "address";
1588
+ readonly indexed: true;
1589
+ }, {
1590
+ readonly name: "amount";
1591
+ readonly internalType: "uint256";
1592
+ readonly type: "uint256";
1593
+ readonly indexed: false;
1594
+ }];
1595
+ readonly name: "Mint";
1596
+ }, {
1597
+ readonly type: "function";
1598
+ readonly inputs: readonly [];
1599
+ readonly name: "getParams";
1600
+ readonly outputs: readonly [{
1601
+ readonly name: "params";
1602
+ readonly internalType: "struct OkrwParams";
1603
+ readonly type: "tuple";
1604
+ readonly components: readonly [{
1605
+ readonly name: "minter";
1606
+ readonly internalType: "address";
1607
+ readonly type: "address";
1608
+ }, {
1609
+ readonly name: "mintDenom";
1610
+ readonly internalType: "string";
1611
+ readonly type: "string";
1612
+ }];
1613
+ }];
1614
+ readonly stateMutability: "view";
1615
+ }, {
1616
+ readonly type: "function";
1617
+ readonly inputs: readonly [{
1618
+ readonly name: "recipient";
1619
+ readonly internalType: "address";
1620
+ readonly type: "address";
1621
+ }, {
1622
+ readonly name: "amount";
1623
+ readonly internalType: "uint256";
1624
+ readonly type: "uint256";
1625
+ }];
1626
+ readonly name: "mint";
1627
+ readonly outputs: readonly [{
1628
+ readonly name: "";
1629
+ readonly internalType: "bool";
1630
+ readonly type: "bool";
1631
+ }];
1632
+ readonly stateMutability: "nonpayable";
1633
+ }], "read">;
1634
+ type EasReadActions = PrecompileActions<typeof iEasAbi, 'read'>;
1635
+ declare const easReadActions: PrecompileActionsFactory<readonly [{
1636
+ readonly type: "function";
1637
+ readonly inputs: readonly [];
1638
+ readonly name: "getParams";
1639
+ readonly outputs: readonly [{
1640
+ readonly name: "params";
1641
+ readonly internalType: "struct EasParams";
1642
+ readonly type: "tuple";
1643
+ readonly components: readonly [{
1644
+ readonly name: "schemaRegistry";
1645
+ readonly internalType: "address";
1646
+ readonly type: "address";
1647
+ }, {
1648
+ readonly name: "eas";
1649
+ readonly internalType: "address";
1650
+ readonly type: "address";
1651
+ }, {
1652
+ readonly name: "indexer";
1653
+ readonly internalType: "address";
1654
+ readonly type: "address";
1655
+ }];
1656
+ }];
1657
+ readonly stateMutability: "view";
1658
+ }], "read">;
1659
+ type AgentReadActions = PrecompileActions<typeof iAgentAbi, 'read'>;
1660
+ declare const agentReadActions: PrecompileActionsFactory<readonly [{
1661
+ readonly type: "error";
1662
+ readonly inputs: readonly [{
1663
+ readonly name: "method";
1664
+ readonly internalType: "string";
1665
+ readonly type: "string";
1666
+ }, {
1667
+ readonly name: "index";
1668
+ readonly internalType: "uint256";
1669
+ readonly type: "uint256";
1670
+ }, {
1671
+ readonly name: "value";
1672
+ readonly internalType: "string";
1673
+ readonly type: "string";
1674
+ }];
1675
+ readonly name: "InvalidAddress";
1676
+ }, {
1677
+ readonly type: "error";
1678
+ readonly inputs: readonly [{
1679
+ readonly name: "method";
1680
+ readonly internalType: "string";
1681
+ readonly type: "string";
1682
+ }, {
1683
+ readonly name: "got";
1684
+ readonly internalType: "uint256";
1685
+ readonly type: "uint256";
1686
+ }, {
1687
+ readonly name: "want";
1688
+ readonly internalType: "uint256";
1689
+ readonly type: "uint256";
1690
+ }];
1691
+ readonly name: "InvalidArgsLength";
1692
+ }, {
1693
+ readonly type: "error";
1694
+ readonly inputs: readonly [{
1695
+ readonly name: "method";
1696
+ readonly internalType: "string";
1697
+ readonly type: "string";
1698
+ }, {
1699
+ readonly name: "index";
1700
+ readonly internalType: "uint256";
1701
+ readonly type: "uint256";
1702
+ }, {
1703
+ readonly name: "value";
1704
+ readonly internalType: "string";
1705
+ readonly type: "string";
1706
+ }];
1707
+ readonly name: "InvalidPageRequest";
1708
+ }, {
1709
+ readonly type: "function";
1710
+ readonly inputs: readonly [{
1711
+ readonly name: "wallet";
1712
+ readonly internalType: "address";
1713
+ readonly type: "address";
1714
+ }, {
1715
+ readonly name: "pageRequest";
1716
+ readonly internalType: "struct PageRequest";
1717
+ readonly type: "tuple";
1718
+ readonly components: readonly [{
1719
+ readonly name: "key";
1720
+ readonly internalType: "bytes";
1721
+ readonly type: "bytes";
1722
+ }, {
1723
+ readonly name: "offset";
1724
+ readonly internalType: "uint64";
1725
+ readonly type: "uint64";
1726
+ }, {
1727
+ readonly name: "limit";
1728
+ readonly internalType: "uint64";
1729
+ readonly type: "uint64";
1730
+ }, {
1731
+ readonly name: "countTotal";
1732
+ readonly internalType: "bool";
1733
+ readonly type: "bool";
1734
+ }, {
1735
+ readonly name: "reverse";
1736
+ readonly internalType: "bool";
1737
+ readonly type: "bool";
1738
+ }];
1739
+ }];
1740
+ readonly name: "getAgentIds";
1741
+ readonly outputs: readonly [{
1742
+ readonly name: "agentIds";
1743
+ readonly internalType: "uint256[]";
1744
+ readonly type: "uint256[]";
1745
+ }, {
1746
+ readonly name: "pageResponse";
1747
+ readonly internalType: "struct PageResponse";
1748
+ readonly type: "tuple";
1749
+ readonly components: readonly [{
1750
+ readonly name: "nextKey";
1751
+ readonly internalType: "bytes";
1752
+ readonly type: "bytes";
1753
+ }, {
1754
+ readonly name: "total";
1755
+ readonly internalType: "uint64";
1756
+ readonly type: "uint64";
1757
+ }];
1758
+ }];
1759
+ readonly stateMutability: "view";
1760
+ }, {
1761
+ readonly type: "function";
1762
+ readonly inputs: readonly [];
1763
+ readonly name: "getParams";
1764
+ readonly outputs: readonly [{
1765
+ readonly name: "";
1766
+ readonly internalType: "struct IAgent.Params";
1767
+ readonly type: "tuple";
1768
+ readonly components: readonly [{
1769
+ readonly name: "identityRegistry";
1770
+ readonly internalType: "address";
1771
+ readonly type: "address";
1772
+ }, {
1773
+ readonly name: "reputationRegistry";
1774
+ readonly internalType: "address";
1775
+ readonly type: "address";
1776
+ }];
1777
+ }];
1778
+ readonly stateMutability: "view";
1779
+ }], "read">;
1780
+ type PclWriteActions = PrecompileActions<typeof iPclAbi, 'write'>;
1781
+ declare const pclWriteActions: PrecompileActionsFactory<readonly [{
1782
+ readonly type: "error";
1783
+ readonly inputs: readonly [{
1784
+ readonly name: "reason";
1785
+ readonly internalType: "string";
1786
+ readonly type: "string";
1787
+ }];
1788
+ readonly name: "AbiDecodeFailed";
1789
+ }, {
1790
+ readonly type: "error";
1791
+ readonly inputs: readonly [];
1792
+ readonly name: "AgentKeeperRequired";
1793
+ }, {
1794
+ readonly type: "error";
1795
+ readonly inputs: readonly [{
1796
+ readonly name: "reason";
1797
+ readonly internalType: "string";
1798
+ readonly type: "string";
1799
+ }];
1800
+ readonly name: "AgentTransferLimitMetadataInvalid";
1801
+ }, {
1802
+ readonly type: "error";
1803
+ readonly inputs: readonly [{
1804
+ readonly name: "childReverts";
1805
+ readonly internalType: "bytes[]";
1806
+ readonly type: "bytes[]";
1807
+ }];
1808
+ readonly name: "AnyOfRejected";
1809
+ }, {
1810
+ readonly type: "error";
1811
+ readonly inputs: readonly [{
1812
+ readonly name: "field";
1813
+ readonly internalType: "string";
1814
+ readonly type: "string";
1815
+ }];
1816
+ readonly name: "CannotEmpty";
1817
+ }, {
1818
+ readonly type: "error";
1819
+ readonly inputs: readonly [];
1820
+ readonly name: "ChildSelectorNotEmpty";
1821
+ }, {
1822
+ readonly type: "error";
1823
+ readonly inputs: readonly [{
1824
+ readonly name: "templateId";
1825
+ readonly internalType: "string";
1826
+ readonly type: "string";
1827
+ }];
1828
+ readonly name: "DuplicatedPolicyTemplate";
1829
+ }, {
1830
+ readonly type: "error";
1831
+ readonly inputs: readonly [{
1832
+ readonly name: "sender";
1833
+ readonly internalType: "address";
1834
+ readonly type: "address";
1835
+ }];
1836
+ readonly name: "EasAttestationExpired";
1837
+ }, {
1838
+ readonly type: "error";
1839
+ readonly inputs: readonly [{
1840
+ readonly name: "sender";
1841
+ readonly internalType: "address";
1842
+ readonly type: "address";
1843
+ }];
1844
+ readonly name: "EasAttestationLookupFailed";
1845
+ }, {
1846
+ readonly type: "error";
1847
+ readonly inputs: readonly [{
1848
+ readonly name: "sender";
1849
+ readonly internalType: "address";
1850
+ readonly type: "address";
1851
+ }];
1852
+ readonly name: "EasAttestationRequired";
1853
+ }, {
1854
+ readonly type: "error";
1855
+ readonly inputs: readonly [{
1856
+ readonly name: "sender";
1857
+ readonly internalType: "address";
1858
+ readonly type: "address";
1859
+ }];
1860
+ readonly name: "EasAttestationRevoked";
1861
+ }, {
1862
+ readonly type: "error";
1863
+ readonly inputs: readonly [{
1864
+ readonly name: "sender";
1865
+ readonly internalType: "address";
1866
+ readonly type: "address";
1867
+ }];
1868
+ readonly name: "EasNoAttestationReceived";
1869
+ }, {
1870
+ readonly type: "error";
1871
+ readonly inputs: readonly [{
1872
+ readonly name: "maxLimit";
1873
+ readonly internalType: "uint256";
1874
+ readonly type: "uint256";
1875
+ }, {
1876
+ readonly name: "value";
1877
+ readonly internalType: "uint256";
1878
+ readonly type: "uint256";
1879
+ }];
1880
+ readonly name: "ExceededAgentTransferLimit";
1881
+ }, {
1882
+ readonly type: "error";
1883
+ readonly inputs: readonly [{
1884
+ readonly name: "maxLimit";
1885
+ readonly internalType: "uint256";
1886
+ readonly type: "uint256";
1887
+ }, {
1888
+ readonly name: "value";
1889
+ readonly internalType: "uint256";
1890
+ readonly type: "uint256";
1891
+ }, {
1892
+ readonly name: "resetAt";
1893
+ readonly internalType: "uint256";
1894
+ readonly type: "uint256";
1895
+ }];
1896
+ readonly name: "ExceededPeriodicVolume";
1897
+ }, {
1898
+ readonly type: "error";
1899
+ readonly inputs: readonly [];
1900
+ readonly name: "ForEachChildAbsent";
1901
+ }, {
1902
+ readonly type: "error";
1903
+ readonly inputs: readonly [];
1904
+ readonly name: "ForEachSubjectUnspecified";
1905
+ }, {
1906
+ readonly type: "error";
1907
+ readonly inputs: readonly [{
1908
+ readonly name: "sender";
1909
+ readonly internalType: "address";
1910
+ readonly type: "address";
1911
+ }];
1912
+ readonly name: "InDenylist";
1913
+ }, {
1914
+ readonly type: "error";
1915
+ readonly inputs: readonly [{
1916
+ readonly name: "input";
1917
+ readonly internalType: "string";
1918
+ readonly type: "string";
1919
+ }];
1920
+ readonly name: "InvalidAddress";
1921
+ }, {
1922
+ readonly type: "error";
1923
+ readonly inputs: readonly [];
1924
+ readonly name: "InvalidCall";
1925
+ }, {
1926
+ readonly type: "error";
1927
+ readonly inputs: readonly [{
1928
+ readonly name: "input";
1929
+ readonly internalType: "bytes";
1930
+ readonly type: "bytes";
1931
+ }];
1932
+ readonly name: "InvalidParameter";
1933
+ }, {
1934
+ readonly type: "error";
1935
+ readonly inputs: readonly [{
1936
+ readonly name: "input";
1937
+ readonly internalType: "string";
1938
+ readonly type: "string";
1939
+ }];
1940
+ readonly name: "InvalidPolicyTemplate";
1941
+ }, {
1942
+ readonly type: "error";
1943
+ readonly inputs: readonly [{
1944
+ readonly name: "input";
1945
+ readonly internalType: "bytes";
1946
+ readonly type: "bytes";
1947
+ }];
1948
+ readonly name: "InvalidSelector";
1949
+ }, {
1950
+ readonly type: "error";
1951
+ readonly inputs: readonly [{
1952
+ readonly name: "got";
1953
+ readonly internalType: "string";
1954
+ readonly type: "string";
1955
+ }];
1956
+ readonly name: "InvalidStructType";
1957
+ }, {
1958
+ readonly type: "error";
1959
+ readonly inputs: readonly [];
1960
+ readonly name: "JSONMarshal";
1961
+ }, {
1962
+ readonly type: "error";
1963
+ readonly inputs: readonly [];
1964
+ readonly name: "JSONUnmarshal";
1965
+ }, {
1966
+ readonly type: "error";
1967
+ readonly inputs: readonly [{
1968
+ readonly name: "index";
1969
+ readonly internalType: "uint256";
1970
+ readonly type: "uint256";
1971
+ }];
1972
+ readonly name: "LogicalPolicyChildNil";
1973
+ }, {
1974
+ readonly type: "error";
1975
+ readonly inputs: readonly [];
1976
+ readonly name: "LogicalPolicyChildrenEmpty";
1977
+ }, {
1978
+ readonly type: "error";
1979
+ readonly inputs: readonly [{
1980
+ readonly name: "maxDepth";
1981
+ readonly internalType: "uint8";
1982
+ readonly type: "uint8";
1983
+ }];
1984
+ readonly name: "MaxDepthExceeded";
1985
+ }, {
1986
+ readonly type: "error";
1987
+ readonly inputs: readonly [{
1988
+ readonly name: "policy";
1989
+ readonly internalType: "string";
1990
+ readonly type: "string";
1991
+ }];
1992
+ readonly name: "PolicyAlreadyRegistered";
1993
+ }, {
1994
+ readonly type: "error";
1995
+ readonly inputs: readonly [{
1996
+ readonly name: "policyType";
1997
+ readonly internalType: "string";
1998
+ readonly type: "string";
1999
+ }];
2000
+ readonly name: "PolicyCannotBeNested";
2001
+ }, {
2002
+ readonly type: "error";
2003
+ readonly inputs: readonly [{
2004
+ readonly name: "policy";
2005
+ readonly internalType: "string";
2006
+ readonly type: "string";
2007
+ }];
2008
+ readonly name: "PolicyNotRegistered";
2009
+ }, {
2010
+ readonly type: "error";
2011
+ readonly inputs: readonly [];
2012
+ readonly name: "PolicyTemplateInUse";
2013
+ }, {
2014
+ readonly type: "error";
2015
+ readonly inputs: readonly [];
2016
+ readonly name: "QuantifierUnspecified";
2017
+ }, {
2018
+ readonly type: "error";
2019
+ readonly inputs: readonly [{
2020
+ readonly name: "maxLimit";
2021
+ readonly internalType: "uint256";
2022
+ readonly type: "uint256";
2023
+ }, {
2024
+ readonly name: "value";
2025
+ readonly internalType: "uint256";
2026
+ readonly type: "uint256";
2027
+ }];
2028
+ readonly name: "ReachedLimitOfNonEAS";
2029
+ }, {
2030
+ readonly type: "error";
2031
+ readonly inputs: readonly [];
2032
+ readonly name: "Unauthorized";
2033
+ }, {
2034
+ readonly type: "error";
2035
+ readonly inputs: readonly [{
2036
+ readonly name: "subject";
2037
+ readonly internalType: "uint8";
2038
+ readonly type: "uint8";
2039
+ }];
2040
+ readonly name: "UnknownForEachSubject";
2041
+ }, {
2042
+ readonly type: "error";
2043
+ readonly inputs: readonly [];
2044
+ readonly name: "UnknownPolicyConfigType";
2045
+ }, {
2046
+ readonly type: "error";
2047
+ readonly inputs: readonly [{
2048
+ readonly name: "templateId";
2049
+ readonly internalType: "string";
2050
+ readonly type: "string";
2051
+ }];
2052
+ readonly name: "UnknownPolicyType";
2053
+ }, {
2054
+ readonly type: "error";
2055
+ readonly inputs: readonly [{
2056
+ readonly name: "maxLimit";
2057
+ readonly internalType: "uint256";
2058
+ readonly type: "uint256";
2059
+ }, {
2060
+ readonly name: "value";
2061
+ readonly internalType: "uint256";
2062
+ readonly type: "uint256";
2063
+ }];
2064
+ readonly name: "VolumeAboveMaxLimit";
2065
+ }, {
2066
+ readonly type: "error";
2067
+ readonly inputs: readonly [{
2068
+ readonly name: "minLimit";
2069
+ readonly internalType: "uint256";
2070
+ readonly type: "uint256";
2071
+ }, {
2072
+ readonly name: "value";
2073
+ readonly internalType: "uint256";
2074
+ readonly type: "uint256";
2075
+ }];
2076
+ readonly name: "VolumeBelowMinLimit";
2077
+ }, {
2078
+ readonly type: "event";
2079
+ readonly anonymous: false;
2080
+ readonly inputs: readonly [{
2081
+ readonly name: "contractAddress";
2082
+ readonly internalType: "address";
2083
+ readonly type: "address";
2084
+ readonly indexed: true;
2085
+ }, {
2086
+ readonly name: "admin";
2087
+ readonly internalType: "address";
2088
+ readonly type: "address";
2089
+ readonly indexed: false;
2090
+ }, {
2091
+ readonly name: "policies";
2092
+ readonly internalType: "struct PolicySet[]";
2093
+ readonly type: "tuple[]";
2094
+ readonly components: readonly [{
2095
+ readonly name: "templateId";
2096
+ readonly internalType: "string";
2097
+ readonly type: "string";
2098
+ }, {
2099
+ readonly name: "policy";
2100
+ readonly internalType: "bytes";
2101
+ readonly type: "bytes";
2102
+ }, {
2103
+ readonly name: "selector";
2104
+ readonly internalType: "bytes";
2105
+ readonly type: "bytes";
2106
+ }];
2107
+ readonly indexed: false;
2108
+ }];
2109
+ readonly name: "ContractPoliciesChanged";
2110
+ }, {
2111
+ readonly type: "event";
2112
+ readonly anonymous: false;
2113
+ readonly inputs: readonly [{
2114
+ readonly name: "contractAddress";
2115
+ readonly internalType: "address";
2116
+ readonly type: "address";
2117
+ readonly indexed: true;
2118
+ }, {
2119
+ readonly name: "admin";
2120
+ readonly internalType: "address";
2121
+ readonly type: "address";
2122
+ readonly indexed: false;
2123
+ }, {
2124
+ readonly name: "policies";
2125
+ readonly internalType: "struct PolicySet[]";
2126
+ readonly type: "tuple[]";
2127
+ readonly components: readonly [{
2128
+ readonly name: "templateId";
2129
+ readonly internalType: "string";
2130
+ readonly type: "string";
2131
+ }, {
2132
+ readonly name: "policy";
2133
+ readonly internalType: "bytes";
2134
+ readonly type: "bytes";
2135
+ }, {
2136
+ readonly name: "selector";
2137
+ readonly internalType: "bytes";
2138
+ readonly type: "bytes";
2139
+ }];
2140
+ readonly indexed: false;
2141
+ }];
2142
+ readonly name: "ContractPoliciesRegistered";
2143
+ }, {
2144
+ readonly type: "event";
2145
+ readonly anonymous: false;
2146
+ readonly inputs: readonly [{
2147
+ readonly name: "contractAddress";
2148
+ readonly internalType: "address";
2149
+ readonly type: "address";
2150
+ readonly indexed: true;
2151
+ }];
2152
+ readonly name: "ContractPoliciesRemoved";
2153
+ }, {
2154
+ readonly type: "event";
2155
+ readonly anonymous: false;
2156
+ readonly inputs: readonly [];
2157
+ readonly name: "GlobalPoliciesRemoved";
2158
+ }, {
2159
+ readonly type: "event";
2160
+ readonly anonymous: false;
2161
+ readonly inputs: readonly [{
2162
+ readonly name: "policies";
2163
+ readonly internalType: "struct PolicySet[]";
2164
+ readonly type: "tuple[]";
2165
+ readonly components: readonly [{
2166
+ readonly name: "templateId";
2167
+ readonly internalType: "string";
2168
+ readonly type: "string";
2169
+ }, {
2170
+ readonly name: "policy";
2171
+ readonly internalType: "bytes";
2172
+ readonly type: "bytes";
2173
+ }, {
2174
+ readonly name: "selector";
2175
+ readonly internalType: "bytes";
2176
+ readonly type: "bytes";
2177
+ }];
2178
+ readonly indexed: false;
2179
+ }];
2180
+ readonly name: "GlobalPoliciesSet";
2181
+ }, {
2182
+ readonly type: "event";
2183
+ readonly anonymous: false;
2184
+ readonly inputs: readonly [{
2185
+ readonly name: "proxy";
2186
+ readonly internalType: "address";
2187
+ readonly type: "address";
2188
+ readonly indexed: true;
2189
+ }, {
2190
+ readonly name: "kind";
2191
+ readonly internalType: "enum PclProxyKind";
2192
+ readonly type: "uint8";
2193
+ readonly indexed: false;
2194
+ }];
2195
+ readonly name: "PclProxyDeployed";
2196
+ }, {
2197
+ readonly type: "event";
2198
+ readonly anonymous: false;
2199
+ readonly inputs: readonly [{
2200
+ readonly name: "sender";
2201
+ readonly internalType: "address";
2202
+ readonly type: "address";
2203
+ readonly indexed: true;
2204
+ }, {
2205
+ readonly name: "contractAddress";
2206
+ readonly internalType: "address";
2207
+ readonly type: "address";
2208
+ readonly indexed: true;
2209
+ }];
2210
+ readonly name: "PolicyCheckPassed";
2211
+ }, {
2212
+ readonly type: "event";
2213
+ readonly anonymous: false;
2214
+ readonly inputs: readonly [{
2215
+ readonly name: "templateId";
2216
+ readonly internalType: "string";
2217
+ readonly type: "string";
2218
+ readonly indexed: false;
2219
+ }];
2220
+ readonly name: "PolicyTemplateRegistered";
2221
+ }, {
2222
+ readonly type: "event";
2223
+ readonly anonymous: false;
2224
+ readonly inputs: readonly [{
2225
+ readonly name: "templateId";
2226
+ readonly internalType: "string";
2227
+ readonly type: "string";
2228
+ readonly indexed: false;
2229
+ }];
2230
+ readonly name: "PolicyTemplateRemoved";
2231
+ }, {
2232
+ readonly type: "function";
2233
+ readonly inputs: readonly [{
2234
+ readonly name: "";
2235
+ readonly internalType: "struct EasPolicy";
2236
+ readonly type: "tuple";
2237
+ readonly components: readonly [{
2238
+ readonly name: "easContract";
2239
+ readonly internalType: "address";
2240
+ readonly type: "address";
2241
+ }, {
2242
+ readonly name: "indexContract";
2243
+ readonly internalType: "address";
2244
+ readonly type: "address";
2245
+ }, {
2246
+ readonly name: "schemaUid";
2247
+ readonly internalType: "bytes32";
2248
+ readonly type: "bytes32";
2249
+ }];
2250
+ }, {
2251
+ readonly name: "";
2252
+ readonly internalType: "struct DenylistPolicy";
2253
+ readonly type: "tuple";
2254
+ readonly components: readonly [{
2255
+ readonly name: "addresses";
2256
+ readonly internalType: "address[]";
2257
+ readonly type: "address[]";
2258
+ }];
2259
+ }, {
2260
+ readonly name: "";
2261
+ readonly internalType: "struct VolumePolicy";
2262
+ readonly type: "tuple";
2263
+ readonly components: readonly [{
2264
+ readonly name: "tokens";
2265
+ readonly internalType: "string[]";
2266
+ readonly type: "string[]";
2267
+ }, {
2268
+ readonly name: "limits";
2269
+ readonly internalType: "struct VolumeUnitPolicy[]";
2270
+ readonly type: "tuple[]";
2271
+ readonly components: readonly [{
2272
+ readonly name: "minLimit";
2273
+ readonly internalType: "uint256";
2274
+ readonly type: "uint256";
2275
+ }, {
2276
+ readonly name: "maxLimit";
2277
+ readonly internalType: "uint256";
2278
+ readonly type: "uint256";
2279
+ }];
2280
+ }];
2281
+ }, {
2282
+ readonly name: "";
2283
+ readonly internalType: "struct OkrwEasTransferLimitPolicy";
2284
+ readonly type: "tuple";
2285
+ readonly components: readonly [{
2286
+ readonly name: "easContract";
2287
+ readonly internalType: "address";
2288
+ readonly type: "address";
2289
+ }, {
2290
+ readonly name: "indexContract";
2291
+ readonly internalType: "address";
2292
+ readonly type: "address";
2293
+ }, {
2294
+ readonly name: "schemaUid";
2295
+ readonly internalType: "bytes32";
2296
+ readonly type: "bytes32";
2297
+ }, {
2298
+ readonly name: "transferLimitAmount";
2299
+ readonly internalType: "uint256";
2300
+ readonly type: "uint256";
2301
+ }];
2302
+ }, {
2303
+ readonly name: "";
2304
+ readonly internalType: "struct PeriodicVolumePolicy";
2305
+ readonly type: "tuple";
2306
+ readonly components: readonly [{
2307
+ readonly name: "tokens";
2308
+ readonly internalType: "string[]";
2309
+ readonly type: "string[]";
2310
+ }, {
2311
+ readonly name: "limits";
2312
+ readonly internalType: "struct UnitPeriodicVolumePolicy[]";
2313
+ readonly type: "tuple[]";
2314
+ readonly components: readonly [{
2315
+ readonly name: "maxAmount";
2316
+ readonly internalType: "uint256";
2317
+ readonly type: "uint256";
2318
+ }, {
2319
+ readonly name: "resetPeriodSeconds";
2320
+ readonly internalType: "uint64";
2321
+ readonly type: "uint64";
2322
+ }];
2323
+ }];
2324
+ }, {
2325
+ readonly name: "";
2326
+ readonly internalType: "struct AgentOkrwTransferLimitPolicy";
2327
+ readonly type: "tuple";
2328
+ readonly components: readonly [{
2329
+ readonly name: "reserved";
2330
+ readonly internalType: "uint256";
2331
+ readonly type: "uint256";
2332
+ }];
2333
+ }, {
2334
+ readonly name: "";
2335
+ readonly internalType: "struct OkrwEasPeriodicVolumeLimitPolicy";
2336
+ readonly type: "tuple";
2337
+ readonly components: readonly [{
2338
+ readonly name: "easContract";
2339
+ readonly internalType: "address";
2340
+ readonly type: "address";
2341
+ }, {
2342
+ readonly name: "indexContract";
2343
+ readonly internalType: "address";
2344
+ readonly type: "address";
2345
+ }, {
2346
+ readonly name: "schemaUid";
2347
+ readonly internalType: "bytes32";
2348
+ readonly type: "bytes32";
2349
+ }, {
2350
+ readonly name: "maxAmount";
2351
+ readonly internalType: "uint256";
2352
+ readonly type: "uint256";
2353
+ }, {
2354
+ readonly name: "resetPeriodSeconds";
2355
+ readonly internalType: "uint64";
2356
+ readonly type: "uint64";
2357
+ }];
2358
+ }, {
2359
+ readonly name: "";
2360
+ readonly internalType: "struct LogicalPolicy";
2361
+ readonly type: "tuple";
2362
+ readonly components: readonly [{
2363
+ readonly name: "quantifier";
2364
+ readonly internalType: "enum LogicalQuantifier";
2365
+ readonly type: "uint8";
2366
+ }, {
2367
+ readonly name: "children";
2368
+ readonly internalType: "struct PolicySet[]";
2369
+ readonly type: "tuple[]";
2370
+ readonly components: readonly [{
2371
+ readonly name: "templateId";
2372
+ readonly internalType: "string";
2373
+ readonly type: "string";
2374
+ }, {
2375
+ readonly name: "policy";
2376
+ readonly internalType: "bytes";
2377
+ readonly type: "bytes";
2378
+ }, {
2379
+ readonly name: "selector";
2380
+ readonly internalType: "bytes";
2381
+ readonly type: "bytes";
2382
+ }];
2383
+ }];
2384
+ }, {
2385
+ readonly name: "";
2386
+ readonly internalType: "struct ForEachPolicy";
2387
+ readonly type: "tuple";
2388
+ readonly components: readonly [{
2389
+ readonly name: "quantifier";
2390
+ readonly internalType: "enum ForEachQuantifier";
2391
+ readonly type: "uint8";
2392
+ }, {
2393
+ readonly name: "subject";
2394
+ readonly internalType: "enum ForEachSubject";
2395
+ readonly type: "uint8";
2396
+ }, {
2397
+ readonly name: "child";
2398
+ readonly internalType: "struct PolicySet";
2399
+ readonly type: "tuple";
2400
+ readonly components: readonly [{
2401
+ readonly name: "templateId";
2402
+ readonly internalType: "string";
2403
+ readonly type: "string";
2404
+ }, {
2405
+ readonly name: "policy";
2406
+ readonly internalType: "bytes";
2407
+ readonly type: "bytes";
2408
+ }, {
2409
+ readonly name: "selector";
2410
+ readonly internalType: "bytes";
2411
+ readonly type: "bytes";
2412
+ }];
2413
+ }];
2414
+ }];
2415
+ readonly name: "_policies";
2416
+ readonly outputs: readonly [];
2417
+ readonly stateMutability: "pure";
2418
+ }, {
2419
+ readonly type: "function";
2420
+ readonly inputs: readonly [{
2421
+ readonly name: "policy";
2422
+ readonly internalType: "struct ContractPolicyConfig";
2423
+ readonly type: "tuple";
2424
+ readonly components: readonly [{
2425
+ readonly name: "_contract";
2426
+ readonly internalType: "address";
2427
+ readonly type: "address";
2428
+ }, {
2429
+ readonly name: "admin";
2430
+ readonly internalType: "address";
2431
+ readonly type: "address";
2432
+ }, {
2433
+ readonly name: "policies";
2434
+ readonly internalType: "struct PolicySet[]";
2435
+ readonly type: "tuple[]";
2436
+ readonly components: readonly [{
2437
+ readonly name: "templateId";
2438
+ readonly internalType: "string";
2439
+ readonly type: "string";
2440
+ }, {
2441
+ readonly name: "policy";
2442
+ readonly internalType: "bytes";
2443
+ readonly type: "bytes";
2444
+ }, {
2445
+ readonly name: "selector";
2446
+ readonly internalType: "bytes";
2447
+ readonly type: "bytes";
2448
+ }];
2449
+ }];
2450
+ }];
2451
+ readonly name: "changeContractPolicies";
2452
+ readonly outputs: readonly [];
2453
+ readonly stateMutability: "nonpayable";
2454
+ }, {
2455
+ readonly type: "function";
2456
+ readonly inputs: readonly [{
2457
+ readonly name: "contractAddress";
2458
+ readonly internalType: "address";
2459
+ readonly type: "address";
2460
+ }, {
2461
+ readonly name: "user";
2462
+ readonly internalType: "address";
2463
+ readonly type: "address";
2464
+ }, {
2465
+ readonly name: "selector";
2466
+ readonly internalType: "bytes";
2467
+ readonly type: "bytes";
2468
+ }];
2469
+ readonly name: "contractOkrwEasPeriodicVolume";
2470
+ readonly outputs: readonly [{
2471
+ readonly name: "";
2472
+ readonly internalType: "struct PeriodicVolume";
2473
+ readonly type: "tuple";
2474
+ readonly components: readonly [{
2475
+ readonly name: "amount";
2476
+ readonly internalType: "uint256";
2477
+ readonly type: "uint256";
2478
+ }, {
2479
+ readonly name: "maxAmount";
2480
+ readonly internalType: "uint256";
2481
+ readonly type: "uint256";
2482
+ }, {
2483
+ readonly name: "resetPeriodSeconds";
2484
+ readonly internalType: "uint64";
2485
+ readonly type: "uint64";
2486
+ }, {
2487
+ readonly name: "resetAt";
2488
+ readonly internalType: "uint64";
2489
+ readonly type: "uint64";
2490
+ }];
2491
+ }];
2492
+ readonly stateMutability: "view";
2493
+ }, {
2494
+ readonly type: "function";
2495
+ readonly inputs: readonly [{
2496
+ readonly name: "contractAddress";
2497
+ readonly internalType: "address";
2498
+ readonly type: "address";
2499
+ }, {
2500
+ readonly name: "user";
2501
+ readonly internalType: "address";
2502
+ readonly type: "address";
2503
+ }, {
2504
+ readonly name: "selector";
2505
+ readonly internalType: "bytes";
2506
+ readonly type: "bytes";
2507
+ }, {
2508
+ readonly name: "asset";
2509
+ readonly internalType: "string";
2510
+ readonly type: "string";
2511
+ }, {
2512
+ readonly name: "resolveAgentOwners";
2513
+ readonly internalType: "bool";
2514
+ readonly type: "bool";
2515
+ }, {
2516
+ readonly name: "pageRequest";
2517
+ readonly internalType: "struct PageRequest";
2518
+ readonly type: "tuple";
2519
+ readonly components: readonly [{
2520
+ readonly name: "key";
2521
+ readonly internalType: "bytes";
2522
+ readonly type: "bytes";
2523
+ }, {
2524
+ readonly name: "offset";
2525
+ readonly internalType: "uint64";
2526
+ readonly type: "uint64";
2527
+ }, {
2528
+ readonly name: "limit";
2529
+ readonly internalType: "uint64";
2530
+ readonly type: "uint64";
2531
+ }, {
2532
+ readonly name: "countTotal";
2533
+ readonly internalType: "bool";
2534
+ readonly type: "bool";
2535
+ }, {
2536
+ readonly name: "reverse";
2537
+ readonly internalType: "bool";
2538
+ readonly type: "bool";
2539
+ }];
2540
+ }];
2541
+ readonly name: "contractPeriodicList";
2542
+ readonly outputs: readonly [{
2543
+ readonly name: "statuses";
2544
+ readonly internalType: "struct PeriodicVolume[]";
2545
+ readonly type: "tuple[]";
2546
+ readonly components: readonly [{
2547
+ readonly name: "amount";
2548
+ readonly internalType: "uint256";
2549
+ readonly type: "uint256";
2550
+ }, {
2551
+ readonly name: "maxAmount";
2552
+ readonly internalType: "uint256";
2553
+ readonly type: "uint256";
2554
+ }, {
2555
+ readonly name: "resetPeriodSeconds";
2556
+ readonly internalType: "uint64";
2557
+ readonly type: "uint64";
2558
+ }, {
2559
+ readonly name: "resetAt";
2560
+ readonly internalType: "uint64";
2561
+ readonly type: "uint64";
2562
+ }];
2563
+ }, {
2564
+ readonly name: "pageResponse";
2565
+ readonly internalType: "struct PageResponse";
2566
+ readonly type: "tuple";
2567
+ readonly components: readonly [{
2568
+ readonly name: "nextKey";
2569
+ readonly internalType: "bytes";
2570
+ readonly type: "bytes";
2571
+ }, {
2572
+ readonly name: "total";
2573
+ readonly internalType: "uint64";
2574
+ readonly type: "uint64";
2575
+ }];
2576
+ }];
2577
+ readonly stateMutability: "view";
2578
+ }, {
2579
+ readonly type: "function";
2580
+ readonly inputs: readonly [{
2581
+ readonly name: "contractAddress";
2582
+ readonly internalType: "address";
2583
+ readonly type: "address";
2584
+ }, {
2585
+ readonly name: "user";
2586
+ readonly internalType: "address";
2587
+ readonly type: "address";
2588
+ }, {
2589
+ readonly name: "selector";
2590
+ readonly internalType: "bytes";
2591
+ readonly type: "bytes";
2592
+ }, {
2593
+ readonly name: "asset";
2594
+ readonly internalType: "string";
2595
+ readonly type: "string";
2596
+ }, {
2597
+ readonly name: "resetPeriodSeconds";
2598
+ readonly internalType: "uint64";
2599
+ readonly type: "uint64";
2600
+ }, {
2601
+ readonly name: "resolveAgentOwners";
2602
+ readonly internalType: "bool";
2603
+ readonly type: "bool";
2604
+ }];
2605
+ readonly name: "contractPeriodicVolume";
2606
+ readonly outputs: readonly [{
2607
+ readonly name: "";
2608
+ readonly internalType: "struct PeriodicVolume";
2609
+ readonly type: "tuple";
2610
+ readonly components: readonly [{
2611
+ readonly name: "amount";
2612
+ readonly internalType: "uint256";
2613
+ readonly type: "uint256";
2614
+ }, {
2615
+ readonly name: "maxAmount";
2616
+ readonly internalType: "uint256";
2617
+ readonly type: "uint256";
2618
+ }, {
2619
+ readonly name: "resetPeriodSeconds";
2620
+ readonly internalType: "uint64";
2621
+ readonly type: "uint64";
2622
+ }, {
2623
+ readonly name: "resetAt";
2624
+ readonly internalType: "uint64";
2625
+ readonly type: "uint64";
2626
+ }];
2627
+ }];
2628
+ readonly stateMutability: "view";
2629
+ }, {
2630
+ readonly type: "function";
2631
+ readonly inputs: readonly [{
2632
+ readonly name: "contractAddress";
2633
+ readonly internalType: "address";
2634
+ readonly type: "address";
2635
+ }];
2636
+ readonly name: "contractPolicies";
2637
+ readonly outputs: readonly [{
2638
+ readonly name: "";
2639
+ readonly internalType: "struct ContractPolicyConfig";
2640
+ readonly type: "tuple";
2641
+ readonly components: readonly [{
2642
+ readonly name: "_contract";
2643
+ readonly internalType: "address";
2644
+ readonly type: "address";
2645
+ }, {
2646
+ readonly name: "admin";
2647
+ readonly internalType: "address";
2648
+ readonly type: "address";
2649
+ }, {
2650
+ readonly name: "policies";
2651
+ readonly internalType: "struct PolicySet[]";
2652
+ readonly type: "tuple[]";
2653
+ readonly components: readonly [{
2654
+ readonly name: "templateId";
2655
+ readonly internalType: "string";
2656
+ readonly type: "string";
2657
+ }, {
2658
+ readonly name: "policy";
2659
+ readonly internalType: "bytes";
2660
+ readonly type: "bytes";
2661
+ }, {
2662
+ readonly name: "selector";
2663
+ readonly internalType: "bytes";
2664
+ readonly type: "bytes";
2665
+ }];
2666
+ }];
2667
+ }];
2668
+ readonly stateMutability: "view";
2669
+ }, {
2670
+ readonly type: "function";
2671
+ readonly inputs: readonly [{
2672
+ readonly name: "kind";
2673
+ readonly internalType: "enum PclProxyKind";
2674
+ readonly type: "uint8";
2675
+ }, {
2676
+ readonly name: "value";
2677
+ readonly internalType: "uint256";
2678
+ readonly type: "uint256";
2679
+ }, {
2680
+ readonly name: "initData";
2681
+ readonly internalType: "bytes";
2682
+ readonly type: "bytes";
2683
+ }];
2684
+ readonly name: "deployPclProxy";
2685
+ readonly outputs: readonly [{
2686
+ readonly name: "proxy";
2687
+ readonly internalType: "address";
2688
+ readonly type: "address";
2689
+ }];
2690
+ readonly stateMutability: "nonpayable";
2691
+ }, {
2692
+ readonly type: "function";
2693
+ readonly inputs: readonly [];
2694
+ readonly name: "getParams";
2695
+ readonly outputs: readonly [{
2696
+ readonly name: "";
2697
+ readonly internalType: "struct PclParams";
2698
+ readonly type: "tuple";
2699
+ readonly components: readonly [{
2700
+ readonly name: "policyAdmin";
2701
+ readonly internalType: "address";
2702
+ readonly type: "address";
2703
+ }, {
2704
+ readonly name: "entrypoints";
2705
+ readonly internalType: "address[]";
2706
+ readonly type: "address[]";
2707
+ }];
2708
+ }];
2709
+ readonly stateMutability: "view";
2710
+ }, {
2711
+ readonly type: "function";
2712
+ readonly inputs: readonly [{
2713
+ readonly name: "user";
2714
+ readonly internalType: "address";
2715
+ readonly type: "address";
2716
+ }];
2717
+ readonly name: "globalOkrwEasPeriodicVolume";
2718
+ readonly outputs: readonly [{
2719
+ readonly name: "";
2720
+ readonly internalType: "struct PeriodicVolume";
2721
+ readonly type: "tuple";
2722
+ readonly components: readonly [{
2723
+ readonly name: "amount";
2724
+ readonly internalType: "uint256";
2725
+ readonly type: "uint256";
2726
+ }, {
2727
+ readonly name: "maxAmount";
2728
+ readonly internalType: "uint256";
2729
+ readonly type: "uint256";
2730
+ }, {
2731
+ readonly name: "resetPeriodSeconds";
2732
+ readonly internalType: "uint64";
2733
+ readonly type: "uint64";
2734
+ }, {
2735
+ readonly name: "resetAt";
2736
+ readonly internalType: "uint64";
2737
+ readonly type: "uint64";
2738
+ }];
2739
+ }];
2740
+ readonly stateMutability: "view";
2741
+ }, {
2742
+ readonly type: "function";
2743
+ readonly inputs: readonly [{
2744
+ readonly name: "user";
2745
+ readonly internalType: "address";
2746
+ readonly type: "address";
2747
+ }, {
2748
+ readonly name: "asset";
2749
+ readonly internalType: "string";
2750
+ readonly type: "string";
2751
+ }, {
2752
+ readonly name: "resolveAgentOwners";
2753
+ readonly internalType: "bool";
2754
+ readonly type: "bool";
2755
+ }, {
2756
+ readonly name: "pageRequest";
2757
+ readonly internalType: "struct PageRequest";
2758
+ readonly type: "tuple";
2759
+ readonly components: readonly [{
2760
+ readonly name: "key";
2761
+ readonly internalType: "bytes";
2762
+ readonly type: "bytes";
2763
+ }, {
2764
+ readonly name: "offset";
2765
+ readonly internalType: "uint64";
2766
+ readonly type: "uint64";
2767
+ }, {
2768
+ readonly name: "limit";
2769
+ readonly internalType: "uint64";
2770
+ readonly type: "uint64";
2771
+ }, {
2772
+ readonly name: "countTotal";
2773
+ readonly internalType: "bool";
2774
+ readonly type: "bool";
2775
+ }, {
2776
+ readonly name: "reverse";
2777
+ readonly internalType: "bool";
2778
+ readonly type: "bool";
2779
+ }];
2780
+ }];
2781
+ readonly name: "globalPeriodicList";
2782
+ readonly outputs: readonly [{
2783
+ readonly name: "statuses";
2784
+ readonly internalType: "struct PeriodicVolume[]";
2785
+ readonly type: "tuple[]";
2786
+ readonly components: readonly [{
2787
+ readonly name: "amount";
2788
+ readonly internalType: "uint256";
2789
+ readonly type: "uint256";
2790
+ }, {
2791
+ readonly name: "maxAmount";
2792
+ readonly internalType: "uint256";
2793
+ readonly type: "uint256";
2794
+ }, {
2795
+ readonly name: "resetPeriodSeconds";
2796
+ readonly internalType: "uint64";
2797
+ readonly type: "uint64";
2798
+ }, {
2799
+ readonly name: "resetAt";
2800
+ readonly internalType: "uint64";
2801
+ readonly type: "uint64";
2802
+ }];
2803
+ }, {
2804
+ readonly name: "pageResponse";
2805
+ readonly internalType: "struct PageResponse";
2806
+ readonly type: "tuple";
2807
+ readonly components: readonly [{
2808
+ readonly name: "nextKey";
2809
+ readonly internalType: "bytes";
2810
+ readonly type: "bytes";
2811
+ }, {
2812
+ readonly name: "total";
2813
+ readonly internalType: "uint64";
2814
+ readonly type: "uint64";
2815
+ }];
2816
+ }];
2817
+ readonly stateMutability: "view";
2818
+ }, {
2819
+ readonly type: "function";
2820
+ readonly inputs: readonly [{
2821
+ readonly name: "user";
2822
+ readonly internalType: "address";
2823
+ readonly type: "address";
2824
+ }, {
2825
+ readonly name: "asset";
2826
+ readonly internalType: "string";
2827
+ readonly type: "string";
2828
+ }, {
2829
+ readonly name: "resetPeriodSeconds";
2830
+ readonly internalType: "uint64";
2831
+ readonly type: "uint64";
2832
+ }, {
2833
+ readonly name: "resolveAgentOwners";
2834
+ readonly internalType: "bool";
2835
+ readonly type: "bool";
2836
+ }];
2837
+ readonly name: "globalPeriodicVolume";
2838
+ readonly outputs: readonly [{
2839
+ readonly name: "";
2840
+ readonly internalType: "struct PeriodicVolume";
2841
+ readonly type: "tuple";
2842
+ readonly components: readonly [{
2843
+ readonly name: "amount";
2844
+ readonly internalType: "uint256";
2845
+ readonly type: "uint256";
2846
+ }, {
2847
+ readonly name: "maxAmount";
2848
+ readonly internalType: "uint256";
2849
+ readonly type: "uint256";
2850
+ }, {
2851
+ readonly name: "resetPeriodSeconds";
2852
+ readonly internalType: "uint64";
2853
+ readonly type: "uint64";
2854
+ }, {
2855
+ readonly name: "resetAt";
2856
+ readonly internalType: "uint64";
2857
+ readonly type: "uint64";
2858
+ }];
2859
+ }];
2860
+ readonly stateMutability: "view";
2861
+ }, {
2862
+ readonly type: "function";
2863
+ readonly inputs: readonly [];
2864
+ readonly name: "globalPolicies";
2865
+ readonly outputs: readonly [{
2866
+ readonly name: "";
2867
+ readonly internalType: "struct GlobalPolicyConfig";
2868
+ readonly type: "tuple";
2869
+ readonly components: readonly [{
2870
+ readonly name: "policies";
2871
+ readonly internalType: "struct PolicySet[]";
2872
+ readonly type: "tuple[]";
2873
+ readonly components: readonly [{
2874
+ readonly name: "templateId";
2875
+ readonly internalType: "string";
2876
+ readonly type: "string";
2877
+ }, {
2878
+ readonly name: "policy";
2879
+ readonly internalType: "bytes";
2880
+ readonly type: "bytes";
2881
+ }, {
2882
+ readonly name: "selector";
2883
+ readonly internalType: "bytes";
2884
+ readonly type: "bytes";
2885
+ }];
2886
+ }];
2887
+ }];
2888
+ readonly stateMutability: "view";
2889
+ }, {
2890
+ readonly type: "function";
2891
+ readonly inputs: readonly [{
2892
+ readonly name: "proxy";
2893
+ readonly internalType: "address";
2894
+ readonly type: "address";
2895
+ }];
2896
+ readonly name: "pclProxy";
2897
+ readonly outputs: readonly [{
2898
+ readonly name: "";
2899
+ readonly internalType: "struct PclProxyEntry";
2900
+ readonly type: "tuple";
2901
+ readonly components: readonly [{
2902
+ readonly name: "kind";
2903
+ readonly internalType: "enum PclProxyKind";
2904
+ readonly type: "uint8";
2905
+ }];
2906
+ }];
2907
+ readonly stateMutability: "view";
2908
+ }, {
2909
+ readonly type: "function";
2910
+ readonly inputs: readonly [];
2911
+ readonly name: "policyAdmin";
2912
+ readonly outputs: readonly [{
2913
+ readonly name: "";
2914
+ readonly internalType: "address";
2915
+ readonly type: "address";
2916
+ }];
2917
+ readonly stateMutability: "view";
2918
+ }, {
2919
+ readonly type: "function";
2920
+ readonly inputs: readonly [{
2921
+ readonly name: "templateId";
2922
+ readonly internalType: "string";
2923
+ readonly type: "string";
2924
+ }];
2925
+ readonly name: "policyTemplate";
2926
+ readonly outputs: readonly [{
2927
+ readonly name: "";
2928
+ readonly internalType: "struct PolicyTemplate";
2929
+ readonly type: "tuple";
2930
+ readonly components: readonly [{
2931
+ readonly name: "templateId";
2932
+ readonly internalType: "string";
2933
+ readonly type: "string";
2934
+ }, {
2935
+ readonly name: "name";
2936
+ readonly internalType: "string";
2937
+ readonly type: "string";
2938
+ }, {
2939
+ readonly name: "description";
2940
+ readonly internalType: "string";
2941
+ readonly type: "string";
2942
+ }, {
2943
+ readonly name: "paramSchema";
2944
+ readonly internalType: "bytes";
2945
+ readonly type: "bytes";
2946
+ }];
2947
+ }];
2948
+ readonly stateMutability: "view";
2949
+ }, {
2950
+ readonly type: "function";
2951
+ readonly inputs: readonly [{
2952
+ readonly name: "sessionId";
2953
+ readonly internalType: "bytes32";
2954
+ readonly type: "bytes32";
2955
+ }, {
2956
+ readonly name: "contractAddress";
2957
+ readonly internalType: "address";
2958
+ readonly type: "address";
2959
+ }, {
2960
+ readonly name: "principal";
2961
+ readonly internalType: "address";
2962
+ readonly type: "address";
2963
+ }, {
2964
+ readonly name: "data";
2965
+ readonly internalType: "bytes";
2966
+ readonly type: "bytes";
2967
+ }, {
2968
+ readonly name: "value";
2969
+ readonly internalType: "uint256";
2970
+ readonly type: "uint256";
2971
+ }, {
2972
+ readonly name: "workable";
2973
+ readonly internalType: "bool";
2974
+ readonly type: "bool";
2975
+ }];
2976
+ readonly name: "postCall";
2977
+ readonly outputs: readonly [{
2978
+ readonly name: "";
2979
+ readonly internalType: "bytes";
2980
+ readonly type: "bytes";
2981
+ }];
2982
+ readonly stateMutability: "nonpayable";
2983
+ }, {
2984
+ readonly type: "function";
2985
+ readonly inputs: readonly [{
2986
+ readonly name: "contractAddress";
2987
+ readonly internalType: "address";
2988
+ readonly type: "address";
2989
+ }, {
2990
+ readonly name: "principal";
2991
+ readonly internalType: "address";
2992
+ readonly type: "address";
2993
+ }, {
2994
+ readonly name: "data";
2995
+ readonly internalType: "bytes";
2996
+ readonly type: "bytes";
2997
+ }, {
2998
+ readonly name: "value";
2999
+ readonly internalType: "uint256";
3000
+ readonly type: "uint256";
3001
+ }];
3002
+ readonly name: "preCall";
3003
+ readonly outputs: readonly [{
3004
+ readonly name: "sessionId";
3005
+ readonly internalType: "bytes32";
3006
+ readonly type: "bytes32";
3007
+ }];
3008
+ readonly stateMutability: "nonpayable";
3009
+ }, {
3010
+ readonly type: "function";
3011
+ readonly inputs: readonly [{
3012
+ readonly name: "policy";
3013
+ readonly internalType: "struct ContractPolicyConfig";
3014
+ readonly type: "tuple";
3015
+ readonly components: readonly [{
3016
+ readonly name: "_contract";
3017
+ readonly internalType: "address";
3018
+ readonly type: "address";
3019
+ }, {
3020
+ readonly name: "admin";
3021
+ readonly internalType: "address";
3022
+ readonly type: "address";
3023
+ }, {
3024
+ readonly name: "policies";
3025
+ readonly internalType: "struct PolicySet[]";
3026
+ readonly type: "tuple[]";
3027
+ readonly components: readonly [{
3028
+ readonly name: "templateId";
3029
+ readonly internalType: "string";
3030
+ readonly type: "string";
3031
+ }, {
3032
+ readonly name: "policy";
3033
+ readonly internalType: "bytes";
3034
+ readonly type: "bytes";
3035
+ }, {
3036
+ readonly name: "selector";
3037
+ readonly internalType: "bytes";
3038
+ readonly type: "bytes";
3039
+ }];
3040
+ }];
3041
+ }];
3042
+ readonly name: "registerContractPolicies";
3043
+ readonly outputs: readonly [];
3044
+ readonly stateMutability: "nonpayable";
3045
+ }, {
3046
+ readonly type: "function";
3047
+ readonly inputs: readonly [{
3048
+ readonly name: "templateId";
3049
+ readonly internalType: "string";
3050
+ readonly type: "string";
3051
+ }];
3052
+ readonly name: "registerPolicyTemplate";
3053
+ readonly outputs: readonly [];
3054
+ readonly stateMutability: "nonpayable";
3055
+ }, {
3056
+ readonly type: "function";
3057
+ readonly inputs: readonly [{
3058
+ readonly name: "contractAddress";
3059
+ readonly internalType: "address";
3060
+ readonly type: "address";
3061
+ }];
3062
+ readonly name: "removeContractPolicies";
3063
+ readonly outputs: readonly [];
3064
+ readonly stateMutability: "nonpayable";
3065
+ }, {
3066
+ readonly type: "function";
3067
+ readonly inputs: readonly [];
3068
+ readonly name: "removeGlobalPolicies";
3069
+ readonly outputs: readonly [];
3070
+ readonly stateMutability: "nonpayable";
3071
+ }, {
3072
+ readonly type: "function";
3073
+ readonly inputs: readonly [{
3074
+ readonly name: "templateId";
3075
+ readonly internalType: "string";
3076
+ readonly type: "string";
3077
+ }];
3078
+ readonly name: "removePolicyTemplate";
3079
+ readonly outputs: readonly [];
3080
+ readonly stateMutability: "nonpayable";
3081
+ }, {
3082
+ readonly type: "function";
3083
+ readonly inputs: readonly [{
3084
+ readonly name: "contractAddress";
3085
+ readonly internalType: "address";
3086
+ readonly type: "address";
3087
+ }, {
3088
+ readonly name: "data";
3089
+ readonly internalType: "bytes";
3090
+ readonly type: "bytes";
3091
+ }, {
3092
+ readonly name: "value";
3093
+ readonly internalType: "uint256";
3094
+ readonly type: "uint256";
3095
+ }];
3096
+ readonly name: "runOnPcl";
3097
+ readonly outputs: readonly [{
3098
+ readonly name: "";
3099
+ readonly internalType: "bytes";
3100
+ readonly type: "bytes";
3101
+ }];
3102
+ readonly stateMutability: "nonpayable";
3103
+ }, {
3104
+ readonly type: "function";
3105
+ readonly inputs: readonly [{
3106
+ readonly name: "newConfig";
3107
+ readonly internalType: "struct GlobalPolicyConfig";
3108
+ readonly type: "tuple";
3109
+ readonly components: readonly [{
3110
+ readonly name: "policies";
3111
+ readonly internalType: "struct PolicySet[]";
3112
+ readonly type: "tuple[]";
3113
+ readonly components: readonly [{
3114
+ readonly name: "templateId";
3115
+ readonly internalType: "string";
3116
+ readonly type: "string";
3117
+ }, {
3118
+ readonly name: "policy";
3119
+ readonly internalType: "bytes";
3120
+ readonly type: "bytes";
3121
+ }, {
3122
+ readonly name: "selector";
3123
+ readonly internalType: "bytes";
3124
+ readonly type: "bytes";
3125
+ }];
3126
+ }];
3127
+ }];
3128
+ readonly name: "setGlobalPolicies";
3129
+ readonly outputs: readonly [];
3130
+ readonly stateMutability: "nonpayable";
3131
+ }], "write">;
3132
+ type OkrwWriteActions = PrecompileActions<typeof iOkrwAbi, 'write'>;
3133
+ declare const okrwWriteActions: PrecompileActionsFactory<readonly [{
3134
+ readonly type: "error";
3135
+ readonly inputs: readonly [{
3136
+ readonly name: "addr";
3137
+ readonly internalType: "address";
3138
+ readonly type: "address";
3139
+ }];
3140
+ readonly name: "InvalidAddress";
3141
+ }, {
3142
+ readonly type: "error";
3143
+ readonly inputs: readonly [{
3144
+ readonly name: "amount";
3145
+ readonly internalType: "uint256";
3146
+ readonly type: "uint256";
3147
+ }];
3148
+ readonly name: "InvalidAmount";
3149
+ }, {
3150
+ readonly type: "error";
3151
+ readonly inputs: readonly [{
3152
+ readonly name: "caller";
3153
+ readonly internalType: "address";
3154
+ readonly type: "address";
3155
+ }, {
3156
+ readonly name: "authorizedMinter";
3157
+ readonly internalType: "address";
3158
+ readonly type: "address";
3159
+ }];
3160
+ readonly name: "UnauthorizedMinter";
3161
+ }, {
3162
+ readonly type: "event";
3163
+ readonly anonymous: false;
3164
+ readonly inputs: readonly [{
3165
+ readonly name: "minter";
3166
+ readonly internalType: "address";
3167
+ readonly type: "address";
3168
+ readonly indexed: true;
3169
+ }, {
3170
+ readonly name: "recipient";
3171
+ readonly internalType: "address";
3172
+ readonly type: "address";
3173
+ readonly indexed: true;
3174
+ }, {
3175
+ readonly name: "amount";
3176
+ readonly internalType: "uint256";
3177
+ readonly type: "uint256";
3178
+ readonly indexed: false;
3179
+ }];
3180
+ readonly name: "Mint";
3181
+ }, {
3182
+ readonly type: "function";
3183
+ readonly inputs: readonly [];
3184
+ readonly name: "getParams";
3185
+ readonly outputs: readonly [{
3186
+ readonly name: "params";
3187
+ readonly internalType: "struct OkrwParams";
3188
+ readonly type: "tuple";
3189
+ readonly components: readonly [{
3190
+ readonly name: "minter";
3191
+ readonly internalType: "address";
3192
+ readonly type: "address";
3193
+ }, {
3194
+ readonly name: "mintDenom";
3195
+ readonly internalType: "string";
3196
+ readonly type: "string";
3197
+ }];
3198
+ }];
3199
+ readonly stateMutability: "view";
3200
+ }, {
3201
+ readonly type: "function";
3202
+ readonly inputs: readonly [{
3203
+ readonly name: "recipient";
3204
+ readonly internalType: "address";
3205
+ readonly type: "address";
3206
+ }, {
3207
+ readonly name: "amount";
3208
+ readonly internalType: "uint256";
3209
+ readonly type: "uint256";
3210
+ }];
3211
+ readonly name: "mint";
3212
+ readonly outputs: readonly [{
3213
+ readonly name: "";
3214
+ readonly internalType: "bool";
3215
+ readonly type: "bool";
3216
+ }];
3217
+ readonly stateMutability: "nonpayable";
3218
+ }], "write">;
3219
+ //#endregion
3220
+ //#region src/decorators/maroo.d.ts
3221
+ /**
3222
+ * Namespaces are not stylistic here. All four precompiles expose a method
3223
+ * named `getParams`, so a flat merge is impossible without renaming.
3224
+ */
3225
+ type MarooPublicActions = {
3226
+ pcl: PclReadActions;
3227
+ okrw: OkrwReadActions;
3228
+ eas: EasReadActions;
3229
+ agent: AgentReadActions;
3230
+ };
3231
+ /**
3232
+ * Read actions for every Maroo precompile.
3233
+ *
3234
+ * @example
3235
+ * ```ts
3236
+ * const client = createPublicClient({ chain: marooTestnet, transport: http() })
3237
+ * .extend(marooPublicActions())
3238
+ *
3239
+ * const { policyAdmin, entrypoints } = await client.pcl.getParams()
3240
+ * const { policies } = await client.pcl.globalPolicies()
3241
+ * const [ids, page] = await client.agent.getAgentIds({ args: [wallet, pageRequest] })
3242
+ * ```
3243
+ */
3244
+ declare function marooPublicActions(): <transport extends Transport, chain extends Chain | undefined, account extends Account | undefined>(client: Client<transport, chain, account>) => MarooPublicActions;
3245
+ /**
3246
+ * Write actions, grouped by who may actually call them.
3247
+ *
3248
+ * Everything under `pcl` and `okrw` is reachable, but most of it reverts for
3249
+ * ordinary accounts:
3250
+ *
3251
+ * - `pcl.runOnPcl`, `pcl.deployPclProxy`, `pcl.registerContractPolicies`
3252
+ * — callable by anyone.
3253
+ * - `pcl.changeContractPolicies`, `pcl.removeContractPolicies`
3254
+ * — only that contract's admin, fixed at registration time.
3255
+ * - `pcl.setGlobalPolicies`, `pcl.removeGlobalPolicies`,
3256
+ * `pcl.registerPolicyTemplate`, `pcl.removePolicyTemplate`
3257
+ * — only `PclParams.policyAdmin`, a chain parameter.
3258
+ * - `okrw.mint` — only `OkrwParams.minter`, a chain parameter.
3259
+ */
3260
+ type MarooWalletActions<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = {
3261
+ pcl: PclWriteActions & {
3262
+ /**
3263
+ * Call a contract through PCL so its contract-scoped policies apply.
3264
+ * A direct call enforces global policies only, silently.
3265
+ */
3266
+ runOnPcl: <const abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>>(parameters: RunOnPclParameters<abi, functionName>) => Promise<RunOnPclReturnType>;
3267
+ };
3268
+ okrw: OkrwWriteActions;
3269
+ };
3270
+ /**
3271
+ * @example
3272
+ * ```ts
3273
+ * const client = createWalletClient({ chain: marooTestnet, account, transport: http() })
3274
+ * .extend(marooWalletActions())
3275
+ *
3276
+ * const hash = await client.pcl.runOnPcl({
3277
+ * address: token, abi: erc20Abi, functionName: 'transfer', args: [to, amount],
3278
+ * })
3279
+ * ```
3280
+ */
3281
+ declare function marooWalletActions(): <transport extends Transport, chain extends Chain | undefined, account extends Account | undefined>(client: Client<transport, chain, account>) => MarooWalletActions<chain, account>;
3282
+ //#endregion
3283
+ //#region src/codec/policy.d.ts
3284
+ /**
3285
+ * PCL policy codec.
3286
+ *
3287
+ * `PolicySet.policy` is an opaque `bytes` field whose layout is chosen by the
3288
+ * sibling `templateId` string. That mapping exists nowhere in the ABI — the
3289
+ * `_policies` dummy function only forces the structs into the artifact. This
3290
+ * module is the mapping.
3291
+ *
3292
+ * Verified against `marooTestnet.globalPolicies()` at block 12447862.
3293
+ */
3294
+ declare const policyTemplateIds: readonly ["EAS_POLICY", "DENYLIST_POLICY", "VOLUME_POLICY", "OKRW_EAS_TRANSFER_LIMIT_POLICY", "PERIODIC_VOLUME_POLICY", "AGENT_OKRW_TRANSFER_LIMIT_POLICY", "OKRW_EAS_PERIODIC_VOLUME_LIMIT_POLICY", "LOGICAL_POLICY", "FOR_EACH_POLICY"];
3295
+ type PolicyTemplateId = (typeof policyTemplateIds)[number];
3296
+ declare const LogicalQuantifier: {
3297
+ readonly Unspecified: 0;
3298
+ readonly And: 1;
3299
+ readonly Or: 2;
3300
+ };
3301
+ declare const ForEachQuantifier: {
3302
+ readonly Unspecified: 0;
3303
+ readonly Any: 1;
3304
+ readonly Every: 2;
3305
+ };
3306
+ declare const ForEachSubject: {
3307
+ readonly Unspecified: 0;
3308
+ readonly AgentOwners: 1;
3309
+ };
3310
+ type LogicalQuantifierName = keyof typeof LogicalQuantifier;
3311
+ type ForEachQuantifierName = keyof typeof ForEachQuantifier;
3312
+ type ForEachSubjectName = keyof typeof ForEachSubject;
3313
+ /**
3314
+ * `templateId` → the ABI parameters of its `policy` bytes payload.
3315
+ *
3316
+ * Each entry is a one-element parameter list wrapping the payload tuple, so
3317
+ * `decodeAbiParameters(codec, bytes)[0]` is the decoded struct.
3318
+ */
3319
+ declare const policyCodecs: {
3320
+ readonly EAS_POLICY: readonly [{
3321
+ readonly name: "policy";
3322
+ readonly type: "tuple";
3323
+ readonly components: readonly [{
3324
+ readonly name: "easContract";
3325
+ readonly type: "address";
3326
+ }, {
3327
+ readonly name: "indexContract";
3328
+ readonly type: "address";
3329
+ }, {
3330
+ readonly name: "schemaUid";
3331
+ readonly type: "bytes32";
3332
+ }];
3333
+ }];
3334
+ readonly DENYLIST_POLICY: readonly [{
3335
+ readonly name: "policy";
3336
+ readonly type: "tuple";
3337
+ readonly components: readonly [{
3338
+ readonly name: "addresses";
3339
+ readonly type: "address[]";
3340
+ }];
3341
+ }];
3342
+ readonly VOLUME_POLICY: readonly [{
3343
+ readonly name: "policy";
3344
+ readonly type: "tuple";
3345
+ readonly components: readonly [{
3346
+ readonly name: "tokens";
3347
+ readonly type: "string[]";
3348
+ }, {
3349
+ readonly name: "limits";
3350
+ readonly type: "tuple[]";
3351
+ readonly components: readonly [{
3352
+ readonly name: "minLimit";
3353
+ readonly type: "uint256";
3354
+ }, {
3355
+ readonly name: "maxLimit";
3356
+ readonly type: "uint256";
3357
+ }];
3358
+ }];
3359
+ }];
3360
+ readonly PERIODIC_VOLUME_POLICY: readonly [{
3361
+ readonly name: "policy";
3362
+ readonly type: "tuple";
3363
+ readonly components: readonly [{
3364
+ readonly name: "tokens";
3365
+ readonly type: "string[]";
3366
+ }, {
3367
+ readonly name: "limits";
3368
+ readonly type: "tuple[]";
3369
+ readonly components: readonly [{
3370
+ readonly name: "maxAmount";
3371
+ readonly type: "uint256";
3372
+ }, {
3373
+ readonly name: "resetPeriodSeconds";
3374
+ readonly type: "uint64";
3375
+ }];
3376
+ }];
3377
+ }];
3378
+ readonly OKRW_EAS_TRANSFER_LIMIT_POLICY: readonly [{
3379
+ readonly name: "policy";
3380
+ readonly type: "tuple";
3381
+ readonly components: readonly [{
3382
+ readonly name: "easContract";
3383
+ readonly type: "address";
3384
+ }, {
3385
+ readonly name: "indexContract";
3386
+ readonly type: "address";
3387
+ }, {
3388
+ readonly name: "schemaUid";
3389
+ readonly type: "bytes32";
3390
+ }, {
3391
+ readonly name: "transferLimitAmount";
3392
+ readonly type: "uint256";
3393
+ }];
3394
+ }];
3395
+ readonly OKRW_EAS_PERIODIC_VOLUME_LIMIT_POLICY: readonly [{
3396
+ readonly name: "policy";
3397
+ readonly type: "tuple";
3398
+ readonly components: readonly [{
3399
+ readonly name: "easContract";
3400
+ readonly type: "address";
3401
+ }, {
3402
+ readonly name: "indexContract";
3403
+ readonly type: "address";
3404
+ }, {
3405
+ readonly name: "schemaUid";
3406
+ readonly type: "bytes32";
3407
+ }, {
3408
+ readonly name: "maxAmount";
3409
+ readonly type: "uint256";
3410
+ }, {
3411
+ readonly name: "resetPeriodSeconds";
3412
+ readonly type: "uint64";
3413
+ }];
3414
+ }];
3415
+ readonly AGENT_OKRW_TRANSFER_LIMIT_POLICY: readonly [{
3416
+ readonly name: "policy";
3417
+ readonly type: "tuple";
3418
+ readonly components: readonly [{
3419
+ readonly name: "reserved";
3420
+ readonly type: "uint256";
3421
+ }];
3422
+ }];
3423
+ readonly LOGICAL_POLICY: readonly [{
3424
+ readonly name: "policy";
3425
+ readonly type: "tuple";
3426
+ readonly components: readonly [{
3427
+ readonly name: "quantifier";
3428
+ readonly type: "uint8";
3429
+ }, {
3430
+ readonly name: "children";
3431
+ readonly type: "tuple[]";
3432
+ readonly components: readonly [{
3433
+ readonly name: "templateId";
3434
+ readonly type: "string";
3435
+ }, {
3436
+ readonly name: "policy";
3437
+ readonly type: "bytes";
3438
+ }, {
3439
+ readonly name: "selector";
3440
+ readonly type: "bytes";
3441
+ }];
3442
+ }];
3443
+ }];
3444
+ readonly FOR_EACH_POLICY: readonly [{
3445
+ readonly name: "policy";
3446
+ readonly type: "tuple";
3447
+ readonly components: readonly [{
3448
+ readonly name: "quantifier";
3449
+ readonly type: "uint8";
3450
+ }, {
3451
+ readonly name: "subject";
3452
+ readonly type: "uint8";
3453
+ }, {
3454
+ readonly name: "child";
3455
+ readonly type: "tuple";
3456
+ readonly components: readonly [{
3457
+ readonly name: "templateId";
3458
+ readonly type: "string";
3459
+ }, {
3460
+ readonly name: "policy";
3461
+ readonly type: "bytes";
3462
+ }, {
3463
+ readonly name: "selector";
3464
+ readonly type: "bytes";
3465
+ }];
3466
+ }];
3467
+ }];
3468
+ };
3469
+ /** The input struct expected by {@link encodePolicy} for a given template. */
3470
+ type PolicyInput<id extends PolicyTemplateId> = AbiParametersToPrimitiveTypes<(typeof policyCodecs)[id]>[0];
3471
+ /** A `PolicySet` exactly as the precompile returns it. */
3472
+ type RawPolicySet = {
3473
+ templateId: string;
3474
+ policy: Hex;
3475
+ selector: Hex;
3476
+ };
3477
+ type DecodedPolicy = {
3478
+ templateId: 'EAS_POLICY';
3479
+ selector: Hex;
3480
+ easContract: Hex;
3481
+ indexContract: Hex;
3482
+ schemaUid: Hex;
3483
+ } | {
3484
+ templateId: 'DENYLIST_POLICY';
3485
+ selector: Hex;
3486
+ addresses: readonly Hex[];
3487
+ } | {
3488
+ templateId: 'VOLUME_POLICY';
3489
+ selector: Hex;
3490
+ limits: readonly {
3491
+ token: string;
3492
+ minLimit: bigint;
3493
+ maxLimit: bigint;
3494
+ }[];
3495
+ } | {
3496
+ templateId: 'PERIODIC_VOLUME_POLICY';
3497
+ selector: Hex;
3498
+ limits: readonly {
3499
+ token: string;
3500
+ maxAmount: bigint;
3501
+ resetPeriodSeconds: bigint;
3502
+ }[];
3503
+ } | {
3504
+ templateId: 'OKRW_EAS_TRANSFER_LIMIT_POLICY';
3505
+ selector: Hex;
3506
+ easContract: Hex;
3507
+ indexContract: Hex;
3508
+ schemaUid: Hex;
3509
+ transferLimitAmount: bigint;
3510
+ } | {
3511
+ templateId: 'OKRW_EAS_PERIODIC_VOLUME_LIMIT_POLICY';
3512
+ selector: Hex;
3513
+ easContract: Hex;
3514
+ indexContract: Hex;
3515
+ schemaUid: Hex;
3516
+ maxAmount: bigint;
3517
+ resetPeriodSeconds: bigint;
3518
+ } /** The `reserved` field is ignored by the chain, so it is not surfaced. */ | {
3519
+ templateId: 'AGENT_OKRW_TRANSFER_LIMIT_POLICY';
3520
+ selector: Hex;
3521
+ } | {
3522
+ templateId: 'LOGICAL_POLICY';
3523
+ selector: Hex;
3524
+ quantifier: LogicalQuantifierName;
3525
+ children: DecodedPolicy[];
3526
+ } | {
3527
+ templateId: 'FOR_EACH_POLICY';
3528
+ selector: Hex;
3529
+ quantifier: ForEachQuantifierName;
3530
+ subject: ForEachSubjectName;
3531
+ child: DecodedPolicy;
3532
+ } /** Any template this SDK version does not model yet. Never throws. */ | {
3533
+ templateId: string;
3534
+ selector: Hex;
3535
+ raw: Hex;
3536
+ unknown: true;
3537
+ };
3538
+ /**
3539
+ * Recursively decode a `PolicySet` returned by `globalPolicies()` or
3540
+ * `contractPolicies()` into a readable tree.
3541
+ *
3542
+ * Unrecognised template ids decode to `{ unknown: true, raw }` rather than
3543
+ * throwing, so a chain upgrade that adds a policy type degrades a dApp's
3544
+ * policy inspector instead of breaking it.
3545
+ */
3546
+ declare function decodePolicySet(set: RawPolicySet, depth?: number): DecodedPolicy;
3547
+ /**
3548
+ * ABI-encode a policy payload for its template.
3549
+ *
3550
+ * The `policy` argument is typed per `templateId` via {@link PolicyInput}, so
3551
+ * the public signature is fully checked. The single internal cast is the
3552
+ * unavoidable one: indexing `policyCodecs` by a generic `id` yields a union
3553
+ * that `encodeAbiParameters` cannot unify positionally (viem does the same at
3554
+ * this boundary).
3555
+ *
3556
+ * Admin-facing: only `policyAdmin` may set global policies, and only a
3557
+ * contract's registered admin may change its contract policies.
3558
+ */
3559
+ declare function encodePolicy<id extends PolicyTemplateId>(templateId: id, policy: PolicyInput<id>): Hex;
3560
+ /**
3561
+ * Normalize a function selector for a `PolicySet`.
3562
+ *
3563
+ * The chain accepts either an empty value (wildcard, stored internally as
3564
+ * `"__all__"`) or exactly 4 bytes, lowercased. Anything else is rejected with
3565
+ * `InvalidSelector`.
3566
+ */
3567
+ declare function normalizeSelector(selector?: Hex | undefined): Hex;
3568
+ //#endregion
3569
+ //#region src/errors/pcl.d.ts
3570
+ /**
3571
+ * A PCL policy rejection, decoded into something a dApp can act on.
3572
+ *
3573
+ * viem already decodes the custom error name and args from the revert data
3574
+ * once it has the ABI. What it cannot do is tell you which of the 40 errors
3575
+ * mean "a policy rejected this user" as opposed to "you passed bad input" or
3576
+ * "you are not the admin" — nor turn `resetAt` into a `Date`.
3577
+ */
3578
+ type PclViolation = {
3579
+ kind: 'denylist';
3580
+ sender: Hex;
3581
+ } | {
3582
+ kind: 'volume-below-min';
3583
+ minLimit: bigint;
3584
+ value: bigint;
3585
+ } | {
3586
+ kind: 'volume-above-max';
3587
+ maxLimit: bigint;
3588
+ value: bigint;
3589
+ } | {
3590
+ kind: 'periodic-volume';
3591
+ maxLimit: bigint;
3592
+ value: bigint;
3593
+ resetAt: Date;
3594
+ } | {
3595
+ kind: 'non-eas-limit';
3596
+ maxLimit: bigint;
3597
+ value: bigint;
3598
+ } | {
3599
+ kind: 'agent-transfer-limit';
3600
+ maxLimit: bigint;
3601
+ value: bigint;
3602
+ } | {
3603
+ kind: 'attestation';
3604
+ reason: 'required' | 'none-received' | 'lookup-failed' | 'revoked' | 'expired';
3605
+ sender: Hex;
3606
+ } /** `AnyOfRejected` — every branch of a LOGICAL(Or) failed. Each child revert, decoded. */ | {
3607
+ kind: 'any-of-rejected';
3608
+ children: (PclViolation | {
3609
+ kind: 'unknown';
3610
+ name: string;
3611
+ })[];
3612
+ } | {
3613
+ kind: 'unauthorized';
3614
+ } | {
3615
+ kind: 'unknown';
3616
+ name: string;
3617
+ args: readonly unknown[];
3618
+ };
3619
+ /**
3620
+ * Decode PCL revert data — or a thrown viem error wrapping it — into a
3621
+ * {@link PclViolation}. Returns `null` if the revert is not a PCL error.
3622
+ *
3623
+ * @example
3624
+ * ```ts
3625
+ * try {
3626
+ * await client.pcl.runOnPcl({ ... })
3627
+ * } catch (err) {
3628
+ * const v = decodePclError(err)
3629
+ * if (v?.kind === 'periodic-volume')
3630
+ * throw new Error(`24h limit hit. Resets ${v.resetAt.toISOString()}`)
3631
+ * throw err
3632
+ * }
3633
+ * ```
3634
+ */
3635
+ declare function decodePclError(source: Hex | unknown): PclViolation | null;
3636
+ //#endregion
3637
+ export { type AgentReadActions, type DecodedPolicy, type EasReadActions, ForEachQuantifier, ForEachSubject, LogicalQuantifier, type MarooPublicActions, type MarooWalletActions, NO_MAX_LIMIT, type OkrwReadActions, type OkrwWriteActions, type PclReadActions, type PclViolation, type PclWriteActions, type PolicyInput, type PolicyTemplateId, type PrecompileActions, type PrecompileCallOptions, type PrecompileReadActions, type PrecompileReadCall, type PrecompileWriteActions, type RawPolicySet, type RunOnPclParameters, type RunOnPclReturnType, SELECTOR_ALL, agentReadActions, decodePclError, decodePolicySet, easContracts, easReadActions, encodePolicy, marooPublicActions, marooWalletActions, normalizeSelector, okrwReadActions, okrwWriteActions, pclReadActions, pclWriteActions, policyCodecs, policyTemplateIds, precompileActions, precompileAddresses, runOnPcl };