Skip to content

Commit e114dc9

Browse files
committed
sdk: Add createSetTokenAuthorityInstruction helper function
1 parent ae21768 commit e114dc9

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

solana/ts/lib/ntt.ts

+31
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ export namespace NTT {
9797
derivePda("outbox_rate_limit", programId);
9898
const tokenAuthority = (): PublicKey =>
9999
derivePda("token_authority", programId);
100+
const pendingTokenAuthority = (): PublicKey =>
101+
derivePda("pending_token_authority", programId);
100102
const peerAccount = (chain: Chain): PublicKey =>
101103
derivePda(["peer", chainToBytes(chain)], programId);
102104
const registeredTransceiver = (transceiver: PublicKey): PublicKey =>
@@ -131,6 +133,7 @@ export namespace NTT {
131133
inboxItemAccount,
132134
sessionAuthority,
133135
tokenAuthority,
136+
pendingTokenAuthority,
134137
peerAccount,
135138
registeredTransceiver,
136139
lutAccount,
@@ -710,6 +713,34 @@ export namespace NTT {
710713
.instruction();
711714
}
712715

716+
export async function createSetTokenAuthorityInstruction(
717+
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
718+
config: NttBindings.Config<IdlVersion>,
719+
args: {
720+
payer: PublicKey;
721+
owner: PublicKey;
722+
newAuthority: PublicKey;
723+
},
724+
pdas?: Pdas
725+
) {
726+
pdas = pdas ?? NTT.pdas(program.programId);
727+
return await program.methods
728+
.setTokenAuthority()
729+
.accountsStrict({
730+
common: {
731+
config: pdas.configAccount(),
732+
tokenAuthority: pdas.tokenAuthority(),
733+
mint: config.mint,
734+
owner: args.owner,
735+
newAuthority: args.newAuthority,
736+
},
737+
payer: args.payer,
738+
pendingTokenAuthority: pdas.pendingTokenAuthority(),
739+
systemProgram: SystemProgram.programId,
740+
})
741+
.instruction();
742+
}
743+
713744
export async function createSetPeerInstruction(
714745
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
715746
args: {

0 commit comments

Comments
 (0)