From 84f02341519227a6b20d32bdf2bfb5e45004ce96 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Mon, 12 Jul 2021 15:56:59 -0700 Subject: [PATCH] rebase --- docs/src/developing/clients/jsonrpc-api.md | 528 +-------------------- runtime/src/bank.rs | 69 +-- 2 files changed, 3 insertions(+), 594 deletions(-) diff --git a/docs/src/developing/clients/jsonrpc-api.md b/docs/src/developing/clients/jsonrpc-api.md index fea5f5f924..f150192d28 100644 --- a/docs/src/developing/clients/jsonrpc-api.md +++ b/docs/src/developing/clients/jsonrpc-api.md @@ -1026,6 +1026,7 @@ Returns transaction details for a confirmed transaction - `lamports: `- number of reward lamports credited or debited by the account, as a i64 - `postBalance: ` - account balance in lamports after the reward was applied - `rewardType: ` - type of reward: currently only "rent", other types may be added in the future + - `commission: ` - vote account commission when the reward was credited, only present for voting and staking rewards #### Example: Request: @@ -3017,33 +3018,7 @@ None #### Results: -<<<<<<< HEAD The result field will be a JSON object with the following fields: -======= -- `` - if transaction is not found or not confirmed -- `` - if transaction is confirmed, an object with the following fields: - - `slot: ` - the slot this transaction was processed in - - `transaction: ` - [Transaction](#transaction-structure) object, either in JSON format or encoded binary data, depending on encoding parameter - - `blockTime: ` - estimated production time, as Unix timestamp (seconds since the Unix epoch) of when the transaction was processed. null if not available - - `meta: ` - transaction status metadata object: - - `err: ` - Error if transaction failed, null if transaction succeeded. [TransactionError definitions](https://github.com/solana-labs/solana/blob/master/sdk/src/transaction.rs#L24) - - `fee: ` - fee this transaction was charged, as u64 integer - - `preBalances: ` - array of u64 account balances from before the transaction was processed - - `postBalances: ` - array of u64 account balances after the transaction was processed - - `innerInstructions: ` - List of [inner instructions](#inner-instructions-structure) or omitted if inner instruction recording was not yet enabled during this transaction - - `preTokenBalances: ` - List of [token balances](#token-balances-structure) from before the transaction was processed or omitted if token balance recording was not yet enabled during this transaction - - `postTokenBalances: ` - List of [token balances](#token-balances-structure) from after the transaction was processed or omitted if token balance recording was not yet enabled during this transaction - - `logMessages: ` - array of string log messages or omitted if log message recording was not yet enabled during this transaction - - DEPRECATED: `status: ` - Transaction status - - `"Ok": ` - Transaction was successful - - `"Err": ` - Transaction failed with TransactionError - - `rewards: ` - present if rewards are requested; an array of JSON objects containing: - - `pubkey: ` - The public key, as base-58 encoded string, of the account that received the reward - - `lamports: `- number of reward lamports credited or debited by the account, as a i64 - - `postBalance: ` - account balance in lamports after the reward was applied - - `rewardType: ` - type of reward: currently only "rent", other types may be added in the future - - `commission: ` - vote account commission when the reward was credited, only present for voting and staking rewards ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) - `solana-core`, software version of solana-core - `feature-set`, unique identifier of the current software's feature set @@ -4050,504 +4025,3 @@ Response: ```json {"jsonrpc": "2.0","result": true,"id": 1} ``` -<<<<<<< HEAD -======= - -## JSON RPC API Deprecated Methods - -### getConfirmedBlock - -**DEPRECATED: Please use [getBlock](jsonrpc-api.md#getblock) instead** -This method is expected to be removed in solana-core v1.8 - -Returns identity and transaction information about a confirmed block in the ledger - -#### Parameters: - -- `` - slot, as u64 integer -- `` - (optional) Configuration object containing the following optional fields: - - (optional) `encoding: ` - encoding for each returned Transaction, either "json", "jsonParsed", "base58" (*slow*), "base64". If parameter not provided, the default encoding is "json". - "jsonParsed" encoding attempts to use program-specific instruction parsers to return more human-readable and explicit data in the `transaction.message.instructions` list. If "jsonParsed" is requested but a parser cannot be found, the instruction falls back to regular JSON encoding (`accounts`, `data`, and `programIdIndex` fields). - - (optional) `transactionDetails: ` - level of transaction detail to return, either "full", "signatures", or "none". If parameter not provided, the default detail level is "full". - - (optional) `rewards: bool` - whether to populate the `rewards` array. If parameter not provided, the default includes rewards. - - (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment); "processed" is not supported. If parameter not provided, the default is "finalized". - -#### Results: - -The result field will be an object with the following fields: - -- `` - if specified block is not confirmed -- `` - if block is confirmed, an object with the following fields: - - `blockhash: ` - the blockhash of this block, as base-58 encoded string - - `previousBlockhash: ` - the blockhash of this block's parent, as base-58 encoded string; if the parent block is not available due to ledger cleanup, this field will return "11111111111111111111111111111111" - - `parentSlot: ` - the slot index of this block's parent - - `transactions: ` - present if "full" transaction details are requested; an array of JSON objects containing: - - `transaction: ` - [Transaction](#transaction-structure) object, either in JSON format or encoded binary data, depending on encoding parameter - - `meta: ` - transaction status metadata object, containing `null` or: - - `err: ` - Error if transaction failed, null if transaction succeeded. [TransactionError definitions](https://github.com/solana-labs/solana/blob/master/sdk/src/transaction.rs#L24) - - `fee: ` - fee this transaction was charged, as u64 integer - - `preBalances: ` - array of u64 account balances from before the transaction was processed - - `postBalances: ` - array of u64 account balances after the transaction was processed - - `innerInstructions: ` - List of [inner instructions](#inner-instructions-structure) or omitted if inner instruction recording was not yet enabled during this transaction - - `preTokenBalances: ` - List of [token balances](#token-balances-structure) from before the transaction was processed or omitted if token balance recording was not yet enabled during this transaction - - `postTokenBalances: ` - List of [token balances](#token-balances-structure) from after the transaction was processed or omitted if token balance recording was not yet enabled during this transaction - - `logMessages: ` - array of string log messages or omitted if log message recording was not yet enabled during this transaction - - DEPRECATED: `status: ` - Transaction status - - `"Ok": ` - Transaction was successful - - `"Err": ` - Transaction failed with TransactionError - - `signatures: ` - present if "signatures" are requested for transaction details; an array of signatures strings, corresponding to the transaction order in the block - - `rewards: ` - present if rewards are requested; an array of JSON objects containing: - - `pubkey: ` - The public key, as base-58 encoded string, of the account that received the reward - - `lamports: `- number of reward lamports credited or debited by the account, as a i64 - - `postBalance: ` - account balance in lamports after the reward was applied - - `rewardType: ` - type of reward: "fee", "rent", "voting", "staking" - - `commission: ` - vote account commission when the reward was credited, only present for voting and staking rewards - - `blockTime: ` - estimated production time, as Unix timestamp (seconds since the Unix epoch). null if not available - -#### Example: - -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - {"jsonrpc": "2.0","id":1,"method":"getConfirmedBlock","params":[430, {"encoding": "json","transactionDetails":"full","rewards":false}]} -' -``` - -Result: -```json -{ - "jsonrpc": "2.0", - "result": { - "blockTime": null, - "blockhash": "3Eq21vXNB5s86c62bVuUfTeaMif1N2kUqRPBmGRJhyTA", - "parentSlot": 429, - "previousBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B", - "transactions": [ - { - "meta": { - "err": null, - "fee": 5000, - "innerInstructions": [], - "logMessages": [], - "postBalances": [ - 499998932500, - 26858640, - 1, - 1, - 1 - ], - "postTokenBalances": [], - "preBalances": [ - 499998937500, - 26858640, - 1, - 1, - 1 - ], - "preTokenBalances": [], - "status": { - "Ok": null - } - }, - "transaction": { - "message": { - "accountKeys": [ - "3UVYmECPPMZSCqWKfENfuoTv51fTDTWicX9xmBD2euKe", - "AjozzgE83A3x1sHNUR64hfH7zaEBWeMaFuAN9kQgujrc", - "SysvarS1otHashes111111111111111111111111111", - "SysvarC1ock11111111111111111111111111111111", - "Vote111111111111111111111111111111111111111" - ], - "header": { - "numReadonlySignedAccounts": 0, - "numReadonlyUnsignedAccounts": 3, - "numRequiredSignatures": 1 - }, - "instructions": [ - { - "accounts": [ - 1, - 2, - 3, - 0 - ], - "data": "37u9WtQpcm6ULa3WRQHmj49EPs4if7o9f1jSRVZpm2dvihR9C8jY4NqEwXUbLwx15HBSNcP1", - "programIdIndex": 4 - } - ], - "recentBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B" - }, - "signatures": [ - "2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv" - ] - } - } - ] - }, - "id": 1 -} -``` - -#### Example: -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - {"jsonrpc": "2.0","id":1,"method":"getConfirmedBlock","params":[430, "base64"]} -' -``` - -Result: -```json -{ - "jsonrpc": "2.0", - "result": { - "blockTime": null, - "blockhash": "3Eq21vXNB5s86c62bVuUfTeaMif1N2kUqRPBmGRJhyTA", - "parentSlot": 429, - "previousBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B", - "rewards": [], - "transactions": [ - { - "meta": { - "err": null, - "fee": 5000, - "innerInstructions": [], - "logMessages": [], - "postBalances": [ - 499998932500, - 26858640, - 1, - 1, - 1 - ], - "postTokenBalances": [], - "preBalances": [ - 499998937500, - 26858640, - 1, - 1, - 1 - ], - "preTokenBalances": [], - "status": { - "Ok": null - } - }, - "transaction": [ - "AVj7dxHlQ9IrvdYVIjuiRFs1jLaDMHixgrv+qtHBwz51L4/ImLZhszwiyEJDIp7xeBSpm/TX5B7mYzxa+fPOMw0BAAMFJMJVqLw+hJYheizSoYlLm53KzgT82cDVmazarqQKG2GQsLgiqktA+a+FDR4/7xnDX7rsusMwryYVUdixfz1B1Qan1RcZLwqvxvJl4/t3zHragsUp0L47E24tAFUgAAAABqfVFxjHdMkoVmOYaR1etoteuKObS21cc1VbIQAAAAAHYUgdNXR0u3xNdiTr072z2DVec9EQQ/wNo1OAAAAAAAtxOUhPBp2WSjUNJEgfvy70BbxI00fZyEPvFHNfxrtEAQQEAQIDADUCAAAAAQAAAAAAAACtAQAAAAAAAAdUE18R96XTJCe+YfRfUp6WP+YKCy/72ucOL8AoBFSpAA==", - "base64" - ] - } - ] - }, - "id": 1 -} -``` - -For more details on returned data: -[Transaction Structure](jsonrpc-api.md#transactionstructure) -[Inner Instructions Structure](jsonrpc-api.md#innerinstructionsstructure) -[Token Balances Structure](jsonrpc-api.md#tokenbalancesstructure) - -### getConfirmedBlocks - -**DEPRECATED: Please use [getBlocks](jsonrpc-api.md#getblocks) instead** -This method is expected to be removed in solana-core v1.8 - -Returns a list of confirmed blocks between two slots - -#### Parameters: - -- `` - start_slot, as u64 integer -- `` - (optional) end_slot, as u64 integer -- (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment); "processed" is not supported. If parameter not provided, the default is "finalized". - -#### Results: - -The result field will be an array of u64 integers listing confirmed blocks -between `start_slot` and either `end_slot`, if provided, or latest confirmed block, -inclusive. Max range allowed is 500,000 slots. - - -#### Example: - -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - {"jsonrpc": "2.0","id":1,"method":"getConfirmedBlocks","params":[5, 10]} -' -``` - -Result: -```json -{"jsonrpc":"2.0","result":[5,6,7,8,9,10],"id":1} -``` - -### getConfirmedBlocksWithLimit - -**DEPRECATED: Please use [getBlocksWithLimit](jsonrpc-api.md#getblockswithlimit) instead** -This method is expected to be removed in solana-core v1.8 - -Returns a list of confirmed blocks starting at the given slot - -#### Parameters: - -- `` - start_slot, as u64 integer -- `` - limit, as u64 integer -- (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment); "processed" is not supported. If parameter not provided, the default is "finalized". - -#### Results: - -The result field will be an array of u64 integers listing confirmed blocks -starting at `start_slot` for up to `limit` blocks, inclusive. - -#### Example: - -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - {"jsonrpc": "2.0","id":1,"method":"getConfirmedBlocksWithLimit","params":[5, 3]} -' -``` - -Result: -```json -{"jsonrpc":"2.0","result":[5,6,7],"id":1} -``` - -### getConfirmedSignaturesForAddress2 - -**DEPRECATED: Please use [getSignaturesForAddress](jsonrpc-api.md#getsignaturesforaddress) instead** -This method is expected to be removed in solana-core v1.8 - -Returns confirmed signatures for transactions involving an -address backwards in time from the provided signature or most recent confirmed block - -#### Parameters: -* `` - account address as base-58 encoded string -* `` - (optional) Configuration object containing the following fields: - * `limit: ` - (optional) maximum transaction signatures to return (between 1 and 1,000, default: 1,000). - * `before: ` - (optional) start searching backwards from this transaction signature. - If not provided the search starts from the top of the highest max confirmed block. - * `until: ` - (optional) search until this transaction signature, if found before limit reached. - * (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment); "processed" is not supported. If parameter not provided, the default is "finalized". - -#### Results: -The result field will be an array of transaction signature information, ordered -from newest to oldest transaction: -* `` - * `signature: ` - transaction signature as base-58 encoded string - * `slot: ` - The slot that contains the block with the transaction - * `err: ` - Error if transaction failed, null if transaction succeeded. [TransactionError definitions](https://github.com/solana-labs/solana/blob/master/sdk/src/transaction.rs#L24) - * `memo: ` - Memo associated with the transaction, null if no memo is present - * `blockTime: ` - estimated production time, as Unix timestamp (seconds since the Unix epoch) of when transaction was processed. null if not available. - -#### Example: -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - { - "jsonrpc": "2.0", - "id": 1, - "method": "getConfirmedSignaturesForAddress2", - "params": [ - "Vote111111111111111111111111111111111111111", - { - "limit": 1 - } - ] - } -' -``` - -Result: -```json -{ - "jsonrpc": "2.0", - "result": [ - { - "err": null, - "memo": null, - "signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv", - "slot": 114, - "blockTime": null - } - ], - "id": 1 -} -``` - -### getConfirmedTransaction - -**DEPRECATED: Please use [getTransaction](jsonrpc-api.md#gettransaction) instead** -This method is expected to be removed in solana-core v1.8 - -Returns transaction details for a confirmed transaction - -#### Parameters: - -- `` - transaction signature as base-58 encoded string -- `` - (optional) Configuration object containing the following optional fields: - - (optional) `encoding: ` - encoding for each returned Transaction, either "json", "jsonParsed", "base58" (*slow*), "base64". If parameter not provided, the default encoding is "json". - "jsonParsed" encoding attempts to use program-specific instruction parsers to return more human-readable and explicit data in the `transaction.message.instructions` list. If "jsonParsed" is requested but a parser cannot be found, the instruction falls back to regular JSON encoding (`accounts`, `data`, and `programIdIndex` fields). - - (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment); "processed" is not supported. If parameter not provided, the default is "finalized". - -#### Results: - -- `` - if transaction is not found or not confirmed -- `` - if transaction is confirmed, an object with the following fields: - - `slot: ` - the slot this transaction was processed in - - `transaction: ` - [Transaction](#transaction-structure) object, either in JSON format or encoded binary data, depending on encoding parameter - - `blockTime: ` - estimated production time, as Unix timestamp (seconds since the Unix epoch) of when the transaction was processed. null if not available - - `meta: ` - transaction status metadata object: - - `err: ` - Error if transaction failed, null if transaction succeeded. [TransactionError definitions](https://github.com/solana-labs/solana/blob/master/sdk/src/transaction.rs#L24) - - `fee: ` - fee this transaction was charged, as u64 integer - - `preBalances: ` - array of u64 account balances from before the transaction was processed - - `postBalances: ` - array of u64 account balances after the transaction was processed - - `innerInstructions: ` - List of [inner instructions](#inner-instructions-structure) or omitted if inner instruction recording was not yet enabled during this transaction - - `preTokenBalances: ` - List of [token balances](#token-balances-structure) from before the transaction was processed or omitted if token balance recording was not yet enabled during this transaction - - `postTokenBalances: ` - List of [token balances](#token-balances-structure) from after the transaction was processed or omitted if token balance recording was not yet enabled during this transaction - - `logMessages: ` - array of string log messages or omitted if log message recording was not yet enabled during this transaction - - DEPRECATED: `status: ` - Transaction status - - `"Ok": ` - Transaction was successful - - `"Err": ` - Transaction failed with TransactionError - -#### Example: -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - { - "jsonrpc": "2.0", - "id": 1, - "method": "getConfirmedTransaction", - "params": [ - "2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv", - "json" - ] - } -' -``` - -Result: -```json -{ - "jsonrpc": "2.0", - "result": { - "meta": { - "err": null, - "fee": 5000, - "innerInstructions": [], - "postBalances": [ - 499998932500, - 26858640, - 1, - 1, - 1 - ], - "postTokenBalances": [], - "preBalances": [ - 499998937500, - 26858640, - 1, - 1, - 1 - ], - "preTokenBalances": [], - "status": { - "Ok": null - } - }, - "slot": 430, - "transaction": { - "message": { - "accountKeys": [ - "3UVYmECPPMZSCqWKfENfuoTv51fTDTWicX9xmBD2euKe", - "AjozzgE83A3x1sHNUR64hfH7zaEBWeMaFuAN9kQgujrc", - "SysvarS1otHashes111111111111111111111111111", - "SysvarC1ock11111111111111111111111111111111", - "Vote111111111111111111111111111111111111111" - ], - "header": { - "numReadonlySignedAccounts": 0, - "numReadonlyUnsignedAccounts": 3, - "numRequiredSignatures": 1 - }, - "instructions": [ - { - "accounts": [ - 1, - 2, - 3, - 0 - ], - "data": "37u9WtQpcm6ULa3WRQHmj49EPs4if7o9f1jSRVZpm2dvihR9C8jY4NqEwXUbLwx15HBSNcP1", - "programIdIndex": 4 - } - ], - "recentBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B" - }, - "signatures": [ - "2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv" - ] - } - }, - "blockTime": null, - "id": 1 -} -``` - -#### Example: -Request: -```bash -curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' - { - "jsonrpc": "2.0", - "id": 1, - "method": "getConfirmedTransaction", - "params": [ - "2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv", - "base64" - ] - } -' -``` - -Result: -```json -{ - "jsonrpc": "2.0", - "result": { - "meta": { - "err": null, - "fee": 5000, - "innerInstructions": [], - "postBalances": [ - 499998932500, - 26858640, - 1, - 1, - 1 - ], - "postTokenBalances": [], - "preBalances": [ - 499998937500, - 26858640, - 1, - 1, - 1 - ], - "preTokenBalances": [], - "status": { - "Ok": null - } - }, - "slot": 430, - "transaction": [ - "AVj7dxHlQ9IrvdYVIjuiRFs1jLaDMHixgrv+qtHBwz51L4/ImLZhszwiyEJDIp7xeBSpm/TX5B7mYzxa+fPOMw0BAAMFJMJVqLw+hJYheizSoYlLm53KzgT82cDVmazarqQKG2GQsLgiqktA+a+FDR4/7xnDX7rsusMwryYVUdixfz1B1Qan1RcZLwqvxvJl4/t3zHragsUp0L47E24tAFUgAAAABqfVFxjHdMkoVmOYaR1etoteuKObS21cc1VbIQAAAAAHYUgdNXR0u3xNdiTr072z2DVec9EQQ/wNo1OAAAAAAAtxOUhPBp2WSjUNJEgfvy70BbxI00fZyEPvFHNfxrtEAQQEAQIDADUCAAAAAQAAAAAAAACtAQAAAAAAAAdUE18R96XTJCe+YfRfUp6WP+YKCy/72ucOL8AoBFSpAA==", - "base64" - ] - }, - "id": 1 -} -``` ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index febd204071..0b5bbe0e34 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -73,18 +73,13 @@ use solana_sdk::{ timing::years_as_slots, transaction::{self, Result, Transaction, TransactionError}, }; -<<<<<<< HEAD use solana_stake_program::stake_state::{ self, Delegation, InflationPointCalculationEvent, PointValue, }; -use solana_vote_program::vote_instruction::VoteInstruction; -======= -use solana_stake_program::stake_state::{self, InflationPointCalculationEvent, PointValue}; use solana_vote_program::{ vote_instruction::VoteInstruction, vote_state::{VoteState, VoteStateVersions}, }; ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) use std::{ borrow::Cow, cell::RefCell, @@ -1888,10 +1883,7 @@ impl Bank { // pay according to point value for (vote_pubkey, (stake_group, vote_account)) in stake_delegation_accounts.iter_mut() { let mut vote_account_changed = false; -<<<<<<< HEAD let voters_account_pre_balance = vote_account.lamports; -======= - let voters_account_pre_balance = vote_account.lamports(); let vote_state: VoteState = match StateMut::::state(vote_account) { Ok(vote_state) => vote_state.convert_to_current(), Err(err) => { @@ -1903,7 +1895,6 @@ impl Bank { } }; let commission = Some(vote_state.commission); ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) for (stake_pubkey, stake_account) in stake_group.iter_mut() { // curry closure to add the contextual stake_pubkey @@ -1934,12 +1925,8 @@ impl Bank { RewardInfo { reward_type: RewardType::Staking, lamports: stakers_reward as i64, -<<<<<<< HEAD post_balance: stake_account.lamports, -======= - post_balance: stake_account.lamports(), commission, ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) }, )); } @@ -2064,7 +2051,6 @@ impl Bank { unburned, collector_fees, burned ); -<<<<<<< HEAD let post_balance = self.deposit(&self.collector_id, unburned); if unburned != 0 { self.rewards.write().unwrap().push(( @@ -2073,32 +2059,9 @@ impl Bank { reward_type: RewardType::Fee, lamports: unburned as i64, post_balance, + commission: None, }, )); -======= - match self.deposit(&self.collector_id, deposit) { - Ok(post_balance) => { - if deposit != 0 { - self.rewards.write().unwrap().push(( - self.collector_id, - RewardInfo { - reward_type: RewardType::Fee, - lamports: deposit as i64, - post_balance, - commission: None, - }, - )); - } - } - Err(_) => { - error!( - "Burning {} fee instead of crediting {}", - deposit, self.collector_id - ); - inc_new_counter_error!("bank-burned_fee_lamports", deposit as usize); - burn += deposit; - } ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) } self.capitalization.fetch_sub(burned, Relaxed); } @@ -3468,7 +3431,6 @@ impl Bank { rent_share }; if !enforce_fix || rent_to_be_paid > 0 { -<<<<<<< HEAD let mut account = self.get_account(&pubkey).unwrap_or_default(); account.lamports += rent_to_be_paid; self.store_account(&pubkey, &account); @@ -3478,36 +3440,9 @@ impl Bank { reward_type: RewardType::Rent, lamports: rent_to_be_paid as i64, post_balance: account.lamports, + commission: None, }, )); -======= - let mut account = self - .get_account_with_fixed_root(&pubkey) - .unwrap_or_default(); - if account.checked_add_lamports(rent_to_be_paid).is_err() { - // overflow adding lamports - self.capitalization.fetch_sub(rent_to_be_paid, Relaxed); - error!( - "Burned {} rent lamports instead of sending to {}", - rent_to_be_paid, pubkey - ); - inc_new_counter_error!( - "bank-burned_rent_lamports", - rent_to_be_paid as usize - ); - } else { - self.store_account(&pubkey, &account); - rewards.push(( - pubkey, - RewardInfo { - reward_type: RewardType::Rent, - lamports: rent_to_be_paid as i64, - post_balance: account.lamports(), - commission: None, - }, - )); - } ->>>>>>> 4098af3b5 (Record vote account commission with voting/staking rewards and surface in RPC) } }); self.rewards.write().unwrap().append(&mut rewards);