@agenticprimitives/agent-naming 1.0.0-alpha.46 → 1.0.0-alpha.48
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 +52 -2
- package/CLAUDE.md +9 -17
- package/dist/abis.d.ts +461 -0
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +88 -0
- package/dist/abis.js.map +1 -1
- package/dist/claim.d.ts +32 -0
- package/dist/claim.d.ts.map +1 -1
- package/dist/claim.js +61 -3
- package/dist/claim.js.map +1 -1
- package/dist/constants.d.ts +24 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +32 -4
- package/dist/constants.js.map +1 -1
- package/dist/custody.d.ts +95 -8
- package/dist/custody.d.ts.map +1 -1
- package/dist/custody.js +107 -13
- package/dist/custody.js.map +1 -1
- package/dist/dns.d.ts +102 -7
- package/dist/dns.d.ts.map +1 -1
- package/dist/dns.js +128 -28
- package/dist/dns.js.map +1 -1
- package/dist/grammar.d.ts +1 -1
- package/dist/grammar.js +2 -2
- package/dist/grammar.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/normalize.d.ts +1 -1
- package/dist/normalize.js +1 -1
- package/dist/price.d.ts.map +1 -1
- package/dist/price.js +7 -0
- package/dist/price.js.map +1 -1
- package/dist/vertical.d.ts +1 -1
- package/dist/vertical.d.ts.map +1 -1
- package/dist/vertical.js +4 -0
- package/dist/vertical.js.map +1 -1
- package/docs/api.md +3 -1
- package/package.json +4 -4
package/dist/constants.js
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* on-chain `atl:agentType` record on the SA subject is the authority (spec 346 §2.3).
|
|
7
7
|
*
|
|
8
8
|
* `.ws` is a package-level alias normalizing to `workspace`; it is not an on-chain root.
|
|
9
|
-
* `.
|
|
10
|
-
*
|
|
9
|
+
* `.agent` is the one UNTYPED LEGACY root: it resolves, it is not validated, and it closes to new claims once
|
|
10
|
+
* the owning apps migrate (spec 346 §3.5). A word in neither list is an unknown root and is refused (`unknown_tld`);
|
|
11
|
+
* a retired root is not kept as an alias (test/grammar.test.ts, "a retired root fails closed").
|
|
11
12
|
*/
|
|
12
13
|
import { keccak256, toHex } from 'viem';
|
|
13
14
|
import { rootClassForDerivedType } from '@agenticprimitives/types';
|
|
@@ -18,8 +19,8 @@ import { verticalAgentTypeForTld, verticalAgentTlds, verticalRootKindForTld } fr
|
|
|
18
19
|
export const AGENT_TLDS = ['me', 'org', 'team', 'svc', 'workspace', 'treasury', 'registry', 'church', 'circle', 'household'];
|
|
19
20
|
/** Package-level aliases applied during normalization (never on-chain roots). */
|
|
20
21
|
export const AGENT_TLD_ALIASES = Object.freeze({ ws: 'workspace' });
|
|
21
|
-
/** Untyped legacy roots — resolvable, never suffix-validated, closed to new claims after app adoption. */
|
|
22
|
-
export const LEGACY_TLDS = ['
|
|
22
|
+
/** Untyped legacy roots — resolvable, never suffix-validated, closed to new claims after app adoption. `.agent` only. */
|
|
23
|
+
export const LEGACY_TLDS = ['agent'];
|
|
23
24
|
/**
|
|
24
25
|
* Labels that MUST NOT be claimed under any root or inside any context: the type words (they would
|
|
25
26
|
* collide with the DNS type level `<label>.<type>.<zone>`, spec 346 §5), the alias, and the fixed
|
|
@@ -34,6 +35,12 @@ export const RESERVED_LABELS = Object.freeze([
|
|
|
34
35
|
'api',
|
|
35
36
|
'well-known',
|
|
36
37
|
]);
|
|
38
|
+
/**
|
|
39
|
+
* The labels `AgentNameRegistry` reserves in its constructor (spec 445 / generation 4 / B2, NAME-8): exactly the
|
|
40
|
+
* non-type words of `RESERVED_LABELS`. The chain reserves a TYPE word only once that root is initialized
|
|
41
|
+
* (`isTypedRootLabel`); the SDK reserves all of them statically, so it stays the stricter pre-check.
|
|
42
|
+
*/
|
|
43
|
+
export const CHAIN_SEEDED_RESERVED_LABELS = Object.freeze(['ws', 'www', 'mtls', 'edge', 'api', 'well-known']);
|
|
37
44
|
const TLD_TO_DERIVED = Object.freeze({
|
|
38
45
|
me: 'person',
|
|
39
46
|
org: 'org',
|
|
@@ -112,6 +119,27 @@ export function tldForDerivedType(t) {
|
|
|
112
119
|
}
|
|
113
120
|
/** Re-exported for callers that only import agent-naming: derived type → closed root (ADR-0046). */
|
|
114
121
|
export { rootClassForDerivedType };
|
|
122
|
+
/**
|
|
123
|
+
* Is `label` one that names no agent anywhere — a type word, the alias, a registered vertical suffix or a fixed
|
|
124
|
+
* infrastructure host (spec 346 §3.1)? Stated once so the grammar, the claim helpers and the DNS projection agree.
|
|
125
|
+
*/
|
|
126
|
+
export function isReservedLabel(label) {
|
|
127
|
+
return RESERVED_LABELS.includes(label) || canonicalTld(label) !== null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The type suffix a single label ENDS in — `alice-home-church` → `church` — or null. The suffix is the segment
|
|
131
|
+
* after the LAST hyphen, compared with the closed suffix set (a suffix never contains a hyphen: the ten generic
|
|
132
|
+
* ones do not, and `registerVerticalAgentTypes` refuses one that does), so the split is unique: a label reads as
|
|
133
|
+
* at most one `<label>-<type>`. Spec 445 / audit NAME-8: this one function decides both which bare labels have no
|
|
134
|
+
* DNS host and how a host is read back, so the two cannot drift.
|
|
135
|
+
*/
|
|
136
|
+
export function typeSuffixOfLabel(label) {
|
|
137
|
+
const i = label.lastIndexOf('-');
|
|
138
|
+
if (i <= 0 || i === label.length - 1)
|
|
139
|
+
return null;
|
|
140
|
+
const tail = label.slice(i + 1);
|
|
141
|
+
return allAgentTlds().includes(tail) ? tail : null;
|
|
142
|
+
}
|
|
115
143
|
/** Root class a suffix resolves to (`suffix → derived type → root`). */
|
|
116
144
|
export function rootClassForTld(tld) {
|
|
117
145
|
return rootClassForDerivedType(derivedTypeForTld(tld));
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/custody.d.ts
CHANGED
|
@@ -29,6 +29,11 @@ export interface ContractCall {
|
|
|
29
29
|
* Build a call to register `<label>.<parent>` under the parent
|
|
30
30
|
* namespace. Caller MUST be the parent's owner OR subregistry
|
|
31
31
|
* delegate (msg.sender check on chain).
|
|
32
|
+
*
|
|
33
|
+
* Spec 445 / NAME-8: when `parentNode` is a ROOT this process knows (a typed, legacy or vertical root) the label is
|
|
34
|
+
* an agent's and the claim rule applies (`labelClaimViolation`): reserved labels refused, and under a bare-host
|
|
35
|
+
* root a label ending in `-<type>` refused. Any other parent (a context registering its type-nodes, an app's own
|
|
36
|
+
* subtree) is not judged here — a type word IS the label of a type-node.
|
|
32
37
|
*/
|
|
33
38
|
export declare function buildRegisterSubnameCall(args: {
|
|
34
39
|
registry: Address;
|
|
@@ -40,7 +45,13 @@ export declare function buildRegisterSubnameCall(args: {
|
|
|
40
45
|
}): ContractCall;
|
|
41
46
|
/**
|
|
42
47
|
* Build a call to rotate the owner Smart Agent for a name.
|
|
43
|
-
* Caller MUST be the current owner.
|
|
48
|
+
* Caller MUST be the current owner, and the name must not be expired (`NameExpired`).
|
|
49
|
+
*
|
|
50
|
+
* Spec 445 / generation 4 / B2 (REG-4): RECORDS DO NOT CARRY OVER. Moving the name to a DIFFERENT owner bumps its
|
|
51
|
+
* record epoch (`RecordEpochBumped`), and `AgentNameAttributeResolver` keys every record by `(node, epoch)` — so
|
|
52
|
+
* after this call `atl:addr`, `atl:agentType` and every other record of the node read empty, and transferring back
|
|
53
|
+
* does not resurrect them. The new owner writes its own records. The `resolver` and `subregistry` POINTERS are not
|
|
54
|
+
* reset: a receiver of a transferred name must check them.
|
|
44
55
|
*/
|
|
45
56
|
export declare function buildRotateNameOwnerCall(args: {
|
|
46
57
|
registry: Address;
|
|
@@ -121,19 +132,86 @@ export declare function buildRecordCalls(args: {
|
|
|
121
132
|
records: import('./types.js').AgentNameRecords;
|
|
122
133
|
}): ContractCall[];
|
|
123
134
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
|
|
135
|
+
* Spec 445 / generation 4 / B2 (REG-5) — the PermissionlessSubregistry claim is COMMIT-REVEAL. The two windows are
|
|
136
|
+
* contract constants (`MIN_COMMIT_AGE()` / `MAX_COMMIT_AGE()`); they are mirrored here so a client can schedule the
|
|
137
|
+
* reveal without a read, and a test pins them to the contract.
|
|
138
|
+
*/
|
|
139
|
+
export declare const SUBREGISTRY_MIN_COMMIT_AGE_SECONDS = 10;
|
|
140
|
+
export declare const SUBREGISTRY_MAX_COMMIT_AGE_SECONDS = 86400;
|
|
141
|
+
/** 32 fresh random bytes for one claim. The CLIENT keeps it between the commit and the reveal, and never sends it
|
|
142
|
+
* anywhere before the reveal — whoever learns it before the reveal can reveal for the same owner, nothing more
|
|
143
|
+
* (the commitment binds `newOwner`, so a copied secret never yields the name to anyone else). */
|
|
144
|
+
export declare function generateClaimSecret(): Hex;
|
|
145
|
+
/**
|
|
146
|
+
* The commitment `PermissionlessSubregistry.makeCommitment(label, newOwner, secret)` computes, off chain:
|
|
147
|
+
* `keccak256(abi.encode(subregistry, chainId, keccak256(bytes(label)), newOwner, secret))`. The label is normalized
|
|
148
|
+
* first — the reveal sends the normalized label, so the commitment must be over the same bytes.
|
|
149
|
+
*/
|
|
150
|
+
export declare function subregistryCommitment(args: {
|
|
151
|
+
subregistry: Address;
|
|
152
|
+
chainId: number | bigint;
|
|
153
|
+
label: string;
|
|
154
|
+
newOwner: Address;
|
|
155
|
+
secret: Hex;
|
|
156
|
+
}): Hex;
|
|
157
|
+
/**
|
|
158
|
+
* STEP 1 of a PermissionlessSubregistry claim: `commit(commitment)`. The label is NOT visible on chain until the
|
|
159
|
+
* reveal, so a watcher of the mempool cannot take the name first.
|
|
160
|
+
*
|
|
161
|
+
* THE WAITING PERIOD. The reveal (`buildSubregistryRegisterCall`, same label / owner / secret) must land in a LATER
|
|
162
|
+
* transaction at least `SUBREGISTRY_MIN_COMMIT_AGE_SECONDS` (10 s of chain time) after this one is mined, and no more
|
|
163
|
+
* than `SUBREGISTRY_MAX_COMMIT_AGE_SECONDS` (1 day) after it — too early reverts `CommitmentTooNew(commitment,
|
|
164
|
+
* matureAt)`, too late `CommitmentExpired`. Both calls therefore can NOT share one user operation or one batch: a
|
|
165
|
+
* flow that claimed a name in one transaction is now two, with a wait between. The commitment is single-use, and a
|
|
166
|
+
* live one cannot be re-committed (`CommitmentPending`); after it expires, commit again (a fresh secret is best).
|
|
167
|
+
*
|
|
168
|
+
* The label is validated here exactly as at the reveal (normalization + NAME-8), so a claim the reveal would refuse
|
|
169
|
+
* never spends a commit.
|
|
170
|
+
*/
|
|
171
|
+
export declare function buildSubregistryCommitCall(args: {
|
|
172
|
+
subregistry: Address;
|
|
173
|
+
chainId: number | bigint;
|
|
174
|
+
label: string;
|
|
175
|
+
newOwner: Address;
|
|
176
|
+
secret: Hex;
|
|
177
|
+
/** As in `buildSubregistryRegisterCall`: the root this subregistry serves; omitted ⇒ judged as a bare-host root. */
|
|
178
|
+
root?: string;
|
|
179
|
+
}): ContractCall & {
|
|
180
|
+
commitment: Hex;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* STEP 2 — the REVEAL: `register(label, newOwner, secret)` through a deployed PermissionlessSubregistry. It succeeds
|
|
184
|
+
* only against a MATURED commitment from `buildSubregistryCommitCall` with the same label, owner and secret (see the
|
|
185
|
+
* waiting period there). The caller pays gas; any account may send the reveal (a relayer) — the name goes to
|
|
186
|
+
* `newOwner`, which the commitment fixed.
|
|
128
187
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
188
|
+
* One reveal per `msg.sender` is enforced on chain (`AlreadyClaimed(existingNode)`) — a courtesy limit, not sybil
|
|
189
|
+
* resistance. The chain also refuses reserved labels (`ReservedLabel`) and, under a bare-host root, labels that read
|
|
190
|
+
* as a typed name (`LabelReadsAsTypedName`); the same rule is checked here first.
|
|
132
191
|
*/
|
|
133
192
|
export declare function buildSubregistryRegisterCall(args: {
|
|
134
193
|
subregistry: Address;
|
|
135
194
|
label: string;
|
|
136
195
|
newOwner: Address;
|
|
196
|
+
/** The secret the matching commitment was made with. */
|
|
197
|
+
secret: Hex;
|
|
198
|
+
/**
|
|
199
|
+
* The root this subregistry serves (`'me'`, `'team'`, a legacy root…). Spec 445 / NAME-8: a subregistry address
|
|
200
|
+
* does not say which root it is, so an OMITTED root is judged as a bare-host root — a label ending in `-<type>`
|
|
201
|
+
* is refused. A caller claiming `somali-corridor-team` under `.team` says `root: 'team'`.
|
|
202
|
+
*/
|
|
203
|
+
root?: string;
|
|
204
|
+
}): ContractCall;
|
|
205
|
+
/**
|
|
206
|
+
* `renew(node, newExpiry)` — spec 445 / generation 4 / B2 (REG-6). Expiry is the PARENT's term: the caller MUST be
|
|
207
|
+
* the parent authority (the parent node's owner or its subregistry), never the name's holder. Extension only:
|
|
208
|
+
* `newExpiry` is `0` (make permanent) or later than both the current expiry and now, else `ExpiryNotExtended()`. A
|
|
209
|
+
* root has no parent and cannot be renewed. Every shipped path registers permanent names (expiry 0).
|
|
210
|
+
*/
|
|
211
|
+
export declare function buildRenewNameCall(args: {
|
|
212
|
+
registry: Address;
|
|
213
|
+
node: Hex;
|
|
214
|
+
newExpiry: bigint | number;
|
|
137
215
|
}): ContractCall;
|
|
138
216
|
/**
|
|
139
217
|
* Step 1b of the bootstrap (spec 346 §3.6): declare the SA's derived type on its OWN profile subject.
|
|
@@ -160,6 +238,11 @@ export declare function buildDeclareAgentTypeCalls(args: {
|
|
|
160
238
|
* on the new node, and set the primary name. The caller MUST have run `validateTypedClaim` (or
|
|
161
239
|
* `AgentNamingClient.checkTypedName`) — this builder only refuses a suffix/type disagreement it can see
|
|
162
240
|
* locally. `setPrimaryName` requires `msg.sender == owner`; the subregistry claim may be sent by anyone.
|
|
241
|
+
*
|
|
242
|
+
* Spec 445 / generation 4 / B2 (REG-5): the claim is TWO transactions. Send `commit` first; after it is mined, wait
|
|
243
|
+
* at least `SUBREGISTRY_MIN_COMMIT_AGE_SECONDS` (and at most a day — see `buildSubregistryCommitCall`), then send
|
|
244
|
+
* `claim` (the reveal) followed by `records` and `primaryName`. `secret` is the client's (`generateClaimSecret()`),
|
|
245
|
+
* kept between the two; `chainId` is the subregistry's chain, part of the commitment.
|
|
163
246
|
*/
|
|
164
247
|
export declare function buildTypedClaimCalls(args: {
|
|
165
248
|
name: string;
|
|
@@ -168,8 +251,12 @@ export declare function buildTypedClaimCalls(args: {
|
|
|
168
251
|
resolver: Address;
|
|
169
252
|
subregistries: Partial<Record<string, Address>>;
|
|
170
253
|
agentType: DerivedAgentType;
|
|
254
|
+
chainId: number | bigint;
|
|
255
|
+
secret: Hex;
|
|
171
256
|
records?: Omit<AgentNameRecords, 'agentKind' | 'addr'>;
|
|
172
257
|
}): {
|
|
258
|
+
commit: ContractCall;
|
|
259
|
+
commitment: Hex;
|
|
173
260
|
claim: ContractCall;
|
|
174
261
|
records: ContractCall[];
|
|
175
262
|
primaryName: ContractCall;
|
package/dist/custody.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,EAA8D,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9G,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI1F,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;CACX;AAID
|
|
1
|
+
{"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"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"}
|
package/dist/custody.js
CHANGED
|
@@ -15,24 +15,32 @@
|
|
|
15
15
|
* Phase 4 lands the encoders; the client (`AgentNamingClient`) layers
|
|
16
16
|
* walletClient submission on top.
|
|
17
17
|
*/
|
|
18
|
-
import { encodeFunctionData } from 'viem';
|
|
18
|
+
import { encodeAbiParameters, encodeFunctionData, keccak256, toBytes, toHex } from 'viem';
|
|
19
19
|
import { normalizeLabel } from './normalize.js';
|
|
20
20
|
import { agentNameAttributeResolverAbi, agentNameRegistryAbi, permissionlessSubregistryAbi, } from './abis.js';
|
|
21
21
|
import { PREDICATE_ID, AGENT_KIND_ID, AGENT_TYPE_ID, encodeAccounts } from './records.js';
|
|
22
22
|
import { agentProfileResolverTypeAbi } from './abis.js';
|
|
23
23
|
import { rootClassForDerivedType } from '@agenticprimitives/types';
|
|
24
24
|
import { parseAgentName } from './grammar.js';
|
|
25
|
-
import { ROLE_TYPED } from './claim.js';
|
|
25
|
+
import { ROLE_TYPED, assertClaimableLabel, knownRootOfNode } from './claim.js';
|
|
26
26
|
import { derivedTypeForTld } from './constants.js';
|
|
27
27
|
// ─── Registry writes ───────────────────────────────────────────────
|
|
28
28
|
/**
|
|
29
29
|
* Build a call to register `<label>.<parent>` under the parent
|
|
30
30
|
* namespace. Caller MUST be the parent's owner OR subregistry
|
|
31
31
|
* delegate (msg.sender check on chain).
|
|
32
|
+
*
|
|
33
|
+
* Spec 445 / NAME-8: when `parentNode` is a ROOT this process knows (a typed, legacy or vertical root) the label is
|
|
34
|
+
* an agent's and the claim rule applies (`labelClaimViolation`): reserved labels refused, and under a bare-host
|
|
35
|
+
* root a label ending in `-<type>` refused. Any other parent (a context registering its type-nodes, an app's own
|
|
36
|
+
* subtree) is not judged here — a type word IS the label of a type-node.
|
|
32
37
|
*/
|
|
33
38
|
export function buildRegisterSubnameCall(args) {
|
|
34
39
|
// AN-1: normalize + reject on the WRITE path (homoglyph/case/zero-width squat defense).
|
|
35
40
|
const label = normalizeLabel(args.label);
|
|
41
|
+
const root = knownRootOfNode(args.parentNode);
|
|
42
|
+
if (root)
|
|
43
|
+
assertClaimableLabel(label, { root });
|
|
36
44
|
return {
|
|
37
45
|
to: args.registry,
|
|
38
46
|
value: 0n,
|
|
@@ -51,7 +59,13 @@ export function buildRegisterSubnameCall(args) {
|
|
|
51
59
|
}
|
|
52
60
|
/**
|
|
53
61
|
* Build a call to rotate the owner Smart Agent for a name.
|
|
54
|
-
* Caller MUST be the current owner.
|
|
62
|
+
* Caller MUST be the current owner, and the name must not be expired (`NameExpired`).
|
|
63
|
+
*
|
|
64
|
+
* Spec 445 / generation 4 / B2 (REG-4): RECORDS DO NOT CARRY OVER. Moving the name to a DIFFERENT owner bumps its
|
|
65
|
+
* record epoch (`RecordEpochBumped`), and `AgentNameAttributeResolver` keys every record by `(node, epoch)` — so
|
|
66
|
+
* after this call `atl:addr`, `atl:agentType` and every other record of the node read empty, and transferring back
|
|
67
|
+
* does not resurrect them. The new owner writes its own records. The `resolver` and `subregistry` POINTERS are not
|
|
68
|
+
* reset: a receiver of a transferred name must check them.
|
|
55
69
|
*/
|
|
56
70
|
export function buildRotateNameOwnerCall(args) {
|
|
57
71
|
return {
|
|
@@ -240,28 +254,101 @@ export function buildRecordCalls(args) {
|
|
|
240
254
|
}
|
|
241
255
|
// ─── PermissionlessSubregistry ─────────────────────────────────────
|
|
242
256
|
/**
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
|
|
257
|
+
* Spec 445 / generation 4 / B2 (REG-5) — the PermissionlessSubregistry claim is COMMIT-REVEAL. The two windows are
|
|
258
|
+
* contract constants (`MIN_COMMIT_AGE()` / `MAX_COMMIT_AGE()`); they are mirrored here so a client can schedule the
|
|
259
|
+
* reveal without a read, and a test pins them to the contract.
|
|
260
|
+
*/
|
|
261
|
+
export const SUBREGISTRY_MIN_COMMIT_AGE_SECONDS = 10;
|
|
262
|
+
export const SUBREGISTRY_MAX_COMMIT_AGE_SECONDS = 86_400;
|
|
263
|
+
/** 32 fresh random bytes for one claim. The CLIENT keeps it between the commit and the reveal, and never sends it
|
|
264
|
+
* anywhere before the reveal — whoever learns it before the reveal can reveal for the same owner, nothing more
|
|
265
|
+
* (the commitment binds `newOwner`, so a copied secret never yields the name to anyone else). */
|
|
266
|
+
export function generateClaimSecret() {
|
|
267
|
+
return toHex(crypto.getRandomValues(new Uint8Array(32)));
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* The commitment `PermissionlessSubregistry.makeCommitment(label, newOwner, secret)` computes, off chain:
|
|
271
|
+
* `keccak256(abi.encode(subregistry, chainId, keccak256(bytes(label)), newOwner, secret))`. The label is normalized
|
|
272
|
+
* first — the reveal sends the normalized label, so the commitment must be over the same bytes.
|
|
273
|
+
*/
|
|
274
|
+
export function subregistryCommitment(args) {
|
|
275
|
+
const label = normalizeLabel(args.label);
|
|
276
|
+
return keccak256(encodeAbiParameters([{ type: 'address' }, { type: 'uint256' }, { type: 'bytes32' }, { type: 'address' }, { type: 'bytes32' }], [args.subregistry, BigInt(args.chainId), keccak256(toBytes(label)), args.newOwner, args.secret]));
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* STEP 1 of a PermissionlessSubregistry claim: `commit(commitment)`. The label is NOT visible on chain until the
|
|
280
|
+
* reveal, so a watcher of the mempool cannot take the name first.
|
|
247
281
|
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
282
|
+
* THE WAITING PERIOD. The reveal (`buildSubregistryRegisterCall`, same label / owner / secret) must land in a LATER
|
|
283
|
+
* transaction at least `SUBREGISTRY_MIN_COMMIT_AGE_SECONDS` (10 s of chain time) after this one is mined, and no more
|
|
284
|
+
* than `SUBREGISTRY_MAX_COMMIT_AGE_SECONDS` (1 day) after it — too early reverts `CommitmentTooNew(commitment,
|
|
285
|
+
* matureAt)`, too late `CommitmentExpired`. Both calls therefore can NOT share one user operation or one batch: a
|
|
286
|
+
* flow that claimed a name in one transaction is now two, with a wait between. The commitment is single-use, and a
|
|
287
|
+
* live one cannot be re-committed (`CommitmentPending`); after it expires, commit again (a fresh secret is best).
|
|
288
|
+
*
|
|
289
|
+
* The label is validated here exactly as at the reveal (normalization + NAME-8), so a claim the reveal would refuse
|
|
290
|
+
* never spends a commit.
|
|
291
|
+
*/
|
|
292
|
+
export function buildSubregistryCommitCall(args) {
|
|
293
|
+
const label = normalizeLabel(args.label);
|
|
294
|
+
assertClaimableLabel(label, { root: args.root ?? null });
|
|
295
|
+
assertSecret(args.secret);
|
|
296
|
+
const commitment = subregistryCommitment({ ...args, label });
|
|
297
|
+
return {
|
|
298
|
+
to: args.subregistry,
|
|
299
|
+
value: 0n,
|
|
300
|
+
data: encodeFunctionData({ abi: permissionlessSubregistryAbi, functionName: 'commit', args: [commitment] }),
|
|
301
|
+
commitment,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
function assertSecret(secret) {
|
|
305
|
+
if (typeof secret !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(secret))
|
|
306
|
+
throw new Error('[agent-naming] a claim secret is 32 bytes (0x + 64 hex) — generateClaimSecret()');
|
|
307
|
+
if (/^0x0{64}$/.test(secret))
|
|
308
|
+
throw new Error('[agent-naming] a claim secret must not be zero — anyone could compute the commitment');
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* STEP 2 — the REVEAL: `register(label, newOwner, secret)` through a deployed PermissionlessSubregistry. It succeeds
|
|
312
|
+
* only against a MATURED commitment from `buildSubregistryCommitCall` with the same label, owner and secret (see the
|
|
313
|
+
* waiting period there). The caller pays gas; any account may send the reveal (a relayer) — the name goes to
|
|
314
|
+
* `newOwner`, which the commitment fixed.
|
|
315
|
+
*
|
|
316
|
+
* One reveal per `msg.sender` is enforced on chain (`AlreadyClaimed(existingNode)`) — a courtesy limit, not sybil
|
|
317
|
+
* resistance. The chain also refuses reserved labels (`ReservedLabel`) and, under a bare-host root, labels that read
|
|
318
|
+
* as a typed name (`LabelReadsAsTypedName`); the same rule is checked here first.
|
|
251
319
|
*/
|
|
252
320
|
export function buildSubregistryRegisterCall(args) {
|
|
253
321
|
// AN-1: normalize + reject on the WRITE path (homoglyph/case/zero-width squat defense).
|
|
254
322
|
const label = normalizeLabel(args.label);
|
|
323
|
+
// NAME-8: reserved labels and (under a bare-host root) labels that read as a typed name are not claimable here.
|
|
324
|
+
assertClaimableLabel(label, { root: args.root ?? null });
|
|
325
|
+
assertSecret(args.secret);
|
|
255
326
|
return {
|
|
256
327
|
to: args.subregistry,
|
|
257
328
|
value: 0n,
|
|
258
329
|
data: encodeFunctionData({
|
|
259
330
|
abi: permissionlessSubregistryAbi,
|
|
260
331
|
functionName: 'register',
|
|
261
|
-
args: [label, args.newOwner],
|
|
332
|
+
args: [label, args.newOwner, args.secret],
|
|
262
333
|
}),
|
|
263
334
|
};
|
|
264
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* `renew(node, newExpiry)` — spec 445 / generation 4 / B2 (REG-6). Expiry is the PARENT's term: the caller MUST be
|
|
338
|
+
* the parent authority (the parent node's owner or its subregistry), never the name's holder. Extension only:
|
|
339
|
+
* `newExpiry` is `0` (make permanent) or later than both the current expiry and now, else `ExpiryNotExtended()`. A
|
|
340
|
+
* root has no parent and cannot be renewed. Every shipped path registers permanent names (expiry 0).
|
|
341
|
+
*/
|
|
342
|
+
export function buildRenewNameCall(args) {
|
|
343
|
+
const newExpiry = BigInt(args.newExpiry);
|
|
344
|
+
if (newExpiry < 0n || newExpiry >= 1n << 64n)
|
|
345
|
+
throw new Error('[agent-naming] newExpiry is a uint64 (0 = permanent)');
|
|
346
|
+
return {
|
|
347
|
+
to: args.registry,
|
|
348
|
+
value: 0n,
|
|
349
|
+
data: encodeFunctionData({ abi: agentNameRegistryAbi, functionName: 'renew', args: [args.node, newExpiry] }),
|
|
350
|
+
};
|
|
351
|
+
}
|
|
265
352
|
// ─── Typed naming (spec 346) ────────────────────────────────────────
|
|
266
353
|
/**
|
|
267
354
|
* Step 1b of the bootstrap (spec 346 §3.6): declare the SA's derived type on its OWN profile subject.
|
|
@@ -325,6 +412,11 @@ export function buildDeclareAgentTypeCalls(args) {
|
|
|
325
412
|
* on the new node, and set the primary name. The caller MUST have run `validateTypedClaim` (or
|
|
326
413
|
* `AgentNamingClient.checkTypedName`) — this builder only refuses a suffix/type disagreement it can see
|
|
327
414
|
* locally. `setPrimaryName` requires `msg.sender == owner`; the subregistry claim may be sent by anyone.
|
|
415
|
+
*
|
|
416
|
+
* Spec 445 / generation 4 / B2 (REG-5): the claim is TWO transactions. Send `commit` first; after it is mined, wait
|
|
417
|
+
* at least `SUBREGISTRY_MIN_COMMIT_AGE_SECONDS` (and at most a day — see `buildSubregistryCommitCall`), then send
|
|
418
|
+
* `claim` (the reveal) followed by `records` and `primaryName`. `secret` is the client's (`generateClaimSecret()`),
|
|
419
|
+
* kept between the two; `chainId` is the subregistry's chain, part of the commitment.
|
|
328
420
|
*/
|
|
329
421
|
export function buildTypedClaimCalls(args) {
|
|
330
422
|
const p = parseAgentName(args.name);
|
|
@@ -338,13 +430,15 @@ export function buildTypedClaimCalls(args) {
|
|
|
338
430
|
const subregistry = args.subregistries[p.handle.tld];
|
|
339
431
|
if (!subregistry)
|
|
340
432
|
throw new Error(`[agent-naming] no PermissionlessSubregistry configured for ".${p.handle.tld}"`);
|
|
341
|
-
const
|
|
433
|
+
const claimArgs = { subregistry, label: p.handle.label, newOwner: args.owner, root: p.handle.tld, secret: args.secret };
|
|
434
|
+
const { commitment, ...commit } = buildSubregistryCommitCall({ ...claimArgs, chainId: args.chainId });
|
|
435
|
+
const claim = buildSubregistryRegisterCall(claimArgs);
|
|
342
436
|
const records = buildRecordCalls({
|
|
343
437
|
resolver: args.resolver,
|
|
344
438
|
node: p.node,
|
|
345
439
|
records: { ...(args.records ?? {}), addr: args.owner, agentKind: rootClassForDerivedType(args.agentType) },
|
|
346
440
|
});
|
|
347
441
|
const primaryName = buildSetPrimaryNameCall({ registry: args.registry, node: p.node });
|
|
348
|
-
return { claim, records, primaryName, node: p.node };
|
|
442
|
+
return { commit, commitment, claim, records, primaryName, node: p.node };
|
|
349
443
|
}
|
|
350
444
|
//# sourceMappingURL=custody.js.map
|
package/dist/custody.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custody.js","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"custody.js","sourceRoot":"","sources":["../src/custody.ts"],"names":[],"mappings":"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"}
|