{"version":3,"sources":["../../src/api/transactionSubmission/submit.ts"],"sourcesContent":["// Copyright © Endless\n// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { MultiAuthKeyPublicKey, MultiAuthKeySignature, PublicKey, Signature } from \"../../core\";\nimport { submitTransaction } from \"../../internal/transactionSubmission\";\nimport { AccountAuthenticator, AccountAuthenticatorMultiAuthKey, AnyRawTransaction } from \"../../transactions\";\nimport { PendingTransactionResponse } from \"../../types\";\nimport { EndlessConfig } from \"../endlessConfig\";\nimport { ValidateFeePayerDataOnSubmission } from \"./helpers\";\n\n/**\n * A class to handle all `Submit` transaction operations\n */\nexport class Submit {\n  readonly config: EndlessConfig;\n\n  constructor(config: EndlessConfig) {\n    this.config = config;\n  }\n\n  /**\n   * Submit a simple transaction\n   *\n   * @param args.transaction An instance of a raw transaction\n   * @param args.senderAuthenticator optional. The sender account authenticator\n   * @param args.feePayerAuthenticator optional. The fee payer account authenticator if it is a fee payer transaction\n   *\n   * @returns PendingTransactionResponse\n   */\n  @ValidateFeePayerDataOnSubmission\n  async simple(args: {\n    transaction: AnyRawTransaction;\n    senderAuthenticator: AccountAuthenticator;\n    feePayerAuthenticator?: AccountAuthenticator;\n  }): Promise<PendingTransactionResponse> {\n    return submitTransaction({ endlessConfig: this.config, ...args });\n  }\n\n  /**\n   * Submit a multi agent transaction\n   *\n   * @param args.transaction An instance of a raw transaction\n   * @param args.senderAuthenticator optional. The sender account authenticator\n   * @param args.additionalSignersAuthenticators An array of the secondary signers account authenticators\n   * @param args.feePayerAuthenticator optional. The fee payer account authenticator if it is a fee payer transaction\n   *\n   * @returns PendingTransactionResponse\n   */\n  @ValidateFeePayerDataOnSubmission\n  async multiAgent(args: {\n    transaction: AnyRawTransaction;\n    senderAuthenticator: AccountAuthenticator;\n    additionalSignersAuthenticators: Array<AccountAuthenticator>;\n    feePayerAuthenticator?: AccountAuthenticator;\n  }): Promise<PendingTransactionResponse> {\n    return submitTransaction({ endlessConfig: this.config, ...args });\n  }\n\n  /**\n   * Submit a multi auth key transaction\n   *\n   * @param args.transaction An instance of a raw transaction\n   * @param args.publicKeys An array of the signers public key\n   * @param args.signatures An array of the signature\n   *\n   * @returns PendingTransactionResponse\n   */\n  @ValidateFeePayerDataOnSubmission\n  async multiAuthKey(args: {\n    transaction: AnyRawTransaction;\n    publicKeys: Array<PublicKey>;\n    signatures: Array<Signature>;\n  }): Promise<PendingTransactionResponse> {\n    const { transaction, publicKeys, signatures } = args;\n    const senderAuthenticator = new AccountAuthenticatorMultiAuthKey(\n      new MultiAuthKeyPublicKey({ publicKeys }),\n      new MultiAuthKeySignature({ signatures })\n    );\n    return submitTransaction({ endlessConfig: this.config, transaction, senderAuthenticator });\n  }\n}\n"],"mappings":"oNAcO,IAAMA,EAAN,KAAa,CAGlB,YAAYC,EAAuB,CACjC,KAAK,OAASA,CAChB,CAYA,MAAM,OAAOC,EAI2B,CACtC,OAAOC,EAAkB,CAAE,cAAe,KAAK,OAAQ,GAAGD,CAAK,CAAC,CAClE,CAaA,MAAM,WAAWA,EAKuB,CACtC,OAAOC,EAAkB,CAAE,cAAe,KAAK,OAAQ,GAAGD,CAAK,CAAC,CAClE,CAYA,MAAM,aAAaA,EAIqB,CACtC,GAAM,CAAE,YAAAE,EAAa,WAAAC,EAAY,WAAAC,CAAW,EAAIJ,EAC1CK,EAAsB,IAAIC,EAC9B,IAAIC,EAAsB,CAAE,WAAAJ,CAAW,CAAC,EACxC,IAAIK,EAAsB,CAAE,WAAAJ,CAAW,CAAC,CAC1C,EACA,OAAOH,EAAkB,CAAE,cAAe,KAAK,OAAQ,YAAAC,EAAa,oBAAAG,CAAoB,CAAC,CAC3F,CACF,EAlDQI,EAAA,CADLC,GAhBUZ,EAiBL,sBAmBAW,EAAA,CADLC,GAnCUZ,EAoCL,0BAmBAW,EAAA,CADLC,GAtDUZ,EAuDL","names":["Submit","config","args","submitTransaction","transaction","publicKeys","signatures","senderAuthenticator","AccountAuthenticatorMultiAuthKey","MultiAuthKeyPublicKey","MultiAuthKeySignature","__decorateClass","ValidateFeePayerDataOnSubmission"]}