sbv2-solana/website/idl/descriptions.json

3248 lines
85 KiB
JSON

{
"accounts": [
{
"name": "AggregatorAccountData",
"description": "<b>Size: </b>3851 Bytes<br /><b>Rent Exemption: </b>0.027693840 SOL<br /><br />",
"children": [
{
"name": "name",
"description": "Name of the aggregator to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the aggregator to store on-chain."
},
{
"name": "reserved1",
"description": "Reserved."
},
{
"name": "queuePubkey",
"description": "Pubkey of the queue the aggregator belongs to."
},
{
"name": "oracleRequestBatchSize",
"description": "Number of oracles assigned to an update request."
},
{
"name": "minOracleResults",
"description": "Minimum number of oracle responses required before a round is validated."
},
{
"name": "minJobResults",
"description": "Minimum number of job results before an oracle accepts a result."
},
{
"name": "minUpdateDelaySeconds",
"description": "Minimum number of seconds required between aggregator rounds."
},
{
"name": "startAfter",
"description": "unix_timestamp for which no feed update will occur before."
},
{
"name": "varianceThreshold",
"description": "Change percentage required between a previous round and the current round. If variance percentage is not met, reject new oracle responses."
},
{
"name": "forceReportPeriod",
"description": "Number of seconds for which, even if the variance threshold is not passed, accept new responses from oracles."
},
{
"name": "expiration",
"description": "Timestamp when the feed is no longer needed."
},
{
"name": "consecutiveFailureCount",
"description": "Counter for the number of consecutive failures before a feed is removed from a queue. If set to 0, failed feeds will remain on the queue."
},
{
"name": "nextAllowedUpdateTime",
"description": "Timestamp when the next update request will be available."
},
{
"name": "isLocked",
"description": "Flag for whether an aggregators configuration is locked for editing."
},
{
"name": "crankPubkey",
"description": "Optional, public key of the crank the aggregator is currently using. Event based feeds do not need a crank."
},
{
"name": "latestConfirmedRound",
"description": "Latest confirmed update request result that has been accepted as valid."
},
{
"name": "currentRound",
"description": "Oracle results from the current round of update request that has not been accepted as valid yet."
},
{
"name": "jobPubkeysData",
"description": "List of public keys containing the job definitions for how data is sourced off-chain by oracles."
},
{
"name": "jobHashes",
"description": "Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment."
},
{
"name": "jobPubkeysSize",
"description": "Number of jobs assigned to an oracle."
},
{
"name": "jobsChecksum",
"description": "Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment."
},
{
"name": "authority",
"description": "The account delegated as the authority for making account changes or withdrawing funds from a lease."
},
{
"name": "historyBuffer",
"description": "Optional, public key of a history buffer account storing the last N accepted results and their timestamps."
},
{
"name": "previousConfirmedRoundResult",
"description": "The previous confirmed round result."
},
{
"name": "previousConfirmedRoundSlot",
"description": "The slot when the previous confirmed round was opened."
},
{
"name": "disableCrank",
"description": "Whether an aggregator is permitted to join a crank."
},
{
"name": "jobWeights",
"description": "Job weights used for the weighted median of the aggregator's assigned job accounts."
},
{
"name": "ebuf",
"description": "Reserved."
}
]
},
{
"name": "BufferRelayerAccountData",
"description": "",
"children": [
{
"name": "name",
"description": "Name of the buffer account to store on-chain."
},
{
"name": "queuePubkey",
"description": "Public key of the OracleQueueAccountData that is currently assigned to fulfill buffer relayer update request"
},
{
"name": "escrow",
"description": "Token account to reward oracles for completing update request"
},
{
"name": "authority",
"description": "The account delegated as the authority for making account changes."
},
{
"name": "jobPubkey",
"description": "Public key of the JobAccountData that defines how the buffer relayer is updated"
},
{
"name": "jobHash",
"description": "Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment"
},
{
"name": "minUpdateDelaySeconds",
"description": "Minimum delay between update request"
},
{
"name": "isLocked",
"description": "Whether buffer relayer config is locked for further changes"
},
{
"name": "currentRound",
"description": "The current buffer relayer update round that is yet to be confirmed"
},
{
"name": "latestConfirmedRound",
"description": "The latest confirmed buffer relayer update round"
},
{
"name": "result",
"description": "The buffer holding the latest confirmed result"
}
]
},
{
"name": "CrankAccountData",
"description": "<b>Size: </b>432 Bytes<br /><b>Rent Exemption: </b>0.003897600 SOL<br /><br />",
"children": [
{
"name": "name",
"description": "Name of the crank to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the crank to store on-chain."
},
{
"name": "queuePubkey",
"description": "Public key of the oracle queue who owns the crank"
},
{
"name": "pqSize",
"description": "Number of aggregators added to the crank"
},
{
"name": "maxRows",
"description": "Maximum number of aggregators allowed to be added to a crank"
},
{
"name": "jitterModifier",
"description": "Pseudorandom value added to next aggregator update time"
},
{
"name": "ebuf",
"description": "Reserved"
},
{
"name": "dataBuffer",
"description": " The public key of the CrankBuffer account holding a collection of Aggregator pubkeys and their next allowed update time."
}
]
},
{
"name": "JobAccountData",
"description": "<b>Size: </b>181 Bytes<br /><b>Rent Exemption: </b>0.002150640 SOL<br /><br />",
"children": [
{
"name": "name",
"description": "Name of the job to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the job to store on-chain."
},
{
"name": "authority",
"description": "The account delegated as the authority for making account changes."
},
{
"name": "authorWallet",
"description": "An optional wallet for receiving kickbacks from job usage in feeds. Defaults to token vault."
},
{
"name": "expiration",
"description": "Timestamp when the job is considered invalid"
},
{
"name": "hash",
"description": "Hash of the serialized data to prevent tampering"
},
{
"name": "data",
"description": "Serialized protobuf containing the collection of task to retrieve data off-chain"
},
{
"name": "referenceCount",
"description": "The number of data feeds referencing the job account."
},
{
"name": "totalSpent",
"description": ""
},
{
"name": "createdAt",
"description": "Timestamp when the job account was created."
}
]
},
{
"name": "LeaseAccountData",
"description": "<b>Size: </b>453 Bytes<br /><b>Rent Exemption: </b>0.004043760 SOL<br /><br />",
"children": [
{
"name": "escrow",
"description": "Public key of the token account holding the lease contract funds until rewarded to oracles for successfully processing updates"
},
{
"name": "queue",
"description": "Public key of the oracle queue that the lease contract is applicable for"
},
{
"name": "aggregator",
"description": "Public key of the aggregator that the lease contract is applicable for"
},
{
"name": "tokenProgram",
"description": "Public key of the Solana token program ID"
},
{
"name": "isActive",
"description": "Whether the lease contract is still active"
},
{
"name": "crankRowCount",
"description": "Index of an aggregators position on a crank"
},
{
"name": "createdAt",
"description": "Timestamp when the lease contract was created"
},
{
"name": "updateCount",
"description": "Counter keeping track of the number of updates for the given aggregator"
},
{
"name": "withdrawAuthority",
"description": "Public key of keypair that may withdraw funds from the lease at any time"
},
{
"name": "ebuf",
"description": "Reserved"
}
]
},
{
"name": "OracleAccountData",
"description": "<b>Size: </b>636 Bytes<br /><b>Rent Exemption: </b>0.00531744 SOL<br /><br />",
"children": [
{
"name": "name",
"description": "Name of the oracle to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the oracle to store on-chain."
},
{
"name": "oracleAuthority",
"description": "The account delegated as the authority for making account changes or withdrawing funds from a staking wallet."
},
{
"name": "lastHeartbeat",
"description": "Timestamp when the oracle last heartbeated"
},
{
"name": "numInUse",
"description": "Flag dictating if an oracle is active and has heartbeated before the queue's oracle timeout parameter"
},
{
"name": "tokenAccount",
"description": "Stake account and reward/slashing wallet"
},
{
"name": "queuePubkey",
"description": "Public key of the oracle queue who has granted it permission to use its resources"
},
{
"name": "metrics",
"description": "Oracle track record"
},
{
"name": "ebuf",
"description": "Reserved"
}
]
},
{
"name": "OracleQueueAccountData",
"description": "<b>Size: </b>1269 Bytes<br /><b>Rent Exemption: </b>0.009723120 SOL<br /><br />",
"children": [
{
"name": "name",
"description": "Name of the queue to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the queue to store on-chain."
},
{
"name": "authority",
"description": "The account delegated as the authority for making account changes or assigning permissions targeted at the queue."
},
{
"name": "oracleTimeout",
"description": "Time period we should remove an oracle after if no response."
},
{
"name": "reward",
"description": "Rewards to provide oracles and round openers on this queue."
},
{
"name": "minStake",
"description": "The minimum amount of stake oracles must present to remain on the queue."
},
{
"name": "slashingEnabled",
"description": "Whether slashing is enabled on this queue."
},
{
"name": "varianceToleranceMultiplier",
"description": "The tolerated variance amount oracle results can have from the accepted round result before being slashed. slashBound = varianceToleranceMultiplier * stdDeviation Default: 2"
},
{
"name": "feedProbationPeriod",
"description": "After a feed lease is funded or re-funded, it must consecutively succeed N amount of times or its authorization to use the queue is auto-revoked."
},
{
"name": "currIdx",
"description": "Current index of the oracle rotation."
},
{
"name": "size",
"description": "Current number of oracles on a queue."
},
{
"name": "gcIdx",
"description": "Garbage collection index."
},
{
"name": "consecutiveFeedFailureLimit",
"description": "Consecutive failure limit for a feed before feed permission is revoked."
},
{
"name": "consecutiveOracleFailureLimit",
"description": "Consecutive failure limit for an oracle before oracle permission is revoked."
},
{
"name": "unpermissionedFeedsEnabled",
"description": "Enabling this setting means data feeds do not need explicit permission to join the queue and request new values from its oracles."
},
{
"name": "unpermissionedVrfEnabled",
"description": "Enabling this setting means VRF accounts do not need explicit permission to join the queue and request new values from its oracles."
},
{
"name": "curatorRewardCut",
"description": "Not implemented yet. Revenue percentage rewarded to job curators overall."
},
{
"name": "lockLeaseFunding",
"description": "Prevent new leases from being funded n this queue. Useful to turn down a queue for migrations, since authority is always immutable."
},
{
"name": "mint",
"description": "Token mint used for the oracle queue rewards and slashing."
},
{
"name": "enableBufferRelayers",
"description": "Whether oracles are permitted to fulfill buffer relayer update request."
},
{
"name": "ebuf",
"description": "Reserved."
},
{
"name": "maxSize",
"description": "Maximum number of oracles a queue can support."
},
{
"name": "dataBuffer",
"description": "The public key of the OracleQueueBuffer account holding a collection of Oracle pubkeys that haver successfully heartbeated before the queues `oracleTimeout`."
}
]
},
{
"name": "PermissionAccountData",
"description": "<b>Size: </b>372 Bytes<br /><b>Rent Exemption: </b>0.003480000 SOL<br /><br />",
"children": [
{
"name": "authority",
"description": "The authority that is allowed to set permissions for this account."
},
{
"name": "permissions",
"description": "The SwitchboardPermission enumeration assigned by the `granter` to the `grantee`."
},
{
"name": "granter",
"description": "Public key of account that is granting permissions to use its resources."
},
{
"name": "grantee",
"description": "Public key of account that is being assigned permissions to use a granters resources."
},
{
"name": "expiration",
"description": "Timestamp when the permissions expire."
},
{
"name": "ebuf",
"description": "Reserved."
}
]
},
{
"name": "SbState",
"description": "<b>Size: </b>1128 Bytes<br /><b>Rent Exemption: </b>0.008741760 SOL<br /><br />",
"children": [
{
"name": "authority",
"description": "The account authority permitted to make account changes."
},
{
"name": "tokenMint",
"description": "The token mint used for oracle rewards, aggregator leases, and other reward incentives."
},
{
"name": "tokenVault",
"description": "Token vault used by the program to receive kickbacks."
},
{
"name": "daoMint",
"description": "The token mint used by the DAO."
},
{
"name": "ebuf",
"description": "Reserved."
}
]
},
{
"name": "VrfAccountData",
"description": "<b>Size: </b>29058 Bytes<br /><b>Rent Exemption: </b>0.203134560SOL<br /><br />",
"children": [
{
"name": "status",
"description": "The current status of the VRF account."
},
{
"name": "counter",
"description": "Incremental counter for tracking VRF rounds."
},
{
"name": "authority",
"description": "On-chain account delegated for making account changes."
},
{
"name": "oracleQueue",
"description": "The OracleQueueAccountData that is assigned to fulfill VRF update request."
},
{
"name": "escrow",
"description": "The token account used to hold funds for VRF update request."
},
{
"name": "callback",
"description": "The callback that is invoked when an update request is successfully verified."
},
{
"name": "batchSize",
"description": "The number of oracles assigned to a VRF update request."
},
{
"name": "builders",
"description": "Struct containing the intermediate state between VRF crank actions."
},
{
"name": "buildersLen",
"description": "The number of builders."
},
{
"name": "currentRound",
"description": "Oracle results from the current round of update request that has not been accepted as valid yet"
},
{
"name": "ebuf",
"description": "Reserved."
}
]
}
],
"types": [
{
"name": "AggregatorAddJobParams",
"description": "",
"children": []
},
{
"name": "AggregatorHistoryRow",
"description": "",
"children": [
{
"name": "timestamp",
"description": "The timestamp of the sample."
},
{
"name": "value",
"description": "The value of the sample."
}
]
},
{
"name": "AggregatorInitParams",
"description": "Parameters to create and initialize the AggregatorAccount.",
"children": [
{
"name": "name",
"description": "Name of the aggregator to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the aggregator to store on-chain."
},
{
"name": "batchSize",
"description": "Number of oracles to request on aggregator update."
},
{
"name": "minOracleResults",
"description": "Minimum number of oracle responses required before a round is validated."
},
{
"name": "minJobResults",
"description": "Minimum number of feed jobs suggested to be successful before an oracle sends a response."
},
{
"name": "minUpdateDelaySeconds",
"description": "Minimum number of seconds required between aggregator rounds."
},
{
"name": "startAfter",
"description": "unix_timestamp for which no feed update will occur before."
},
{
"name": "varianceThreshold",
"description": "Change percentage required between a previous round and the current round. If variance percentage is not met, reject new oracle responses."
},
{
"name": "forceReportPeriod",
"description": "Number of seconds for which, even if the variance threshold is not passed, accept new responses from oracles."
},
{
"name": "expiration",
"description": "unix_timestamp after which funds may be withdrawn from the aggregator. null/undefined/0 means the feed has no expiration."
},
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
}
]
},
{
"name": "AggregatorLockParams",
"description": "",
"children": []
},
{
"name": "AggregatorOpenRoundParams",
"description": "",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "leaseBump",
"description": ""
},
{
"name": "permissionBump",
"description": ""
},
{
"name": "jitter",
"description": ""
}
]
},
{
"name": "AggregatorRemoveJobParams",
"description": "",
"children": [
{
"name": "jobIdx",
"description": ""
}
]
},
{
"name": "AggregatorRound",
"description": "",
"children": [
{
"name": "numSuccess",
"description": "Number of successful responses"
},
{
"name": "numError",
"description": "Number of error responses"
},
{
"name": "isClosed",
"description": "Whether an update request round has ended"
},
{
"name": "roundOpenSlot",
"description": "Solana slot when the update request round was open"
},
{
"name": "roundOpenTimestamp",
"description": "Timestamp when the update request round was open"
},
{
"name": "result",
"description": "Maintains the current median of all successful round responses"
},
{
"name": "stdDeviation",
"description": "Standard deviation of the accepted results in the round"
},
{
"name": "minResponse",
"description": "Maintains the minimum oracle response this round"
},
{
"name": "maxResponse",
"description": "Maintains the maximum oracle response this round"
},
{
"name": "oraclePubkeysData",
"description": "Public keys of the oracles fulfilling this round"
},
{
"name": "mediansData",
"description": "Represents all successful node responses this round. `NaN` if empty"
},
{
"name": "currentPayout",
"description": "Rewards to provide oracles and round openers on this queue."
},
{
"name": "mediansFulfilled",
"description": "Keeps track of which responses are fulfilled here"
},
{
"name": "errorsFulfilled",
"description": "Keeps track of which errors are fulfilled here"
}
]
},
{
"name": "AggregatorSaveResultParams",
"description": "",
"children": [
{
"name": "oracleIdx",
"description": ""
},
{
"name": "error",
"description": ""
},
{
"name": "value",
"description": ""
},
{
"name": "jobsChecksum",
"description": ""
},
{
"name": "minResponse",
"description": ""
},
{
"name": "maxResponse",
"description": ""
},
{
"name": "feedPermissionBump",
"description": ""
},
{
"name": "oraclePermissionBump",
"description": ""
},
{
"name": "leaseBump",
"description": ""
},
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
}
]
},
{
"name": "AggregatorSetAuthorityParams",
"description": "",
"children": []
},
{
"name": "AggregatorSetBatchSizeParams",
"description": "Set the number of oracles to request an update from each round.",
"children": [
{
"name": "batchSize",
"description": "Number of oracles to request on aggregator update."
}
]
},
{
"name": "AggregatorSetHistoryBufferParams",
"description": "",
"children": []
},
{
"name": "AggregatorSetMinJobsParams",
"description": "Set the minimum number of feed jobs suggested to be successful before an oracle sends a response.",
"children": [
{
"name": "minJobResults",
"description": "Minimum number of feed jobs suggested to be successful before an oracle sends a response."
}
]
},
{
"name": "AggregatorSetMinOraclesParams",
"description": "Set the minimum number of oracle responses required before a round is validated.",
"children": [
{
"name": "minOracleResults",
"description": "Minimum number of oracle responses required before a round is validated."
}
]
},
{
"name": "AggregatorSetQueueParams",
"description": "",
"children": []
},
{
"name": "AggregatorSetVarianceThresholdParams",
"description": "Set the change percentage required between a previous round and the current round. If variance percentage is not met, reject new oracle responses.",
"children": [
{
"name": "varianceThreshold",
"description": "Change percentage required between a previous round and the current round. If variance percentage is not met, reject new oracle responses."
}
]
},
{
"name": "BorshDecimal",
"description": "",
"children": [
{
"name": "mantissa",
"description": "The part of a floating-point number that represents the significant digits of that number, and that is multiplied by the base raised to the exponent to give the actual value of the number."
},
{
"name": "scale",
"description": "The number of decimal places to move to the left to yield the actual value."
}
]
},
{
"name": "BufferRelayerRound",
"description": "",
"children": [
{
"name": "numSuccess",
"description": "Number of successful responses"
},
{
"name": "numError",
"description": "Number of error responses"
},
{
"name": "roundOpenSlot",
"description": "Slot when the buffer relayer round was opened"
},
{
"name": "roundOpenTimestamp",
"description": "Timestamp when the buffer relayer round was opened"
},
{
"name": "oraclePubkey",
"description": "The public key of the oracle fulfilling the buffer relayer update request"
}
]
},
{
"name": "CallbackZC",
"description": "",
"children": [
{
"name": "programId",
"description": "The program ID of the callback program being invoked."
},
{
"name": "accounts",
"description": "The accounts being used in the callback instruction."
},
{
"name": "accountsLen",
"description": "The number of accounts in the accounts array."
},
{
"name": "ixData",
"description": "The serialized instruction data."
},
{
"name": "ixDataLen",
"description": "The length of the instruction buffer."
}
]
},
{
"name": "Callback",
"description": "",
"children": [
{
"name": "programId",
"description": "The program ID of the callback program being invoked."
},
{
"name": "accounts",
"description": "The accounts being used in the callback instruction."
},
{
"name": "ixData",
"description": "The serialized instruction data."
}
]
},
{
"name": "CrankInitParams",
"description": "Parameters to create and initialize the CrankAccount.",
"children": [
{
"name": "name",
"description": ""
},
{
"name": "metadata",
"description": "Metadata of the crank to store on-chain."
},
{
"name": "crankSize",
"description": ""
}
]
},
{
"name": "CrankPopParams",
"description": "Pops an aggregator from the crank.",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "leaseBumps",
"description": ""
},
{
"name": "permissionBumps",
"description": ""
},
{
"name": "nonce",
"description": ""
},
{
"name": "failOpenOnAccountMismatch",
"description": ""
}
]
},
{
"name": "CrankPushParams",
"description": "Pushes a new aggregator onto the crank.",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "permissionBump",
"description": ""
}
]
},
{
"name": "CrankRow",
"description": "",
"children": [
{
"name": "pubkey",
"description": "Aggregator account pubkey"
},
{
"name": "nextTimestamp",
"description": "Next aggregator update timestamp to order the crank by"
}
]
},
{
"name": "EcvrfVerifyParams",
"description": "",
"children": [
{
"name": "proof",
"description": ""
},
{
"name": "alpha",
"description": ""
}
]
},
{
"name": "Error",
"description": "",
"children": [
{
"name": "InvalidPublicKey",
"description": ""
},
{
"name": "SerializationError",
"description": ""
},
{
"name": "DeserializationError",
"description": ""
},
{
"name": "InvalidDataError",
"description": ""
}
]
},
{
"name": "Hash",
"description": "",
"children": [
{
"name": "data",
"description": "The bytes used to derive the hash."
}
]
},
{
"name": "JobInitParams",
"description": "",
"children": [
{
"name": "name",
"description": "An optional name to apply to the job account."
},
{
"name": "expiration",
"description": "unix_timestamp of when funds can be withdrawn from this account."
},
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "data",
"description": "A serialized protocol buffer holding the schema of the job."
}
]
},
{
"name": "LeaseExtendParams",
"description": "Adds fund to a LeaseAccount. Note that funds can always be withdrawn by the withdraw authority if one was set on lease initialization.",
"children": [
{
"name": "loadAmount",
"description": ""
},
{
"name": "leaseBump",
"description": ""
},
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
}
]
},
{
"name": "LeaseInitParams",
"description": "Parameters for initializing a LeaseAccount",
"children": [
{
"name": "loadAmount",
"description": "Token amount to load into the lease escrow"
},
{
"name": "withdrawAuthority",
"description": "This authority will be permitted to withdraw funds from this lease."
},
{
"name": "leaseBump",
"description": ""
},
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
}
]
},
{
"name": "LeaseWithdrawParams",
"description": "Parameters for withdrawing from a LeaseAccount",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "leaseBump",
"description": ""
},
{
"name": "amount",
"description": "Token amount to withdraw from the lease escrow"
}
]
},
{
"name": "OracleHeartbeatParams",
"description": "Parameters to initiate a heartbeat for an OracleAccount, signifying oracle is still healthy.",
"children": [
{
"name": "permissionBump",
"description": ""
}
]
},
{
"name": "OracleInitParams",
"description": "",
"children": [
{
"name": "name",
"description": "Name of the oracle to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the oracle to store on-chain."
},
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "oracleBump",
"description": ""
}
]
},
{
"name": "OracleMetrics",
"description": "",
"children": [
{
"name": "consecutiveSuccess",
"description": "Number of consecutive successful update request"
},
{
"name": "consecutiveError",
"description": "Number of consecutive update request that resulted in an error"
},
{
"name": "consecutiveDisagreement",
"description": "Number of consecutive update request that resulted in a disagreement with the accepted median result"
},
{
"name": "consecutiveLateResponse",
"description": "Number of consecutive update request that were posted on-chain late and not included in an accepted result"
},
{
"name": "consecutiveFailure",
"description": "Number of consecutive update request that resulted in a failure"
},
{
"name": "totalSuccess",
"description": "Total number of successful update request"
},
{
"name": "totalError",
"description": "Total number of update request that resulted in an error"
},
{
"name": "totalDisagreement",
"description": "Total number of update request that resulted in a disagreement with the accepted median result"
},
{
"name": "totalLateResponse",
"description": "Total number of update request that were posted on-chain late and not included in an accepted result"
}
]
},
{
"name": "OracleQueueInitParams",
"description": "",
"children": [
{
"name": "name",
"description": "Name of the queue to store on-chain."
},
{
"name": "metadata",
"description": "Metadata of the queue to store on-chain."
},
{
"name": "reward",
"description": "Rewards to provide oracles and round openers on this queue."
},
{
"name": "minStake",
"description": "The minimum amount of stake oracles must present to remain on the queue."
},
{
"name": "feedProbationPeriod",
"description": "After a feed lease is funded or re-funded, it must consecutively succeed N amount of times or its authorization to use the queue is auto-revoked."
},
{
"name": "oracleTimeout",
"description": "Time period we should remove an oracle after if no response."
},
{
"name": "slashingEnabled",
"description": "Whether slashing is enabled on this queue."
},
{
"name": "varianceToleranceMultiplier",
"description": "The tolerated variance amount oracle results can have from the accepted round result before being slashed. slashBound = varianceToleranceMultiplier * stdDeviation Default: 2"
},
{
"name": "consecutiveFeedFailureLimit",
"description": "Consecutive failure limit for a feed before feed permission is revoked."
},
{
"name": "consecutiveOracleFailureLimit",
"description": "Consecutive failure limit for an oracle before oracle permission is revoked."
},
{
"name": "queueSize",
"description": "The size of the queue."
},
{
"name": "unpermissionedFeeds",
"description": "Enabling this setting means data feeds do not need explicit permission to join the queue."
}
]
},
{
"name": "OracleQueueSetRewardsParams",
"description": "Set the rewards to provide oracles and round openers on this queue.",
"children": [
{
"name": "rewards",
"description": "Rewards to provide oracles and round openers on this queue."
}
]
},
{
"name": "OracleResponseType",
"description": "",
"children": [
{
"name": "TypeSuccess",
"description": ""
},
{
"name": "TypeError",
"description": ""
},
{
"name": "TypeDisagreement",
"description": ""
},
{
"name": "TypeNoResponse",
"description": ""
}
]
},
{
"name": "OracleWithdrawParams",
"description": "Parameters to withdraw stake and/or rewards from an OracleAccount.",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "permissionBump",
"description": ""
},
{
"name": "amount",
"description": ""
}
]
},
{
"name": "PermissionInitParams",
"description": "",
"children": [
{
"name": "permissionBump",
"description": ""
}
]
},
{
"name": "PermissionSetParams",
"description": "Parameters to set the permission in the PermissionAccount",
"children": [
{
"name": "permission",
"description": "The SwitchboardPermission enumeration to set."
},
{
"name": "enable",
"description": "Specifies whether to enable or disable the permission."
}
]
},
{
"name": "ProgramConfigParams",
"description": "",
"children": [
{
"name": "token",
"description": ""
},
{
"name": "bump",
"description": ""
}
]
},
{
"name": "ProgramInitParams",
"description": "",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
}
]
},
{
"name": "SwitchboardDecimal",
"description": "A struct representing a floating point number on-chain.",
"children": [
{
"name": "mantissa",
"description": "The part of a floating-point number that represents the significant digits of that number, and that is multiplied by the base, 10, raised to the power of scale to give the actual value of the number."
},
{
"name": "scale",
"description": "The number of decimal places to move to the left to yield the actual value."
}
]
},
{
"name": "SwitchboardPermission",
"description": "",
"children": [
{
"name": "None",
"description": "No permissions currently granted between granter and grantee."
},
{
"name": "PermitOracleHeartbeat",
"description": "queue `authority` has permitted an Oracle Account to heartbeat on it's queue and receive update requests. Oracles _always_ need permissions to join a queue."
},
{
"name": "PermitOracleQueueUsage",
"description": "queue `authority` has permitted an Aggregator Account to request updates from it's oracles or join an existing crank. **Note:** Not required if a queue has `unpermissionedFeedsEnabled`."
},
{
"name": "PermitVrfRequests",
"description": "queue `authority` has permitted a VRF Account to request randomness from it's oracles. **Note:** Not required if a queue has `unpermissionedVrfEnabled`."
}
]
},
{
"name": "VaultTransferParams",
"description": "",
"children": [
{
"name": "stateBump",
"description": "The SbState bump used to derive its public key."
},
{
"name": "amount",
"description": ""
}
]
},
{
"name": "VrfBuilder",
"description": "",
"children": [
{
"name": "producer",
"description": ""
},
{
"name": "status",
"description": ""
},
{
"name": "reprProof",
"description": ""
},
{
"name": "proof",
"description": ""
},
{
"name": "yPoint",
"description": ""
},
{
"name": "stage",
"description": ""
},
{
"name": "stage1Out",
"description": ""
},
{
"name": "r1",
"description": ""
},
{
"name": "r2",
"description": ""
},
{
"name": "stage3Out",
"description": ""
},
{
"name": "hPoint",
"description": ""
},
{
"name": "sReduced",
"description": ""
},
{
"name": "yPointBuilder",
"description": ""
},
{
"name": "yRistrettoPoint",
"description": ""
},
{
"name": "mulRound",
"description": ""
},
{
"name": "hashPointsRound",
"description": ""
},
{
"name": "mulTmp1",
"description": ""
},
{
"name": "uPoint1",
"description": ""
},
{
"name": "uPoint2",
"description": ""
},
{
"name": "vPoint1",
"description": ""
},
{
"name": "vPoint2",
"description": ""
},
{
"name": "uPoint",
"description": ""
},
{
"name": "vPoint",
"description": ""
},
{
"name": "u1",
"description": ""
},
{
"name": "u2",
"description": ""
},
{
"name": "invertee",
"description": ""
},
{
"name": "y",
"description": ""
},
{
"name": "z",
"description": ""
},
{
"name": "p1Bytes",
"description": ""
},
{
"name": "p2Bytes",
"description": ""
},
{
"name": "p3Bytes",
"description": ""
},
{
"name": "p4Bytes",
"description": ""
},
{
"name": "cPrimeHashbuf",
"description": ""
},
{
"name": "m1",
"description": ""
},
{
"name": "m2",
"description": ""
},
{
"name": "txRemaining",
"description": ""
},
{
"name": "verified",
"description": ""
},
{
"name": "result",
"description": ""
}
]
},
{
"name": "VrfStatus",
"description": "",
"children": [
{
"name": "StatusNone",
"description": "VRF Account has not requested randomness yet."
},
{
"name": "StatusRequesting",
"description": "VRF Account has requested randomness but has yet to receive an oracle response."
},
{
"name": "StatusVerifying",
"description": "VRF Account has received a VRF proof that has yet to be verified on-chain."
},
{
"name": "StatusVerified",
"description": "VRF Account has successfully requested and verified randomness on-chain."
},
{
"name": "StatusCallbackSuccess",
"description": "VRF Account's callback was invoked successfully."
},
{
"name": "StatusVerifyFailure",
"description": "Failed to verify VRF proof."
}
]
},
{
"name": "VrfRound",
"description": "",
"children": [
{
"name": "vrfProducer",
"description": "The oracle assigned to the VRF request."
},
{
"name": "reprProof",
"description": ""
},
{
"name": "proof",
"description": ""
},
{
"name": "alpha",
"description": ""
},
{
"name": "alphaLen",
"description": ""
},
{
"name": "stage",
"description": ""
},
{
"name": "ebuf",
"description": ""
}
]
}
],
"instructions": [
{
"name": "aggregatorAddJob",
"description": "Add a new job to an aggregator to be performed on feed updates",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "job",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorInit",
"description": "Create and initialize the AggregatorAccount.",
"children": [
{
"name": "aggregator",
"description": "The AggregatorAccountData being initialized."
},
{
"name": "authority",
"description": "The aggregator authority delegated to make account changes."
},
{
"name": "queue",
"description": "The OracleQueueAccountData the aggregator is being created for."
},
{
"name": "authorWallet",
"description": "An optional wallet for receiving kickbacks from job usage in feeds. Defaults to token vault."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorLock",
"description": "Prevent new jobs from being added to the feed.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorOpenRound",
"description": "Opens a new round for the aggregator and will provide an incentivize reward to the caller",
"children": [
{
"name": "aggregator",
"description": "The AggregatorAccountData that is requesting a new result."
},
{
"name": "lease",
"description": "The LeaseAccountData for an aggregator that is funding oracle rewards if a new value is successfully accepted on-chain."
},
{
"name": "oracleQueue",
"description": "The OracleQueueAccountData that an aggregator has permissions for."
},
{
"name": "queueAuthority",
"description": "The account delegated as the authority for the queue that can create permissions targeted at the queue."
},
{
"name": "permission",
"description": "The PermissionAccountData that grants an aggregator permissions to use an oracle queue."
},
{
"name": "escrow",
"description": "The escrow token account holding the oracle's reward if a new value is accepted on-chain successfully."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "payoutWallet",
"description": "The token wallet that will receive a reward if an aggregator's config permits a new update request."
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "dataBuffer",
"description": "The public key of the OracleQueueBuffer account holding a collection of Oracle pubkeys that haver successfully heartbeated before the queues `oracleTimeout`."
},
{
"name": "tokenProgram",
"description": "The Solana token program ID."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorRemoveJob",
"description": "Remove a job from an aggregator.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "job",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSaveResult",
"description": "Oracle saving result for a feed update request to an aggregator round.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "oracle",
"description": ""
},
{
"name": "oracleAuthority",
"description": ""
},
{
"name": "oracleQueue",
"description": ""
},
{
"name": "queueAuthority",
"description": ""
},
{
"name": "feedPermission",
"description": ""
},
{
"name": "oraclePermission",
"description": ""
},
{
"name": "lease",
"description": ""
},
{
"name": "escrow",
"description": ""
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "historyBuffer",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetAuthority",
"description": "Change the aggregator authority.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "newAuthority",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetBatchSize",
"description": "",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetHistoryBuffer",
"description": "",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "buffer",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetMinJobs",
"description": "Set the minimum number of feed jobs suggested to be successful before an oracle sends a response.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetMinOracles",
"description": "Set the minimum number of oracle responses required before a round is validated.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetQueue",
"description": "",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "queue",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "aggregatorSetVarianceThreshold",
"description": "Set the change percentage required between a previous round and the current round. If variance percentage is not met, reject new oracle responses.",
"children": [
{
"name": "aggregator",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "crankInit",
"description": "Create and initialize the CrankAccount.",
"children": [
{
"name": "crank",
"description": ""
},
{
"name": "queue",
"description": ""
},
{
"name": "buffer",
"description": ""
},
{
"name": "payer",
"description": ""
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "crankPop",
"description": "Pops an aggregator from the crank.",
"children": [
{
"name": "crank",
"description": ""
},
{
"name": "oracleQueue",
"description": ""
},
{
"name": "queueAuthority",
"description": "The account delegated as the authority for making account changes or assigning permissions targeted at the queue."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "payoutWallet",
"description": ""
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "crankDataBuffer",
"description": ""
},
{
"name": "queueDataBuffer",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "crankPush",
"description": "Pushes a new aggregator onto the crank.",
"children": [
{
"name": "crank",
"description": "The crank to add a new aggregator to."
},
{
"name": "aggregator",
"description": "The aggregator being pushed onto the crank."
},
{
"name": "oracleQueue",
"description": "The crank and aggregators assigned oracle queue."
},
{
"name": "queueAuthority",
"description": "The account delegated as the authority for making account changes or assigning permissions targeted at the queue."
},
{
"name": "permission",
"description": "The aggregator's permission account."
},
{
"name": "lease",
"description": "The aggregator's lease contract."
},
{
"name": "escrow",
"description": ""
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "dataBuffer",
"description": "The crank buffer account holding an array of CrankRows."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "ecvrfVerify",
"description": "",
"children": [
{
"name": "randomnessProducer",
"description": ""
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "jobInit",
"description": "Create and initialize the JobAccount.",
"children": [
{
"name": "job",
"description": ""
},
{
"name": "authorWallet",
"description": "An optional wallet for receiving kickbacks from job usage in feeds. Defaults to token vault."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "leaseExtend",
"description": "Adds fund to a LeaseAccount. Note that funds can always be withdrawn by the withdraw authority if one was set on lease initialization.",
"children": [
{
"name": "lease",
"description": ""
},
{
"name": "aggregator",
"description": ""
},
{
"name": "queue",
"description": ""
},
{
"name": "funder",
"description": ""
},
{
"name": "owner",
"description": ""
},
{
"name": "escrow",
"description": ""
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "leaseInit",
"description": "Create and initialize the LeaseAccount.",
"children": [
{
"name": "lease",
"description": ""
},
{
"name": "queue",
"description": ""
},
{
"name": "aggregator",
"description": ""
},
{
"name": "funder",
"description": ""
},
{
"name": "payer",
"description": ""
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "owner",
"description": ""
},
{
"name": "escrow",
"description": ""
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "leaseWithdraw",
"description": "",
"children": [
{
"name": "lease",
"description": ""
},
{
"name": "escrow",
"description": ""
},
{
"name": "aggregator",
"description": ""
},
{
"name": "queue",
"description": ""
},
{
"name": "withdrawAuthority",
"description": ""
},
{
"name": "withdrawAccount",
"description": ""
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "oracleHeartbeat",
"description": "Initiates a heartbeat for an OracleAccount, signifying oracle is still healthy.",
"children": [
{
"name": "oracle",
"description": "The OracleAccountData that is heartbeating on-chain."
},
{
"name": "oracleAuthority",
"description": "The OracleAccountData authority that is permitted to heartbeat."
},
{
"name": "tokenAccount",
"description": "The token wallet for the oracle."
},
{
"name": "gcOracle",
"description": "The current garbage collection oracle that may be swapped in the buffer periodically."
},
{
"name": "oracleQueue",
"description": "The OracleQueueAccountData that an oracle is heartbeating for."
},
{
"name": "permission",
"description": "The PermissionAccountData that grants an oracle heartbeat permissions."
},
{
"name": "dataBuffer",
"description": "The OracleQueueBuffer account holding a collection of Oracle pubkeys."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "oracleInit",
"description": "Create and initialize the OracleAccount.<br /><b>Size: </b>636 Bytes<br /><b>Rent Exemption: </b>0.00531744 SOL",
"children": [
{
"name": "oracle",
"description": ""
},
{
"name": "oracleAuthority",
"description": ""
},
{
"name": "wallet",
"description": ""
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "queue",
"description": ""
},
{
"name": "payer",
"description": ""
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "oracleQueueInit",
"description": "Create and initialize the OracleQueueAccount.",
"children": [
{
"name": "oracleQueue",
"description": ""
},
{
"name": "authority",
"description": "The account delegated as the authority for making account changes or assigning permissions targeted at the queue."
},
{
"name": "buffer",
"description": ""
},
{
"name": "payer",
"description": ""
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "oracleQueueSetRewards",
"description": "Set the rewards to provide oracles and round openers on this queue.",
"children": [
{
"name": "queue",
"description": ""
},
{
"name": "authority",
"description": "The account delegated as the authority for making account changes or assigning permissions targeted at the queue."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "oracleWithdraw",
"description": "Withdraw stake and/or rewards from an OracleAccount.",
"children": [
{
"name": "oracle",
"description": ""
},
{
"name": "oracleAuthority",
"description": ""
},
{
"name": "tokenAccount",
"description": ""
},
{
"name": "withdrawAccount",
"description": ""
},
{
"name": "oracleQueue",
"description": ""
},
{
"name": "permission",
"description": ""
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "payer",
"description": ""
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "permissionInit",
"description": "Create and initialize the PermissionAccount.",
"children": [
{
"name": "permission",
"description": "The permission account being initialized."
},
{
"name": "authority",
"description": "The PermissionAccountData authority that can update an account's permissions."
},
{
"name": "granter",
"description": "The account receiving the assigned permissions."
},
{
"name": "grantee",
"description": "The account granting the assigned permissions."
},
{
"name": "payer",
"description": "The account paying for the new permission account on-chain."
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "permissionSet",
"description": "Sets the permission in the PermissionAccount",
"children": [
{
"name": "permission",
"description": "The PermissionAccountData that is being updated."
},
{
"name": "authority",
"description": "The PermissionAccountData authority that can update an account's permissions."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "programConfig",
"description": "",
"children": [
{
"name": "authority",
"description": "The SbState authority that permits account changes."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "programInit",
"description": "Create and initialize the SbState.",
"children": [
{
"name": "state",
"description": "The SbState account being initialized."
},
{
"name": "authority",
"description": "The account delegated as the program authority."
},
{
"name": "tokenMint",
"description": "The token mint that is used for oracle rewards, aggregator leases, and other reward incentives."
},
{
"name": "vault",
"description": "The token wallet for the program state account."
},
{
"name": "payer",
"description": "The account paying for the new on-chain account."
},
{
"name": "systemProgram",
"description": "The Solana system program account."
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "vaultTransfer",
"description": "",
"children": [
{
"name": "state",
"description": ""
},
{
"name": "authority",
"description": ""
},
{
"name": "to",
"description": ""
},
{
"name": "vault",
"description": ""
},
{
"name": "tokenProgram",
"description": "The Solana token program account."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "vrfInit",
"description": "",
"children": [
{
"name": "vrf",
"description": "The VrfAccountData that is being initialized."
},
{
"name": "authority",
"description": "The VrfAccountData authority that can request new VRF results."
},
{
"name": "oracleQueue",
"description": "The OracleQueueAccountData that the VRF account is joining."
},
{
"name": "escrow",
"description": "The escrow token account for the programState's mint holding the oracle rewards for VRF update request."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "tokenProgram",
"description": "The Solana token Program ID."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "vrfProve",
"description": "",
"children": [
{
"name": "vrf",
"description": "The VrfAccountData that requested a new randomness result."
},
{
"name": "oracle",
"description": "The OracleAccountData that is assigned to the VRF request."
},
{
"name": "randomnessProducer",
"description": "The randomness producer for the VRF request, specific to the Oracle assigned to the VRF request."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "vrfRequestRandomness",
"description": "",
"children": [
{
"name": "authority",
"description": "The VrfAccountData authority that is permitted to request randomness."
},
{
"name": "vrf",
"description": "The VrfAccountData that is requesting a new randomness result."
},
{
"name": "oracleQueue",
"description": "The OracleQueueAccountData that the VRF Account is assigned to."
},
{
"name": "queueAuthority",
"description": "The Oracle Queue's authority."
},
{
"name": "dataBuffer",
"description": "The OracleQueueBuffer account holding a collection of Oracle pubkeys."
},
{
"name": "permission",
"description": "The permission account that allows a VRF Account to request randomness."
},
{
"name": "escrow",
"description": "The escrow token account holding the oracle's reward if successful."
},
{
"name": "payerWallet",
"description": "The payer wallet who is funding the VRF request."
},
{
"name": "payerAuthority",
"description": "The payer wallet's authority who can approve token transfers."
},
{
"name": "recentBlockhashes",
"description": "The Solana account holding the most recent blockhashes for the VRF proof."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "tokenProgram",
"description": "The Solana token Program ID."
},
{
"name": "params",
"description": ""
}
]
},
{
"name": "vrfVerify",
"description": "",
"children": [
{
"name": "vrf",
"description": "The VRF Account to verify the proof for."
},
{
"name": "callbackPid",
"description": "The VRF Account's callback program ID."
},
{
"name": "tokenProgram",
"description": "The Solana token Program ID."
},
{
"name": "escrow",
"description": "The escrow token account holding the oracle's reward if successful."
},
{
"name": "programState",
"description": "The Switchboard SbState account."
},
{
"name": "oracle",
"description": "The Oracle Account verifying the VRF proof."
},
{
"name": "oracleAuthority",
"description": "The Oracle authority who is permitted to make on-chain transactions."
},
{
"name": "oracleWallet",
"description": "The Oracle's token wallet receiving the VRF reward if successful."
},
{
"name": "params",
"description": ""
}
]
}
],
"events": [
{
"name": "AggregatorInitEvent",
"description": "New aggregator created on-chain",
"children": [
{
"name": "feedPubkey",
"description": "Public key of the newly created aggregator"
}
]
},
{
"name": "AggregatorOpenRoundEvent",
"description": "OpenRound successfully called on an aggregator",
"children": [
{
"name": "feedPubkey",
"description": "Public key of the aggregator requesting a new result"
},
{
"name": "oraclePubkeys",
"description": "Oracles assigned to the update request"
},
{
"name": "jobPubkeys",
"description": "Job accounts associated with an aggregator containing the job definitions"
},
{
"name": "remainingFunds",
"description": "Remaining funds in the aggregators lease contract"
},
{
"name": "queueAuthority",
"description": "The account delegated as the authority for making account changes or assigning permissions targeted at the queue."
}
]
},
{
"name": "AggregatorValueUpdateEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "value",
"description": ""
},
{
"name": "slot",
"description": ""
},
{
"name": "timestamp",
"description": ""
},
{
"name": "oraclePubkeys",
"description": ""
},
{
"name": "oracleValues",
"description": ""
}
]
},
{
"name": "CrankLeaseInsufficientFundsEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "leasePubkey",
"description": ""
}
]
},
{
"name": "CrankPopExpectedFailureEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "leasePubkey",
"description": ""
}
]
},
{
"name": "FeedPermissionRevokedEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
},
{
"name": "GarbageCollectFailureEvent",
"description": "",
"children": [
{
"name": "queuePubkey",
"description": ""
}
]
},
{
"name": "LeaseFundEvent",
"description": "",
"children": [
{
"name": "leasePubkey",
"description": ""
},
{
"name": "funder",
"description": ""
},
{
"name": "amount",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
},
{
"name": "LeaseWithdrawEvent",
"description": "",
"children": [
{
"name": "leasePubkey",
"description": ""
},
{
"name": "walletPubkey",
"description": ""
},
{
"name": "previousAmount",
"description": ""
},
{
"name": "newAmount",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
},
{
"name": "OracleBootedEvent",
"description": "",
"children": [
{
"name": "queuePubkey",
"description": ""
},
{
"name": "oraclePubkey",
"description": ""
}
]
},
{
"name": "OracleRewardEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "leasePubkey",
"description": ""
},
{
"name": "oraclePubkey",
"description": ""
},
{
"name": "walletPubkey",
"description": ""
},
{
"name": "amount",
"description": ""
},
{
"name": "roundSlot",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
},
{
"name": "OracleSlashEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "leasePubkey",
"description": ""
},
{
"name": "oraclePubkey",
"description": ""
},
{
"name": "walletPubkey",
"description": ""
},
{
"name": "amount",
"description": ""
},
{
"name": "roundSlot",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
},
{
"name": "OracleWithdrawEvent",
"description": "",
"children": [
{
"name": "oraclePubkey",
"description": ""
},
{
"name": "walletPubkey",
"description": ""
},
{
"name": "destinationWallet",
"description": ""
},
{
"name": "previousAmount",
"description": ""
},
{
"name": "newAmount",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
},
{
"name": "ProbationBrokenEvent",
"description": "",
"children": [
{
"name": "feedPubkey",
"description": ""
},
{
"name": "queuePubkey",
"description": ""
},
{
"name": "timestamp",
"description": ""
}
]
}
],
"errors": [
{
"name": "ArrayOperationError",
"description": ""
},
{
"name": "QueueOperationError",
"description": ""
},
{
"name": "IncorrectProgramOwnerError",
"description": ""
},
{
"name": "InvalidAggregatorRound",
"description": ""
},
{
"name": "TooManyAggregatorJobs",
"description": ""
},
{
"name": "AggregatorCurrentRoundClosed",
"description": ""
},
{
"name": "AggregatorInvalidSaveResult",
"description": ""
},
{
"name": "InvalidStrDecimalConversion",
"description": ""
},
{
"name": "AccountLoaderMissingSignature",
"description": ""
},
{
"name": "MissingRequiredSignature",
"description": ""
},
{
"name": "ArrayOverflowError",
"description": ""
},
{
"name": "ArrayUnderflowError",
"description": ""
},
{
"name": "PubkeyNotFoundError",
"description": ""
},
{
"name": "AggregatorIllegalRoundOpenCall",
"description": ""
},
{
"name": "AggregatorIllegalRoundCloseCall",
"description": ""
},
{
"name": "AggregatorClosedError",
"description": ""
},
{
"name": "IllegalOracleIdxError",
"description": ""
},
{
"name": "OracleAlreadyRespondedError",
"description": ""
},
{
"name": "ProtoDeserializeError",
"description": ""
},
{
"name": "UnauthorizedStateUpdateError",
"description": ""
},
{
"name": "MissingOracleAccountsError",
"description": ""
},
{
"name": "OracleMismatchError",
"description": ""
},
{
"name": "CrankMaxCapacityError",
"description": ""
},
{
"name": "AggregatorLeaseInsufficientFunds",
"description": ""
},
{
"name": "IncorrectTokenAccountMint",
"description": ""
},
{
"name": "InvalidEscrowAccount",
"description": ""
},
{
"name": "CrankEmptyError",
"description": ""
},
{
"name": "PdaDeriveError",
"description": ""
},
{
"name": "AggregatorAccountNotFound",
"description": ""
},
{
"name": "PermissionAccountNotFound",
"description": ""
},
{
"name": "LeaseAccountDeriveFailure",
"description": ""
},
{
"name": "PermissionAccountDeriveFailure",
"description": ""
},
{
"name": "EscrowAccountNotFound",
"description": ""
},
{
"name": "LeaseAccountNotFound",
"description": ""
},
{
"name": "DecimalConversionError",
"description": ""
},
{
"name": "PermissionDenied",
"description": ""
},
{
"name": "QueueAtCapacity",
"description": ""
},
{
"name": "ExcessiveCrankRowsError",
"description": ""
},
{
"name": "AggregatorLockedError",
"description": ""
},
{
"name": "AggregatorInvalidBatchSizeError",
"description": ""
},
{
"name": "AggregatorJobChecksumMismatch",
"description": ""
},
{
"name": "IntegerOverflowError",
"description": ""
},
{
"name": "InvalidUpdatePeriodError",
"description": ""
},
{
"name": "NoResultsError",
"description": ""
},
{
"name": "InvalidExpirationError",
"description": ""
},
{
"name": "InsufficientStakeError",
"description": ""
},
{
"name": "LeaseInactiveError",
"description": ""
},
{
"name": "NoAggregatorJobsFound",
"description": ""
},
{
"name": "IntegerUnderflowError",
"description": ""
},
{
"name": "OracleQueueMismatch",
"description": ""
},
{
"name": "OracleWalletMismatchError",
"description": ""
},
{
"name": "InvalidBufferAccountError",
"description": ""
},
{
"name": "InsufficientOracleQueueError",
"description": ""
},
{
"name": "InvalidAuthorityError",
"description": ""
},
{
"name": "InvalidTokenAccountMintError",
"description": ""
},
{
"name": "ExcessiveLeaseWithdrawlError",
"description": ""
},
{
"name": "InvalideHistoryAccountError",
"description": ""
},
{
"name": "InvalidLeaseAccountEscrowError",
"description": ""
},
{
"name": "InvalidCrankAccountError",
"description": ""
},
{
"name": "CrankNoElementsReadyError",
"description": ""
},
{
"name": "VrfVerifyError",
"description": ""
}
]
}