-
Notifications
You must be signed in to change notification settings - Fork 0
Address registry: interface, concrete, reader lib and post-deploy cross-network verification #26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
thedavidmeister
merged 29 commits into
main
from
2026-08-08-address-registry-interface-lib
Aug 14, 2026
Merged
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
9a0cc8d
feat(registry): address registry interface, reader lib and cross-netw…
thedavidmeister 0958f42
test(registry): fork two networks in the cross-network gate test, not…
thedavidmeister bf5ac30
docs: Zoltu deploys with CREATE2 under a zero salt, not CREATE with a…
thedavidmeister 605c1c2
feat(registry): mutable bindings, post-deploy verification, concrete …
thedavidmeister d58d007
test(deploy): repin testDeployZoltu's literal to this repo's compiler…
thedavidmeister 10b14d5
feat(verify): one inherited deploy-pin verification, parameterized ov…
thedavidmeister 4662b77
fix(verify): one contract per file, and keep slither on deployable co…
thedavidmeister 226befc
feat(deploy): the on-chain deploy this repo had no way to run
thedavidmeister 7461a93
fix(review): close the CodeRabbit findings that were real
thedavidmeister 58a2cc8
feat(suites): one declaration, deployed and verified, as a registry
thedavidmeister 7c60080
refactor(build): use the codegen library for codegen, don't reimpleme…
thedavidmeister 589686c
feat(snapshot): candidate/frozen split, LibSnapshot moved in, .pointe…
thedavidmeister a4e5a7b
test(exemplars): the exemplar owns the shape, the compiler owns the v…
thedavidmeister 721186f
test(snapshots): generate the test records, specify their shape from …
thedavidmeister e7b0384
refactor(snapshot): share the alias-lib emitter, and stop swallowing …
thedavidmeister f7e0fe5
test(snapshot): prove the release guards fire
thedavidmeister f04e559
refactor(verify): name the subject, and drive the tests from the real…
thedavidmeister befb78d
refactor(snapshot): bump rain-sol-codegen to 0.1.6 and use its filePr…
thedavidmeister a94040f
feat(verify): zero root for rollout, and chain checks only what released
thedavidmeister d8ebf90
fix(ci): slither filter follows the rename, SPDX fixture stops declar…
thedavidmeister f6c87dc
style: forge fmt, and the lint directive sits against the line it sup…
thedavidmeister 0c5967d
fix(snapshot): a failed freeze is retryable, and the writer has one root
thedavidmeister 0b7db36
fix(verify): the record is matched on what it declares, not on its text
thedavidmeister e37f499
test(chain): the candidate scope gets its own file
thedavidmeister 95a41bf
feat(release): the record and the declaration of it come from one call
thedavidmeister dd2d93c
fix(release): a released lib describes one contract, not the record w…
thedavidmeister eb0b3f5
fix(verify): read the declaration the compiler reads, and restore the…
thedavidmeister 696f2e5
style(test): wrap the writer call forge fmt wraps
thedavidmeister 57618df
Review fixes: slither scope, address decode, and doc claims that were…
thedavidmeister File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| name: Manual sol artifacts | ||
| # The on-chain deploy, run by hand. This repo carries a deployed concrete | ||
| # (`AddressRegistry`) whose address + codehash consumers pin, and | ||
| # `package-release.yaml` cuts a release for a deployment that ALREADY exists — | ||
| # rainix-tag-release verifies the live chains against freshly generated pins and | ||
| # never broadcasts. So the deploy has to happen first, and separately, which is | ||
| # this. | ||
| # | ||
| # Order is: dispatch this, confirm `AddressRegistryDeployChainTest` passes | ||
| # on every supported network, then push the `sol-v*` tag. | ||
| # | ||
| # Deliberately `workflow_dispatch` only. Broadcasting is key custody and real | ||
| # money; nothing about a merge or a tag should trigger it. | ||
| on: | ||
| workflow_dispatch: | ||
| jobs: | ||
| deploy: | ||
| uses: rainlanguage/rainix/.github/workflows/rainix-manual-sol-artifacts.yaml@main | ||
| with: | ||
| # Passed through as DEPLOYMENT_SUITE; script/Deploy.sol dispatches on it | ||
| # and reverts on anything else. | ||
| suite: address-registry | ||
| secrets: inherit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,11 +1,34 @@ | ||
| name: Package Release | ||
| # Deploy repo: a manual `sol-v*` tag is the sole release trigger. This repo now | ||
| # carries a deployed concrete (`AddressRegistry`) whose address + codehash | ||
| # consumers pin, which is exactly the shape rainix-tag-release exists for and | ||
| # exactly the shape rainix-autopublish's merge-driven, next-version lifecycle is | ||
| # wrong for: autopublish bumps [package].version on every merge while the frozen | ||
| # deploy tag only advances at deploy time. | ||
| # | ||
| # The tag names the version; rainix-tag-release runs `cutRelease()`, which | ||
| # freezes src/generated/<tag>/ AND regenerates the released-suites lib that | ||
| # declares it in one call, then verifies the live chains match the fresh pins, | ||
| # publishes rain-deploy to Soldeer, and commits both back to main. One call, | ||
| # because a frozen record no declaration names is a release every check silently | ||
| # stops asking about. | ||
| # | ||
| # The on-chain deploy is separate and manual, run BEFORE tagging; this never | ||
| # broadcasts. The chain verification inside rainix-tag-release is what fails if a | ||
| # newly declared release is not on chain, and that is the intended gate: a | ||
| # release is declared here only once it is a deployment that already happened. | ||
| # | ||
| # Switching lifecycles retracts nothing: every version already published stays | ||
| # published, and consumers pin exact versions, so this changes who cuts a | ||
| # release and nothing about how anyone consumes one. | ||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| tags: | ||
| - sol-v* | ||
| jobs: | ||
| release: | ||
| uses: rainlanguage/rainix/.github/workflows/rainix-autopublish.yaml@main | ||
| uses: rainlanguage/rainix/.github/workflows/rainix-tag-release.yaml@main | ||
| with: | ||
| soldeer-package: rain-deploy | ||
| snapshot-generate-cmd: forge script ./script/Build.sol --sig "cutRelease()" && forge fmt | ||
| secrets: inherit | ||
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,2 @@ | ||
| forge-std-1.16.1/=dependencies/forge-std-1.16.1/ | ||
| rain-sol-codegen-0.1.6/=dependencies/rain-sol-codegen-0.1.6/ |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.