updateNameRegistryData static method
Future<TransactionInstruction>
updateNameRegistryData({
- required SolanaRPC rpc,
- required String name,
- required int offset,
- required List<
int> inputData, - SolAddress? nameClass,
- SolAddress? nameParent,
Overwrite the data of the given name registry.
Implementation
static Future<TransactionInstruction> updateNameRegistryData(
{
/// The solana connection object to the RPC node
required SolanaRPC rpc,
/// The name of the name registry to update
required String name,
/// The offset to which the data should be written into the registry
required int offset,
/// The data to be written
required List<int> inputData,
/// The class of this name, if it exsists
SolAddress? nameClass,
/// The parent name of this name, if it exists
SolAddress? nameParent}) async {
final hashedName = NameServiceProgramUtils.getHashedName(name);
final nameAccountKey = NameServiceProgramUtils.getNameAccountProgram(
hashedName: hashedName,
nameClass: nameClass,
nameParent: nameParent,
);
SolAddress? signer = nameClass;
if (signer == null) {
final account = await rpc
.request(SolanaRPCNameRegistryAccount(account: nameAccountKey));
if (account == null) {
throw const MessageException("Account not found.");
}
signer = account.owner;
}
return NameServiceProgram.update(
nameAccountKey: nameAccountKey,
layout: NameServiceUpdateLayout(inputData: inputData, offset: offset),
nameUpdateSigner: signer,
parentNameKey: nameParent,
);
}