@agenticprimitives/contracts 1.0.0-alpha.7 → 1.0.0-alpha.8

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,407 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "receiptRegistry_",
7
+ "type": "address",
8
+ "internalType": "address"
9
+ }
10
+ ],
11
+ "stateMutability": "nonpayable"
12
+ },
13
+ {
14
+ "type": "function",
15
+ "name": "afterHook",
16
+ "inputs": [
17
+ {
18
+ "name": "",
19
+ "type": "bytes",
20
+ "internalType": "bytes"
21
+ },
22
+ {
23
+ "name": "",
24
+ "type": "bytes",
25
+ "internalType": "bytes"
26
+ },
27
+ {
28
+ "name": "",
29
+ "type": "bytes32",
30
+ "internalType": "bytes32"
31
+ },
32
+ {
33
+ "name": "",
34
+ "type": "address",
35
+ "internalType": "address"
36
+ },
37
+ {
38
+ "name": "",
39
+ "type": "address",
40
+ "internalType": "address"
41
+ },
42
+ {
43
+ "name": "",
44
+ "type": "address",
45
+ "internalType": "address"
46
+ },
47
+ {
48
+ "name": "",
49
+ "type": "uint256",
50
+ "internalType": "uint256"
51
+ },
52
+ {
53
+ "name": "",
54
+ "type": "bytes",
55
+ "internalType": "bytes"
56
+ }
57
+ ],
58
+ "outputs": [],
59
+ "stateMutability": "pure"
60
+ },
61
+ {
62
+ "type": "function",
63
+ "name": "beforeHook",
64
+ "inputs": [
65
+ {
66
+ "name": "terms",
67
+ "type": "bytes",
68
+ "internalType": "bytes"
69
+ },
70
+ {
71
+ "name": "args",
72
+ "type": "bytes",
73
+ "internalType": "bytes"
74
+ },
75
+ {
76
+ "name": "delegationHash",
77
+ "type": "bytes32",
78
+ "internalType": "bytes32"
79
+ },
80
+ {
81
+ "name": "delegator",
82
+ "type": "address",
83
+ "internalType": "address"
84
+ },
85
+ {
86
+ "name": "",
87
+ "type": "address",
88
+ "internalType": "address"
89
+ },
90
+ {
91
+ "name": "target",
92
+ "type": "address",
93
+ "internalType": "address"
94
+ },
95
+ {
96
+ "name": "value",
97
+ "type": "uint256",
98
+ "internalType": "uint256"
99
+ },
100
+ {
101
+ "name": "callData",
102
+ "type": "bytes",
103
+ "internalType": "bytes"
104
+ }
105
+ ],
106
+ "outputs": [],
107
+ "stateMutability": "nonpayable"
108
+ },
109
+ {
110
+ "type": "function",
111
+ "name": "encodeTerms",
112
+ "inputs": [
113
+ {
114
+ "name": "treasury",
115
+ "type": "address",
116
+ "internalType": "address"
117
+ },
118
+ {
119
+ "name": "asset",
120
+ "type": "address",
121
+ "internalType": "address"
122
+ },
123
+ {
124
+ "name": "maxAmountPerCharge",
125
+ "type": "uint256",
126
+ "internalType": "uint256"
127
+ },
128
+ {
129
+ "name": "maxAggregate",
130
+ "type": "uint256",
131
+ "internalType": "uint256"
132
+ },
133
+ {
134
+ "name": "maxRedemptionsPerWindow",
135
+ "type": "uint32",
136
+ "internalType": "uint32"
137
+ },
138
+ {
139
+ "name": "windowSeconds",
140
+ "type": "uint32",
141
+ "internalType": "uint32"
142
+ }
143
+ ],
144
+ "outputs": [
145
+ {
146
+ "name": "",
147
+ "type": "bytes",
148
+ "internalType": "bytes"
149
+ }
150
+ ],
151
+ "stateMutability": "pure"
152
+ },
153
+ {
154
+ "type": "function",
155
+ "name": "getBudget",
156
+ "inputs": [
157
+ {
158
+ "name": "delegator",
159
+ "type": "address",
160
+ "internalType": "address"
161
+ },
162
+ {
163
+ "name": "delegationHash",
164
+ "type": "bytes32",
165
+ "internalType": "bytes32"
166
+ }
167
+ ],
168
+ "outputs": [
169
+ {
170
+ "name": "spent",
171
+ "type": "uint256",
172
+ "internalType": "uint256"
173
+ },
174
+ {
175
+ "name": "windowStart",
176
+ "type": "uint64",
177
+ "internalType": "uint64"
178
+ },
179
+ {
180
+ "name": "callsInWindow",
181
+ "type": "uint32",
182
+ "internalType": "uint32"
183
+ }
184
+ ],
185
+ "stateMutability": "view"
186
+ },
187
+ {
188
+ "type": "function",
189
+ "name": "isNonceUsed",
190
+ "inputs": [
191
+ {
192
+ "name": "delegator",
193
+ "type": "address",
194
+ "internalType": "address"
195
+ },
196
+ {
197
+ "name": "delegationHash",
198
+ "type": "bytes32",
199
+ "internalType": "bytes32"
200
+ },
201
+ {
202
+ "name": "nonce",
203
+ "type": "bytes32",
204
+ "internalType": "bytes32"
205
+ }
206
+ ],
207
+ "outputs": [
208
+ {
209
+ "name": "",
210
+ "type": "bool",
211
+ "internalType": "bool"
212
+ }
213
+ ],
214
+ "stateMutability": "view"
215
+ },
216
+ {
217
+ "type": "function",
218
+ "name": "receiptRegistry",
219
+ "inputs": [],
220
+ "outputs": [
221
+ {
222
+ "name": "",
223
+ "type": "address",
224
+ "internalType": "contract IPaymentReceiptRegistry"
225
+ }
226
+ ],
227
+ "stateMutability": "view"
228
+ },
229
+ {
230
+ "type": "event",
231
+ "name": "PaymentCharged",
232
+ "inputs": [
233
+ {
234
+ "name": "delegator",
235
+ "type": "address",
236
+ "indexed": true,
237
+ "internalType": "address"
238
+ },
239
+ {
240
+ "name": "delegationHash",
241
+ "type": "bytes32",
242
+ "indexed": true,
243
+ "internalType": "bytes32"
244
+ },
245
+ {
246
+ "name": "mandateId",
247
+ "type": "bytes32",
248
+ "indexed": true,
249
+ "internalType": "bytes32"
250
+ },
251
+ {
252
+ "name": "treasury",
253
+ "type": "address",
254
+ "indexed": false,
255
+ "internalType": "address"
256
+ },
257
+ {
258
+ "name": "asset",
259
+ "type": "address",
260
+ "indexed": false,
261
+ "internalType": "address"
262
+ },
263
+ {
264
+ "name": "amount",
265
+ "type": "uint256",
266
+ "indexed": false,
267
+ "internalType": "uint256"
268
+ },
269
+ {
270
+ "name": "nonce",
271
+ "type": "bytes32",
272
+ "indexed": false,
273
+ "internalType": "bytes32"
274
+ },
275
+ {
276
+ "name": "resourceHash",
277
+ "type": "bytes32",
278
+ "indexed": false,
279
+ "internalType": "bytes32"
280
+ },
281
+ {
282
+ "name": "totalSpent",
283
+ "type": "uint256",
284
+ "indexed": false,
285
+ "internalType": "uint256"
286
+ },
287
+ {
288
+ "name": "callsInWindow",
289
+ "type": "uint32",
290
+ "indexed": false,
291
+ "internalType": "uint32"
292
+ }
293
+ ],
294
+ "anonymous": false
295
+ },
296
+ {
297
+ "type": "error",
298
+ "name": "AggregateExceeded",
299
+ "inputs": [
300
+ {
301
+ "name": "spent",
302
+ "type": "uint256",
303
+ "internalType": "uint256"
304
+ },
305
+ {
306
+ "name": "maxAggregate",
307
+ "type": "uint256",
308
+ "internalType": "uint256"
309
+ },
310
+ {
311
+ "name": "amount",
312
+ "type": "uint256",
313
+ "internalType": "uint256"
314
+ }
315
+ ]
316
+ },
317
+ {
318
+ "type": "error",
319
+ "name": "AssetMismatch",
320
+ "inputs": [
321
+ {
322
+ "name": "expectedAsset",
323
+ "type": "address",
324
+ "internalType": "address"
325
+ },
326
+ {
327
+ "name": "target",
328
+ "type": "address",
329
+ "internalType": "address"
330
+ }
331
+ ]
332
+ },
333
+ {
334
+ "type": "error",
335
+ "name": "ChargeExceedsMax",
336
+ "inputs": [
337
+ {
338
+ "name": "amount",
339
+ "type": "uint256",
340
+ "internalType": "uint256"
341
+ },
342
+ {
343
+ "name": "maxAmountPerCharge",
344
+ "type": "uint256",
345
+ "internalType": "uint256"
346
+ }
347
+ ]
348
+ },
349
+ {
350
+ "type": "error",
351
+ "name": "FrequencyExceeded",
352
+ "inputs": [
353
+ {
354
+ "name": "callsInWindow",
355
+ "type": "uint32",
356
+ "internalType": "uint32"
357
+ },
358
+ {
359
+ "name": "maxRedemptionsPerWindow",
360
+ "type": "uint32",
361
+ "internalType": "uint32"
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ "type": "error",
367
+ "name": "InvalidTerms",
368
+ "inputs": []
369
+ },
370
+ {
371
+ "type": "error",
372
+ "name": "NonceReused",
373
+ "inputs": [
374
+ {
375
+ "name": "nonce",
376
+ "type": "bytes32",
377
+ "internalType": "bytes32"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "type": "error",
383
+ "name": "NotTransferCall",
384
+ "inputs": []
385
+ },
386
+ {
387
+ "type": "error",
388
+ "name": "ValueNotZero",
389
+ "inputs": []
390
+ },
391
+ {
392
+ "type": "error",
393
+ "name": "WrongRecipient",
394
+ "inputs": [
395
+ {
396
+ "name": "treasury",
397
+ "type": "address",
398
+ "internalType": "address"
399
+ },
400
+ {
401
+ "name": "to",
402
+ "type": "address",
403
+ "internalType": "address"
404
+ }
405
+ ]
406
+ }
407
+ ]
@@ -0,0 +1,182 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [],
5
+ "stateMutability": "nonpayable"
6
+ },
7
+ {
8
+ "type": "function",
9
+ "name": "enforcer",
10
+ "inputs": [],
11
+ "outputs": [
12
+ {
13
+ "name": "",
14
+ "type": "address",
15
+ "internalType": "address"
16
+ }
17
+ ],
18
+ "stateMutability": "view"
19
+ },
20
+ {
21
+ "type": "function",
22
+ "name": "owner",
23
+ "inputs": [],
24
+ "outputs": [
25
+ {
26
+ "name": "",
27
+ "type": "address",
28
+ "internalType": "address"
29
+ }
30
+ ],
31
+ "stateMutability": "view"
32
+ },
33
+ {
34
+ "type": "function",
35
+ "name": "record",
36
+ "inputs": [
37
+ {
38
+ "name": "mandateId",
39
+ "type": "bytes32",
40
+ "internalType": "bytes32"
41
+ },
42
+ {
43
+ "name": "payer",
44
+ "type": "address",
45
+ "internalType": "address"
46
+ },
47
+ {
48
+ "name": "payee",
49
+ "type": "address",
50
+ "internalType": "address"
51
+ },
52
+ {
53
+ "name": "asset",
54
+ "type": "address",
55
+ "internalType": "address"
56
+ },
57
+ {
58
+ "name": "amount",
59
+ "type": "uint256",
60
+ "internalType": "uint256"
61
+ },
62
+ {
63
+ "name": "resourceHash",
64
+ "type": "bytes32",
65
+ "internalType": "bytes32"
66
+ },
67
+ {
68
+ "name": "delegationHash",
69
+ "type": "bytes32",
70
+ "internalType": "bytes32"
71
+ },
72
+ {
73
+ "name": "nonce",
74
+ "type": "bytes32",
75
+ "internalType": "bytes32"
76
+ }
77
+ ],
78
+ "outputs": [],
79
+ "stateMutability": "nonpayable"
80
+ },
81
+ {
82
+ "type": "function",
83
+ "name": "setEnforcer",
84
+ "inputs": [
85
+ {
86
+ "name": "enforcer_",
87
+ "type": "address",
88
+ "internalType": "address"
89
+ }
90
+ ],
91
+ "outputs": [],
92
+ "stateMutability": "nonpayable"
93
+ },
94
+ {
95
+ "type": "event",
96
+ "name": "EnforcerSet",
97
+ "inputs": [
98
+ {
99
+ "name": "enforcer",
100
+ "type": "address",
101
+ "indexed": true,
102
+ "internalType": "address"
103
+ }
104
+ ],
105
+ "anonymous": false
106
+ },
107
+ {
108
+ "type": "event",
109
+ "name": "PaymentSettled",
110
+ "inputs": [
111
+ {
112
+ "name": "mandateId",
113
+ "type": "bytes32",
114
+ "indexed": true,
115
+ "internalType": "bytes32"
116
+ },
117
+ {
118
+ "name": "payer",
119
+ "type": "address",
120
+ "indexed": true,
121
+ "internalType": "address"
122
+ },
123
+ {
124
+ "name": "payee",
125
+ "type": "address",
126
+ "indexed": true,
127
+ "internalType": "address"
128
+ },
129
+ {
130
+ "name": "asset",
131
+ "type": "address",
132
+ "indexed": false,
133
+ "internalType": "address"
134
+ },
135
+ {
136
+ "name": "amount",
137
+ "type": "uint256",
138
+ "indexed": false,
139
+ "internalType": "uint256"
140
+ },
141
+ {
142
+ "name": "resourceHash",
143
+ "type": "bytes32",
144
+ "indexed": false,
145
+ "internalType": "bytes32"
146
+ },
147
+ {
148
+ "name": "delegationHash",
149
+ "type": "bytes32",
150
+ "indexed": false,
151
+ "internalType": "bytes32"
152
+ },
153
+ {
154
+ "name": "nonce",
155
+ "type": "bytes32",
156
+ "indexed": false,
157
+ "internalType": "bytes32"
158
+ }
159
+ ],
160
+ "anonymous": false
161
+ },
162
+ {
163
+ "type": "error",
164
+ "name": "EnforcerAlreadySet",
165
+ "inputs": []
166
+ },
167
+ {
168
+ "type": "error",
169
+ "name": "NotEnforcer",
170
+ "inputs": []
171
+ },
172
+ {
173
+ "type": "error",
174
+ "name": "NotOwner",
175
+ "inputs": []
176
+ },
177
+ {
178
+ "type": "error",
179
+ "name": "ZeroAddress",
180
+ "inputs": []
181
+ }
182
+ ]
@@ -40,10 +40,14 @@ export declare const IERC7579Module: Abi;
40
40
  export declare const IERC7579ModuleLifecycle: Abi;
41
41
  export declare const IERC7579ModuleLike: Abi;
42
42
  export declare const IGovernanceView: Abi;
43
+ export declare const IPaymentReceiptRegistry: Abi;
44
+ export declare const MockUSDC: Abi;
43
45
  export declare const MultiSendCallOnly: Abi;
44
46
  export declare const MultiSendCallOnlyHarness: Abi;
45
47
  export declare const OntologyTermRegistry: Abi;
46
48
  export declare const P256Verifier: Abi;
49
+ export declare const PaymentEnforcer: Abi;
50
+ export declare const PaymentReceiptRegistry: Abi;
47
51
  export declare const PermissionlessSubregistry: Abi;
48
52
  export declare const QuorumEnforcer: Abi;
49
53
  export declare const RelationshipTypeRegistry: Abi;
package/dist/abi/index.js CHANGED
@@ -40,10 +40,14 @@ export { default as IERC7579Module } from './IERC7579Module.json' with { type: '
40
40
  export { default as IERC7579ModuleLifecycle } from './IERC7579ModuleLifecycle.json' with { type: 'json' };
41
41
  export { default as IERC7579ModuleLike } from './IERC7579ModuleLike.json' with { type: 'json' };
42
42
  export { default as IGovernanceView } from './IGovernanceView.json' with { type: 'json' };
43
+ export { default as IPaymentReceiptRegistry } from './IPaymentReceiptRegistry.json' with { type: 'json' };
44
+ export { default as MockUSDC } from './MockUSDC.json' with { type: 'json' };
43
45
  export { default as MultiSendCallOnly } from './MultiSendCallOnly.json' with { type: 'json' };
44
46
  export { default as MultiSendCallOnlyHarness } from './MultiSendCallOnlyHarness.json' with { type: 'json' };
45
47
  export { default as OntologyTermRegistry } from './OntologyTermRegistry.json' with { type: 'json' };
46
48
  export { default as P256Verifier } from './P256Verifier.json' with { type: 'json' };
49
+ export { default as PaymentEnforcer } from './PaymentEnforcer.json' with { type: 'json' };
50
+ export { default as PaymentReceiptRegistry } from './PaymentReceiptRegistry.json' with { type: 'json' };
47
51
  export { default as PermissionlessSubregistry } from './PermissionlessSubregistry.json' with { type: 'json' };
48
52
  export { default as QuorumEnforcer } from './QuorumEnforcer.json' with { type: 'json' };
49
53
  export { default as RelationshipTypeRegistry } from './RelationshipTypeRegistry.json' with { type: 'json' };
@@ -31,6 +31,9 @@ export interface Deployments {
31
31
  readonly "timestampEnforcer": Address;
32
32
  readonly "universalSignatureValidator": Address;
33
33
  readonly "valueEnforcer": Address;
34
+ readonly "paymentEnforcer": Address;
35
+ readonly "paymentReceiptRegistry": Address;
36
+ readonly "mockUsdc": Address;
34
37
  readonly "chainId": number;
35
38
  }
36
39
  export declare const CONTRACTS: Deployments;
@@ -30,6 +30,9 @@ export const CONTRACTS = {
30
30
  "smartAgentPaymaster": "0x8eF92B9D62826052D8F7e6dcaB630dC3890bF540",
31
31
  "timestampEnforcer": "0x7c452434314A5bf2048f9263aeCd0cC20Fa07965",
32
32
  "universalSignatureValidator": "0xe8F3e531429F44D77dC3A331C18032bfa1550D84",
33
- "valueEnforcer": "0x7c4533e0A9fB0B1cb5aa70327b222a80d72d52db"
33
+ "valueEnforcer": "0x7c4533e0A9fB0B1cb5aa70327b222a80d72d52db",
34
+ "paymentEnforcer": "0xAF48273e11435cC2D56f4AFBfD091Abb162458E9",
35
+ "paymentReceiptRegistry": "0x366616E265cd3cDE0F042A592C17838fe210D1d4",
36
+ "mockUsdc": "0x8fb56ff3C13347DFC4E1287aE83E88deE5a7211C"
34
37
  };
35
38
  export default CONTRACTS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/contracts",
3
- "version": "1.0.0-alpha.7",
3
+ "version": "1.0.0-alpha.8",
4
4
  "description": "Solidity contracts + ABIs + flattened sources + per-network deployment addresses for the agenticprimitives stack.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -60,6 +60,7 @@
60
60
  "deploy:paymaster:base-sepolia": "DEPLOY_NETWORK=base-sepolia forge script script/DeployPaymaster.s.sol --rpc-url $BASE_SEPOLIA_RPC --broadcast --private-key $PRIVATE_KEY --sig 'run()'",
61
61
  "deploy:paymaster:anvil": "DEPLOY_NETWORK=anvil forge script script/DeployPaymaster.s.sol --rpc-url http://127.0.0.1:8545 --broadcast --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --sig 'run()'",
62
62
  "deploy:registries:base-sepolia": "DEPLOY_NETWORK=base-sepolia forge script script/DeployRegistries.s.sol --rpc-url $BASE_SEPOLIA_RPC --broadcast --private-key $PRIVATE_KEY --sig 'run()'",
63
+ "deploy:payments:base-sepolia": "DEPLOY_NETWORK=base-sepolia forge script script/DeployPayments.s.sol --rpc-url $BASE_SEPOLIA_RPC --broadcast --private-key $PRIVATE_KEY --sig 'run()'",
63
64
  "deploy:registries:merge": "node scripts/merge-registry-deploy.mjs",
64
65
  "verify:base-sepolia": "bash scripts/verify-base-sepolia.sh",
65
66
  "clean": "rm -rf out cache broadcast dist"