@agenticprimitives/contracts 1.0.0-alpha.25 → 1.0.0-alpha.26

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.
package/AUDIT.md CHANGED
@@ -52,6 +52,11 @@ This package ships the **on-chain enforcement layer** for the agenticprimitives
52
52
  | 2.12 | **CustodyPolicy reinstall is permanently forbidden.** | ✅ CLOSED audit C-11 | `CustodyPolicy.sol:onUninstall` + `onInstall` reinstall gate; tested in `CustodyPolicyWave2C.t.sol` |
53
53
  | 2.13 | **`SmartAgentPaymaster.getHash` binds `address(entryPoint)` + chainId.** | ✅ CLOSED H7-C.7 / CON-PAYMASTER-004 | `SmartAgentPaymaster.sol:206-222`; tested in `SmartAgentPaymasterValidateR610.t.sol` |
54
54
  | 2.14 | **`SmartAgentPaymaster` constructor takes EXPLICIT `devMode` (no implicit fail-open).** | ✅ CLOSED R5.7 / PKG-PAYMASTER-002 / external audit P0-2 | `SmartAgentPaymaster.sol:126-141`; tested in `SmartAgentPaymaster.t.sol::test_R5_7_*` |
55
+ | 2.15 | **The account's `execute` never reaches its own custody-tier contracts from below the custody tier.** `CustodyPolicy.onUninstall` reverts `StillInstalledOn` unless `uninstallModule` already dropped the module; a delegation stack (`_delegationExecCtx`) may not target `custodyPolicy` or `approvedHashRegistry` at all. | ✅ CLOSED R917-C-1 (spec 408 §1.1) | `CustodyPolicy.sol:onUninstall`, `AgentAccount.sol:_isAccountTrustedTarget`; `test/HardeningR917.t.sol` |
56
+ | 2.16 | **An approved hash dies with the custody set that approved it.** The `0x03` sentinel consults `isApproved(this, keccak256(hash ‖ custodyEpoch))`; `custodyEpoch` bumps on every credential retirement (`removeCustodian` / `removePasskey`); `ApprovedHashRegistry.revokeAll()` voids per signer. | ✅ CLOSED R917-C-2 (spec 408 §1.2) | `AgentAccount.sol:approvedHashKey`, `ApprovedHashRegistry.sol`; `test/HardeningR917.t.sol`, `test/ApprovedHashIsValidSignature.t.sol` |
57
+ | 2.17 | **A digest-bound redemption is single-use per step.** `DigestBindingEnforcer` is stateful + DM-only: `(delegator, delegationHash, kind, stepNonce)` consumed in `beforeHook`. | ✅ CLOSED R917-C-4 (spec 408 §1.4) | `enforcers/DigestBindingEnforcer.sol`; `test/DigestBindingEnforcer.t.sol` |
58
+ | 2.18 | **Network posture is a constructor fact, never a chain-id list.** `AgentAccountFactory.relaxedT4Floor` (immutable) is the only way to lift the 1 h T4 floor; recorded in the deployments JSON; refused by `check:production-deploy` off anvil. | ✅ CLOSED R917-C-5 (spec 408 §1.3) | `AgentAccountFactory.sol:_custodyInitData`; `test/AgentAccountFactoryMode.t.sol` |
59
+ | 2.19 | **Receipt anchors are keyed by who anchored.** `(anchoredBy, receiptDigest)` — no squat on a public mempool. | ✅ CLOSED R917-C-3 (spec 408 §1.5) | `provenance/ReceiptAnchorRegistry.sol`; `test/provenance/ReceiptAnchorRegistry.t.sol` |
55
60
 
56
61
  ## 3. Per-contract notes for the external review
57
62
 
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @agenticprimitives/contracts
2
2
 
3
+ > Part of **[Agentic Primitives](https://agenticprimitives.dev)** — the open-source trust substrate for agentic applications: identity that can sign, authority checked at act time, evidence the owner carries. [Developer kit](https://github.com/agentictrustlabs/agentic-primitives) · [All packages](https://agenticprimitives.dev/developers)
4
+
3
5
  **Contracts and SDK are one artifact.**
4
6
 
5
7
  This is the on-chain enforcement layer of the agenticprimitives substrate — 42 Solidity sources, all present and audited under `src/`, none of them stubs. ERC-4337 v0.7 Smart Agent core, ERC-7710-style delegation manager with caveat enforcers, an ERC-7579 modular CustodyPolicy, a three-mode paymaster, `.agent` TLD naming with hierarchical subregistries, ontology and profile resolvers, identity facets, and an ERC-6492-aware UniversalSignatureValidator. The package publishes ABI subpaths, per-network deployment JSON, flattened sources, and the Solidity itself — so a TypeScript consumer pulls addresses and ABIs from the same artifact the auditors read.
@@ -45,5 +45,6 @@
45
45
  "household": "0x9c3373E8F28739Df3aA478C18209fD7eeD769F5b"
46
46
  },
47
47
  "agentRegistryBase": "0x0Be172F1b5cfD1d084CEc2cF2Af0A0cE9023Deb1",
48
- "digestBindingEnforcer": "0xA3bb9BCC9b2F6F2419E1aBe5ED6Fd5399b9E68e1"
48
+ "digestBindingEnforcer": "0xA3bb9BCC9b2F6F2419E1aBe5ED6Fd5399b9E68e1",
49
+ "receiptAnchorRegistry": "0x0e339334B4438F7546FD53837FDC8943cB3Cf54C"
49
50
  }
@@ -99,6 +99,25 @@
99
99
  "outputs": [],
100
100
  "stateMutability": "nonpayable"
101
101
  },
102
+ {
103
+ "type": "function",
104
+ "name": "approvedHashKey",
105
+ "inputs": [
106
+ {
107
+ "name": "hash",
108
+ "type": "bytes32",
109
+ "internalType": "bytes32"
110
+ }
111
+ ],
112
+ "outputs": [
113
+ {
114
+ "name": "",
115
+ "type": "bytes32",
116
+ "internalType": "bytes32"
117
+ }
118
+ ],
119
+ "stateMutability": "view"
120
+ },
102
121
  {
103
122
  "type": "function",
104
123
  "name": "bundlerSigner",
@@ -138,6 +157,19 @@
138
157
  ],
139
158
  "stateMutability": "view"
140
159
  },
160
+ {
161
+ "type": "function",
162
+ "name": "custodyEpoch",
163
+ "inputs": [],
164
+ "outputs": [
165
+ {
166
+ "name": "",
167
+ "type": "uint64",
168
+ "internalType": "uint64"
169
+ }
170
+ ],
171
+ "stateMutability": "view"
172
+ },
141
173
  {
142
174
  "type": "function",
143
175
  "name": "decodeWebAuthnAssertion",
@@ -1071,6 +1103,19 @@
1071
1103
  ],
1072
1104
  "anonymous": false
1073
1105
  },
1106
+ {
1107
+ "type": "event",
1108
+ "name": "CustodyEpochBumped",
1109
+ "inputs": [
1110
+ {
1111
+ "name": "epoch",
1112
+ "type": "uint64",
1113
+ "indexed": false,
1114
+ "internalType": "uint64"
1115
+ }
1116
+ ],
1117
+ "anonymous": false
1118
+ },
1074
1119
  {
1075
1120
  "type": "event",
1076
1121
  "name": "DelegationManagerRotated",
@@ -36,6 +36,11 @@
36
36
  "name": "approvedHashRegistry_",
37
37
  "type": "address",
38
38
  "internalType": "address"
39
+ },
40
+ {
41
+ "name": "relaxedT4Floor_",
42
+ "type": "bool",
43
+ "internalType": "bool"
39
44
  }
40
45
  ],
41
46
  "stateMutability": "nonpayable"
@@ -289,6 +294,19 @@
289
294
  ],
290
295
  "stateMutability": "view"
291
296
  },
297
+ {
298
+ "type": "function",
299
+ "name": "relaxedT4Floor",
300
+ "inputs": [],
301
+ "outputs": [
302
+ {
303
+ "name": "",
304
+ "type": "bool",
305
+ "internalType": "bool"
306
+ }
307
+ ],
308
+ "stateMutability": "view"
309
+ },
292
310
  {
293
311
  "type": "function",
294
312
  "name": "sessionIssuer",
@@ -17,12 +17,12 @@
17
17
  "name": "approved",
18
18
  "inputs": [
19
19
  {
20
- "name": "",
20
+ "name": "signer",
21
21
  "type": "address",
22
22
  "internalType": "address"
23
23
  },
24
24
  {
25
- "name": "",
25
+ "name": "hash",
26
26
  "type": "bytes32",
27
27
  "internalType": "bytes32"
28
28
  }
@@ -36,6 +36,25 @@
36
36
  ],
37
37
  "stateMutability": "view"
38
38
  },
39
+ {
40
+ "type": "function",
41
+ "name": "epochOf",
42
+ "inputs": [
43
+ {
44
+ "name": "signer",
45
+ "type": "address",
46
+ "internalType": "address"
47
+ }
48
+ ],
49
+ "outputs": [
50
+ {
51
+ "name": "",
52
+ "type": "uint64",
53
+ "internalType": "uint64"
54
+ }
55
+ ],
56
+ "stateMutability": "view"
57
+ },
39
58
  {
40
59
  "type": "function",
41
60
  "name": "isApproved",
@@ -60,6 +79,13 @@
60
79
  ],
61
80
  "stateMutability": "view"
62
81
  },
82
+ {
83
+ "type": "function",
84
+ "name": "revokeAll",
85
+ "inputs": [],
86
+ "outputs": [],
87
+ "stateMutability": "nonpayable"
88
+ },
63
89
  {
64
90
  "type": "function",
65
91
  "name": "revokeHash",
@@ -73,6 +99,25 @@
73
99
  "outputs": [],
74
100
  "stateMutability": "nonpayable"
75
101
  },
102
+ {
103
+ "type": "event",
104
+ "name": "AllHashesRevoked",
105
+ "inputs": [
106
+ {
107
+ "name": "signer",
108
+ "type": "address",
109
+ "indexed": true,
110
+ "internalType": "address"
111
+ },
112
+ {
113
+ "name": "epoch",
114
+ "type": "uint64",
115
+ "indexed": false,
116
+ "internalType": "uint64"
117
+ }
118
+ ],
119
+ "anonymous": false
120
+ },
76
121
  {
77
122
  "type": "event",
78
123
  "name": "HashApproved",
@@ -1076,6 +1076,17 @@
1076
1076
  }
1077
1077
  ]
1078
1078
  },
1079
+ {
1080
+ "type": "error",
1081
+ "name": "StillInstalledOn",
1082
+ "inputs": [
1083
+ {
1084
+ "name": "account",
1085
+ "type": "address",
1086
+ "internalType": "address"
1087
+ }
1088
+ ]
1089
+ },
1079
1090
  {
1080
1091
  "type": "error",
1081
1092
  "name": "SystemPaused",
@@ -1,4 +1,15 @@
1
1
  [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ {
6
+ "name": "delegationManager_",
7
+ "type": "address",
8
+ "internalType": "address"
9
+ }
10
+ ],
11
+ "stateMutability": "nonpayable"
12
+ },
2
13
  {
3
14
  "type": "function",
4
15
  "name": "afterHook",
@@ -62,12 +73,12 @@
62
73
  "internalType": "bytes"
63
74
  },
64
75
  {
65
- "name": "",
76
+ "name": "delegationHash",
66
77
  "type": "bytes32",
67
78
  "internalType": "bytes32"
68
79
  },
69
80
  {
70
- "name": "",
81
+ "name": "delegator",
71
82
  "type": "address",
72
83
  "internalType": "address"
73
84
  },
@@ -93,7 +104,91 @@
93
104
  }
94
105
  ],
95
106
  "outputs": [],
96
- "stateMutability": "pure"
107
+ "stateMutability": "nonpayable"
108
+ },
109
+ {
110
+ "type": "function",
111
+ "name": "delegationManager",
112
+ "inputs": [],
113
+ "outputs": [
114
+ {
115
+ "name": "",
116
+ "type": "address",
117
+ "internalType": "address"
118
+ }
119
+ ],
120
+ "stateMutability": "view"
121
+ },
122
+ {
123
+ "type": "function",
124
+ "name": "isUsed",
125
+ "inputs": [
126
+ {
127
+ "name": "delegator",
128
+ "type": "address",
129
+ "internalType": "address"
130
+ },
131
+ {
132
+ "name": "delegationHash",
133
+ "type": "bytes32",
134
+ "internalType": "bytes32"
135
+ },
136
+ {
137
+ "name": "kind",
138
+ "type": "bytes32",
139
+ "internalType": "bytes32"
140
+ },
141
+ {
142
+ "name": "stepNonce",
143
+ "type": "bytes32",
144
+ "internalType": "bytes32"
145
+ }
146
+ ],
147
+ "outputs": [
148
+ {
149
+ "name": "",
150
+ "type": "bool",
151
+ "internalType": "bool"
152
+ }
153
+ ],
154
+ "stateMutability": "view"
155
+ },
156
+ {
157
+ "type": "event",
158
+ "name": "DigestBindingRedeemed",
159
+ "inputs": [
160
+ {
161
+ "name": "delegator",
162
+ "type": "address",
163
+ "indexed": true,
164
+ "internalType": "address"
165
+ },
166
+ {
167
+ "name": "delegationHash",
168
+ "type": "bytes32",
169
+ "indexed": true,
170
+ "internalType": "bytes32"
171
+ },
172
+ {
173
+ "name": "kind",
174
+ "type": "bytes32",
175
+ "indexed": true,
176
+ "internalType": "bytes32"
177
+ },
178
+ {
179
+ "name": "presented",
180
+ "type": "bytes32",
181
+ "indexed": false,
182
+ "internalType": "bytes32"
183
+ },
184
+ {
185
+ "name": "stepNonce",
186
+ "type": "bytes32",
187
+ "indexed": false,
188
+ "internalType": "bytes32"
189
+ }
190
+ ],
191
+ "anonymous": false
97
192
  },
98
193
  {
99
194
  "type": "error",
@@ -125,5 +220,32 @@
125
220
  "internalType": "bytes32"
126
221
  }
127
222
  ]
223
+ },
224
+ {
225
+ "type": "error",
226
+ "name": "NotDelegationManager",
227
+ "inputs": [
228
+ {
229
+ "name": "caller",
230
+ "type": "address",
231
+ "internalType": "address"
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ "type": "error",
237
+ "name": "StepNonceReused",
238
+ "inputs": [
239
+ {
240
+ "name": "kind",
241
+ "type": "bytes32",
242
+ "internalType": "bytes32"
243
+ },
244
+ {
245
+ "name": "stepNonce",
246
+ "type": "bytes32",
247
+ "internalType": "bytes32"
248
+ }
249
+ ]
128
250
  }
129
251
  ]
@@ -0,0 +1,31 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "isModuleInstalled",
5
+ "inputs": [
6
+ {
7
+ "name": "moduleTypeId",
8
+ "type": "uint256",
9
+ "internalType": "uint256"
10
+ },
11
+ {
12
+ "name": "module",
13
+ "type": "address",
14
+ "internalType": "address"
15
+ },
16
+ {
17
+ "name": "additionalContext",
18
+ "type": "bytes",
19
+ "internalType": "bytes"
20
+ }
21
+ ],
22
+ "outputs": [
23
+ {
24
+ "name": "",
25
+ "type": "bool",
26
+ "internalType": "bool"
27
+ }
28
+ ],
29
+ "stateMutability": "view"
30
+ }
31
+ ]
@@ -4,29 +4,19 @@
4
4
  "name": "anchor",
5
5
  "inputs": [
6
6
  {
7
- "name": "corpusRef",
7
+ "name": "receiptDigest",
8
8
  "type": "bytes32",
9
9
  "internalType": "bytes32"
10
10
  },
11
11
  {
12
- "name": "corpusRoot",
12
+ "name": "intentDigest",
13
13
  "type": "bytes32",
14
14
  "internalType": "bytes32"
15
15
  },
16
16
  {
17
- "name": "manifestHash",
17
+ "name": "mandateRef",
18
18
  "type": "bytes32",
19
19
  "internalType": "bytes32"
20
- },
21
- {
22
- "name": "issuer",
23
- "type": "address",
24
- "internalType": "address"
25
- },
26
- {
27
- "name": "signature",
28
- "type": "bytes",
29
- "internalType": "bytes"
30
20
  }
31
21
  ],
32
22
  "outputs": [],
@@ -34,44 +24,61 @@
34
24
  },
35
25
  {
36
26
  "type": "function",
37
- "name": "anchorDigest",
27
+ "name": "anchorOf",
38
28
  "inputs": [
39
29
  {
40
- "name": "corpusRef",
41
- "type": "bytes32",
42
- "internalType": "bytes32"
43
- },
44
- {
45
- "name": "corpusRoot",
46
- "type": "bytes32",
47
- "internalType": "bytes32"
30
+ "name": "anchoredBy",
31
+ "type": "address",
32
+ "internalType": "address"
48
33
  },
49
34
  {
50
- "name": "manifestHash",
35
+ "name": "receiptDigest",
51
36
  "type": "bytes32",
52
37
  "internalType": "bytes32"
53
- },
54
- {
55
- "name": "issuer",
56
- "type": "address",
57
- "internalType": "address"
58
38
  }
59
39
  ],
60
40
  "outputs": [
61
41
  {
62
42
  "name": "",
63
- "type": "bytes32",
64
- "internalType": "bytes32"
43
+ "type": "tuple",
44
+ "internalType": "struct ReceiptAnchorRegistry.Anchor",
45
+ "components": [
46
+ {
47
+ "name": "anchoredBy",
48
+ "type": "address",
49
+ "internalType": "address"
50
+ },
51
+ {
52
+ "name": "at",
53
+ "type": "uint64",
54
+ "internalType": "uint64"
55
+ },
56
+ {
57
+ "name": "intentDigest",
58
+ "type": "bytes32",
59
+ "internalType": "bytes32"
60
+ },
61
+ {
62
+ "name": "mandateRef",
63
+ "type": "bytes32",
64
+ "internalType": "bytes32"
65
+ }
66
+ ]
65
67
  }
66
68
  ],
67
69
  "stateMutability": "view"
68
70
  },
69
71
  {
70
72
  "type": "function",
71
- "name": "corpusRoot",
73
+ "name": "isAnchored",
72
74
  "inputs": [
73
75
  {
74
- "name": "corpusRef",
76
+ "name": "anchoredBy",
77
+ "type": "address",
78
+ "internalType": "address"
79
+ },
80
+ {
81
+ "name": "receiptDigest",
75
82
  "type": "bytes32",
76
83
  "internalType": "bytes32"
77
84
  }
@@ -79,96 +86,68 @@
79
86
  "outputs": [
80
87
  {
81
88
  "name": "",
82
- "type": "bytes32",
83
- "internalType": "bytes32"
89
+ "type": "bool",
90
+ "internalType": "bool"
84
91
  }
85
92
  ],
86
93
  "stateMutability": "view"
87
94
  },
88
95
  {
89
- "type": "function",
90
- "name": "getCorpus",
96
+ "type": "event",
97
+ "name": "ReceiptAnchored",
91
98
  "inputs": [
92
99
  {
93
- "name": "corpusRef",
100
+ "name": "receiptDigest",
94
101
  "type": "bytes32",
102
+ "indexed": true,
95
103
  "internalType": "bytes32"
96
- }
97
- ],
98
- "outputs": [
104
+ },
99
105
  {
100
- "name": "issuer",
106
+ "name": "anchoredBy",
101
107
  "type": "address",
108
+ "indexed": true,
102
109
  "internalType": "address"
103
110
  },
104
111
  {
105
- "name": "corpusRoot",
112
+ "name": "intentDigest",
106
113
  "type": "bytes32",
114
+ "indexed": true,
107
115
  "internalType": "bytes32"
108
116
  },
109
117
  {
110
- "name": "manifestHash",
118
+ "name": "mandateRef",
111
119
  "type": "bytes32",
120
+ "indexed": false,
112
121
  "internalType": "bytes32"
113
122
  },
114
123
  {
115
- "name": "anchoredAt",
124
+ "name": "at",
116
125
  "type": "uint64",
126
+ "indexed": false,
117
127
  "internalType": "uint64"
118
128
  }
119
129
  ],
120
- "stateMutability": "view"
130
+ "anonymous": false
121
131
  },
122
132
  {
123
- "type": "event",
124
- "name": "CorpusAnchored",
133
+ "type": "error",
134
+ "name": "AlreadyAnchored",
125
135
  "inputs": [
126
136
  {
127
- "name": "corpusRef",
137
+ "name": "receiptDigest",
128
138
  "type": "bytes32",
129
- "indexed": true,
130
139
  "internalType": "bytes32"
131
140
  },
132
141
  {
133
- "name": "issuer",
142
+ "name": "by",
134
143
  "type": "address",
135
- "indexed": true,
136
144
  "internalType": "address"
137
- },
138
- {
139
- "name": "corpusRoot",
140
- "type": "bytes32",
141
- "indexed": false,
142
- "internalType": "bytes32"
143
- },
144
- {
145
- "name": "manifestHash",
146
- "type": "bytes32",
147
- "indexed": false,
148
- "internalType": "bytes32"
149
145
  }
150
- ],
151
- "anonymous": false
146
+ ]
152
147
  },
153
148
  {
154
149
  "type": "error",
155
- "name": "InvalidIssuerSignature",
150
+ "name": "ZeroDigest",
156
151
  "inputs": []
157
- },
158
- {
159
- "type": "error",
160
- "name": "IssuerMismatch",
161
- "inputs": [
162
- {
163
- "name": "expected",
164
- "type": "address",
165
- "internalType": "address"
166
- },
167
- {
168
- "name": "provided",
169
- "type": "address",
170
- "internalType": "address"
171
- }
172
- ]
173
152
  }
174
153
  ]
@@ -34,6 +34,7 @@ export declare const IAgenticPrimitivesAgentAccount: Abi;
34
34
  export declare const IApprovedHashRegistryView: Abi;
35
35
  export declare const IAttributeReader: Abi;
36
36
  export declare const ICaveatEnforcer: Abi;
37
+ export declare const ICustodyPolicyAccountModuleView: Abi;
37
38
  export declare const ICustodyPolicyFactoryView: Abi;
38
39
  export declare const ICustodyPolicyPauseView: Abi;
39
40
  export declare const IDelegationManager: Abi;
@@ -54,6 +55,7 @@ export declare const PaymentEscrow: Abi;
54
55
  export declare const PaymentReceiptRegistry: Abi;
55
56
  export declare const PermissionlessSubregistry: Abi;
56
57
  export declare const QuorumEnforcer: Abi;
58
+ export declare const ReceiptAnchorRegistry: Abi;
57
59
  export declare const RelationshipTypeRegistry: Abi;
58
60
  export declare const ShapeRegistry: Abi;
59
61
  export declare const SignatureSlotRecovery: Abi;
package/dist/abi/index.js CHANGED
@@ -34,6 +34,7 @@ export { default as IAgenticPrimitivesAgentAccount } from './IAgenticPrimitivesA
34
34
  export { default as IApprovedHashRegistryView } from './IApprovedHashRegistryView.json' with { type: 'json' };
35
35
  export { default as IAttributeReader } from './IAttributeReader.json' with { type: 'json' };
36
36
  export { default as ICaveatEnforcer } from './ICaveatEnforcer.json' with { type: 'json' };
37
+ export { default as ICustodyPolicyAccountModuleView } from './ICustodyPolicyAccountModuleView.json' with { type: 'json' };
37
38
  export { default as ICustodyPolicyFactoryView } from './ICustodyPolicyFactoryView.json' with { type: 'json' };
38
39
  export { default as ICustodyPolicyPauseView } from './ICustodyPolicyPauseView.json' with { type: 'json' };
39
40
  export { default as IDelegationManager } from './IDelegationManager.json' with { type: 'json' };
@@ -54,6 +55,7 @@ export { default as PaymentEscrow } from './PaymentEscrow.json' with { type: 'js
54
55
  export { default as PaymentReceiptRegistry } from './PaymentReceiptRegistry.json' with { type: 'json' };
55
56
  export { default as PermissionlessSubregistry } from './PermissionlessSubregistry.json' with { type: 'json' };
56
57
  export { default as QuorumEnforcer } from './QuorumEnforcer.json' with { type: 'json' };
58
+ export { default as ReceiptAnchorRegistry } from './ReceiptAnchorRegistry.json' with { type: 'json' };
57
59
  export { default as RelationshipTypeRegistry } from './RelationshipTypeRegistry.json' with { type: 'json' };
58
60
  export { default as ShapeRegistry } from './ShapeRegistry.json' with { type: 'json' };
59
61
  export { default as SignatureSlotRecovery } from './SignatureSlotRecovery.json' with { type: 'json' };