Skip to content

Commit d82f87e

Browse files
committed
solana: Add TS helper functions
1 parent f102b3a commit d82f87e

File tree

1 file changed

+138
-4
lines changed

1 file changed

+138
-4
lines changed

solana/ts/lib/ntt.ts

+138-4
Original file line numberDiff line numberDiff line change
@@ -849,29 +849,94 @@ export namespace NTT {
849849
config: NttBindings.Config<IdlVersion>,
850850
args: {
851851
currentAuthority: PublicKey;
852+
multisigTokenAuthority?: PublicKey;
852853
},
853854
pdas?: Pdas
854855
) {
855856
pdas = pdas ?? NTT.pdas(program.programId);
856857
return program.methods
857858
.acceptTokenAuthority()
858859
.accountsStrict({
859-
config: pdas.configAccount(),
860-
mint: config.mint,
861-
tokenProgram: config.tokenProgram,
862-
tokenAuthority: pdas.tokenAuthority(),
860+
common: {
861+
config: pdas.configAccount(),
862+
mint: config.mint,
863+
tokenProgram: config.tokenProgram,
864+
tokenAuthority: pdas.tokenAuthority(),
865+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
866+
},
863867
currentAuthority: args.currentAuthority,
864868
})
865869
.instruction();
866870
}
867871

872+
export async function createAcceptTokenAuthorityFromMultisigInstruction(
873+
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
874+
config: NttBindings.Config<IdlVersion>,
875+
args: {
876+
currentMultisigAuthority: PublicKey;
877+
additionalSigners: PublicKey[];
878+
multisigTokenAuthority?: PublicKey;
879+
},
880+
pdas?: Pdas
881+
) {
882+
pdas = pdas ?? NTT.pdas(program.programId);
883+
return program.methods
884+
.acceptTokenAuthorityFromMultisig()
885+
.accountsStrict({
886+
common: {
887+
config: pdas.configAccount(),
888+
mint: config.mint,
889+
tokenProgram: config.tokenProgram,
890+
tokenAuthority: pdas.tokenAuthority(),
891+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
892+
},
893+
currentMultisigAuthority: args.currentMultisigAuthority,
894+
})
895+
.remainingAccounts(
896+
args.additionalSigners.map((pubkey) => ({
897+
pubkey,
898+
isSigner: true,
899+
isWritable: false,
900+
}))
901+
)
902+
.instruction();
903+
}
904+
905+
export async function createSetTokenAuthorityOneStepUncheckedInstruction(
906+
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
907+
config: NttBindings.Config<IdlVersion>,
908+
args: {
909+
owner: PublicKey;
910+
newAuthority: PublicKey;
911+
multisigTokenAuthority?: PublicKey;
912+
},
913+
pdas?: Pdas
914+
) {
915+
pdas = pdas ?? NTT.pdas(program.programId);
916+
return program.methods
917+
.setTokenAuthorityOneStepUnchecked()
918+
.accountsStrict({
919+
common: {
920+
config: pdas.configAccount(),
921+
tokenAuthority: pdas.tokenAuthority(),
922+
mint: config.mint,
923+
owner: args.owner,
924+
newAuthority: args.newAuthority,
925+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
926+
},
927+
tokenProgram: config.tokenProgram,
928+
})
929+
.instruction();
930+
}
931+
868932
export async function createSetTokenAuthorityInstruction(
869933
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
870934
config: NttBindings.Config<IdlVersion>,
871935
args: {
872936
rentPayer: PublicKey;
873937
owner: PublicKey;
874938
newAuthority: PublicKey;
939+
multisigTokenAuthority?: PublicKey;
875940
},
876941
pdas?: Pdas
877942
) {
@@ -885,6 +950,7 @@ export namespace NTT {
885950
mint: config.mint,
886951
owner: args.owner,
887952
newAuthority: args.newAuthority,
953+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
888954
},
889955
rentPayer: args.rentPayer,
890956
pendingTokenAuthority: pdas.pendingTokenAuthority(),
@@ -899,6 +965,7 @@ export namespace NTT {
899965
args: {
900966
rentPayer: PublicKey;
901967
owner: PublicKey;
968+
multisigTokenAuthority?: PublicKey;
902969
},
903970
pdas?: Pdas
904971
) {
@@ -914,12 +981,79 @@ export namespace NTT {
914981
systemProgram: SystemProgram.programId,
915982
rentPayer: args.rentPayer,
916983
pendingTokenAuthority: pdas.pendingTokenAuthority(),
984+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
917985
},
918986
owner: args.owner,
919987
})
920988
.instruction();
921989
}
922990

991+
export async function createClaimTokenAuthorityInstruction(
992+
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
993+
config: NttBindings.Config<IdlVersion>,
994+
args: {
995+
rentPayer: PublicKey;
996+
newAuthority: PublicKey;
997+
multisigTokenAuthority?: PublicKey;
998+
},
999+
pdas?: Pdas
1000+
) {
1001+
pdas = pdas ?? NTT.pdas(program.programId);
1002+
return program.methods
1003+
.claimTokenAuthority()
1004+
.accountsStrict({
1005+
common: {
1006+
config: pdas.configAccount(),
1007+
mint: config.mint,
1008+
tokenAuthority: pdas.tokenAuthority(),
1009+
tokenProgram: config.tokenProgram,
1010+
systemProgram: SystemProgram.programId,
1011+
rentPayer: args.rentPayer,
1012+
pendingTokenAuthority: pdas.pendingTokenAuthority(),
1013+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
1014+
},
1015+
newAuthority: args.newAuthority,
1016+
})
1017+
.instruction();
1018+
}
1019+
1020+
export async function createClaimTokenAuthorityToMultisigInstruction(
1021+
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
1022+
config: NttBindings.Config<IdlVersion>,
1023+
args: {
1024+
rentPayer: PublicKey;
1025+
newMultisigAuthority: PublicKey;
1026+
additionalSigners: PublicKey[];
1027+
multisigTokenAuthority?: PublicKey;
1028+
},
1029+
pdas?: Pdas
1030+
) {
1031+
pdas = pdas ?? NTT.pdas(program.programId);
1032+
return program.methods
1033+
.claimTokenAuthorityToMultisig()
1034+
.accountsStrict({
1035+
common: {
1036+
config: pdas.configAccount(),
1037+
mint: config.mint,
1038+
tokenAuthority: pdas.tokenAuthority(),
1039+
tokenProgram: config.tokenProgram,
1040+
systemProgram: SystemProgram.programId,
1041+
rentPayer: args.rentPayer,
1042+
pendingTokenAuthority: pdas.pendingTokenAuthority(),
1043+
multisigTokenAuthority: args.multisigTokenAuthority ?? null,
1044+
},
1045+
newMultisigAuthority: args.newMultisigAuthority,
1046+
})
1047+
.remainingAccounts(
1048+
args.additionalSigners.map((pubkey) => ({
1049+
pubkey,
1050+
isSigner: true,
1051+
isWritable: false,
1052+
}))
1053+
)
1054+
.instruction();
1055+
}
1056+
9231057
export async function createSetPeerInstruction(
9241058
program: Program<NttBindings.NativeTokenTransfer<IdlVersion>>,
9251059
args: {

0 commit comments

Comments
 (0)