Conversation
CONTRIBUTING.md still called main the release branch that deploys key off, and the release-readiness checklist only named main. The stack now integrates on develop, releases to testnet from sandbox, which only the release coordinator writes through the develop to sandbox release pull request, and marks production with main, which the production coordinator moves by fast-forward to a release commit of sandbox. Say so in both documents so nobody merges into sandbox or main by hand, and keep the statement that moving a branch never deploys a contract. Documentation only; CI already runs on every push, so the workflow is unchanged. No contract, ABI or deployment change: history-compatible, no new epoch.
DeployOutcomeSplitterFactory and DeployOutcomeSplitter required chain 84532 and StandardRailCircleUSDC pinned the Base Sepolia chain id and USDC address, so the standard rail could not be deployed to Base through reviewed scripts. StandardRailCircleUSDC now names the two supported chains, Base (8453) and Base Sepolia (84532), returns the reviewed canonical Circle USDC for each, and refuses every other chain and every other token; the decimals, pause and blacklist checks are unchanged. The deploy scripts bind a splitter to the executing chain and that chain's reviewed token, and WriteOutcomeSplitterManifest follows through the same library, so a reviewed init code hash prepared for the other chain or for another token is refused. The Base USDC address 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 is the reviewed 8453 entry of REVIEWED_USDC_DOMAINS in the gateway's src/payment/usdcDomain.ts (daski-gateway develop at 1c3ecc1), checksummed with cast. The Base Sepolia address is unchanged. DeployOutcomeSplitter now carries its inputs in a memory struct so it also compiles without the IR pipeline: coverage builds compile whatever the tests import, and this script had no test before. Its environment variable names, read order, checks and returned address are unchanged. New tests run both deploy scripts under both chain ids and refuse an unsupported chain and a review made for another chain or token; the library tests cover both chains the same way. Deployment tooling and README only. No contract, ABI or deployment change: history-compatible, no new epoch.
…istries The genesis scripts for AgentIndex, ValidationRegistry, ProviderRegistry and ServiceRegistry were removed on 2026-08-12 in 3372e00 together with the retired payment stack, so the registries could not be deployed to a new chain through reviewed scripts. DeployMarketplaceRegistries recovers the registry part of the old Deploy.s.sol and nothing of the payment stack: no router, adapters, mock token, mock sanctions list, facilitator, payment treasury or commission. It runs on Base and Base Sepolia only and deploys the four registries as ERC-1967 UUPS proxies with the initializer arguments the current contracts take. The identity registry, sanctions oracle, treasury and listing fee are environment inputs; the listing-fee token is the reviewed Circle USDC of the executing chain. The final admin must pass the existing ReputationSafeValidation rules, so an externally owned account or a 1-of-1 Safe is refused on both chains. The broadcaster comes from vm.startBroadcast() without a key, so a hardware wallet or keystore can sign and no script reads a private key. It is only the bootstrap admin: each proxy is paused, given its guardian and offered to the Safe right after it is created, and the script ends, like DeployReputationStorage, with paused proxies whose pending admin is the Safe and a readiness check of that state. Only the Safe can accept and then unpause; after acceptance the broadcaster holds no role. VerifyMarketplaceRegistries is a view-only check for the state after the Safe has accepted: code and an ERC-1967 implementation behind each proxy, the expected registry type at each address, one identity registry and sanctions oracle, the reviewed token, ServiceRegistry wired to the given ProviderRegistry, the reviewed Safe as admin and no pending admin. DeploySafe and ExecuteGovernanceBatches are not restored; neither script needs them. Tests deploy on the local EVM under both chain ids with a Safe stub that satisfies the validation, cover the refusals, show that the broadcaster keeps no authority once the Safe has accepted, and run the verifier against a fresh and a tampered deployment. The genesis script was also simulated, and the verifier run, against a Base Sepolia fork without sending a transaction. Deployment tooling, tests and documentation only. No contract, ABI or deployment change: history-compatible, no new epoch.
…in the hand-off The commits that moved this repository to the develop, sandbox and main model did not say what they leave for the owner. The release agent reads nothing but commits, so that part is declared here, on a commit that changes no file. Both release coordinators list an owner task once, however many repositories declare it. The genesis script added in fccee52 takes the identity registry and the sanctions oracle as inputs, and until the Safe accepts, the broadcaster is still admin of the paused proxies. Both are the owner's to settle before the script is used on Base. Release-Owner-Task: Create the production and rehearsal release GitHub Apps and install them on the five shipped repositories, see the release-apps-and-rulesets task in deploy-mainnet Release-Owner-Task: Before the registry genesis script is used on Base, decide whether to pin the identity registry and sanctions oracle for 8453 instead of passing them as inputs Release-Owner-Task: When the genesis script has run, check admin, pending admin, the paused flag and the implementations on chain before the Safe accepts Release-Rollback: deployment scripts, tests and documentation only; nothing is deployed or upgraded by this release, so nothing needs undoing
Contributor
Author
|
Closed by the branch cutover: releases now merge into |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Release daski v0.11.5 from develop b1e9f63.