@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
package/README.md CHANGED
@@ -13,18 +13,23 @@
13
13
 
14
14
  [**LI.FI SDK**](https://docs.li.fi/sdk/overview) features include:
15
15
 
16
+ - **Modular architecture** - Install only the provider packages you need for your supported blockchain ecosystems (EVM, Solana, Bitcoin, Sui, Tron)
16
17
  - All ecosystems, chains, bridges, exchanges, and solvers that [LI.FI](https://docs.li.fi/introduction/chains) supports
17
18
  - Complete functionality covering full-cycle from obtaining routes/quotes to executing transactions
18
19
  - Easy tracking of the route and quote execution through the robust event and hooks handling
19
20
  - Highly customizable settings to tailor the SDK to your specific needs including configuration of RPCs and options to allow or deny certain chains, tokens, bridges, exchanges, solvers
20
21
  - Supports widely adopted industry standards, including [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792), [ERC-2612](https://eips.ethereum.org/EIPS/eip-2612), [EIP-712](https://eips.ethereum.org/EIPS/eip-712), and [Permit2](https://github.com/Uniswap/permit2)
21
- - SDK ecosystem providers are based on industry-standard libraries ([Viem](https://viem.sh/), [Wallet Standard](https://github.com/wallet-standard/wallet-standard), [Bigmi](https://github.com/lifinance/bigmi))
22
+ - SDK ecosystem providers are based on industry-standard libraries ([Viem](https://viem.sh/) for EVM, [Solana Kit](https://github.com/solana-labs/solana-web3.js) for Solana, [Bigmi](https://github.com/lifinance/bigmi) for Bitcoin, [Mysten Sui SDK](https://github.com/MystenLabs/sui/tree/main/sdk) for Sui, [TronWeb](https://tronweb.network/) for Tron)
22
23
  - Support for arbitrary contract calls on the destination chain
23
24
  - Designed for optimal performance with tree-shaking and dead-code elimination, ensuring minimal bundle sizes and faster page load times in front-end environments
24
25
  - Compatibility tested with Node.js and popular front-end tools like Vite
25
26
 
26
27
  ## Installation
27
28
 
29
+ The LI.FI SDK follows a modular architecture. Install the core SDK package and the provider packages for the blockchain ecosystems you need:
30
+
31
+ ### Core SDK
32
+
28
33
  ```bash
29
34
  pnpm add @lifi/sdk
30
35
  ```
@@ -35,17 +40,95 @@ or
35
40
  npm install --save @lifi/sdk
36
41
  ```
37
42
 
43
+ ### Provider Packages
44
+
45
+ Install provider packages based on the blockchain ecosystems you want to support:
46
+
47
+ **EVM Chains (Ethereum, Polygon, Arbitrum, Optimism, etc.)**
48
+ ```bash
49
+ pnpm add @lifi/sdk-provider-ethereum
50
+ ```
51
+
52
+ **Solana**
53
+ ```bash
54
+ pnpm add @lifi/sdk-provider-solana
55
+ ```
56
+
57
+ **Bitcoin**
58
+ ```bash
59
+ pnpm add @lifi/sdk-provider-bitcoin
60
+ ```
61
+
62
+ **Sui**
63
+ ```bash
64
+ pnpm add @lifi/sdk-provider-sui
65
+ ```
66
+
67
+ **Tron**
68
+ ```bash
69
+ pnpm add @lifi/sdk-provider-tron
70
+ ```
71
+
72
+ ## Architecture
73
+
74
+ The LI.FI SDK uses a modular provider architecture:
75
+
76
+ - **`@lifi/sdk`** - Core SDK package containing shared functionality, actions, and execution logic
77
+ - **Provider packages** - Ecosystem-specific packages that handle wallet interactions and transaction execution for different blockchain types
78
+
79
+ This architecture allows you to:
80
+ - Install only the providers you need, reducing bundle size
81
+ - Use ecosystem-specific libraries optimized for each blockchain
82
+ - Maintain clean separation between core SDK logic and blockchain-specific implementations
83
+
38
84
  ## Quick Start
39
85
 
40
86
  ### Set up the SDK
41
87
 
42
- Firstly, create SDK config with your integrator string.
88
+ Create SDK config with your integrator string and configure the providers for the blockchain ecosystems you want to support.
43
89
 
90
+ **For EVM chains:**
44
91
  ```ts
45
- import { createConfig } from '@lifi/sdk'
92
+ import { createClient } from '@lifi/sdk'
93
+ import { EthereumProvider } from '@lifi/sdk-provider-ethereum'
94
+ import { createWalletClient, http } from 'viem'
95
+ import { mainnet } from 'viem/chains'
96
+
97
+ // Add your account (e.g. privateKeyToAccount, mnemonicToAccount)
98
+ const walletClient = createWalletClient({
99
+ account,
100
+ chain: mainnet,
101
+ transport: http(),
102
+ })
46
103
 
47
- createConfig({
104
+ const client = createClient({
105
+ integrator: 'Your dApp/company name',
106
+ providers: [
107
+ EthereumProvider({
108
+ getWalletClient: () => Promise.resolve(walletClient),
109
+ }),
110
+ ],
111
+ })
112
+ ```
113
+
114
+ **For multiple ecosystems:**
115
+ ```ts
116
+ import { createClient } from '@lifi/sdk'
117
+ import { EthereumProvider } from '@lifi/sdk-provider-ethereum'
118
+ import { SolanaProvider } from '@lifi/sdk-provider-solana'
119
+ import { BitcoinProvider } from '@lifi/sdk-provider-bitcoin'
120
+ import { SuiProvider } from '@lifi/sdk-provider-sui'
121
+ import { TronProvider } from '@lifi/sdk-provider-tron'
122
+
123
+ const client = createClient({
48
124
  integrator: 'Your dApp/company name',
125
+ providers: [
126
+ EthereumProvider({ /* options */ }),
127
+ SolanaProvider({ /* options */ }),
128
+ BitcoinProvider({ /* options */ }),
129
+ SuiProvider({ /* options */ }),
130
+ TronProvider({ /* options */ }),
131
+ ],
49
132
  })
50
133
  ```
51
134
 
@@ -56,7 +139,7 @@ Now you can interact with the SDK and for example request a quote.
56
139
  ```ts
57
140
  import { ChainId, getQuote } from '@lifi/sdk'
58
141
 
59
- const quote = await getQuote({
142
+ const quote = await getQuote(client, {
60
143
  fromAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
61
144
  fromChain: ChainId.ARB,
62
145
  toChain: ChainId.OPT,
@@ -1 +1 @@
1
- {"version":3,"file":"getChains.js","names":["withDedupe","request"],"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,MAXgBA,yBAAAA,iBAEnBC,sBAAAA,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":["withDedupe","request"],"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,MAXgBA,yBAAAA,iBAEnBC,sBAAAA,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":["request"],"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,MAAMA,sBAAAA,QAA6B,OAAO,QAAQ,KAAK,QAAQ"}
1
+ {"version":3,"file":"getConnections.js","names":["request"],"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,MAAMA,sBAAAA,QAA6B,OAAO,QAAQ,KAAK,OAAO;AACvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"getContractCallsQuote.js","names":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,uBAAuB,kBAAkB,eAC1C,CACF;CAGL,IACE,EAAA,GAAA,YAAA,sCAAsC,OAAO,IAC7C,EAAA,GAAA,YAAA,oCAAoC,OAAO,EAE3C,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,uBAAuB,kBAAkB,cAC3C,CACF;CAGJ,IACE,EAAA,GAAA,YAAA,sCAAsC,MAAM,KAC5C,EAAA,GAAA,YAAA,oCAAoC,MAAM,GAE1C,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,QACX,OAAO,QACP,IAAI,UAAU,EACd,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getGasRecommendation.js","names":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,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,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,gEACD,CACF;CAGH,IAAI,uBAAuB,mBACzB,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,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,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,+DACF,CACF;CAGF,IAAI,uBAAuB,mBACzB,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,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":["SDKError","ValidationError","decodeTaskId","getStatus","request","BaseError"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,4CAA0C,CAC/D;CAGH,MAAM,EAAE,QAAQ,GAAG,gBAAgB;CACnC,MAAM,cAAc,IAAI,gBACtB,YACD;CAID,IAFsBC,qBAAAA,aAAa,OAElB,CAAC,UAAU,GAC1B,OAAQ,MAAMC,0BAAAA,UACZ,QACA,QACA,QACD;CAGH,MAAM,SAAS,MAAMC,sBAAAA,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,kBAAkB,OAAO,GAAG,eACpD,EACE,QAAQ,SAAS,QAClB,CACF;CAED,IAAI,OAAO,WAAW,SACpB,MAAM,IAAIC,yBAAAA,UAAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,QACb;CAGH,OAAO,OAAO"}
1
+ {"version":3,"file":"getRelayedTransactionStatus.js","names":["SDKError","ValidationError","decodeTaskId","getStatus","request","BaseError"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,2CAAyC,CAC/D;CAGF,MAAM,EAAE,QAAQ,GAAG,gBAAgB;CACnC,MAAM,cAAc,IAAI,gBACtB,WACF;CAIA,IAFsBC,qBAAAA,aAAa,MAEnB,EAAE,UAAU,GAC1B,OAAQ,MAAMC,0BAAAA,UACZ,QACA,QACA,OACF;CAGF,MAAM,SAAS,MAAMC,sBAAAA,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,kBAAkB,OAAO,GAAG,eACpD,EACE,QAAQ,SAAS,OACnB,CACF;CAEA,IAAI,OAAO,WAAW,SACpB,MAAM,IAAIC,yBAAAA,UAAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,OACd;CAGF,OAAO,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRelayerQuote.js","names":["SDKError","ValidationError","request","BaseError"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,iBAAiB,IAAI,gBAC3C,OACD,IACD,EACE,QAAQ,SAAS,QAClB,CACF;CAED,IAAI,OAAO,WAAW,SACpB,MAAM,IAAIC,yBAAAA,UAAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,QACb;CAGH,OAAO,OAAO"}
1
+ {"version":3,"file":"getRelayerQuote.js","names":["SDKError","ValidationError","request","BaseError"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,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,MAAMC,sBAAAA,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,iBAAiB,IAAI,gBAC3C,MACF,KACA,EACE,QAAQ,SAAS,OACnB,CACF;CAEA,IAAI,OAAO,WAAW,SACpB,MAAM,IAAIC,yBAAAA,UAAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,OACd;CAGF,OAAO,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRoutes.js","names":["isRoutesRequest","SDKError","ValidationError","request"],"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,CAACA,8BAAAA,gBAAgB,OAAO,EAC1B,MAAM,IAAIC,wBAAAA,SAAS,IAAIC,sBAAAA,gBAAgB,0BAA0B,CAAC;CAGpE,OAAO,UAAU;EACf,YAAY,OAAO,OAAO;EAC1B,GAAG,OAAO,OAAO;EACjB,GAAG,OAAO;EACX;CAED,OAAO,MAAMC,sBAAAA,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":["isRoutesRequest","SDKError","ValidationError","request"],"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,CAACA,8BAAAA,gBAAgB,MAAM,GACzB,MAAM,IAAIC,wBAAAA,SAAS,IAAIC,sBAAAA,gBAAgB,yBAAyB,CAAC;CAGnE,OAAO,UAAU;EACf,YAAY,OAAO,OAAO;EAC1B,GAAG,OAAO,OAAO;EACjB,GAAG,OAAO;CACZ;CAEA,OAAO,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,kEACD,CACF;CAEH,MAAM,cAAc,IAAI,gBACtB,OACD;CACD,OAAO,MAAMC,sBAAAA,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,UAAU,eAClC,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getStatus.js","names":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,iEACF,CACF;CAEF,MAAM,cAAc,IAAI,gBACtB,MACF;CACA,OAAO,MAAMC,sBAAAA,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,UAAU,eAClC,EACE,QAAQ,SAAS,OACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getStepTransaction.js","names":["isStep","ChainId","request"],"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,CAACA,qBAAAA,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,gBAAgBC,YAAAA,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,MAAMC,sBAAAA,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":["isStep","ChainId","request"],"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,CAACA,qBAAAA,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,gBAAgBC,YAAAA,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,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,2CAAyC,CAC9D;CAEH,IAAI,CAAC,OACH,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,2CAAyC,CAC9D;CAEH,OAAO,MAAMC,sBAAAA,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":["SDKError","ValidationError","request"],"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,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,0CAAwC,CAC9D;CAEF,IAAI,CAAC,OACH,MAAM,IAAID,wBAAAA,SACR,IAAIC,sBAAAA,gBAAgB,0CAAwC,CAC9D;CAEF,OAAO,MAAMC,sBAAAA,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":["getTokenBalances"],"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,MAAMA,iCAAAA,iBAAiB,QAAQ,eAAe,CAAC,MAAM,CAAC;CAC3E,OAAO,aAAa,SAAS,aAAa,KAAK"}
1
+ {"version":3,"file":"getTokenBalance.js","names":["getTokenBalances"],"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,MAAMA,iCAAAA,iBAAiB,QAAQ,eAAe,CAAC,KAAK,CAAC;CAC1E,OAAO,aAAa,SAAS,aAAa,KAAK;AACjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTokenBalances.js","names":["getTokenBalancesByChain"],"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,MAAMA,wCAAAA,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":["getTokenBalancesByChain"],"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,MAAMA,wCAAAA,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":["ValidationError","isToken"],"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,IAAIA,sBAAAA,gBAAgB,yBAAyB;CAKrD,IAFkB,OAAO,OAAO,cAAc,CAAC,MAChB,CAAC,QAAQ,UAAU,CAACC,sBAAAA,QAAQ,MAAM,CAChD,CAAC,QAChB,MAAM,IAAID,sBAAAA,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":["ValidationError","isToken"],"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,IAAIA,sBAAAA,gBAAgB,wBAAwB;CAKpD,IAFkB,OAAO,OAAO,aAAa,EAAE,KACjB,EAAE,QAAQ,UAAU,CAACC,sBAAAA,QAAQ,KAAK,CAChD,EAAE,QAChB,MAAM,IAAID,sBAAAA,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":["withDedupe","request"],"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,MAXgBA,yBAAAA,iBAEnBC,sBAAAA,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":["withDedupe","request"],"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,MAXgBA,yBAAAA,iBAEnBC,sBAAAA,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":["request"],"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,MAAMA,sBAAAA,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,SAAS,IAAI,gBACnC,OACD,IACD,EACE,QAAQ,SAAS,QAClB,CACF"}
1
+ {"version":3,"file":"getTools.js","names":["request"],"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,MAAMA,sBAAAA,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":["ValidationError","request"],"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,IAAIA,sBAAAA,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,MAAMC,sBAAAA,QACX,OAAO,QACP,KACA,QACD"}
1
+ {"version":3,"file":"getTransactionHistory.js","names":["ValidationError","request"],"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,IAAIA,sBAAAA,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,MAAMC,sBAAAA,QACX,OAAO,QACP,KACA,OACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getWalletBalances.js","names":["ValidationError","request"],"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,IAAIA,sBAAAA,gBAAgB,yBAAyB;CAWrD,QAAQ,MAReC,sBAAAA,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":["ValidationError","request"],"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,IAAIA,sBAAAA,gBAAgB,wBAAwB;CAWpD,QAAQ,MAReC,sBAAAA,QACrB,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,WAAW,cAAc,0BACjD,EACE,QAAQ,SAAS,OACnB,CACF,IAEkB,YAAY,CAAC;AACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getChains","getConnections","getContractCallsQuote","getGasRecommendation","getNameServiceAddress","getTokens","getTools","getQuote","getRelayedTransactionStatus","getRelayerQuote","getRoutes","getStatus","getStepTransaction","getToken","getTokenBalance","getTokenBalances","getTokenBalancesByChain","getTransactionHistory","getWalletBalances","relayTransaction","patchContractCalls"],"sources":["../../../src/actions/index.ts"],"sourcesContent":["import type {\n ChainId,\n ChainKey,\n ChainsRequest,\n ChainType,\n ConnectionsRequest,\n ConnectionsResponse,\n ContractCallsQuoteRequest,\n ExtendedChain,\n GasRecommendationRequest,\n GasRecommendationResponse,\n LiFiStep,\n PatchCallDataRequest,\n RelayRequest,\n RelayResponseData,\n RelayStatusRequest,\n RelayStatusResponseData,\n RequestOptions,\n RoutesRequest,\n RoutesResponse,\n SignedLiFiStep,\n StatusResponse,\n Token,\n TokenAmount,\n TokenExtended,\n TokensExtendedResponse,\n TokensRequest,\n TokensResponse,\n ToolsRequest,\n ToolsResponse,\n TransactionAnalyticsRequest,\n TransactionAnalyticsResponse,\n WalletTokenExtended,\n} from '@lifi/types'\nimport type {\n GetStatusRequestExtended,\n QuoteRequestFromAmount,\n} from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { getChains } from './getChains.js'\nimport { getConnections } from './getConnections.js'\nimport { getContractCallsQuote } from './getContractCallsQuote.js'\nimport { getGasRecommendation } from './getGasRecommendation.js'\nimport { getNameServiceAddress } from './getNameServiceAddress.js'\nimport { getQuote } from './getQuote.js'\nimport { getRelayedTransactionStatus } from './getRelayedTransactionStatus.js'\nimport { getRelayerQuote } from './getRelayerQuote.js'\nimport { getRoutes } from './getRoutes.js'\nimport { getStatus } from './getStatus.js'\nimport { getStepTransaction } from './getStepTransaction.js'\nimport { getToken } from './getToken.js'\nimport { getTokenBalance } from './getTokenBalance.js'\nimport { getTokenBalances } from './getTokenBalances.js'\nimport { getTokenBalancesByChain } from './getTokenBalancesByChain.js'\nimport { getTokens } from './getTokens.js'\nimport { getTools } from './getTools.js'\nimport { getTransactionHistory } from './getTransactionHistory.js'\nimport { getWalletBalances } from './getWalletBalances.js'\nimport {\n type PatchContractCallsResponse,\n patchContractCalls,\n} from './patchContractCalls.js'\nimport { relayTransaction } from './relayTransaction.js'\n\nexport type Actions = {\n /**\n * Get all available chains\n * @param params - The configuration of the requested chains\n * @param options - Request options\n * @returns A list of all available chains\n */\n getChains: (\n params?: ChainsRequest,\n options?: RequestOptions\n ) => Promise<ExtendedChain[]>\n\n /**\n * Get connections between chains\n * @param params - The configuration of the requested connections\n * @param options - Request options\n * @returns A list of connections\n */\n getConnections: (\n params: ConnectionsRequest,\n options?: RequestOptions\n ) => Promise<ConnectionsResponse>\n\n /**\n * Get a quote for contract calls\n * @param params - The configuration of the requested contract calls quote\n * @param options - Request options\n * @returns Quote for contract calls\n */\n getContractCallsQuote: (\n params: ContractCallsQuoteRequest,\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get gas recommendation for a chain\n * @param params - The configuration of the requested gas recommendation\n * @param options - Request options\n * @returns Gas recommendation\n */\n getGasRecommendation: (\n params: GasRecommendationRequest,\n options?: RequestOptions\n ) => Promise<GasRecommendationResponse>\n\n /**\n * Get the address of a name service\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 */\n getNameServiceAddress: (\n name: string,\n chainType?: ChainType\n ) => Promise<string | undefined>\n\n /**\n * Get a quote for a token transfer\n * @param params - The configuration of the requested quote\n * @param options - Request options\n * @returns Quote for a token transfer\n */\n getQuote: (\n params: Parameters<typeof getQuote>[1],\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get the status of a relayed transaction\n * @param params - The configuration of the requested relay status\n * @param options - Request options\n * @returns Status of the relayed transaction\n */\n getRelayedTransactionStatus: (\n params: RelayStatusRequest,\n options?: RequestOptions\n ) => Promise<RelayStatusResponseData>\n\n /**\n * Get a quote from a relayer\n * @param params - The configuration of the requested relayer quote\n * @param options - Request options\n * @returns Quote from a relayer\n */\n getRelayerQuote: (\n params: QuoteRequestFromAmount,\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get a set of routes for a request that describes a transfer of tokens\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\n */\n getRoutes: (\n params: RoutesRequest,\n options?: RequestOptions\n ) => Promise<RoutesResponse>\n\n /**\n * Get the status of a transaction\n * @param params - The configuration of the requested status\n * @param options - Request options\n * @returns Status of the transaction\n */\n getStatus: (\n params: GetStatusRequestExtended,\n options?: RequestOptions\n ) => Promise<StatusResponse>\n\n /**\n * Get a step transaction\n * @param params - The configuration of the requested step transaction\n * @param options - Request options\n * @returns Step transaction\n */\n getStepTransaction: (\n params: LiFiStep | SignedLiFiStep,\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get a specific token\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 * @returns Token information\n */\n getToken: (\n chain: ChainKey | ChainId,\n token: string,\n options?: RequestOptions\n ) => Promise<TokenExtended>\n\n /**\n * Get token balance for a specific token\n * @param walletAddress - A wallet address\n * @param token - A Token object\n * @returns Token balance\n */\n getTokenBalance: (\n walletAddress: string,\n token: Token\n ) => Promise<TokenAmount | null>\n\n /**\n * Get token balances for multiple tokens\n * @param walletAddress - A wallet address\n * @param tokens - A list of Token objects\n * @returns Token balances\n */\n getTokenBalances: (\n walletAddress: string,\n tokens: Token[]\n ) => Promise<TokenAmount[]>\n\n /**\n * Get token balances by chain\n * @param walletAddress - A wallet address\n * @param tokensByChain - A list of token objects organized by chain ids\n * @returns Token balances by chain\n */\n getTokenBalancesByChain: (\n walletAddress: string,\n tokensByChain: { [chainId: number]: Token[] }\n ) => Promise<{\n [chainId: number]: TokenAmount[]\n }>\n\n /**\n * Get all available tokens\n * @param params - The configuration of the requested tokens\n * @param options - Request options\n * @returns A list of all available tokens\n */\n getTokens: {\n (\n params?: TokensRequest & { extended?: false | undefined },\n options?: RequestOptions\n ): Promise<TokensResponse>\n (\n params: TokensRequest & { extended: true },\n options?: RequestOptions\n ): Promise<TokensExtendedResponse>\n }\n\n /**\n * Get all available tools (bridges and exchanges)\n * @param params - The configuration of the requested tools\n * @param options - Request options\n * @returns A list of all available tools\n */\n getTools: (\n params?: ToolsRequest,\n options?: RequestOptions\n ) => Promise<ToolsResponse>\n\n /**\n * Get transaction history\n * @param params - The configuration of the requested transaction history\n * @param options - Request options\n * @returns Transaction history\n */\n getTransactionHistory: (\n params: TransactionAnalyticsRequest,\n options?: RequestOptions\n ) => Promise<TransactionAnalyticsResponse>\n\n /**\n * Get wallet balances\n * @param params - The configuration of the requested wallet balances\n * @param options - Request options\n * @returns Wallet balances\n */\n getWalletBalances: (\n walletAddress: string,\n options?: RequestOptions\n ) => Promise<Record<number, WalletTokenExtended[]>>\n\n /**\n * Relay a transaction through the relayer service\n * @param params - The configuration for the relay request\n * @param options - Request options\n * @returns Task ID and transaction link for the relayed transaction\n */\n relayTransaction: (\n params: RelayRequest,\n options?: RequestOptions\n ) => Promise<RelayResponseData>\n\n /**\n * Patch contract calls\n * @param params - The configuration for the patch contract calls request\n * @param options - Request options\n * @returns Patched contract calls\n */\n patchContractCalls: (\n params: PatchCallDataRequest,\n options?: RequestOptions\n ) => Promise<PatchContractCallsResponse[]>\n}\n\nexport function actions(client: SDKClient): Actions {\n return {\n getChains: (params, options) => getChains(client, params, options),\n getConnections: (params, options) =>\n getConnections(client, params, options),\n getContractCallsQuote: (params, options) =>\n getContractCallsQuote(client, params, options),\n getGasRecommendation: (params, options) =>\n getGasRecommendation(client, params, options),\n getNameServiceAddress: (name, chainType) =>\n getNameServiceAddress(client, name, chainType),\n getTokens: (params, options) => getTokens(client, params as any, options),\n getTools: (params, options) => getTools(client, params, options),\n getQuote: (params, options) => getQuote(client, params, options),\n getRelayedTransactionStatus: (params, options) =>\n getRelayedTransactionStatus(client, params, options),\n getRelayerQuote: (params, options) =>\n getRelayerQuote(client, params, options),\n getRoutes: (params, options) => getRoutes(client, params, options),\n getStatus: (params, options) => getStatus(client, params, options),\n getStepTransaction: (params, options) =>\n getStepTransaction(client, params, options),\n getToken: (chain, token, options) =>\n getToken(client, chain, token, options),\n getTokenBalance: (walletAddress, token) =>\n getTokenBalance(client, walletAddress, token),\n getTokenBalances: (walletAddress, tokens) =>\n getTokenBalances(client, walletAddress, tokens),\n getTokenBalancesByChain: (walletAddress, tokensByChain) =>\n getTokenBalancesByChain(client, walletAddress, tokensByChain),\n getTransactionHistory: (params, options) =>\n getTransactionHistory(client, params, options),\n getWalletBalances: (walletAddress, options) =>\n getWalletBalances(client, walletAddress, options),\n relayTransaction: (params, options) =>\n relayTransaction(client, params, options),\n patchContractCalls: (params, options) =>\n patchContractCalls(client, params, options),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmTA,SAAgB,QAAQ,QAA4B;CAClD,OAAO;EACL,YAAY,QAAQ,YAAYA,0BAAAA,UAAU,QAAQ,QAAQ,QAAQ;EAClE,iBAAiB,QAAQ,YACvBC,+BAAAA,eAAe,QAAQ,QAAQ,QAAQ;EACzC,wBAAwB,QAAQ,YAC9BC,sCAAAA,sBAAsB,QAAQ,QAAQ,QAAQ;EAChD,uBAAuB,QAAQ,YAC7BC,qCAAAA,qBAAqB,QAAQ,QAAQ,QAAQ;EAC/C,wBAAwB,MAAM,cAC5BC,sCAAAA,sBAAsB,QAAQ,MAAM,UAAU;EAChD,YAAY,QAAQ,YAAYC,0BAAAA,UAAU,QAAQ,QAAe,QAAQ;EACzE,WAAW,QAAQ,YAAYC,yBAAAA,SAAS,QAAQ,QAAQ,QAAQ;EAChE,WAAW,QAAQ,YAAYC,yBAAAA,SAAS,QAAQ,QAAQ,QAAQ;EAChE,8BAA8B,QAAQ,YACpCC,4CAAAA,4BAA4B,QAAQ,QAAQ,QAAQ;EACtD,kBAAkB,QAAQ,YACxBC,gCAAAA,gBAAgB,QAAQ,QAAQ,QAAQ;EAC1C,YAAY,QAAQ,YAAYC,0BAAAA,UAAU,QAAQ,QAAQ,QAAQ;EAClE,YAAY,QAAQ,YAAYC,0BAAAA,UAAU,QAAQ,QAAQ,QAAQ;EAClE,qBAAqB,QAAQ,YAC3BC,mCAAAA,mBAAmB,QAAQ,QAAQ,QAAQ;EAC7C,WAAW,OAAO,OAAO,YACvBC,yBAAAA,SAAS,QAAQ,OAAO,OAAO,QAAQ;EACzC,kBAAkB,eAAe,UAC/BC,gCAAAA,gBAAgB,QAAQ,eAAe,MAAM;EAC/C,mBAAmB,eAAe,WAChCC,iCAAAA,iBAAiB,QAAQ,eAAe,OAAO;EACjD,0BAA0B,eAAe,kBACvCC,wCAAAA,wBAAwB,QAAQ,eAAe,cAAc;EAC/D,wBAAwB,QAAQ,YAC9BC,sCAAAA,sBAAsB,QAAQ,QAAQ,QAAQ;EAChD,oBAAoB,eAAe,YACjCC,kCAAAA,kBAAkB,QAAQ,eAAe,QAAQ;EACnD,mBAAmB,QAAQ,YACzBC,iCAAAA,iBAAiB,QAAQ,QAAQ,QAAQ;EAC3C,qBAAqB,QAAQ,YAC3BC,mCAAAA,mBAAmB,QAAQ,QAAQ,QAAQ;EAC9C"}
1
+ {"version":3,"file":"index.js","names":["getChains","getConnections","getContractCallsQuote","getGasRecommendation","getNameServiceAddress","getTokens","getTools","getQuote","getRelayedTransactionStatus","getRelayerQuote","getRoutes","getStatus","getStepTransaction","getToken","getTokenBalance","getTokenBalances","getTokenBalancesByChain","getTransactionHistory","getWalletBalances","relayTransaction","patchContractCalls"],"sources":["../../../src/actions/index.ts"],"sourcesContent":["import type {\n ChainId,\n ChainKey,\n ChainsRequest,\n ChainType,\n ConnectionsRequest,\n ConnectionsResponse,\n ContractCallsQuoteRequest,\n ExtendedChain,\n GasRecommendationRequest,\n GasRecommendationResponse,\n LiFiStep,\n PatchCallDataRequest,\n RelayRequest,\n RelayResponseData,\n RelayStatusRequest,\n RelayStatusResponseData,\n RequestOptions,\n RoutesRequest,\n RoutesResponse,\n SignedLiFiStep,\n StatusResponse,\n Token,\n TokenAmount,\n TokenExtended,\n TokensExtendedResponse,\n TokensRequest,\n TokensResponse,\n ToolsRequest,\n ToolsResponse,\n TransactionAnalyticsRequest,\n TransactionAnalyticsResponse,\n WalletTokenExtended,\n} from '@lifi/types'\nimport type {\n GetStatusRequestExtended,\n QuoteRequestFromAmount,\n} from '../types/actions.js'\nimport type { SDKClient } from '../types/core.js'\nimport { getChains } from './getChains.js'\nimport { getConnections } from './getConnections.js'\nimport { getContractCallsQuote } from './getContractCallsQuote.js'\nimport { getGasRecommendation } from './getGasRecommendation.js'\nimport { getNameServiceAddress } from './getNameServiceAddress.js'\nimport { getQuote } from './getQuote.js'\nimport { getRelayedTransactionStatus } from './getRelayedTransactionStatus.js'\nimport { getRelayerQuote } from './getRelayerQuote.js'\nimport { getRoutes } from './getRoutes.js'\nimport { getStatus } from './getStatus.js'\nimport { getStepTransaction } from './getStepTransaction.js'\nimport { getToken } from './getToken.js'\nimport { getTokenBalance } from './getTokenBalance.js'\nimport { getTokenBalances } from './getTokenBalances.js'\nimport { getTokenBalancesByChain } from './getTokenBalancesByChain.js'\nimport { getTokens } from './getTokens.js'\nimport { getTools } from './getTools.js'\nimport { getTransactionHistory } from './getTransactionHistory.js'\nimport { getWalletBalances } from './getWalletBalances.js'\nimport {\n type PatchContractCallsResponse,\n patchContractCalls,\n} from './patchContractCalls.js'\nimport { relayTransaction } from './relayTransaction.js'\n\nexport type Actions = {\n /**\n * Get all available chains\n * @param params - The configuration of the requested chains\n * @param options - Request options\n * @returns A list of all available chains\n */\n getChains: (\n params?: ChainsRequest,\n options?: RequestOptions\n ) => Promise<ExtendedChain[]>\n\n /**\n * Get connections between chains\n * @param params - The configuration of the requested connections\n * @param options - Request options\n * @returns A list of connections\n */\n getConnections: (\n params: ConnectionsRequest,\n options?: RequestOptions\n ) => Promise<ConnectionsResponse>\n\n /**\n * Get a quote for contract calls\n * @param params - The configuration of the requested contract calls quote\n * @param options - Request options\n * @returns Quote for contract calls\n */\n getContractCallsQuote: (\n params: ContractCallsQuoteRequest,\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get gas recommendation for a chain\n * @param params - The configuration of the requested gas recommendation\n * @param options - Request options\n * @returns Gas recommendation\n */\n getGasRecommendation: (\n params: GasRecommendationRequest,\n options?: RequestOptions\n ) => Promise<GasRecommendationResponse>\n\n /**\n * Get the address of a name service\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 */\n getNameServiceAddress: (\n name: string,\n chainType?: ChainType\n ) => Promise<string | undefined>\n\n /**\n * Get a quote for a token transfer\n * @param params - The configuration of the requested quote\n * @param options - Request options\n * @returns Quote for a token transfer\n */\n getQuote: (\n params: Parameters<typeof getQuote>[1],\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get the status of a relayed transaction\n * @param params - The configuration of the requested relay status\n * @param options - Request options\n * @returns Status of the relayed transaction\n */\n getRelayedTransactionStatus: (\n params: RelayStatusRequest,\n options?: RequestOptions\n ) => Promise<RelayStatusResponseData>\n\n /**\n * Get a quote from a relayer\n * @param params - The configuration of the requested relayer quote\n * @param options - Request options\n * @returns Quote from a relayer\n */\n getRelayerQuote: (\n params: QuoteRequestFromAmount,\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get a set of routes for a request that describes a transfer of tokens\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\n */\n getRoutes: (\n params: RoutesRequest,\n options?: RequestOptions\n ) => Promise<RoutesResponse>\n\n /**\n * Get the status of a transaction\n * @param params - The configuration of the requested status\n * @param options - Request options\n * @returns Status of the transaction\n */\n getStatus: (\n params: GetStatusRequestExtended,\n options?: RequestOptions\n ) => Promise<StatusResponse>\n\n /**\n * Get a step transaction\n * @param params - The configuration of the requested step transaction\n * @param options - Request options\n * @returns Step transaction\n */\n getStepTransaction: (\n params: LiFiStep | SignedLiFiStep,\n options?: RequestOptions\n ) => Promise<LiFiStep>\n\n /**\n * Get a specific token\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 * @returns Token information\n */\n getToken: (\n chain: ChainKey | ChainId,\n token: string,\n options?: RequestOptions\n ) => Promise<TokenExtended>\n\n /**\n * Get token balance for a specific token\n * @param walletAddress - A wallet address\n * @param token - A Token object\n * @returns Token balance\n */\n getTokenBalance: (\n walletAddress: string,\n token: Token\n ) => Promise<TokenAmount | null>\n\n /**\n * Get token balances for multiple tokens\n * @param walletAddress - A wallet address\n * @param tokens - A list of Token objects\n * @returns Token balances\n */\n getTokenBalances: (\n walletAddress: string,\n tokens: Token[]\n ) => Promise<TokenAmount[]>\n\n /**\n * Get token balances by chain\n * @param walletAddress - A wallet address\n * @param tokensByChain - A list of token objects organized by chain ids\n * @returns Token balances by chain\n */\n getTokenBalancesByChain: (\n walletAddress: string,\n tokensByChain: { [chainId: number]: Token[] }\n ) => Promise<{\n [chainId: number]: TokenAmount[]\n }>\n\n /**\n * Get all available tokens\n * @param params - The configuration of the requested tokens\n * @param options - Request options\n * @returns A list of all available tokens\n */\n getTokens: {\n (\n params?: TokensRequest & { extended?: false | undefined },\n options?: RequestOptions\n ): Promise<TokensResponse>\n (\n params: TokensRequest & { extended: true },\n options?: RequestOptions\n ): Promise<TokensExtendedResponse>\n }\n\n /**\n * Get all available tools (bridges and exchanges)\n * @param params - The configuration of the requested tools\n * @param options - Request options\n * @returns A list of all available tools\n */\n getTools: (\n params?: ToolsRequest,\n options?: RequestOptions\n ) => Promise<ToolsResponse>\n\n /**\n * Get transaction history\n * @param params - The configuration of the requested transaction history\n * @param options - Request options\n * @returns Transaction history\n */\n getTransactionHistory: (\n params: TransactionAnalyticsRequest,\n options?: RequestOptions\n ) => Promise<TransactionAnalyticsResponse>\n\n /**\n * Get wallet balances\n * @param params - The configuration of the requested wallet balances\n * @param options - Request options\n * @returns Wallet balances\n */\n getWalletBalances: (\n walletAddress: string,\n options?: RequestOptions\n ) => Promise<Record<number, WalletTokenExtended[]>>\n\n /**\n * Relay a transaction through the relayer service\n * @param params - The configuration for the relay request\n * @param options - Request options\n * @returns Task ID and transaction link for the relayed transaction\n */\n relayTransaction: (\n params: RelayRequest,\n options?: RequestOptions\n ) => Promise<RelayResponseData>\n\n /**\n * Patch contract calls\n * @param params - The configuration for the patch contract calls request\n * @param options - Request options\n * @returns Patched contract calls\n */\n patchContractCalls: (\n params: PatchCallDataRequest,\n options?: RequestOptions\n ) => Promise<PatchContractCallsResponse[]>\n}\n\nexport function actions(client: SDKClient): Actions {\n return {\n getChains: (params, options) => getChains(client, params, options),\n getConnections: (params, options) =>\n getConnections(client, params, options),\n getContractCallsQuote: (params, options) =>\n getContractCallsQuote(client, params, options),\n getGasRecommendation: (params, options) =>\n getGasRecommendation(client, params, options),\n getNameServiceAddress: (name, chainType) =>\n getNameServiceAddress(client, name, chainType),\n getTokens: (params, options) => getTokens(client, params as any, options),\n getTools: (params, options) => getTools(client, params, options),\n getQuote: (params, options) => getQuote(client, params, options),\n getRelayedTransactionStatus: (params, options) =>\n getRelayedTransactionStatus(client, params, options),\n getRelayerQuote: (params, options) =>\n getRelayerQuote(client, params, options),\n getRoutes: (params, options) => getRoutes(client, params, options),\n getStatus: (params, options) => getStatus(client, params, options),\n getStepTransaction: (params, options) =>\n getStepTransaction(client, params, options),\n getToken: (chain, token, options) =>\n getToken(client, chain, token, options),\n getTokenBalance: (walletAddress, token) =>\n getTokenBalance(client, walletAddress, token),\n getTokenBalances: (walletAddress, tokens) =>\n getTokenBalances(client, walletAddress, tokens),\n getTokenBalancesByChain: (walletAddress, tokensByChain) =>\n getTokenBalancesByChain(client, walletAddress, tokensByChain),\n getTransactionHistory: (params, options) =>\n getTransactionHistory(client, params, options),\n getWalletBalances: (walletAddress, options) =>\n getWalletBalances(client, walletAddress, options),\n relayTransaction: (params, options) =>\n relayTransaction(client, params, options),\n patchContractCalls: (params, options) =>\n patchContractCalls(client, params, options),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmTA,SAAgB,QAAQ,QAA4B;CAClD,OAAO;EACL,YAAY,QAAQ,YAAYA,0BAAAA,UAAU,QAAQ,QAAQ,OAAO;EACjE,iBAAiB,QAAQ,YACvBC,+BAAAA,eAAe,QAAQ,QAAQ,OAAO;EACxC,wBAAwB,QAAQ,YAC9BC,sCAAAA,sBAAsB,QAAQ,QAAQ,OAAO;EAC/C,uBAAuB,QAAQ,YAC7BC,qCAAAA,qBAAqB,QAAQ,QAAQ,OAAO;EAC9C,wBAAwB,MAAM,cAC5BC,sCAAAA,sBAAsB,QAAQ,MAAM,SAAS;EAC/C,YAAY,QAAQ,YAAYC,0BAAAA,UAAU,QAAQ,QAAe,OAAO;EACxE,WAAW,QAAQ,YAAYC,yBAAAA,SAAS,QAAQ,QAAQ,OAAO;EAC/D,WAAW,QAAQ,YAAYC,yBAAAA,SAAS,QAAQ,QAAQ,OAAO;EAC/D,8BAA8B,QAAQ,YACpCC,4CAAAA,4BAA4B,QAAQ,QAAQ,OAAO;EACrD,kBAAkB,QAAQ,YACxBC,gCAAAA,gBAAgB,QAAQ,QAAQ,OAAO;EACzC,YAAY,QAAQ,YAAYC,0BAAAA,UAAU,QAAQ,QAAQ,OAAO;EACjE,YAAY,QAAQ,YAAYC,0BAAAA,UAAU,QAAQ,QAAQ,OAAO;EACjE,qBAAqB,QAAQ,YAC3BC,mCAAAA,mBAAmB,QAAQ,QAAQ,OAAO;EAC5C,WAAW,OAAO,OAAO,YACvBC,yBAAAA,SAAS,QAAQ,OAAO,OAAO,OAAO;EACxC,kBAAkB,eAAe,UAC/BC,gCAAAA,gBAAgB,QAAQ,eAAe,KAAK;EAC9C,mBAAmB,eAAe,WAChCC,iCAAAA,iBAAiB,QAAQ,eAAe,MAAM;EAChD,0BAA0B,eAAe,kBACvCC,wCAAAA,wBAAwB,QAAQ,eAAe,aAAa;EAC9D,wBAAwB,QAAQ,YAC9BC,sCAAAA,sBAAsB,QAAQ,QAAQ,OAAO;EAC/C,oBAAoB,eAAe,YACjCC,kCAAAA,kBAAkB,QAAQ,eAAe,OAAO;EAClD,mBAAmB,QAAQ,YACzBC,iCAAAA,iBAAiB,QAAQ,QAAQ,OAAO;EAC1C,qBAAqB,QAAQ,YAC3BC,mCAAAA,mBAAmB,QAAQ,QAAQ,OAAO;CAC9C;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"patchContractCalls.js","names":["request"],"sources":["../../../src/actions/patchContractCalls.ts"],"sourcesContent":["import type { PatchCallDataRequest, RequestOptions } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\nexport interface PatchContractCallsResponse {\n target: string\n value: bigint\n callData: string\n allowFailure: boolean\n isDelegateCall: boolean\n}\n\nexport const patchContractCalls = async (\n client: SDKClient,\n params: PatchCallDataRequest,\n options?: RequestOptions\n): Promise<PatchContractCallsResponse[]> => {\n return await request<PatchContractCallsResponse[]>(\n client.config,\n `${client.config.apiUrl}/patcher`,\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":";;;AAYA,MAAa,qBAAqB,OAChC,QACA,QACA,YAC0C;CAC1C,OAAO,MAAMA,sBAAAA,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,WACxB;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,oBACjB;EACD,MAAM,KAAK,UAAU,OAAO;EAC5B,QAAQ,SAAS;EAClB,CACF"}
1
+ {"version":3,"file":"patchContractCalls.js","names":["request"],"sources":["../../../src/actions/patchContractCalls.ts"],"sourcesContent":["import type { PatchCallDataRequest, RequestOptions } from '@lifi/types'\nimport type { SDKClient } from '../types/core.js'\nimport { request } from '../utils/request.js'\n\nexport interface PatchContractCallsResponse {\n target: string\n value: bigint\n callData: string\n allowFailure: boolean\n isDelegateCall: boolean\n}\n\nexport const patchContractCalls = async (\n client: SDKClient,\n params: PatchCallDataRequest,\n options?: RequestOptions\n): Promise<PatchContractCallsResponse[]> => {\n return await request<PatchContractCallsResponse[]>(\n client.config,\n `${client.config.apiUrl}/patcher`,\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":";;;AAYA,MAAa,qBAAqB,OAChC,QACA,QACA,YAC0C;CAC1C,OAAO,MAAMA,sBAAAA,QACX,OAAO,QACP,GAAG,OAAO,OAAO,OAAO,WACxB;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,mBAClB;EACA,MAAM,KAAK,UAAU,MAAM;EAC3B,QAAQ,SAAS;CACnB,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"relayTransaction.js","names":["SDKError","ValidationError","request","BaseError"],"sources":["../../../src/actions/relayTransaction.ts"],"sourcesContent":["import type {\n RelayRequest,\n RelayResponse,\n RelayResponseData,\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 { request } from '../utils/request.js'\n\n/**\n * Relay a transaction through the relayer service\n * @param client - The SDK client\n * @param params - The configuration for the relay request\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Task ID and transaction link for the relayed transaction\n */\nexport const relayTransaction = async (\n client: SDKClient,\n params: RelayRequest,\n options?: RequestOptions\n): Promise<RelayResponseData> => {\n const requiredParameters: Array<keyof RelayRequest> = ['typedData']\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 // Determine if the request is for a gasless relayer service or advanced relayer service\n // We will use the same endpoint for both after the gasless relayer service is deprecated\n const relayerPath = params.typedData.some(\n (t) => t.primaryType === 'PermitWitnessTransferFrom'\n )\n ? '/relayer/relay'\n : '/advanced/relay'\n\n const result = await request<RelayResponse>(\n client.config,\n `${client.config.apiUrl}${relayerPath}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(params, (_, value) => {\n if (typeof value === 'bigint') {\n return value.toString()\n }\n return value\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,mBAAmB,OAC9B,QACA,QACA,YAC+B;CAG/B,KAAK,MAAM,qBAAqB,CAFuB,YAEL,EAChD,IAAI,CAAC,OAAO,oBACV,MAAM,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,uBAAuB,kBAAkB,eAC1C,CACF;CAML,MAAM,cAAc,OAAO,UAAU,MAClC,MAAM,EAAE,gBAAgB,4BAC1B,GACG,mBACA;CAEJ,MAAM,SAAS,MAAMC,sBAAAA,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,SAAS,eAC1B;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,oBACjB;EACD,MAAM,KAAK,UAAU,SAAS,GAAG,UAAU;GACzC,IAAI,OAAO,UAAU,UACnB,OAAO,MAAM,UAAU;GAEzB,OAAO;IACP;EACF,QAAQ,SAAS;EAClB,CACF;CAED,IAAI,OAAO,WAAW,SACpB,MAAM,IAAIC,yBAAAA,UAAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,QACb;CAGH,OAAO,OAAO"}
1
+ {"version":3,"file":"relayTransaction.js","names":["SDKError","ValidationError","request","BaseError"],"sources":["../../../src/actions/relayTransaction.ts"],"sourcesContent":["import type {\n RelayRequest,\n RelayResponse,\n RelayResponseData,\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 { request } from '../utils/request.js'\n\n/**\n * Relay a transaction through the relayer service\n * @param client - The SDK client\n * @param params - The configuration for the relay request\n * @param options - Request options\n * @throws {LiFiError} - Throws a LiFiError if request fails\n * @returns Task ID and transaction link for the relayed transaction\n */\nexport const relayTransaction = async (\n client: SDKClient,\n params: RelayRequest,\n options?: RequestOptions\n): Promise<RelayResponseData> => {\n const requiredParameters: Array<keyof RelayRequest> = ['typedData']\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 // Determine if the request is for a gasless relayer service or advanced relayer service\n // We will use the same endpoint for both after the gasless relayer service is deprecated\n const relayerPath = params.typedData.some(\n (t) => t.primaryType === 'PermitWitnessTransferFrom'\n )\n ? '/relayer/relay'\n : '/advanced/relay'\n\n const result = await request<RelayResponse>(\n client.config,\n `${client.config.apiUrl}${relayerPath}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(params, (_, value) => {\n if (typeof value === 'bigint') {\n return value.toString()\n }\n return value\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,mBAAmB,OAC9B,QACA,QACA,YAC+B;CAG/B,KAAK,MAAM,qBAAqB,CAFuB,WAEN,GAC/C,IAAI,CAAC,OAAO,oBACV,MAAM,IAAIA,wBAAAA,SACR,IAAIC,sBAAAA,gBACF,uBAAuB,kBAAkB,cAC3C,CACF;CAMJ,MAAM,cAAc,OAAO,UAAU,MAClC,MAAM,EAAE,gBAAgB,2BAC3B,IACI,mBACA;CAEJ,MAAM,SAAS,MAAMC,sBAAAA,QACnB,OAAO,QACP,GAAG,OAAO,OAAO,SAAS,eAC1B;EACE,QAAQ;EACR,SAAS,EACP,gBAAgB,mBAClB;EACA,MAAM,KAAK,UAAU,SAAS,GAAG,UAAU;GACzC,IAAI,OAAO,UAAU,UACnB,OAAO,MAAM,SAAS;GAExB,OAAO;EACT,CAAC;EACD,QAAQ,SAAS;CACnB,CACF;CAEA,IAAI,OAAO,WAAW,SACpB,MAAM,IAAIC,yBAAAA,UAAAA,eAER,OAAO,KAAK,MACZ,OAAO,KAAK,OACd;CAGF,OAAO,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.js","names":["name","version","getClientStorage"],"sources":["../../../src/client/createClient.ts"],"sourcesContent":["import type { ChainId, ChainType, ExtendedChain } from '@lifi/types'\nimport type {\n SDKBaseConfig,\n SDKClient,\n SDKConfig,\n SDKProvider,\n} from '../types/core.js'\nimport { checkPackageUpdates } from '../utils/checkPackageUpdates.js'\nimport { name, version } from '../version.js'\nimport { getClientStorage } from './getClientStorage.js'\n\nexport function createClient(options: SDKConfig): SDKClient {\n if (!options.integrator) {\n throw new Error(\n 'Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'\n )\n }\n\n if (!options.disableVersionCheck && process.env.NODE_ENV === 'development') {\n checkPackageUpdates(name, version)\n }\n\n const { providers, ...configOptions } = options\n\n const _config: SDKBaseConfig = {\n ...configOptions,\n apiUrl: configOptions?.apiUrl ?? 'https://li.quest/v1',\n rpcUrls: configOptions?.rpcUrls ?? {},\n debug: configOptions?.debug ?? false,\n preloadChains: configOptions?.preloadChains ?? true,\n integrator: configOptions?.integrator ?? 'lifi-sdk',\n }\n\n let _providers: SDKProvider[] = providers ?? []\n const _storage = getClientStorage(_config)\n\n const client: SDKClient = {\n get config() {\n return _config\n },\n get providers() {\n return _providers\n },\n getProvider(type: ChainType) {\n return this.providers.find((provider) => provider.type === type)\n },\n setProviders(newProviders: SDKProvider[]) {\n const providerMap = new Map(\n this.providers.map((provider) => [provider.type, provider])\n )\n for (const provider of newProviders) {\n providerMap.set(provider.type, provider)\n }\n _providers = Array.from(providerMap.values())\n },\n setChains(chains: ExtendedChain[]) {\n _storage.setChains(chains)\n },\n async getChains() {\n return await _storage.getChains()\n },\n async getChainById(chainId: ChainId) {\n const chains = await this.getChains()\n const chain = chains?.find((chain) => chain.id === chainId)\n if (!chain) {\n throw new Error(`ChainId ${chainId} not found`)\n }\n return chain\n },\n async getRpcUrls() {\n return await _storage.getRpcUrls()\n },\n async getRpcUrlsByChainId(chainId: ChainId) {\n const rpcUrls = await this.getRpcUrls()\n const chainRpcUrls = rpcUrls[chainId]\n if (!chainRpcUrls?.length) {\n throw new Error(`RPC URL not found for chainId: ${chainId}`)\n }\n return chainRpcUrls\n },\n }\n\n function extend<TClient extends SDKClient>(\n base: TClient\n ): <TExtensions extends Record<string, any>>(\n extendFn: (client: TClient) => TExtensions\n ) => TClient & TExtensions {\n return (extendFn) => {\n const extensions = extendFn(base)\n const extended = { ...base, ...extensions } as TClient & typeof extensions\n\n // Preserve the extend function for further extensions\n return Object.assign(extended, {\n extend: extend(extended),\n })\n }\n }\n\n return Object.assign(client, { extend: extend(client) })\n}\n"],"mappings":";;;;;AAWA,SAAgB,aAAa,SAA+B;CAC1D,IAAI,CAAC,QAAQ,YACX,MAAM,IAAI,MACR,0GACD;CAGH,IAAI,CAAC,QAAQ,uBAAuB,QAAQ,IAAI,aAAa,eAC3D,kCAAA,oBAAoBA,gBAAAA,MAAMC,gBAAAA,QAAQ;CAGpC,MAAM,EAAE,WAAW,GAAG,kBAAkB;CAExC,MAAM,UAAyB;EAC7B,GAAG;EACH,QAAQ,eAAe,UAAU;EACjC,SAAS,eAAe,WAAW,EAAE;EACrC,OAAO,eAAe,SAAS;EAC/B,eAAe,eAAe,iBAAiB;EAC/C,YAAY,eAAe,cAAc;EAC1C;CAED,IAAI,aAA4B,aAAa,EAAE;CAC/C,MAAM,WAAWC,gCAAAA,iBAAiB,QAAQ;CAE1C,MAAM,SAAoB;EACxB,IAAI,SAAS;GACX,OAAO;;EAET,IAAI,YAAY;GACd,OAAO;;EAET,YAAY,MAAiB;GAC3B,OAAO,KAAK,UAAU,MAAM,aAAa,SAAS,SAAS,KAAK;;EAElE,aAAa,cAA6B;GACxC,MAAM,cAAc,IAAI,IACtB,KAAK,UAAU,KAAK,aAAa,CAAC,SAAS,MAAM,SAAS,CAAC,CAC5D;GACD,KAAK,MAAM,YAAY,cACrB,YAAY,IAAI,SAAS,MAAM,SAAS;GAE1C,aAAa,MAAM,KAAK,YAAY,QAAQ,CAAC;;EAE/C,UAAU,QAAyB;GACjC,SAAS,UAAU,OAAO;;EAE5B,MAAM,YAAY;GAChB,OAAO,MAAM,SAAS,WAAW;;EAEnC,MAAM,aAAa,SAAkB;GAEnC,MAAM,SAAQ,MADO,KAAK,WAAW,GACf,MAAM,UAAU,MAAM,OAAO,QAAQ;GAC3D,IAAI,CAAC,OACH,MAAM,IAAI,MAAM,WAAW,QAAQ,YAAY;GAEjD,OAAO;;EAET,MAAM,aAAa;GACjB,OAAO,MAAM,SAAS,YAAY;;EAEpC,MAAM,oBAAoB,SAAkB;GAE1C,MAAM,gBAAe,MADC,KAAK,YAAY,EACV;GAC7B,IAAI,CAAC,cAAc,QACjB,MAAM,IAAI,MAAM,kCAAkC,UAAU;GAE9D,OAAO;;EAEV;CAED,SAAS,OACP,MAGyB;EACzB,QAAQ,aAAa;GACnB,MAAM,aAAa,SAAS,KAAK;GACjC,MAAM,WAAW;IAAE,GAAG;IAAM,GAAG;IAAY;GAG3C,OAAO,OAAO,OAAO,UAAU,EAC7B,QAAQ,OAAO,SAAS,EACzB,CAAC;;;CAIN,OAAO,OAAO,OAAO,QAAQ,EAAE,QAAQ,OAAO,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"createClient.js","names":["name","version","getClientStorage"],"sources":["../../../src/client/createClient.ts"],"sourcesContent":["import type { ChainId, ChainType, ExtendedChain } from '@lifi/types'\nimport type {\n SDKBaseConfig,\n SDKClient,\n SDKConfig,\n SDKProvider,\n} from '../types/core.js'\nimport { checkPackageUpdates } from '../utils/checkPackageUpdates.js'\nimport { name, version } from '../version.js'\nimport { getClientStorage } from './getClientStorage.js'\n\nexport function createClient(options: SDKConfig): SDKClient {\n if (!options.integrator) {\n throw new Error(\n 'Integrator not found. Please see documentation https://docs.li.fi/integrate-li.fi-js-sdk/set-up-the-sdk'\n )\n }\n\n if (!options.disableVersionCheck && process.env.NODE_ENV === 'development') {\n checkPackageUpdates(name, version)\n }\n\n const { providers, ...configOptions } = options\n\n const _config: SDKBaseConfig = {\n ...configOptions,\n apiUrl: configOptions?.apiUrl ?? 'https://li.quest/v1',\n rpcUrls: configOptions?.rpcUrls ?? {},\n debug: configOptions?.debug ?? false,\n preloadChains: configOptions?.preloadChains ?? true,\n integrator: configOptions?.integrator ?? 'lifi-sdk',\n }\n\n let _providers: SDKProvider[] = providers ?? []\n const _storage = getClientStorage(_config)\n\n const client: SDKClient = {\n get config() {\n return _config\n },\n get providers() {\n return _providers\n },\n getProvider(type: ChainType) {\n return this.providers.find((provider) => provider.type === type)\n },\n setProviders(newProviders: SDKProvider[]) {\n const providerMap = new Map(\n this.providers.map((provider) => [provider.type, provider])\n )\n for (const provider of newProviders) {\n providerMap.set(provider.type, provider)\n }\n _providers = Array.from(providerMap.values())\n },\n setChains(chains: ExtendedChain[]) {\n _storage.setChains(chains)\n },\n async getChains() {\n return await _storage.getChains()\n },\n async getChainById(chainId: ChainId) {\n const chains = await this.getChains()\n const chain = chains?.find((chain) => chain.id === chainId)\n if (!chain) {\n throw new Error(`ChainId ${chainId} not found`)\n }\n return chain\n },\n async getRpcUrls() {\n return await _storage.getRpcUrls()\n },\n async getRpcUrlsByChainId(chainId: ChainId) {\n const rpcUrls = await this.getRpcUrls()\n const chainRpcUrls = rpcUrls[chainId]\n if (!chainRpcUrls?.length) {\n throw new Error(`RPC URL not found for chainId: ${chainId}`)\n }\n return chainRpcUrls\n },\n }\n\n function extend<TClient extends SDKClient>(\n base: TClient\n ): <TExtensions extends Record<string, any>>(\n extendFn: (client: TClient) => TExtensions\n ) => TClient & TExtensions {\n return (extendFn) => {\n const extensions = extendFn(base)\n const extended = { ...base, ...extensions } as TClient & typeof extensions\n\n // Preserve the extend function for further extensions\n return Object.assign(extended, {\n extend: extend(extended),\n })\n }\n }\n\n return Object.assign(client, { extend: extend(client) })\n}\n"],"mappings":";;;;;AAWA,SAAgB,aAAa,SAA+B;CAC1D,IAAI,CAAC,QAAQ,YACX,MAAM,IAAI,MACR,yGACF;CAGF,IAAI,CAAC,QAAQ,uBAAuB,QAAQ,IAAI,aAAa,eAC3D,kCAAA,oBAAoBA,gBAAAA,MAAMC,gBAAAA,OAAO;CAGnC,MAAM,EAAE,WAAW,GAAG,kBAAkB;CAExC,MAAM,UAAyB;EAC7B,GAAG;EACH,QAAQ,eAAe,UAAU;EACjC,SAAS,eAAe,WAAW,CAAC;EACpC,OAAO,eAAe,SAAS;EAC/B,eAAe,eAAe,iBAAiB;EAC/C,YAAY,eAAe,cAAc;CAC3C;CAEA,IAAI,aAA4B,aAAa,CAAC;CAC9C,MAAM,WAAWC,gCAAAA,iBAAiB,OAAO;CAEzC,MAAM,SAAoB;EACxB,IAAI,SAAS;GACX,OAAO;EACT;EACA,IAAI,YAAY;GACd,OAAO;EACT;EACA,YAAY,MAAiB;GAC3B,OAAO,KAAK,UAAU,MAAM,aAAa,SAAS,SAAS,IAAI;EACjE;EACA,aAAa,cAA6B;GACxC,MAAM,cAAc,IAAI,IACtB,KAAK,UAAU,KAAK,aAAa,CAAC,SAAS,MAAM,QAAQ,CAAC,CAC5D;GACA,KAAK,MAAM,YAAY,cACrB,YAAY,IAAI,SAAS,MAAM,QAAQ;GAEzC,aAAa,MAAM,KAAK,YAAY,OAAO,CAAC;EAC9C;EACA,UAAU,QAAyB;GACjC,SAAS,UAAU,MAAM;EAC3B;EACA,MAAM,YAAY;GAChB,OAAO,MAAM,SAAS,UAAU;EAClC;EACA,MAAM,aAAa,SAAkB;GAEnC,MAAM,SAAQ,MADO,KAAK,UAAU,IACd,MAAM,UAAU,MAAM,OAAO,OAAO;GAC1D,IAAI,CAAC,OACH,MAAM,IAAI,MAAM,WAAW,QAAQ,WAAW;GAEhD,OAAO;EACT;EACA,MAAM,aAAa;GACjB,OAAO,MAAM,SAAS,WAAW;EACnC;EACA,MAAM,oBAAoB,SAAkB;GAE1C,MAAM,gBAAe,MADC,KAAK,WAAW,GACT;GAC7B,IAAI,CAAC,cAAc,QACjB,MAAM,IAAI,MAAM,kCAAkC,SAAS;GAE7D,OAAO;EACT;CACF;CAEA,SAAS,OACP,MAGyB;EACzB,QAAQ,aAAa;GACnB,MAAM,aAAa,SAAS,IAAI;GAChC,MAAM,WAAW;IAAE,GAAG;IAAM,GAAG;GAAW;GAG1C,OAAO,OAAO,OAAO,UAAU,EAC7B,QAAQ,OAAO,QAAQ,EACzB,CAAC;EACH;CACF;CAEA,OAAO,OAAO,OAAO,QAAQ,EAAE,QAAQ,OAAO,MAAM,EAAE,CAAC;AACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getClientStorage.js","names":["getRpcUrlsFromChains","ChainId","_getChains","ChainType"],"sources":["../../../src/client/getClientStorage.ts"],"sourcesContent":["import { ChainId, ChainType, type ExtendedChain } from '@lifi/types'\nimport { _getChains } from '../actions/getChains.js'\nimport { getRpcUrlsFromChains } from '../core/utils.js'\nimport type { RPCUrls, SDKBaseConfig } from '../types/core.js'\n\n// 6 hours in milliseconds\nconst chainsRefreshInterval = 1000 * 60 * 60 * 6\n\nexport interface ClientStorage {\n readonly needReset: boolean\n setChains(chains: ExtendedChain[]): void\n getChains(): Promise<ExtendedChain[]>\n getRpcUrls(): Promise<RPCUrls>\n}\n\nexport const getClientStorage = (config: SDKBaseConfig): ClientStorage => {\n let _chains = [] as ExtendedChain[]\n let _rpcUrls = { ...config.rpcUrls } as RPCUrls\n let _chainsUpdatedAt: number | undefined\n\n const updateRpcUrls = () => {\n _rpcUrls = { ...config.rpcUrls }\n _rpcUrls = getRpcUrlsFromChains(_rpcUrls, _chains, [ChainId.SOL])\n }\n\n return {\n get needReset() {\n return (\n !_chainsUpdatedAt ||\n Date.now() - _chainsUpdatedAt >= chainsRefreshInterval\n )\n },\n setChains(chains: ExtendedChain[]) {\n _chains = chains\n _chainsUpdatedAt = Date.now()\n updateRpcUrls()\n },\n async getChains() {\n // When preloadChains is false, SDK does not auto-fetch chains\n // External consumer is responsible for calling setChains\n if (!config.preloadChains) {\n return _chains\n }\n\n if (this.needReset || !_chains.length) {\n _chains = await _getChains(config, {\n chainTypes: [\n ChainType.EVM,\n ChainType.SVM,\n ChainType.UTXO,\n ChainType.MVM,\n ChainType.TVM,\n ],\n })\n _chainsUpdatedAt = Date.now()\n updateRpcUrls()\n }\n return _chains\n },\n async getRpcUrls() {\n await this.getChains() // _rpcUrls is updated when needed\n return _rpcUrls\n },\n }\n}\n"],"mappings":";;;;;AAMA,MAAM,wBAAwB,MAAO,KAAK,KAAK;AAS/C,MAAa,oBAAoB,WAAyC;CACxE,IAAI,UAAU,EAAE;CAChB,IAAI,WAAW,EAAE,GAAG,OAAO,SAAS;CACpC,IAAI;CAEJ,MAAM,sBAAsB;EAC1B,WAAW,EAAE,GAAG,OAAO,SAAS;EAChC,WAAWA,mBAAAA,qBAAqB,UAAU,SAAS,CAACC,YAAAA,QAAQ,IAAI,CAAC;;CAGnE,OAAO;EACL,IAAI,YAAY;GACd,OACE,CAAC,oBACD,KAAK,KAAK,GAAG,oBAAoB;;EAGrC,UAAU,QAAyB;GACjC,UAAU;GACV,mBAAmB,KAAK,KAAK;GAC7B,eAAe;;EAEjB,MAAM,YAAY;GAGhB,IAAI,CAAC,OAAO,eACV,OAAO;GAGT,IAAI,KAAK,aAAa,CAAC,QAAQ,QAAQ;IACrC,UAAU,MAAMC,0BAAAA,WAAW,QAAQ,EACjC,YAAY;KACVC,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACX,EACF,CAAC;IACF,mBAAmB,KAAK,KAAK;IAC7B,eAAe;;GAEjB,OAAO;;EAET,MAAM,aAAa;GACjB,MAAM,KAAK,WAAW;GACtB,OAAO;;EAEV"}
1
+ {"version":3,"file":"getClientStorage.js","names":["getRpcUrlsFromChains","ChainId","_getChains","ChainType"],"sources":["../../../src/client/getClientStorage.ts"],"sourcesContent":["import { ChainId, ChainType, type ExtendedChain } from '@lifi/types'\nimport { _getChains } from '../actions/getChains.js'\nimport { getRpcUrlsFromChains } from '../core/utils.js'\nimport type { RPCUrls, SDKBaseConfig } from '../types/core.js'\n\n// 6 hours in milliseconds\nconst chainsRefreshInterval = 1000 * 60 * 60 * 6\n\nexport interface ClientStorage {\n readonly needReset: boolean\n setChains(chains: ExtendedChain[]): void\n getChains(): Promise<ExtendedChain[]>\n getRpcUrls(): Promise<RPCUrls>\n}\n\nexport const getClientStorage = (config: SDKBaseConfig): ClientStorage => {\n let _chains = [] as ExtendedChain[]\n let _rpcUrls = { ...config.rpcUrls } as RPCUrls\n let _chainsUpdatedAt: number | undefined\n\n const updateRpcUrls = () => {\n _rpcUrls = { ...config.rpcUrls }\n _rpcUrls = getRpcUrlsFromChains(_rpcUrls, _chains, [ChainId.SOL])\n }\n\n return {\n get needReset() {\n return (\n !_chainsUpdatedAt ||\n Date.now() - _chainsUpdatedAt >= chainsRefreshInterval\n )\n },\n setChains(chains: ExtendedChain[]) {\n _chains = chains\n _chainsUpdatedAt = Date.now()\n updateRpcUrls()\n },\n async getChains() {\n // When preloadChains is false, SDK does not auto-fetch chains\n // External consumer is responsible for calling setChains\n if (!config.preloadChains) {\n return _chains\n }\n\n if (this.needReset || !_chains.length) {\n _chains = await _getChains(config, {\n chainTypes: [\n ChainType.EVM,\n ChainType.SVM,\n ChainType.UTXO,\n ChainType.MVM,\n ChainType.TVM,\n ],\n })\n _chainsUpdatedAt = Date.now()\n updateRpcUrls()\n }\n return _chains\n },\n async getRpcUrls() {\n await this.getChains() // _rpcUrls is updated when needed\n return _rpcUrls\n },\n }\n}\n"],"mappings":";;;;;AAMA,MAAM,wBAAwB,MAAO,KAAK,KAAK;AAS/C,MAAa,oBAAoB,WAAyC;CACxE,IAAI,UAAU,CAAC;CACf,IAAI,WAAW,EAAE,GAAG,OAAO,QAAQ;CACnC,IAAI;CAEJ,MAAM,sBAAsB;EAC1B,WAAW,EAAE,GAAG,OAAO,QAAQ;EAC/B,WAAWA,mBAAAA,qBAAqB,UAAU,SAAS,CAACC,YAAAA,QAAQ,GAAG,CAAC;CAClE;CAEA,OAAO;EACL,IAAI,YAAY;GACd,OACE,CAAC,oBACD,KAAK,IAAI,IAAI,oBAAoB;EAErC;EACA,UAAU,QAAyB;GACjC,UAAU;GACV,mBAAmB,KAAK,IAAI;GAC5B,cAAc;EAChB;EACA,MAAM,YAAY;GAGhB,IAAI,CAAC,OAAO,eACV,OAAO;GAGT,IAAI,KAAK,aAAa,CAAC,QAAQ,QAAQ;IACrC,UAAU,MAAMC,0BAAAA,WAAW,QAAQ,EACjC,YAAY;KACVC,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACVA,YAAAA,UAAU;KACVA,YAAAA,UAAU;IACZ,EACF,CAAC;IACD,mBAAmB,KAAK,IAAI;IAC5B,cAAc;GAChB;GACA,OAAO;EACT;EACA,MAAM,aAAa;GACjB,MAAM,KAAK,UAAU;GACrB,OAAO;EACT;CACF;AACF"}