Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Remove KeyedAccount in builtin program "BPF loader"#24381

Merged
Lichtso merged 7 commits intosolana-labs:masterfrom
Lichtso:refactor/remove_keyed_account_in_bpf_loader
Apr 19, 2022
Merged

Remove KeyedAccount in builtin program "BPF loader"#24381
Lichtso merged 7 commits intosolana-labs:masterfrom
Lichtso:refactor/remove_keyed_account_in_bpf_loader

Conversation

@Lichtso
Copy link
Copy Markdown
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
Copy Markdown

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
Copy Markdown
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 subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant