UNPKG

@pythnetwork/client

Version:

Client for consuming Pyth price data

731 lines (730 loc) 21.2 kB
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: []; }; } ]; };