{"version":3,"file":"accounts.cjs","sources":["../../../../src/plugins/tokenModule/accounts.ts"],"sourcesContent":["import {\n  AccountLayout as SplTokenAccountLayout,\n  MintLayout as SplMintAccountLayout,\n  RawAccount as SplTokenAccount,\n  RawMint as SplMintAccount,\n} from '@solana/spl-token';\nimport { MintInfo } from '@convergence-rfq/rfq';\n\nimport { NotYetImplementedError } from '../../errors';\nimport {\n  Account,\n  SolitaType,\n  getAccountParsingAndAssertingFunction,\n  getAccountParsingFunction,\n} from '../../types';\n\nconst mintAccountParser: SolitaType<SplMintAccount> = {\n  name: 'MintAccount',\n  deserialize: (data: Buffer, offset?: number) => {\n    const span = SplMintAccountLayout.getSpan(data, offset);\n    const decoded = SplMintAccountLayout.decode(data, offset);\n    return [decoded, span];\n  },\n  fromArgs() {\n    throw new NotYetImplementedError();\n  },\n};\n\n/** @group Accounts */\nexport type MintAccount = Account<SplMintAccount>;\n\n/** @group Account Helpers */\nexport const parseMintAccount = getAccountParsingFunction(mintAccountParser);\n\n/** @group Account Helpers */\nexport const toMintAccount =\n  getAccountParsingAndAssertingFunction(mintAccountParser);\n\n/** @group Accounts */\nexport type MintInfoAccount = Account<MintInfo>;\n\n/** @group Account Helpers */\nexport const parseMintInfoAccount = getAccountParsingFunction(MintInfo);\n\n/** @group Account Helpers */\nexport const toMintInfoAccount =\n  getAccountParsingAndAssertingFunction(MintInfo);\n\nconst tokenAccountParser: SolitaType<SplTokenAccount> = {\n  name: 'TokenAccount',\n  deserialize: (data: Buffer, offset?: number) => {\n    const span = SplTokenAccountLayout.getSpan(data, offset);\n    const decoded = SplTokenAccountLayout.decode(data, offset);\n    return [decoded, span];\n  },\n  fromArgs() {\n    throw new NotYetImplementedError();\n  },\n};\n\n/** @group Accounts */\nexport type TokenAccount = Account<SplTokenAccount>;\n\n/** @group Account Helpers */\nexport const parseTokenAccount = getAccountParsingFunction(tokenAccountParser);\n\n/** @group Account Helpers */\nexport const toTokenAccount =\n  getAccountParsingAndAssertingFunction(tokenAccountParser);\n"],"names":["mintAccountParser","name","deserialize","data","offset","span","SplMintAccountLayout","getSpan","decoded","decode","fromArgs","NotYetImplementedError","parseMintAccount","getAccountParsingFunction","toMintAccount","getAccountParsingAndAssertingFunction","parseMintInfoAccount","MintInfo","toMintInfoAccount","tokenAccountParser","SplTokenAccountLayout","parseTokenAccount","toTokenAccount"],"mappings":";;;;;;;;;AAgBA,IAAMA,iBAA6C,GAAG;AACpDC,EAAAA,IAAI,EAAE,aAAa;AACnBC,EAAAA,WAAW,EAAE,SAAAA,WAAAA,CAACC,IAAY,EAAEC,MAAe,EAAK;IAC9C,IAAMC,IAAI,GAAGC,mBAAoB,CAACC,OAAO,CAACJ,IAAI,EAAEC,MAAM,CAAC,CAAA;IACvD,IAAMI,OAAO,GAAGF,mBAAoB,CAACG,MAAM,CAACN,IAAI,EAAEC,MAAM,CAAC,CAAA;AACzD,IAAA,OAAO,CAACI,OAAO,EAAEH,IAAI,CAAC,CAAA;GACvB;EACDK,QAAQ,EAAA,SAAAA,WAAG;IACT,MAAM,IAAIC,+BAAsB,EAAE,CAAA;AACpC,GAAA;AACF,CAAC,CAAA;;AAED;;AAGA;IACaC,gBAAgB,GAAGC,iCAAyB,CAACb,iBAAiB,EAAC;;AAE5E;IACac,aAAa,GACxBC,6CAAqC,CAACf,iBAAiB,EAAC;;AAE1D;;AAGA;IACagB,oBAAoB,GAAGH,iCAAyB,CAACI,YAAQ,EAAC;;AAEvE;IACaC,iBAAiB,GAC5BH,6CAAqC,CAACE,YAAQ,EAAC;AAEjD,IAAME,kBAA+C,GAAG;AACtDlB,EAAAA,IAAI,EAAE,cAAc;AACpBC,EAAAA,WAAW,EAAE,SAAAA,WAAAA,CAACC,IAAY,EAAEC,MAAe,EAAK;IAC9C,IAAMC,IAAI,GAAGe,sBAAqB,CAACb,OAAO,CAACJ,IAAI,EAAEC,MAAM,CAAC,CAAA;IACxD,IAAMI,OAAO,GAAGY,sBAAqB,CAACX,MAAM,CAACN,IAAI,EAAEC,MAAM,CAAC,CAAA;AAC1D,IAAA,OAAO,CAACI,OAAO,EAAEH,IAAI,CAAC,CAAA;GACvB;EACDK,QAAQ,EAAA,SAAAA,WAAG;IACT,MAAM,IAAIC,+BAAsB,EAAE,CAAA;AACpC,GAAA;AACF,CAAC,CAAA;;AAED;;AAGA;IACaU,iBAAiB,GAAGR,iCAAyB,CAACM,kBAAkB,EAAC;;AAE9E;IACaG,cAAc,GACzBP,6CAAqC,CAACI,kBAAkB;;;;;;;;;"}