Instruction introspection: don't hardcode discriminators

Patch anchor to allow access to the generated discriminators.
This commit is contained in:
Christian Kamm 2022-08-05 20:32:57 +02:00
parent e4a073c83b
commit 2880a2ec88
3 changed files with 6 additions and 3 deletions

2
anchor

@ -1 +1 @@
Subproject commit 442c00634e847af84672727dc00b45a2c8d0a956
Subproject commit b52f23614601652a99ec6c27aec77bd327363b31

View File

@ -10,6 +10,7 @@ use crate::state::{
use crate::util::checked_math as cm;
use anchor_lang::prelude::*;
use anchor_lang::solana_program::sysvar::instructions as tx_instructions;
use anchor_lang::Discriminator;
use anchor_spl::token::{self, Token, TokenAccount};
use fixed::types::I80F48;
@ -141,7 +142,7 @@ pub fn flash_loan_begin<'key, 'accounts, 'remaining, 'info>(
// must be the FlashLoanEnd instruction
require!(
ix.data[0..8] == [178, 170, 2, 78, 240, 23, 190, 178],
ix.data[0..8] == crate::instruction::FlashLoanEnd::discriminator(),
MangoError::SomeError
);

View File

@ -8,6 +8,7 @@ use crate::{
state::{oracle_price, Bank, Group, MintInfo},
};
use anchor_lang::solana_program::sysvar::instructions as tx_instructions;
use anchor_lang::Discriminator;
use checked_math as cm;
use fixed::types::I80F48;
@ -46,7 +47,8 @@ pub fn token_update_index_and_rate(ctx: Context<TokenUpdateIndexAndRate>) -> Res
// 2. we want to forbid cpi, since ix we would like to blacklist could just be called from cpi
require!(
ix.program_id == crate::id()
&& ix.data[0..8] == [131, 136, 194, 39, 11, 50, 10, 198], // token_update_index_and_rate
&& ix.data[0..8]
== crate::instruction::TokenUpdateIndexAndRate::discriminator(),
MangoError::SomeError
);