import type { AnchorTypes } from '@saberhq/anchor-contrib';
import { PublicKey } from '@solana/web3.js';

import * as BLAZE_TYPES from '../../idl/blockasset_blaze';

export const BLAZE_ADDRESS = new PublicKey(
  'bLz3qYiuoTvBo2PqwwvDiHEcWF1Ghej8uAYV3wbcd82'
);

export const BLAZE_PREFIX = 'blaze';
export const IDENTIFIER_PREFIX = 'identifier';
export const ENTRANTS_PREFIX = 'entrants';

export const BLAZE_PROJECT_ID_OFFSET = 8 + 1 + 8 + 32;

export type BLAZE_PROGRAM = BLAZE_TYPES.BlockassetBlaze;

export const BLAZE_IDL = BLAZE_TYPES.IDL;

export type BlazeTypes = AnchorTypes<BLAZE_PROGRAM>;

export type Accounts = BlazeTypes['Accounts'];
export type BlazeData = Accounts['blaze'];
export type IdentifierData = Accounts['identifier'];
export type EntrantsDataRaw = Accounts['entrants'];
export type EntrantsData = EntrantsDataRaw & {
  entrants: PublicKey[];
};
