@agenticprimitives/agent-naming 0.1.0-alpha.2
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 +86 -0
- package/CLAUDE.md +180 -0
- package/LICENSE +21 -0
- package/README.md +158 -0
- package/dist/abis.d.ts +1532 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +417 -0
- package/dist/abis.js.map +1 -0
- package/dist/client.d.ts +102 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +299 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/custody.d.ts +133 -0
- package/dist/custody.d.ts.map +1 -0
- package/dist/custody.js +214 -0
- package/dist/custody.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +30 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/namehash.d.ts +31 -0
- package/dist/namehash.d.ts.map +1 -0
- package/dist/namehash.js +46 -0
- package/dist/namehash.js.map +1 -0
- package/dist/normalize.d.ts +28 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/normalize.js +68 -0
- package/dist/normalize.js.map +1 -0
- package/dist/records.d.ts +88 -0
- package/dist/records.d.ts.map +1 -0
- package/dist/records.js +193 -0
- package/dist/records.js.map +1 -0
- package/dist/types.d.ts +117 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/docs/api.md +110 -0
- package/docs/concepts.md +159 -0
- package/docs/migration.md +93 -0
- package/docs/security.md +127 -0
- package/docs/troubleshooting.md +116 -0
- package/examples/basic.ts +31 -0
- package/examples/custody-rotation.ts +44 -0
- package/examples/records.ts +41 -0
- package/package.json +71 -0
- package/spec.md +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyIvB,CAAC;AAIX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFhC,CAAC;AAMX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC/B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BhC,CAAC;AAIX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2E1B,CAAC;AAIX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8DnB,CAAC"}
|
package/dist/abis.js
ADDED
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
// Naming-contract ABIs — source of truth: packages/contracts/src/naming/*.sol
|
|
2
|
+
// and packages/contracts/src/ontology/*.sol (spec 215 / NS Phase 3,
|
|
3
|
+
// ADR-0009 ontology pivot). Hand-typed against `forge inspect` output
|
|
4
|
+
// so callers get full viem type-inference without runtime JSON loads.
|
|
5
|
+
//
|
|
6
|
+
// Convention matches packages/agent-account/src/abis.ts +
|
|
7
|
+
// packages/account-custody/src/abi.ts — typed `as const` arrays.
|
|
8
|
+
// ─── AgentNameRegistry ─────────────────────────────────────────────
|
|
9
|
+
export const agentNameRegistryAbi = [
|
|
10
|
+
{ type: 'error', name: 'NotAuthorized', inputs: [] },
|
|
11
|
+
{ type: 'error', name: 'NodeAlreadyExists', inputs: [] },
|
|
12
|
+
{ type: 'error', name: 'NodeNotFound', inputs: [] },
|
|
13
|
+
{ type: 'error', name: 'ParentNotFound', inputs: [] },
|
|
14
|
+
{ type: 'error', name: 'NameExpired', inputs: [] },
|
|
15
|
+
{ type: 'error', name: 'RootAlreadyInitialized', inputs: [] },
|
|
16
|
+
{ type: 'error', name: 'EmptyLabel', inputs: [] },
|
|
17
|
+
{ type: 'error', name: 'ZeroOwner', inputs: [] },
|
|
18
|
+
{
|
|
19
|
+
type: 'event', name: 'RootInitialized',
|
|
20
|
+
inputs: [
|
|
21
|
+
{ name: 'rootNode', type: 'bytes32', indexed: true },
|
|
22
|
+
{ name: 'label', type: 'string', indexed: false },
|
|
23
|
+
{ name: 'owner', type: 'address', indexed: true },
|
|
24
|
+
{ name: 'kind', type: 'bytes32', indexed: false },
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'event', name: 'NameRegistered',
|
|
29
|
+
inputs: [
|
|
30
|
+
{ name: 'node', type: 'bytes32', indexed: true },
|
|
31
|
+
{ name: 'parent', type: 'bytes32', indexed: true },
|
|
32
|
+
{ name: 'label', type: 'string', indexed: false },
|
|
33
|
+
{ name: 'owner', type: 'address', indexed: false },
|
|
34
|
+
{ name: 'resolver', type: 'address', indexed: false },
|
|
35
|
+
{ name: 'expiry', type: 'uint64', indexed: false },
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: 'event', name: 'OwnerChanged',
|
|
40
|
+
inputs: [
|
|
41
|
+
{ name: 'node', type: 'bytes32', indexed: true },
|
|
42
|
+
{ name: 'newOwner', type: 'address', indexed: true },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: 'event', name: 'ResolverChanged',
|
|
47
|
+
inputs: [
|
|
48
|
+
{ name: 'node', type: 'bytes32', indexed: true },
|
|
49
|
+
{ name: 'resolver', type: 'address', indexed: true },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'event', name: 'SubregistryChanged',
|
|
54
|
+
inputs: [
|
|
55
|
+
{ name: 'node', type: 'bytes32', indexed: true },
|
|
56
|
+
{ name: 'subregistry', type: 'address', indexed: true },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: 'event', name: 'NameRenewed',
|
|
61
|
+
inputs: [
|
|
62
|
+
{ name: 'node', type: 'bytes32', indexed: true },
|
|
63
|
+
{ name: 'newExpiry', type: 'uint64', indexed: false },
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'event', name: 'PrimaryNameSet',
|
|
68
|
+
inputs: [
|
|
69
|
+
{ name: 'agent', type: 'address', indexed: true },
|
|
70
|
+
{ name: 'node', type: 'bytes32', indexed: true },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: 'event', name: 'PrimaryNameCleared',
|
|
75
|
+
inputs: [{ name: 'agent', type: 'address', indexed: true }],
|
|
76
|
+
},
|
|
77
|
+
{ type: 'function', name: 'namehashRoot', stateMutability: 'pure',
|
|
78
|
+
inputs: [{ name: 'label', type: 'string' }], outputs: [{ type: 'bytes32' }] },
|
|
79
|
+
{ type: 'function', name: 'AGENT_ROOT', stateMutability: 'pure',
|
|
80
|
+
inputs: [], outputs: [{ type: 'bytes32' }] },
|
|
81
|
+
{ type: 'function', name: 'KIND_AGENT', stateMutability: 'view',
|
|
82
|
+
inputs: [], outputs: [{ type: 'bytes32' }] },
|
|
83
|
+
{
|
|
84
|
+
type: 'function', name: 'initializeRoot', stateMutability: 'nonpayable',
|
|
85
|
+
inputs: [
|
|
86
|
+
{ name: 'label', type: 'string' },
|
|
87
|
+
{ name: 'rootOwner', type: 'address' },
|
|
88
|
+
{ name: 'resolverContract', type: 'address' },
|
|
89
|
+
{ name: 'kind', type: 'bytes32' },
|
|
90
|
+
],
|
|
91
|
+
outputs: [{ name: 'rootNode', type: 'bytes32' }],
|
|
92
|
+
},
|
|
93
|
+
{ type: 'function', name: 'getRoots', stateMutability: 'view',
|
|
94
|
+
inputs: [], outputs: [{ type: 'bytes32[]' }] },
|
|
95
|
+
{ type: 'function', name: 'rootByLabel', stateMutability: 'view',
|
|
96
|
+
inputs: [{ name: 'label', type: 'string' }], outputs: [{ type: 'bytes32' }] },
|
|
97
|
+
{ type: 'function', name: 'isRoot', stateMutability: 'view',
|
|
98
|
+
inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
99
|
+
{ type: 'function', name: 'rootKind', stateMutability: 'view',
|
|
100
|
+
inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
|
|
101
|
+
{
|
|
102
|
+
type: 'function', name: 'register', stateMutability: 'nonpayable',
|
|
103
|
+
inputs: [
|
|
104
|
+
{ name: 'parentNode', type: 'bytes32' },
|
|
105
|
+
{ name: 'label', type: 'string' },
|
|
106
|
+
{ name: 'newOwner', type: 'address' },
|
|
107
|
+
{ name: 'resolverContract', type: 'address' },
|
|
108
|
+
{ name: 'expiry', type: 'uint64' },
|
|
109
|
+
],
|
|
110
|
+
outputs: [{ name: 'childNode', type: 'bytes32' }],
|
|
111
|
+
},
|
|
112
|
+
{ type: 'function', name: 'setOwner', stateMutability: 'nonpayable',
|
|
113
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'newOwner', type: 'address' }], outputs: [] },
|
|
114
|
+
{ type: 'function', name: 'setResolver', stateMutability: 'nonpayable',
|
|
115
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'resolverContract', type: 'address' }], outputs: [] },
|
|
116
|
+
{ type: 'function', name: 'setSubregistry', stateMutability: 'nonpayable',
|
|
117
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'subregistryContract', type: 'address' }], outputs: [] },
|
|
118
|
+
{ type: 'function', name: 'renew', stateMutability: 'nonpayable',
|
|
119
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'newExpiry', type: 'uint64' }], outputs: [] },
|
|
120
|
+
{ type: 'function', name: 'setPrimaryName', stateMutability: 'nonpayable',
|
|
121
|
+
inputs: [{ name: 'node', type: 'bytes32' }], outputs: [] },
|
|
122
|
+
{ type: 'function', name: 'owner', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
|
|
123
|
+
{ type: 'function', name: 'resolver', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
|
|
124
|
+
{ type: 'function', name: 'subregistry', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
|
|
125
|
+
{ type: 'function', name: 'parent', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
|
|
126
|
+
{ type: 'function', name: 'labelhash', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
|
|
127
|
+
{ type: 'function', name: 'expiry', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
|
|
128
|
+
{ type: 'function', name: 'recordExists', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
129
|
+
{ type: 'function', name: 'registeredAt', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
|
|
130
|
+
{ type: 'function', name: 'isExpired', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
131
|
+
{ type: 'function', name: 'childNode', stateMutability: 'view',
|
|
132
|
+
inputs: [{ name: 'parentNode', type: 'bytes32' }, { name: 'lh', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
|
|
133
|
+
{ type: 'function', name: 'childCount', stateMutability: 'view', inputs: [{ name: 'parentNode', type: 'bytes32' }], outputs: [{ type: 'uint256' }] },
|
|
134
|
+
{ type: 'function', name: 'childLabelhashes', stateMutability: 'view', inputs: [{ name: 'parentNode', type: 'bytes32' }], outputs: [{ type: 'bytes32[]' }] },
|
|
135
|
+
{ type: 'function', name: 'primaryName', stateMutability: 'view', inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'bytes32' }] },
|
|
136
|
+
// Per-node label string (spec/222) — enables view-call reverse name reconstruction.
|
|
137
|
+
{ type: 'function', name: 'label', stateMutability: 'view', inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'string' }] },
|
|
138
|
+
{ type: 'function', name: 'backfillLabel', stateMutability: 'nonpayable',
|
|
139
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'label', type: 'string' }], outputs: [] },
|
|
140
|
+
];
|
|
141
|
+
// ─── AgentNameAttributeResolver (ontology-backed typed records) ────
|
|
142
|
+
export const agentNameAttributeResolverAbi = [
|
|
143
|
+
{ type: 'error', name: 'NotAuthorized', inputs: [] },
|
|
144
|
+
{ type: 'error', name: 'NodeNotFound', inputs: [] },
|
|
145
|
+
{ type: 'error', name: 'PredicateNotActive', inputs: [] },
|
|
146
|
+
{ type: 'error', name: 'AttributeNotSet', inputs: [] },
|
|
147
|
+
{
|
|
148
|
+
type: 'event', name: 'AttributeSet',
|
|
149
|
+
inputs: [
|
|
150
|
+
{ name: 'subject', type: 'bytes32', indexed: true },
|
|
151
|
+
{ name: 'predicate', type: 'bytes32', indexed: true },
|
|
152
|
+
{ name: 'datatype', type: 'uint8', indexed: false },
|
|
153
|
+
{ name: 'version', type: 'uint64', indexed: false },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'event', name: 'AttributeUnset',
|
|
158
|
+
inputs: [
|
|
159
|
+
{ name: 'subject', type: 'bytes32', indexed: true },
|
|
160
|
+
{ name: 'predicate', type: 'bytes32', indexed: true },
|
|
161
|
+
{ name: 'version', type: 'uint64', indexed: false },
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'event', name: 'AttributeAppended',
|
|
166
|
+
inputs: [
|
|
167
|
+
{ name: 'subject', type: 'bytes32', indexed: true },
|
|
168
|
+
{ name: 'predicate', type: 'bytes32', indexed: true },
|
|
169
|
+
{ name: 'datatype', type: 'uint8', indexed: false },
|
|
170
|
+
{ name: 'version', type: 'uint64', indexed: false },
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
{ type: 'event', name: 'SubjectFirstSeen', inputs: [{ name: 'subject', type: 'bytes32', indexed: true }] },
|
|
174
|
+
{ type: 'function', name: 'REGISTRY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
175
|
+
{ type: 'function', name: 'ONTOLOGY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
176
|
+
// ─── Typed setters (owner-gated, predicate-active-checked) ────────
|
|
177
|
+
{ type: 'function', name: 'setStringAttribute', stateMutability: 'nonpayable',
|
|
178
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'string' }],
|
|
179
|
+
outputs: [] },
|
|
180
|
+
{ type: 'function', name: 'setAddressAttribute', stateMutability: 'nonpayable',
|
|
181
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'address' }],
|
|
182
|
+
outputs: [] },
|
|
183
|
+
{ type: 'function', name: 'setBoolAttribute', stateMutability: 'nonpayable',
|
|
184
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'bool' }],
|
|
185
|
+
outputs: [] },
|
|
186
|
+
{ type: 'function', name: 'setUintAttribute', stateMutability: 'nonpayable',
|
|
187
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'uint256' }],
|
|
188
|
+
outputs: [] },
|
|
189
|
+
{ type: 'function', name: 'setBytes32Attribute', stateMutability: 'nonpayable',
|
|
190
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'value', type: 'bytes32' }],
|
|
191
|
+
outputs: [] },
|
|
192
|
+
{ type: 'function', name: 'setStringArrayAttribute', stateMutability: 'nonpayable',
|
|
193
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'values', type: 'string[]' }],
|
|
194
|
+
outputs: [] },
|
|
195
|
+
{ type: 'function', name: 'setAddressArrayAttribute', stateMutability: 'nonpayable',
|
|
196
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'values', type: 'address[]' }],
|
|
197
|
+
outputs: [] },
|
|
198
|
+
{ type: 'function', name: 'setBytes32ArrayAttribute', stateMutability: 'nonpayable',
|
|
199
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }, { name: 'values', type: 'bytes32[]' }],
|
|
200
|
+
outputs: [] },
|
|
201
|
+
{ type: 'function', name: 'unsetAttribute', stateMutability: 'nonpayable',
|
|
202
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }],
|
|
203
|
+
outputs: [] },
|
|
204
|
+
// ─── Typed getters ─────────────────────────────────────────────────
|
|
205
|
+
{ type: 'function', name: 'getString', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'string' }] },
|
|
206
|
+
{ type: 'function', name: 'getAddress', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'address' }] },
|
|
207
|
+
{ type: 'function', name: 'getBool', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
208
|
+
{ type: 'function', name: 'getUint', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'uint256' }] },
|
|
209
|
+
{ type: 'function', name: 'getBytes32', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
|
|
210
|
+
{ type: 'function', name: 'getStringArr', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'string[]' }] },
|
|
211
|
+
{ type: 'function', name: 'getAddressArr', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'address[]' }] },
|
|
212
|
+
{ type: 'function', name: 'getBytes32Arr', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bytes32[]' }] },
|
|
213
|
+
// ─── Indexing / metadata ───────────────────────────────────────────
|
|
214
|
+
{ type: 'function', name: 'predicatesOf', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }], outputs: [{ type: 'bytes32[]' }] },
|
|
215
|
+
{ type: 'function', name: 'datatypeOf', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'uint8' }] },
|
|
216
|
+
{ type: 'function', name: 'updatedAt', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
|
|
217
|
+
{ type: 'function', name: 'isSet', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
218
|
+
{ type: 'function', name: 'subjectVersion', stateMutability: 'view', inputs: [{ name: 'subject', type: 'bytes32' }], outputs: [{ type: 'uint64' }] },
|
|
219
|
+
{ type: 'function', name: 'allSubjects', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32[]' }] },
|
|
220
|
+
{ type: 'function', name: 'subjectCount', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
|
|
221
|
+
];
|
|
222
|
+
// ─── AgentNameUniversalResolver ────────────────────────────────────
|
|
223
|
+
// ─── PermissionlessSubregistry (permissionless child-name registration) ──
|
|
224
|
+
export const permissionlessSubregistryAbi = [
|
|
225
|
+
{ type: 'error', name: 'AlreadyClaimed',
|
|
226
|
+
inputs: [{ name: 'existingNode', type: 'bytes32' }] },
|
|
227
|
+
{ type: 'error', name: 'LabelTooShort', inputs: [] },
|
|
228
|
+
{ type: 'error', name: 'EmptyLabel', inputs: [] },
|
|
229
|
+
{ type: 'error', name: 'ZeroNewOwner', inputs: [] },
|
|
230
|
+
{
|
|
231
|
+
type: 'event', name: 'NameClaimed',
|
|
232
|
+
inputs: [
|
|
233
|
+
{ name: 'caller', type: 'address', indexed: true },
|
|
234
|
+
{ name: 'childNode', type: 'bytes32', indexed: true },
|
|
235
|
+
{ name: 'label', type: 'string', indexed: false },
|
|
236
|
+
{ name: 'newOwner', type: 'address', indexed: false },
|
|
237
|
+
],
|
|
238
|
+
},
|
|
239
|
+
{ type: 'function', name: 'REGISTRY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
240
|
+
{ type: 'function', name: 'PARENT_NODE', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }] },
|
|
241
|
+
{ type: 'function', name: 'DEFAULT_RESOLVER', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
242
|
+
{ type: 'function', name: 'MIN_LABEL_LENGTH', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
|
|
243
|
+
{
|
|
244
|
+
type: 'function', name: 'register', stateMutability: 'nonpayable',
|
|
245
|
+
inputs: [
|
|
246
|
+
{ name: 'label', type: 'string' },
|
|
247
|
+
{ name: 'newOwner', type: 'address' },
|
|
248
|
+
],
|
|
249
|
+
outputs: [{ name: 'childNode', type: 'bytes32' }],
|
|
250
|
+
},
|
|
251
|
+
{ type: 'function', name: 'claimedBy', stateMutability: 'view',
|
|
252
|
+
inputs: [{ name: 'caller', type: 'address' }], outputs: [{ type: 'bytes32' }] },
|
|
253
|
+
{ type: 'function', name: 'hasClaimed', stateMutability: 'view',
|
|
254
|
+
inputs: [{ name: 'caller', type: 'address' }], outputs: [{ type: 'bool' }] },
|
|
255
|
+
{ type: 'function', name: 'claimCount', stateMutability: 'view',
|
|
256
|
+
inputs: [], outputs: [{ type: 'uint256' }] },
|
|
257
|
+
];
|
|
258
|
+
export const agentNameUniversalResolverAbi = [
|
|
259
|
+
{ type: 'function', name: 'REGISTRY', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
260
|
+
{ type: 'function', name: 'resolveName', stateMutability: 'view',
|
|
261
|
+
inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'address' }] },
|
|
262
|
+
{ type: 'function', name: 'resolveString', stateMutability: 'view',
|
|
263
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'string' }] },
|
|
264
|
+
{ type: 'function', name: 'resolveBytes32', stateMutability: 'view',
|
|
265
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'bytes32' }] },
|
|
266
|
+
{ type: 'function', name: 'resolveAddress', stateMutability: 'view',
|
|
267
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicate', type: 'bytes32' }], outputs: [{ type: 'address' }] },
|
|
268
|
+
{ type: 'function', name: 'resolveStringBatch', stateMutability: 'view',
|
|
269
|
+
inputs: [{ name: 'node', type: 'bytes32' }, { name: 'predicates', type: 'bytes32[]' }], outputs: [{ type: 'string[]' }] },
|
|
270
|
+
{ type: 'function', name: 'reverseResolve', stateMutability: 'view',
|
|
271
|
+
inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'bytes32' }] },
|
|
272
|
+
// Spec/222 — single-call reverse to the full dotted name string. Walks
|
|
273
|
+
// the parent chain on chain via view calls; no SDK-side eth_getLogs.
|
|
274
|
+
{ type: 'function', name: 'reverseResolveString', stateMutability: 'view',
|
|
275
|
+
inputs: [{ name: 'agent', type: 'address' }], outputs: [{ type: 'string' }] },
|
|
276
|
+
{ type: 'function', name: 'nameOf', stateMutability: 'view',
|
|
277
|
+
inputs: [{ name: 'node', type: 'bytes32' }], outputs: [{ type: 'string' }] },
|
|
278
|
+
{
|
|
279
|
+
type: 'function', name: 'getChildren', stateMutability: 'view',
|
|
280
|
+
inputs: [{ name: 'parentNode', type: 'bytes32' }],
|
|
281
|
+
outputs: [{ type: 'bytes32[]', name: 'childNodes' }, { type: 'address[]', name: 'owners' }],
|
|
282
|
+
},
|
|
283
|
+
];
|
|
284
|
+
// ─── OntologyTermRegistry (shared trust-fabric vocabulary) ─────────
|
|
285
|
+
export const ontologyTermRegistryAbi = [
|
|
286
|
+
{ type: 'error', name: 'NotGovernor', inputs: [] },
|
|
287
|
+
{ type: 'error', name: 'TermExists', inputs: [] },
|
|
288
|
+
{ type: 'error', name: 'TermNotFound', inputs: [] },
|
|
289
|
+
{ type: 'error', name: 'ZeroGovernor', inputs: [] },
|
|
290
|
+
{
|
|
291
|
+
type: 'event', name: 'TermRegistered',
|
|
292
|
+
inputs: [
|
|
293
|
+
{ name: 'id', type: 'bytes32', indexed: true },
|
|
294
|
+
{ name: 'curie', type: 'string', indexed: false },
|
|
295
|
+
{ name: 'uri', type: 'string', indexed: false },
|
|
296
|
+
],
|
|
297
|
+
},
|
|
298
|
+
{ type: 'event', name: 'TermDeactivated', inputs: [{ name: 'id', type: 'bytes32', indexed: true }] },
|
|
299
|
+
{ type: 'event', name: 'TermActivated', inputs: [{ name: 'id', type: 'bytes32', indexed: true }] },
|
|
300
|
+
{
|
|
301
|
+
type: 'event', name: 'GovernorTransferred',
|
|
302
|
+
inputs: [
|
|
303
|
+
{ name: 'oldGovernor', type: 'address', indexed: true },
|
|
304
|
+
{ name: 'newGovernor', type: 'address', indexed: true },
|
|
305
|
+
],
|
|
306
|
+
},
|
|
307
|
+
{ type: 'function', name: 'governor', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
308
|
+
{ type: 'function', name: 'transferGovernor', stateMutability: 'nonpayable',
|
|
309
|
+
inputs: [{ name: 'newGovernor', type: 'address' }], outputs: [] },
|
|
310
|
+
{
|
|
311
|
+
type: 'function', name: 'registerTerm', stateMutability: 'nonpayable',
|
|
312
|
+
inputs: [
|
|
313
|
+
{ name: 'id', type: 'bytes32' },
|
|
314
|
+
{ name: 'curie', type: 'string' },
|
|
315
|
+
{ name: 'uri', type: 'string' },
|
|
316
|
+
{ name: 'label', type: 'string' },
|
|
317
|
+
{ name: 'datatype', type: 'string' },
|
|
318
|
+
], outputs: [],
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
type: 'function', name: 'registerTermBatch', stateMutability: 'nonpayable',
|
|
322
|
+
inputs: [
|
|
323
|
+
{ name: 'ids', type: 'bytes32[]' },
|
|
324
|
+
{ name: 'curies', type: 'string[]' },
|
|
325
|
+
{ name: 'uris', type: 'string[]' },
|
|
326
|
+
{ name: 'labels', type: 'string[]' },
|
|
327
|
+
{ name: 'datatypes', type: 'string[]' },
|
|
328
|
+
], outputs: [],
|
|
329
|
+
},
|
|
330
|
+
{ type: 'function', name: 'deactivateTerm', stateMutability: 'nonpayable',
|
|
331
|
+
inputs: [{ name: 'id', type: 'bytes32' }], outputs: [] },
|
|
332
|
+
{ type: 'function', name: 'activateTerm', stateMutability: 'nonpayable',
|
|
333
|
+
inputs: [{ name: 'id', type: 'bytes32' }], outputs: [] },
|
|
334
|
+
{
|
|
335
|
+
type: 'function', name: 'getTerm', stateMutability: 'view',
|
|
336
|
+
inputs: [{ name: 'id', type: 'bytes32' }],
|
|
337
|
+
outputs: [{
|
|
338
|
+
type: 'tuple',
|
|
339
|
+
components: [
|
|
340
|
+
{ name: 'id', type: 'bytes32' },
|
|
341
|
+
{ name: 'curie', type: 'string' },
|
|
342
|
+
{ name: 'uri', type: 'string' },
|
|
343
|
+
{ name: 'label', type: 'string' },
|
|
344
|
+
{ name: 'datatype', type: 'string' },
|
|
345
|
+
{ name: 'active', type: 'bool' },
|
|
346
|
+
{ name: 'registeredAt', type: 'uint256' },
|
|
347
|
+
],
|
|
348
|
+
}],
|
|
349
|
+
},
|
|
350
|
+
{ type: 'function', name: 'isRegistered', stateMutability: 'view',
|
|
351
|
+
inputs: [{ name: 'id', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
352
|
+
{ type: 'function', name: 'isActive', stateMutability: 'view',
|
|
353
|
+
inputs: [{ name: 'id', type: 'bytes32' }], outputs: [{ type: 'bool' }] },
|
|
354
|
+
{ type: 'function', name: 'termCount', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
|
|
355
|
+
{ type: 'function', name: 'getAllTermIds', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32[]' }] },
|
|
356
|
+
];
|
|
357
|
+
// ─── ShapeRegistry (SHACL-style shape validation) ──────────────────
|
|
358
|
+
export const shapeRegistryAbi = [
|
|
359
|
+
{ type: 'error', name: 'NotGovernor', inputs: [] },
|
|
360
|
+
{ type: 'error', name: 'ShapeAlreadyDefined', inputs: [] },
|
|
361
|
+
{ type: 'error', name: 'ShapeNotDefined', inputs: [] },
|
|
362
|
+
{ type: 'error', name: 'ShapeNotActive', inputs: [] },
|
|
363
|
+
{ type: 'error', name: 'MissingRequiredProperty',
|
|
364
|
+
inputs: [{ name: 'predicate', type: 'bytes32' }] },
|
|
365
|
+
{ type: 'error', name: 'WrongDatatype',
|
|
366
|
+
inputs: [{ name: 'predicate', type: 'bytes32' }, { name: 'actual', type: 'uint8' }, { name: 'expected', type: 'uint8' }] },
|
|
367
|
+
{ type: 'error', name: 'EnumValueNotAllowed',
|
|
368
|
+
inputs: [{ name: 'predicate', type: 'bytes32' }, { name: 'actualValue', type: 'bytes32' }] },
|
|
369
|
+
{ type: 'error', name: 'EnumSetEmpty', inputs: [] },
|
|
370
|
+
{ type: 'error', name: 'ZeroGovernor', inputs: [] },
|
|
371
|
+
{
|
|
372
|
+
type: 'event', name: 'ShapeDefined',
|
|
373
|
+
inputs: [
|
|
374
|
+
{ name: 'classId', type: 'bytes32', indexed: true },
|
|
375
|
+
{ name: 'version', type: 'uint16', indexed: false },
|
|
376
|
+
{ name: 'shapeURI', type: 'string', indexed: false },
|
|
377
|
+
{ name: 'shapeHash', type: 'bytes32', indexed: false },
|
|
378
|
+
],
|
|
379
|
+
},
|
|
380
|
+
{ type: 'function', name: 'governor', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }] },
|
|
381
|
+
{ type: 'function', name: 'isValid', stateMutability: 'view',
|
|
382
|
+
inputs: [{ name: 'classId', type: 'bytes32' }, { name: 'subject', type: 'bytes32' }, { name: 'store', type: 'address' }],
|
|
383
|
+
outputs: [{ type: 'bool' }] },
|
|
384
|
+
{ type: 'function', name: 'validateSubject', stateMutability: 'view',
|
|
385
|
+
inputs: [{ name: 'classId', type: 'bytes32' }, { name: 'subject', type: 'bytes32' }, { name: 'store', type: 'address' }],
|
|
386
|
+
outputs: [] },
|
|
387
|
+
{
|
|
388
|
+
type: 'function', name: 'getShape', stateMutability: 'view',
|
|
389
|
+
inputs: [{ name: 'classId', type: 'bytes32' }],
|
|
390
|
+
outputs: [{
|
|
391
|
+
type: 'tuple',
|
|
392
|
+
components: [
|
|
393
|
+
{ name: 'classId', type: 'bytes32' },
|
|
394
|
+
{ name: 'shapeURI', type: 'string' },
|
|
395
|
+
{ name: 'shapeHash', type: 'bytes32' },
|
|
396
|
+
{ name: 'version', type: 'uint16' },
|
|
397
|
+
{ name: 'active', type: 'bool' },
|
|
398
|
+
{ name: 'exists', type: 'bool' },
|
|
399
|
+
],
|
|
400
|
+
}],
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
type: 'function', name: 'getProperties', stateMutability: 'view',
|
|
404
|
+
inputs: [{ name: 'classId', type: 'bytes32' }],
|
|
405
|
+
outputs: [{
|
|
406
|
+
type: 'tuple[]',
|
|
407
|
+
components: [
|
|
408
|
+
{ name: 'predicate', type: 'bytes32' },
|
|
409
|
+
{ name: 'expectedDatatype', type: 'uint8' },
|
|
410
|
+
{ name: 'cardinality', type: 'uint8' },
|
|
411
|
+
{ name: 'enumSetId', type: 'bytes32' },
|
|
412
|
+
{ name: 'expectedClass', type: 'bytes32' },
|
|
413
|
+
],
|
|
414
|
+
}],
|
|
415
|
+
},
|
|
416
|
+
];
|
|
417
|
+
//# sourceMappingURL=abis.js.map
|
package/dist/abis.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { type Address, type Hex, type WalletClient } from 'viem';
|
|
2
|
+
import type { AgentNameRecords, AgentNamingClientOpts, RegisterSubnameInput, SetAgentRecordsInput, SetPrimaryNameInput, SetSubregistryInput } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Optional per-call submission context. When provided, the write
|
|
5
|
+
* method submits the encoded call via `walletClient.sendTransaction`.
|
|
6
|
+
* When omitted, the method throws — callers who want to submit via a
|
|
7
|
+
* different path (AgentAccount.execute, CustodyPolicy ceremony,
|
|
8
|
+
* relayer, etc.) should use the pure builders in `./custody` instead.
|
|
9
|
+
*/
|
|
10
|
+
export interface WriteContext {
|
|
11
|
+
walletClient: WalletClient;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Read + write client for the Agent Naming Service.
|
|
15
|
+
*
|
|
16
|
+
* Phase 2 lands the read paths (resolveName / reverseResolve /
|
|
17
|
+
* getRecords) against the live AgentNameUniversalResolver +
|
|
18
|
+
* AgentNameAttributeResolver. Write methods still throw `NS Phase 4`
|
|
19
|
+
* — they need ERC-1271 auth + the agent-naming/custody call builders.
|
|
20
|
+
*
|
|
21
|
+
* Round-trip discipline (security invariant from spec § 10):
|
|
22
|
+
* `reverseResolve(agent)` returns a name ONLY when the on-chain
|
|
23
|
+
* `resolveName(name) === agent`. The universal resolver enforces this
|
|
24
|
+
* on chain and returns the full dotted name in a single view call.
|
|
25
|
+
*
|
|
26
|
+
* NO-FALLBACK DOCTRINE (ADR-0012 + ADR-0013): every read here is one
|
|
27
|
+
* `readContract`. There is NO `eth_getLogs` walk, no "try fast path then
|
|
28
|
+
* fall back to log scan." If the resolver has no answer, the read returns
|
|
29
|
+
* null/empty — it does not reach for an alternative path.
|
|
30
|
+
*/
|
|
31
|
+
export declare class AgentNamingClient {
|
|
32
|
+
readonly opts: AgentNamingClientOpts;
|
|
33
|
+
private readonly publicClient;
|
|
34
|
+
constructor(opts: AgentNamingClientOpts);
|
|
35
|
+
/**
|
|
36
|
+
* Resolve an agent name to its forward-record address. Returns
|
|
37
|
+
* `null` when the name is unregistered OR no `addr` record is set.
|
|
38
|
+
*
|
|
39
|
+
* Reads via `UniversalResolver.resolveName(node)` which:
|
|
40
|
+
* 1. Tries `resolver.getAddress(node, ATL_ADDR)`.
|
|
41
|
+
* 2. Falls back to `registry.owner(node)` if no resolver-addr set.
|
|
42
|
+
*/
|
|
43
|
+
resolveName(name: string): Promise<Address | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Reverse-resolve a Smart Agent address to its primary name string.
|
|
46
|
+
* Returns `null` when no primary name is set OR the round-trip
|
|
47
|
+
* check fails on chain (squat protection).
|
|
48
|
+
*
|
|
49
|
+
* Single on-chain read: `reverseResolveString` returns the full
|
|
50
|
+
* dotted name; the resolver concatenates ancestor labels via view
|
|
51
|
+
* calls. No SDK-side log walk, no fallback path (ADR-0013).
|
|
52
|
+
*/
|
|
53
|
+
reverseResolve(agent: Address): Promise<string | null>;
|
|
54
|
+
/**
|
|
55
|
+
* Read the full typed record bundle for a name. Returns an empty
|
|
56
|
+
* bundle when the name has no resolver / no records set.
|
|
57
|
+
*/
|
|
58
|
+
getRecords(name: string): Promise<AgentNameRecords>;
|
|
59
|
+
/**
|
|
60
|
+
* Register `<label>.<parent>` under the parent namespace. The
|
|
61
|
+
* provided `walletClient`'s account MUST be authorized to register
|
|
62
|
+
* children under `parent` (either direct owner OR subregistry
|
|
63
|
+
* delegate). Returns the registration tx hash; the new child node
|
|
64
|
+
* can be computed off-chain as
|
|
65
|
+
* `keccak256(parentNode || keccak256(label))` — equal to
|
|
66
|
+
* `namehash(label + '.' + parentName)`.
|
|
67
|
+
*
|
|
68
|
+
* For PSA-controlled registrations (where the parent's owner is a
|
|
69
|
+
* Smart Agent gated by CustodyPolicy), use the builders in
|
|
70
|
+
* `./custody` directly and compose them into the appropriate
|
|
71
|
+
* AgentAccount.execute / CustodyPolicy ceremony instead.
|
|
72
|
+
*/
|
|
73
|
+
registerSubname(input: RegisterSubnameInput, ctx: WriteContext): Promise<Hex>;
|
|
74
|
+
/**
|
|
75
|
+
* Set the caller's primary name (reverse record). The wallet
|
|
76
|
+
* client's account MUST equal `input.agent` — the contract enforces
|
|
77
|
+
* `msg.sender == agent` (i.e. an agent sets its OWN primary name;
|
|
78
|
+
* authority over reverse records is per-account by construction).
|
|
79
|
+
*/
|
|
80
|
+
setPrimaryName(input: SetPrimaryNameInput, ctx: WriteContext): Promise<Hex>;
|
|
81
|
+
/**
|
|
82
|
+
* Write the typed record bundle for `input.name`. The
|
|
83
|
+
* `walletClient`'s account MUST be the current name owner
|
|
84
|
+
* (`REGISTRY.owner(node) == msg.sender`). Returns one tx hash per
|
|
85
|
+
* record set — the caller may parallelize submission via a multi-call
|
|
86
|
+
* upstream if/when one becomes available.
|
|
87
|
+
*/
|
|
88
|
+
setAgentRecords(input: SetAgentRecordsInput, ctx: WriteContext): Promise<Hex[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Delegate child-name issuance authority for the subtree at
|
|
91
|
+
* `input.name` to a subregistry contract. The wallet client's
|
|
92
|
+
* account MUST be the current name owner.
|
|
93
|
+
*/
|
|
94
|
+
setSubregistry(input: SetSubregistryInput, ctx: WriteContext): Promise<Hex>;
|
|
95
|
+
/**
|
|
96
|
+
* Submit a single ContractCall via the bound walletClient. Uses
|
|
97
|
+
* explicit nonce fetch + retry on "replacement underpriced" to
|
|
98
|
+
* tolerate Base Sepolia's read-after-write lag.
|
|
99
|
+
*/
|
|
100
|
+
private _submit;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,OAAO,EAAE,KAAK,GAAG,EAAqB,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAiB9G,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAGjB;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAiB;IAGhB,QAAQ,CAAC,IAAI,EAAE,qBAAqB;IAFhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,qBAAqB;IAWhD;;;;;;;OAOG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAaxD;;;;;;;;OAQG;IACG,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAU5D;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwFzD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAqBnF;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAMjF;;;;;;OAMG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAsBrF;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAUjF;;;;OAIG;YACW,OAAO;CAkCtB"}
|