{"version":3,"file":"plugin.mjs","sources":["../../../../src/plugins/tokenModule/plugin.ts"],"sourcesContent":["import { ProgramClient } from '../programModule';\nimport {\n  approveTokenDelegateAuthorityOperation,\n  approveTokenDelegateAuthorityOperationHandler,\n  createMintOperation,\n  createMintOperationHandler,\n  createTokenOperation,\n  createTokenOperationHandler,\n  createTokenWithMintOperation,\n  createTokenWithMintOperationHandler,\n  findMintByAddressOperation,\n  findMintByAddressOperationHandler,\n  findTokenByAddressOperation,\n  findTokenByAddressOperationHandler,\n  findTokenWithMintByAddressOperation,\n  findTokenWithMintByAddressOperationHandler,\n  findTokenWithMintByMintOperation,\n  findTokenWithMintByMintOperationHandler,\n  freezeTokensOperation,\n  freezeTokensOperationHandler,\n  getTokenBalanceOperationHandler,\n  getTokenBalanceOperation,\n  mintTokensOperation,\n  mintTokensOperationHandler,\n  revokeTokenDelegateAuthorityOperation,\n  revokeTokenDelegateAuthorityOperationHandler,\n  sendTokensOperation,\n  sendTokensOperationHandler,\n  thawTokensOperation,\n  thawTokensOperationHandler,\n} from './operations';\nimport { associatedTokenProgram, tokenProgram } from './program';\nimport { TokenClient } from './TokenClient';\nimport type { ConvergencePlugin, Program } from '@/types';\nimport type { Convergence } from '@/Convergence';\n\n/**\n * @group Plugins\n */\n/** @group Plugins */\nexport const tokenModule = (): ConvergencePlugin => ({\n  install(convergence: Convergence) {\n    // Token Program.\n    convergence.programs().register(tokenProgram);\n    convergence.programs().getToken = function (\n      this: ProgramClient,\n      programs?: Program[]\n    ) {\n      return this.get(tokenProgram.name, programs);\n    };\n\n    // Associated Token Program.\n    convergence.programs().register(associatedTokenProgram);\n    convergence.programs().getAssociatedToken = function (\n      this: ProgramClient,\n      programs?: Program[]\n    ) {\n      return this.get(associatedTokenProgram.name, programs);\n    };\n\n    // Operations.\n    const op = convergence.operations();\n    op.register(\n      approveTokenDelegateAuthorityOperation,\n      approveTokenDelegateAuthorityOperationHandler\n    );\n    op.register(createMintOperation, createMintOperationHandler);\n    op.register(createTokenOperation, createTokenOperationHandler);\n    op.register(\n      createTokenWithMintOperation,\n      createTokenWithMintOperationHandler\n    );\n    op.register(findMintByAddressOperation, findMintByAddressOperationHandler);\n    op.register(\n      findTokenByAddressOperation,\n      findTokenByAddressOperationHandler\n    );\n    op.register(\n      findTokenByAddressOperation,\n      findTokenByAddressOperationHandler\n    );\n    op.register(\n      findTokenWithMintByAddressOperation,\n      findTokenWithMintByAddressOperationHandler\n    );\n    op.register(\n      findTokenWithMintByMintOperation,\n      findTokenWithMintByMintOperationHandler\n    );\n    op.register(freezeTokensOperation, freezeTokensOperationHandler);\n    op.register(mintTokensOperation, mintTokensOperationHandler);\n    op.register(\n      revokeTokenDelegateAuthorityOperation,\n      revokeTokenDelegateAuthorityOperationHandler\n    );\n    op.register(sendTokensOperation, sendTokensOperationHandler);\n    op.register(thawTokensOperation, thawTokensOperationHandler);\n\n    op.register(getTokenBalanceOperation, getTokenBalanceOperationHandler);\n\n    convergence.tokens = function () {\n      return new TokenClient(this);\n    };\n  },\n});\n\ndeclare module '../../Convergence' {\n  interface Convergence {\n    tokens(): TokenClient;\n  }\n}\n\ndeclare module '../programModule/ProgramClient' {\n  interface ProgramClient {\n    getToken(programs?: Program[]): Program;\n    getAssociatedToken(programs?: Program[]): Program;\n  }\n}\n"],"names":["tokenModule","install","convergence","programs","register","tokenProgram","getToken","get","name","associatedTokenProgram","getAssociatedToken","op","operations","approveTokenDelegateAuthorityOperation","approveTokenDelegateAuthorityOperationHandler","createMintOperation","createMintOperationHandler","createTokenOperation","createTokenOperationHandler","createTokenWithMintOperation","createTokenWithMintOperationHandler","findMintByAddressOperation","findMintByAddressOperationHandler","findTokenByAddressOperation","findTokenByAddressOperationHandler","findTokenWithMintByAddressOperation","findTokenWithMintByAddressOperationHandler","findTokenWithMintByMintOperation","findTokenWithMintByMintOperationHandler","freezeTokensOperation","freezeTokensOperationHandler","mintTokensOperation","mintTokensOperationHandler","revokeTokenDelegateAuthorityOperation","revokeTokenDelegateAuthorityOperationHandler","sendTokensOperation","sendTokensOperationHandler","thawTokensOperation","thawTokensOperationHandler","getTokenBalanceOperation","getTokenBalanceOperationHandler","tokens","TokenClient"],"mappings":";;;;;;;;;;;;;;;;;AAoCA;AACA;AACA;AACA;AACaA,IAAAA,WAAW,GAAG,SAAdA,WAAWA,GAAA;EAAA,OAA6B;IACnDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,WAAwB,EAAE;AAChC;MACAA,WAAW,CAACC,QAAQ,EAAE,CAACC,QAAQ,CAACC,YAAY,CAAC,CAAA;MAC7CH,WAAW,CAACC,QAAQ,EAAE,CAACG,QAAQ,GAAG,UAEhCH,QAAoB,EACpB;QACA,OAAO,IAAI,CAACI,GAAG,CAACF,YAAY,CAACG,IAAI,EAAEL,QAAQ,CAAC,CAAA;OAC7C,CAAA;;AAED;MACAD,WAAW,CAACC,QAAQ,EAAE,CAACC,QAAQ,CAACK,sBAAsB,CAAC,CAAA;MACvDP,WAAW,CAACC,QAAQ,EAAE,CAACO,kBAAkB,GAAG,UAE1CP,QAAoB,EACpB;QACA,OAAO,IAAI,CAACI,GAAG,CAACE,sBAAsB,CAACD,IAAI,EAAEL,QAAQ,CAAC,CAAA;OACvD,CAAA;;AAED;AACA,MAAA,IAAMQ,EAAE,GAAGT,WAAW,CAACU,UAAU,EAAE,CAAA;AACnCD,MAAAA,EAAE,CAACP,QAAQ,CACTS,sCAAsC,EACtCC,6CACF,CAAC,CAAA;AACDH,MAAAA,EAAE,CAACP,QAAQ,CAACW,mBAAmB,EAAEC,0BAA0B,CAAC,CAAA;AAC5DL,MAAAA,EAAE,CAACP,QAAQ,CAACa,oBAAoB,EAAEC,2BAA2B,CAAC,CAAA;AAC9DP,MAAAA,EAAE,CAACP,QAAQ,CACTe,4BAA4B,EAC5BC,mCACF,CAAC,CAAA;AACDT,MAAAA,EAAE,CAACP,QAAQ,CAACiB,0BAA0B,EAAEC,iCAAiC,CAAC,CAAA;AAC1EX,MAAAA,EAAE,CAACP,QAAQ,CACTmB,2BAA2B,EAC3BC,kCACF,CAAC,CAAA;AACDb,MAAAA,EAAE,CAACP,QAAQ,CACTmB,2BAA2B,EAC3BC,kCACF,CAAC,CAAA;AACDb,MAAAA,EAAE,CAACP,QAAQ,CACTqB,mCAAmC,EACnCC,0CACF,CAAC,CAAA;AACDf,MAAAA,EAAE,CAACP,QAAQ,CACTuB,gCAAgC,EAChCC,uCACF,CAAC,CAAA;AACDjB,MAAAA,EAAE,CAACP,QAAQ,CAACyB,qBAAqB,EAAEC,4BAA4B,CAAC,CAAA;AAChEnB,MAAAA,EAAE,CAACP,QAAQ,CAAC2B,mBAAmB,EAAEC,0BAA0B,CAAC,CAAA;AAC5DrB,MAAAA,EAAE,CAACP,QAAQ,CACT6B,qCAAqC,EACrCC,4CACF,CAAC,CAAA;AACDvB,MAAAA,EAAE,CAACP,QAAQ,CAAC+B,mBAAmB,EAAEC,0BAA0B,CAAC,CAAA;AAC5DzB,MAAAA,EAAE,CAACP,QAAQ,CAACiC,mBAAmB,EAAEC,0BAA0B,CAAC,CAAA;AAE5D3B,MAAAA,EAAE,CAACP,QAAQ,CAACmC,wBAAwB,EAAEC,+BAA+B,CAAC,CAAA;MAEtEtC,WAAW,CAACuC,MAAM,GAAG,YAAY;AAC/B,QAAA,OAAO,IAAIC,WAAW,CAAC,IAAI,CAAC,CAAA;OAC7B,CAAA;AACH,KAAA;GACD,CAAA;AAAA;;;;"}