createReverseTwitterRegistry static method

Future<List<TransactionInstruction>> createReverseTwitterRegistry({
  1. required SolanaRPC rpc,
  2. required String twitterHandle,
  3. required SolAddress twitterRegistryKey,
  4. required SolAddress verifiedPubkey,
  5. required SolAddress payerKey,
})

Implementation

static Future<List<TransactionInstruction>> createReverseTwitterRegistry({
  required SolanaRPC rpc,
  required String twitterHandle,
  required SolAddress twitterRegistryKey,
  required SolAddress verifiedPubkey,
  required SolAddress payerKey,
}) async {
  final hashedVerifiedPubkey =
      NameServiceProgramUtils.getHashedName(verifiedPubkey.address);
  final reverseRegistryKey = NameServiceProgramUtils.getNameAccountProgram(
    hashedName: hashedVerifiedPubkey,
    nameClass: NameServiceProgramConst.twitterVerificationAuthority,
    nameParent: NameServiceProgramConst.twitterRootPrentRegisteryKey,
  );
  final reverseTwitterRegistryStateBuff = ReverseTwitterRegistryAccount(
          twitterRegistryKey: twitterRegistryKey,
          twitterHandle: twitterHandle)
      .toBytes();
  return [
    NameServiceProgram.create(
      nameKey: reverseRegistryKey,
      nameOwnerKey: verifiedPubkey,
      payerKey: payerKey,
      layout: NameServiceCreateLayout(
          lamports: await rpc.request(
              SolanaRPCGetMinimumBalanceForRentExemption(
                  size: reverseTwitterRegistryStateBuff.length)),
          hashedName: hashedVerifiedPubkey,
          space: reverseTwitterRegistryStateBuff.length),
      nameClassKey: NameServiceProgramConst.twitterVerificationAuthority,
      nameParent: NameServiceProgramConst.twitterRootPrentRegisteryKey,
      nameParentOwner: NameServiceProgramConst.twitterVerificationAuthority,
    ),
    NameServiceProgram.update(
        nameAccountKey: reverseRegistryKey,
        layout: NameServiceUpdateLayout(
            inputData: reverseTwitterRegistryStateBuff, offset: 0),
        nameUpdateSigner:
            NameServiceProgramConst.twitterVerificationAuthority),
  ];
}