{"version":3,"file":"plugin.mjs","sources":["../../../../src/plugins/systemModule/plugin.ts"],"sourcesContent":["import { SystemProgram } from '@solana/web3.js';\nimport { ProgramClient } from '../programModule';\nimport {\n  createAccountOperation,\n  createAccountOperationHandler,\n  transferSolOperation,\n  transferSolOperationHandler,\n} from './operations';\nimport { SystemClient } from './SystemClient';\nimport type { ConvergencePlugin, Program } from '@/types';\nimport type { Convergence } from '@/Convergence';\n\n/**\n * @group Plugins\n */\n/** @group Plugins */\nexport const systemModule = (): ConvergencePlugin => ({\n  install(convergence: Convergence) {\n    // Program.\n    const systemProgram = {\n      name: 'SystemProgram',\n      address: SystemProgram.programId,\n    };\n    convergence.programs().register(systemProgram);\n    convergence.programs().getSystem = function (\n      this: ProgramClient,\n      programs?: Program[]\n    ) {\n      return this.get(systemProgram.name, programs);\n    };\n\n    // Operations.\n    const op = convergence.operations();\n    op.register(createAccountOperation, createAccountOperationHandler);\n    op.register(transferSolOperation, transferSolOperationHandler);\n\n    convergence.system = function () {\n      return new SystemClient(this);\n    };\n  },\n});\n\ndeclare module '../../Convergence' {\n  interface Convergence {\n    system(): SystemClient;\n  }\n}\n\ndeclare module '../programModule/ProgramClient' {\n  interface ProgramClient {\n    getSystem(programs?: Program[]): Program;\n  }\n}\n"],"names":["systemModule","install","convergence","systemProgram","name","address","SystemProgram","programId","programs","register","getSystem","get","op","operations","createAccountOperation","createAccountOperationHandler","transferSolOperation","transferSolOperationHandler","system","SystemClient"],"mappings":";;;;;AAYA;AACA;AACA;AACA;AACaA,IAAAA,YAAY,GAAG,SAAfA,YAAYA,GAAA;EAAA,OAA6B;IACpDC,OAAO,EAAA,SAAAA,OAACC,CAAAA,WAAwB,EAAE;AAChC;AACA,MAAA,IAAMC,aAAa,GAAG;AACpBC,QAAAA,IAAI,EAAE,eAAe;QACrBC,OAAO,EAAEC,aAAa,CAACC,SAAAA;OACxB,CAAA;MACDL,WAAW,CAACM,QAAQ,EAAE,CAACC,QAAQ,CAACN,aAAa,CAAC,CAAA;MAC9CD,WAAW,CAACM,QAAQ,EAAE,CAACE,SAAS,GAAG,UAEjCF,QAAoB,EACpB;QACA,OAAO,IAAI,CAACG,GAAG,CAACR,aAAa,CAACC,IAAI,EAAEI,QAAQ,CAAC,CAAA;OAC9C,CAAA;;AAED;AACA,MAAA,IAAMI,EAAE,GAAGV,WAAW,CAACW,UAAU,EAAE,CAAA;AACnCD,MAAAA,EAAE,CAACH,QAAQ,CAACK,sBAAsB,EAAEC,6BAA6B,CAAC,CAAA;AAClEH,MAAAA,EAAE,CAACH,QAAQ,CAACO,oBAAoB,EAAEC,2BAA2B,CAAC,CAAA;MAE9Df,WAAW,CAACgB,MAAM,GAAG,YAAY;AAC/B,QAAA,OAAO,IAAIC,YAAY,CAAC,IAAI,CAAC,CAAA;OAC9B,CAAA;AACH,KAAA;GACD,CAAA;AAAA;;;;"}