{"version":3,"file":"webPlugin.cjs","sources":["../../src/webPlugin.ts"],"sourcesContent":["import {\n  Commitment,\n  Signer,\n  base58,\n  createSignerFromKeypair,\n  signTransaction,\n  Context,\n} from '@metaplex-foundation/umi';\nimport {\n  fromWeb3JsKeypair,\n  fromWeb3JsLegacyTransaction,\n  toWeb3JsLegacyTransaction,\n  toWeb3JsPublicKey,\n} from '@metaplex-foundation/umi-web3js-adapters';\nimport {\n  Connection as Web3JsConnection,\n  Keypair as Web3JsKeypair,\n  SendOptions as Web3JsSendOptions,\n  Signer as Web3JsSigner,\n  Transaction as Web3JsTransaction,\n  TransactionSignature as Web3JsTransactionSignature,\n} from '@solana/web3.js';\n\nimport { WebUploader } from '@irys/web-upload';\nimport { WebSolana } from '@irys/web-upload-solana';\nimport BaseWebIrys from '@irys/web-upload/dist/types/base';\nimport type { UmiPlugin } from '@metaplex-foundation/umi';\nimport {\n  IrysWalletAdapter,\n  createBaseIrysUploader as CIU,\n  IrysUploaderOptions,\n  IrysUploader,\n} from './createIrysUploader';\nimport { FailedToInitializeIrysError } from './errors';\n\nexport const irysUploader = (options?: IrysUploaderOptions): UmiPlugin => ({\n  install(umi) {\n    umi.uploader = createIrysUploader(umi, options);\n  },\n});\n\nexport function createIrysUploader(\n  context: Pick<Context, 'rpc' | 'payer' | 'eddsa'>,\n  uploaderOptions: IrysUploaderOptions = {}\n): IrysUploader {\n  return CIU(initWebIrys, context, uploaderOptions);\n}\n\nexport const initWebIrys = async (\n  address: string,\n  payer: Signer,\n  options: any,\n  context: any\n): Promise<BaseWebIrys> => {\n  const wallet: IrysWalletAdapter = {\n    publicKey: toWeb3JsPublicKey(payer.publicKey),\n    signMessage: (message: Uint8Array) => payer.signMessage(message),\n    signTransaction: async (web3JsTransaction: Web3JsTransaction) =>\n      toWeb3JsLegacyTransaction(\n        await payer.signTransaction(\n          fromWeb3JsLegacyTransaction(web3JsTransaction)\n        )\n      ),\n    signAllTransactions: async (web3JsTransactions: Web3JsTransaction[]) => {\n      const transactions = web3JsTransactions.map(fromWeb3JsLegacyTransaction);\n      const signedTransactions = await payer.signAllTransactions(transactions);\n      return signedTransactions.map(toWeb3JsLegacyTransaction);\n    },\n    sendTransaction: async (\n      web3JsTransaction: Web3JsTransaction,\n      connection: Web3JsConnection,\n      options: Web3JsSendOptions & { signers?: Web3JsSigner[] } = {}\n    ): Promise<Web3JsTransactionSignature> => {\n      const { signers: web3JsSigners = [], ...sendOptions } = options;\n      const signers = web3JsSigners.map((web3JsSigner) =>\n        createSignerFromKeypair(\n          context,\n          fromWeb3JsKeypair(Web3JsKeypair.fromSecretKey(web3JsSigner.secretKey))\n        )\n      );\n\n      let transaction = fromWeb3JsLegacyTransaction(web3JsTransaction);\n      transaction = await signTransaction(transaction, [payer, ...signers]);\n\n      const signature = await context.rpc.sendTransaction(transaction, {\n        ...sendOptions,\n        preflightCommitment: sendOptions.preflightCommitment as Commitment,\n      });\n\n      return base58.deserialize(signature)[0];\n    },\n  };\n\n  try {\n    return await WebUploader(WebSolana)\n      .withProvider(wallet)\n      .bundlerUrl(address)\n      .withIrysConfig(options)\n      .build();\n  } catch (error) {\n    throw new FailedToInitializeIrysError(error as Error);\n  }\n};\n"],"names":["irysUploader","options","install","umi","uploader","createIrysUploader","context","uploaderOptions","CIU","initWebIrys","address","payer","wallet","publicKey","toWeb3JsPublicKey","signMessage","message","signTransaction","web3JsTransaction","toWeb3JsLegacyTransaction","fromWeb3JsLegacyTransaction","signAllTransactions","web3JsTransactions","transactions","map","signedTransactions","sendTransaction","connection","signers","web3JsSigners","sendOptions","web3JsSigner","createSignerFromKeypair","fromWeb3JsKeypair","Web3JsKeypair","fromSecretKey","secretKey","transaction","signature","rpc","preflightCommitment","base58","deserialize","WebUploader","WebSolana","withProvider","bundlerUrl","withIrysConfig","build","error","FailedToInitializeIrysError"],"mappings":";;;;;;;;;;;;AAmCaA,MAAAA,YAAY,GAAIC,OAA6B,KAAiB;EACzEC,OAAO,CAACC,GAAG,EAAE;IACXA,GAAG,CAACC,QAAQ,GAAGC,kBAAkB,CAACF,GAAG,EAAEF,OAAO,CAAC,CAAA;AACjD,GAAA;AACF,CAAC,EAAC;AAEK,SAASI,kBAAkB,CAChCC,OAAiD,EACjDC,eAAoC,GAAG,EAAE,EAC3B;AACd,EAAA,OAAOC,2CAAG,CAACC,WAAW,EAAEH,OAAO,EAAEC,eAAe,CAAC,CAAA;AACnD,CAAA;AAEO,MAAME,WAAW,GAAG,OACzBC,OAAe,EACfC,KAAa,EACbV,OAAY,EACZK,OAAY,KACa;AACzB,EAAA,MAAMM,MAAyB,GAAG;AAChCC,IAAAA,SAAS,EAAEC,mCAAiB,CAACH,KAAK,CAACE,SAAS,CAAC;IAC7CE,WAAW,EAAGC,OAAmB,IAAKL,KAAK,CAACI,WAAW,CAACC,OAAO,CAAC;AAChEC,IAAAA,eAAe,EAAE,MAAOC,iBAAoC,IAC1DC,2CAAyB,CACvB,MAAMR,KAAK,CAACM,eAAe,CACzBG,6CAA2B,CAACF,iBAAiB,CAAC,CAC/C,CACF;IACHG,mBAAmB,EAAE,MAAOC,kBAAuC,IAAK;AACtE,MAAA,MAAMC,YAAY,GAAGD,kBAAkB,CAACE,GAAG,CAACJ,6CAA2B,CAAC,CAAA;MACxE,MAAMK,kBAAkB,GAAG,MAAMd,KAAK,CAACU,mBAAmB,CAACE,YAAY,CAAC,CAAA;AACxE,MAAA,OAAOE,kBAAkB,CAACD,GAAG,CAACL,2CAAyB,CAAC,CAAA;KACzD;IACDO,eAAe,EAAE,OACfR,iBAAoC,EACpCS,UAA4B,EAC5B1B,OAAyD,GAAG,EAAE,KACtB;MACxC,MAAM;QAAE2B,OAAO,EAAEC,aAAa,GAAG,EAAE;QAAE,GAAGC,WAAAA;AAAY,OAAC,GAAG7B,OAAO,CAAA;MAC/D,MAAM2B,OAAO,GAAGC,aAAa,CAACL,GAAG,CAAEO,YAAY,IAC7CC,2BAAuB,CACrB1B,OAAO,EACP2B,mCAAiB,CAACC,eAAa,CAACC,aAAa,CAACJ,YAAY,CAACK,SAAS,CAAC,CAAC,CACvE,CACF,CAAA;AAED,MAAA,IAAIC,WAAW,GAAGjB,6CAA2B,CAACF,iBAAiB,CAAC,CAAA;AAChEmB,MAAAA,WAAW,GAAG,MAAMpB,mBAAe,CAACoB,WAAW,EAAE,CAAC1B,KAAK,EAAE,GAAGiB,OAAO,CAAC,CAAC,CAAA;MAErE,MAAMU,SAAS,GAAG,MAAMhC,OAAO,CAACiC,GAAG,CAACb,eAAe,CAACW,WAAW,EAAE;AAC/D,QAAA,GAAGP,WAAW;QACdU,mBAAmB,EAAEV,WAAW,CAACU,mBAAAA;AACnC,OAAC,CAAC,CAAA;MAEF,OAAOC,UAAM,CAACC,WAAW,CAACJ,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,KAAA;GACD,CAAA;EAED,IAAI;IACF,OAAO,MAAMK,qBAAW,CAACC,yBAAS,CAAC,CAChCC,YAAY,CAACjC,MAAM,CAAC,CACpBkC,UAAU,CAACpC,OAAO,CAAC,CACnBqC,cAAc,CAAC9C,OAAO,CAAC,CACvB+C,KAAK,EAAE,CAAA;GACX,CAAC,OAAOC,KAAK,EAAE;AACd,IAAA,MAAM,IAAIC,kCAA2B,CAACD,KAAK,CAAU,CAAA;AACvD,GAAA;AACF;;;;;;"}