@lifi/sdk 4.0.0-beta.9 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +1213 -0
  2. package/README.md +88 -5
  3. package/dist/cjs/actions/getChains.js.map +1 -1
  4. package/dist/cjs/actions/getConnections.js.map +1 -1
  5. package/dist/cjs/actions/getContractCallsQuote.js.map +1 -1
  6. package/dist/cjs/actions/getGasRecommendation.js.map +1 -1
  7. package/dist/cjs/actions/getNameServiceAddress.js.map +1 -1
  8. package/dist/cjs/actions/getQuote.js.map +1 -1
  9. package/dist/cjs/actions/getRelayedTransactionStatus.js.map +1 -1
  10. package/dist/cjs/actions/getRelayerQuote.js.map +1 -1
  11. package/dist/cjs/actions/getRoutes.js.map +1 -1
  12. package/dist/cjs/actions/getStatus.js.map +1 -1
  13. package/dist/cjs/actions/getStepTransaction.js.map +1 -1
  14. package/dist/cjs/actions/getToken.js.map +1 -1
  15. package/dist/cjs/actions/getTokenBalance.js.map +1 -1
  16. package/dist/cjs/actions/getTokenBalances.js.map +1 -1
  17. package/dist/cjs/actions/getTokenBalancesByChain.js.map +1 -1
  18. package/dist/cjs/actions/getTokens.js.map +1 -1
  19. package/dist/cjs/actions/getTools.js.map +1 -1
  20. package/dist/cjs/actions/getTransactionHistory.js.map +1 -1
  21. package/dist/cjs/actions/getWalletBalances.js.map +1 -1
  22. package/dist/cjs/actions/index.js.map +1 -1
  23. package/dist/cjs/actions/patchContractCalls.js.map +1 -1
  24. package/dist/cjs/actions/relayTransaction.js.map +1 -1
  25. package/dist/cjs/client/createClient.js.map +1 -1
  26. package/dist/cjs/client/getClientStorage.js.map +1 -1
  27. package/dist/cjs/core/BaseStepExecutionTask.js.map +1 -1
  28. package/dist/cjs/core/BaseStepExecutor.js.map +1 -1
  29. package/dist/cjs/core/StatusManager.js.map +1 -1
  30. package/dist/cjs/core/TaskPipeline.js.map +1 -1
  31. package/dist/cjs/core/actionMessages.js.map +1 -1
  32. package/dist/cjs/core/execution.js.map +1 -1
  33. package/dist/cjs/core/executionState.js.map +1 -1
  34. package/dist/cjs/core/prepareRestart.js.map +1 -1
  35. package/dist/cjs/core/storage.js.map +1 -1
  36. package/dist/cjs/core/tasks/CheckBalanceTask.js.map +1 -1
  37. package/dist/cjs/core/tasks/PrepareTransactionTask.js.map +1 -1
  38. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js.map +1 -1
  39. package/dist/cjs/core/tasks/helpers/checkBalance.js +2 -1
  40. package/dist/cjs/core/tasks/helpers/checkBalance.js.map +1 -1
  41. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js.map +1 -1
  42. package/dist/cjs/core/tasks/helpers/stepComparison.js.map +1 -1
  43. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js.map +1 -1
  44. package/dist/cjs/core/utils.js.map +1 -1
  45. package/dist/cjs/errors/SDKError.js.map +1 -1
  46. package/dist/cjs/errors/baseError.js.map +1 -1
  47. package/dist/cjs/errors/constants.js.map +1 -1
  48. package/dist/cjs/errors/errors.js.map +1 -1
  49. package/dist/cjs/errors/httpError.js.map +1 -1
  50. package/dist/cjs/errors/utils/baseErrorRootCause.js.map +1 -1
  51. package/dist/cjs/errors/utils/rootCause.js.map +1 -1
  52. package/dist/cjs/utils/checkPackageUpdates.js +1 -1
  53. package/dist/cjs/utils/checkPackageUpdates.js.map +1 -1
  54. package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -1
  55. package/dist/cjs/utils/decode.js.map +1 -1
  56. package/dist/cjs/utils/fetchTxErrorDetails.js.map +1 -1
  57. package/dist/cjs/utils/formatUnits.js.map +1 -1
  58. package/dist/cjs/utils/getTransactionMessage.js.map +1 -1
  59. package/dist/cjs/utils/isHex.js.map +1 -1
  60. package/dist/cjs/utils/isRoutesRequest.js.map +1 -1
  61. package/dist/cjs/utils/isStep.js.map +1 -1
  62. package/dist/cjs/utils/isToken.js.map +1 -1
  63. package/dist/cjs/utils/parseUnits.js.map +1 -1
  64. package/dist/cjs/utils/request.js.map +1 -1
  65. package/dist/cjs/utils/sleep.js.map +1 -1
  66. package/dist/cjs/utils/waitForResult.js.map +1 -1
  67. package/dist/cjs/utils/withDedupe.js +1 -1
  68. package/dist/cjs/utils/withDedupe.js.map +1 -1
  69. package/dist/cjs/utils/withTimeout.js.map +1 -1
  70. package/dist/cjs/version.d.ts +1 -1
  71. package/dist/cjs/version.js +1 -1
  72. package/dist/cjs/version.js.map +1 -1
  73. package/dist/esm/actions/getChains.js.map +1 -1
  74. package/dist/esm/actions/getConnections.js.map +1 -1
  75. package/dist/esm/actions/getContractCallsQuote.js.map +1 -1
  76. package/dist/esm/actions/getGasRecommendation.js.map +1 -1
  77. package/dist/esm/actions/getNameServiceAddress.js.map +1 -1
  78. package/dist/esm/actions/getQuote.js.map +1 -1
  79. package/dist/esm/actions/getRelayedTransactionStatus.js.map +1 -1
  80. package/dist/esm/actions/getRelayerQuote.js.map +1 -1
  81. package/dist/esm/actions/getRoutes.js.map +1 -1
  82. package/dist/esm/actions/getStatus.js.map +1 -1
  83. package/dist/esm/actions/getStepTransaction.js.map +1 -1
  84. package/dist/esm/actions/getToken.js.map +1 -1
  85. package/dist/esm/actions/getTokenBalance.js.map +1 -1
  86. package/dist/esm/actions/getTokenBalances.js.map +1 -1
  87. package/dist/esm/actions/getTokenBalancesByChain.js.map +1 -1
  88. package/dist/esm/actions/getTokens.js.map +1 -1
  89. package/dist/esm/actions/getTools.js.map +1 -1
  90. package/dist/esm/actions/getTransactionHistory.js.map +1 -1
  91. package/dist/esm/actions/getWalletBalances.js.map +1 -1
  92. package/dist/esm/actions/index.js.map +1 -1
  93. package/dist/esm/actions/patchContractCalls.js.map +1 -1
  94. package/dist/esm/actions/relayTransaction.js.map +1 -1
  95. package/dist/esm/client/createClient.js.map +1 -1
  96. package/dist/esm/client/getClientStorage.js.map +1 -1
  97. package/dist/esm/core/BaseStepExecutionTask.js.map +1 -1
  98. package/dist/esm/core/BaseStepExecutor.js.map +1 -1
  99. package/dist/esm/core/StatusManager.d.ts.map +1 -1
  100. package/dist/esm/core/StatusManager.js.map +1 -1
  101. package/dist/esm/core/TaskPipeline.js.map +1 -1
  102. package/dist/esm/core/actionMessages.js.map +1 -1
  103. package/dist/esm/core/execution.d.ts.map +1 -1
  104. package/dist/esm/core/execution.js.map +1 -1
  105. package/dist/esm/core/executionState.js.map +1 -1
  106. package/dist/esm/core/prepareRestart.d.ts.map +1 -1
  107. package/dist/esm/core/prepareRestart.js.map +1 -1
  108. package/dist/esm/core/storage.d.ts.map +1 -1
  109. package/dist/esm/core/storage.js.map +1 -1
  110. package/dist/esm/core/tasks/CheckBalanceTask.js.map +1 -1
  111. package/dist/esm/core/tasks/PrepareTransactionTask.js.map +1 -1
  112. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js.map +1 -1
  113. package/dist/esm/core/tasks/helpers/checkBalance.d.ts.map +1 -1
  114. package/dist/esm/core/tasks/helpers/checkBalance.js +2 -1
  115. package/dist/esm/core/tasks/helpers/checkBalance.js.map +1 -1
  116. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js.map +1 -1
  117. package/dist/esm/core/tasks/helpers/stepComparison.js.map +1 -1
  118. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js.map +1 -1
  119. package/dist/esm/core/utils.js.map +1 -1
  120. package/dist/esm/errors/SDKError.js.map +1 -1
  121. package/dist/esm/errors/baseError.js.map +1 -1
  122. package/dist/esm/errors/constants.js.map +1 -1
  123. package/dist/esm/errors/errors.js.map +1 -1
  124. package/dist/esm/errors/httpError.d.ts.map +1 -1
  125. package/dist/esm/errors/httpError.js.map +1 -1
  126. package/dist/esm/errors/utils/baseErrorRootCause.d.ts.map +1 -1
  127. package/dist/esm/errors/utils/baseErrorRootCause.js.map +1 -1
  128. package/dist/esm/errors/utils/rootCause.js.map +1 -1
  129. package/dist/esm/types/core.d.ts.map +1 -1
  130. package/dist/esm/utils/checkPackageUpdates.js +1 -1
  131. package/dist/esm/utils/checkPackageUpdates.js.map +1 -1
  132. package/dist/esm/utils/convertQuoteToRoute.js.map +1 -1
  133. package/dist/esm/utils/decode.js.map +1 -1
  134. package/dist/esm/utils/fetchTxErrorDetails.js.map +1 -1
  135. package/dist/esm/utils/formatUnits.js.map +1 -1
  136. package/dist/esm/utils/getTransactionMessage.js.map +1 -1
  137. package/dist/esm/utils/isHex.js.map +1 -1
  138. package/dist/esm/utils/isRoutesRequest.js.map +1 -1
  139. package/dist/esm/utils/isStep.js.map +1 -1
  140. package/dist/esm/utils/isToken.js.map +1 -1
  141. package/dist/esm/utils/parseUnits.js.map +1 -1
  142. package/dist/esm/utils/request.js.map +1 -1
  143. package/dist/esm/utils/sleep.js.map +1 -1
  144. package/dist/esm/utils/waitForResult.js.map +1 -1
  145. package/dist/esm/utils/withDedupe.d.ts.map +1 -1
  146. package/dist/esm/utils/withDedupe.js +1 -1
  147. package/dist/esm/utils/withDedupe.js.map +1 -1
  148. package/dist/esm/utils/withTimeout.d.ts.map +1 -1
  149. package/dist/esm/utils/withTimeout.js.map +1 -1
  150. package/dist/esm/version.d.ts +1 -1
  151. package/dist/esm/version.js +1 -1
  152. package/dist/esm/version.js.map +1 -1
  153. package/package.json +3 -2
  154. package/src/core/tasks/helpers/checkBalance.ts +6 -1
  155. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"convertQuoteToRoute.js","names":["formatUnits","SDKError","ValidationError"],"sources":["../../../src/utils/convertQuoteToRoute.ts"],"sourcesContent":["import type { LiFiStep, Route, Step } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport { formatUnits } from './formatUnits.js'\n\ninterface ConvertQuoteToRouteOptions {\n /**\n * When true, if the quote has zero output values (toAmount, toAmountMin, toAmountUSD),\n * use the values from the previous included step that has non-zero output.\n */\n adjustZeroOutputFromPreviousStep?: boolean\n}\n\nconst parseBigInt = (value: string | undefined): bigint => {\n if (!value) {\n return 0n\n }\n try {\n return BigInt(value)\n } catch {\n return 0n\n }\n}\n\nconst parseNumber = (value: string | undefined): number => {\n if (!value) {\n return 0\n }\n const parsed = Number(value)\n return Number.isNaN(parsed) ? 0 : parsed\n}\n\nconst isZeroOutput = (\n toAmount: string,\n toAmountMin: string,\n toAmountUSD?: string\n): boolean => {\n return (\n !parseBigInt(toAmount) &&\n !parseBigInt(toAmountMin) &&\n !parseNumber(toAmountUSD)\n )\n}\n\nconst hasNonZeroOutput = (step: Step): boolean => {\n return (\n !!parseBigInt(step.estimate.toAmount) ||\n !!parseBigInt(step.estimate.toAmountMin)\n )\n}\n\nconst findPreviousNonZeroStep = (steps: Step[]): Step | undefined => {\n // Find the last step that has non-zero output (the step before the zero output step)\n for (let i = steps.length - 1; i >= 0; i--) {\n const step = steps[i]\n if (hasNonZeroOutput(step)) {\n return step\n }\n }\n return undefined\n}\n\nexport function formatTokenPrice(\n amount?: string | bigint,\n price?: string,\n decimals?: number\n): number {\n if (!amount || !price) {\n return 0\n }\n\n const formattedAmount =\n typeof amount === 'bigint' && decimals !== undefined\n ? formatUnits(amount, decimals)\n : amount.toString()\n\n if (Number.isNaN(Number(formattedAmount)) || Number.isNaN(Number(price))) {\n return 0\n }\n return Number.parseFloat(formattedAmount) * Number.parseFloat(price)\n}\n\n/**\n * Converts a quote to Route\n * @param quote - Step returned from the quote endpoint.\n * @param options - Optional configuration for handling edge cases.\n * @returns - The route to be executed.\n * @throws {BaseError} Throws a ValidationError if the step has missing values.\n */\nexport const convertQuoteToRoute = (\n quote: LiFiStep,\n options?: ConvertQuoteToRouteOptions\n): Route => {\n let toAmount = quote.estimate.toAmount\n let toAmountMin = quote.estimate.toAmountMin\n let toAmountUSD = quote.estimate.toAmountUSD\n\n // Handle zero output values by looking at previous included step\n if (\n options?.adjustZeroOutputFromPreviousStep &&\n quote.includedSteps?.length &&\n isZeroOutput(toAmount, toAmountMin, toAmountUSD)\n ) {\n const previousStep = findPreviousNonZeroStep(quote.includedSteps)\n if (previousStep) {\n toAmount = previousStep.estimate.toAmount\n toAmountMin = previousStep.estimate.toAmountMin\n toAmountUSD = formatTokenPrice(\n parseBigInt(toAmount),\n previousStep.action.toToken.priceUSD,\n previousStep.action.toToken.decimals\n ).toFixed(2)\n\n // Update the last included step's estimate with the adjusted values\n const lastStep = quote.includedSteps[quote.includedSteps.length - 1]\n if (lastStep && !hasNonZeroOutput(lastStep)) {\n lastStep.estimate.toAmount = toAmount\n lastStep.estimate.toAmountMin = toAmountMin\n }\n }\n }\n\n if (!quote.estimate.fromAmountUSD) {\n throw new SDKError(\n new ValidationError(\"Missing 'fromAmountUSD' in step estimate.\")\n )\n }\n\n if (!toAmountUSD) {\n throw new SDKError(\n new ValidationError(\"Missing 'toAmountUSD' in step estimate.\")\n )\n }\n\n const route: Route = {\n id: quote.id,\n fromChainId: quote.action.fromToken.chainId,\n fromToken: quote.action.fromToken,\n fromAmount: quote.action.fromAmount,\n fromAmountUSD: quote.estimate.fromAmountUSD,\n fromAddress: quote.action.fromAddress,\n toChainId: quote.action.toToken.chainId,\n toToken: quote.action.toToken,\n toAmount,\n toAmountMin,\n toAmountUSD,\n toAddress: quote.action.toAddress || quote.action.fromAddress,\n gasCostUSD: quote.estimate.gasCosts?.[0]?.amountUSD || '0',\n steps: [quote],\n insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },\n }\n\n return route\n}\n"],"mappings":";;;;;AAaA,MAAM,eAAe,UAAsC;CACzD,IAAI,CAAC,OACH,OAAO;CAET,IAAI;EACF,OAAO,OAAO,MAAM;SACd;EACN,OAAO;;;AAIX,MAAM,eAAe,UAAsC;CACzD,IAAI,CAAC,OACH,OAAO;CAET,MAAM,SAAS,OAAO,MAAM;CAC5B,OAAO,OAAO,MAAM,OAAO,GAAG,IAAI;;AAGpC,MAAM,gBACJ,UACA,aACA,gBACY;CACZ,OACE,CAAC,YAAY,SAAS,IACtB,CAAC,YAAY,YAAY,IACzB,CAAC,YAAY,YAAY;;AAI7B,MAAM,oBAAoB,SAAwB;CAChD,OACE,CAAC,CAAC,YAAY,KAAK,SAAS,SAAS,IACrC,CAAC,CAAC,YAAY,KAAK,SAAS,YAAY;;AAI5C,MAAM,2BAA2B,UAAoC;CAEnE,KAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;EAC1C,MAAM,OAAO,MAAM;EACnB,IAAI,iBAAiB,KAAK,EACxB,OAAO;;;AAMb,SAAgB,iBACd,QACA,OACA,UACQ;CACR,IAAI,CAAC,UAAU,CAAC,OACd,OAAO;CAGT,MAAM,kBACJ,OAAO,WAAW,YAAY,aAAa,KAAA,IACvCA,0BAAAA,YAAY,QAAQ,SAAS,GAC7B,OAAO,UAAU;CAEvB,IAAI,OAAO,MAAM,OAAO,gBAAgB,CAAC,IAAI,OAAO,MAAM,OAAO,MAAM,CAAC,EACtE,OAAO;CAET,OAAO,OAAO,WAAW,gBAAgB,GAAG,OAAO,WAAW,MAAM;;;;;;;;;AAUtE,MAAa,uBACX,OACA,YACU;CACV,IAAI,WAAW,MAAM,SAAS;CAC9B,IAAI,cAAc,MAAM,SAAS;CACjC,IAAI,cAAc,MAAM,SAAS;CAGjC,IACE,SAAS,oCACT,MAAM,eAAe,UACrB,aAAa,UAAU,aAAa,YAAY,EAChD;EACA,MAAM,eAAe,wBAAwB,MAAM,cAAc;EACjE,IAAI,cAAc;GAChB,WAAW,aAAa,SAAS;GACjC,cAAc,aAAa,SAAS;GACpC,cAAc,iBACZ,YAAY,SAAS,EACrB,aAAa,OAAO,QAAQ,UAC5B,aAAa,OAAO,QAAQ,SAC7B,CAAC,QAAQ,EAAE;GAGZ,MAAM,WAAW,MAAM,cAAc,MAAM,cAAc,SAAS;GAClE,IAAI,YAAY,CAAC,iBAAiB,SAAS,EAAE;IAC3C,SAAS,SAAS,WAAW;IAC7B,SAAS,SAAS,cAAc;;;;CAKtC,IAAI,CAAC,MAAM,SAAS,eAClB,MAAM,IAAIC,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,4CAA4C,CACjE;CAGH,IAAI,CAAC,aACH,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,0CAA0C,CAC/D;CAqBH,OAAO;EAjBL,IAAI,MAAM;EACV,aAAa,MAAM,OAAO,UAAU;EACpC,WAAW,MAAM,OAAO;EACxB,YAAY,MAAM,OAAO;EACzB,eAAe,MAAM,SAAS;EAC9B,aAAa,MAAM,OAAO;EAC1B,WAAW,MAAM,OAAO,QAAQ;EAChC,SAAS,MAAM,OAAO;EACtB;EACA;EACA;EACA,WAAW,MAAM,OAAO,aAAa,MAAM,OAAO;EAClD,YAAY,MAAM,SAAS,WAAW,IAAI,aAAa;EACvD,OAAO,CAAC,MAAM;EACd,WAAW;GAAE,OAAO;GAAiB,cAAc;GAAK;EAG9C"}
1
+ {"version":3,"file":"convertQuoteToRoute.js","names":["formatUnits","SDKError","ValidationError"],"sources":["../../../src/utils/convertQuoteToRoute.ts"],"sourcesContent":["import type { LiFiStep, Route, Step } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport { formatUnits } from './formatUnits.js'\n\ninterface ConvertQuoteToRouteOptions {\n /**\n * When true, if the quote has zero output values (toAmount, toAmountMin, toAmountUSD),\n * use the values from the previous included step that has non-zero output.\n */\n adjustZeroOutputFromPreviousStep?: boolean\n}\n\nconst parseBigInt = (value: string | undefined): bigint => {\n if (!value) {\n return 0n\n }\n try {\n return BigInt(value)\n } catch {\n return 0n\n }\n}\n\nconst parseNumber = (value: string | undefined): number => {\n if (!value) {\n return 0\n }\n const parsed = Number(value)\n return Number.isNaN(parsed) ? 0 : parsed\n}\n\nconst isZeroOutput = (\n toAmount: string,\n toAmountMin: string,\n toAmountUSD?: string\n): boolean => {\n return (\n !parseBigInt(toAmount) &&\n !parseBigInt(toAmountMin) &&\n !parseNumber(toAmountUSD)\n )\n}\n\nconst hasNonZeroOutput = (step: Step): boolean => {\n return (\n !!parseBigInt(step.estimate.toAmount) ||\n !!parseBigInt(step.estimate.toAmountMin)\n )\n}\n\nconst findPreviousNonZeroStep = (steps: Step[]): Step | undefined => {\n // Find the last step that has non-zero output (the step before the zero output step)\n for (let i = steps.length - 1; i >= 0; i--) {\n const step = steps[i]\n if (hasNonZeroOutput(step)) {\n return step\n }\n }\n return undefined\n}\n\nexport function formatTokenPrice(\n amount?: string | bigint,\n price?: string,\n decimals?: number\n): number {\n if (!amount || !price) {\n return 0\n }\n\n const formattedAmount =\n typeof amount === 'bigint' && decimals !== undefined\n ? formatUnits(amount, decimals)\n : amount.toString()\n\n if (Number.isNaN(Number(formattedAmount)) || Number.isNaN(Number(price))) {\n return 0\n }\n return Number.parseFloat(formattedAmount) * Number.parseFloat(price)\n}\n\n/**\n * Converts a quote to Route\n * @param quote - Step returned from the quote endpoint.\n * @param options - Optional configuration for handling edge cases.\n * @returns - The route to be executed.\n * @throws {BaseError} Throws a ValidationError if the step has missing values.\n */\nexport const convertQuoteToRoute = (\n quote: LiFiStep,\n options?: ConvertQuoteToRouteOptions\n): Route => {\n let toAmount = quote.estimate.toAmount\n let toAmountMin = quote.estimate.toAmountMin\n let toAmountUSD = quote.estimate.toAmountUSD\n\n // Handle zero output values by looking at previous included step\n if (\n options?.adjustZeroOutputFromPreviousStep &&\n quote.includedSteps?.length &&\n isZeroOutput(toAmount, toAmountMin, toAmountUSD)\n ) {\n const previousStep = findPreviousNonZeroStep(quote.includedSteps)\n if (previousStep) {\n toAmount = previousStep.estimate.toAmount\n toAmountMin = previousStep.estimate.toAmountMin\n toAmountUSD = formatTokenPrice(\n parseBigInt(toAmount),\n previousStep.action.toToken.priceUSD,\n previousStep.action.toToken.decimals\n ).toFixed(2)\n\n // Update the last included step's estimate with the adjusted values\n const lastStep = quote.includedSteps[quote.includedSteps.length - 1]\n if (lastStep && !hasNonZeroOutput(lastStep)) {\n lastStep.estimate.toAmount = toAmount\n lastStep.estimate.toAmountMin = toAmountMin\n }\n }\n }\n\n if (!quote.estimate.fromAmountUSD) {\n throw new SDKError(\n new ValidationError(\"Missing 'fromAmountUSD' in step estimate.\")\n )\n }\n\n if (!toAmountUSD) {\n throw new SDKError(\n new ValidationError(\"Missing 'toAmountUSD' in step estimate.\")\n )\n }\n\n const route: Route = {\n id: quote.id,\n fromChainId: quote.action.fromToken.chainId,\n fromToken: quote.action.fromToken,\n fromAmount: quote.action.fromAmount,\n fromAmountUSD: quote.estimate.fromAmountUSD,\n fromAddress: quote.action.fromAddress,\n toChainId: quote.action.toToken.chainId,\n toToken: quote.action.toToken,\n toAmount,\n toAmountMin,\n toAmountUSD,\n toAddress: quote.action.toAddress || quote.action.fromAddress,\n gasCostUSD: quote.estimate.gasCosts?.[0]?.amountUSD || '0',\n steps: [quote],\n insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },\n }\n\n return route\n}\n"],"mappings":";;;;;AAaA,MAAM,eAAe,UAAsC;CACzD,IAAI,CAAC,OACH,OAAO;CAET,IAAI;EACF,OAAO,OAAO,KAAK;CACrB,QAAQ;EACN,OAAO;CACT;AACF;AAEA,MAAM,eAAe,UAAsC;CACzD,IAAI,CAAC,OACH,OAAO;CAET,MAAM,SAAS,OAAO,KAAK;CAC3B,OAAO,OAAO,MAAM,MAAM,IAAI,IAAI;AACpC;AAEA,MAAM,gBACJ,UACA,aACA,gBACY;CACZ,OACE,CAAC,YAAY,QAAQ,KACrB,CAAC,YAAY,WAAW,KACxB,CAAC,YAAY,WAAW;AAE5B;AAEA,MAAM,oBAAoB,SAAwB;CAChD,OACE,CAAC,CAAC,YAAY,KAAK,SAAS,QAAQ,KACpC,CAAC,CAAC,YAAY,KAAK,SAAS,WAAW;AAE3C;AAEA,MAAM,2BAA2B,UAAoC;CAEnE,KAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;EAC1C,MAAM,OAAO,MAAM;EACnB,IAAI,iBAAiB,IAAI,GACvB,OAAO;CAEX;AAEF;AAEA,SAAgB,iBACd,QACA,OACA,UACQ;CACR,IAAI,CAAC,UAAU,CAAC,OACd,OAAO;CAGT,MAAM,kBACJ,OAAO,WAAW,YAAY,aAAa,KAAA,IACvCA,0BAAAA,YAAY,QAAQ,QAAQ,IAC5B,OAAO,SAAS;CAEtB,IAAI,OAAO,MAAM,OAAO,eAAe,CAAC,KAAK,OAAO,MAAM,OAAO,KAAK,CAAC,GACrE,OAAO;CAET,OAAO,OAAO,WAAW,eAAe,IAAI,OAAO,WAAW,KAAK;AACrE;;;;;;;;AASA,MAAa,uBACX,OACA,YACU;CACV,IAAI,WAAW,MAAM,SAAS;CAC9B,IAAI,cAAc,MAAM,SAAS;CACjC,IAAI,cAAc,MAAM,SAAS;CAGjC,IACE,SAAS,oCACT,MAAM,eAAe,UACrB,aAAa,UAAU,aAAa,WAAW,GAC/C;EACA,MAAM,eAAe,wBAAwB,MAAM,aAAa;EAChE,IAAI,cAAc;GAChB,WAAW,aAAa,SAAS;GACjC,cAAc,aAAa,SAAS;GACpC,cAAc,iBACZ,YAAY,QAAQ,GACpB,aAAa,OAAO,QAAQ,UAC5B,aAAa,OAAO,QAAQ,QAC9B,EAAE,QAAQ,CAAC;GAGX,MAAM,WAAW,MAAM,cAAc,MAAM,cAAc,SAAS;GAClE,IAAI,YAAY,CAAC,iBAAiB,QAAQ,GAAG;IAC3C,SAAS,SAAS,WAAW;IAC7B,SAAS,SAAS,cAAc;GAClC;EACF;CACF;CAEA,IAAI,CAAC,MAAM,SAAS,eAClB,MAAM,IAAIC,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,2CAA2C,CACjE;CAGF,IAAI,CAAC,aACH,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,yCAAyC,CAC/D;CAqBF,OAAO;EAjBL,IAAI,MAAM;EACV,aAAa,MAAM,OAAO,UAAU;EACpC,WAAW,MAAM,OAAO;EACxB,YAAY,MAAM,OAAO;EACzB,eAAe,MAAM,SAAS;EAC9B,aAAa,MAAM,OAAO;EAC1B,WAAW,MAAM,OAAO,QAAQ;EAChC,SAAS,MAAM,OAAO;EACtB;EACA;EACA;EACA,WAAW,MAAM,OAAO,aAAa,MAAM,OAAO;EAClD,YAAY,MAAM,SAAS,WAAW,IAAI,aAAa;EACvD,OAAO,CAAC,KAAK;EACb,WAAW;GAAE,OAAO;GAAiB,cAAc;EAAI;CAG9C;AACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","names":[],"sources":["../../../src/utils/decode.ts"],"sourcesContent":["export const decodeTaskId = (taskId: string): string[] => {\n const decoded = new TextDecoder()\n .decode(\n new Uint8Array(\n taskId\n .slice(2)\n .match(/.{1,2}/g)\n ?.map((byte) => Number.parseInt(byte, 16)) ?? []\n )\n )\n .split('|')\n return decoded\n}\n"],"mappings":";;AAAA,MAAa,gBAAgB,WAA6B;CAWxD,OAVgB,IAAI,aAAa,CAC9B,OACC,IAAI,WACF,OACG,MAAM,EAAE,CACR,MAAM,UAAU,EACf,KAAK,SAAS,OAAO,SAAS,MAAM,GAAG,CAAC,IAAI,EAAE,CACnD,CACF,CACA,MAAM,IACK"}
1
+ {"version":3,"file":"decode.js","names":[],"sources":["../../../src/utils/decode.ts"],"sourcesContent":["export const decodeTaskId = (taskId: string): string[] => {\n const decoded = new TextDecoder()\n .decode(\n new Uint8Array(\n taskId\n .slice(2)\n .match(/.{1,2}/g)\n ?.map((byte) => Number.parseInt(byte, 16)) ?? []\n )\n )\n .split('|')\n return decoded\n}\n"],"mappings":";;AAAA,MAAa,gBAAgB,WAA6B;CAWxD,OAVgB,IAAI,YAAY,EAC7B,OACC,IAAI,WACF,OACG,MAAM,CAAC,EACP,MAAM,SAAS,GACd,KAAK,SAAS,OAAO,SAAS,MAAM,EAAE,CAAC,KAAK,CAAC,CACnD,CACF,EACC,MAAM,GACI;AACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchTxErrorDetails.js","names":[],"sources":["../../../src/utils/fetchTxErrorDetails.ts"],"sourcesContent":["export const fetchTxErrorDetails = async (\n txHash: string,\n chainId: number\n): Promise<unknown> => {\n try {\n const response = await fetch(\n `https://api.tenderly.co/api/v1/public-contract/${chainId}/tx/${txHash}`\n )\n const reponseBody = await response.json()\n\n return reponseBody\n } catch (_) {\n return undefined\n }\n}\n"],"mappings":";;AAAA,MAAa,sBAAsB,OACjC,QACA,YACqB;CACrB,IAAI;EAMF,OAAO,OAFmB,MAHH,MACrB,kDAAkD,QAAQ,MAAM,SACjE,EACkC,MAAM;UAGlC,GAAG;EACV"}
1
+ {"version":3,"file":"fetchTxErrorDetails.js","names":[],"sources":["../../../src/utils/fetchTxErrorDetails.ts"],"sourcesContent":["export const fetchTxErrorDetails = async (\n txHash: string,\n chainId: number\n): Promise<unknown> => {\n try {\n const response = await fetch(\n `https://api.tenderly.co/api/v1/public-contract/${chainId}/tx/${txHash}`\n )\n const reponseBody = await response.json()\n\n return reponseBody\n } catch (_) {\n return undefined\n }\n}\n"],"mappings":";;AAAA,MAAa,sBAAsB,OACjC,QACA,YACqB;CACrB,IAAI;EAMF,OAAO,OAFmB,MAHH,MACrB,kDAAkD,QAAQ,MAAM,QAClE,GACmC,KAAK;CAG1C,SAAS,GAAG;EACV;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatUnits.js","names":[],"sources":["../../../src/utils/formatUnits.ts"],"sourcesContent":["/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number.\n */\nexport function formatUnits(value: bigint, decimals: number): string {\n let display = value.toString()\n\n const negative = display.startsWith('-')\n if (negative) {\n display = display.slice(1)\n }\n\n display = display.padStart(decimals, '0')\n\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ]\n fraction = fraction.replace(/(0+)$/, '')\n return `${negative ? '-' : ''}${integer || '0'}${\n fraction ? `.${fraction}` : ''\n }`\n}\n"],"mappings":";;;;;AAGA,SAAgB,YAAY,OAAe,UAA0B;CACnE,IAAI,UAAU,MAAM,UAAU;CAE9B,MAAM,WAAW,QAAQ,WAAW,IAAI;CACxC,IAAI,UACF,UAAU,QAAQ,MAAM,EAAE;CAG5B,UAAU,QAAQ,SAAS,UAAU,IAAI;CAEzC,IAAI,CAAC,SAAS,YAAY,CACxB,QAAQ,MAAM,GAAG,QAAQ,SAAS,SAAS,EAC3C,QAAQ,MAAM,QAAQ,SAAS,SAAS,CACzC;CACD,WAAW,SAAS,QAAQ,SAAS,GAAG;CACxC,OAAO,GAAG,WAAW,MAAM,KAAK,WAAW,MACzC,WAAW,IAAI,aAAa"}
1
+ {"version":3,"file":"formatUnits.js","names":[],"sources":["../../../src/utils/formatUnits.ts"],"sourcesContent":["/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number.\n */\nexport function formatUnits(value: bigint, decimals: number): string {\n let display = value.toString()\n\n const negative = display.startsWith('-')\n if (negative) {\n display = display.slice(1)\n }\n\n display = display.padStart(decimals, '0')\n\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ]\n fraction = fraction.replace(/(0+)$/, '')\n return `${negative ? '-' : ''}${integer || '0'}${\n fraction ? `.${fraction}` : ''\n }`\n}\n"],"mappings":";;;;;AAGA,SAAgB,YAAY,OAAe,UAA0B;CACnE,IAAI,UAAU,MAAM,SAAS;CAE7B,MAAM,WAAW,QAAQ,WAAW,GAAG;CACvC,IAAI,UACF,UAAU,QAAQ,MAAM,CAAC;CAG3B,UAAU,QAAQ,SAAS,UAAU,GAAG;CAExC,IAAI,CAAC,SAAS,YAAY,CACxB,QAAQ,MAAM,GAAG,QAAQ,SAAS,QAAQ,GAC1C,QAAQ,MAAM,QAAQ,SAAS,QAAQ,CACzC;CACA,WAAW,SAAS,QAAQ,SAAS,EAAE;CACvC,OAAO,GAAG,WAAW,MAAM,KAAK,WAAW,MACzC,WAAW,IAAI,aAAa;AAEhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionMessage.js","names":[],"sources":["../../../src/utils/getTransactionMessage.ts"],"sourcesContent":["import type { LiFiStep } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\n\nexport const getTransactionFailedMessage = async (\n client: SDKClient,\n step: LiFiStep,\n txLink?: string\n): Promise<string> => {\n const chain = await client.getChainById(step.action.toChainId)\n\n const baseString = `It appears that your transaction may not have been successful.\n However, to confirm this, please check your ${chain.name} wallet for ${step.action.toToken.symbol}.`\n return txLink\n ? `${baseString}\n You can also check the&nbsp;<a href=\"${txLink}\" target=\"_blank\" rel=\"nofollow noreferrer\">block explorer</a> for more information.`\n : baseString\n}\n"],"mappings":";;AAGA,MAAa,8BAA8B,OACzC,QACA,MACA,WACoB;CAGpB,MAAM,aAAa;iDAC2B,MAH1B,OAAO,aAAa,KAAK,OAAO,UAAU,EAGV,KAAK,cAAc,KAAK,OAAO,QAAQ,OAAO;CAClG,OAAO,SACH,GAAG,WAAW;2CACuB,OAAO,wFAC5C"}
1
+ {"version":3,"file":"getTransactionMessage.js","names":[],"sources":["../../../src/utils/getTransactionMessage.ts"],"sourcesContent":["import type { LiFiStep } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\n\nexport const getTransactionFailedMessage = async (\n client: SDKClient,\n step: LiFiStep,\n txLink?: string\n): Promise<string> => {\n const chain = await client.getChainById(step.action.toChainId)\n\n const baseString = `It appears that your transaction may not have been successful.\n However, to confirm this, please check your ${chain.name} wallet for ${step.action.toToken.symbol}.`\n return txLink\n ? `${baseString}\n You can also check the&nbsp;<a href=\"${txLink}\" target=\"_blank\" rel=\"nofollow noreferrer\">block explorer</a> for more information.`\n : baseString\n}\n"],"mappings":";;AAGA,MAAa,8BAA8B,OACzC,QACA,MACA,WACoB;CAGpB,MAAM,aAAa;iDAC2B,MAH1B,OAAO,aAAa,KAAK,OAAO,SAAS,GAGT,KAAK,cAAc,KAAK,OAAO,QAAQ,OAAO;CAClG,OAAO,SACH,GAAG,WAAW;2CACuB,OAAO,wFAC5C;AACN"}
@@ -1 +1 @@
1
- {"version":3,"file":"isHex.js","names":[],"sources":["../../../src/utils/isHex.ts"],"sourcesContent":["export type Hex = `0x${string}`\n\nexport function isHex(\n value: unknown,\n { strict = true }: { strict?: boolean | undefined } = {}\n): value is Hex {\n if (!value) {\n return false\n }\n if (typeof value !== 'string') {\n return false\n }\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x')\n}\n"],"mappings":";;AAEA,SAAgB,MACd,OACA,EAAE,SAAS,SAA2C,EAAE,EAC1C;CACd,IAAI,CAAC,OACH,OAAO;CAET,IAAI,OAAO,UAAU,UACnB,OAAO;CAET,OAAO,SAAS,mBAAmB,KAAK,MAAM,GAAG,MAAM,WAAW,KAAK"}
1
+ {"version":3,"file":"isHex.js","names":[],"sources":["../../../src/utils/isHex.ts"],"sourcesContent":["export type Hex = `0x${string}`\n\nexport function isHex(\n value: unknown,\n { strict = true }: { strict?: boolean | undefined } = {}\n): value is Hex {\n if (!value) {\n return false\n }\n if (typeof value !== 'string') {\n return false\n }\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x')\n}\n"],"mappings":";;AAEA,SAAgB,MACd,OACA,EAAE,SAAS,SAA2C,CAAC,GACzC;CACd,IAAI,CAAC,OACH,OAAO;CAET,IAAI,OAAO,UAAU,UACnB,OAAO;CAET,OAAO,SAAS,mBAAmB,KAAK,KAAK,IAAI,MAAM,WAAW,IAAI;AACxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"isRoutesRequest.js","names":[],"sources":["../../../src/utils/isRoutesRequest.ts"],"sourcesContent":["import type { RouteOptions, RoutesRequest } from '@lifi/types'\n\nconst isRoutesOptions = (\n routeOptions: RouteOptions\n): routeOptions is RouteOptions =>\n !routeOptions?.slippage || typeof routeOptions.slippage === 'number'\n\nexport const isRoutesRequest = (\n routesRequest: RoutesRequest\n): routesRequest is RoutesRequest => {\n const {\n fromChainId,\n fromAmount,\n fromTokenAddress,\n toChainId,\n toTokenAddress,\n options,\n } = routesRequest\n\n return (\n typeof fromChainId === 'number' &&\n typeof fromAmount === 'string' &&\n fromAmount !== '' &&\n typeof fromTokenAddress === 'string' &&\n fromTokenAddress !== '' &&\n typeof toChainId === 'number' &&\n typeof toTokenAddress === 'string' &&\n toTokenAddress !== '' &&\n (!options || isRoutesOptions(options))\n )\n}\n"],"mappings":";;AAEA,MAAM,mBACJ,iBAEA,CAAC,cAAc,YAAY,OAAO,aAAa,aAAa;AAE9D,MAAa,mBACX,kBACmC;CACnC,MAAM,EACJ,aACA,YACA,kBACA,WACA,gBACA,YACE;CAEJ,OACE,OAAO,gBAAgB,YACvB,OAAO,eAAe,YACtB,eAAe,MACf,OAAO,qBAAqB,YAC5B,qBAAqB,MACrB,OAAO,cAAc,YACrB,OAAO,mBAAmB,YAC1B,mBAAmB,OAClB,CAAC,WAAW,gBAAgB,QAAQ"}
1
+ {"version":3,"file":"isRoutesRequest.js","names":[],"sources":["../../../src/utils/isRoutesRequest.ts"],"sourcesContent":["import type { RouteOptions, RoutesRequest } from '@lifi/types'\n\nconst isRoutesOptions = (\n routeOptions: RouteOptions\n): routeOptions is RouteOptions =>\n !routeOptions?.slippage || typeof routeOptions.slippage === 'number'\n\nexport const isRoutesRequest = (\n routesRequest: RoutesRequest\n): routesRequest is RoutesRequest => {\n const {\n fromChainId,\n fromAmount,\n fromTokenAddress,\n toChainId,\n toTokenAddress,\n options,\n } = routesRequest\n\n return (\n typeof fromChainId === 'number' &&\n typeof fromAmount === 'string' &&\n fromAmount !== '' &&\n typeof fromTokenAddress === 'string' &&\n fromTokenAddress !== '' &&\n typeof toChainId === 'number' &&\n typeof toTokenAddress === 'string' &&\n toTokenAddress !== '' &&\n (!options || isRoutesOptions(options))\n )\n}\n"],"mappings":";;AAEA,MAAM,mBACJ,iBAEA,CAAC,cAAc,YAAY,OAAO,aAAa,aAAa;AAE9D,MAAa,mBACX,kBACmC;CACnC,MAAM,EACJ,aACA,YACA,kBACA,WACA,gBACA,YACE;CAEJ,OACE,OAAO,gBAAgB,YACvB,OAAO,eAAe,YACtB,eAAe,MACf,OAAO,qBAAqB,YAC5B,qBAAqB,MACrB,OAAO,cAAc,YACrB,OAAO,mBAAmB,YAC1B,mBAAmB,OAClB,CAAC,WAAW,gBAAgB,OAAO;AAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isStep.js","names":["isToken"],"sources":["../../../src/utils/isStep.ts"],"sourcesContent":["import type { Action, Estimate, LiFiStep } from '@lifi/types'\nimport { isToken } from './isToken.js'\n\nconst isAction = (action: Action): action is Action => {\n const { fromChainId, fromAmount, fromToken, toChainId, toToken } = action\n\n return (\n typeof fromChainId === 'number' &&\n typeof fromAmount === 'string' &&\n fromAmount !== '' &&\n isToken(fromToken) &&\n typeof toChainId === 'number' &&\n isToken(toToken)\n )\n}\n\nconst isEstimate = (estimate: Estimate): estimate is Estimate => {\n const { fromAmount, toAmount, toAmountMin, approvalAddress } = estimate\n\n return (\n typeof fromAmount === 'string' &&\n fromAmount !== '' &&\n typeof toAmount === 'string' &&\n toAmount !== '' &&\n typeof toAmountMin === 'string' &&\n toAmountMin !== '' &&\n (typeof approvalAddress === 'string' || approvalAddress === null)\n )\n}\n\nexport const isStep = (step: LiFiStep): step is LiFiStep => {\n const { id, type, tool, action, estimate } = step\n\n return (\n typeof id === 'string' &&\n ['swap', 'cross', 'lifi'].includes(type) &&\n typeof tool === 'string' &&\n isAction(action) &&\n isEstimate(estimate)\n )\n}\n"],"mappings":";;;AAGA,MAAM,YAAY,WAAqC;CACrD,MAAM,EAAE,aAAa,YAAY,WAAW,WAAW,YAAY;CAEnE,OACE,OAAO,gBAAgB,YACvB,OAAO,eAAe,YACtB,eAAe,MACfA,sBAAAA,QAAQ,UAAU,IAClB,OAAO,cAAc,YACrBA,sBAAAA,QAAQ,QAAQ;;AAIpB,MAAM,cAAc,aAA6C;CAC/D,MAAM,EAAE,YAAY,UAAU,aAAa,oBAAoB;CAE/D,OACE,OAAO,eAAe,YACtB,eAAe,MACf,OAAO,aAAa,YACpB,aAAa,MACb,OAAO,gBAAgB,YACvB,gBAAgB,OACf,OAAO,oBAAoB,YAAY,oBAAoB;;AAIhE,MAAa,UAAU,SAAqC;CAC1D,MAAM,EAAE,IAAI,MAAM,MAAM,QAAQ,aAAa;CAE7C,OACE,OAAO,OAAO,YACd;EAAC;EAAQ;EAAS;EAAO,CAAC,SAAS,KAAK,IACxC,OAAO,SAAS,YAChB,SAAS,OAAO,IAChB,WAAW,SAAS"}
1
+ {"version":3,"file":"isStep.js","names":["isToken"],"sources":["../../../src/utils/isStep.ts"],"sourcesContent":["import type { Action, Estimate, LiFiStep } from '@lifi/types'\nimport { isToken } from './isToken.js'\n\nconst isAction = (action: Action): action is Action => {\n const { fromChainId, fromAmount, fromToken, toChainId, toToken } = action\n\n return (\n typeof fromChainId === 'number' &&\n typeof fromAmount === 'string' &&\n fromAmount !== '' &&\n isToken(fromToken) &&\n typeof toChainId === 'number' &&\n isToken(toToken)\n )\n}\n\nconst isEstimate = (estimate: Estimate): estimate is Estimate => {\n const { fromAmount, toAmount, toAmountMin, approvalAddress } = estimate\n\n return (\n typeof fromAmount === 'string' &&\n fromAmount !== '' &&\n typeof toAmount === 'string' &&\n toAmount !== '' &&\n typeof toAmountMin === 'string' &&\n toAmountMin !== '' &&\n (typeof approvalAddress === 'string' || approvalAddress === null)\n )\n}\n\nexport const isStep = (step: LiFiStep): step is LiFiStep => {\n const { id, type, tool, action, estimate } = step\n\n return (\n typeof id === 'string' &&\n ['swap', 'cross', 'lifi'].includes(type) &&\n typeof tool === 'string' &&\n isAction(action) &&\n isEstimate(estimate)\n )\n}\n"],"mappings":";;;AAGA,MAAM,YAAY,WAAqC;CACrD,MAAM,EAAE,aAAa,YAAY,WAAW,WAAW,YAAY;CAEnE,OACE,OAAO,gBAAgB,YACvB,OAAO,eAAe,YACtB,eAAe,MACfA,sBAAAA,QAAQ,SAAS,KACjB,OAAO,cAAc,YACrBA,sBAAAA,QAAQ,OAAO;AAEnB;AAEA,MAAM,cAAc,aAA6C;CAC/D,MAAM,EAAE,YAAY,UAAU,aAAa,oBAAoB;CAE/D,OACE,OAAO,eAAe,YACtB,eAAe,MACf,OAAO,aAAa,YACpB,aAAa,MACb,OAAO,gBAAgB,YACvB,gBAAgB,OACf,OAAO,oBAAoB,YAAY,oBAAoB;AAEhE;AAEA,MAAa,UAAU,SAAqC;CAC1D,MAAM,EAAE,IAAI,MAAM,MAAM,QAAQ,aAAa;CAE7C,OACE,OAAO,OAAO,YACd;EAAC;EAAQ;EAAS;CAAM,EAAE,SAAS,IAAI,KACvC,OAAO,SAAS,YAChB,SAAS,MAAM,KACf,WAAW,QAAQ;AAEvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"isToken.js","names":[],"sources":["../../../src/utils/isToken.ts"],"sourcesContent":["import type { StaticToken } from '@lifi/types'\n\nexport const isToken = (token: StaticToken): token is StaticToken => {\n const { address, decimals, chainId } = token\n\n return (\n typeof address === 'string' &&\n typeof decimals === 'number' &&\n typeof chainId === 'number'\n )\n}\n"],"mappings":";;AAEA,MAAa,WAAW,UAA6C;CACnE,MAAM,EAAE,SAAS,UAAU,YAAY;CAEvC,OACE,OAAO,YAAY,YACnB,OAAO,aAAa,YACpB,OAAO,YAAY"}
1
+ {"version":3,"file":"isToken.js","names":[],"sources":["../../../src/utils/isToken.ts"],"sourcesContent":["import type { StaticToken } from '@lifi/types'\n\nexport const isToken = (token: StaticToken): token is StaticToken => {\n const { address, decimals, chainId } = token\n\n return (\n typeof address === 'string' &&\n typeof decimals === 'number' &&\n typeof chainId === 'number'\n )\n}\n"],"mappings":";;AAEA,MAAa,WAAW,UAA6C;CACnE,MAAM,EAAE,SAAS,UAAU,YAAY;CAEvC,OACE,OAAO,YAAY,YACnB,OAAO,aAAa,YACpB,OAAO,YAAY;AAEvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseUnits.js","names":[],"sources":["../../../src/utils/parseUnits.ts"],"sourcesContent":["/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n */\nexport function parseUnits(value: string, decimals: number): bigint {\n if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value)) {\n throw new Error(`Number \\`${value}\\` is not a valid decimal number.`)\n }\n\n let [integer, fraction = '0'] = value.split('.')\n\n const negative = integer.startsWith('-')\n if (negative) {\n integer = integer.slice(1)\n }\n\n // trim trailing zeros.\n fraction = fraction.replace(/(0+)$/, '')\n\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1) {\n integer = `${BigInt(integer) + 1n}`\n }\n fraction = ''\n } else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ]\n\n const rounded = Math.round(Number(`${unit}.${right}`))\n if (rounded > 9) {\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0')\n } else {\n fraction = `${left}${rounded}`\n }\n\n if (fraction.length > decimals) {\n fraction = fraction.slice(1)\n integer = `${BigInt(integer) + 1n}`\n }\n\n fraction = fraction.slice(0, decimals)\n } else {\n fraction = fraction.padEnd(decimals, '0')\n }\n\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)\n}\n"],"mappings":";;;;;AAGA,SAAgB,WAAW,OAAe,UAA0B;CAClE,IAAI,CAAC,4BAA4B,KAAK,MAAM,EAC1C,MAAM,IAAI,MAAM,YAAY,MAAM,mCAAmC;CAGvE,IAAI,CAAC,SAAS,WAAW,OAAO,MAAM,MAAM,IAAI;CAEhD,MAAM,WAAW,QAAQ,WAAW,IAAI;CACxC,IAAI,UACF,UAAU,QAAQ,MAAM,EAAE;CAI5B,WAAW,SAAS,QAAQ,SAAS,GAAG;CAGxC,IAAI,aAAa,GAAG;EAClB,IAAI,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,KAAK,GACzC,UAAU,GAAG,OAAO,QAAQ,GAAG;EAEjC,WAAW;QACN,IAAI,SAAS,SAAS,UAAU;EACrC,MAAM,CAAC,MAAM,MAAM,SAAS;GAC1B,SAAS,MAAM,GAAG,WAAW,EAAE;GAC/B,SAAS,MAAM,WAAW,GAAG,SAAS;GACtC,SAAS,MAAM,SAAS;GACzB;EAED,MAAM,UAAU,KAAK,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;EACtD,IAAI,UAAU,GACZ,WAAW,GAAG,OAAO,KAAK,GAAG,OAAO,EAAE,CAAC,GAAG,SAAS,KAAK,SAAS,GAAG,IAAI;OAExE,WAAW,GAAG,OAAO;EAGvB,IAAI,SAAS,SAAS,UAAU;GAC9B,WAAW,SAAS,MAAM,EAAE;GAC5B,UAAU,GAAG,OAAO,QAAQ,GAAG;;EAGjC,WAAW,SAAS,MAAM,GAAG,SAAS;QAEtC,WAAW,SAAS,OAAO,UAAU,IAAI;CAG3C,OAAO,OAAO,GAAG,WAAW,MAAM,KAAK,UAAU,WAAW"}
1
+ {"version":3,"file":"parseUnits.js","names":[],"sources":["../../../src/utils/parseUnits.ts"],"sourcesContent":["/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n */\nexport function parseUnits(value: string, decimals: number): bigint {\n if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value)) {\n throw new Error(`Number \\`${value}\\` is not a valid decimal number.`)\n }\n\n let [integer, fraction = '0'] = value.split('.')\n\n const negative = integer.startsWith('-')\n if (negative) {\n integer = integer.slice(1)\n }\n\n // trim trailing zeros.\n fraction = fraction.replace(/(0+)$/, '')\n\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1) {\n integer = `${BigInt(integer) + 1n}`\n }\n fraction = ''\n } else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ]\n\n const rounded = Math.round(Number(`${unit}.${right}`))\n if (rounded > 9) {\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0')\n } else {\n fraction = `${left}${rounded}`\n }\n\n if (fraction.length > decimals) {\n fraction = fraction.slice(1)\n integer = `${BigInt(integer) + 1n}`\n }\n\n fraction = fraction.slice(0, decimals)\n } else {\n fraction = fraction.padEnd(decimals, '0')\n }\n\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)\n}\n"],"mappings":";;;;;AAGA,SAAgB,WAAW,OAAe,UAA0B;CAClE,IAAI,CAAC,4BAA4B,KAAK,KAAK,GACzC,MAAM,IAAI,MAAM,YAAY,MAAM,kCAAkC;CAGtE,IAAI,CAAC,SAAS,WAAW,OAAO,MAAM,MAAM,GAAG;CAE/C,MAAM,WAAW,QAAQ,WAAW,GAAG;CACvC,IAAI,UACF,UAAU,QAAQ,MAAM,CAAC;CAI3B,WAAW,SAAS,QAAQ,SAAS,EAAE;CAGvC,IAAI,aAAa,GAAG;EAClB,IAAI,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,MAAM,GACzC,UAAU,GAAG,OAAO,OAAO,IAAI;EAEjC,WAAW;CACb,OAAO,IAAI,SAAS,SAAS,UAAU;EACrC,MAAM,CAAC,MAAM,MAAM,SAAS;GAC1B,SAAS,MAAM,GAAG,WAAW,CAAC;GAC9B,SAAS,MAAM,WAAW,GAAG,QAAQ;GACrC,SAAS,MAAM,QAAQ;EACzB;EAEA,MAAM,UAAU,KAAK,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;EACrD,IAAI,UAAU,GACZ,WAAW,GAAG,OAAO,IAAI,IAAI,OAAO,CAAC,EAAE,GAAG,SAAS,KAAK,SAAS,GAAG,GAAG;OAEvE,WAAW,GAAG,OAAO;EAGvB,IAAI,SAAS,SAAS,UAAU;GAC9B,WAAW,SAAS,MAAM,CAAC;GAC3B,UAAU,GAAG,OAAO,OAAO,IAAI;EACjC;EAEA,WAAW,SAAS,MAAM,GAAG,QAAQ;CACvC,OACE,WAAW,SAAS,OAAO,UAAU,GAAG;CAG1C,OAAO,OAAO,GAAG,WAAW,MAAM,KAAK,UAAU,UAAU;AAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","names":["SDKError","ValidationError","version","HTTPError","sleep"],"sources":["../../../src/utils/request.ts"],"sourcesContent":["import { ValidationError } from '../errors/errors.js'\nimport { HTTPError } from '../errors/httpError.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKBaseConfig } from '../types/core.js'\nimport type { ExtendedRequestInit } from '../types/request.js'\nimport { version } from '../version.js'\nimport { sleep } from './sleep.js'\n\nexport const requestSettings = {\n retries: 1,\n}\n\nconst stripExtendRequestInitProperties = ({\n retries,\n ...rest\n}: ExtendedRequestInit): RequestInit => ({\n ...rest,\n})\n\nexport const request = async <T = Response>(\n config: SDKBaseConfig,\n url: RequestInfo | URL,\n options: ExtendedRequestInit = {\n retries: requestSettings.retries,\n }\n): Promise<T> => {\n const { userId, integrator, widgetVersion, apiKey, requestInterceptor } =\n config\n\n if (!integrator) {\n throw new SDKError(\n new ValidationError(\n 'You need to provide the Integrator property. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'\n )\n )\n }\n\n options.retries = options.retries ?? requestSettings.retries\n\n try {\n if (apiKey) {\n options.headers = {\n ...options.headers,\n 'x-lifi-api-key': apiKey,\n }\n }\n\n if (userId) {\n options.headers = {\n ...options.headers,\n 'x-lifi-userid': userId,\n }\n }\n\n if (widgetVersion) {\n options.headers = {\n ...options.headers,\n 'x-lifi-widget': widgetVersion,\n }\n }\n\n if (version) {\n options.headers = {\n ...options.headers,\n 'x-lifi-sdk': version,\n }\n }\n\n // integrator is mandatory during SDK initialization\n options.headers = {\n ...options.headers,\n 'x-lifi-integrator': integrator,\n }\n\n if (requestInterceptor) {\n options = await requestInterceptor(options)\n }\n\n const response: Response = await fetch(\n url,\n stripExtendRequestInitProperties(options)\n )\n\n if (!response.ok) {\n throw new HTTPError(response, url, options)\n }\n\n return await response.json()\n } catch (error) {\n const retries = options.retries ?? 0\n if (retries > 0 && (error as HTTPError).status === 500) {\n await sleep(500)\n return request<T>(config, url, { ...options, retries: retries - 1 })\n }\n\n await (error as HTTPError).buildAdditionalDetails?.()\n\n throw new SDKError(error as HTTPError)\n }\n}\n"],"mappings":";;;;;;;AAQA,MAAa,kBAAkB,EAC7B,SAAS,GACV;AAED,MAAM,oCAAoC,EACxC,SACA,GAAG,YACoC,EACvC,GAAG,MACJ;AAED,MAAa,UAAU,OACrB,QACA,KACA,UAA+B,EAC7B,SAAS,gBAAgB,SAC1B,KACc;CACf,MAAM,EAAE,QAAQ,YAAY,eAAe,QAAQ,uBACjD;CAEF,IAAI,CAAC,YACH,MAAM,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,iIACD,CACF;CAGH,QAAQ,UAAU,QAAQ,WAAW,gBAAgB;CAErD,IAAI;EACF,IAAI,QACF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,kBAAkB;GACnB;EAGH,IAAI,QACF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,iBAAiB;GAClB;EAGH,IAAI,eACF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,iBAAiB;GAClB;EAID,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,cAAcC,gBAAAA;GACf;EAIH,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,qBAAqB;GACtB;EAED,IAAI,oBACF,UAAU,MAAM,mBAAmB,QAAQ;EAG7C,MAAM,WAAqB,MAAM,MAC/B,KACA,iCAAiC,QAAQ,CAC1C;EAED,IAAI,CAAC,SAAS,IACZ,MAAM,IAAIC,yBAAAA,UAAU,UAAU,KAAK,QAAQ;EAG7C,OAAO,MAAM,SAAS,MAAM;UACrB,OAAO;EACd,MAAM,UAAU,QAAQ,WAAW;EACnC,IAAI,UAAU,KAAM,MAAoB,WAAW,KAAK;GACtD,MAAMC,oBAAAA,MAAM,IAAI;GAChB,OAAO,QAAW,QAAQ,KAAK;IAAE,GAAG;IAAS,SAAS,UAAU;IAAG,CAAC;;EAGtE,MAAO,MAAoB,0BAA0B;EAErD,MAAM,IAAIJ,wBAAAA,SAAS,MAAmB"}
1
+ {"version":3,"file":"request.js","names":["SDKError","ValidationError","version","HTTPError","sleep"],"sources":["../../../src/utils/request.ts"],"sourcesContent":["import { ValidationError } from '../errors/errors.js'\nimport { HTTPError } from '../errors/httpError.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKBaseConfig } from '../types/core.js'\nimport type { ExtendedRequestInit } from '../types/request.js'\nimport { version } from '../version.js'\nimport { sleep } from './sleep.js'\n\nexport const requestSettings = {\n retries: 1,\n}\n\nconst stripExtendRequestInitProperties = ({\n retries,\n ...rest\n}: ExtendedRequestInit): RequestInit => ({\n ...rest,\n})\n\nexport const request = async <T = Response>(\n config: SDKBaseConfig,\n url: RequestInfo | URL,\n options: ExtendedRequestInit = {\n retries: requestSettings.retries,\n }\n): Promise<T> => {\n const { userId, integrator, widgetVersion, apiKey, requestInterceptor } =\n config\n\n if (!integrator) {\n throw new SDKError(\n new ValidationError(\n 'You need to provide the Integrator property. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'\n )\n )\n }\n\n options.retries = options.retries ?? requestSettings.retries\n\n try {\n if (apiKey) {\n options.headers = {\n ...options.headers,\n 'x-lifi-api-key': apiKey,\n }\n }\n\n if (userId) {\n options.headers = {\n ...options.headers,\n 'x-lifi-userid': userId,\n }\n }\n\n if (widgetVersion) {\n options.headers = {\n ...options.headers,\n 'x-lifi-widget': widgetVersion,\n }\n }\n\n if (version) {\n options.headers = {\n ...options.headers,\n 'x-lifi-sdk': version,\n }\n }\n\n // integrator is mandatory during SDK initialization\n options.headers = {\n ...options.headers,\n 'x-lifi-integrator': integrator,\n }\n\n if (requestInterceptor) {\n options = await requestInterceptor(options)\n }\n\n const response: Response = await fetch(\n url,\n stripExtendRequestInitProperties(options)\n )\n\n if (!response.ok) {\n throw new HTTPError(response, url, options)\n }\n\n return await response.json()\n } catch (error) {\n const retries = options.retries ?? 0\n if (retries > 0 && (error as HTTPError).status === 500) {\n await sleep(500)\n return request<T>(config, url, { ...options, retries: retries - 1 })\n }\n\n await (error as HTTPError).buildAdditionalDetails?.()\n\n throw new SDKError(error as HTTPError)\n }\n}\n"],"mappings":";;;;;;;AAQA,MAAa,kBAAkB,EAC7B,SAAS,EACX;AAEA,MAAM,oCAAoC,EACxC,SACA,GAAG,YACoC,EACvC,GAAG,KACL;AAEA,MAAa,UAAU,OACrB,QACA,KACA,UAA+B,EAC7B,SAAS,gBAAgB,QAC3B,MACe;CACf,MAAM,EAAE,QAAQ,YAAY,eAAe,QAAQ,uBACjD;CAEF,IAAI,CAAC,YACH,MAAM,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,gIACF,CACF;CAGF,QAAQ,UAAU,QAAQ,WAAW,gBAAgB;CAErD,IAAI;EACF,IAAI,QACF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,kBAAkB;EACpB;EAGF,IAAI,QACF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,iBAAiB;EACnB;EAGF,IAAI,eACF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,iBAAiB;EACnB;EAIA,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,cAAcC,gBAAAA;EAChB;EAIF,QAAQ,UAAU;GAChB,GAAG,QAAQ;GACX,qBAAqB;EACvB;EAEA,IAAI,oBACF,UAAU,MAAM,mBAAmB,OAAO;EAG5C,MAAM,WAAqB,MAAM,MAC/B,KACA,iCAAiC,OAAO,CAC1C;EAEA,IAAI,CAAC,SAAS,IACZ,MAAM,IAAIC,yBAAAA,UAAU,UAAU,KAAK,OAAO;EAG5C,OAAO,MAAM,SAAS,KAAK;CAC7B,SAAS,OAAO;EACd,MAAM,UAAU,QAAQ,WAAW;EACnC,IAAI,UAAU,KAAM,MAAoB,WAAW,KAAK;GACtD,MAAMC,oBAAAA,MAAM,GAAG;GACf,OAAO,QAAW,QAAQ,KAAK;IAAE,GAAG;IAAS,SAAS,UAAU;GAAE,CAAC;EACrE;EAEA,MAAO,MAAoB,yBAAyB;EAEpD,MAAM,IAAIJ,wBAAAA,SAAS,KAAkB;CACvC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.js","names":[],"sources":["../../../src/utils/sleep.ts"],"sourcesContent":["export function sleep(ms: number): Promise<null> {\n return new Promise((resolve) => {\n setTimeout(() => resolve(null), ms)\n })\n}\n"],"mappings":";;AAAA,SAAgB,MAAM,IAA2B;CAC/C,OAAO,IAAI,SAAS,YAAY;EAC9B,iBAAiB,QAAQ,KAAK,EAAE,GAAG;GACnC"}
1
+ {"version":3,"file":"sleep.js","names":[],"sources":["../../../src/utils/sleep.ts"],"sourcesContent":["export function sleep(ms: number): Promise<null> {\n return new Promise((resolve) => {\n setTimeout(() => resolve(null), ms)\n })\n}\n"],"mappings":";;AAAA,SAAgB,MAAM,IAA2B;CAC/C,OAAO,IAAI,SAAS,YAAY;EAC9B,iBAAiB,QAAQ,IAAI,GAAG,EAAE;CACpC,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"waitForResult.js","names":["sleep"],"sources":["../../../src/utils/waitForResult.ts"],"sourcesContent":["import { sleep } from './sleep.js'\n\n/**\n * Repeatedly calls a given asynchronous function until it resolves with a value\n * @param fn The function that should be repeated\n * @param interval The timeout in milliseconds between retries, or a function that receives the current poll count and returns the interval. Defaults to 5000\n * @param maxRetries Maximum number of retries before throwing an error, defaults to 3\n * @param shouldRetry Optional predicate to determine if an error should trigger a retry\n * @returns The result of the fn function\n * @throws Error if maximum retries is reached, if function keeps returning undefined, or if shouldRetry returns false\n */\nexport const waitForResult = async <T>(\n fn: () => Promise<T | undefined>,\n interval: number | ((poll: number) => number) = 5000,\n maxRetries = 3,\n shouldRetry: (count: number, error: unknown) => boolean = () => true\n): Promise<T> => {\n let result: T | undefined\n let attempts = 0\n let polls = 0\n\n const getInterval = typeof interval === 'function' ? interval : () => interval\n\n while (!result) {\n try {\n result = await fn()\n if (!result) {\n await sleep(getInterval(polls))\n polls++\n }\n } catch (error) {\n if (!shouldRetry(attempts, error)) {\n throw error\n }\n attempts++\n if (attempts === maxRetries) {\n throw error\n }\n await sleep(getInterval(polls))\n polls++\n }\n }\n\n return result\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,gBAAgB,OAC3B,IACA,WAAgD,KAChD,aAAa,GACb,oBAAgE,SACjD;CACf,IAAI;CACJ,IAAI,WAAW;CACf,IAAI,QAAQ;CAEZ,MAAM,cAAc,OAAO,aAAa,aAAa,iBAAiB;CAEtE,OAAO,CAAC,QACN,IAAI;EACF,SAAS,MAAM,IAAI;EACnB,IAAI,CAAC,QAAQ;GACX,MAAMA,oBAAAA,MAAM,YAAY,MAAM,CAAC;GAC/B;;UAEK,OAAO;EACd,IAAI,CAAC,YAAY,UAAU,MAAM,EAC/B,MAAM;EAER;EACA,IAAI,aAAa,YACf,MAAM;EAER,MAAMA,oBAAAA,MAAM,YAAY,MAAM,CAAC;EAC/B;;CAIJ,OAAO"}
1
+ {"version":3,"file":"waitForResult.js","names":["sleep"],"sources":["../../../src/utils/waitForResult.ts"],"sourcesContent":["import { sleep } from './sleep.js'\n\n/**\n * Repeatedly calls a given asynchronous function until it resolves with a value\n * @param fn The function that should be repeated\n * @param interval The timeout in milliseconds between retries, or a function that receives the current poll count and returns the interval. Defaults to 5000\n * @param maxRetries Maximum number of retries before throwing an error, defaults to 3\n * @param shouldRetry Optional predicate to determine if an error should trigger a retry\n * @returns The result of the fn function\n * @throws Error if maximum retries is reached, if function keeps returning undefined, or if shouldRetry returns false\n */\nexport const waitForResult = async <T>(\n fn: () => Promise<T | undefined>,\n interval: number | ((poll: number) => number) = 5000,\n maxRetries = 3,\n shouldRetry: (count: number, error: unknown) => boolean = () => true\n): Promise<T> => {\n let result: T | undefined\n let attempts = 0\n let polls = 0\n\n const getInterval = typeof interval === 'function' ? interval : () => interval\n\n while (!result) {\n try {\n result = await fn()\n if (!result) {\n await sleep(getInterval(polls))\n polls++\n }\n } catch (error) {\n if (!shouldRetry(attempts, error)) {\n throw error\n }\n attempts++\n if (attempts === maxRetries) {\n throw error\n }\n await sleep(getInterval(polls))\n polls++\n }\n }\n\n return result\n}\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,gBAAgB,OAC3B,IACA,WAAgD,KAChD,aAAa,GACb,oBAAgE,SACjD;CACf,IAAI;CACJ,IAAI,WAAW;CACf,IAAI,QAAQ;CAEZ,MAAM,cAAc,OAAO,aAAa,aAAa,iBAAiB;CAEtE,OAAO,CAAC,QACN,IAAI;EACF,SAAS,MAAM,GAAG;EAClB,IAAI,CAAC,QAAQ;GACX,MAAMA,oBAAAA,MAAM,YAAY,KAAK,CAAC;GAC9B;EACF;CACF,SAAS,OAAO;EACd,IAAI,CAAC,YAAY,UAAU,KAAK,GAC9B,MAAM;EAER;EACA,IAAI,aAAa,YACf,MAAM;EAER,MAAMA,oBAAAA,MAAM,YAAY,KAAK,CAAC;EAC9B;CACF;CAGF,OAAO;AACT"}
@@ -18,7 +18,7 @@ var LruMap = class extends Map {
18
18
  }
19
19
  };
20
20
  /** @internal */
21
- const promiseCache = /* @__PURE__ */ new LruMap(8192);
21
+ const promiseCache = /*#__PURE__*/ new LruMap(8192);
22
22
  /** Deduplicates in-flight promises. */
23
23
  function withDedupe(fn, { enabled = true, id }) {
24
24
  if (!enabled || !id) return fn();
@@ -1 +1 @@
1
- {"version":3,"file":"withDedupe.js","names":[],"sources":["../../../src/utils/withDedupe.ts"],"sourcesContent":["/**\n * Map with a LRU (Least recently used) policy.\n *\n * https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap<value = unknown> extends Map<string, value> {\n maxSize: number\n\n constructor(size: number) {\n super()\n this.maxSize = size\n }\n\n override set(key: string, value: value): this {\n super.set(key, value)\n if (this.maxSize && this.size > this.maxSize) {\n this.delete(this.keys().next().value!)\n }\n return this\n }\n}\n\n/** @internal */\nconst promiseCache = /*#__PURE__*/ new LruMap<Promise<any>>(8192)\n\ntype WithDedupeOptions = {\n enabled?: boolean | undefined\n id?: string | undefined\n}\n\n/** Deduplicates in-flight promises. */\nexport function withDedupe<T>(\n fn: () => Promise<T>,\n { enabled = true, id }: WithDedupeOptions\n): Promise<T> {\n if (!enabled || !id) {\n return fn()\n }\n if (promiseCache.get(id)) {\n return promiseCache.get(id)!\n }\n const promise = fn().finally(() => promiseCache.delete(id))\n promiseCache.set(id, promise)\n return promise\n}\n"],"mappings":";;;;;;;AAKA,IAAa,SAAb,cAA6C,IAAmB;CAC9D;CAEA,YAAY,MAAc;EACxB,OAAO;EACP,KAAK,UAAU;;CAGjB,IAAa,KAAa,OAAoB;EAC5C,MAAM,IAAI,KAAK,MAAM;EACrB,IAAI,KAAK,WAAW,KAAK,OAAO,KAAK,SACnC,KAAK,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,MAAO;EAExC,OAAO;;;;AAKX,MAAM,+BAA6B,IAAI,OAAqB,KAAK;;AAQjE,SAAgB,WACd,IACA,EAAE,UAAU,MAAM,MACN;CACZ,IAAI,CAAC,WAAW,CAAC,IACf,OAAO,IAAI;CAEb,IAAI,aAAa,IAAI,GAAG,EACtB,OAAO,aAAa,IAAI,GAAG;CAE7B,MAAM,UAAU,IAAI,CAAC,cAAc,aAAa,OAAO,GAAG,CAAC;CAC3D,aAAa,IAAI,IAAI,QAAQ;CAC7B,OAAO"}
1
+ {"version":3,"file":"withDedupe.js","names":[],"sources":["../../../src/utils/withDedupe.ts"],"sourcesContent":["/**\n * Map with a LRU (Least recently used) policy.\n *\n * https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap<value = unknown> extends Map<string, value> {\n maxSize: number\n\n constructor(size: number) {\n super()\n this.maxSize = size\n }\n\n override set(key: string, value: value): this {\n super.set(key, value)\n if (this.maxSize && this.size > this.maxSize) {\n this.delete(this.keys().next().value!)\n }\n return this\n }\n}\n\n/** @internal */\nconst promiseCache = /*#__PURE__*/ new LruMap<Promise<any>>(8192)\n\ntype WithDedupeOptions = {\n enabled?: boolean | undefined\n id?: string | undefined\n}\n\n/** Deduplicates in-flight promises. */\nexport function withDedupe<T>(\n fn: () => Promise<T>,\n { enabled = true, id }: WithDedupeOptions\n): Promise<T> {\n if (!enabled || !id) {\n return fn()\n }\n if (promiseCache.get(id)) {\n return promiseCache.get(id)!\n }\n const promise = fn().finally(() => promiseCache.delete(id))\n promiseCache.set(id, promise)\n return promise\n}\n"],"mappings":";;;;;;;AAKA,IAAa,SAAb,cAA6C,IAAmB;CAC9D;CAEA,YAAY,MAAc;EACxB,MAAM;EACN,KAAK,UAAU;CACjB;CAEA,IAAa,KAAa,OAAoB;EAC5C,MAAM,IAAI,KAAK,KAAK;EACpB,IAAI,KAAK,WAAW,KAAK,OAAO,KAAK,SACnC,KAAK,OAAO,KAAK,KAAK,EAAE,KAAK,EAAE,KAAM;EAEvC,OAAO;CACT;AACF;;AAGA,MAAM,6BAA6B,IAAI,OAAqB,IAAI;;AAQhE,SAAgB,WACd,IACA,EAAE,UAAU,MAAM,MACN;CACZ,IAAI,CAAC,WAAW,CAAC,IACf,OAAO,GAAG;CAEZ,IAAI,aAAa,IAAI,EAAE,GACrB,OAAO,aAAa,IAAI,EAAE;CAE5B,MAAM,UAAU,GAAG,EAAE,cAAc,aAAa,OAAO,EAAE,CAAC;CAC1D,aAAa,IAAI,IAAI,OAAO;CAC5B,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"withTimeout.js","names":[],"sources":["../../../src/utils/withTimeout.ts"],"sourcesContent":["/**\n * Wraps a function in a timeout.\n * Based on viem's withTimeout implementation.\n * @param fn - The function to wrap.\n * @param timeout - The timeout in milliseconds.\n * @param errorInstance - The error instance to throw when the timeout is reached.\n * @param signal - Whether or not the timeout should use an abort signal.\n * @returns The result of the function.\n */\nexport function withTimeout<T>(\n fn: ({ signal }: { signal: AbortController['signal'] | null }) => Promise<T>,\n {\n errorInstance = new Error('Timed out after waiting for too long.'),\n timeout,\n signal,\n }: {\n // The error instance to throw when the timeout is reached.\n errorInstance?: Error | undefined\n // The timeout (in ms).\n timeout: number\n // Whether or not the timeout should use an abort signal.\n signal?: boolean | undefined\n }\n): Promise<T> {\n return new Promise((resolve, reject) => {\n ;(async () => {\n let timeoutId!: NodeJS.Timeout\n try {\n const controller = new AbortController()\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort()\n } else {\n reject(errorInstance)\n }\n }, timeout) as NodeJS.Timeout // need to cast because bun globals.d.ts overrides @types/node\n }\n resolve(await fn({ signal: controller?.signal || null }))\n } catch (err) {\n if ((err as Error)?.name === 'AbortError') {\n reject(errorInstance)\n }\n reject(err)\n } finally {\n clearTimeout(timeoutId)\n }\n })()\n })\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,YACd,IACA,EACE,gCAAgB,IAAI,MAAM,wCAAwC,EAClE,SACA,UASU;CACZ,OAAO,IAAI,SAAS,SAAS,WAAW;EACrC,CAAC,YAAY;GACZ,IAAI;GACJ,IAAI;IACF,MAAM,aAAa,IAAI,iBAAiB;IACxC,IAAI,UAAU,GACZ,YAAY,iBAAiB;KAC3B,IAAI,QACF,WAAW,OAAO;UAElB,OAAO,cAAc;OAEtB,QAAQ;IAEb,QAAQ,MAAM,GAAG,EAAE,QAAQ,YAAY,UAAU,MAAM,CAAC,CAAC;YAClD,KAAK;IACZ,IAAK,KAAe,SAAS,cAC3B,OAAO,cAAc;IAEvB,OAAO,IAAI;aACH;IACR,aAAa,UAAU;;MAEvB;GACJ"}
1
+ {"version":3,"file":"withTimeout.js","names":[],"sources":["../../../src/utils/withTimeout.ts"],"sourcesContent":["/**\n * Wraps a function in a timeout.\n * Based on viem's withTimeout implementation.\n * @param fn - The function to wrap.\n * @param timeout - The timeout in milliseconds.\n * @param errorInstance - The error instance to throw when the timeout is reached.\n * @param signal - Whether or not the timeout should use an abort signal.\n * @returns The result of the function.\n */\nexport function withTimeout<T>(\n fn: ({ signal }: { signal: AbortController['signal'] | null }) => Promise<T>,\n {\n errorInstance = new Error('Timed out after waiting for too long.'),\n timeout,\n signal,\n }: {\n // The error instance to throw when the timeout is reached.\n errorInstance?: Error | undefined\n // The timeout (in ms).\n timeout: number\n // Whether or not the timeout should use an abort signal.\n signal?: boolean | undefined\n }\n): Promise<T> {\n return new Promise((resolve, reject) => {\n ;(async () => {\n let timeoutId!: NodeJS.Timeout\n try {\n const controller = new AbortController()\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort()\n } else {\n reject(errorInstance)\n }\n }, timeout) as NodeJS.Timeout // need to cast because bun globals.d.ts overrides @types/node\n }\n resolve(await fn({ signal: controller?.signal || null }))\n } catch (err) {\n if ((err as Error)?.name === 'AbortError') {\n reject(errorInstance)\n }\n reject(err)\n } finally {\n clearTimeout(timeoutId)\n }\n })()\n })\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,YACd,IACA,EACE,gCAAgB,IAAI,MAAM,uCAAuC,GACjE,SACA,UASU;CACZ,OAAO,IAAI,SAAS,SAAS,WAAW;EACrC,CAAC,YAAY;GACZ,IAAI;GACJ,IAAI;IACF,MAAM,aAAa,IAAI,gBAAgB;IACvC,IAAI,UAAU,GACZ,YAAY,iBAAiB;KAC3B,IAAI,QACF,WAAW,MAAM;UAEjB,OAAO,aAAa;IAExB,GAAG,OAAO;IAEZ,QAAQ,MAAM,GAAG,EAAE,QAAQ,YAAY,UAAU,KAAK,CAAC,CAAC;GAC1D,SAAS,KAAK;IACZ,IAAK,KAAe,SAAS,cAC3B,OAAO,aAAa;IAEtB,OAAO,GAAG;GACZ,UAAU;IACR,aAAa,SAAS;GACxB;EACF,GAAG;CACL,CAAC;AACH"}
@@ -1,6 +1,6 @@
1
1
  //#region src/version.d.ts
2
2
  declare const name = "@lifi/sdk";
3
- declare const version = "4.0.0-beta.9";
3
+ declare const version = "4.0.0";
4
4
  //#endregion
5
5
  export { name, version };
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  //#region src/version.ts
3
3
  const name = "@lifi/sdk";
4
- const version = "4.0.0-beta.9";
4
+ const version = "4.0.0";
5
5
  //#endregion
6
6
  exports.name = name;
7
7
  exports.version = version;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk'\nexport const version = '4.0.0-beta.9'\n"],"mappings":";;AAAA,MAAa,OAAO;AACpB,MAAa,UAAU"}
1
+ {"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk'\nexport const version = '4.0.0'\n"],"mappings":";;AAAA,MAAa,OAAO;AACpB,MAAa,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"getChains.js","names":[],"sources":["../../../src/actions/getChains.ts"],"sourcesContent":["import type {\n ChainsRequest,\n ChainsResponse,\n ExtendedChain,\n RequestOptions,\n} from '@lifi/types'\nimport type { SDKBaseConfig, SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\nimport { withDedupe } from '../utils/withDedupe.js'\n\n/**\n * Get all available chains\n * @param client - The SDK client\n * @param params - The configuration of the requested chains\n * @param options - Request options\n * @returns A list of all available chains\n * @throws {LiFiError} Throws a LiFiError if request fails.\n */\nexport const getChains = async (\n client: SDKClient,\n params?: ChainsRequest,\n options?: RequestOptions\n): Promise<ExtendedChain[]> => {\n return await _getChains(client.config, params, options)\n}\n\nexport const _getChains = async (\n config: SDKBaseConfig,\n params?: ChainsRequest,\n options?: RequestOptions\n): Promise<ExtendedChain[]> => {\n if (params) {\n for (const key of Object.keys(params)) {\n const value = params[key as keyof ChainsRequest]\n if (value === undefined || value === null) {\n delete params[key as keyof ChainsRequest]\n }\n }\n }\n const urlSearchParams = new URLSearchParams(\n params as Record<string, string>\n ).toString()\n const response = await withDedupe(\n () =>\n request<ChainsResponse>(\n config,\n `${config.apiUrl}/chains?${urlSearchParams}`,\n {\n signal: options?.signal,\n }\n ),\n { id: `${getChains.name}.${urlSearchParams}` }\n )\n return response.chains\n}\n"],"mappings":";;;;;;;;;;;AAkBA,MAAa,YAAY,OACvB,QACA,QACA,YAC6B;CAC7B,OAAO,MAAM,WAAW,OAAO,QAAQ,QAAQ,QAAQ;;AAGzD,MAAa,aAAa,OACxB,QACA,QACA,YAC6B;CAC7B,IAAI,QACF,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,OAAO;;CAIpB,MAAM,kBAAkB,IAAI,gBAC1B,OACD,CAAC,UAAU;CAYZ,QAAO,MAXgB,iBAEnB,QACE,QACA,GAAG,OAAO,OAAO,UAAU,mBAC3B,EACE,QAAQ,SAAS,QAClB,CACF,EACH,EAAE,IAAI,GAAG,UAAU,KAAK,GAAG,mBAAmB,CAC/C,EACe"}
1
+ {"version":3,"file":"getChains.js","names":[],"sources":["../../../src/actions/getChains.ts"],"sourcesContent":["import type {\n ChainsRequest,\n ChainsResponse,\n ExtendedChain,\n RequestOptions,\n} from '@lifi/types'\nimport type { SDKBaseConfig, SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\nimport { withDedupe } from '../utils/withDedupe.js'\n\n/**\n * Get all available chains\n * @param client - The SDK client\n * @param params - The configuration of the requested chains\n * @param options - Request options\n * @returns A list of all available chains\n * @throws {LiFiError} Throws a LiFiError if request fails.\n */\nexport const getChains = async (\n client: SDKClient,\n params?: ChainsRequest,\n options?: RequestOptions\n): Promise<ExtendedChain[]> => {\n return await _getChains(client.config, params, options)\n}\n\nexport const _getChains = async (\n config: SDKBaseConfig,\n params?: ChainsRequest,\n options?: RequestOptions\n): Promise<ExtendedChain[]> => {\n if (params) {\n for (const key of Object.keys(params)) {\n const value = params[key as keyof ChainsRequest]\n if (value === undefined || value === null) {\n delete params[key as keyof ChainsRequest]\n }\n }\n }\n const urlSearchParams = new URLSearchParams(\n params as Record<string, string>\n ).toString()\n const response = await withDedupe(\n () =>\n request<ChainsResponse>(\n config,\n `${config.apiUrl}/chains?${urlSearchParams}`,\n {\n signal: options?.signal,\n }\n ),\n { id: `${getChains.name}.${urlSearchParams}` }\n )\n return response.chains\n}\n"],"mappings":";;;;;;;;;;;AAkBA,MAAa,YAAY,OACvB,QACA,QACA,YAC6B;CAC7B,OAAO,MAAM,WAAW,OAAO,QAAQ,QAAQ,OAAO;AACxD;AAEA,MAAa,aAAa,OACxB,QACA,QACA,YAC6B;CAC7B,IAAI,QACF,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG;EACrC,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,OAAO;CAElB;CAEF,MAAM,kBAAkB,IAAI,gBAC1B,MACF,EAAE,SAAS;CAYX,QAAO,MAXgB,iBAEnB,QACE,QACA,GAAG,OAAO,OAAO,UAAU,mBAC3B,EACE,QAAQ,SAAS,OACnB,CACF,GACF,EAAE,IAAI,GAAG,UAAU,KAAK,GAAG,kBAAkB,CAC/C,GACgB;AAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getConnections.js","names":[],"sources":["../../../src/actions/getConnections.ts"],"sourcesContent":["import type {\n ConnectionsRequest,\n ConnectionsResponse,\n RequestOptions,\n} from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get all the available connections for swap/bridging tokens\n * @param client - The SDK client\n * @param connectionRequest ConnectionsRequest\n * @param options - Request options\n * @returns ConnectionsResponse\n */\nexport const getConnections = async (\n client: SDKClient,\n connectionRequest: ConnectionsRequest,\n options?: RequestOptions\n): Promise<ConnectionsResponse> => {\n const url = new URL(`${client.config.apiUrl}/connections`)\n\n const { fromChain, fromToken, toChain, toToken } = connectionRequest\n\n if (fromChain) {\n url.searchParams.append('fromChain', fromChain as unknown as string)\n }\n if (fromToken) {\n url.searchParams.append('fromToken', fromToken)\n }\n if (toChain) {\n url.searchParams.append('toChain', toChain as unknown as string)\n }\n if (toToken) {\n url.searchParams.append('toToken', toToken)\n }\n const connectionRequestArrayParams: Array<keyof ConnectionsRequest> = [\n 'allowBridges',\n 'denyBridges',\n 'preferBridges',\n 'allowExchanges',\n 'denyExchanges',\n 'preferExchanges',\n ]\n for (const parameter of connectionRequestArrayParams) {\n const connectionRequestArrayParam = connectionRequest[parameter] as string[]\n\n if (connectionRequestArrayParam?.length) {\n for (const value of connectionRequestArrayParam) {\n url.searchParams.append(parameter, value)\n }\n }\n }\n return await request<ConnectionsResponse>(client.config, url, options)\n}\n"],"mappings":";;;;;;;;;AAeA,MAAa,iBAAiB,OAC5B,QACA,mBACA,YACiC;CACjC,MAAM,MAAM,IAAI,IAAI,GAAG,OAAO,OAAO,OAAO,cAAc;CAE1D,MAAM,EAAE,WAAW,WAAW,SAAS,YAAY;CAEnD,IAAI,WACF,IAAI,aAAa,OAAO,aAAa,UAA+B;CAEtE,IAAI,WACF,IAAI,aAAa,OAAO,aAAa,UAAU;CAEjD,IAAI,SACF,IAAI,aAAa,OAAO,WAAW,QAA6B;CAElE,IAAI,SACF,IAAI,aAAa,OAAO,WAAW,QAAQ;CAU7C,KAAK,MAAM,aAAa;EAPtB;EACA;EACA;EACA;EACA;EACA;EAEkD,EAAE;EACpD,MAAM,8BAA8B,kBAAkB;EAEtD,IAAI,6BAA6B,QAC/B,KAAK,MAAM,SAAS,6BAClB,IAAI,aAAa,OAAO,WAAW,MAAM;;CAI/C,OAAO,MAAM,QAA6B,OAAO,QAAQ,KAAK,QAAQ"}
1
+ {"version":3,"file":"getConnections.js","names":[],"sources":["../../../src/actions/getConnections.ts"],"sourcesContent":["import type {\n ConnectionsRequest,\n ConnectionsResponse,\n RequestOptions,\n} from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get all the available connections for swap/bridging tokens\n * @param client - The SDK client\n * @param connectionRequest ConnectionsRequest\n * @param options - Request options\n * @returns ConnectionsResponse\n */\nexport const getConnections = async (\n client: SDKClient,\n connectionRequest: ConnectionsRequest,\n options?: RequestOptions\n): Promise<ConnectionsResponse> => {\n const url = new URL(`${client.config.apiUrl}/connections`)\n\n const { fromChain, fromToken, toChain, toToken } = connectionRequest\n\n if (fromChain) {\n url.searchParams.append('fromChain', fromChain as unknown as string)\n }\n if (fromToken) {\n url.searchParams.append('fromToken', fromToken)\n }\n if (toChain) {\n url.searchParams.append('toChain', toChain as unknown as string)\n }\n if (toToken) {\n url.searchParams.append('toToken', toToken)\n }\n const connectionRequestArrayParams: Array<keyof ConnectionsRequest> = [\n 'allowBridges',\n 'denyBridges',\n 'preferBridges',\n 'allowExchanges',\n 'denyExchanges',\n 'preferExchanges',\n ]\n for (const parameter of connectionRequestArrayParams) {\n const connectionRequestArrayParam = connectionRequest[parameter] as string[]\n\n if (connectionRequestArrayParam?.length) {\n for (const value of connectionRequestArrayParam) {\n url.searchParams.append(parameter, value)\n }\n }\n }\n return await request<ConnectionsResponse>(client.config, url, options)\n}\n"],"mappings":";;;;;;;;;AAeA,MAAa,iBAAiB,OAC5B,QACA,mBACA,YACiC;CACjC,MAAM,MAAM,IAAI,IAAI,GAAG,OAAO,OAAO,OAAO,aAAa;CAEzD,MAAM,EAAE,WAAW,WAAW,SAAS,YAAY;CAEnD,IAAI,WACF,IAAI,aAAa,OAAO,aAAa,SAA8B;CAErE,IAAI,WACF,IAAI,aAAa,OAAO,aAAa,SAAS;CAEhD,IAAI,SACF,IAAI,aAAa,OAAO,WAAW,OAA4B;CAEjE,IAAI,SACF,IAAI,aAAa,OAAO,WAAW,OAAO;CAU5C,KAAK,MAAM,aAAa;EAPtB;EACA;EACA;EACA;EACA;EACA;CAEiD,GAAG;EACpD,MAAM,8BAA8B,kBAAkB;EAEtD,IAAI,6BAA6B,QAC/B,KAAK,MAAM,SAAS,6BAClB,IAAI,aAAa,OAAO,WAAW,KAAK;CAG9C;CACA,OAAO,MAAM,QAA6B,OAAO,QAAQ,KAAK,OAAO;AACvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"getContractCallsQuote.js","names":[],"sources":["../../../src/actions/getContractCallsQuote.ts"],"sourcesContent":["import type {\n ContractCallsQuoteRequest,\n LiFiStep,\n RequestOptions,\n} from '@lifi/types'\nimport {\n isContractCallsRequestWithFromAmount,\n isContractCallsRequestWithToAmount,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a quote for a destination contract call\n * @param client - The SDK client\n * @param params - The configuration of the requested destination call\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns - Returns step.\n */\nexport const getContractCallsQuote = async (\n client: SDKClient,\n params: ContractCallsQuoteRequest,\n options?: RequestOptions\n): Promise<LiFiStep> => {\n // validation\n const requiredParameters: Array<keyof ContractCallsQuoteRequest> = [\n 'fromChain',\n 'fromToken',\n 'fromAddress',\n 'toChain',\n 'toToken',\n 'contractCalls',\n ]\n for (const requiredParameter of requiredParameters) {\n if (!params[requiredParameter]) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"${requiredParameter}\" is missing.`\n )\n )\n }\n }\n if (\n !isContractCallsRequestWithFromAmount(params) &&\n !isContractCallsRequestWithToAmount(params)\n ) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"fromAmount\" or \"toAmount\" is missing.`\n )\n )\n }\n // apply defaults\n // option.order is not used in this endpoint\n params.integrator ??= client.config.integrator\n params.slippage ??= client.config.routeOptions?.slippage\n params.referrer ??= client.config.routeOptions?.referrer\n params.fee ??= client.config.routeOptions?.fee\n params.allowBridges ??= client.config.routeOptions?.bridges?.allow\n params.denyBridges ??= client.config.routeOptions?.bridges?.deny\n params.preferBridges ??= client.config.routeOptions?.bridges?.prefer\n params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow\n params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny\n params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer\n // send request\n return await request<LiFiStep>(\n client.config,\n `${client.config.apiUrl}/quote/contractCalls`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(params),\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAa,wBAAwB,OACnC,QACA,QACA,YACsB;CAUtB,KAAK,MAAM,qBAAqB;EAP9B;EACA;EACA;EACA;EACA;EACA;EAEgD,EAChD,IAAI,CAAC,OAAO,oBACV,MAAM,IAAI,SACR,IAAI,gBACF,uBAAuB,kBAAkB,eAC1C,CACF;CAGL,IACE,CAAC,qCAAqC,OAAO,IAC7C,CAAC,mCAAmC,OAAO,EAE3C,MAAM,IAAI,SACR,IAAI,gBACF,4DACD,CACF;CAIH,OAAO,eAAe,OAAO,OAAO;CACpC,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,QAAQ,OAAO,OAAO,cAAc;CAC3C,OAAO,iBAAiB,OAAO,OAAO,cAAc,SAAS;CAC7D,OAAO,gBAAgB,OAAO,OAAO,cAAc,SAAS;CAC5D,OAAO,kBAAkB,OAAO,OAAO,cAAc,SAAS;CAC9D,OAAO,mBAAmB,OAAO,OAAO,cAAc,WAAW;CACjE,OAAO,kBAAkB,OAAO,OAAO,cAAc,WAAW;CAChE,OAAO,oBAAoB,OAAO,OAAO,cAAc,WAAW;CAElE,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,uBACxB;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,oBACjB;EACD,MAAM,KAAK,UAAU,OAAO;EAC5B,QAAQ,SAAS;EAClB,CACF"}
1
+ {"version":3,"file":"getContractCallsQuote.js","names":[],"sources":["../../../src/actions/getContractCallsQuote.ts"],"sourcesContent":["import type {\n ContractCallsQuoteRequest,\n LiFiStep,\n RequestOptions,\n} from '@lifi/types'\nimport {\n isContractCallsRequestWithFromAmount,\n isContractCallsRequestWithToAmount,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a quote for a destination contract call\n * @param client - The SDK client\n * @param params - The configuration of the requested destination call\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns - Returns step.\n */\nexport const getContractCallsQuote = async (\n client: SDKClient,\n params: ContractCallsQuoteRequest,\n options?: RequestOptions\n): Promise<LiFiStep> => {\n // validation\n const requiredParameters: Array<keyof ContractCallsQuoteRequest> = [\n 'fromChain',\n 'fromToken',\n 'fromAddress',\n 'toChain',\n 'toToken',\n 'contractCalls',\n ]\n for (const requiredParameter of requiredParameters) {\n if (!params[requiredParameter]) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"${requiredParameter}\" is missing.`\n )\n )\n }\n }\n if (\n !isContractCallsRequestWithFromAmount(params) &&\n !isContractCallsRequestWithToAmount(params)\n ) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"fromAmount\" or \"toAmount\" is missing.`\n )\n )\n }\n // apply defaults\n // option.order is not used in this endpoint\n params.integrator ??= client.config.integrator\n params.slippage ??= client.config.routeOptions?.slippage\n params.referrer ??= client.config.routeOptions?.referrer\n params.fee ??= client.config.routeOptions?.fee\n params.allowBridges ??= client.config.routeOptions?.bridges?.allow\n params.denyBridges ??= client.config.routeOptions?.bridges?.deny\n params.preferBridges ??= client.config.routeOptions?.bridges?.prefer\n params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow\n params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny\n params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer\n // send request\n return await request<LiFiStep>(\n client.config,\n `${client.config.apiUrl}/quote/contractCalls`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(params),\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAa,wBAAwB,OACnC,QACA,QACA,YACsB;CAUtB,KAAK,MAAM,qBAAqB;EAP9B;EACA;EACA;EACA;EACA;EACA;CAE+C,GAC/C,IAAI,CAAC,OAAO,oBACV,MAAM,IAAI,SACR,IAAI,gBACF,uBAAuB,kBAAkB,cAC3C,CACF;CAGJ,IACE,CAAC,qCAAqC,MAAM,KAC5C,CAAC,mCAAmC,MAAM,GAE1C,MAAM,IAAI,SACR,IAAI,gBACF,2DACF,CACF;CAIF,OAAO,eAAe,OAAO,OAAO;CACpC,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,QAAQ,OAAO,OAAO,cAAc;CAC3C,OAAO,iBAAiB,OAAO,OAAO,cAAc,SAAS;CAC7D,OAAO,gBAAgB,OAAO,OAAO,cAAc,SAAS;CAC5D,OAAO,kBAAkB,OAAO,OAAO,cAAc,SAAS;CAC9D,OAAO,mBAAmB,OAAO,OAAO,cAAc,WAAW;CACjE,OAAO,kBAAkB,OAAO,OAAO,cAAc,WAAW;CAChE,OAAO,oBAAoB,OAAO,OAAO,cAAc,WAAW;CAElE,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,uBACxB;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,mBAClB;EACA,MAAM,KAAK,UAAU,MAAM;EAC3B,QAAQ,SAAS;CACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getGasRecommendation.js","names":[],"sources":["../../../src/actions/getGasRecommendation.ts"],"sourcesContent":["import type {\n GasRecommendationRequest,\n GasRecommendationResponse,\n RequestOptions,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get gas recommendation for a certain chain\n * @param client - The SDK client\n * @param params - Configuration of the requested gas recommendation.\n * @param options - Request options\n * @throws {LiFiError} Throws a LiFiError if request fails.\n * @returns Gas recommendation response.\n */\nexport const getGasRecommendation = async (\n client: SDKClient,\n params: GasRecommendationRequest,\n options?: RequestOptions\n): Promise<GasRecommendationResponse> => {\n if (!params.chainId) {\n throw new SDKError(\n new ValidationError('Required parameter \"chainId\" is missing.')\n )\n }\n\n const url = new URL(\n `${client.config.apiUrl}/gas/suggestion/${params.chainId}`\n )\n if (params.fromChain) {\n url.searchParams.append('fromChain', params.fromChain as unknown as string)\n }\n if (params.fromToken) {\n url.searchParams.append('fromToken', params.fromToken)\n }\n\n return await request<GasRecommendationResponse>(\n client.config,\n url.toString(),\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAa,uBAAuB,OAClC,QACA,QACA,YACuC;CACvC,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,SACR,IAAI,gBAAgB,6CAA2C,CAChE;CAGH,MAAM,MAAM,IAAI,IACd,GAAG,OAAO,OAAO,OAAO,kBAAkB,OAAO,UAClD;CACD,IAAI,OAAO,WACT,IAAI,aAAa,OAAO,aAAa,OAAO,UAA+B;CAE7E,IAAI,OAAO,WACT,IAAI,aAAa,OAAO,aAAa,OAAO,UAAU;CAGxD,OAAO,MAAM,QACX,OAAO,QACP,IAAI,UAAU,EACd,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getGasRecommendation.js","names":[],"sources":["../../../src/actions/getGasRecommendation.ts"],"sourcesContent":["import type {\n GasRecommendationRequest,\n GasRecommendationResponse,\n RequestOptions,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get gas recommendation for a certain chain\n * @param client - The SDK client\n * @param params - Configuration of the requested gas recommendation.\n * @param options - Request options\n * @throws {LiFiError} Throws a LiFiError if request fails.\n * @returns Gas recommendation response.\n */\nexport const getGasRecommendation = async (\n client: SDKClient,\n params: GasRecommendationRequest,\n options?: RequestOptions\n): Promise<GasRecommendationResponse> => {\n if (!params.chainId) {\n throw new SDKError(\n new ValidationError('Required parameter \"chainId\" is missing.')\n )\n }\n\n const url = new URL(\n `${client.config.apiUrl}/gas/suggestion/${params.chainId}`\n )\n if (params.fromChain) {\n url.searchParams.append('fromChain', params.fromChain as unknown as string)\n }\n if (params.fromToken) {\n url.searchParams.append('fromToken', params.fromToken)\n }\n\n return await request<GasRecommendationResponse>(\n client.config,\n url.toString(),\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAa,uBAAuB,OAClC,QACA,QACA,YACuC;CACvC,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,SACR,IAAI,gBAAgB,4CAA0C,CAChE;CAGF,MAAM,MAAM,IAAI,IACd,GAAG,OAAO,OAAO,OAAO,kBAAkB,OAAO,SACnD;CACA,IAAI,OAAO,WACT,IAAI,aAAa,OAAO,aAAa,OAAO,SAA8B;CAE5E,IAAI,OAAO,WACT,IAAI,aAAa,OAAO,aAAa,OAAO,SAAS;CAGvD,OAAO,MAAM,QACX,OAAO,QACP,IAAI,SAAS,GACb,EACE,QAAQ,SAAS,OACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getNameServiceAddress.js","names":[],"sources":["../../../src/actions/getNameServiceAddress.ts"],"sourcesContent":["import type { ChainType } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\n\n/**\n * Get the address of a name service\n * @param client - The SDK client\n * @param name - The name to resolve\n * @param chainType - The chain type to resolve the name on\n * @returns The address of the name service\n */\nexport const getNameServiceAddress = async (\n client: SDKClient,\n name: string,\n chainType?: ChainType\n): Promise<string | undefined> => {\n try {\n let providers = []\n if (chainType) {\n providers = client.providers.filter(\n (provider) => provider.type === chainType\n )\n } else {\n providers = client.providers\n }\n const resolvers = providers.map((provider) => provider.resolveAddress)\n if (!resolvers.length) {\n return\n }\n const result = await Promise.any(\n resolvers.map(async (resolve) => {\n const address = await resolve(name, client)\n if (!address) {\n throw undefined\n }\n return address\n })\n )\n return result\n } catch (_) {\n return\n }\n}\n"],"mappings":";;;;;;;;AAUA,MAAa,wBAAwB,OACnC,QACA,MACA,cACgC;CAChC,IAAI;EACF,IAAI,YAAY,EAAE;EAClB,IAAI,WACF,YAAY,OAAO,UAAU,QAC1B,aAAa,SAAS,SAAS,UACjC;OAED,YAAY,OAAO;EAErB,MAAM,YAAY,UAAU,KAAK,aAAa,SAAS,eAAe;EACtE,IAAI,CAAC,UAAU,QACb;EAWF,OAAO,MATc,QAAQ,IAC3B,UAAU,IAAI,OAAO,YAAY;GAC/B,MAAM,UAAU,MAAM,QAAQ,MAAM,OAAO;GAC3C,IAAI,CAAC,SACH,MAAM,KAAA;GAER,OAAO;IACP,CACH;UAEM,GAAG;EACV"}
1
+ {"version":3,"file":"getNameServiceAddress.js","names":[],"sources":["../../../src/actions/getNameServiceAddress.ts"],"sourcesContent":["import type { ChainType } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\n\n/**\n * Get the address of a name service\n * @param client - The SDK client\n * @param name - The name to resolve\n * @param chainType - The chain type to resolve the name on\n * @returns The address of the name service\n */\nexport const getNameServiceAddress = async (\n client: SDKClient,\n name: string,\n chainType?: ChainType\n): Promise<string | undefined> => {\n try {\n let providers = []\n if (chainType) {\n providers = client.providers.filter(\n (provider) => provider.type === chainType\n )\n } else {\n providers = client.providers\n }\n const resolvers = providers.map((provider) => provider.resolveAddress)\n if (!resolvers.length) {\n return\n }\n const result = await Promise.any(\n resolvers.map(async (resolve) => {\n const address = await resolve(name, client)\n if (!address) {\n throw undefined\n }\n return address\n })\n )\n return result\n } catch (_) {\n return\n }\n}\n"],"mappings":";;;;;;;;AAUA,MAAa,wBAAwB,OACnC,QACA,MACA,cACgC;CAChC,IAAI;EACF,IAAI,YAAY,CAAC;EACjB,IAAI,WACF,YAAY,OAAO,UAAU,QAC1B,aAAa,SAAS,SAAS,SAClC;OAEA,YAAY,OAAO;EAErB,MAAM,YAAY,UAAU,KAAK,aAAa,SAAS,cAAc;EACrE,IAAI,CAAC,UAAU,QACb;EAWF,OAAO,MATc,QAAQ,IAC3B,UAAU,IAAI,OAAO,YAAY;GAC/B,MAAM,UAAU,MAAM,QAAQ,MAAM,MAAM;GAC1C,IAAI,CAAC,SACH,MAAM,KAAA;GAER,OAAO;EACT,CAAC,CACH;CAEF,SAAS,GAAG;EACV;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getQuote.js","names":[],"sources":["../../../src/actions/getQuote.ts"],"sourcesContent":["import type { LiFiStep, RequestOptions } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type {\n QuoteRequest,\n QuoteRequestFromAmount,\n QuoteRequestToAmount,\n} from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a quote for a token transfer\n * @param client - The SDK client\n * @param params - The configuration of the requested quote\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Quote for a token transfer\n */\nexport async function getQuote(\n client: SDKClient,\n params: QuoteRequestFromAmount,\n options?: RequestOptions\n): Promise<LiFiStep>\nexport async function getQuote(\n client: SDKClient,\n params: QuoteRequestToAmount,\n options?: RequestOptions\n): Promise<LiFiStep>\nexport async function getQuote(\n client: SDKClient,\n params: QuoteRequest,\n options?: RequestOptions\n): Promise<LiFiStep> {\n const requiredParameters: Array<keyof QuoteRequest> = [\n 'fromChain',\n 'fromToken',\n 'fromAddress',\n 'toChain',\n 'toToken',\n ]\n\n for (const requiredParameter of requiredParameters) {\n if (!params[requiredParameter]) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"${requiredParameter}\" is missing.`\n )\n )\n }\n }\n\n const isFromAmountRequest =\n 'fromAmount' in params && params.fromAmount !== undefined\n const isToAmountRequest =\n 'toAmount' in params && params.toAmount !== undefined\n\n if (!isFromAmountRequest && !isToAmountRequest) {\n throw new SDKError(\n new ValidationError(\n 'Required parameter \"fromAmount\" or \"toAmount\" is missing.'\n )\n )\n }\n\n if (isFromAmountRequest && isToAmountRequest) {\n throw new SDKError(\n new ValidationError(\n 'Cannot provide both \"fromAmount\" and \"toAmount\" parameters.'\n )\n )\n }\n\n // apply defaults\n params.integrator ??= client.config.integrator\n params.order ??= client.config.routeOptions?.order\n params.slippage ??= client.config.routeOptions?.slippage\n params.referrer ??= client.config.routeOptions?.referrer\n params.fee ??= client.config.routeOptions?.fee\n params.allowBridges ??= client.config.routeOptions?.bridges?.allow\n params.denyBridges ??= client.config.routeOptions?.bridges?.deny\n params.preferBridges ??= client.config.routeOptions?.bridges?.prefer\n params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow\n params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny\n params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer\n\n for (const key of Object.keys(params)) {\n if (\n params[key as keyof QuoteRequest] === undefined ||\n params[key as keyof QuoteRequest] === null\n ) {\n delete params[key as keyof QuoteRequest]\n }\n }\n\n return await request<LiFiStep>(\n client.config,\n `${client.config.apiUrl}/${isFromAmountRequest ? 'quote' : 'quote/toAmount'}?${new URLSearchParams(\n params as unknown as Record<string, string>\n )}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;AA6BA,eAAsB,SACpB,QACA,QACA,SACmB;CASnB,KAAK,MAAM,qBAAqB;EAP9B;EACA;EACA;EACA;EACA;EAGgD,EAChD,IAAI,CAAC,OAAO,oBACV,MAAM,IAAI,SACR,IAAI,gBACF,uBAAuB,kBAAkB,eAC1C,CACF;CAIL,MAAM,sBACJ,gBAAgB,UAAU,OAAO,eAAe,KAAA;CAClD,MAAM,oBACJ,cAAc,UAAU,OAAO,aAAa,KAAA;CAE9C,IAAI,CAAC,uBAAuB,CAAC,mBAC3B,MAAM,IAAI,SACR,IAAI,gBACF,gEACD,CACF;CAGH,IAAI,uBAAuB,mBACzB,MAAM,IAAI,SACR,IAAI,gBACF,kEACD,CACF;CAIH,OAAO,eAAe,OAAO,OAAO;CACpC,OAAO,UAAU,OAAO,OAAO,cAAc;CAC7C,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,QAAQ,OAAO,OAAO,cAAc;CAC3C,OAAO,iBAAiB,OAAO,OAAO,cAAc,SAAS;CAC7D,OAAO,gBAAgB,OAAO,OAAO,cAAc,SAAS;CAC5D,OAAO,kBAAkB,OAAO,OAAO,cAAc,SAAS;CAC9D,OAAO,mBAAmB,OAAO,OAAO,cAAc,WAAW;CACjE,OAAO,kBAAkB,OAAO,OAAO,cAAc,WAAW;CAChE,OAAO,oBAAoB,OAAO,OAAO,cAAc,WAAW;CAElE,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EACnC,IACE,OAAO,SAA+B,KAAA,KACtC,OAAO,SAA+B,MAEtC,OAAO,OAAO;CAIlB,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,GAAG,sBAAsB,UAAU,iBAAiB,GAAG,IAAI,gBACjF,OACD,IACD,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getQuote.js","names":[],"sources":["../../../src/actions/getQuote.ts"],"sourcesContent":["import type { LiFiStep, RequestOptions } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type {\n QuoteRequest,\n QuoteRequestFromAmount,\n QuoteRequestToAmount,\n} from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a quote for a token transfer\n * @param client - The SDK client\n * @param params - The configuration of the requested quote\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Quote for a token transfer\n */\nexport async function getQuote(\n client: SDKClient,\n params: QuoteRequestFromAmount,\n options?: RequestOptions\n): Promise<LiFiStep>\nexport async function getQuote(\n client: SDKClient,\n params: QuoteRequestToAmount,\n options?: RequestOptions\n): Promise<LiFiStep>\nexport async function getQuote(\n client: SDKClient,\n params: QuoteRequest,\n options?: RequestOptions\n): Promise<LiFiStep> {\n const requiredParameters: Array<keyof QuoteRequest> = [\n 'fromChain',\n 'fromToken',\n 'fromAddress',\n 'toChain',\n 'toToken',\n ]\n\n for (const requiredParameter of requiredParameters) {\n if (!params[requiredParameter]) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"${requiredParameter}\" is missing.`\n )\n )\n }\n }\n\n const isFromAmountRequest =\n 'fromAmount' in params && params.fromAmount !== undefined\n const isToAmountRequest =\n 'toAmount' in params && params.toAmount !== undefined\n\n if (!isFromAmountRequest && !isToAmountRequest) {\n throw new SDKError(\n new ValidationError(\n 'Required parameter \"fromAmount\" or \"toAmount\" is missing.'\n )\n )\n }\n\n if (isFromAmountRequest && isToAmountRequest) {\n throw new SDKError(\n new ValidationError(\n 'Cannot provide both \"fromAmount\" and \"toAmount\" parameters.'\n )\n )\n }\n\n // apply defaults\n params.integrator ??= client.config.integrator\n params.order ??= client.config.routeOptions?.order\n params.slippage ??= client.config.routeOptions?.slippage\n params.referrer ??= client.config.routeOptions?.referrer\n params.fee ??= client.config.routeOptions?.fee\n params.allowBridges ??= client.config.routeOptions?.bridges?.allow\n params.denyBridges ??= client.config.routeOptions?.bridges?.deny\n params.preferBridges ??= client.config.routeOptions?.bridges?.prefer\n params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow\n params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny\n params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer\n\n for (const key of Object.keys(params)) {\n if (\n params[key as keyof QuoteRequest] === undefined ||\n params[key as keyof QuoteRequest] === null\n ) {\n delete params[key as keyof QuoteRequest]\n }\n }\n\n return await request<LiFiStep>(\n client.config,\n `${client.config.apiUrl}/${isFromAmountRequest ? 'quote' : 'quote/toAmount'}?${new URLSearchParams(\n params as unknown as Record<string, string>\n )}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;AA6BA,eAAsB,SACpB,QACA,QACA,SACmB;CASnB,KAAK,MAAM,qBAAqB;EAP9B;EACA;EACA;EACA;EACA;CAG+C,GAC/C,IAAI,CAAC,OAAO,oBACV,MAAM,IAAI,SACR,IAAI,gBACF,uBAAuB,kBAAkB,cAC3C,CACF;CAIJ,MAAM,sBACJ,gBAAgB,UAAU,OAAO,eAAe,KAAA;CAClD,MAAM,oBACJ,cAAc,UAAU,OAAO,aAAa,KAAA;CAE9C,IAAI,CAAC,uBAAuB,CAAC,mBAC3B,MAAM,IAAI,SACR,IAAI,gBACF,+DACF,CACF;CAGF,IAAI,uBAAuB,mBACzB,MAAM,IAAI,SACR,IAAI,gBACF,iEACF,CACF;CAIF,OAAO,eAAe,OAAO,OAAO;CACpC,OAAO,UAAU,OAAO,OAAO,cAAc;CAC7C,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,QAAQ,OAAO,OAAO,cAAc;CAC3C,OAAO,iBAAiB,OAAO,OAAO,cAAc,SAAS;CAC7D,OAAO,gBAAgB,OAAO,OAAO,cAAc,SAAS;CAC5D,OAAO,kBAAkB,OAAO,OAAO,cAAc,SAAS;CAC9D,OAAO,mBAAmB,OAAO,OAAO,cAAc,WAAW;CACjE,OAAO,kBAAkB,OAAO,OAAO,cAAc,WAAW;CAChE,OAAO,oBAAoB,OAAO,OAAO,cAAc,WAAW;CAElE,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,IACE,OAAO,SAA+B,KAAA,KACtC,OAAO,SAA+B,MAEtC,OAAO,OAAO;CAIlB,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,GAAG,sBAAsB,UAAU,iBAAiB,GAAG,IAAI,gBACjF,MACF,KACA,EACE,QAAQ,SAAS,OACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRelayedTransactionStatus.js","names":[],"sources":["../../../src/actions/getRelayedTransactionStatus.ts"],"sourcesContent":["import type {\n RelayStatusRequest,\n RelayStatusResponse,\n RelayStatusResponseData,\n RequestOptions,\n} from '@lifi/types'\nimport { BaseError } from '../errors/baseError.js'\nimport { ErrorName } from '../errors/constants.js'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { decodeTaskId } from '../utils/decode.js'\nimport { request } from '../utils/request.js'\nimport { getStatus } from './getStatus.js'\n\n/**\n * Get the status of a relayed transaction\n * @param client - The SDK client\n * @param params - Parameters for the relay status request\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Status of the relayed transaction\n */\nexport const getRelayedTransactionStatus = async (\n client: SDKClient,\n params: RelayStatusRequest,\n options?: RequestOptions\n): Promise<RelayStatusResponseData> => {\n if (!params.taskId) {\n throw new SDKError(\n new ValidationError('Required parameter \"taskId\" is missing.')\n )\n }\n\n const { taskId, ...otherParams } = params\n const queryParams = new URLSearchParams(\n otherParams as unknown as Record<string, string>\n )\n\n const decodedTaskId = decodeTaskId(taskId)\n // Temporary solution during the transition between status endpoints\n if (decodedTaskId.length >= 3) {\n return (await getStatus(\n client,\n params,\n options\n )) as unknown as RelayStatusResponseData\n }\n\n const result = await request<RelayStatusResponse>(\n client.config,\n `${client.config.apiUrl}/relayer/status/${taskId}?${queryParams}`,\n {\n signal: options?.signal,\n }\n )\n\n if (result.status === 'error') {\n throw new BaseError(\n ErrorName.ServerError,\n result.data.code,\n result.data.message\n )\n }\n\n return result.data\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAa,8BAA8B,OACzC,QACA,QACA,YACqC;CACrC,IAAI,CAAC,OAAO,QACV,MAAM,IAAI,SACR,IAAI,gBAAgB,4CAA0C,CAC/D;CAGH,MAAM,EAAE,QAAQ,GAAG,gBAAgB;CACnC,MAAM,cAAc,IAAI,gBACtB,YACD;CAID,IAFsB,aAAa,OAElB,CAAC,UAAU,GAC1B,OAAQ,MAAM,UACZ,QACA,QACA,QACD;CAGH,MAAM,SAAS,MAAM,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,kBAAkB,OAAO,GAAG,eACpD,EACE,QAAQ,SAAS,QAClB,CACF;CAED,IAAI,OAAO,WAAW,SACpB,MAAM,IAAI,UAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,QACb;CAGH,OAAO,OAAO"}
1
+ {"version":3,"file":"getRelayedTransactionStatus.js","names":[],"sources":["../../../src/actions/getRelayedTransactionStatus.ts"],"sourcesContent":["import type {\n RelayStatusRequest,\n RelayStatusResponse,\n RelayStatusResponseData,\n RequestOptions,\n} from '@lifi/types'\nimport { BaseError } from '../errors/baseError.js'\nimport { ErrorName } from '../errors/constants.js'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { decodeTaskId } from '../utils/decode.js'\nimport { request } from '../utils/request.js'\nimport { getStatus } from './getStatus.js'\n\n/**\n * Get the status of a relayed transaction\n * @param client - The SDK client\n * @param params - Parameters for the relay status request\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Status of the relayed transaction\n */\nexport const getRelayedTransactionStatus = async (\n client: SDKClient,\n params: RelayStatusRequest,\n options?: RequestOptions\n): Promise<RelayStatusResponseData> => {\n if (!params.taskId) {\n throw new SDKError(\n new ValidationError('Required parameter \"taskId\" is missing.')\n )\n }\n\n const { taskId, ...otherParams } = params\n const queryParams = new URLSearchParams(\n otherParams as unknown as Record<string, string>\n )\n\n const decodedTaskId = decodeTaskId(taskId)\n // Temporary solution during the transition between status endpoints\n if (decodedTaskId.length >= 3) {\n return (await getStatus(\n client,\n params,\n options\n )) as unknown as RelayStatusResponseData\n }\n\n const result = await request<RelayStatusResponse>(\n client.config,\n `${client.config.apiUrl}/relayer/status/${taskId}?${queryParams}`,\n {\n signal: options?.signal,\n }\n )\n\n if (result.status === 'error') {\n throw new BaseError(\n ErrorName.ServerError,\n result.data.code,\n result.data.message\n )\n }\n\n return result.data\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAa,8BAA8B,OACzC,QACA,QACA,YACqC;CACrC,IAAI,CAAC,OAAO,QACV,MAAM,IAAI,SACR,IAAI,gBAAgB,2CAAyC,CAC/D;CAGF,MAAM,EAAE,QAAQ,GAAG,gBAAgB;CACnC,MAAM,cAAc,IAAI,gBACtB,WACF;CAIA,IAFsB,aAAa,MAEnB,EAAE,UAAU,GAC1B,OAAQ,MAAM,UACZ,QACA,QACA,OACF;CAGF,MAAM,SAAS,MAAM,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,kBAAkB,OAAO,GAAG,eACpD,EACE,QAAQ,SAAS,OACnB,CACF;CAEA,IAAI,OAAO,WAAW,SACpB,MAAM,IAAI,UAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,OACd;CAGF,OAAO,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRelayerQuote.js","names":[],"sources":["../../../src/actions/getRelayerQuote.ts"],"sourcesContent":["import type {\n LiFiStep,\n RelayerQuoteResponse,\n RequestOptions,\n} from '@lifi/types'\nimport { BaseError } from '../errors/baseError.js'\nimport { ErrorName } from '../errors/constants.js'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { QuoteRequest, QuoteRequestFromAmount } from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a relayer quote for a token transfer\n * @param client - The SDK client\n * @param params - The configuration of the requested quote\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Relayer quote for a token transfer\n */\nexport const getRelayerQuote = async (\n client: SDKClient,\n params: QuoteRequestFromAmount,\n options?: RequestOptions\n): Promise<LiFiStep> => {\n const requiredParameters: Array<keyof QuoteRequestFromAmount> = [\n 'fromChain',\n 'fromToken',\n 'fromAddress',\n 'fromAmount',\n 'toChain',\n 'toToken',\n ]\n for (const requiredParameter of requiredParameters) {\n if (!params[requiredParameter]) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"${requiredParameter}\" is missing.`\n )\n )\n }\n }\n\n // apply defaults\n params.integrator ??= client.config.integrator\n params.order ??= client.config.routeOptions?.order\n params.slippage ??= client.config.routeOptions?.slippage\n params.referrer ??= client.config.routeOptions?.referrer\n params.fee ??= client.config.routeOptions?.fee\n params.allowBridges ??= client.config.routeOptions?.bridges?.allow\n params.denyBridges ??= client.config.routeOptions?.bridges?.deny\n params.preferBridges ??= client.config.routeOptions?.bridges?.prefer\n params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow\n params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny\n params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer\n\n for (const key of Object.keys(params)) {\n if (\n params[key as keyof QuoteRequest] === undefined ||\n params[key as keyof QuoteRequest] === null\n ) {\n delete params[key as keyof QuoteRequest]\n }\n }\n\n const result = await request<RelayerQuoteResponse>(\n client.config,\n `${client.config.apiUrl}/relayer/quote?${new URLSearchParams(\n params as unknown as Record<string, string>\n )}`,\n {\n signal: options?.signal,\n }\n )\n\n if (result.status === 'error') {\n throw new BaseError(\n ErrorName.ServerError,\n result.data.code,\n result.data.message\n )\n }\n\n return result.data\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAa,kBAAkB,OAC7B,QACA,QACA,YACsB;CAStB,KAAK,MAAM,qBAAqB;EAP9B;EACA;EACA;EACA;EACA;EACA;EAEgD,EAChD,IAAI,CAAC,OAAO,oBACV,MAAM,IAAI,SACR,IAAI,gBACF,uBAAuB,kBAAkB,eAC1C,CACF;CAKL,OAAO,eAAe,OAAO,OAAO;CACpC,OAAO,UAAU,OAAO,OAAO,cAAc;CAC7C,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,QAAQ,OAAO,OAAO,cAAc;CAC3C,OAAO,iBAAiB,OAAO,OAAO,cAAc,SAAS;CAC7D,OAAO,gBAAgB,OAAO,OAAO,cAAc,SAAS;CAC5D,OAAO,kBAAkB,OAAO,OAAO,cAAc,SAAS;CAC9D,OAAO,mBAAmB,OAAO,OAAO,cAAc,WAAW;CACjE,OAAO,kBAAkB,OAAO,OAAO,cAAc,WAAW;CAChE,OAAO,oBAAoB,OAAO,OAAO,cAAc,WAAW;CAElE,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EACnC,IACE,OAAO,SAA+B,KAAA,KACtC,OAAO,SAA+B,MAEtC,OAAO,OAAO;CAIlB,MAAM,SAAS,MAAM,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,iBAAiB,IAAI,gBAC3C,OACD,IACD,EACE,QAAQ,SAAS,QAClB,CACF;CAED,IAAI,OAAO,WAAW,SACpB,MAAM,IAAI,UAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,QACb;CAGH,OAAO,OAAO"}
1
+ {"version":3,"file":"getRelayerQuote.js","names":[],"sources":["../../../src/actions/getRelayerQuote.ts"],"sourcesContent":["import type {\n LiFiStep,\n RelayerQuoteResponse,\n RequestOptions,\n} from '@lifi/types'\nimport { BaseError } from '../errors/baseError.js'\nimport { ErrorName } from '../errors/constants.js'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { QuoteRequest, QuoteRequestFromAmount } from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a relayer quote for a token transfer\n * @param client - The SDK client\n * @param params - The configuration of the requested quote\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Relayer quote for a token transfer\n */\nexport const getRelayerQuote = async (\n client: SDKClient,\n params: QuoteRequestFromAmount,\n options?: RequestOptions\n): Promise<LiFiStep> => {\n const requiredParameters: Array<keyof QuoteRequestFromAmount> = [\n 'fromChain',\n 'fromToken',\n 'fromAddress',\n 'fromAmount',\n 'toChain',\n 'toToken',\n ]\n for (const requiredParameter of requiredParameters) {\n if (!params[requiredParameter]) {\n throw new SDKError(\n new ValidationError(\n `Required parameter \"${requiredParameter}\" is missing.`\n )\n )\n }\n }\n\n // apply defaults\n params.integrator ??= client.config.integrator\n params.order ??= client.config.routeOptions?.order\n params.slippage ??= client.config.routeOptions?.slippage\n params.referrer ??= client.config.routeOptions?.referrer\n params.fee ??= client.config.routeOptions?.fee\n params.allowBridges ??= client.config.routeOptions?.bridges?.allow\n params.denyBridges ??= client.config.routeOptions?.bridges?.deny\n params.preferBridges ??= client.config.routeOptions?.bridges?.prefer\n params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow\n params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny\n params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer\n\n for (const key of Object.keys(params)) {\n if (\n params[key as keyof QuoteRequest] === undefined ||\n params[key as keyof QuoteRequest] === null\n ) {\n delete params[key as keyof QuoteRequest]\n }\n }\n\n const result = await request<RelayerQuoteResponse>(\n client.config,\n `${client.config.apiUrl}/relayer/quote?${new URLSearchParams(\n params as unknown as Record<string, string>\n )}`,\n {\n signal: options?.signal,\n }\n )\n\n if (result.status === 'error') {\n throw new BaseError(\n ErrorName.ServerError,\n result.data.code,\n result.data.message\n )\n }\n\n return result.data\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,MAAa,kBAAkB,OAC7B,QACA,QACA,YACsB;CAStB,KAAK,MAAM,qBAAqB;EAP9B;EACA;EACA;EACA;EACA;EACA;CAE+C,GAC/C,IAAI,CAAC,OAAO,oBACV,MAAM,IAAI,SACR,IAAI,gBACF,uBAAuB,kBAAkB,cAC3C,CACF;CAKJ,OAAO,eAAe,OAAO,OAAO;CACpC,OAAO,UAAU,OAAO,OAAO,cAAc;CAC7C,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,aAAa,OAAO,OAAO,cAAc;CAChD,OAAO,QAAQ,OAAO,OAAO,cAAc;CAC3C,OAAO,iBAAiB,OAAO,OAAO,cAAc,SAAS;CAC7D,OAAO,gBAAgB,OAAO,OAAO,cAAc,SAAS;CAC5D,OAAO,kBAAkB,OAAO,OAAO,cAAc,SAAS;CAC9D,OAAO,mBAAmB,OAAO,OAAO,cAAc,WAAW;CACjE,OAAO,kBAAkB,OAAO,OAAO,cAAc,WAAW;CAChE,OAAO,oBAAoB,OAAO,OAAO,cAAc,WAAW;CAElE,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,IACE,OAAO,SAA+B,KAAA,KACtC,OAAO,SAA+B,MAEtC,OAAO,OAAO;CAIlB,MAAM,SAAS,MAAM,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,iBAAiB,IAAI,gBAC3C,MACF,KACA,EACE,QAAQ,SAAS,OACnB,CACF;CAEA,IAAI,OAAO,WAAW,SACpB,MAAM,IAAI,UAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,OACd;CAGF,OAAO,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRoutes.js","names":[],"sources":["../../../src/actions/getRoutes.ts"],"sourcesContent":["import type { RequestOptions, RoutesRequest, RoutesResponse } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { isRoutesRequest } from '../utils/isRoutesRequest.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a set of routes for a request that describes a transfer of tokens.\n * @param client - The SDK client.\n * @param params - A description of the transfer.\n * @param options - Request options\n * @returns The resulting routes that can be used to realize the described transfer of tokens.\n * @throws {LiFiError} Throws a LiFiError if request fails.\n */\nexport const getRoutes = async (\n client: SDKClient,\n params: RoutesRequest,\n options?: RequestOptions\n): Promise<RoutesResponse> => {\n if (!isRoutesRequest(params)) {\n throw new SDKError(new ValidationError('Invalid routes request.'))\n }\n // apply defaults\n params.options = {\n integrator: client.config.integrator,\n ...client.config.routeOptions,\n ...params.options,\n }\n\n return await request<RoutesResponse>(\n client.config,\n `${client.config.apiUrl}/advanced/routes`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(params),\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,MAAa,YAAY,OACvB,QACA,QACA,YAC4B;CAC5B,IAAI,CAAC,gBAAgB,OAAO,EAC1B,MAAM,IAAI,SAAS,IAAI,gBAAgB,0BAA0B,CAAC;CAGpE,OAAO,UAAU;EACf,YAAY,OAAO,OAAO;EAC1B,GAAG,OAAO,OAAO;EACjB,GAAG,OAAO;EACX;CAED,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,mBACxB;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,oBACjB;EACD,MAAM,KAAK,UAAU,OAAO;EAC5B,QAAQ,SAAS;EAClB,CACF"}
1
+ {"version":3,"file":"getRoutes.js","names":[],"sources":["../../../src/actions/getRoutes.ts"],"sourcesContent":["import type { RequestOptions, RoutesRequest, RoutesResponse } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { isRoutesRequest } from '../utils/isRoutesRequest.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get a set of routes for a request that describes a transfer of tokens.\n * @param client - The SDK client.\n * @param params - A description of the transfer.\n * @param options - Request options\n * @returns The resulting routes that can be used to realize the described transfer of tokens.\n * @throws {LiFiError} Throws a LiFiError if request fails.\n */\nexport const getRoutes = async (\n client: SDKClient,\n params: RoutesRequest,\n options?: RequestOptions\n): Promise<RoutesResponse> => {\n if (!isRoutesRequest(params)) {\n throw new SDKError(new ValidationError('Invalid routes request.'))\n }\n // apply defaults\n params.options = {\n integrator: client.config.integrator,\n ...client.config.routeOptions,\n ...params.options,\n }\n\n return await request<RoutesResponse>(\n client.config,\n `${client.config.apiUrl}/advanced/routes`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(params),\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,MAAa,YAAY,OACvB,QACA,QACA,YAC4B;CAC5B,IAAI,CAAC,gBAAgB,MAAM,GACzB,MAAM,IAAI,SAAS,IAAI,gBAAgB,yBAAyB,CAAC;CAGnE,OAAO,UAAU;EACf,YAAY,OAAO,OAAO;EAC1B,GAAG,OAAO,OAAO;EACjB,GAAG,OAAO;CACZ;CAEA,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,mBACxB;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,mBAClB;EACA,MAAM,KAAK,UAAU,MAAM;EAC3B,QAAQ,SAAS;CACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getStatus.js","names":[],"sources":["../../../src/actions/getStatus.ts"],"sourcesContent":["import type { RequestOptions, StatusResponse } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { GetStatusRequestExtended } from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Check the status of a transfer. For cross chain transfers, the \"bridge\" parameter is required.\n * @param client - The SDK client\n * @param params - Configuration of the requested status\n * @param options - Request options.\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Returns status response.\n */\nexport const getStatus = async (\n client: SDKClient,\n params: GetStatusRequestExtended,\n options?: RequestOptions\n): Promise<StatusResponse> => {\n if (\n !('taskId' in params && params.taskId) &&\n !('txHash' in params && params.txHash)\n ) {\n throw new SDKError(\n new ValidationError(\n 'Either \"taskId\" or \"txHash\" must be provided and non-empty.'\n )\n )\n }\n const queryParams = new URLSearchParams(\n params as unknown as Record<string, string>\n )\n return await request<StatusResponse>(\n client.config,\n `${client.config.apiUrl}/status?${queryParams}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,YAAY,OACvB,QACA,QACA,YAC4B;CAC5B,IACE,EAAE,YAAY,UAAU,OAAO,WAC/B,EAAE,YAAY,UAAU,OAAO,SAE/B,MAAM,IAAI,SACR,IAAI,gBACF,kEACD,CACF;CAEH,MAAM,cAAc,IAAI,gBACtB,OACD;CACD,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,UAAU,eAClC,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getStatus.js","names":[],"sources":["../../../src/actions/getStatus.ts"],"sourcesContent":["import type { RequestOptions, StatusResponse } from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { GetStatusRequestExtended } from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Check the status of a transfer. For cross chain transfers, the \"bridge\" parameter is required.\n * @param client - The SDK client\n * @param params - Configuration of the requested status\n * @param options - Request options.\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Returns status response.\n */\nexport const getStatus = async (\n client: SDKClient,\n params: GetStatusRequestExtended,\n options?: RequestOptions\n): Promise<StatusResponse> => {\n if (\n !('taskId' in params && params.taskId) &&\n !('txHash' in params && params.txHash)\n ) {\n throw new SDKError(\n new ValidationError(\n 'Either \"taskId\" or \"txHash\" must be provided and non-empty.'\n )\n )\n }\n const queryParams = new URLSearchParams(\n params as unknown as Record<string, string>\n )\n return await request<StatusResponse>(\n client.config,\n `${client.config.apiUrl}/status?${queryParams}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,YAAY,OACvB,QACA,QACA,YAC4B;CAC5B,IACE,EAAE,YAAY,UAAU,OAAO,WAC/B,EAAE,YAAY,UAAU,OAAO,SAE/B,MAAM,IAAI,SACR,IAAI,gBACF,iEACF,CACF;CAEF,MAAM,cAAc,IAAI,gBACtB,MACF;CACA,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,UAAU,eAClC,EACE,QAAQ,SAAS,OACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getStepTransaction.js","names":[],"sources":["../../../src/actions/getStepTransaction.ts"],"sourcesContent":["import type { LiFiStep, RequestOptions, SignedLiFiStep } from '@lifi/types'\nimport { ChainId } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { isStep } from '../utils/isStep.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get the transaction data for a single step of a route\n * @param client - The SDK client\n * @param step - The step object.\n * @param options - Request options\n * @returns The step populated with the transaction data.\n * @throws {LiFiError} Throws a LiFiError if request fails.\n */\nexport const getStepTransaction = async (\n client: SDKClient,\n step: LiFiStep | SignedLiFiStep,\n options?: RequestOptions\n): Promise<LiFiStep> => {\n if (!isStep(step)) {\n // While the validation fails for some users we should not enforce it\n console.warn('SDK Validation: Invalid Step', step)\n }\n\n const { config } = client\n\n let requestUrl = `${config.apiUrl}/advanced/stepTransaction`\n const jitoBundle = config.routeOptions?.jitoBundle\n const svmSponsor = config.routeOptions?.svmSponsor\n\n if (step.action.fromChainId === ChainId.SOL) {\n const queryParams = new URLSearchParams()\n if (jitoBundle) {\n queryParams.set('jitoBundle', jitoBundle.toString())\n }\n if (svmSponsor) {\n queryParams.set('svmSponsor', svmSponsor)\n }\n if (queryParams.size > 0) {\n requestUrl = `${requestUrl}?${queryParams}`\n }\n }\n\n return await request<LiFiStep>(config, requestUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(step),\n signal: options?.signal,\n })\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAa,qBAAqB,OAChC,QACA,MACA,YACsB;CACtB,IAAI,CAAC,OAAO,KAAK,EAEf,QAAQ,KAAK,gCAAgC,KAAK;CAGpD,MAAM,EAAE,WAAW;CAEnB,IAAI,aAAa,GAAG,OAAO,OAAO;CAClC,MAAM,aAAa,OAAO,cAAc;CACxC,MAAM,aAAa,OAAO,cAAc;CAExC,IAAI,KAAK,OAAO,gBAAgB,QAAQ,KAAK;EAC3C,MAAM,cAAc,IAAI,iBAAiB;EACzC,IAAI,YACF,YAAY,IAAI,cAAc,WAAW,UAAU,CAAC;EAEtD,IAAI,YACF,YAAY,IAAI,cAAc,WAAW;EAE3C,IAAI,YAAY,OAAO,GACrB,aAAa,GAAG,WAAW,GAAG;;CAIlC,OAAO,MAAM,QAAkB,QAAQ,YAAY;EACjD,QAAQ;EACR,SAAS,EACP,gBAAgB,oBACjB;EACD,MAAM,KAAK,UAAU,KAAK;EAC1B,QAAQ,SAAS;EAClB,CAAC"}
1
+ {"version":3,"file":"getStepTransaction.js","names":[],"sources":["../../../src/actions/getStepTransaction.ts"],"sourcesContent":["import type { LiFiStep, RequestOptions, SignedLiFiStep } from '@lifi/types'\nimport { ChainId } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { isStep } from '../utils/isStep.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get the transaction data for a single step of a route\n * @param client - The SDK client\n * @param step - The step object.\n * @param options - Request options\n * @returns The step populated with the transaction data.\n * @throws {LiFiError} Throws a LiFiError if request fails.\n */\nexport const getStepTransaction = async (\n client: SDKClient,\n step: LiFiStep | SignedLiFiStep,\n options?: RequestOptions\n): Promise<LiFiStep> => {\n if (!isStep(step)) {\n // While the validation fails for some users we should not enforce it\n console.warn('SDK Validation: Invalid Step', step)\n }\n\n const { config } = client\n\n let requestUrl = `${config.apiUrl}/advanced/stepTransaction`\n const jitoBundle = config.routeOptions?.jitoBundle\n const svmSponsor = config.routeOptions?.svmSponsor\n\n if (step.action.fromChainId === ChainId.SOL) {\n const queryParams = new URLSearchParams()\n if (jitoBundle) {\n queryParams.set('jitoBundle', jitoBundle.toString())\n }\n if (svmSponsor) {\n queryParams.set('svmSponsor', svmSponsor)\n }\n if (queryParams.size > 0) {\n requestUrl = `${requestUrl}?${queryParams}`\n }\n }\n\n return await request<LiFiStep>(config, requestUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(step),\n signal: options?.signal,\n })\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAa,qBAAqB,OAChC,QACA,MACA,YACsB;CACtB,IAAI,CAAC,OAAO,IAAI,GAEd,QAAQ,KAAK,gCAAgC,IAAI;CAGnD,MAAM,EAAE,WAAW;CAEnB,IAAI,aAAa,GAAG,OAAO,OAAO;CAClC,MAAM,aAAa,OAAO,cAAc;CACxC,MAAM,aAAa,OAAO,cAAc;CAExC,IAAI,KAAK,OAAO,gBAAgB,QAAQ,KAAK;EAC3C,MAAM,cAAc,IAAI,gBAAgB;EACxC,IAAI,YACF,YAAY,IAAI,cAAc,WAAW,SAAS,CAAC;EAErD,IAAI,YACF,YAAY,IAAI,cAAc,UAAU;EAE1C,IAAI,YAAY,OAAO,GACrB,aAAa,GAAG,WAAW,GAAG;CAElC;CAEA,OAAO,MAAM,QAAkB,QAAQ,YAAY;EACjD,QAAQ;EACR,SAAS,EACP,gBAAgB,mBAClB;EACA,MAAM,KAAK,UAAU,IAAI;EACzB,QAAQ,SAAS;CACnB,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"getToken.js","names":[],"sources":["../../../src/actions/getToken.ts"],"sourcesContent":["import type {\n ChainId,\n ChainKey,\n RequestOptions,\n TokenExtended,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Fetch information about a Token\n * @param client - The SDK client\n * @param chain - Id or key of the chain that contains the token\n * @param token - Address or symbol of the token on the requested chain\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Token information\n */\nexport const getToken = async (\n client: SDKClient,\n chain: ChainKey | ChainId,\n token: string,\n options?: RequestOptions\n): Promise<TokenExtended> => {\n if (!chain) {\n throw new SDKError(\n new ValidationError('Required parameter \"chain\" is missing.')\n )\n }\n if (!token) {\n throw new SDKError(\n new ValidationError('Required parameter \"token\" is missing.')\n )\n }\n return await request<TokenExtended>(\n client.config,\n `${client.config.apiUrl}/token?${new URLSearchParams({\n chain,\n token,\n } as Record<string, string>)}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAoBA,MAAa,WAAW,OACtB,QACA,OACA,OACA,YAC2B;CAC3B,IAAI,CAAC,OACH,MAAM,IAAI,SACR,IAAI,gBAAgB,2CAAyC,CAC9D;CAEH,IAAI,CAAC,OACH,MAAM,IAAI,SACR,IAAI,gBAAgB,2CAAyC,CAC9D;CAEH,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,SAAS,IAAI,gBAAgB;EACnD;EACA;EACD,CAA2B,IAC5B,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getToken.js","names":[],"sources":["../../../src/actions/getToken.ts"],"sourcesContent":["import type {\n ChainId,\n ChainKey,\n RequestOptions,\n TokenExtended,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport { SDKError } from '../errors/SDKError.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Fetch information about a Token\n * @param client - The SDK client\n * @param chain - Id or key of the chain that contains the token\n * @param token - Address or symbol of the token on the requested chain\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Token information\n */\nexport const getToken = async (\n client: SDKClient,\n chain: ChainKey | ChainId,\n token: string,\n options?: RequestOptions\n): Promise<TokenExtended> => {\n if (!chain) {\n throw new SDKError(\n new ValidationError('Required parameter \"chain\" is missing.')\n )\n }\n if (!token) {\n throw new SDKError(\n new ValidationError('Required parameter \"token\" is missing.')\n )\n }\n return await request<TokenExtended>(\n client.config,\n `${client.config.apiUrl}/token?${new URLSearchParams({\n chain,\n token,\n } as Record<string, string>)}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAoBA,MAAa,WAAW,OACtB,QACA,OACA,OACA,YAC2B;CAC3B,IAAI,CAAC,OACH,MAAM,IAAI,SACR,IAAI,gBAAgB,0CAAwC,CAC9D;CAEF,IAAI,CAAC,OACH,MAAM,IAAI,SACR,IAAI,gBAAgB,0CAAwC,CAC9D;CAEF,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,SAAS,IAAI,gBAAgB;EACnD;EACA;CACF,CAA2B,KAC3B,EACE,QAAQ,SAAS,OACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTokenBalance.js","names":[],"sources":["../../../src/actions/getTokenBalance.ts"],"sourcesContent":["import type { Token, TokenAmount } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { getTokenBalances } from './getTokenBalances.js'\n\n/**\n * Returns the balances of a specific token a wallet holds across all aggregated chains.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param token - A Token object.\n * @returns An object containing the token and the amounts on different chains.\n * @throws {ValidationError} Throws a ValidationError if validation fails.\n * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.\n */\nexport const getTokenBalance = async (\n client: SDKClient,\n walletAddress: string,\n token: Token\n): Promise<TokenAmount | null> => {\n const tokenAmounts = await getTokenBalances(client, walletAddress, [token])\n return tokenAmounts.length ? tokenAmounts[0] : null\n}\n"],"mappings":";;;;;;;;;;;AAaA,MAAa,kBAAkB,OAC7B,QACA,eACA,UACgC;CAChC,MAAM,eAAe,MAAM,iBAAiB,QAAQ,eAAe,CAAC,MAAM,CAAC;CAC3E,OAAO,aAAa,SAAS,aAAa,KAAK"}
1
+ {"version":3,"file":"getTokenBalance.js","names":[],"sources":["../../../src/actions/getTokenBalance.ts"],"sourcesContent":["import type { Token, TokenAmount } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { getTokenBalances } from './getTokenBalances.js'\n\n/**\n * Returns the balances of a specific token a wallet holds across all aggregated chains.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param token - A Token object.\n * @returns An object containing the token and the amounts on different chains.\n * @throws {ValidationError} Throws a ValidationError if validation fails.\n * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.\n */\nexport const getTokenBalance = async (\n client: SDKClient,\n walletAddress: string,\n token: Token\n): Promise<TokenAmount | null> => {\n const tokenAmounts = await getTokenBalances(client, walletAddress, [token])\n return tokenAmounts.length ? tokenAmounts[0] : null\n}\n"],"mappings":";;;;;;;;;;;AAaA,MAAa,kBAAkB,OAC7B,QACA,eACA,UACgC;CAChC,MAAM,eAAe,MAAM,iBAAiB,QAAQ,eAAe,CAAC,KAAK,CAAC;CAC1E,OAAO,aAAa,SAAS,aAAa,KAAK;AACjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTokenBalances.js","names":[],"sources":["../../../src/actions/getTokenBalances.ts"],"sourcesContent":["import type {\n Token,\n TokenAmount,\n TokenAmountExtended,\n TokenExtended,\n} from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { getTokenBalancesByChain } from './getTokenBalancesByChain.js'\n\n/**\n * Returns the balances for a list tokens a wallet holds across all aggregated chains.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param tokens - A list of Token (or TokenExtended) objects.\n * @returns A list of objects containing the tokens and the amounts on different chains.\n * @throws {ValidationError} Throws a ValidationError if validation fails.\n * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.\n */\nexport async function getTokenBalances(\n client: SDKClient,\n walletAddress: string,\n tokens: Token[]\n): Promise<TokenAmount[]>\nexport async function getTokenBalances(\n client: SDKClient,\n walletAddress: string,\n tokens: TokenExtended[]\n): Promise<TokenAmountExtended[]> {\n // split by chain\n const tokensByChain = tokens.reduce(\n (tokens, token) => {\n if (!tokens[token.chainId]) {\n tokens[token.chainId] = []\n }\n tokens[token.chainId].push(token)\n return tokens\n },\n {} as { [chainId: number]: Token[] | TokenExtended[] }\n )\n\n const tokenAmountsByChain = await getTokenBalancesByChain(\n client,\n walletAddress,\n tokensByChain\n )\n return Object.values(tokenAmountsByChain).flat()\n}\n"],"mappings":";;AAuBA,eAAsB,iBACpB,QACA,eACA,QACgC;CAahC,MAAM,sBAAsB,MAAM,wBAChC,QACA,eAboB,OAAO,QAC1B,QAAQ,UAAU;EACjB,IAAI,CAAC,OAAO,MAAM,UAChB,OAAO,MAAM,WAAW,EAAE;EAE5B,OAAO,MAAM,SAAS,KAAK,MAAM;EACjC,OAAO;IAET,EAAE,CAMW,CACd;CACD,OAAO,OAAO,OAAO,oBAAoB,CAAC,MAAM"}
1
+ {"version":3,"file":"getTokenBalances.js","names":[],"sources":["../../../src/actions/getTokenBalances.ts"],"sourcesContent":["import type {\n Token,\n TokenAmount,\n TokenAmountExtended,\n TokenExtended,\n} from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { getTokenBalancesByChain } from './getTokenBalancesByChain.js'\n\n/**\n * Returns the balances for a list tokens a wallet holds across all aggregated chains.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param tokens - A list of Token (or TokenExtended) objects.\n * @returns A list of objects containing the tokens and the amounts on different chains.\n * @throws {ValidationError} Throws a ValidationError if validation fails.\n * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.\n */\nexport async function getTokenBalances(\n client: SDKClient,\n walletAddress: string,\n tokens: Token[]\n): Promise<TokenAmount[]>\nexport async function getTokenBalances(\n client: SDKClient,\n walletAddress: string,\n tokens: TokenExtended[]\n): Promise<TokenAmountExtended[]> {\n // split by chain\n const tokensByChain = tokens.reduce(\n (tokens, token) => {\n if (!tokens[token.chainId]) {\n tokens[token.chainId] = []\n }\n tokens[token.chainId].push(token)\n return tokens\n },\n {} as { [chainId: number]: Token[] | TokenExtended[] }\n )\n\n const tokenAmountsByChain = await getTokenBalancesByChain(\n client,\n walletAddress,\n tokensByChain\n )\n return Object.values(tokenAmountsByChain).flat()\n}\n"],"mappings":";;AAuBA,eAAsB,iBACpB,QACA,eACA,QACgC;CAahC,MAAM,sBAAsB,MAAM,wBAChC,QACA,eAboB,OAAO,QAC1B,QAAQ,UAAU;EACjB,IAAI,CAAC,OAAO,MAAM,UAChB,OAAO,MAAM,WAAW,CAAC;EAE3B,OAAO,MAAM,SAAS,KAAK,KAAK;EAChC,OAAO;CACT,GACA,CAAC,CAMW,CACd;CACA,OAAO,OAAO,OAAO,mBAAmB,EAAE,KAAK;AACjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTokenBalancesByChain.js","names":[],"sources":["../../../src/actions/getTokenBalancesByChain.ts"],"sourcesContent":["import type {\n Token,\n TokenAmount,\n TokenAmountExtended,\n TokenExtended,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport type { SDKClient } from '../types/core.js'\nimport { isToken } from '../utils/isToken.js'\n\n/**\n * This method queries the balances of tokens for a specific list of chains for a given wallet.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param tokensByChain - A list of token objects organized by chain ids.\n * @returns A list of objects containing the tokens and the amounts on different chains organized by the chosen chains.\n * @throws {ValidationError} Throws a ValidationError if validation fails.\n * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.\n */\nexport async function getTokenBalancesByChain(\n client: SDKClient,\n walletAddress: string,\n tokensByChain: { [chainId: number]: Token[] }\n): Promise<{ [chainId: number]: TokenAmount[] }>\nexport async function getTokenBalancesByChain(\n client: SDKClient,\n walletAddress: string,\n tokensByChain: { [chainId: number]: TokenExtended[] }\n): Promise<{ [chainId: number]: TokenAmountExtended[] }> {\n if (!walletAddress) {\n throw new ValidationError('Missing walletAddress.')\n }\n\n const tokenList = Object.values(tokensByChain).flat()\n const invalidTokens = tokenList.filter((token) => !isToken(token))\n if (invalidTokens.length) {\n throw new ValidationError('Invalid tokens passed.')\n }\n\n const provider = client.providers.find((provider) =>\n provider.isAddress(walletAddress)\n )\n if (!provider) {\n throw new Error(`SDK Token Provider for ${walletAddress} is not found.`)\n }\n\n const tokenAmountsByChain: {\n [chainId: number]: TokenAmount[] | TokenAmountExtended[]\n } = {}\n const tokenAmountsSettled = await Promise.allSettled(\n Object.keys(tokensByChain).map(async (chainIdStr) => {\n const chainId = Number.parseInt(chainIdStr, 10)\n const chain = await client.getChainById(chainId)\n if (provider.type === chain.chainType) {\n const tokenAmounts = await provider.getBalance(\n client,\n walletAddress,\n tokensByChain[chainId]\n )\n tokenAmountsByChain[chainId] = tokenAmounts\n } else {\n // if the provider is not the same as the chain type,\n // return the tokens as is\n tokenAmountsByChain[chainId] = tokensByChain[chainId]\n }\n })\n )\n if (client.config.debug) {\n for (const result of tokenAmountsSettled) {\n if (result.status === 'rejected') {\n console.warn(\"Couldn't fetch token balance.\", result.reason)\n }\n }\n }\n return tokenAmountsByChain\n}\n"],"mappings":";;;AAwBA,eAAsB,wBACpB,QACA,eACA,eACuD;CACvD,IAAI,CAAC,eACH,MAAM,IAAI,gBAAgB,yBAAyB;CAKrD,IAFkB,OAAO,OAAO,cAAc,CAAC,MAChB,CAAC,QAAQ,UAAU,CAAC,QAAQ,MAAM,CAChD,CAAC,QAChB,MAAM,IAAI,gBAAgB,yBAAyB;CAGrD,MAAM,WAAW,OAAO,UAAU,MAAM,aACtC,SAAS,UAAU,cAAc,CAClC;CACD,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,0BAA0B,cAAc,gBAAgB;CAG1E,MAAM,sBAEF,EAAE;CACN,MAAM,sBAAsB,MAAM,QAAQ,WACxC,OAAO,KAAK,cAAc,CAAC,IAAI,OAAO,eAAe;EACnD,MAAM,UAAU,OAAO,SAAS,YAAY,GAAG;EAC/C,MAAM,QAAQ,MAAM,OAAO,aAAa,QAAQ;EAChD,IAAI,SAAS,SAAS,MAAM,WAM1B,oBAAoB,WAAW,MALJ,SAAS,WAClC,QACA,eACA,cAAc,SACf;OAKD,oBAAoB,WAAW,cAAc;GAE/C,CACH;CACD,IAAI,OAAO,OAAO;OACX,MAAM,UAAU,qBACnB,IAAI,OAAO,WAAW,YACpB,QAAQ,KAAK,iCAAiC,OAAO,OAAO;;CAIlE,OAAO"}
1
+ {"version":3,"file":"getTokenBalancesByChain.js","names":[],"sources":["../../../src/actions/getTokenBalancesByChain.ts"],"sourcesContent":["import type {\n Token,\n TokenAmount,\n TokenAmountExtended,\n TokenExtended,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport type { SDKClient } from '../types/core.js'\nimport { isToken } from '../utils/isToken.js'\n\n/**\n * This method queries the balances of tokens for a specific list of chains for a given wallet.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param tokensByChain - A list of token objects organized by chain ids.\n * @returns A list of objects containing the tokens and the amounts on different chains organized by the chosen chains.\n * @throws {ValidationError} Throws a ValidationError if validation fails.\n * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.\n */\nexport async function getTokenBalancesByChain(\n client: SDKClient,\n walletAddress: string,\n tokensByChain: { [chainId: number]: Token[] }\n): Promise<{ [chainId: number]: TokenAmount[] }>\nexport async function getTokenBalancesByChain(\n client: SDKClient,\n walletAddress: string,\n tokensByChain: { [chainId: number]: TokenExtended[] }\n): Promise<{ [chainId: number]: TokenAmountExtended[] }> {\n if (!walletAddress) {\n throw new ValidationError('Missing walletAddress.')\n }\n\n const tokenList = Object.values(tokensByChain).flat()\n const invalidTokens = tokenList.filter((token) => !isToken(token))\n if (invalidTokens.length) {\n throw new ValidationError('Invalid tokens passed.')\n }\n\n const provider = client.providers.find((provider) =>\n provider.isAddress(walletAddress)\n )\n if (!provider) {\n throw new Error(`SDK Token Provider for ${walletAddress} is not found.`)\n }\n\n const tokenAmountsByChain: {\n [chainId: number]: TokenAmount[] | TokenAmountExtended[]\n } = {}\n const tokenAmountsSettled = await Promise.allSettled(\n Object.keys(tokensByChain).map(async (chainIdStr) => {\n const chainId = Number.parseInt(chainIdStr, 10)\n const chain = await client.getChainById(chainId)\n if (provider.type === chain.chainType) {\n const tokenAmounts = await provider.getBalance(\n client,\n walletAddress,\n tokensByChain[chainId]\n )\n tokenAmountsByChain[chainId] = tokenAmounts\n } else {\n // if the provider is not the same as the chain type,\n // return the tokens as is\n tokenAmountsByChain[chainId] = tokensByChain[chainId]\n }\n })\n )\n if (client.config.debug) {\n for (const result of tokenAmountsSettled) {\n if (result.status === 'rejected') {\n console.warn(\"Couldn't fetch token balance.\", result.reason)\n }\n }\n }\n return tokenAmountsByChain\n}\n"],"mappings":";;;AAwBA,eAAsB,wBACpB,QACA,eACA,eACuD;CACvD,IAAI,CAAC,eACH,MAAM,IAAI,gBAAgB,wBAAwB;CAKpD,IAFkB,OAAO,OAAO,aAAa,EAAE,KACjB,EAAE,QAAQ,UAAU,CAAC,QAAQ,KAAK,CAChD,EAAE,QAChB,MAAM,IAAI,gBAAgB,wBAAwB;CAGpD,MAAM,WAAW,OAAO,UAAU,MAAM,aACtC,SAAS,UAAU,aAAa,CAClC;CACA,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,0BAA0B,cAAc,eAAe;CAGzE,MAAM,sBAEF,CAAC;CACL,MAAM,sBAAsB,MAAM,QAAQ,WACxC,OAAO,KAAK,aAAa,EAAE,IAAI,OAAO,eAAe;EACnD,MAAM,UAAU,OAAO,SAAS,YAAY,EAAE;EAC9C,MAAM,QAAQ,MAAM,OAAO,aAAa,OAAO;EAC/C,IAAI,SAAS,SAAS,MAAM,WAM1B,oBAAoB,WAAW,MALJ,SAAS,WAClC,QACA,eACA,cAAc,QAChB;OAKA,oBAAoB,WAAW,cAAc;CAEjD,CAAC,CACH;CACA,IAAI,OAAO,OAAO;OACX,MAAM,UAAU,qBACnB,IAAI,OAAO,WAAW,YACpB,QAAQ,KAAK,iCAAiC,OAAO,MAAM;CAAA;CAIjE,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTokens.js","names":[],"sources":["../../../src/actions/getTokens.ts"],"sourcesContent":["import type {\n RequestOptions,\n TokensExtendedResponse,\n TokensRequest,\n TokensResponse,\n} from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\nimport { withDedupe } from '../utils/withDedupe.js'\n\n/**\n * Get all known tokens.\n * @param client - The SDK client\n * @param params - The configuration of the requested tokens\n * @param options - Request options\n * @returns The tokens that are available on the requested chains\n */\nexport async function getTokens(\n client: SDKClient,\n params?: TokensRequest & { extended?: false | undefined },\n options?: RequestOptions\n): Promise<TokensResponse>\nexport async function getTokens(\n client: SDKClient,\n params: TokensRequest & { extended: true },\n options?: RequestOptions\n): Promise<TokensExtendedResponse>\nexport async function getTokens(\n client: SDKClient,\n params?: TokensRequest,\n options?: RequestOptions\n): Promise<TokensResponse> {\n if (params) {\n for (const key of Object.keys(params)) {\n const value = params[key as keyof TokensRequest]\n if (value === undefined || value === null) {\n delete params[key as keyof TokensRequest]\n }\n }\n }\n const urlSearchParams = new URLSearchParams(\n params as Record<string, string>\n ).toString()\n const _isExtended = params?.extended === true\n const response = await withDedupe(\n () =>\n request<\n typeof _isExtended extends true\n ? TokensExtendedResponse\n : TokensResponse\n >(client.config, `${client.config.apiUrl}/tokens?${urlSearchParams}`, {\n signal: options?.signal,\n }),\n { id: `${getTokens.name}.${urlSearchParams}` }\n )\n return response\n}\n"],"mappings":";;;AA2BA,eAAsB,UACpB,QACA,QACA,SACyB;CACzB,IAAI,QACF,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,OAAO;;CAIpB,MAAM,kBAAkB,IAAI,gBAC1B,OACD,CAAC,UAAU;CACQ,QAAQ;CAY5B,OAAO,MAXgB,iBAEnB,QAIE,OAAO,QAAQ,GAAG,OAAO,OAAO,OAAO,UAAU,mBAAmB,EACpE,QAAQ,SAAS,QAClB,CAAC,EACJ,EAAE,IAAI,GAAG,UAAU,KAAK,GAAG,mBAAmB,CAC/C"}
1
+ {"version":3,"file":"getTokens.js","names":[],"sources":["../../../src/actions/getTokens.ts"],"sourcesContent":["import type {\n RequestOptions,\n TokensExtendedResponse,\n TokensRequest,\n TokensResponse,\n} from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\nimport { withDedupe } from '../utils/withDedupe.js'\n\n/**\n * Get all known tokens.\n * @param client - The SDK client\n * @param params - The configuration of the requested tokens\n * @param options - Request options\n * @returns The tokens that are available on the requested chains\n */\nexport async function getTokens(\n client: SDKClient,\n params?: TokensRequest & { extended?: false | undefined },\n options?: RequestOptions\n): Promise<TokensResponse>\nexport async function getTokens(\n client: SDKClient,\n params: TokensRequest & { extended: true },\n options?: RequestOptions\n): Promise<TokensExtendedResponse>\nexport async function getTokens(\n client: SDKClient,\n params?: TokensRequest,\n options?: RequestOptions\n): Promise<TokensResponse> {\n if (params) {\n for (const key of Object.keys(params)) {\n const value = params[key as keyof TokensRequest]\n if (value === undefined || value === null) {\n delete params[key as keyof TokensRequest]\n }\n }\n }\n const urlSearchParams = new URLSearchParams(\n params as Record<string, string>\n ).toString()\n const _isExtended = params?.extended === true\n const response = await withDedupe(\n () =>\n request<\n typeof _isExtended extends true\n ? TokensExtendedResponse\n : TokensResponse\n >(client.config, `${client.config.apiUrl}/tokens?${urlSearchParams}`, {\n signal: options?.signal,\n }),\n { id: `${getTokens.name}.${urlSearchParams}` }\n )\n return response\n}\n"],"mappings":";;;AA2BA,eAAsB,UACpB,QACA,QACA,SACyB;CACzB,IAAI,QACF,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG;EACrC,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,OAAO;CAElB;CAEF,MAAM,kBAAkB,IAAI,gBAC1B,MACF,EAAE,SAAS;CACS,QAAQ;CAY5B,OAAO,MAXgB,iBAEnB,QAIE,OAAO,QAAQ,GAAG,OAAO,OAAO,OAAO,UAAU,mBAAmB,EACpE,QAAQ,SAAS,OACnB,CAAC,GACH,EAAE,IAAI,GAAG,UAAU,KAAK,GAAG,kBAAkB,CAC/C;AAEF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTools.js","names":[],"sources":["../../../src/actions/getTools.ts"],"sourcesContent":["import type { RequestOptions, ToolsRequest, ToolsResponse } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get the available tools to bridge and swap tokens.\n * @param client - The SDK client\n * @param params - The configuration of the requested tools\n * @param options - Request options\n * @returns The tools that are available on the requested chains\n */\nexport const getTools = async (\n client: SDKClient,\n params?: ToolsRequest,\n options?: RequestOptions\n): Promise<ToolsResponse> => {\n if (params) {\n for (const key of Object.keys(params)) {\n const value = params[key as keyof ToolsRequest]\n if (value === undefined || value === null) {\n delete params[key as keyof ToolsRequest]\n }\n }\n }\n return await request<ToolsResponse>(\n client.config,\n `${client.config.apiUrl}/tools?${new URLSearchParams(\n params as Record<string, string>\n )}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;AAWA,MAAa,WAAW,OACtB,QACA,QACA,YAC2B;CAC3B,IAAI,QACF,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,OAAO;;CAIpB,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,SAAS,IAAI,gBACnC,OACD,IACD,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getTools.js","names":[],"sources":["../../../src/actions/getTools.ts"],"sourcesContent":["import type { RequestOptions, ToolsRequest, ToolsResponse } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get the available tools to bridge and swap tokens.\n * @param client - The SDK client\n * @param params - The configuration of the requested tools\n * @param options - Request options\n * @returns The tools that are available on the requested chains\n */\nexport const getTools = async (\n client: SDKClient,\n params?: ToolsRequest,\n options?: RequestOptions\n): Promise<ToolsResponse> => {\n if (params) {\n for (const key of Object.keys(params)) {\n const value = params[key as keyof ToolsRequest]\n if (value === undefined || value === null) {\n delete params[key as keyof ToolsRequest]\n }\n }\n }\n return await request<ToolsResponse>(\n client.config,\n `${client.config.apiUrl}/tools?${new URLSearchParams(\n params as Record<string, string>\n )}`,\n {\n signal: options?.signal,\n }\n )\n}\n"],"mappings":";;;;;;;;;AAWA,MAAa,WAAW,OACtB,QACA,QACA,YAC2B;CAC3B,IAAI,QACF,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG;EACrC,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,OAAO;CAElB;CAEF,OAAO,MAAM,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,SAAS,IAAI,gBACnC,MACF,KACA,EACE,QAAQ,SAAS,OACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionHistory.js","names":[],"sources":["../../../src/actions/getTransactionHistory.ts"],"sourcesContent":["import type {\n RequestOptions,\n TransactionAnalyticsRequest,\n TransactionAnalyticsResponse,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get the transaction history for a wallet\n * @param client - The SDK client\n * @param params - The parameters for the transaction history request\n * @param params.wallet - The wallet address\n * @param params.status - The status of the transactions\n * @param params.fromTimestamp - The start timestamp for the transactions\n * @param params.toTimestamp - The end timestamp for the transactions\n * @param options - Request options\n * @throws {ValidationError} - Throws a ValidationError if parameters are invalid\n * @throws {LiFiError} - Throws a LiFiError if request fails.\n * @returns The transaction history response\n */\nexport const getTransactionHistory = async (\n client: SDKClient,\n { wallet, status, fromTimestamp, toTimestamp }: TransactionAnalyticsRequest,\n options?: RequestOptions\n): Promise<TransactionAnalyticsResponse> => {\n if (!wallet) {\n throw new ValidationError('Required parameter \"wallet\" is missing.')\n }\n\n const url = new URL(`${client.config.apiUrl}/analytics/transfers`)\n\n url.searchParams.append('integrator', client.config.integrator)\n url.searchParams.append('wallet', wallet)\n\n if (status) {\n url.searchParams.append('status', status)\n }\n\n if (fromTimestamp) {\n url.searchParams.append('fromTimestamp', fromTimestamp.toString())\n }\n\n if (toTimestamp) {\n url.searchParams.append('toTimestamp', toTimestamp.toString())\n }\n\n return await request<TransactionAnalyticsResponse>(\n client.config,\n url,\n options\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,MAAa,wBAAwB,OACnC,QACA,EAAE,QAAQ,QAAQ,eAAe,eACjC,YAC0C;CAC1C,IAAI,CAAC,QACH,MAAM,IAAI,gBAAgB,4CAA0C;CAGtE,MAAM,MAAM,IAAI,IAAI,GAAG,OAAO,OAAO,OAAO,sBAAsB;CAElE,IAAI,aAAa,OAAO,cAAc,OAAO,OAAO,WAAW;CAC/D,IAAI,aAAa,OAAO,UAAU,OAAO;CAEzC,IAAI,QACF,IAAI,aAAa,OAAO,UAAU,OAAO;CAG3C,IAAI,eACF,IAAI,aAAa,OAAO,iBAAiB,cAAc,UAAU,CAAC;CAGpE,IAAI,aACF,IAAI,aAAa,OAAO,eAAe,YAAY,UAAU,CAAC;CAGhE,OAAO,MAAM,QACX,OAAO,QACP,KACA,QACD"}
1
+ {"version":3,"file":"getTransactionHistory.js","names":[],"sources":["../../../src/actions/getTransactionHistory.ts"],"sourcesContent":["import type {\n RequestOptions,\n TransactionAnalyticsRequest,\n TransactionAnalyticsResponse,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Get the transaction history for a wallet\n * @param client - The SDK client\n * @param params - The parameters for the transaction history request\n * @param params.wallet - The wallet address\n * @param params.status - The status of the transactions\n * @param params.fromTimestamp - The start timestamp for the transactions\n * @param params.toTimestamp - The end timestamp for the transactions\n * @param options - Request options\n * @throws {ValidationError} - Throws a ValidationError if parameters are invalid\n * @throws {LiFiError} - Throws a LiFiError if request fails.\n * @returns The transaction history response\n */\nexport const getTransactionHistory = async (\n client: SDKClient,\n { wallet, status, fromTimestamp, toTimestamp }: TransactionAnalyticsRequest,\n options?: RequestOptions\n): Promise<TransactionAnalyticsResponse> => {\n if (!wallet) {\n throw new ValidationError('Required parameter \"wallet\" is missing.')\n }\n\n const url = new URL(`${client.config.apiUrl}/analytics/transfers`)\n\n url.searchParams.append('integrator', client.config.integrator)\n url.searchParams.append('wallet', wallet)\n\n if (status) {\n url.searchParams.append('status', status)\n }\n\n if (fromTimestamp) {\n url.searchParams.append('fromTimestamp', fromTimestamp.toString())\n }\n\n if (toTimestamp) {\n url.searchParams.append('toTimestamp', toTimestamp.toString())\n }\n\n return await request<TransactionAnalyticsResponse>(\n client.config,\n url,\n options\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,MAAa,wBAAwB,OACnC,QACA,EAAE,QAAQ,QAAQ,eAAe,eACjC,YAC0C;CAC1C,IAAI,CAAC,QACH,MAAM,IAAI,gBAAgB,2CAAyC;CAGrE,MAAM,MAAM,IAAI,IAAI,GAAG,OAAO,OAAO,OAAO,qBAAqB;CAEjE,IAAI,aAAa,OAAO,cAAc,OAAO,OAAO,UAAU;CAC9D,IAAI,aAAa,OAAO,UAAU,MAAM;CAExC,IAAI,QACF,IAAI,aAAa,OAAO,UAAU,MAAM;CAG1C,IAAI,eACF,IAAI,aAAa,OAAO,iBAAiB,cAAc,SAAS,CAAC;CAGnE,IAAI,aACF,IAAI,aAAa,OAAO,eAAe,YAAY,SAAS,CAAC;CAG/D,OAAO,MAAM,QACX,OAAO,QACP,KACA,OACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getWalletBalances.js","names":[],"sources":["../../../src/actions/getWalletBalances.ts"],"sourcesContent":["import type {\n GetWalletBalanceExtendedResponse,\n RequestOptions,\n WalletTokenExtended,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Returns the balances of tokens a wallet holds across EVM chains.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param options - Optional request options.\n * @returns An object containing the tokens and the amounts organized by chain ids.\n * @throws {ValidationError} Throws a ValidationError if parameters are invalid.\n */\nexport const getWalletBalances = async (\n client: SDKClient,\n walletAddress: string,\n options?: RequestOptions\n): Promise<Record<number, WalletTokenExtended[]>> => {\n if (!walletAddress) {\n throw new ValidationError('Missing walletAddress.')\n }\n\n const response = await request<GetWalletBalanceExtendedResponse>(\n client.config,\n `${client.config.apiUrl}/wallets/${walletAddress}/balances?extended=true`,\n {\n signal: options?.signal,\n }\n )\n\n return (response?.balances || {}) as Record<number, WalletTokenExtended[]>\n}\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,oBAAoB,OAC/B,QACA,eACA,YACmD;CACnD,IAAI,CAAC,eACH,MAAM,IAAI,gBAAgB,yBAAyB;CAWrD,QAAQ,MARe,QACrB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,WAAW,cAAc,0BACjD,EACE,QAAQ,SAAS,QAClB,CACF,GAEiB,YAAY,EAAE"}
1
+ {"version":3,"file":"getWalletBalances.js","names":[],"sources":["../../../src/actions/getWalletBalances.ts"],"sourcesContent":["import type {\n GetWalletBalanceExtendedResponse,\n RequestOptions,\n WalletTokenExtended,\n} from '@lifi/types'\nimport { ValidationError } from '../errors/errors.js'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\n/**\n * Returns the balances of tokens a wallet holds across EVM chains.\n * @param client - The SDK client.\n * @param walletAddress - A wallet address.\n * @param options - Optional request options.\n * @returns An object containing the tokens and the amounts organized by chain ids.\n * @throws {ValidationError} Throws a ValidationError if parameters are invalid.\n */\nexport const getWalletBalances = async (\n client: SDKClient,\n walletAddress: string,\n options?: RequestOptions\n): Promise<Record<number, WalletTokenExtended[]>> => {\n if (!walletAddress) {\n throw new ValidationError('Missing walletAddress.')\n }\n\n const response = await request<GetWalletBalanceExtendedResponse>(\n client.config,\n `${client.config.apiUrl}/wallets/${walletAddress}/balances?extended=true`,\n {\n signal: options?.signal,\n }\n )\n\n return (response?.balances || {}) as Record<number, WalletTokenExtended[]>\n}\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,oBAAoB,OAC/B,QACA,eACA,YACmD;CACnD,IAAI,CAAC,eACH,MAAM,IAAI,gBAAgB,wBAAwB;CAWpD,QAAQ,MARe,QACrB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,WAAW,cAAc,0BACjD,EACE,QAAQ,SAAS,OACnB,CACF,IAEkB,YAAY,CAAC;AACjC"}