gov ix: idl set-authority instruction
This commit is contained in:
parent
33bc278a2c
commit
b3ec7095ce
|
@ -64,112 +64,112 @@ async function buildClient(): Promise<MangoClient> {
|
|||
);
|
||||
}
|
||||
|
||||
async function tokenRegister(): Promise<void> {
|
||||
const client = await buildClient();
|
||||
// async function tokenRegister(): Promise<void> {
|
||||
// const client = await buildClient();
|
||||
|
||||
const group = await client.getGroup(new PublicKey(GROUP_PK));
|
||||
// const group = await client.getGroup(new PublicKey(GROUP_PK));
|
||||
|
||||
const ix = await client.program.methods
|
||||
.tokenRegister(
|
||||
8 as TokenIndex,
|
||||
'wBTC (Portal)',
|
||||
defaultOracleConfig,
|
||||
defaultInterestRate,
|
||||
bpsToDecimal(50),
|
||||
bpsToDecimal(5),
|
||||
0.9,
|
||||
0.8,
|
||||
1.1,
|
||||
1.2,
|
||||
percentageToDecimal(5),
|
||||
60 * 60,
|
||||
0.06,
|
||||
0.0003,
|
||||
percentageToDecimal(20),
|
||||
new BN(24 * 60 * 60),
|
||||
new BN(toNative(50000, 6).toNumber()),
|
||||
5_000_000_000,
|
||||
5_000_000_000,
|
||||
0,
|
||||
0.0005,
|
||||
0.0005,
|
||||
0.0005,
|
||||
)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
admin: group.admin,
|
||||
mint: new PublicKey('3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh'),
|
||||
oracle: new PublicKey('GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU'),
|
||||
payer: (client.program.provider as AnchorProvider).wallet.publicKey,
|
||||
rent: SYSVAR_RENT_PUBKEY,
|
||||
})
|
||||
.instruction();
|
||||
// const ix = await client.program.methods
|
||||
// .tokenRegister(
|
||||
// 8 as TokenIndex,
|
||||
// 'wBTC (Portal)',
|
||||
// defaultOracleConfig,
|
||||
// defaultInterestRate,
|
||||
// bpsToDecimal(50),
|
||||
// bpsToDecimal(5),
|
||||
// 0.9,
|
||||
// 0.8,
|
||||
// 1.1,
|
||||
// 1.2,
|
||||
// percentageToDecimal(5),
|
||||
// 60 * 60,
|
||||
// 0.06,
|
||||
// 0.0003,
|
||||
// percentageToDecimal(20),
|
||||
// new BN(24 * 60 * 60),
|
||||
// new BN(toNative(50000, 6).toNumber()),
|
||||
// 5_000_000_000,
|
||||
// 5_000_000_000,
|
||||
// 0,
|
||||
// 0.0005,
|
||||
// 0.0005,
|
||||
// 0.0005,
|
||||
// )
|
||||
// .accounts({
|
||||
// group: group.publicKey,
|
||||
// admin: group.admin,
|
||||
// mint: new PublicKey('3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh'),
|
||||
// oracle: new PublicKey('GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU'),
|
||||
// payer: (client.program.provider as AnchorProvider).wallet.publicKey,
|
||||
// rent: SYSVAR_RENT_PUBKEY,
|
||||
// })
|
||||
// .instruction();
|
||||
|
||||
// const coder = new BorshCoder(IDL);
|
||||
// console.log(coder.instruction.decode(ix.data));
|
||||
// // const coder = new BorshCoder(IDL);
|
||||
// // console.log(coder.instruction.decode(ix.data));
|
||||
|
||||
console.log(await serializeInstructionToBase64(ix));
|
||||
}
|
||||
// console.log(await serializeInstructionToBase64(ix));
|
||||
// }
|
||||
|
||||
async function tokenEdit(): Promise<void> {
|
||||
const client = await buildClient();
|
||||
// async function tokenEdit(): Promise<void> {
|
||||
// const client = await buildClient();
|
||||
|
||||
const group = await client.getGroup(new PublicKey(GROUP_PK));
|
||||
// const group = await client.getGroup(new PublicKey(GROUP_PK));
|
||||
|
||||
const params = Builder(NullTokenEditParams)
|
||||
.borrowWeightScaleStartQuote(new BN(toNative(100000, 6)).toNumber())
|
||||
.depositWeightScaleStartQuote(new BN(toNative(100000, 6)).toNumber())
|
||||
.build();
|
||||
const ix = await client.program.methods
|
||||
.tokenEdit(
|
||||
params.oracle,
|
||||
params.oracleConfig,
|
||||
params.groupInsuranceFund,
|
||||
params.interestRateParams,
|
||||
params.loanFeeRate,
|
||||
params.loanOriginationFeeRate,
|
||||
params.maintAssetWeight,
|
||||
params.initAssetWeight,
|
||||
params.maintLiabWeight,
|
||||
params.initLiabWeight,
|
||||
params.liquidationFee,
|
||||
params.stablePriceDelayIntervalSeconds,
|
||||
params.stablePriceDelayGrowthLimit,
|
||||
params.stablePriceGrowthLimit,
|
||||
params.minVaultToDepositsRatio,
|
||||
params.netBorrowLimitPerWindowQuote !== null
|
||||
? new BN(params.netBorrowLimitPerWindowQuote)
|
||||
: null,
|
||||
params.netBorrowLimitWindowSizeTs !== null
|
||||
? new BN(params.netBorrowLimitWindowSizeTs)
|
||||
: null,
|
||||
params.borrowWeightScaleStartQuote,
|
||||
params.depositWeightScaleStartQuote,
|
||||
params.resetStablePrice ?? false,
|
||||
params.resetNetBorrowLimit ?? false,
|
||||
params.reduceOnly,
|
||||
params.name,
|
||||
params.forceClose,
|
||||
params.tokenConditionalSwapTakerFeeRate,
|
||||
params.tokenConditionalSwapMakerFeeRate,
|
||||
params.flashLoanSwapFeeRate,
|
||||
)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
oracle: new PublicKey('GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU'),
|
||||
admin: group.admin,
|
||||
mintInfo: new PublicKey('59rgC1pa45EziDPyFgJgE7gbv7Dd7VaGmd2D93i1dtFk'),
|
||||
})
|
||||
.remainingAccounts([
|
||||
{
|
||||
pubkey: new PublicKey('8gabXzwdPn5TvtuQvysh3CxVbjfNY3TZd5XEG5qnueUm'),
|
||||
isWritable: true,
|
||||
isSigner: false,
|
||||
} as AccountMeta,
|
||||
])
|
||||
.instruction();
|
||||
console.log(serializeInstructionToBase64(ix));
|
||||
}
|
||||
// const params = Builder(NullTokenEditParams)
|
||||
// .borrowWeightScaleStartQuote(new BN(toNative(100000, 6)).toNumber())
|
||||
// .depositWeightScaleStartQuote(new BN(toNative(100000, 6)).toNumber())
|
||||
// .build();
|
||||
// const ix = await client.program.methods
|
||||
// .tokenEdit(
|
||||
// params.oracle,
|
||||
// params.oracleConfig,
|
||||
// params.groupInsuranceFund,
|
||||
// params.interestRateParams,
|
||||
// params.loanFeeRate,
|
||||
// params.loanOriginationFeeRate,
|
||||
// params.maintAssetWeight,
|
||||
// params.initAssetWeight,
|
||||
// params.maintLiabWeight,
|
||||
// params.initLiabWeight,
|
||||
// params.liquidationFee,
|
||||
// params.stablePriceDelayIntervalSeconds,
|
||||
// params.stablePriceDelayGrowthLimit,
|
||||
// params.stablePriceGrowthLimit,
|
||||
// params.minVaultToDepositsRatio,
|
||||
// params.netBorrowLimitPerWindowQuote !== null
|
||||
// ? new BN(params.netBorrowLimitPerWindowQuote)
|
||||
// : null,
|
||||
// params.netBorrowLimitWindowSizeTs !== null
|
||||
// ? new BN(params.netBorrowLimitWindowSizeTs)
|
||||
// : null,
|
||||
// params.borrowWeightScaleStartQuote,
|
||||
// params.depositWeightScaleStartQuote,
|
||||
// params.resetStablePrice ?? false,
|
||||
// params.resetNetBorrowLimit ?? false,
|
||||
// params.reduceOnly,
|
||||
// params.name,
|
||||
// params.forceClose,
|
||||
// params.tokenConditionalSwapTakerFeeRate,
|
||||
// params.tokenConditionalSwapMakerFeeRate,
|
||||
// params.flashLoanSwapFeeRate,
|
||||
// )
|
||||
// .accounts({
|
||||
// group: group.publicKey,
|
||||
// oracle: new PublicKey('GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU'),
|
||||
// admin: group.admin,
|
||||
// mintInfo: new PublicKey('59rgC1pa45EziDPyFgJgE7gbv7Dd7VaGmd2D93i1dtFk'),
|
||||
// })
|
||||
// .remainingAccounts([
|
||||
// {
|
||||
// pubkey: new PublicKey('8gabXzwdPn5TvtuQvysh3CxVbjfNY3TZd5XEG5qnueUm'),
|
||||
// isWritable: true,
|
||||
// isSigner: false,
|
||||
// } as AccountMeta,
|
||||
// ])
|
||||
// .instruction();
|
||||
// console.log(serializeInstructionToBase64(ix));
|
||||
// }
|
||||
|
||||
async function serum3Register(): Promise<void> {
|
||||
const client = await buildClient();
|
||||
|
@ -412,6 +412,36 @@ async function idlResize(): Promise<void> {
|
|||
console.log(await serializeInstructionToBase64(ix));
|
||||
}
|
||||
|
||||
async function idlSetAuthority(): Promise<void> {
|
||||
// anchor constant for all idl-specific instructions
|
||||
const idlIxBytes = [0x40, 0xf4, 0xbc, 0x78, 0xa7, 0xe9, 0x69, 0x0a];
|
||||
const idlIxNum = 4; // setAuthority
|
||||
const newAuthority = new PublicKey(
|
||||
'8SSLjXBEVk9nesbhi9UMCA32uijbVBUqWoKPPQPTekzt',
|
||||
);
|
||||
const ix = new TransactionInstruction({
|
||||
keys: [
|
||||
{
|
||||
pubkey: new PublicKey('3foqXduY5PabCn6LjNrLo3waNf3Hy6vQgqavoVUCsUN9'), // idl account
|
||||
isSigner: false,
|
||||
isWritable: true,
|
||||
},
|
||||
{
|
||||
pubkey: new PublicKey('FP4PxqHTVzeG2c6eZd7974F9WvKUSdBeduUK3rjYyvBw'), // authority
|
||||
isSigner: true,
|
||||
isWritable: true,
|
||||
},
|
||||
],
|
||||
programId: MANGO_V4_ID['mainnet-beta'],
|
||||
data: Buffer.concat([
|
||||
Buffer.from(idlIxBytes.concat([idlIxNum])),
|
||||
newAuthority.toBuffer(),
|
||||
]),
|
||||
});
|
||||
|
||||
console.log(await serializeInstructionToBase64(ix));
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
try {
|
||||
// await tokenRegister();
|
||||
|
@ -421,7 +451,8 @@ async function main(): Promise<void> {
|
|||
// await serum3Register();
|
||||
// await ixDisable();
|
||||
// await createMangoAccount();
|
||||
await idlResize();
|
||||
// await idlResize();
|
||||
await idlSetAuthority();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue