Conversation
- Rename Cobalt nav titles per B20 team feedback: "Beryl to Cobalt Migration" -> "ERC-8056 Conformant Multiplier", "Seize Surface and burnBlocked Deprecation" -> "Seize Functionality" - Add the three Denim changelog entries from base-std@1505323 to the Upgrades > Denim group: token receiver, transfer executor enforcement, NOT / invert policies - Add a B20 Improvements accordion to the Denim overview and a Denim section to the B20 changelog summary - Regenerate llms.txt, llms-full.txt, AGENTS.md Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Collaborator
🟡 Heimdall Review Status
|
- NOT policy: drop "no extra SLOAD" claim (inverted path runs the base existence guard), add built-in child row, fail-closed example, and compilable composite example - Executor: Denim revert order uses invalid-receiver; compilable allowlist example; clarify linked reference pages are pre-Denim - Token receiver: spec title, IB20Asset.batchMint scope, pre-Denim link note - Changelog summary: acknowledge breaking Denim entries, remove em-dashes - Denim overview: fix doubled "and" Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
multiplier() and scaledBalanceOf(address) are "unchanged (canonical name)" in base-std changelog/02_Cobalt_B20Asset_multiplier.md, not deprecated; uiMultiplier() and balanceOfUI(address) are their aliases. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This branch was successfully deployed
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.
What changed? Why?
Feedback from the B20 team (Stephan) on the Upgrades sidebar.
Cobalt: renamed pages
Only the titles change. URLs stay the same, so no redirects are needed.
Cobalt multiplier page: statuses matched to base-std. The mapping table labeled
multiplier()andscaledBalanceOf(address)"deprecated-name-kept". base-std marks both "unchanged (canonical name)", withuiMultiplier()/balanceOfUI(address)as ERC-8056 aliases. The table and migration paragraph now say so. Found in review of #2026. B20 team: please confirm.Denim: 3 B20 pages that were missing
The base-std specs in
changelog/03_Denim_*(as of base-std@1505323) had no pages in Upgrades > Denim:03-denim-b20-token-receiver: transfer, mint, and seize to the token's own address revertInvalidReceiver. Breaking.03-denim-b20-transfer-executor-enforcement:TRANSFER_EXECUTOR_POLICYapplies to every transfer path. Breaking for tokens that already set a restrictive executor policy.03-denim-policyregistry-not-policy: bit 63 of a policy ID invertsisAuthorized. Non-breaking.Also:
specifications/b20/changelog): new Denim ordinal row and sectionllms.txt,llms-full.txt,AGENTS.md: regeneratedNotes to reviewers
BLOCKLISTand calls the result "not sanctioned". Inverting a blocklist actually authorizes only sanctioned accounts. This page uses anALLOWLISTof sanctioned addresses, which gives the intended result. The same fix should go upstream in base-std.SLOAD".MockPolicyRegistry._isAuthorizedruns_policyExists(base)before recursing, so an inverted simple policy reads the base record and then the membership bit. The page now describes the existence guard and drops the no-extra-SLOADclaim. The spec text should be corrected upstream, or the mock changed if the claim is the intended design.ALWAYS_ALLOW_ID/ALWAYS_BLOCK_IDas composite children (InvalidChildPolicy, pertest_createCompositePolicy_revert_builtinChild).transfer_revertOrder.t.solcall that step INVALID-RECEIVER at Denim, so the page uses invalid-receiver.[transferAgent]) and bare enum names (ALLOWLIST), which don't compile againstIPolicyRegistry. The pages useaddress[]/uint64[]memory arrays andIPolicyRegistry.PolicyType.*.transfer,seize-with-memo, andtransfer-executor-policystill describe pre-Denim behavior until docs: feat(b20): reject the token itself as a credit recipient (base-std@1505323) #1991 / docs: feat(policy): enforce TRANSFER_EXECUTOR_POLICY on every transfer path (base-std@253bb15) #1968 land. The changelog pages now say so instead of calling them "current".cast sig:invertedPolicyId(uint64)=0x6b468933,InvalidReceiver(address)=0x9cfea583.How has it been tested?
node scripts/validate-docs-structure.js: passes (nav, orphans, redirects, route table)node scripts/lint-mdx.js: 0 errors on every changed page.--check-navshows 6 file-not-found errors that are already on master and unrelated to this PR.Screenshots
TODO: run /screenshot on the Denim and Cobalt sidebar groups and the 3 new pages.