update idl, add tokenmint to stuboracle for gpa (#34)

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
microwavedcola1 2022-04-03 05:43:32 +02:00 committed by GitHub
parent 884d638e36
commit 9debc63a6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 90 additions and 2 deletions

View File

@ -33,6 +33,7 @@ pub struct CreateStubOracle<'info> {
pub fn create_stub_oracle(ctx: Context<CreateStubOracle>, price: I80F48) -> Result<()> {
let mut oracle = ctx.accounts.oracle.load_init()?;
oracle.group = ctx.accounts.group.key();
oracle.mint = ctx.accounts.token_mint.key();
oracle.price = price;
oracle.last_updated = Clock::get()?.unix_timestamp;

View File

@ -17,11 +17,12 @@ pub enum OracleType {
#[account(zero_copy)]
pub struct StubOracle {
pub group: Pubkey,
pub mint: Pubkey,
pub price: I80F48,
pub last_updated: i64,
pub reserved: [u8; 8],
}
const_assert_eq!(size_of::<StubOracle>(), 32 + 16 + 8 + 8);
const_assert_eq!(size_of::<StubOracle>(), 32 + 32 + 16 + 8 + 8);
const_assert_eq!(size_of::<StubOracle>() % 8, 0);
pub fn determine_oracle_type(data: &[u8]) -> Result<OracleType> {

View File

@ -519,7 +519,7 @@ export async function getStubOracleForMint(
await client.program.account.mangoAccount.all([
{
memcmp: {
bytes: groupPk.toBase58(),
bytes: group.toBase58(),
offset: 8,
},
},

View File

@ -275,12 +275,22 @@ export type MangoV4 = {
{
"name": "createStubOracle",
"accounts": [
{
"name": "group",
"isMut": false,
"isSigner": false
},
{
"name": "oracle",
"isMut": true,
"isSigner": false,
"pda": {
"seeds": [
{
"kind": "account",
"type": "publicKey",
"path": "group"
},
{
"kind": "const",
"type": "string",
@ -295,6 +305,11 @@ export type MangoV4 = {
]
}
},
{
"name": "admin",
"isMut": false,
"isSigner": true
},
{
"name": "tokenMint",
"isMut": false,
@ -323,10 +338,25 @@ export type MangoV4 = {
{
"name": "setStubOracle",
"accounts": [
{
"name": "group",
"isMut": false,
"isSigner": false
},
{
"name": "admin",
"isMut": false,
"isSigner": true
},
{
"name": "oracle",
"isMut": true,
"isSigner": false
},
{
"name": "payer",
"isMut": true,
"isSigner": true
}
],
"args": [
@ -1574,6 +1604,10 @@ export type MangoV4 = {
"type": {
"kind": "struct",
"fields": [
{
"name": "group",
"type": "publicKey"
},
{
"name": "price",
"type": {
@ -1583,6 +1617,15 @@ export type MangoV4 = {
{
"name": "lastUpdated",
"type": "i64"
},
{
"name": "reserved",
"type": {
"array": [
"u8",
8
]
}
}
]
}
@ -2622,12 +2665,22 @@ export const IDL: MangoV4 = {
{
"name": "createStubOracle",
"accounts": [
{
"name": "group",
"isMut": false,
"isSigner": false
},
{
"name": "oracle",
"isMut": true,
"isSigner": false,
"pda": {
"seeds": [
{
"kind": "account",
"type": "publicKey",
"path": "group"
},
{
"kind": "const",
"type": "string",
@ -2642,6 +2695,11 @@ export const IDL: MangoV4 = {
]
}
},
{
"name": "admin",
"isMut": false,
"isSigner": true
},
{
"name": "tokenMint",
"isMut": false,
@ -2670,10 +2728,25 @@ export const IDL: MangoV4 = {
{
"name": "setStubOracle",
"accounts": [
{
"name": "group",
"isMut": false,
"isSigner": false
},
{
"name": "admin",
"isMut": false,
"isSigner": true
},
{
"name": "oracle",
"isMut": true,
"isSigner": false
},
{
"name": "payer",
"isMut": true,
"isSigner": true
}
],
"args": [
@ -3921,6 +3994,10 @@ export const IDL: MangoV4 = {
"type": {
"kind": "struct",
"fields": [
{
"name": "group",
"type": "publicKey"
},
{
"name": "price",
"type": {
@ -3930,6 +4007,15 @@ export const IDL: MangoV4 = {
{
"name": "lastUpdated",
"type": "i64"
},
{
"name": "reserved",
"type": {
"array": [
"u8",
8
]
}
}
]
}