Remove credit-only account handling (#6726)

* Renaming
- credit-only/credit-debit to read-only/read-write
- debitable to writable

* Remove credit handling, making credit-only accounts read-only

* Update programs to remove deprecated credit-only account designation

* Use readonly and writable instead of underscored types
This commit is contained in:
Tyera Eulberg
2019-11-05 09:38:35 -07:00
committed by GitHub
parent cea13e964c
commit c6931dcb07
20 changed files with 344 additions and 621 deletions

View File

@ -64,7 +64,7 @@ impl Transaction {
#[repr(C)]
#[derive(Debug)]
pub struct Message {
/// The message header, identifying signed and credit-only `account_keys`
/// The message header, identifying signed and read-only `account_keys`
pub header: MessageHeader,
/// All the account keys used by this transaction
@ -164,30 +164,30 @@ pub struct MessageHeader {
/// signatures must match the first `num_required_signatures` of `account_keys`.
pub num_required_signatures: u8,
/// The last num_credit_only_signed_accounts of the signed keys are credit-only accounts.
/// Programs may process multiple transactions that add lamports to the same credit-only
/// account within a single PoH entry, but are not permitted to debit lamports or modify
/// account data. Transactions targeting the same debit account are evaluated sequentially.
pub num_credit_only_signed_accounts: u8,
/// The last num_readonly_signed_accounts of the signed keys are read-only accounts. Programs
/// may process multiple transactions that load read-only accounts within a single PoH entry,
/// but are not permitted to credit or debit lamports or modify account data. Transactions
/// targeting the same read-write account are evaluated sequentially.
pub num_readonly_signed_accounts: u8,
/// The last num_credit_only_unsigned_accounts of the unsigned keys are credit-only accounts.
pub num_credit_only_unsigned_accounts: u8,
/// The last num_readonly_unsigned_accounts of the unsigned keys are read-only accounts.
pub num_readonly_unsigned_accounts: u8,
}
impl MessageHeader {
pub fn from_native(h: MessageHeaderNative) -> Self {
Self {
num_required_signatures: h.num_required_signatures,
num_credit_only_signed_accounts: h.num_credit_only_signed_accounts,
num_credit_only_unsigned_accounts: h.num_credit_only_unsigned_accounts,
num_readonly_signed_accounts: h.num_readonly_signed_accounts,
num_readonly_unsigned_accounts: h.num_readonly_unsigned_accounts,
}
}
pub fn into_native(self) -> MessageHeaderNative {
MessageHeaderNative {
num_required_signatures: self.num_required_signatures,
num_credit_only_signed_accounts: self.num_credit_only_signed_accounts,
num_credit_only_unsigned_accounts: self.num_credit_only_unsigned_accounts,
num_readonly_signed_accounts: self.num_readonly_signed_accounts,
num_readonly_unsigned_accounts: self.num_readonly_unsigned_accounts,
}
}
}