contracts: replace bare panic with typed ContractError::AlreadyInitia… - #1136
Open
Silver36-ship-it wants to merge 1 commit into
Open
contracts: replace bare panic with typed ContractError::AlreadyInitia…#1136Silver36-ship-it wants to merge 1 commit into
Silver36-ship-it wants to merge 1 commit into
Conversation
|
@Silver36-ship-it is attempting to deploy a commit to the ritik4ever's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@Silver36-ship-it Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
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.
Closes #753
…lized; add test
Description
Type of change
Security Checklist
Please review the SECURITY_CHECKLIST.md and check off any items that apply. Reviewers must sign off on these items before merge.
Title: Replace bare panic in
initialize()with typedContractError::AlreadyInitializedPR Summary
panic!("already initialized")in the contractinitialize()guard with a typed contract error and add a unit test asserting the typed error is returned on a second initialization attempt.AlreadyInitializedinstead of an unstructured panic.Why
ContractErrorallows deterministic assertions in tests and clearer runtime semantics.Files changed
ContractErrorenum,panic_error()helper, and replace the bare panic ininitialize().test_initialize_twice_returns_already_initialized()asserting a secondinitialize()call yields theAlreadyInitializederror.Implementation details
#[contracterror]enumContractErrorincludingAlreadyInitialized(and other named variants used elsewhere).fn panic_error(err: ContractError) -> ! { panic!("{:?}", err); }to unify existing error pattern usage.panic!("already initialized");with:
panic_error(ContractError::AlreadyInitialized);test_initialize_twice_returns_already_initialized()— registers the contract, callsinitialize()twice, and uses#[should_panic(expected = "AlreadyInitialized")].Tests
initialize()call panics with messageAlreadyInitialized.Compatibility & Migration
initialize()is called a second time (returns typed error instead of untyped panic).Risk / Impact
AlreadyInitialized).Reviewer checklist
ContractErrorvariant naming matches project conventions.panic_error()usage is consistent with other error paths (preserves existing panic message format).cargo testin contracts to validate no regressions.