diff --git a/packages/hyperbet-avax/keeper/src/idl/lvr_amm.json b/packages/hyperbet-avax/keeper/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-avax/keeper/src/idl/lvr_amm.json +++ b/packages/hyperbet-avax/keeper/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-avax/keeper/src/idl/lvr_amm.ts b/packages/hyperbet-avax/keeper/src/idl/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-avax/keeper/src/idl/lvr_amm.ts +++ b/packages/hyperbet-avax/keeper/src/idl/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-bsc/app/src/idl/lvr_amm.json b/packages/hyperbet-bsc/app/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-bsc/app/src/idl/lvr_amm.json +++ b/packages/hyperbet-bsc/app/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-bsc/app/src/idl/lvr_amm.ts b/packages/hyperbet-bsc/app/src/idl/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-bsc/app/src/idl/lvr_amm.ts +++ b/packages/hyperbet-bsc/app/src/idl/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.json b/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.json +++ b/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.ts b/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.ts +++ b/packages/hyperbet-bsc/keeper/src/idl/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-evm/keeper/src/idl/lvr_amm.json b/packages/hyperbet-evm/keeper/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-evm/keeper/src/idl/lvr_amm.json +++ b/packages/hyperbet-evm/keeper/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-evm/keeper/src/idl/lvr_amm.ts b/packages/hyperbet-evm/keeper/src/idl/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-evm/keeper/src/idl/lvr_amm.ts +++ b/packages/hyperbet-evm/keeper/src/idl/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-solana/anchor/programs/lvr_amm/src/error.rs b/packages/hyperbet-solana/anchor/programs/lvr_amm/src/error.rs index 39dc92b6..64c55bbb 100644 --- a/packages/hyperbet-solana/anchor/programs/lvr_amm/src/error.rs +++ b/packages/hyperbet-solana/anchor/programs/lvr_amm/src/error.rs @@ -88,4 +88,7 @@ pub enum PredictionMarketError { #[msg("AMM fixed-point overflow")] MathFixedPointOverflow, + + #[msg("Initializer must be the program upgrade authority")] + UnauthorizedInitializer, } diff --git a/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init.rs b/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init.rs index 3bbf4867..8322f7e3 100644 --- a/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init.rs +++ b/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init.rs @@ -34,6 +34,14 @@ pub struct InitializeAdmin<'info> { #[account(mut)] pub signer: Signer<'info>, + #[account( + constraint = program.programdata_address()? == Some(program_data.key()) @ PredictionMarketError::UnauthorizedInitializer + )] + pub program: Program<'info, crate::program::LvrAmm>, + #[account( + constraint = program_data.upgrade_authority_address == Some(signer.key()) @ PredictionMarketError::UnauthorizedInitializer + )] + pub program_data: Account<'info, ProgramData>, pub system_program: Program<'info, System>, } diff --git a/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init_config.rs b/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init_config.rs index 3abaad63..1faad184 100644 --- a/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init_config.rs +++ b/packages/hyperbet-solana/anchor/programs/lvr_amm/src/instructions/init_config.rs @@ -77,6 +77,14 @@ pub struct InitializeAmmConfig<'info> { #[account(mut)] pub signer: Signer<'info>, + #[account( + constraint = program.programdata_address()? == Some(program_data.key()) @ PredictionMarketError::UnauthorizedInitializer + )] + pub program: Program<'info, crate::program::LvrAmm>, + #[account( + constraint = program_data.upgrade_authority_address == Some(signer.key()) @ PredictionMarketError::UnauthorizedInitializer + )] + pub program_data: Account<'info, ProgramData>, pub system_program: Program<'info, System>, } diff --git a/packages/hyperbet-solana/anchor/target/idl/lvr_amm.json b/packages/hyperbet-solana/anchor/target/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-solana/anchor/target/idl/lvr_amm.json +++ b/packages/hyperbet-solana/anchor/target/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-solana/anchor/target/types/lvr_amm.ts b/packages/hyperbet-solana/anchor/target/types/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-solana/anchor/target/types/lvr_amm.ts +++ b/packages/hyperbet-solana/anchor/target/types/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-solana/anchor/tests/amm-test-helpers.ts b/packages/hyperbet-solana/anchor/tests/amm-test-helpers.ts index 04d92471..fe52f01b 100644 --- a/packages/hyperbet-solana/anchor/tests/amm-test-helpers.ts +++ b/packages/hyperbet-solana/anchor/tests/amm-test-helpers.ts @@ -227,6 +227,8 @@ export async function ensureLvrAdmin( .accountsPartial({ adminState, signer: authority.publicKey, + program: program.programId, + programData: deriveProgramDataAddress(program.programId), systemProgram: SystemProgram.programId, }) .signers([authority]) @@ -257,6 +259,8 @@ export async function ensureAmmConfig( .accountsPartial({ ammConfig, signer: authority.publicKey, + program: program.programId, + programData: deriveProgramDataAddress(program.programId), systemProgram: SystemProgram.programId, }) .signers([authority]) diff --git a/packages/hyperbet-solana/anchor/tests/lvr_amm_security.anchor.ts b/packages/hyperbet-solana/anchor/tests/lvr_amm_security.anchor.ts index 1ca2da61..44b5223a 100644 --- a/packages/hyperbet-solana/anchor/tests/lvr_amm_security.anchor.ts +++ b/packages/hyperbet-solana/anchor/tests/lvr_amm_security.anchor.ts @@ -26,6 +26,7 @@ import { deriveDuelStatePda, deriveMintNoPda, deriveMintYesPda, + deriveProgramDataAddress, duelStatusBettingOpen, ensureAmmConfig, ensureLvrAdmin, @@ -182,6 +183,43 @@ async function createBetFixture(options?: { } describe("lvr_amm security", () => { + it("rejects config initialization by a non-upgrade authority", async function () { + const ammConfig = deriveAmmConfigPda(ammProgram.programId); + const existingConfig = + await (ammProgram.account as any).ammConfig.fetchNullable(ammConfig); + if (existingConfig) { + this.skip(); + } + + const attacker = Keypair.generate(); + await airdrop(provider.connection, attacker.publicKey, 1); + + try { + await ammProgram.methods + .initializeConfig( + attacker.publicKey, + attacker.publicKey, + fightProgram.programId, + 200, + ) + .accountsPartial({ + ammConfig, + signer: attacker.publicKey, + program: ammProgram.programId, + programData: deriveProgramDataAddress(ammProgram.programId), + systemProgram: SystemProgram.programId, + }) + .signers([attacker]) + .rpc(); + assert.fail("initialize_config accepted a non-upgrade authority"); + } catch (error: unknown) { + assert.ok( + hasProgramError(error, "UnauthorizedInitializer"), + `expected UnauthorizedInitializer, got ${String(error)}`, + ); + } + }); + it("rejects settlement with a duel PDA derived from a different duel key", async () => { const fixture = await createBetFixture({ expirationOffsetSecs: -60 }); const now = Math.floor(Date.now() / 1000); diff --git a/packages/hyperbet-solana/app/src/idl/lvr_amm.json b/packages/hyperbet-solana/app/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-solana/app/src/idl/lvr_amm.json +++ b/packages/hyperbet-solana/app/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-solana/app/src/idl/lvr_amm.ts b/packages/hyperbet-solana/app/src/idl/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-solana/app/src/idl/lvr_amm.ts +++ b/packages/hyperbet-solana/app/src/idl/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-solana/keeper/src/idl/lvr_amm.json b/packages/hyperbet-solana/keeper/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-solana/keeper/src/idl/lvr_amm.json +++ b/packages/hyperbet-solana/keeper/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-solana/keeper/src/idl/lvr_amm.ts b/packages/hyperbet-solana/keeper/src/idl/lvr_amm.ts index 1b3f8ba6..eebd3592 100644 --- a/packages/hyperbet-solana/keeper/src/idl/lvr_amm.ts +++ b/packages/hyperbet-solana/keeper/src/idl/lvr_amm.ts @@ -679,6 +679,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -727,6 +734,13 @@ export type LvrAmm = { "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "programData" + }, { "name": "systemProgram", "address": "11111111111111111111111111111111" @@ -1797,6 +1811,11 @@ export type LvrAmm = { "code": 6028, "name": "mathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "unauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/hyperbet-ui/src/idl/lvr_amm.json b/packages/hyperbet-ui/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/hyperbet-ui/src/idl/lvr_amm.json +++ b/packages/hyperbet-ui/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [ diff --git a/packages/market-maker-bot/src/idl/lvr_amm.json b/packages/market-maker-bot/src/idl/lvr_amm.json index 7cb1d36e..5c267929 100644 --- a/packages/market-maker-bot/src/idl/lvr_amm.json +++ b/packages/market-maker-bot/src/idl/lvr_amm.json @@ -673,6 +673,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -721,6 +728,13 @@ "writable": true, "signer": true }, + { + "name": "program", + "address": "12E8Lz5w8Qxyj8Fh6LgsCgPDQNJMCLMV1y43LhPrH66w" + }, + { + "name": "program_data" + }, { "name": "system_program", "address": "11111111111111111111111111111111" @@ -1791,6 +1805,11 @@ "code": 6028, "name": "MathFixedPointOverflow", "msg": "AMM fixed-point overflow" + }, + { + "code": 6029, + "name": "UnauthorizedInitializer", + "msg": "Initializer must be the program upgrade authority" } ], "types": [