export type BlockassetBlaze = { version: '0.0.1'; name: 'blockasset_blaze'; instructions: [ { name: 'redeemEntrants'; accounts: [ { name: 'blaze'; isMut: true; isSigner: false; }, { name: 'entrants'; isMut: true; isSigner: false; }, { name: 'signer'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'count'; type: 'u32'; } ]; }, { name: 'claimPrize'; accounts: [ { name: 'blaze'; isMut: true; isSigner: false; }, { name: 'blazePrizeMintTokenAccount'; isMut: true; isSigner: false; }, { name: 'winner'; isMut: true; isSigner: true; }, { name: 'winnerPrizeMintTokenAccount'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'closeBlaze'; accounts: [ { name: 'blaze'; isMut: true; isSigner: false; }, { name: 'project'; isMut: true; isSigner: false; }, { name: 'entrants'; isMut: true; isSigner: false; }, { name: 'blazePrizeMintTokenAccount'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'authorityPrizeMintTokenAccount'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'initIdentifier'; accounts: [ { name: 'identifier'; isMut: true; isSigner: false; }, { name: 'payer'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'initBlaze'; accounts: [ { name: 'blaze'; isMut: true; isSigner: false; }, { name: 'project'; isMut: true; isSigner: false; }, { name: 'projectWallet'; isMut: true; isSigner: false; }, { name: 'entrants'; isMut: true; isSigner: false; }, { name: 'identifier'; isMut: true; isSigner: false; }, { name: 'blazePrizeMintTokenAccount'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'authorityPrizeMintTokenAccount'; isMut: true; isSigner: false; }, { name: 'systemProgram'; isMut: false; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'rent'; isMut: false; isSigner: false; } ]; args: [ { name: 'ix'; type: { defined: 'InitBlazeIx'; }; } ]; }, { name: 'resolveBlaze'; accounts: [ { name: 'blaze'; isMut: true; isSigner: false; }, { name: 'recentBlockhashes'; isMut: false; isSigner: false; }, { name: 'entrants'; isMut: false; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'updateBlaze'; accounts: [ { name: 'blaze'; isMut: true; isSigner: false; }, { name: 'project'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; } ]; args: [ { name: 'ix'; type: { defined: 'UpdateBlazeIx'; }; } ]; } ]; accounts: [ { name: 'blaze'; type: { kind: 'struct'; fields: [ { name: 'bump'; type: 'u8'; }, { name: 'identifier'; type: 'u64'; }, { name: 'entrants'; type: 'publicKey'; }, { name: 'project'; type: 'publicKey'; }, { name: 'prizeMint'; type: 'publicKey'; }, { name: 'tokenMint'; type: { option: 'publicKey'; }; }, { name: 'tokenAccount'; type: { option: 'publicKey'; }; }, { name: 'treasury'; type: { option: 'publicKey'; }; }, { name: 'burnRate'; type: 'u8'; }, { name: 'entrantFee'; type: 'u64'; }, { name: 'start'; type: 'i64'; }, { name: 'end'; type: 'i64'; }, { name: 'winner'; type: 'publicKey'; }, { name: 'prizeClaimed'; type: 'bool'; }, { name: 'maxEntrantsPerWalletRate'; type: 'u8'; }, { name: 'category'; type: { option: 'string'; }; } ]; }; }, { name: 'identifier'; type: { kind: 'struct'; fields: [ { name: 'bump'; type: 'u8'; }, { name: 'count'; type: 'u64'; } ]; }; }, { name: 'entrants'; type: { kind: 'struct'; fields: [ { name: 'total'; type: 'u32'; }, { name: 'max'; type: 'u32'; } ]; }; } ]; types: [ { name: 'InitBlazeIx'; type: { kind: 'struct'; fields: [ { name: 'prizeMint'; type: 'publicKey'; }, { name: 'tokenMint'; type: { option: 'publicKey'; }; }, { name: 'tokenAccount'; type: { option: 'publicKey'; }; }, { name: 'treasury'; type: { option: 'publicKey'; }; }, { name: 'burnRate'; type: { option: 'u8'; }; }, { name: 'entrantFee'; type: 'u64'; }, { name: 'maxEntrants'; type: 'u32'; }, { name: 'start'; type: 'i64'; }, { name: 'end'; type: 'i64'; }, { name: 'maxEntrantsPerWalletRate'; type: { option: 'u8'; }; }, { name: 'category'; type: { option: 'string'; }; } ]; }; }, { name: 'UpdateBlazeIx'; type: { kind: 'struct'; fields: [ { name: 'tokenMint'; type: { option: 'publicKey'; }; }, { name: 'tokenAccount'; type: { option: 'publicKey'; }; }, { name: 'treasury'; type: { option: 'publicKey'; }; }, { name: 'entrantFee'; type: 'u64'; }, { name: 'burnRate'; type: { option: 'u8'; }; }, { name: 'start'; type: 'i64'; }, { name: 'end'; type: 'i64'; }, { name: 'maxEntrantsPerWalletRate'; type: { option: 'u8'; }; }, { name: 'category'; type: { option: 'string'; }; } ]; }; } ]; errors: [ { code: 6000; name: 'InvalidProjectAuthority'; msg: 'Invalid project authority'; }, { code: 6001; name: 'InvalidBlaze'; msg: 'Invalid blaze'; }, { code: 6002; name: 'InvalidBlazePrizeMintTokenAccount'; msg: 'Invalid blaze prize mint token account'; }, { code: 6003; name: 'InvalidUserPrizeMintTokenAccount'; msg: 'Invalid user prize mint token account'; }, { code: 6004; name: 'InvalidUserTokenAccount'; msg: 'Invalid user token account'; }, { code: 6005; name: 'ActiveBlaze'; msg: 'Active blaze'; }, { code: 6006; name: 'BlazeNotStarted'; msg: 'Blaze not started yet'; }, { code: 6007; name: 'BlazeEnded'; msg: 'Blaze ended'; }, { code: 6008; name: 'ResolvedBlaze'; msg: 'Resolved blaze'; }, { code: 6009; name: 'InvalidStartEnd'; msg: 'Invalid start and end'; }, { code: 6010; name: 'NotEnoughEntrantsLeft'; msg: 'Not enough entries left in the blaze'; }, { code: 6011; name: 'EntrantsAccountTooSmallForMaxEntrants'; msg: 'Entrants account too small for max entrants'; }, { code: 6012; name: 'InvalidCalculation'; msg: 'Invalid calculation'; }, { code: 6013; name: 'UserIsNotTheWinner'; msg: 'You are not the winner'; }, { code: 6014; name: 'InvalidEntrants'; msg: 'Invalid entrants'; }, { code: 6015; name: 'PrizeNotClaimedYet'; msg: 'Prize not claimed yet'; }, { code: 6016; name: 'InvalidTokenMint'; msg: 'Invalid token mint'; }, { code: 6017; name: 'MaxPurchaseLimitReached'; msg: 'You have reached your 20% burn entry limit'; }, { code: 6018; name: 'PermissionDenied'; msg: 'Permission denied'; }, { code: 6019; name: 'InvalidProject'; msg: 'Invalid project'; }, { code: 6020; name: 'InvalidTokenAccount'; msg: 'Invalid token or treasury account'; } ]; }; export const IDL: BlockassetBlaze = { version: '0.0.1', name: 'blockasset_blaze', instructions: [ { name: 'redeemEntrants', accounts: [ { name: 'blaze', isMut: true, isSigner: false }, { name: 'entrants', isMut: true, isSigner: false }, { name: 'signer', isMut: true, isSigner: true }, { name: 'systemProgram', isMut: false, isSigner: false }, { name: 'tokenProgram', isMut: false, isSigner: false } ], args: [ { name: 'count', type: 'u32' } ] }, { name: 'claimPrize', accounts: [ { name: 'blaze', isMut: true, isSigner: false }, { name: 'blazePrizeMintTokenAccount', isMut: true, isSigner: false }, { name: 'winner', isMut: true, isSigner: true }, { name: 'winnerPrizeMintTokenAccount', isMut: true, isSigner: false }, { name: 'tokenProgram', isMut: false, isSigner: false } ], args: [] }, { name: 'closeBlaze', accounts: [ { name: 'blaze', isMut: true, isSigner: false }, { name: 'project', isMut: true, isSigner: false }, { name: 'entrants', isMut: true, isSigner: false }, { name: 'blazePrizeMintTokenAccount', isMut: true, isSigner: false }, { name: 'authority', isMut: true, isSigner: true }, { name: 'authorityPrizeMintTokenAccount', isMut: true, isSigner: false }, { name: 'tokenProgram', isMut: false, isSigner: false } ], args: [] }, { name: 'initIdentifier', accounts: [ { name: 'identifier', isMut: true, isSigner: false }, { name: 'payer', isMut: true, isSigner: true }, { name: 'systemProgram', isMut: false, isSigner: false } ], args: [] }, { name: 'initBlaze', accounts: [ { name: 'blaze', isMut: true, isSigner: false }, { name: 'project', isMut: true, isSigner: false }, { name: 'projectWallet', isMut: true, isSigner: false }, { name: 'entrants', isMut: true, isSigner: false }, { name: 'identifier', isMut: true, isSigner: false }, { name: 'blazePrizeMintTokenAccount', isMut: true, isSigner: false }, { name: 'authority', isMut: true, isSigner: true }, { name: 'authorityPrizeMintTokenAccount', isMut: true, isSigner: false }, { name: 'systemProgram', isMut: false, isSigner: false }, { name: 'tokenProgram', isMut: false, isSigner: false }, { name: 'rent', isMut: false, isSigner: false } ], args: [ { name: 'ix', type: { defined: 'InitBlazeIx' } } ] }, { name: 'resolveBlaze', accounts: [ { name: 'blaze', isMut: true, isSigner: false }, { name: 'recentBlockhashes', isMut: false, isSigner: false }, { name: 'entrants', isMut: false, isSigner: false }, { name: 'tokenProgram', isMut: false, isSigner: false } ], args: [] }, { name: 'updateBlaze', accounts: [ { name: 'blaze', isMut: true, isSigner: false }, { name: 'project', isMut: true, isSigner: false }, { name: 'authority', isMut: true, isSigner: true } ], args: [ { name: 'ix', type: { defined: 'UpdateBlazeIx' } } ] } ], accounts: [ { name: 'blaze', type: { kind: 'struct', fields: [ { name: 'bump', type: 'u8' }, { name: 'identifier', type: 'u64' }, { name: 'entrants', type: 'publicKey' }, { name: 'project', type: 'publicKey' }, { name: 'prizeMint', type: 'publicKey' }, { name: 'tokenMint', type: { option: 'publicKey' } }, { name: 'tokenAccount', type: { option: 'publicKey' } }, { name: 'treasury', type: { option: 'publicKey' } }, { name: 'burnRate', type: 'u8' }, { name: 'entrantFee', type: 'u64' }, { name: 'start', type: 'i64' }, { name: 'end', type: 'i64' }, { name: 'winner', type: 'publicKey' }, { name: 'prizeClaimed', type: 'bool' }, { name: 'maxEntrantsPerWalletRate', type: 'u8' }, { name: 'category', type: { option: 'string' } } ] } }, { name: 'identifier', type: { kind: 'struct', fields: [ { name: 'bump', type: 'u8' }, { name: 'count', type: 'u64' } ] } }, { name: 'entrants', type: { kind: 'struct', fields: [ { name: 'total', type: 'u32' }, { name: 'max', type: 'u32' } ] } } ], types: [ { name: 'InitBlazeIx', type: { kind: 'struct', fields: [ { name: 'prizeMint', type: 'publicKey' }, { name: 'tokenMint', type: { option: 'publicKey' } }, { name: 'tokenAccount', type: { option: 'publicKey' } }, { name: 'treasury', type: { option: 'publicKey' } }, { name: 'burnRate', type: { option: 'u8' } }, { name: 'entrantFee', type: 'u64' }, { name: 'maxEntrants', type: 'u32' }, { name: 'start', type: 'i64' }, { name: 'end', type: 'i64' }, { name: 'maxEntrantsPerWalletRate', type: { option: 'u8' } }, { name: 'category', type: { option: 'string' } } ] } }, { name: 'UpdateBlazeIx', type: { kind: 'struct', fields: [ { name: 'tokenMint', type: { option: 'publicKey' } }, { name: 'tokenAccount', type: { option: 'publicKey' } }, { name: 'treasury', type: { option: 'publicKey' } }, { name: 'entrantFee', type: 'u64' }, { name: 'burnRate', type: { option: 'u8' } }, { name: 'start', type: 'i64' }, { name: 'end', type: 'i64' }, { name: 'maxEntrantsPerWalletRate', type: { option: 'u8' } }, { name: 'category', type: { option: 'string' } } ] } } ], errors: [ { code: 6000, name: 'InvalidProjectAuthority', msg: 'Invalid project authority' }, { code: 6001, name: 'InvalidBlaze', msg: 'Invalid blaze' }, { code: 6002, name: 'InvalidBlazePrizeMintTokenAccount', msg: 'Invalid blaze prize mint token account' }, { code: 6003, name: 'InvalidUserPrizeMintTokenAccount', msg: 'Invalid user prize mint token account' }, { code: 6004, name: 'InvalidUserTokenAccount', msg: 'Invalid user token account' }, { code: 6005, name: 'ActiveBlaze', msg: 'Active blaze' }, { code: 6006, name: 'BlazeNotStarted', msg: 'Blaze not started yet' }, { code: 6007, name: 'BlazeEnded', msg: 'Blaze ended' }, { code: 6008, name: 'ResolvedBlaze', msg: 'Resolved blaze' }, { code: 6009, name: 'InvalidStartEnd', msg: 'Invalid start and end' }, { code: 6010, name: 'NotEnoughEntrantsLeft', msg: 'Not enough entries left in the blaze' }, { code: 6011, name: 'EntrantsAccountTooSmallForMaxEntrants', msg: 'Entrants account too small for max entrants' }, { code: 6012, name: 'InvalidCalculation', msg: 'Invalid calculation' }, { code: 6013, name: 'UserIsNotTheWinner', msg: 'You are not the winner' }, { code: 6014, name: 'InvalidEntrants', msg: 'Invalid entrants' }, { code: 6015, name: 'PrizeNotClaimedYet', msg: 'Prize not claimed yet' }, { code: 6016, name: 'InvalidTokenMint', msg: 'Invalid token mint' }, { code: 6017, name: 'MaxPurchaseLimitReached', msg: 'You have reached your 20% burn entry limit' }, { code: 6018, name: 'PermissionDenied', msg: 'Permission denied' }, { code: 6019, name: 'InvalidProject', msg: 'Invalid project' }, { code: 6020, name: 'InvalidTokenAccount', msg: 'Invalid token or treasury account' } ] };