Use internal function for encoding accounts (#22822)

* Use internal function for encoding accounts

* fix tests
This commit is contained in:
Kirill Fomichev 2022-02-02 00:10:21 +03:00 committed by GitHub
parent 65f8f43665
commit 4bc3a1195f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 43 deletions

View File

@ -1800,17 +1800,13 @@ impl JsonRpcRequestProcessor {
} else {
keyed_accounts
.into_iter()
.map(|(pubkey, account)| RpcKeyedAccount {
.map(|(pubkey, account)| {
Ok(RpcKeyedAccount {
pubkey: pubkey.to_string(),
account: UiAccount::encode(
&pubkey,
&account,
encoding,
None,
data_slice_config,
),
account: encode_account(&account, &pubkey, encoding, data_slice_config)?,
})
.collect()
})
.collect::<Result<Vec<_>>>()?
};
Ok(new_response(&bank, accounts))
}
@ -1857,17 +1853,13 @@ impl JsonRpcRequestProcessor {
} else {
keyed_accounts
.into_iter()
.map(|(pubkey, account)| RpcKeyedAccount {
.map(|(pubkey, account)| {
Ok(RpcKeyedAccount {
pubkey: pubkey.to_string(),
account: UiAccount::encode(
&pubkey,
&account,
encoding,
None,
data_slice_config,
),
account: encode_account(&account, &pubkey, encoding, data_slice_config)?,
})
.collect()
})
.collect::<Result<Vec<_>>>()?
};
Ok(new_response(&bank, accounts))
}
@ -3617,25 +3609,22 @@ pub mod rpc_full {
if result.is_err() {
Some(vec![None; config_accounts.addresses.len()])
} else {
let mut accounts = vec![];
for address_str in config_accounts.addresses {
let address = verify_pubkey(&address_str)?;
accounts.push(
Some(
config_accounts
.addresses
.iter()
.map(|address_str| {
let address = verify_pubkey(address_str)?;
post_simulation_accounts
.iter()
.find(|(key, _account)| key == &address)
.map(|(pubkey, account)| {
UiAccount::encode(
pubkey,
account,
accounts_encoding,
None,
None,
encode_account(account, pubkey, accounts_encoding, None)
})
.transpose()
})
.collect::<Result<Vec<_>>>()?,
)
}),
);
}
Some(accounts)
}
} else {
None
@ -7441,7 +7430,7 @@ pub mod tests {
"jsonrpc":"2.0",
"id":1,
"method":"getTokenAccountsByOwner",
"params":["{}", {{"programId": "{}"}}]
"params":["{}", {{"programId": "{}"}}, {{"encoding":"base64"}}]
}}"#,
owner,
spl_token_id(),
@ -7493,7 +7482,7 @@ pub mod tests {
r#"{{
"jsonrpc":"2.0",
"id":1,"method":"getTokenAccountsByOwner",
"params":["{}", {{"mint": "{}"}}]
"params":["{}", {{"mint": "{}"}}, {{"encoding":"base64"}}]
}}"#,
owner, mint,
);
@ -7558,7 +7547,7 @@ pub mod tests {
"jsonrpc":"2.0",
"id":1,
"method":"getTokenAccountsByDelegate",
"params":["{}", {{"programId": "{}"}}]
"params":["{}", {{"programId": "{}"}}, {{"encoding":"base64"}}]
}}"#,
delegate,
spl_token_id(),
@ -7576,7 +7565,7 @@ pub mod tests {
"jsonrpc":"2.0",
"id":1,"method":
"getTokenAccountsByDelegate",
"params":["{}", {{"mint": "{}"}}]
"params":["{}", {{"mint": "{}"}}, {{"encoding":"base64"}}]
}}"#,
delegate, mint,
);