{"version":3,"file":"IdentityClient.mjs","sources":["../../../../src/plugins/identityModule/IdentityClient.ts"],"sourcesContent":["import * as ed25519 from '@noble/ed25519';\nimport { PublicKey, Transaction } from '@solana/web3.js';\n\nimport {\n  HasDriver,\n  IdentitySigner,\n  isSigner,\n  KeypairSigner,\n  Signer,\n} from '../../types';\nimport { DriverNotProvidedError } from '../../errors';\nimport { IdentityDriver } from './IdentityDriver';\n\n/**\n * @group Modules\n */\nexport class IdentityClient\n  implements HasDriver<IdentityDriver>, IdentitySigner\n{\n  private _driver: IdentityDriver | null = null;\n\n  driver(): IdentityDriver {\n    if (!this._driver) {\n      throw new DriverNotProvidedError('IdentityDriver');\n    }\n\n    return this._driver;\n  }\n\n  setDriver(newDriver: IdentityDriver): void {\n    this._driver = newDriver;\n  }\n\n  get publicKey(): PublicKey {\n    return this.driver().publicKey;\n  }\n\n  get secretKey(): Uint8Array | undefined {\n    return this.driver().secretKey;\n  }\n\n  signMessage(message: Uint8Array): Promise<Uint8Array> {\n    return this.driver().signMessage(message);\n  }\n\n  signTransaction(transaction: Transaction): Promise<Transaction> {\n    return this.driver().signTransaction(transaction);\n  }\n\n  signAllTransactions(transactions: Transaction[]): Promise<Transaction[]> {\n    return this.driver().signAllTransactions(transactions);\n  }\n\n  async signTransactionMatrix(\n    ...transactionMatrix: Transaction[][]\n  ): Promise<Transaction[][]> {\n    const txLengths = transactionMatrix.map((txs) => txs.length);\n    const flattendedTransactions = transactionMatrix.flat();\n    const flattendedSignedTransactions = await this.signAllTransactions(\n      flattendedTransactions\n    );\n    const constructedTxMatrix = txLengths.map((len) =>\n      flattendedSignedTransactions.splice(0, len)\n    );\n\n    return constructedTxMatrix;\n  }\n\n  verifyMessage(message: Uint8Array, signature: Uint8Array): boolean {\n    return ed25519.sync.verify(message, signature, this.publicKey.toBytes());\n  }\n\n  equals(that: Signer | PublicKey): boolean {\n    if (isSigner(that)) {\n      that = that.publicKey;\n    }\n\n    return this.publicKey.equals(that);\n  }\n\n  hasSecretKey(): this is KeypairSigner {\n    return this.secretKey != null;\n  }\n}\n"],"names":["IdentityClient","_classCallCheck","_defineProperty","_createClass","key","value","driver","_driver","DriverNotProvidedError","setDriver","newDriver","get","publicKey","secretKey","signMessage","message","signTransaction","transaction","signAllTransactions","transactions","_signTransactionMatrix","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_len","transactionMatrix","_key","txLengths","flattendedTransactions","flattendedSignedTransactions","constructedTxMatrix","_args","arguments","wrap","_callee$","_context","prev","next","length","Array","map","txs","flat","sent","len","splice","abrupt","stop","signTransactionMatrix","apply","verifyMessage","signature","ed25519","sync","verify","toBytes","equals","that","isSigner","hasSecretKey"],"mappings":"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"}