{"version":3,"file":"gpaBuilders.mjs","sources":["../../../../src/plugins/tokenModule/gpaBuilders.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\nimport { MINT_SIZE, ACCOUNT_SIZE, TOKEN_PROGRAM_ID } from '@solana/spl-token';\n\nimport { Convergence } from '../../Convergence';\nimport { GpaBuilder } from '../../utils';\nimport { BigNumber } from '../../types';\n\nexport class MintGpaBuilder extends GpaBuilder {\n  constructor(convergence: Convergence, programId?: PublicKey) {\n    super(convergence, programId ?? TOKEN_PROGRAM_ID);\n    this.whereSize(MINT_SIZE);\n  }\n\n  whereDoesntHaveMintAuthority() {\n    return this.where(0, 0);\n  }\n\n  whereHasMintAuthority() {\n    return this.where(0, 1);\n  }\n\n  whereMintAuthority(mintAuthority: PublicKey) {\n    return this.whereHasMintAuthority().where(4, mintAuthority);\n  }\n\n  whereSupply(supply: number | BigNumber) {\n    return this.where(36, supply);\n  }\n\n  // TODO(loris): Map the rest of the layout.\n  // https://github.com/solana-labs/solana-program-library/blob/master/token/js/src/state/mint.ts#L43\n}\n\nexport class TokenGpaBuilder extends GpaBuilder {\n  constructor(convergence: Convergence, programId?: PublicKey) {\n    super(convergence, programId ?? TOKEN_PROGRAM_ID);\n    this.whereSize(ACCOUNT_SIZE);\n  }\n\n  selectMint() {\n    return this.slice(0, 32);\n  }\n\n  whereMint(mint: PublicKey) {\n    return this.where(0, mint);\n  }\n\n  selectOwner() {\n    return this.slice(32, 32);\n  }\n\n  whereOwner(owner: PublicKey) {\n    return this.where(32, owner);\n  }\n\n  selectAmount() {\n    return this.slice(64, 8);\n  }\n\n  whereAmount(amount: number | BigNumber) {\n    return this.where(64, amount);\n  }\n\n  whereDoesntHaveDelegate() {\n    return this.where(72, 0);\n  }\n\n  whereHasDelegate() {\n    return this.where(72, 1);\n  }\n\n  whereDelegate(delegate: PublicKey) {\n    return this.whereHasDelegate().where(76, delegate);\n  }\n\n  // TODO(loris): Map the rest of the layout.\n  // https://github.com/solana-labs/solana-program-library/blob/master/token/js/src/state/account.ts#L59\n}\n"],"names":["MintGpaBuilder","_GpaBuilder","_inherits","convergence","programId","_this","_classCallCheck","_callSuper","TOKEN_PROGRAM_ID","whereSize","MINT_SIZE","_createClass","key","value","whereDoesntHaveMintAuthority","where","whereHasMintAuthority","whereMintAuthority","mintAuthority","whereSupply","supply","GpaBuilder","TokenGpaBuilder","_GpaBuilder2","_this2","ACCOUNT_SIZE","selectMint","slice","whereMint","mint","selectOwner","whereOwner","owner","selectAmount","whereAmount","amount","whereDoesntHaveDelegate","whereHasDelegate","whereDelegate","delegate"],"mappings":"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"}