code review

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
microwavedcola1 2022-03-01 06:28:12 +01:00
parent c626b68a4a
commit d9c7260375
5 changed files with 10 additions and 13 deletions

View File

@ -7,5 +7,7 @@ pub enum MangoError {
#[msg("")]
SomeError,
#[msg("")]
UnknownOracle,
UnexpectedOracle,
#[msg("")]
UnknownOracleType,
}

View File

@ -132,6 +132,8 @@ pub fn withdraw(ctx: Context<Withdraw>, amount: u64, allow_borrow: bool) -> Resu
// converts the token value to the basis token value for health computations
// TODO: health basis token == USDC?
let oracle_type = determine_oracle_type(oracle_ai)?;
require!(bank.oracle == oracle_ai.key(), MangoError::UnexpectedOracle);
let price = match oracle_type {
OracleType::Stub => {
AccountLoader::<'_, StubOracle>::try_from(oracle_ai)?

View File

@ -23,5 +23,5 @@ pub fn determine_oracle_type(account: &AccountInfo) -> Result<OracleType> {
return Ok(OracleType::Stub);
}
Err(MangoError::UnknownOracle.into())
Err(MangoError::UnknownOracleType.into())
}

View File

@ -7,6 +7,7 @@ use solana_program::instruction::Instruction;
use solana_sdk::instruction;
use solana_sdk::signature::{Keypair, Signer};
use solana_sdk::transport::TransportError;
use std::str::FromStr;
use super::solana::SolanaCookie;
use mango_v4::state::*;
@ -294,6 +295,7 @@ impl<'keypair> ClientInstruction for RegisterTokenInstruction<'keypair> {
pub struct SetStubOracle<'keypair> {
pub mint: Pubkey,
pub payer: &'keypair Keypair,
pub price: &'static str,
}
#[async_trait::async_trait(?Send)]
impl<'keypair> ClientInstruction for SetStubOracle<'keypair> {
@ -306,7 +308,7 @@ impl<'keypair> ClientInstruction for SetStubOracle<'keypair> {
) -> (Self::Accounts, Instruction) {
let program_id = mango_v4::id();
let instruction = Self::Instruction {
price: I80F48::from_num(1.0),
price: I80F48::from_str(self.price).unwrap(),
};
let oracle = Pubkey::find_program_address(

View File

@ -65,16 +65,7 @@ async fn test_basic() -> Result<(), TransportError> {
SetStubOracle {
mint: mint0.pubkey,
payer,
},
)
.await
.unwrap();
send_tx(
solana,
CreateStubOracle {
mint: mint0.pubkey,
payer,
price: "1.0",
},
)
.await