* Add Base58,Base64,Bytes to MemcmpEncodedBytes
* Rpc: decode memcmp before filtering accounts
* Add deprecated attribute
* Add Memcmp::bytes
* Fix clippy for deprecated
* Another clippy fix
* merge RpcFilterError::DataTooLarge
* add deprecation for Base58DataTooLarge
* change filter data size limit
* strict data size len for base58
* add magic numbers
* fix tests
(cherry picked from commit e9a427b9c8
)
Co-authored-by: Kirill Fomichev <fanatid@ya.ru>
This commit is contained in:
@@ -1146,18 +1146,18 @@ fn get_buffers(
|
||||
) -> Result<CliUpgradeableBuffers, Box<dyn std::error::Error>> {
|
||||
let mut filters = vec![RpcFilterType::Memcmp(Memcmp {
|
||||
offset: 0,
|
||||
bytes: MemcmpEncodedBytes::Binary(bs58::encode(vec![1, 0, 0, 0]).into_string()),
|
||||
bytes: MemcmpEncodedBytes::Base58(bs58::encode(vec![1, 0, 0, 0]).into_string()),
|
||||
encoding: None,
|
||||
})];
|
||||
if let Some(authority_pubkey) = authority_pubkey {
|
||||
filters.push(RpcFilterType::Memcmp(Memcmp {
|
||||
offset: ACCOUNT_TYPE_SIZE,
|
||||
bytes: MemcmpEncodedBytes::Binary(bs58::encode(vec![1]).into_string()),
|
||||
bytes: MemcmpEncodedBytes::Base58(bs58::encode(vec![1]).into_string()),
|
||||
encoding: None,
|
||||
}));
|
||||
filters.push(RpcFilterType::Memcmp(Memcmp {
|
||||
offset: ACCOUNT_TYPE_SIZE + OPTION_SIZE,
|
||||
bytes: MemcmpEncodedBytes::Binary(
|
||||
bytes: MemcmpEncodedBytes::Base58(
|
||||
bs58::encode(authority_pubkey.as_ref()).into_string(),
|
||||
),
|
||||
encoding: None,
|
||||
@@ -1199,18 +1199,18 @@ fn get_programs(
|
||||
) -> Result<CliUpgradeablePrograms, Box<dyn std::error::Error>> {
|
||||
let mut filters = vec![RpcFilterType::Memcmp(Memcmp {
|
||||
offset: 0,
|
||||
bytes: MemcmpEncodedBytes::Binary(bs58::encode(vec![3, 0, 0, 0]).into_string()),
|
||||
bytes: MemcmpEncodedBytes::Base58(bs58::encode(vec![3, 0, 0, 0]).into_string()),
|
||||
encoding: None,
|
||||
})];
|
||||
if let Some(authority_pubkey) = authority_pubkey {
|
||||
filters.push(RpcFilterType::Memcmp(Memcmp {
|
||||
offset: ACCOUNT_TYPE_SIZE + SLOT_SIZE,
|
||||
bytes: MemcmpEncodedBytes::Binary(bs58::encode(vec![1]).into_string()),
|
||||
bytes: MemcmpEncodedBytes::Base58(bs58::encode(vec![1]).into_string()),
|
||||
encoding: None,
|
||||
}));
|
||||
filters.push(RpcFilterType::Memcmp(Memcmp {
|
||||
offset: ACCOUNT_TYPE_SIZE + SLOT_SIZE + OPTION_SIZE,
|
||||
bytes: MemcmpEncodedBytes::Binary(
|
||||
bytes: MemcmpEncodedBytes::Base58(
|
||||
bs58::encode(authority_pubkey.as_ref()).into_string(),
|
||||
),
|
||||
encoding: None,
|
||||
@@ -1234,7 +1234,7 @@ fn get_programs(
|
||||
bytes.extend_from_slice(programdata_address.as_ref());
|
||||
let filters = vec![RpcFilterType::Memcmp(Memcmp {
|
||||
offset: 0,
|
||||
bytes: MemcmpEncodedBytes::Binary(bs58::encode(bytes).into_string()),
|
||||
bytes: MemcmpEncodedBytes::Base58(bs58::encode(bytes).into_string()),
|
||||
encoding: None,
|
||||
})];
|
||||
|
||||
|
Reference in New Issue
Block a user