Skip to content

Conversation

jberthold
Copy link
Member

@jberthold jberthold commented Oct 6, 2025

Update proof status table (already done in github issue)

  • Update tests.md to to a list of proofs to run

Split withdraw_excess_lamports proof into cases for Account and Mint (and prepare Multisig)

  • comment out Mint-related code in withdraw_excess_lamports proof for initial test (fails due to Cheat code for Sysvar::<Rent>::get #37 )
  • duplicate proof for Mint case, adapt pre- and post-conditions
  • duplicate proof for Multisig case, adapt pre- and post-conditions
  • REVERTED Stubbed multisig_is_initialised with sentinel error value, this removes conditional compilation and allows concrete tests to pass. - Need feedback on this approach

Split set_authority proof into cases for Account and Mint

  • Both cases split into separate harnesses

Bug fix concrete tests:

  • Burn{Checked} assumed owner of AccountInfo would be the owner of Account See INVESTIGATION: AccountInfo.owner != Account.owner #38
  • CloseAccount test for when accounts were the same was buggy
  • All invalid tests are commented out as our cheatcodes assume validity in K, but this does nothing concretely so the attempt to access init state panics - we can make harnesses to filter these cases out.

@jberthold jberthold requested a review from dkcumming October 6, 2025 04:03
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to modify the PR and replace this file by a simple list of test names. Keeping all results up to date seems not very practical anyway.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the sound of that

@dkcumming dkcumming changed the title 29 split withdraw excess proof, update proof table 29 split withdraw excess and set_authority proofs, update proof table Oct 7, 2025
Comment on lines 3685 to 3688
let mut multisig_is_initialised: Result<bool, ProgramError> = Err(ProgramError::Custom(999));
if accounts[2].data_len() == Multisig::LEN {
multisig_is_initialised = get_multisig(&accounts[2]).is_initialized();
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jberthold what do you think of this? I wanted the concrete tests to run the multisig signers case and this got it to run successfully. I think this might be preferable to the feature flag.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted for now

@dkcumming dkcumming requested a review from tothtamas28 October 7, 2025 08:16
@jberthold jberthold marked this pull request as ready for review October 8, 2025 01:47
@jberthold jberthold merged commit 363954a into proofs Oct 8, 2025
@jberthold jberthold deleted the 29-split-withdraw-excess-proof branch October 8, 2025 02:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants