getTwitterHandleandRegistryKeyViaFilters static method
Future<ReverseTwitterRegistryAccount>
getTwitterHandleandRegistryKeyViaFilters({
- required SolanaRPC rpc,
- required SolAddress verifiedPubkey,
Uses the RPC node filtering feature, execution speed may vary
Implementation
static Future<ReverseTwitterRegistryAccount>
getTwitterHandleandRegistryKeyViaFilters({
required SolanaRPC rpc,
required SolAddress verifiedPubkey,
}) async {
final filteredAccounts = await rpc.request(SolanaRPCGetProgramAccounts(
account: NameServiceProgramConst.programId,
filters: [
RPCMemcmpFilterConfig(
offset: 0,
bytes:
NameServiceProgramConst.twitterRootPrentRegisteryKey.address),
RPCMemcmpFilterConfig(offset: 32, bytes: verifiedPubkey.address),
RPCMemcmpFilterConfig(
offset: 64,
bytes:
NameServiceProgramConst.twitterVerificationAuthority.address),
]));
for (final account in filteredAccounts) {
final accountBytes = account.toBytesData();
if (accountBytes.length >
NameRegistryAccountUtils.hiddenDataOffset + 32) {
return ReverseTwitterRegistryAccount.fromAccountBytes(accountBytes);
}
}
throw Exception('Registry not found.');
}