{
  "version": 3,
  "sources": ["../../../../src/managers/internal/SignTransactionsStateManager/SignTransactionsStateManager.ts"],
  "sourcesContent": ["import { GAS_PRICE } from 'constants/mvx.constants';\nimport { UITagsEnum } from 'constants/UITags.enum';\nimport { Transaction } from 'lib/sdkCore';\nimport { MvxSignTransactionsPanel } from 'lib/sdkDappUi';\nimport { NftEnumType } from 'types/tokens.types';\nimport {\n  FungibleTransactionType,\n  ISignTransactionsPanelData,\n  SignEventsEnum,\n  TokenType,\n  ISignTransactionsPanelCommonData\n} from './types/signTransactionsPanel.types';\nimport { SidePanelBaseManager } from '../SidePanelBaseManager/SidePanelBaseManager';\n\nexport class SignTransactionsStateManager extends SidePanelBaseManager<\n  MvxSignTransactionsPanel,\n  ISignTransactionsPanelData,\n  SignEventsEnum\n> {\n  private static instance: SignTransactionsStateManager;\n  public readonly addressesPerPage = 10;\n\n  private _gasPriceOptionMap: Record<\n    number, // nonce\n    {\n      initialGasPrice: number;\n      gasPriceOption: number;\n    }\n  > = {};\n\n  protected initialData: ISignTransactionsPanelData = {\n    commonData: {\n      transactionsCount: 0,\n      currentIndexToSign: 0,\n      egldLabel: '',\n      currentIndex: 0,\n      gasPriceOption: 0,\n      gasPriceOptions: [],\n      address: '',\n      origin: ''\n    },\n    tokenTransaction: null,\n    nftTransaction: null,\n    sftTransaction: null\n  };\n\n  public static getInstance(): SignTransactionsStateManager {\n    if (!SignTransactionsStateManager.instance) {\n      SignTransactionsStateManager.instance =\n        new SignTransactionsStateManager();\n    }\n    return SignTransactionsStateManager.instance;\n  }\n\n  constructor() {\n    super({\n      uiDataUpdateEvent: SignEventsEnum.DATA_UPDATE,\n      uiTag: UITagsEnum.SIGN_TRANSACTIONS_PANEL\n    });\n    this.data = { ...this.initialData };\n  }\n\n  get transactionsCount() {\n    return this.data.commonData.transactionsCount;\n  }\n\n  public initializeGasPriceMap(transactions: Transaction[]) {\n    transactions\n      .filter((tx) => tx != null)\n      .forEach((transaction) => {\n        const initialGasPrice = transaction\n          ? Number(transaction.gasPrice)\n          : GAS_PRICE;\n\n        // creates a snapshot of the initial gas prices for each transaction\n        // so user can revert to the initial gas price if they modify it\n        this.updateGasPriceMap({\n          nonce: Number(transaction.nonce),\n          gasPriceOption: initialGasPrice,\n          initialGasPrice\n        });\n      });\n\n    const gasPriceOption = Number(transactions[0]?.gasPrice) || GAS_PRICE;\n\n    this.updateCommonData({ gasPriceOption });\n  }\n\n  public updateGasPriceMap({\n    nonce,\n    gasPriceOption,\n    initialGasPrice\n  }: {\n    nonce: number;\n    initialGasPrice?: number;\n    gasPriceOption: number;\n  }) {\n    this._gasPriceOptionMap[nonce] = {\n      ...this._gasPriceOptionMap[nonce],\n      gasPriceOption\n    };\n\n    if (!initialGasPrice) {\n      return;\n    }\n\n    this._gasPriceOptionMap[nonce].initialGasPrice = initialGasPrice;\n  }\n\n  public updateCommonData(\n    newCommonData: Partial<ISignTransactionsPanelCommonData>\n  ): void {\n    this.data.commonData = {\n      ...this.data.commonData,\n      ...newCommonData\n    };\n    this.notifyDataUpdate();\n  }\n\n  public updateIsLoading(newState: boolean) {\n    this.data.isLoading = newState;\n\n    this.notifyDataUpdate();\n  }\n\n  public updateTokenTransaction(\n    tokenData: ISignTransactionsPanelData['tokenTransaction']\n  ): void {\n    this.data.tokenTransaction = tokenData;\n    this.data.sftTransaction = null;\n    this.data.nftTransaction = null;\n\n    this.notifyDataUpdate();\n  }\n\n  public updateNonFungibleTransaction(\n    type: TokenType,\n    fungibleData: FungibleTransactionType\n  ): void {\n    switch (type) {\n      case NftEnumType.NonFungibleESDT:\n        this.data.nftTransaction = fungibleData;\n        this.data.tokenTransaction = null;\n        this.data.sftTransaction = null;\n        break;\n      case NftEnumType.SemiFungibleESDT:\n        this.data.sftTransaction = fungibleData;\n        this.data.nftTransaction = null;\n        this.data.tokenTransaction = null;\n        break;\n      default:\n        break;\n    }\n\n    this.notifyDataUpdate();\n  }\n\n  public get currentScreenIndex() {\n    return this.data.commonData.currentIndex;\n  }\n\n  public get getGasPriceOptionMap() {\n    return this._gasPriceOptionMap;\n  }\n\n  protected async setupEventListeners() {\n    if (!this.eventBus) {\n      return;\n    }\n\n    this.subscribeToEventBus(SignEventsEnum.CLOSE, this.closeUI.bind(this));\n  }\n}\n"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA0B,mCAC1BC,EAA2B,iCAG3BC,EAA4B,8BAC5BC,EAMO,+CACPC,EAAqC,wDAE9B,MAAMN,UAAqC,sBAIhD,CAoCA,aAAc,CACZ,MAAM,CACJ,kBAAmB,iBAAe,YAClC,MAAO,aAAW,uBACpB,CAAC,EAtCH,KAAgB,iBAAmB,GAEnC,KAAQ,mBAMJ,CAAC,EAEL,KAAU,YAA0C,CAClD,WAAY,CACV,kBAAmB,EACnB,mBAAoB,EACpB,UAAW,GACX,aAAc,EACd,eAAgB,EAChB,gBAAiB,CAAC,EAClB,QAAS,GACT,OAAQ,EACV,EACA,iBAAkB,KAClB,eAAgB,KAChB,eAAgB,IAClB,EAeE,KAAK,KAAO,CAAE,GAAG,KAAK,WAAY,CACpC,CAdA,OAAc,aAA4C,CACxD,OAAKA,EAA6B,WAChCA,EAA6B,SAC3B,IAAIA,GAEDA,EAA6B,QACtC,CAUA,IAAI,mBAAoB,CACtB,OAAO,KAAK,KAAK,WAAW,iBAC9B,CAEO,sBAAsBO,EAA6B,CACxDA,EACG,OAAQC,GAAOA,GAAM,IAAI,EACzB,QAASC,GAAgB,CACxB,MAAMC,EAAkBD,EACpB,OAAOA,EAAY,QAAQ,EAC3B,YAIJ,KAAK,kBAAkB,CACrB,MAAO,OAAOA,EAAY,KAAK,EAC/B,eAAgBC,EAChB,gBAAAA,CACF,CAAC,CACH,CAAC,EAEH,MAAMC,EAAiB,OAAOJ,EAAa,CAAC,GAAG,QAAQ,GAAK,YAE5D,KAAK,iBAAiB,CAAE,eAAAI,CAAe,CAAC,CAC1C,CAEO,kBAAkB,CACvB,MAAAC,EACA,eAAAD,EACA,gBAAAD,CACF,EAIG,CACD,KAAK,mBAAmBE,CAAK,EAAI,CAC/B,GAAG,KAAK,mBAAmBA,CAAK,EAChC,eAAAD,CACF,EAEKD,IAIL,KAAK,mBAAmBE,CAAK,EAAE,gBAAkBF,EACnD,CAEO,iBACLG,EACM,CACN,KAAK,KAAK,WAAa,CACrB,GAAG,KAAK,KAAK,WACb,GAAGA,CACL,EACA,KAAK,iBAAiB,CACxB,CAEO,gBAAgBC,EAAmB,CACxC,KAAK,KAAK,UAAYA,EAEtB,KAAK,iBAAiB,CACxB,CAEO,uBACLC,EACM,CACN,KAAK,KAAK,iBAAmBA,EAC7B,KAAK,KAAK,eAAiB,KAC3B,KAAK,KAAK,eAAiB,KAE3B,KAAK,iBAAiB,CACxB,CAEO,6BACLC,EACAC,EACM,CACN,OAAQD,EAAM,CACZ,KAAK,cAAY,gBACf,KAAK,KAAK,eAAiBC,EAC3B,KAAK,KAAK,iBAAmB,KAC7B,KAAK,KAAK,eAAiB,KAC3B,MACF,KAAK,cAAY,iBACf,KAAK,KAAK,eAAiBA,EAC3B,KAAK,KAAK,eAAiB,KAC3B,KAAK,KAAK,iBAAmB,KAC7B,MACF,QACE,KACJ,CAEA,KAAK,iBAAiB,CACxB,CAEA,IAAW,oBAAqB,CAC9B,OAAO,KAAK,KAAK,WAAW,YAC9B,CAEA,IAAW,sBAAuB,CAChC,OAAO,KAAK,kBACd,CAEA,MAAgB,qBAAsB,CAC/B,KAAK,UAIV,KAAK,oBAAoB,iBAAe,MAAO,KAAK,QAAQ,KAAK,IAAI,CAAC,CACxE,CACF",
  "names": ["SignTransactionsStateManager_exports", "__export", "SignTransactionsStateManager", "__toCommonJS", "import_mvx", "import_UITags", "import_tokens", "import_signTransactionsPanel", "import_SidePanelBaseManager", "transactions", "tx", "transaction", "initialGasPrice", "gasPriceOption", "nonce", "newCommonData", "newState", "tokenData", "type", "fungibleData"]
}
