@kamino-finance/klend-sdk
Version:
Typescript SDK for interacting with the Kamino Lending (klend) protocol
575 lines (574 loc) • 12.6 kB
JSON
{
"version": "0.2.0",
"name": "pyth_solana_receiver",
"instructions": [
{
"name": "requestGovernanceAuthorityTransfer",
"accounts": [
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "config",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "targetGovernanceAuthority",
"type": "publicKey"
}
]
},
{
"name": "acceptGovernanceAuthorityTransfer",
"accounts": [
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "config",
"isMut": true,
"isSigner": false
}
],
"args": []
},
{
"name": "setDataSources",
"accounts": [
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "config",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "validDataSources",
"type": {
"vec": {
"defined": "DataSource"
}
}
}
]
},
{
"name": "setFee",
"accounts": [
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "config",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "singleUpdateFeeInLamports",
"type": "u64"
}
]
},
{
"name": "setWormholeAddress",
"accounts": [
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "config",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "wormhole",
"type": "publicKey"
}
]
},
{
"name": "setMinimumSignatures",
"accounts": [
{
"name": "payer",
"isMut": false,
"isSigner": true
},
{
"name": "config",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "minimumSignatures",
"type": "u8"
}
]
},
{
"name": "reclaimRent",
"accounts": [
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "priceUpdateAccount",
"isMut": true,
"isSigner": false
}
],
"args": []
},
{
"name": "reclaimTwapRent",
"accounts": [
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "twapUpdateAccount",
"isMut": true,
"isSigner": false
}
],
"args": []
}
],
"accounts": [
{
"name": "Config",
"type": {
"kind": "struct",
"fields": [
{
"name": "governanceAuthority",
"type": "publicKey"
},
{
"name": "targetGovernanceAuthority",
"type": {
"option": "publicKey"
}
},
{
"name": "wormhole",
"type": "publicKey"
},
{
"name": "validDataSources",
"type": {
"vec": {
"defined": "DataSource"
}
}
},
{
"name": "singleUpdateFeeInLamports",
"type": "u64"
},
{
"name": "minimumSignatures",
"type": "u8"
}
]
}
},
{
"name": "priceUpdateV2",
"type": {
"kind": "struct",
"fields": [
{
"name": "writeAuthority",
"type": "publicKey"
},
{
"name": "verificationLevel",
"type": {
"defined": "VerificationLevel"
}
},
{
"name": "priceMessage",
"type": {
"defined": "PriceFeedMessage"
}
},
{
"name": "postedSlot",
"type": "u64"
}
]
}
},
{
"name": "twapUpdate",
"type": {
"kind": "struct",
"fields": [
{
"name": "writeAuthority",
"type": "publicKey"
},
{
"name": "twap",
"type": {
"defined": "TwapPrice"
}
}
]
}
}
],
"types": [
{
"name": "PriceFeedMessage",
"type": {
"kind": "struct",
"fields": [
{
"name": "feedId",
"type": {
"array": ["u8", 32]
}
},
{
"name": "price",
"type": "i64"
},
{
"name": "conf",
"type": "u64"
},
{
"name": "exponent",
"type": "i32"
},
{
"name": "publishTime",
"type": "i64"
},
{
"name": "prevPublishTime",
"type": "i64"
},
{
"name": "emaPrice",
"type": "i64"
},
{
"name": "emaConf",
"type": "u64"
}
]
}
},
{
"name": "TwapPrice",
"docs": [
"The time weighted average price & conf for a feed over the window [start_time, end_time].",
"This type is used to persist the calculated TWAP in TwapUpdate accounts on Solana."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "feedId",
"type": {
"array": ["u8", 32]
}
},
{
"name": "startTime",
"type": "i64"
},
{
"name": "endTime",
"type": "i64"
},
{
"name": "price",
"type": "i64"
},
{
"name": "conf",
"type": "u64"
},
{
"name": "exponent",
"type": "i32"
},
{
"name": "downSlotsRatio",
"docs": [
"Ratio out of 1_000_000, where a value of 1_000_000 represents",
"all slots were missed and 0 represents no slots were missed."
],
"type": "u32"
}
]
}
},
{
"name": "MerklePriceUpdate",
"type": {
"kind": "struct",
"fields": [
{
"name": "message",
"type": "bytes"
},
{
"name": "proof",
"type": {
"vec": {
"array": ["u8", 20]
}
}
}
]
}
},
{
"name": "DataSource",
"type": {
"kind": "struct",
"fields": [
{
"name": "chain",
"type": "u16"
},
{
"name": "emitter",
"type": "publicKey"
}
]
}
},
{
"name": "PostUpdateAtomicParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "vaa",
"type": "bytes"
},
{
"name": "merklePriceUpdate",
"type": {
"defined": "MerklePriceUpdate"
}
},
{
"name": "treasuryId",
"type": "u8"
}
]
}
},
{
"name": "PostUpdateParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "merklePriceUpdate",
"type": {
"defined": "MerklePriceUpdate"
}
},
{
"name": "treasuryId",
"type": "u8"
}
]
}
},
{
"name": "PostTwapUpdateParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "startMerklePriceUpdate",
"type": {
"defined": "MerklePriceUpdate"
}
},
{
"name": "endMerklePriceUpdate",
"type": {
"defined": "MerklePriceUpdate"
}
},
{
"name": "treasuryId",
"type": "u8"
}
]
}
},
{
"name": "VerificationLevel",
"docs": [
"* This enum represents how many guardian signatures were checked for a Pythnet price update\n * If full, guardian quorum has been attained\n * If partial, at least config.minimum signatures have been verified, but in the case config.minimum_signatures changes in the future we also include the number of signatures that were checked"
],
"type": {
"kind": "enum",
"variants": [
{
"name": "Partial",
"fields": [
{
"name": "numSignatures",
"type": "u8"
}
]
},
{
"name": "Full"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "InvalidWormholeMessage",
"msg": "Received an invalid wormhole message"
},
{
"code": 6001,
"name": "DeserializeMessageFailed",
"msg": "An error occurred when deserializing the message"
},
{
"code": 6002,
"name": "InvalidPriceUpdate",
"msg": "Received an invalid price update"
},
{
"code": 6003,
"name": "UnsupportedMessageType",
"msg": "This type of message is not supported currently"
},
{
"code": 6004,
"name": "InvalidDataSource",
"msg": "The tuple emitter chain, emitter doesn't match one of the valid data sources."
},
{
"code": 6005,
"name": "InsufficientFunds",
"msg": "Funds are insufficient to pay the receiving fee"
},
{
"code": 6006,
"name": "WrongWriteAuthority",
"msg": "This signer can't write to price update account"
},
{
"code": 6007,
"name": "WrongVaaOwner",
"msg": "The posted VAA account has the wrong owner."
},
{
"code": 6008,
"name": "DeserializeVaaFailed",
"msg": "An error occurred when deserializing the VAA."
},
{
"code": 6009,
"name": "InsufficientGuardianSignatures",
"msg": "The number of guardian signatures is below the minimum"
},
{
"code": 6010,
"name": "InvalidVaaVersion",
"msg": "Invalid VAA version"
},
{
"code": 6011,
"name": "GuardianSetMismatch",
"msg": "Guardian set version in the VAA doesn't match the guardian set passed"
},
{
"code": 6012,
"name": "InvalidGuardianOrder",
"msg": "Guardian signature indices must be increasing"
},
{
"code": 6013,
"name": "InvalidGuardianIndex",
"msg": "Guardian index exceeds the number of guardians in the set"
},
{
"code": 6014,
"name": "InvalidSignature",
"msg": "A VAA signature is invalid"
},
{
"code": 6015,
"name": "InvalidGuardianKeyRecovery",
"msg": "The recovered guardian public key doesn't match the guardian set"
},
{
"code": 6016,
"name": "WrongGuardianSetOwner",
"msg": "The guardian set account is owned by the wrong program"
},
{
"code": 6017,
"name": "InvalidGuardianSetPda",
"msg": "The Guardian Set account doesn't match the PDA derivation"
},
{
"code": 6018,
"name": "GuardianSetExpired",
"msg": "The Guardian Set is expired"
},
{
"code": 6019,
"name": "GovernanceAuthorityMismatch",
"msg": "The signer is not authorized to perform this governance action"
},
{
"code": 6020,
"name": "TargetGovernanceAuthorityMismatch",
"msg": "The signer is not authorized to accept the governance authority"
},
{
"code": 6021,
"name": "NonexistentGovernanceAuthorityTransferRequest",
"msg": "The governance authority needs to request a transfer first"
}
]
}