@pythnetwork/client
Version:
Client for consuming Pyth price data
731 lines (730 loc) • 21.2 kB
TypeScript
import { AnchorProvider, Program } from '@coral-xyz/anchor';
import { PublicKey } from '@solana/web3.js';
import { PythOracleCoder } from './coder';
/** The Pyth program is not fully compatible with Anchor idls.
* However it can be interacted with from Anchor clients by using PythOracleCoder from this library.
* It currently only supports instructions. To deserialize accounts one can use the non-Anchor
* parsing functions from this package.
*/
export declare function pythOracleProgram(programId: PublicKey, provider: AnchorProvider): Program<PythOracle>;
export declare function pythOracleCoder(): PythOracleCoder;
export { default as pythIdl } from './idl.json';
export declare type PythOracle = {
version: '2.33.0';
name: 'pyth_oracle';
instructions: [
{
name: 'initMapping';
discriminant: {
value: [2, 0, 0, 0, 0, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'freshMappingAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [];
},
{
name: 'addMapping';
discriminant: {
value: [2, 0, 0, 0, 1, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'curMapping';
isMut: true;
isSigner: false;
},
{
name: 'nextMapping';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [];
},
{
name: 'addProduct';
discriminant: {
value: [2, 0, 0, 0, 2, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'tailMappingAccount';
isMut: true;
isSigner: false;
},
{
name: 'productAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'productMetadata';
type: {
defined: 'ProductMetadata';
};
}
];
},
{
name: 'updProduct';
discriminant: {
value: [2, 0, 0, 0, 3, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'productAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'productMetadata';
type: {
defined: 'ProductMetadata';
};
}
];
},
{
name: 'addPrice';
discriminant: {
value: [2, 0, 0, 0, 4, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'productAccount';
isMut: true;
isSigner: false;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'expo';
type: 'i32';
},
{
name: 'pType';
type: 'u32';
}
];
},
{
name: 'addPublisher';
discriminant: {
value: [2, 0, 0, 0, 5, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'pub';
type: 'publicKey';
}
];
},
{
name: 'delPublisher';
discriminant: {
value: [2, 0, 0, 0, 6, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'pub';
type: 'publicKey';
}
];
},
{
name: 'updPrice';
discriminant: {
value: [2, 0, 0, 0, 7, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'status';
type: 'u32';
},
{
name: 'unused';
type: 'u32';
},
{
name: 'price';
type: 'i64';
},
{
name: 'conf';
type: 'u64';
},
{
name: 'pubSlot';
type: 'u64';
}
];
},
{
name: 'aggPrice';
discriminant: {
value: [2, 0, 0, 0, 8, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'status';
type: 'u32';
},
{
name: 'unused';
type: 'u32';
},
{
name: 'price';
type: 'i64';
},
{
name: 'conf';
type: 'u64';
},
{
name: 'pubSlot';
type: 'u64';
}
];
},
{
name: 'setExponent';
discriminant: {
value: [2, 0, 0, 0, 9, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'expo';
type: 'i32';
},
{
name: 'pType';
type: 'u32';
}
];
},
{
name: 'setMinPub';
discriminant: {
value: [2, 0, 0, 0, 12, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'minPub';
type: 'u8';
},
{
name: 'unused';
type: {
array: ['u8', 3];
};
}
];
},
{
name: 'updPriceNoFailOnError';
discriminant: {
value: [2, 0, 0, 0, 13, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'status';
type: 'u32';
},
{
name: 'unused';
type: 'u32';
},
{
name: 'price';
type: 'i64';
},
{
name: 'conf';
type: 'u64';
},
{
name: 'pubSlot';
type: 'u64';
}
];
},
{
name: 'delPrice';
discriminant: {
value: [2, 0, 0, 0, 15, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'productAccount';
isMut: true;
isSigner: false;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [];
},
{
name: 'delProduct';
discriminant: {
value: [2, 0, 0, 0, 16, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'mappingAccount';
isMut: true;
isSigner: false;
},
{
name: 'productAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [];
},
{
name: 'updPermissions';
discriminant: {
value: [2, 0, 0, 0, 17, 0, 0, 0];
};
accounts: [
{
name: 'upgradeAuthority';
isMut: true;
isSigner: true;
},
{
name: 'programDataAccount';
isMut: false;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'masterAuthority';
type: 'publicKey';
},
{
name: 'dataCurationAuthority';
type: 'publicKey';
},
{
name: 'securityAuthority';
type: 'publicKey';
}
];
},
{
name: 'setMaxLatency';
discriminant: {
value: [2, 0, 0, 0, 18, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: false;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [
{
name: 'maxLatency';
type: 'u8';
},
{
name: 'unused';
type: {
array: ['u8', 3];
};
}
];
},
{
name: 'initPriceFeedIndex';
discriminant: {
value: [2, 0, 0, 0, 19, 0, 0, 0];
};
accounts: [
{
name: 'fundingAccount';
isMut: true;
isSigner: true;
},
{
name: 'priceAccount';
isMut: true;
isSigner: false;
},
{
name: 'permissionsAccount';
isMut: true;
isSigner: false;
pda: {
seeds: [
{
kind: 'const';
type: 'string';
value: 'permissions';
}
];
};
}
];
args: [];
}
];
types: [
{
name: 'ProductMetadata';
type: {
kind: 'struct';
fields: [];
};
}
];
};