changeVerifiedPubkey static method
Future<List<TransactionInstruction> >
changeVerifiedPubkey({
- required SolanaRPC rpc,
- required String twitterHandle,
- required SolAddress currentVerifiedPubkey,
- required SolAddress newVerifiedPubkey,
- required SolAddress payerKey,
Change the verified pubkey for a given twitter handle
Implementation
static Future<List<TransactionInstruction>> changeVerifiedPubkey({
required SolanaRPC rpc,
required String twitterHandle,
required SolAddress currentVerifiedPubkey,
required SolAddress newVerifiedPubkey,
required SolAddress payerKey,
}) async {
final hashedTwitterHandle =
NameServiceProgramUtils.getHashedName(twitterHandle);
final twitterHandleRegistryKey =
NameServiceProgramUtils.getNameAccountProgram(
hashedName: hashedTwitterHandle,
nameParent: NameServiceProgramConst.twitterRootPrentRegisteryKey,
);
final List<TransactionInstruction> instructions = [
NameServiceProgram.transfer(
nameAccountKey: twitterHandleRegistryKey,
layout: NameServiceTransferLayout(newOwnerKey: newVerifiedPubkey),
currentNameOwnerKey: currentVerifiedPubkey,
),
await NameServiceProgramHelper.deleteNameRegistry(
rpc: rpc,
name: currentVerifiedPubkey.address,
refundTargetKey: payerKey,
nameClass: NameServiceProgramConst.twitterVerificationAuthority,
nameParent: NameServiceProgramConst.twitterRootPrentRegisteryKey,
),
...await createReverseTwitterRegistry(
rpc: rpc,
twitterHandle: twitterHandle,
twitterRegistryKey: twitterHandleRegistryKey,
verifiedPubkey: newVerifiedPubkey,
payerKey: payerKey,
)
];
return instructions;
}