createReverseTwitterRegistry static method
Future<List<TransactionInstruction> >
createReverseTwitterRegistry({
- required SolanaRPC rpc,
- required String twitterHandle,
- required SolAddress twitterRegistryKey,
- required SolAddress verifiedPubkey,
- 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),
];
}