-
Notifications
You must be signed in to change notification settings - Fork 183
Cairo: Support v3.0.0-alpha.1 #638
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
Cairo: Support v3.0.0-alpha.1 #638
Conversation
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
WalkthroughBumps Cairo OpenZeppelin Contracts from 3.0.0-alpha.0 to 3.0.0-alpha.1, updates import paths to the new openzeppelin::interfaces namespaces (IUpgradeable, EthPublicKey), updates version constants and test Scarb.toml, and adjusts the Scarb.toml updater to write the OpenZeppelin dependency as a GitHub tag for alpha builds. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev
participant Updater as updateScarbToml()
participant FS as FileSystem
Dev->>Updater: run updateScarbToml(path)
Updater->>Dev: console.log("Updating Scarb.toml...")
Updater->>FS: read Scarb.toml
FS-->>Updater: content
rect rgba(200,230,255,0.25)
note right of Updater: Apply replacements\n- edition, cairo, scarb, starknet\n- contractsVersion & compatible semver\n- For alpha: replace openzeppelin dep with GitHub tag v{contractsVersion}
Updater->>Updater: transform content
end
Updater->>FS: write updated Scarb.toml
FS-->>Updater: success
Updater-->>Dev: done
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Tip You can disable the changed files summary in the walkthrough.Disable the ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
User descriptionUpdates the interface dependencies. PR TypeEnhancement Description
Diagram Walkthroughflowchart LR
A["Version Update"] --> B["Interface Path Changes"]
A --> C["Scarb.toml Updates"]
B --> D["Account Interface"]
B --> E["Upgrades Interface"]
C --> F["GitHub Tag Handling"]
|
| Relevant files | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Enhancement |
| ||||||||
| Dependencies |
|
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/core/cairo_alpha/src/scripts/update-scarb-project.ts (1)
49-54: Await async writes to avoid race conditions and intermittent exits.writeLibCairo and updateScarbToml are async but not awaited. While Node usually keeps the event loop alive, failing to await is brittle and can cause non-deterministic behavior.
Apply:
// Generate lib.cairo file - writeLibCairo(contractNames); + await writeLibCairo(contractNames); // Update Scarb.toml - updateScarbToml(); + await updateScarbToml();Also applies to: 56-60
🧹 Nitpick comments (3)
packages/core/cairo_alpha/src/utils/version.ts (1)
19-19: Optional: derive compatibleContractsSemver from contractsVersion to avoid drift.Prevents accidental mismatch on future bumps while preserving “pinned for alpha, range for stable” semantics.
Apply within this file:
-export const compatibleContractsSemver = '3.0.0-alpha.1'; +// Pin alpha builds exactly; use range for stable releases. +export const compatibleContractsSemver = + contractsVersion.includes('alpha') ? contractsVersion : `^${contractsVersion}`;packages/core/cairo_alpha/src/scripts/update-scarb-project.ts (2)
128-128: Bubble up script errors at the entrypoint.Surface failures from async tasks and exit non-zero for CI clarity.
Apply:
-updateScarbProject(); +updateScarbProject().catch(err => { + console.error(err); + process.exit(1); +});
66-75: Minor: broaden the openzeppelin version matcher if you keep registry-style updates.If you decide to retain a registry-style fallback, account for pre-release identifiers (e.g., -alpha.1).
For a simple matcher (if needed), prefer:
- .replace(/openzeppelin = "\d+\.\d+\.\d+"/, `openzeppelin = "${contractsVersion}"`); + .replace(/openzeppelin\s*=\s*"(?:\d+\.\d+\.\d+(?:-[^"]+)?)"/, `openzeppelin = "${contractsVersion}"`);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (10)
-
packages/core/cairo_alpha/src/account.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/contract.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/custom.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/erc1155.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/erc20.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/erc721.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/governor.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/multisig.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/src/vesting.test.ts.snapis excluded by!**/*.snap -
packages/core/cairo_alpha/test_project/Scarb.lockis excluded by!**/*.lock
📒 Files selected for processing (14)
-
packages/core/cairo_alpha/src/account.test.ts.md(26 hunks) -
packages/core/cairo_alpha/src/account.ts(1 hunks) -
packages/core/cairo_alpha/src/contract.test.ts.md(9 hunks) -
packages/core/cairo_alpha/src/custom.test.ts.md(8 hunks) -
packages/core/cairo_alpha/src/erc1155.test.ts.md(17 hunks) -
packages/core/cairo_alpha/src/erc20.test.ts.md(17 hunks) -
packages/core/cairo_alpha/src/erc721.test.ts.md(19 hunks) -
packages/core/cairo_alpha/src/governor.test.ts.md(19 hunks) -
packages/core/cairo_alpha/src/multisig.test.ts.md(5 hunks) -
packages/core/cairo_alpha/src/scripts/update-scarb-project.ts(1 hunks) -
packages/core/cairo_alpha/src/set-upgradeable.ts(1 hunks) -
packages/core/cairo_alpha/src/utils/version.ts(2 hunks) -
packages/core/cairo_alpha/src/vesting.test.ts.md(6 hunks) -
packages/core/cairo_alpha/test_project/Scarb.toml(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#623
File: packages/core/cairo_alpha/test_project/Scarb.toml:5-10
Timestamp: 2025-08-12T14:48:12.771Z
Learning: In the OpenZeppelin contracts-wizard repository, the cairo_alpha package (packages/core/cairo_alpha) and the stable cairo package (packages/core/cairo) are separate implementations that do not need to have matching dependency versions. The alpha version uses newer Cairo/Scarb/OpenZeppelin versions for testing, while the stable version maintains compatibility with stable releases.
Learnt from: ernestognw
PR: OpenZeppelin/contracts-wizard#609
File: .changeset/sour-hats-grow.md:2-6
Timestamp: 2025-08-15T22:49:25.653Z
Learning: In OpenZeppelin contracts-wizard, breaking changes that have concrete migration paths (like dependency migrations from Community Contracts to OpenZeppelin Contracts) can be handled as minor version bumps instead of major bumps, per maintainer ernestognw's versioning policy.
📚 Learning: 2025-08-12T14:48:12.771Z
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#623
File: packages/core/cairo_alpha/test_project/Scarb.toml:5-10
Timestamp: 2025-08-12T14:48:12.771Z
Learning: In the OpenZeppelin contracts-wizard repository, the cairo_alpha package (packages/core/cairo_alpha) and the stable cairo package (packages/core/cairo) are separate implementations that do not need to have matching dependency versions. The alpha version uses newer Cairo/Scarb/OpenZeppelin versions for testing, while the stable version maintains compatibility with stable releases.
Applied to files:
packages/core/cairo_alpha/src/contract.test.ts.mdpackages/core/cairo_alpha/src/account.tspackages/core/cairo_alpha/src/set-upgradeable.tspackages/core/cairo_alpha/test_project/Scarb.tomlpackages/core/cairo_alpha/src/utils/version.tspackages/core/cairo_alpha/src/erc721.test.ts.mdpackages/core/cairo_alpha/src/erc20.test.ts.mdpackages/core/cairo_alpha/src/vesting.test.ts.mdpackages/core/cairo_alpha/src/custom.test.ts.mdpackages/core/cairo_alpha/src/erc1155.test.ts.mdpackages/core/cairo_alpha/src/scripts/update-scarb-project.tspackages/core/cairo_alpha/src/account.test.ts.mdpackages/core/cairo_alpha/src/multisig.test.ts.mdpackages/core/cairo_alpha/src/governor.test.ts.md
🧬 Code Graph Analysis (2)
packages/core/cairo_alpha/src/utils/version.ts (2)
packages/core/cairo_alpha/src/index.ts (2)
contractsVersion(26-26)compatibleContractsSemver(26-26)packages/core/cairo/src/utils/version.ts (2)
contractsVersion(4-4)compatibleContractsSemver(19-19)
packages/core/cairo_alpha/src/scripts/update-scarb-project.ts (1)
packages/core/cairo_alpha/src/utils/version.ts (4)
edition(10-10)cairoVersion(11-11)scarbVersion(12-12)contractsVersion(4-4)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: validate-cairo-alpha
- GitHub Check: build (solidity, default)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (19)
packages/core/cairo_alpha/test_project/Scarb.toml (1)
10-10: Alpha.1 pin verified — no stale alpha.0All checks passed and the Scarb.toml pin and updater logic align with v3.0.0-alpha.1:
- packages/core/cairo_alpha/test_project/Scarb.toml now reads
openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts", tag = "v3.0.0-alpha.1" }- packages/core/cairo_alpha/src/utils/version.ts exports
export const contractsVersion = '3.0.0-alpha.1';- packages/core/cairo_alpha/src/scripts/update-scarb-project.ts replaces the tag via
updatedContent.replace(/(openzeppelin = {[^}]*tag = )"[^"]+"/, \$1"v$ {contractsVersion}"`)`- No lingering
3.0.0-alpha.0references in the alpha test projectpackages/core/cairo_alpha/src/set-upgradeable.ts (1)
22-22: No stale imports incairo_alpha— merge approved
Scan confirms zero occurrences of the oldopenzeppelin::upgrades::interface::IUpgradeablein packages/core/cairo_alpha. The only remaining matches live inpackages/core/cairo/src/*.test.ts.md, which are outside this PR’s scope.packages/core/cairo_alpha/src/contract.test.ts.md (1)
12-12: Snapshot headers bumped to alpha.1 — LGTMPure textual snapshot updates to reflect 3.0.0-alpha.1. No behavioral impact.
Also applies to: 27-27, 47-47, 67-67, 92-92, 117-117, 157-157, 198-198, 240-240
packages/core/cairo_alpha/src/vesting.test.ts.md (1)
12-12: Vesting snapshots updated to alpha.1 — LGTMText-only version header changes in snapshots; consistent with the OZ Cairo bump.
Also applies to: 67-67, 122-122, 177-177, 232-232, 302-302
packages/core/cairo_alpha/src/multisig.test.ts.md (2)
12-12: Version header bumped to alpha.1 — LGTMSnapshot headers correctly reflect OpenZeppelin Contracts for Cairo 3.0.0-alpha.1 across variants.
Also applies to: 75-75, 138-138, 201-201, 264-264
17-17: All IUpgradeable imports updated in cairo_alpha; no stale imports remain there
Found the oldopenzeppelin::upgrades::interface::IUpgradeableonly inpackages/core/cairo/src(the pre-alpha/v2 code), which is expected. The alpha package (packages/core/cairo_alpha/src) exclusively usesopenzeppelin::interfaces::upgrades::IUpgradeable. Versions are pinned to3.0.0-alpha.1in Scarb.toml, Scarb.lock, andversion.ts.packages/core/cairo_alpha/src/erc1155.test.ts.md (2)
12-12: Version headers updated to alpha.1 — LGTMAll affected snapshot headers consistently reflect 3.0.0-alpha.1.
Also applies to: 84-84, 176-176, 285-285, 362-362, 487-487, 613-613, 740-740, 887-887, 980-980, 1090-1090, 1216-1216, 1330-1330, 1460-1460, 1670-1670
89-89: IUpgradeable import path updated — LGTMImports correctly use openzeppelin::interfaces::upgrades::IUpgradeable across upgradeable variants. No functional changes in the snippets.
Also applies to: 185-185, 290-290, 367-367, 493-493, 618-618, 749-749, 893-893, 985-985, 1097-1097, 1221-1221, 1337-1337, 1681-1681
packages/core/cairo_alpha/src/erc721.test.ts.md (2)
12-12: Version headers bumped to alpha.1 — LGTMConsistent update across all ERC721 snapshot variants.
Also applies to: 58-58, 135-135, 212-212, 299-299, 413-413, 515-515, 614-614, 739-739, 858-858, 935-935, 1030-1030, 1138-1138, 1237-1237, 1350-1350, 1473-1473, 1534-1534, 1657-1657, 1780-1780
63-63: IUpgradeable import path switched to interfaces — LGTMAll upgradeable snapshots now import openzeppelin::interfaces::upgrades::IUpgradeable as expected for alpha.1.
Also applies to: 140-140, 218-218, 305-305, 419-419, 521-521, 619-619, 747-747, 941-941, 1037-1037, 1143-1143, 1245-1245, 1479-1479
packages/core/cairo_alpha/src/custom.test.ts.md (2)
12-12: Version headers updated to alpha.1 — LGTMHeaders are consistent and correctly updated across custom snapshots.
Also applies to: 27-27, 88-88, 174-174, 235-235, 250-250, 311-311, 388-388
32-32: IUpgradeable import path updated — LGTMSwitched to openzeppelin::interfaces::upgrades::IUpgradeable where applicable.
Also applies to: 93-93, 179-179, 255-255, 318-318
packages/core/cairo_alpha/src/erc20.test.ts.md (2)
12-12: Version headers bumped to alpha.1 — LGTMAll ERC20 snapshot headers correctly reflect 3.0.0-alpha.1.
Also applies to: 52-52, 123-123, 203-203, 311-311, 439-439, 551-551, 624-624, 695-695, 776-776, 877-877, 992-992, 1108-1108, 1193-1193, 1337-1337, 1501-1501
57-57: IUpgradeable import path updated — LGTMUpgrade-related imports now point to openzeppelin::interfaces::upgrades::IUpgradeable in all relevant variants.
Also applies to: 128-128, 209-209, 319-319, 444-444, 557-557, 630-630, 785-785, 883-883, 999-999, 1344-1344, 1512-1512
packages/core/cairo_alpha/src/account.test.ts.md (2)
936-938: Update EthPublicKey import pathThe RG search shows that
EthPublicKeyis still being imported from the old pathopenzeppelin::account::interface::EthPublicKeyin multiple places. These need to be updated to the new path underopenzeppelin::interfaces::accounts.Affected locations (all in packages/core/cairo/src/account.test.ts.md):
- Line 936
- Line 1014
- Line 1071
- Line 1149
- Line 1205
- Line 1277
- Line 1329
- Line 1410
- Line 1484
- Line 1558
- Line 1634
- Line 1710
- Line 1788
Example diff for each occurrence:
- use openzeppelin::account::interface::EthPublicKey; + use openzeppelin::interfaces::accounts::EthPublicKey;
12-12: All snapshot headers updated to 3.0.0-alpha.1 — no stale alpha.0 found
Ran the providedrg -nP 'Compatible with OpenZeppelin Contracts for Cairo\s+3\.0\.0-alpha\.0'check; zero matches across the repo. Ready to merge.packages/core/cairo_alpha/src/governor.test.ts.md (2)
27-27: IUpgradeable import path moved to interfaces — LGTM.Use of openzeppelin::interfaces::upgrades::IUpgradeable matches the new module layout.
Also applies to: 287-287, 429-429, 571-571, 713-713, 855-855, 1006-1006, 1148-1148, 1290-1290
12-12: Governor snapshots updated to 3.0.0-alpha.1 across all variants
Ran a search for any remaining “3.0.0-alpha.0” headers in packages/core/cairo_alpha/src/governor.test.ts.md – none found. All snapshots are clean.packages/core/cairo_alpha/src/utils/version.ts (1)
4-6: Alpha version bump wired correctly.contractsVersion and compatibleContractsSemver are pinned to 3.0.0-alpha.1 as expected for alpha builds. contractsVersionTag will follow automatically.
Also applies to: 19-19
|
/improve |
PR Code Suggestions ✨No code suggestions found for the PR. |
|
@coderabbitai Add learning: Changes within |
|
Tip For best results, initiate chat on the files or code changes. @ericglau I've noted this important procedural requirement for future reviews. I can see that this PR already follows this practice by including a changelog entry in ✏️ Learnings added
🧠 Learnings used |
|
@coderabbitai Please open a new PR for the suggestion, applying to both cairo and cairo_alpha folders: writeLibCairo and updateScarbToml are async but not awaited. While Node usually keeps the event loop alive, failing to await is brittle and can cause non-deterministic behavior. Apply: // Generate lib.cairo file
- writeLibCairo(contractNames);
+ await writeLibCairo(contractNames);
// Update Scarb.toml
- updateScarbToml();
+ await updateScarbToml(); |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chainI'll help you create a new PR to apply the async/await fix to both cairo and cairo_alpha folders. Let me first examine the repository structure and the current implementation in both packages. 🏁 Script executed: Length of output: 8514 Perfect! I can see both files exist and have the same async/await issue. Both files are calling 🏁 Script executed: Length of output: 3652 Great! The changes have been successfully applied and pushed to the new branch. Now I'll create the pull request using the GitHub CLI. 🏁 Script executed: Length of output: 1377 @ericglau Perfect! I've successfully created a new pull request that applies the async/await fix to both cairo and cairo_alpha packages. PR Created: #639 What was done:
The PR ensures that both async operations are properly awaited, preventing potential race conditions where the script might exit before file operations complete, or where files might be written in an unpredictable order. 🐰✨ Happy to help keep the codebase robust and race-condition free! 🧠 Learnings used |
ericglau
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
immrsd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
|
Hey @ericglau, should I go ahead and merge the PR? Asking first in case there's a specific flow from AI integration I might be missing and should happen first. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
packages/core/cairo_alpha/src/erc20.test.ts.snapis excluded by!**/*.snap
📒 Files selected for processing (1)
packages/core/cairo_alpha/src/erc20.test.ts.md(17 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#638
File: packages/core/cairo_alpha/src/account.test.ts.md:18-18
Timestamp: 2025-08-19T15:21:06.953Z
Learning: In the OpenZeppelin contracts-wizard repository, the cairo_alpha package (packages/core/cairo_alpha) and the stable cairo package (packages/core/cairo) are separate implementations that do not need to have the same code or matching dependency versions. The cairo_alpha package targets dependencies that are either newer than or the same as the stable cairo package, allowing it to test and support newer Cairo/Scarb/OpenZeppelin versions while the stable version maintains compatibility with stable releases.
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#638
File: packages/core/cairo_alpha/src/scripts/update-scarb-project.ts:62-79
Timestamp: 2025-08-19T15:18:09.377Z
Learning: In the cairo_alpha package (packages/core/cairo_alpha), the OpenZeppelin dependency in test_project/Scarb.toml is expected to be in { git, tag } form rather than a simple registry-style string, so the update script only needs to update the tag value, not convert between formats.
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#0
File: :0-0
Timestamp: 2025-08-19T15:31:24.953Z
Learning: Changes within packages/core/cairo_alpha should have a corresponding changelog entry in packages/core/cairo_alpha/CHANGELOG.md under the Unreleased section to track these changes. When cairo_alpha is eventually promoted to cairo (stable), these entries will be moved into a changeset for cairo (stable).
Learnt from: ernestognw
PR: OpenZeppelin/contracts-wizard#609
File: .changeset/sour-hats-grow.md:2-6
Timestamp: 2025-08-15T22:49:25.653Z
Learning: In OpenZeppelin contracts-wizard, breaking changes that have concrete migration paths (like dependency migrations from Community Contracts to OpenZeppelin Contracts) can be handled as minor version bumps instead of major bumps, per maintainer ernestognw's versioning policy.
📚 Learning: 2025-08-19T15:18:09.377Z
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#638
File: packages/core/cairo_alpha/src/scripts/update-scarb-project.ts:62-79
Timestamp: 2025-08-19T15:18:09.377Z
Learning: In the cairo_alpha package (packages/core/cairo_alpha), the OpenZeppelin dependency in test_project/Scarb.toml is expected to be in { git, tag } form rather than a simple registry-style string, so the update script only needs to update the tag value, not convert between formats.
Applied to files:
packages/core/cairo_alpha/src/erc20.test.ts.md
📚 Learning: 2025-08-19T15:21:06.953Z
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#638
File: packages/core/cairo_alpha/src/account.test.ts.md:18-18
Timestamp: 2025-08-19T15:21:06.953Z
Learning: In the OpenZeppelin contracts-wizard repository, the cairo_alpha package (packages/core/cairo_alpha) and the stable cairo package (packages/core/cairo) are separate implementations that do not need to have the same code or matching dependency versions. The cairo_alpha package targets dependencies that are either newer than or the same as the stable cairo package, allowing it to test and support newer Cairo/Scarb/OpenZeppelin versions while the stable version maintains compatibility with stable releases.
Applied to files:
packages/core/cairo_alpha/src/erc20.test.ts.md
📚 Learning: 2025-08-19T15:31:24.953Z
Learnt from: ericglau
PR: OpenZeppelin/contracts-wizard#0
File: :0-0
Timestamp: 2025-08-19T15:31:24.953Z
Learning: Changes within packages/core/cairo_alpha should have a corresponding changelog entry in packages/core/cairo_alpha/CHANGELOG.md under the Unreleased section to track these changes. When cairo_alpha is eventually promoted to cairo (stable), these entries will be moved into a changeset for cairo (stable).
Applied to files:
packages/core/cairo_alpha/src/erc20.test.ts.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: Redirect rules - openzeppelin-contracts-wizard
- GitHub Check: Header rules - openzeppelin-contracts-wizard
- GitHub Check: Pages changed - openzeppelin-contracts-wizard
- GitHub Check: validate-cairo-alpha
- GitHub Check: build (solidity, default)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (1)
packages/core/cairo_alpha/src/erc20.test.ts.md (1)
57-57: Import path migration success in Cairo α package
All instances ofopenzeppelin::upgrades::interface::IUpgradeableinpackages/core/cairo_alphahave been replaced withopenzeppelin::interfaces::upgrades::IUpgradeable. Non-upgradeable snapshots underpackages/core/cairoretain the original import as intended.
Updates the interface dependencies.