{"version":3,"file":"createSignerFromWalletAdapter.cjs","sources":["../../src/createSignerFromWalletAdapter.ts"],"sourcesContent":["import type { PublicKey, Signer, Transaction } from '@metaplex-foundation/umi';\nimport {\n  PublicKey as Web3JsPublicKey,\n  Transaction as Web3JsTransaction,\n  VersionedTransaction as Web3JsVersionedTransaction,\n} from '@solana/web3.js';\nimport {\n  fromWeb3JsPublicKey,\n  fromWeb3JsTransaction,\n  toWeb3JsTransaction,\n} from '@metaplex-foundation/umi-web3js-adapters';\nimport {\n  OperationNotSupportedByWalletAdapterError,\n  UninitializedWalletAdapterError,\n} from './errors';\n\ntype Web3JsTransactionOrVersionedTransaction =\n  | Web3JsTransaction\n  | Web3JsVersionedTransaction;\n\nexport type WalletAdapter = {\n  publicKey: Web3JsPublicKey | null;\n  signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n  signTransaction?: <T extends Web3JsTransactionOrVersionedTransaction>(\n    transaction: T\n  ) => Promise<T>;\n  signAllTransactions?: <T extends Web3JsTransactionOrVersionedTransaction>(\n    transactions: T[]\n  ) => Promise<T[]>;\n};\n\nexport const createSignerFromWalletAdapter = (\n  walletAdapter: WalletAdapter\n): Signer => ({\n  get publicKey(): PublicKey {\n    if (!walletAdapter.publicKey) {\n      throw new UninitializedWalletAdapterError();\n    }\n\n    return fromWeb3JsPublicKey(walletAdapter.publicKey);\n  },\n\n  async signMessage(message: Uint8Array): Promise<Uint8Array> {\n    if (walletAdapter.signMessage === undefined) {\n      throw new OperationNotSupportedByWalletAdapterError('signMessage');\n    }\n\n    return walletAdapter.signMessage(message);\n  },\n\n  async signTransaction(transaction: Transaction): Promise<Transaction> {\n    if (walletAdapter.signTransaction === undefined) {\n      throw new OperationNotSupportedByWalletAdapterError('signTransaction');\n    }\n\n    return fromWeb3JsTransaction(\n      await walletAdapter.signTransaction(toWeb3JsTransaction(transaction))\n    );\n  },\n\n  async signAllTransactions(\n    transactions: Transaction[]\n  ): Promise<Transaction[]> {\n    if (walletAdapter.signAllTransactions === undefined) {\n      throw new OperationNotSupportedByWalletAdapterError(\n        'signAllTransactions'\n      );\n    }\n\n    const web3JsTransactions = transactions.map(toWeb3JsTransaction);\n    const signedTransactions = await walletAdapter.signAllTransactions(\n      web3JsTransactions\n    );\n\n    return signedTransactions.map(fromWeb3JsTransaction);\n  },\n});\n"],"names":["createSignerFromWalletAdapter","walletAdapter","publicKey","UninitializedWalletAdapterError","fromWeb3JsPublicKey","signMessage","message","undefined","OperationNotSupportedByWalletAdapterError","signTransaction","transaction","fromWeb3JsTransaction","toWeb3JsTransaction","signAllTransactions","transactions","web3JsTransactions","map","signedTransactions"],"mappings":";;;;;;;AA+BaA,MAAAA,6BAA6B,GACxCC,aAA4B,KAChB;AACZ,EAAA,IAAIC,SAAS,GAAc;AACzB,IAAA,IAAI,CAACD,aAAa,CAACC,SAAS,EAAE;MAC5B,MAAM,IAAIC,sCAA+B,EAAE,CAAA;AAC7C,KAAA;AAEA,IAAA,OAAOC,qCAAmB,CAACH,aAAa,CAACC,SAAS,CAAC,CAAA;GACpD;EAED,MAAMG,WAAW,CAACC,OAAmB,EAAuB;AAC1D,IAAA,IAAIL,aAAa,CAACI,WAAW,KAAKE,SAAS,EAAE;AAC3C,MAAA,MAAM,IAAIC,gDAAyC,CAAC,aAAa,CAAC,CAAA;AACpE,KAAA;AAEA,IAAA,OAAOP,aAAa,CAACI,WAAW,CAACC,OAAO,CAAC,CAAA;GAC1C;EAED,MAAMG,eAAe,CAACC,WAAwB,EAAwB;AACpE,IAAA,IAAIT,aAAa,CAACQ,eAAe,KAAKF,SAAS,EAAE;AAC/C,MAAA,MAAM,IAAIC,gDAAyC,CAAC,iBAAiB,CAAC,CAAA;AACxE,KAAA;AAEA,IAAA,OAAOG,uCAAqB,CAC1B,MAAMV,aAAa,CAACQ,eAAe,CAACG,qCAAmB,CAACF,WAAW,CAAC,CAAC,CACtE,CAAA;GACF;EAED,MAAMG,mBAAmB,CACvBC,YAA2B,EACH;AACxB,IAAA,IAAIb,aAAa,CAACY,mBAAmB,KAAKN,SAAS,EAAE;AACnD,MAAA,MAAM,IAAIC,gDAAyC,CACjD,qBAAqB,CACtB,CAAA;AACH,KAAA;AAEA,IAAA,MAAMO,kBAAkB,GAAGD,YAAY,CAACE,GAAG,CAACJ,qCAAmB,CAAC,CAAA;IAChE,MAAMK,kBAAkB,GAAG,MAAMhB,aAAa,CAACY,mBAAmB,CAChEE,kBAAkB,CACnB,CAAA;AAED,IAAA,OAAOE,kBAAkB,CAACD,GAAG,CAACL,uCAAqB,CAAC,CAAA;AACtD,GAAA;AACF,CAAC;;;;"}