export type DriftCompetitions = { version: '0.1.0'; name: 'drift_competitions'; instructions: [ { name: 'initializeCompetition'; accounts: [ { name: 'competition'; isMut: true; isSigner: false; }, { name: 'sponsor'; isMut: false; isSigner: true; }, { name: 'payer'; isMut: true; isSigner: true; }, { name: 'rent'; isMut: false; isSigner: false; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'params'; type: { defined: 'CompetitionParams'; }; } ]; }, { name: 'updateCompetition'; accounts: [ { name: 'competition'; isMut: true; isSigner: false; }, { name: 'sponsor'; isMut: false; isSigner: true; } ]; args: [ { name: 'params'; type: { defined: 'UpdateCompetitionParams'; }; } ]; }, { name: 'updateSwitchboardFunction'; accounts: [ { name: 'sponsor'; isMut: true; isSigner: true; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'competitionAuthority'; isMut: false; isSigner: false; docs: ['CHECK']; }, { name: 'switchboard'; isMut: false; isSigner: false; }, { name: 'switchboardState'; isMut: false; isSigner: false; }, { name: 'switchboardAttestationQueue'; isMut: false; isSigner: false; }, { name: 'switchboardFunction'; isMut: true; isSigner: false; }, { name: 'switchboardRequest'; isMut: true; isSigner: true; }, { name: 'switchboardRequestEscrow'; isMut: true; isSigner: false; }, { name: 'switchboardMint'; isMut: false; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'associatedTokenProgram'; isMut: false; isSigner: false; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'updateCompetitorStatus'; accounts: [ { name: 'competition'; isMut: true; isSigner: false; }, { name: 'sponsor'; isMut: false; isSigner: true; }, { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: true; isSigner: false; } ]; args: [ { name: 'newStatus'; type: { defined: 'CompetitorStatus'; }; } ]; }, { name: 'initializeCompetitor'; accounts: [ { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; }, { name: 'payer'; isMut: true; isSigner: true; }, { name: 'rent'; isMut: false; isSigner: false; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'claimEntry'; accounts: [ { name: 'authority'; isMut: true; isSigner: true; }, { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: false; isSigner: false; }, { name: 'instructions'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'claimMultipleEntries'; accounts: [ { name: 'authority'; isMut: true; isSigner: true; }, { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: false; isSigner: false; }, { name: 'driftState'; isMut: false; isSigner: false; }, { name: 'spotMarket'; isMut: true; isSigner: false; }, { name: 'spotMarketVault'; isMut: true; isSigner: false; }, { name: 'userTokenAccount'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'driftProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'entries'; type: 'u64'; } ]; }, { name: 'claimWinnings'; accounts: [ { name: 'authority'; isMut: true; isSigner: true; }, { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: true; isSigner: false; }, { name: 'spotMarket'; isMut: true; isSigner: false; }, { name: 'insuranceFundVault'; isMut: false; isSigner: false; }, { name: 'insuranceFundStake'; isMut: true; isSigner: false; }, { name: 'driftProgram'; isMut: false; isSigner: false; }, { name: 'competitionAuthority'; isMut: false; isSigner: false; docs: ['CHECK']; }, { name: 'driftTransferConfig'; isMut: true; isSigner: false; docs: ['CHECK in cpi']; }, { name: 'driftState'; isMut: false; isSigner: false; docs: ['CHECK in cpi']; } ]; args: [ { name: 'nShares'; type: { option: 'u64'; }; } ]; }, { name: 'settleCompetitor'; accounts: [ { name: 'keeper'; isMut: true; isSigner: true; }, { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'requestRandomness'; accounts: [ { name: 'competition'; isMut: true; isSigner: false; }, { name: 'keeper'; isMut: true; isSigner: true; }, { name: 'competitionAuthority'; isMut: false; isSigner: false; docs: ['CHECK']; }, { name: 'spotMarket'; isMut: false; isSigner: false; }, { name: 'insuranceFundVault'; isMut: false; isSigner: false; }, { name: 'switchboard'; isMut: false; isSigner: false; }, { name: 'switchboardState'; isMut: false; isSigner: false; }, { name: 'switchboardAttestationQueue'; isMut: false; isSigner: false; }, { name: 'switchboardFunction'; isMut: true; isSigner: false; }, { name: 'switchboardRequest'; isMut: true; isSigner: false; }, { name: 'switchboardRequestEscrow'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'bounty'; type: { option: 'u64'; }; } ]; }, { name: 'receiveRandomness'; accounts: [ { name: 'competition'; isMut: true; isSigner: false; }, { name: 'spotMarket'; isMut: false; isSigner: false; }, { name: 'insuranceFundVault'; isMut: false; isSigner: false; }, { name: 'switchboardFunction'; isMut: false; isSigner: false; }, { name: 'switchboardRequest'; isMut: false; isSigner: false; }, { name: 'enclaveSigner'; isMut: false; isSigner: true; } ]; args: [ { name: 'winnerRandomness'; type: 'u128'; }, { name: 'prizeRandomness'; type: 'u128'; } ]; }, { name: 'settleWinner'; accounts: [ { name: 'keeper'; isMut: true; isSigner: true; }, { name: 'competitor'; isMut: true; isSigner: false; }, { name: 'competition'; isMut: true; isSigner: false; }, { name: 'driftUserStats'; isMut: false; isSigner: false; }, { name: 'spotMarket'; isMut: true; isSigner: false; }, { name: 'insuranceFundVault'; isMut: false; isSigner: false; } ]; args: []; } ]; accounts: [ { name: 'competition'; type: { kind: 'struct'; fields: [ { name: 'name'; type: { array: ['u8', 32]; }; }, { name: 'sponsorInfo'; type: { defined: 'SponsorInfo'; }; }, { name: 'switchboardFunction'; type: 'publicKey'; }, { name: 'switchboardFunctionRequest'; type: 'publicKey'; }, { name: 'switchboardFunctionRequestEscrow'; type: 'publicKey'; }, { name: 'competitionAuthority'; type: 'publicKey'; }, { name: 'numberOfCompetitors'; type: 'u128'; }, { name: 'numberOfCompetitorsSettled'; type: 'u128'; }, { name: 'totalScoreSettled'; type: 'u128'; }, { name: 'maxEntriesPerCompetitor'; type: 'u128'; }, { name: 'prizeAmount'; type: 'u128'; }, { name: 'prizeAmountSettled'; type: 'u128'; }, { name: 'prizeBase'; type: 'u128'; }, { name: 'winnerRandomness'; type: 'u128'; }, { name: 'prizeRandomness'; type: 'u128'; }, { name: 'prizeRandomnessMax'; type: 'u128'; }, { name: 'outstandingUnclaimedWinnings'; type: 'u128'; }, { name: 'roundNumber'; type: 'u64'; }, { name: 'nextRoundExpiryTs'; type: 'i64'; }, { name: 'competitionExpiryTs'; type: 'i64'; }, { name: 'roundDuration'; type: 'u64'; }, { name: 'numberOfWinners'; type: 'u32'; }, { name: 'numberOfWinnersSettled'; type: 'u32'; }, { name: 'status'; type: { defined: 'CompetitionRoundStatus'; }; }, { name: 'competitionAuthorityBump'; type: 'u8'; }, { name: 'padding'; type: { array: ['u8', 30]; }; } ]; }; }, { name: 'competitor'; type: { kind: 'struct'; fields: [ { name: 'authority'; type: 'publicKey'; }, { name: 'competition'; type: 'publicKey'; }, { name: 'userStats'; type: 'publicKey'; }, { name: 'minDraw'; type: 'u128'; }, { name: 'maxDraw'; type: 'u128'; }, { name: 'unclaimedWinningsBase'; type: 'u128'; }, { name: 'unclaimedWinnings'; type: 'u64'; }, { name: 'competitionRoundNumber'; type: 'u64'; }, { name: 'previousSnapshotScore'; type: 'u64'; }, { name: 'latestSnapshotScore'; type: 'u64'; }, { name: 'bonusScore'; type: 'u64'; }, { name: 'status'; type: { defined: 'CompetitorStatus'; }; }, { name: 'padding'; type: { array: ['u8', 31]; }; } ]; }; } ]; types: [ { name: 'CompetitionParams'; type: { kind: 'struct'; fields: [ { name: 'name'; type: { array: ['u8', 32]; }; }, { name: 'nextRoundExpiryTs'; type: 'i64'; }, { name: 'competitionExpiryTs'; type: 'i64'; }, { name: 'roundDuration'; type: 'u64'; }, { name: 'maxEntriesPerCompetitor'; type: 'u128'; }, { name: 'minSponsorAmount'; type: 'u64'; }, { name: 'maxSponsorFraction'; type: 'u64'; }, { name: 'numberOfWinners'; type: 'u32'; } ]; }; }, { name: 'UpdateCompetitionParams'; type: { kind: 'struct'; fields: [ { name: 'nextRoundExpiryTs'; type: { option: 'i64'; }; }, { name: 'competitionExpiryTs'; type: { option: 'i64'; }; }, { name: 'roundDuration'; type: { option: 'u64'; }; }, { name: 'maxEntriesPerCompetitor'; type: { option: 'u128'; }; }, { name: 'minSponsorAmount'; type: { option: 'u64'; }; }, { name: 'maxSponsorFraction'; type: { option: 'u64'; }; }, { name: 'numberOfWinners'; type: { option: 'u32'; }; }, { name: 'resetRoundState'; type: { option: 'bool'; }; } ]; }; }, { name: 'SponsorInfo'; type: { kind: 'struct'; fields: [ { name: 'sponsor'; type: 'publicKey'; }, { name: 'minSponsorAmount'; type: 'u64'; }, { name: 'maxSponsorFraction'; type: 'u64'; } ]; }; }, { name: 'CompetitionRoundStatus'; type: { kind: 'enum'; variants: [ { name: 'Active'; }, { name: 'WinnerAndPrizeRandomnessRequested'; }, { name: 'WinnerAndPrizeRandomnessComplete'; }, { name: 'WinnerSettlementComplete'; }, { name: 'Expired'; } ]; }; }, { name: 'CompetitorStatus'; type: { kind: 'enum'; variants: [ { name: 'Active'; }, { name: 'Disqualified'; } ]; }; } ]; events: [ { name: 'CompetitionRoundSummaryRecord'; fields: [ { name: 'competition'; type: 'publicKey'; index: false; }, { name: 'roundNumber'; type: 'u64'; index: false; }, { name: 'roundStartTs'; type: 'i64'; index: false; }, { name: 'roundEndTs'; type: 'i64'; index: false; }, { name: 'prizePlacement'; type: 'u32'; index: false; }, { name: 'prizeOddsNumerator'; type: 'u128'; index: false; }, { name: 'prizeRandomness'; type: 'u128'; index: false; }, { name: 'prizeRandomnessMax'; type: 'u128'; index: false; }, { name: 'maxPrizeBucketValue'; type: 'u64'; index: false; }, { name: 'prizeAmount'; type: 'u128'; index: false; }, { name: 'prizeValue'; type: 'u64'; index: false; }, { name: 'prizeBase'; type: 'u128'; index: false; }, { name: 'numberOfWinners'; type: 'u32'; index: false; }, { name: 'numberOfCompetitorsSettled'; type: 'u128'; index: false; }, { name: 'totalScoreSettled'; type: 'u128'; index: false; }, { name: 'insuranceVaultBalance'; type: 'u64'; index: false; }, { name: 'protocolIfShares'; type: 'u128'; index: false; }, { name: 'totalIfShares'; type: 'u128'; index: false; }, { name: 'ts'; type: 'i64'; index: false; } ]; }, { name: 'CompetitionRoundWinnerRecord'; fields: [ { name: 'roundNumber'; type: 'u64'; index: false; }, { name: 'competitor'; type: 'publicKey'; index: false; }, { name: 'competition'; type: 'publicKey'; index: false; }, { name: 'competitorAuthority'; type: 'publicKey'; index: false; }, { name: 'minDraw'; type: 'u128'; index: false; }, { name: 'maxDraw'; type: 'u128'; index: false; }, { name: 'winnerPlacement'; type: 'u32'; index: false; }, { name: 'numberOfWinners'; type: 'u32'; index: false; }, { name: 'numberOfCompetitorsSettled'; type: 'u128'; index: false; }, { name: 'winnerRandomness'; type: 'u128'; index: false; }, { name: 'totalScoreSettled'; type: 'u128'; index: false; }, { name: 'prizeRandomness'; type: 'u128'; index: false; }, { name: 'prizeRandomnessMax'; type: 'u128'; index: false; }, { name: 'prizeAmount'; type: 'u128'; index: false; }, { name: 'prizeBase'; type: 'u128'; index: false; }, { name: 'prizeValue'; type: 'u64'; index: false; }, { name: 'ts'; type: 'i64'; index: false; } ]; }, { name: 'CompetitorSettledRecord'; fields: [ { name: 'roundNumber'; type: 'u64'; index: false; }, { name: 'competitor'; type: 'publicKey'; index: false; }, { name: 'competition'; type: 'publicKey'; index: false; }, { name: 'competitorAuthority'; type: 'publicKey'; index: false; }, { name: 'status'; type: { defined: 'CompetitorStatus'; }; index: false; }, { name: 'unclaimedWinnings'; type: 'u64'; index: false; }, { name: 'minDraw'; type: 'u128'; index: false; }, { name: 'maxDraw'; type: 'u128'; index: false; }, { name: 'bonusScoreBefore'; type: 'u64'; index: false; }, { name: 'bonusScoreAfter'; type: 'u64'; index: false; }, { name: 'previousSnapshotScoreBefore'; type: 'u64'; index: false; }, { name: 'snapshotScore'; type: 'u64'; index: false; }, { name: 'ts'; type: 'i64'; index: false; } ]; } ]; errors: [ { code: 6000; name: 'Default'; msg: 'Default'; }, { code: 6001; name: 'DriftError'; msg: 'DriftError'; }, { code: 6002; name: 'CompetitionRoundOngoing'; msg: 'CompetitionRoundOngoing'; }, { code: 6003; name: 'CompetitionRoundInSettlementPhase'; msg: 'CompetitionRoundInSettlementPhase'; }, { code: 6004; name: 'CompetitionStatusNotActive'; msg: 'CompetitionStatusNotActive'; }, { code: 6005; name: 'CompetitionExpired'; msg: 'CompetitionExpired'; }, { code: 6006; name: 'InvalidRoundSettlementDetected'; msg: 'InvalidRoundSettlementDetected'; }, { code: 6007; name: 'CompetitionWinnerNotDetermined'; msg: 'CompetitionWinnerNotDetermined'; }, { code: 6008; name: 'CompetitorHasWrongRoundNumber'; msg: 'CompetitorHasWrongRoundNumber'; }, { code: 6009; name: 'CompetitorNotWinner'; msg: 'CompetitorNotWinner'; }, { code: 6010; name: 'InvalidStatusUpdateDetected'; msg: 'InvalidStatusUpdateDetected'; }, { code: 6011; name: 'InvalidIFRebase'; msg: 'InvalidIFRebase'; }, { code: 6012; name: 'CompetitorHasAlreadyClaimedEntry'; msg: 'CompetitorHasAlreadyClaimedEntry'; }, { code: 6013; name: 'CompetitorNeedsToRebaseInsuranceFundStake'; msg: 'CompetitorNeedsToRebaseInsuranceFundStake'; }, { code: 6014; name: 'CompetitorHasNoUnclaimedWinnings'; msg: 'CompetitorHasNoUnclaimedWinnings'; }, { code: 6015; name: 'CompetitionRoundNumberIssue'; msg: 'CompetitionRoundNumberIssue'; }, { code: 6016; name: 'CompetitorSnapshotIssue'; msg: 'CompetitorSnapshotIssue'; }, { code: 6017; name: 'CompetitorHasInvalidClaim'; msg: 'CompetitorHasInvalidClaim'; }, { code: 6018; name: 'CompetitorUpdateInvalid'; msg: 'CompetitorUpdateInvalid'; }, { code: 6019; name: 'CompetitionInvariantIssue'; msg: 'CompetitionInvariantIssue'; }, { code: 6020; name: 'CompetitorHasPendingInsuranceWithdraw'; msg: 'CompetitorHasPendingInsuranceWithdraw'; } ]; }; export declare const IDL: DriftCompetitions;