@blockassetlabs/blaze
Version:
Blockasset Blaze
1,202 lines (1,200 loc) • 23.2 kB
text/typescript
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'
}
]
};