getTwitterRegistryData static method

Future<List<int>> getTwitterRegistryData({
  1. required SolanaRPC rpc,
  2. required SolAddress verifiedPubkey,
})

Uses the RPC node filtering feature, execution speed may vary Does not give you the handle, but is an alternative to getHandlesAndKeysFromVerifiedPubkey + getTwitterRegistry to get the data

Implementation

static Future<List<int>> getTwitterRegistryData({
  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: SolAddress.defaultPubKey.address),
      ]));
  if (filteredAccounts.length != 1) {
    throw const MessageException(
        'Account not found or more than one registry found.');
  }
  final account = filteredAccounts[0];
  return account
      .toBytesData()
      .sublist(NameRegistryAccountUtils.hiddenDataOffset);
}