Skip to content

Commit 1f4cc0a

Browse files
docs: AddressRegistry has pins, they are just not a snapshot in this repo
Said it had 'no deploy pins' and 'no pin lib', which is wrong: rain-deploy's LibAddressRegistry pins its address and code hash, and AddressRegistryDeployPins tests them here. What it has none of is a src/generated/<tag>/ snapshot and a Deploy.sol suite, and the reason those must wait is that the directory is append-only, so a placeholder-derived snapshot could never be corrected.
1 parent c48170a commit 1f4cc0a

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

‎CLAUDE.md‎

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ deploy pins. Two unrelated contracts live here, sharing only that deploy model:
1616
from the `rain-deploy` Soldeer package alongside `LibAddressRegistry` (the
1717
reader) and the cross-network deploy gate. An immutable root authority binds a
1818
`bytes32` name to an address once and forever; reading an unbound name
19-
reverts. It has no deploy pins yet — `ADDRESS_REGISTRY_ROOT` is a placeholder
20-
and the root is part of the creation code, so no snapshot can exist until a
21-
human supplies the real value.
19+
reverts. Its address and code hash are pinned in `rain-deploy`'s
20+
`LibAddressRegistry`, not in a `src/generated/<tag>/` snapshot here — those
21+
pins come from the current placeholder build, because `ADDRESS_REGISTRY_ROOT`
22+
is a constant in the creation code and no snapshot should be frozen until a
23+
human supplies the real root.
2224

2325
License: LicenseRef-DCL-1.0 (DecentraLicense). All source files must include
2426
SPDX headers.
@@ -120,11 +122,17 @@ A deploy is a human-dispatched run of the `Manual sol artifacts` workflow
120122
(`workflow_dispatch` → `rainix-manual-sol-artifacts`), never a merge and never
121123
part of the release workflow.
122124

123-
`AddressRegistry` is not deployable yet and has no suite in `script/Deploy.sol`,
124-
no `src/generated/<tag>/` snapshot and no pin lib. Its root authority is a
125-
placeholder, and the root is part of the creation code, so any snapshot
126-
generated now would pin an address nobody can use. Supplying the real root is
127-
what unblocks generating them.
125+
`AddressRegistry` is not deployable yet: it has no suite in `script/Deploy.sol`
126+
and no `src/generated/<tag>/` snapshot. Its root authority is a placeholder, and
127+
the root is part of the creation code, so a snapshot frozen now would pin an
128+
address nobody can use — and `src/generated/<tag>/` is append-only, so it could
129+
not be corrected afterwards.
130+
131+
Its address and code hash are pinned in `rain-deploy`'s `LibAddressRegistry`,
132+
derived from the same placeholder build.
133+
`test/src/concrete/AddressRegistryDeployPins.t.sol` fails if this source and
134+
those pins disagree, so supplying the real root means re-deriving them in the
135+
same change.
128136

129137
## Releases and versioning
130138

0 commit comments

Comments
 (0)