Skip to content
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

Remove KeyedAccount in builtin program "BPF loader" #24381

Merged

Conversation

Lichtso
Copy link
Contributor

@Lichtso Lichtso commented Apr 15, 2022

Problem

Builtin programs still use KeyedAccount.

Summary of Changes

  • Replaces KeyedAccount by BorrowedAccount.
  • Replaces keyed_account.signer_key() by instruction_context.is_signer().
  • Uses transaction_context.get_key_of_account_at_index() when only the key is needed.

@codecov
Copy link

codecov bot commented Apr 15, 2022

Codecov Report

Merging #24381 (44b8b64) into master (b9caa8c) will decrease coverage by 0.0%.
The diff coverage is 81.7%.

@@            Coverage Diff            @@
##           master   #24381     +/-   ##
=========================================
- Coverage    82.1%    82.1%   -0.1%     
=========================================
  Files         582      582             
  Lines      162041   162462    +421     
=========================================
+ Hits       133132   133435    +303     
- Misses      28909    29027    +118     

@mergify
Copy link
Contributor

mergify bot commented Apr 15, 2022

@codecov[bot] is not allowed to run commands

@Lichtso Lichtso merged commit 998cdd1 into solana-labs:master Apr 19, 2022
@Lichtso Lichtso deleted the refactor/remove_keyed_account_in_bpf_loader branch April 19, 2022 09:35
jeffwashington pushed a commit to jeffwashington/solana that referenced this pull request Jun 29, 2022
)

* Uses transaction_context.get_key_of_account_at_index() when only the key is needed.

* Uses "!instruction_context.is_signer()" instead of ".signer_key().is_none()".

* Uses instruction_context.get_index_in_transaction() to detect account aliasing.

* Makes sure that there is only one KeyedAccount at a time.
Everywhere except for DeployWithMaxDataLen and Upgrade.

* Makes sure that there is only one KeyedAccount at a time.
In DeployWithMaxDataLen and Upgrade.

* Replaces KeyedAccount by BorrowedAccount.

* Removes unused code.
jeffwashington pushed a commit to jeffwashington/solana that referenced this pull request Jun 29, 2022
)

* Uses transaction_context.get_key_of_account_at_index() when only the key is needed.

* Uses "!instruction_context.is_signer()" instead of ".signer_key().is_none()".

* Uses instruction_context.get_index_in_transaction() to detect account aliasing.

* Makes sure that there is only one KeyedAccount at a time.
Everywhere except for DeployWithMaxDataLen and Upgrade.

* Makes sure that there is only one KeyedAccount at a time.
In DeployWithMaxDataLen and Upgrade.

* Replaces KeyedAccount by BorrowedAccount.

* Removes unused code.
jeffwashington pushed a commit to jeffwashington/solana that referenced this pull request Jun 30, 2022
)

* Uses transaction_context.get_key_of_account_at_index() when only the key is needed.

* Uses "!instruction_context.is_signer()" instead of ".signer_key().is_none()".

* Uses instruction_context.get_index_in_transaction() to detect account aliasing.

* Makes sure that there is only one KeyedAccount at a time.
Everywhere except for DeployWithMaxDataLen and Upgrade.

* Makes sure that there is only one KeyedAccount at a time.
In DeployWithMaxDataLen and Upgrade.

* Replaces KeyedAccount by BorrowedAccount.

* Removes unused code.
jeffwashington pushed a commit to jeffwashington/solana that referenced this pull request Jun 30, 2022
)

* Uses transaction_context.get_key_of_account_at_index() when only the key is needed.

* Uses "!instruction_context.is_signer()" instead of ".signer_key().is_none()".

* Uses instruction_context.get_index_in_transaction() to detect account aliasing.

* Makes sure that there is only one KeyedAccount at a time.
Everywhere except for DeployWithMaxDataLen and Upgrade.

* Makes sure that there is only one KeyedAccount at a time.
In DeployWithMaxDataLen and Upgrade.

* Replaces KeyedAccount by BorrowedAccount.

* Removes unused code.
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.

1 participant