@lifi/sdk 4.0.0-alpha.7 → 4.0.0-alpha.8

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 (94) hide show
  1. package/dist/cjs/actions/index.d.ts +3 -1
  2. package/dist/cjs/actions/index.js +2 -0
  3. package/dist/cjs/actions/index.js.map +1 -1
  4. package/dist/cjs/actions/patchContractCalls.d.ts +10 -0
  5. package/dist/cjs/actions/patchContractCalls.js +16 -0
  6. package/dist/cjs/actions/patchContractCalls.js.map +1 -0
  7. package/dist/cjs/core/checkBalance.js +3 -3
  8. package/dist/cjs/core/checkBalance.js.map +1 -1
  9. package/dist/cjs/core/utils.d.ts +1 -0
  10. package/dist/cjs/errors/constants.d.ts +4 -2
  11. package/dist/cjs/errors/constants.js +2 -0
  12. package/dist/cjs/errors/constants.js.map +1 -1
  13. package/dist/cjs/index.d.ts +5 -3
  14. package/dist/cjs/index.js +10 -6
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/types/core.d.ts +24 -4
  17. package/dist/cjs/utils/convertQuoteToRoute.d.ts +6 -1
  18. package/dist/cjs/utils/convertQuoteToRoute.js +73 -5
  19. package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -1
  20. package/dist/cjs/utils/formatUnits.d.ts +1 -0
  21. package/dist/cjs/utils/formatUnits.js +18 -0
  22. package/dist/cjs/utils/formatUnits.js.map +1 -0
  23. package/dist/cjs/utils/isHex.d.ts +4 -0
  24. package/dist/cjs/utils/isHex.js +13 -0
  25. package/dist/cjs/utils/isHex.js.map +1 -0
  26. package/dist/cjs/utils/parseUnits.d.ts +1 -0
  27. package/dist/cjs/utils/parseUnits.js +44 -0
  28. package/dist/cjs/utils/parseUnits.js.map +1 -0
  29. package/dist/cjs/version.d.ts +1 -1
  30. package/dist/cjs/version.js +1 -1
  31. package/dist/esm/actions/index.d.ts +9 -1
  32. package/dist/esm/actions/index.js +2 -0
  33. package/dist/esm/actions/index.js.map +1 -1
  34. package/dist/esm/actions/patchContractCalls.d.ts +10 -0
  35. package/dist/esm/actions/patchContractCalls.js +12 -0
  36. package/dist/esm/actions/patchContractCalls.js.map +1 -0
  37. package/dist/esm/core/checkBalance.js +1 -1
  38. package/dist/esm/core/checkBalance.js.map +1 -1
  39. package/dist/esm/core/utils.d.ts +1 -0
  40. package/dist/esm/errors/constants.d.ts +4 -2
  41. package/dist/esm/errors/constants.js +2 -0
  42. package/dist/esm/errors/constants.js.map +1 -1
  43. package/dist/esm/index.d.ts +5 -3
  44. package/dist/esm/index.js +4 -1
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/types/core.d.ts +24 -4
  47. package/dist/esm/utils/convertQuoteToRoute.d.ts +11 -3
  48. package/dist/esm/utils/convertQuoteToRoute.js +76 -7
  49. package/dist/esm/utils/convertQuoteToRoute.js.map +1 -1
  50. package/dist/esm/utils/formatUnits.d.ts +4 -0
  51. package/dist/esm/utils/formatUnits.js +18 -0
  52. package/dist/esm/utils/formatUnits.js.map +1 -0
  53. package/dist/esm/utils/isHex.d.ts +4 -0
  54. package/dist/esm/utils/isHex.js +10 -0
  55. package/dist/esm/utils/isHex.js.map +1 -0
  56. package/dist/esm/utils/parseUnits.d.ts +4 -0
  57. package/dist/esm/utils/parseUnits.js +46 -0
  58. package/dist/esm/utils/parseUnits.js.map +1 -0
  59. package/dist/esm/version.d.ts +1 -1
  60. package/dist/esm/version.js +1 -1
  61. package/dist/types/actions/index.d.ts +9 -1
  62. package/dist/types/actions/index.d.ts.map +1 -1
  63. package/dist/types/actions/patchContractCalls.d.ts +11 -0
  64. package/dist/types/actions/patchContractCalls.d.ts.map +1 -0
  65. package/dist/types/core/checkBalance.d.ts.map +1 -1
  66. package/dist/types/core/utils.d.ts +1 -0
  67. package/dist/types/core/utils.d.ts.map +1 -1
  68. package/dist/types/errors/constants.d.ts +4 -2
  69. package/dist/types/errors/constants.d.ts.map +1 -1
  70. package/dist/types/index.d.ts +5 -3
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/types/core.d.ts +24 -4
  73. package/dist/types/types/core.d.ts.map +1 -1
  74. package/dist/types/utils/convertQuoteToRoute.d.ts +11 -3
  75. package/dist/types/utils/convertQuoteToRoute.d.ts.map +1 -1
  76. package/dist/types/utils/formatUnits.d.ts +5 -0
  77. package/dist/types/utils/formatUnits.d.ts.map +1 -0
  78. package/dist/types/utils/isHex.d.ts +5 -0
  79. package/dist/types/utils/isHex.d.ts.map +1 -0
  80. package/dist/types/utils/parseUnits.d.ts +5 -0
  81. package/dist/types/utils/parseUnits.d.ts.map +1 -0
  82. package/dist/types/version.d.ts +1 -1
  83. package/package.json +2 -3
  84. package/src/actions/index.ts +18 -0
  85. package/src/actions/patchContractCalls.ts +30 -0
  86. package/src/core/checkBalance.ts +1 -1
  87. package/src/errors/constants.ts +2 -0
  88. package/src/index.ts +8 -3
  89. package/src/types/core.ts +30 -4
  90. package/src/utils/convertQuoteToRoute.ts +117 -8
  91. package/src/utils/formatUnits.ts +22 -0
  92. package/src/utils/isHex.ts +14 -0
  93. package/src/utils/parseUnits.ts +50 -0
  94. package/src/version.ts +1 -1
@@ -1,6 +1,4 @@
1
1
  export * from '@lifi/types';
2
- export type { Client } from 'viem';
3
- export { formatUnits, isHex, parseUnits } from 'viem/utils';
4
2
  export { getChains } from './actions/getChains.js';
5
3
  export { getConnections } from './actions/getConnections.js';
6
4
  export { getContractCallsQuote } from './actions/getContractCallsQuote.js';
@@ -21,6 +19,7 @@ export { getTools } from './actions/getTools.js';
21
19
  export { getTransactionHistory } from './actions/getTransactionHistory.js';
22
20
  export { getWalletBalances } from './actions/getWalletBalances.js';
23
21
  export { actions } from './actions/index.js';
22
+ export { patchContractCalls } from './actions/patchContractCalls.js';
24
23
  export { relayTransaction } from './actions/relayTransaction.js';
25
24
  export { createClient } from './client/createClient.js';
26
25
  export { BaseStepExecutor } from './core/BaseStepExecutor.js';
@@ -35,10 +34,13 @@ export { ErrorMessage, ErrorName, LiFiErrorCode } from './errors/constants.js';
35
34
  export { BalanceError, ProviderError, RPCError, ServerError, TransactionError, UnknownError, ValidationError, } from './errors/errors.js';
36
35
  export { HTTPError } from './errors/httpError.js';
37
36
  export { SDKError } from './errors/SDKError.js';
38
- export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ExchangeRateUpdateParams, Execution, ExecutionOptions, ExecutionStatus, InteractionSettings, LiFiStepExtended, Process, ProcessStatus, ProcessType, RequestInterceptor, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, RPCUrls, SDKBaseConfig, SDKClient, SDKConfig, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, SwitchChainHook, TransactionMethodType, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './types/core.js';
37
+ export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ContractCallParams, ContractTool, ExchangeRateUpdateParams, Execution, ExecutionOptions, ExecutionStatus, GetContractCallsHook, GetContractCallsResult, InteractionSettings, LiFiStepExtended, Process, ProcessStatus, ProcessType, RequestInterceptor, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, RPCUrls, SDKBaseConfig, SDKClient, SDKConfig, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, TransactionMethodType, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './types/core.js';
39
38
  export { checkPackageUpdates } from './utils/checkPackageUpdates.js';
40
39
  export { convertQuoteToRoute } from './utils/convertQuoteToRoute.js';
41
40
  export { fetchTxErrorDetails } from './utils/fetchTxErrorDetails.js';
41
+ export { formatUnits } from './utils/formatUnits.js';
42
+ export { isHex } from './utils/isHex.js';
43
+ export { parseUnits } from './utils/parseUnits.js';
42
44
  export { sleep } from './utils/sleep.js';
43
45
  export { waitForResult } from './utils/waitForResult.js';
44
46
  export { withDedupe } from './utils/withDedupe.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { ChainId, ChainType, CoinKey, ExtendedChain, FeeCost, GasCost, LiFiStep, Route, RouteOptions, Step, Substatus, Token, TokenAmount } from '@lifi/types';
2
- import type { Client } from 'viem';
1
+ import type { ChainId, ChainType, CoinKey, ContractCall, ExtendedChain, FeeCost, GasCost, LiFiStep, Route, RouteOptions, Step, Substatus, Token, TokenAmount } from '@lifi/types';
3
2
  import type { ExtendedRequestInit } from './request.js';
4
3
  export type RequestInterceptor = (request: ExtendedRequestInit) => ExtendedRequestInit | Promise<ExtendedRequestInit>;
5
4
  export interface SDKBaseConfig {
@@ -87,7 +86,6 @@ export interface TransactionRequestParameters extends TransactionParameters {
87
86
  requestType: 'approve' | 'transaction';
88
87
  }
89
88
  export type TransactionRequestUpdateHook = (updatedTxRequest: TransactionRequestParameters) => Promise<TransactionParameters>;
90
- export type SwitchChainHook = (chainId: number) => Promise<Client | undefined>;
91
89
  export interface AcceptSlippageUpdateHookParams {
92
90
  toToken: Token;
93
91
  oldToAmount: string;
@@ -102,11 +100,33 @@ export interface ExchangeRateUpdateParams {
102
100
  newToAmount: string;
103
101
  }
104
102
  export type AcceptExchangeRateUpdateHook = (params: ExchangeRateUpdateParams) => Promise<boolean | undefined>;
103
+ export interface ContractCallParams {
104
+ fromChainId: number;
105
+ toChainId: number;
106
+ fromTokenAddress: string;
107
+ toTokenAddress: string;
108
+ fromAddress: string;
109
+ toAddress?: string;
110
+ fromAmount: bigint;
111
+ toAmount: bigint;
112
+ slippage?: number;
113
+ }
114
+ export interface ContractTool {
115
+ name: string;
116
+ logoURI: string;
117
+ }
118
+ export interface GetContractCallsResult {
119
+ contractCalls: ContractCall[];
120
+ patcher?: boolean;
121
+ contractTool?: ContractTool;
122
+ }
123
+ export type GetContractCallsHook = (params: ContractCallParams) => Promise<GetContractCallsResult>;
105
124
  export interface ExecutionOptions {
106
125
  acceptExchangeRateUpdateHook?: AcceptExchangeRateUpdateHook;
107
- switchChainHook?: SwitchChainHook;
108
126
  updateRouteHook?: UpdateRouteHook;
109
127
  updateTransactionRequestHook?: TransactionRequestUpdateHook;
128
+ getContractCalls?: GetContractCallsHook;
129
+ adjustZeroOutputFromPreviousStep?: boolean;
110
130
  executeInBackground?: boolean;
111
131
  disableMessageSigning?: boolean;
112
132
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACZ,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,mBAAmB,KACzB,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC3E,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAA;IACnC,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9B,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACpE,UAAU,CACR,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,KAAK,EAAE,GACd,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;IACrD,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC5C,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IACxC,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IACrC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACtD,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACpD,WAAW,CACT,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC;AAED,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CACnC,CAAA;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IACzD,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG;IAChC,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE9E,MAAM,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,CAAA;AAEnE,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE,WAAW,EAAE,SAAS,GAAG,aAAa,CAAA;CACvC;AAED,MAAM,MAAM,4BAA4B,GAAG,CACzC,gBAAgB,EAAE,4BAA4B,KAC3C,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAEnC,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AAE9E,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,KAAK,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE,8BAA8B,KACnC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;AAEjC,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,4BAA4B,GAAG,CACzC,MAAM,EAAE,wBAAwB,KAC7B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B,CAAC,EAAE,4BAA4B,CAAA;IAC3D,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,4BAA4B,CAAC,EAAE,4BAA4B,CAAA;IAC3D,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE/E,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,WAAW,CAAA;AAEf,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,QAAQ,GACR,MAAM,GACN,aAAa,GACb,iBAAiB,CAAA;AAErB,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IAGD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/types/core.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  import type { LiFiStep, Route } from '@lifi/types';
2
+ interface ConvertQuoteToRouteOptions {
3
+ /**
4
+ * When true, if the quote has zero output values (toAmount, toAmountMin, toAmountUSD),
5
+ * use the values from the previous included step that has non-zero output.
6
+ */
7
+ adjustZeroOutputFromPreviousStep?: boolean;
8
+ }
9
+ export declare function formatTokenPrice(amount?: string | bigint, price?: string, decimals?: number): number;
2
10
  /**
3
11
  * Converts a quote to Route
4
12
  * @param quote - Step returned from the quote endpoint.
5
- * @param txHash
6
- * @param chainId
13
+ * @param options - Optional configuration for handling edge cases.
7
14
  * @returns - The route to be executed.
8
15
  * @throws {BaseError} Throws a ValidationError if the step has missing values.
9
16
  */
10
- export declare const convertQuoteToRoute: (quote: LiFiStep) => Route;
17
+ export declare const convertQuoteToRoute: (quote: LiFiStep, options?: ConvertQuoteToRouteOptions) => Route;
18
+ export {};
11
19
  //# sourceMappingURL=convertQuoteToRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertQuoteToRoute.d.ts","sourceRoot":"","sources":["../../../src/utils/convertQuoteToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIlD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,QAAQ,KAAG,KAgCrD,CAAA"}
1
+ {"version":3,"file":"convertQuoteToRoute.d.ts","sourceRoot":"","sources":["../../../src/utils/convertQuoteToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAQ,MAAM,aAAa,CAAA;AAKxD,UAAU,0BAA0B;IAClC;;;OAGG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAA;CAC3C;AAmDD,wBAAgB,gBAAgB,CAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,UAelB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,QAAQ,EACf,UAAU,0BAA0B,KACnC,KA6DF,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number.
3
+ */
4
+ export declare function formatUnits(value: bigint, decimals: number): string;
5
+ //# sourceMappingURL=formatUnits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatUnits.d.ts","sourceRoot":"","sources":["../../../src/utils/formatUnits.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAkB1D"}
@@ -0,0 +1,5 @@
1
+ export type Hex = `0x${string}`;
2
+ export declare function isHex(value: unknown, { strict }?: {
3
+ strict?: boolean | undefined;
4
+ }): value is Hex;
5
+ //# sourceMappingURL=isHex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHex.d.ts","sourceRoot":"","sources":["../../../src/utils/isHex.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,EAAE,CAAA;AAE/B,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,EAAE,MAAa,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACvD,KAAK,IAAI,GAAG,CAQd"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).
3
+ */
4
+ export declare function parseUnits(value: string, decimals: number): bigint;
5
+ //# sourceMappingURL=parseUnits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseUnits.d.ts","sourceRoot":"","sources":["../../../src/utils/parseUnits.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UA8CzD"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@lifi/sdk";
2
- export declare const version = "4.0.0-alpha.7";
2
+ export declare const version = "4.0.0-alpha.8";
3
3
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/sdk",
3
- "version": "4.0.0-alpha.7",
3
+ "version": "4.0.0-alpha.8",
4
4
  "description": "LI.FI SDK for Any-to-Any Cross-Chain-Swap",
5
5
  "homepage": "https://github.com/lifinance/sdk",
6
6
  "bugs": {
@@ -28,8 +28,7 @@
28
28
  "./package.json": "./package.json"
29
29
  },
30
30
  "dependencies": {
31
- "@lifi/types": "^17.51.0",
32
- "viem": "^2.41.2"
31
+ "@lifi/types": "^17.56.0"
33
32
  },
34
33
  "publishConfig": {
35
34
  "access": "public"
@@ -10,6 +10,7 @@ import type {
10
10
  GasRecommendationRequest,
11
11
  GasRecommendationResponse,
12
12
  LiFiStep,
13
+ PatchCallDataRequest,
13
14
  RelayRequest,
14
15
  RelayResponseData,
15
16
  RelayStatusRequest,
@@ -55,6 +56,10 @@ import { getTokens } from './getTokens.js'
55
56
  import { getTools } from './getTools.js'
56
57
  import { getTransactionHistory } from './getTransactionHistory.js'
57
58
  import { getWalletBalances } from './getWalletBalances.js'
59
+ import {
60
+ type PatchContractCallsResponse,
61
+ patchContractCalls,
62
+ } from './patchContractCalls.js'
58
63
  import { relayTransaction } from './relayTransaction.js'
59
64
 
60
65
  export type Actions = {
@@ -287,6 +292,17 @@ export type Actions = {
287
292
  params: RelayRequest,
288
293
  options?: RequestOptions
289
294
  ) => Promise<RelayResponseData>
295
+
296
+ /**
297
+ * Patch contract calls
298
+ * @param params - The configuration for the patch contract calls request
299
+ * @param options - Request options
300
+ * @returns Patched contract calls
301
+ */
302
+ patchContractCalls: (
303
+ params: PatchCallDataRequest,
304
+ options?: RequestOptions
305
+ ) => Promise<PatchContractCallsResponse[]>
290
306
  }
291
307
 
292
308
  export function actions(client: SDKClient): Actions {
@@ -325,5 +341,7 @@ export function actions(client: SDKClient): Actions {
325
341
  getWalletBalances(client, walletAddress, options),
326
342
  relayTransaction: (params, options) =>
327
343
  relayTransaction(client, params, options),
344
+ patchContractCalls: (params, options) =>
345
+ patchContractCalls(client, params, options),
328
346
  }
329
347
  }
@@ -0,0 +1,30 @@
1
+ import type { PatchCallDataRequest, RequestOptions } from '@lifi/types'
2
+ import type { SDKClient } from '../types/core.js'
3
+ import { request } from '../utils/request.js'
4
+
5
+ export interface PatchContractCallsResponse {
6
+ target: string
7
+ value: bigint
8
+ callData: string
9
+ allowFailure: boolean
10
+ isDelegateCall: boolean
11
+ }
12
+
13
+ export const patchContractCalls = async (
14
+ client: SDKClient,
15
+ params: PatchCallDataRequest,
16
+ options?: RequestOptions
17
+ ): Promise<PatchContractCallsResponse[]> => {
18
+ return await request<PatchContractCallsResponse[]>(
19
+ client.config,
20
+ `${client.config.apiUrl}/patcher`,
21
+ {
22
+ method: 'POST',
23
+ headers: {
24
+ 'Content-Type': 'application/json',
25
+ },
26
+ body: JSON.stringify(params),
27
+ signal: options?.signal,
28
+ }
29
+ )
30
+ }
@@ -1,8 +1,8 @@
1
1
  import type { LiFiStep } from '@lifi/types'
2
- import { formatUnits } from 'viem'
3
2
  import { getTokenBalance } from '../actions/getTokenBalance.js'
4
3
  import { BalanceError } from '../errors/errors.js'
5
4
  import type { SDKClient } from '../types/core.js'
5
+ import { formatUnits } from '../utils/formatUnits.js'
6
6
  import { sleep } from '../utils/sleep.js'
7
7
 
8
8
  export const checkBalance = async (
@@ -9,6 +9,7 @@ export enum ErrorName {
9
9
  UnknownError = 'UnknownError',
10
10
  SlippageError = 'SlippageError',
11
11
  HTTPError = 'HTTPError',
12
+ ConfigError = 'ConfigError',
12
13
  }
13
14
 
14
15
  export type ErrorCode = LiFiErrorCode
@@ -40,6 +41,7 @@ export enum LiFiErrorCode {
40
41
  RateLimitExceeded = 1023,
41
42
  ThirdPartyError = 1024,
42
43
  InsufficientGas = 1025,
44
+ ConfigError = 1026,
43
45
  }
44
46
 
45
47
  export enum ErrorMessage {
package/src/index.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  // biome-ignore lint/performance/noBarrelFile: module entrypoint
2
2
  // biome-ignore lint/performance/noReExportAll: types
3
3
  export * from '@lifi/types'
4
- export type { Client } from 'viem'
5
- export { formatUnits, isHex, parseUnits } from 'viem/utils'
6
4
  export { getChains } from './actions/getChains.js'
7
5
  export { getConnections } from './actions/getConnections.js'
8
6
  export { getContractCallsQuote } from './actions/getContractCallsQuote.js'
@@ -23,6 +21,7 @@ export { getTools } from './actions/getTools.js'
23
21
  export { getTransactionHistory } from './actions/getTransactionHistory.js'
24
22
  export { getWalletBalances } from './actions/getWalletBalances.js'
25
23
  export { actions } from './actions/index.js'
24
+ export { patchContractCalls } from './actions/patchContractCalls.js'
26
25
  export { relayTransaction } from './actions/relayTransaction.js'
27
26
  export { createClient } from './client/createClient.js'
28
27
  export { BaseStepExecutor } from './core/BaseStepExecutor.js'
@@ -56,10 +55,14 @@ export type {
56
55
  AcceptExchangeRateUpdateHook,
57
56
  AcceptSlippageUpdateHook,
58
57
  AcceptSlippageUpdateHookParams,
58
+ ContractCallParams,
59
+ ContractTool,
59
60
  ExchangeRateUpdateParams,
60
61
  Execution,
61
62
  ExecutionOptions,
62
63
  ExecutionStatus,
64
+ GetContractCallsHook,
65
+ GetContractCallsResult,
63
66
  InteractionSettings,
64
67
  LiFiStepExtended,
65
68
  Process,
@@ -78,7 +81,6 @@ export type {
78
81
  StepExecutor,
79
82
  StepExecutorOptions,
80
83
  StepExtended,
81
- SwitchChainHook,
82
84
  TransactionMethodType,
83
85
  TransactionParameters,
84
86
  TransactionRequestParameters,
@@ -88,6 +90,9 @@ export type {
88
90
  export { checkPackageUpdates } from './utils/checkPackageUpdates.js'
89
91
  export { convertQuoteToRoute } from './utils/convertQuoteToRoute.js'
90
92
  export { fetchTxErrorDetails } from './utils/fetchTxErrorDetails.js'
93
+ export { formatUnits } from './utils/formatUnits.js'
94
+ export { isHex } from './utils/isHex.js'
95
+ export { parseUnits } from './utils/parseUnits.js'
91
96
  export { sleep } from './utils/sleep.js'
92
97
  export { waitForResult } from './utils/waitForResult.js'
93
98
  export { withDedupe } from './utils/withDedupe.js'
package/src/types/core.ts CHANGED
@@ -2,6 +2,7 @@ import type {
2
2
  ChainId,
3
3
  ChainType,
4
4
  CoinKey,
5
+ ContractCall,
5
6
  ExtendedChain,
6
7
  FeeCost,
7
8
  GasCost,
@@ -13,7 +14,6 @@ import type {
13
14
  Token,
14
15
  TokenAmount,
15
16
  } from '@lifi/types'
16
- import type { Client } from 'viem'
17
17
  import type { ExtendedRequestInit } from './request.js'
18
18
 
19
19
  export type RequestInterceptor = (
@@ -139,8 +139,6 @@ export type TransactionRequestUpdateHook = (
139
139
  updatedTxRequest: TransactionRequestParameters
140
140
  ) => Promise<TransactionParameters>
141
141
 
142
- export type SwitchChainHook = (chainId: number) => Promise<Client | undefined>
143
-
144
142
  export interface AcceptSlippageUpdateHookParams {
145
143
  toToken: Token
146
144
  oldToAmount: string
@@ -163,11 +161,39 @@ export type AcceptExchangeRateUpdateHook = (
163
161
  params: ExchangeRateUpdateParams
164
162
  ) => Promise<boolean | undefined>
165
163
 
164
+ export interface ContractCallParams {
165
+ fromChainId: number
166
+ toChainId: number
167
+ fromTokenAddress: string
168
+ toTokenAddress: string
169
+ fromAddress: string
170
+ toAddress?: string
171
+ fromAmount: bigint
172
+ toAmount: bigint
173
+ slippage?: number
174
+ }
175
+
176
+ export interface ContractTool {
177
+ name: string
178
+ logoURI: string
179
+ }
180
+
181
+ export interface GetContractCallsResult {
182
+ contractCalls: ContractCall[]
183
+ patcher?: boolean
184
+ contractTool?: ContractTool
185
+ }
186
+
187
+ export type GetContractCallsHook = (
188
+ params: ContractCallParams
189
+ ) => Promise<GetContractCallsResult>
190
+
166
191
  export interface ExecutionOptions {
167
192
  acceptExchangeRateUpdateHook?: AcceptExchangeRateUpdateHook
168
- switchChainHook?: SwitchChainHook
169
193
  updateRouteHook?: UpdateRouteHook
170
194
  updateTransactionRequestHook?: TransactionRequestUpdateHook
195
+ getContractCalls?: GetContractCallsHook
196
+ adjustZeroOutputFromPreviousStep?: boolean
171
197
  executeInBackground?: boolean
172
198
  disableMessageSigning?: boolean
173
199
  /**
@@ -1,23 +1,132 @@
1
- import type { LiFiStep, Route } from '@lifi/types'
1
+ import type { LiFiStep, Route, Step } from '@lifi/types'
2
2
  import { ValidationError } from '../errors/errors.js'
3
3
  import { SDKError } from '../errors/SDKError.js'
4
+ import { formatUnits } from './formatUnits.js'
5
+
6
+ interface ConvertQuoteToRouteOptions {
7
+ /**
8
+ * When true, if the quote has zero output values (toAmount, toAmountMin, toAmountUSD),
9
+ * use the values from the previous included step that has non-zero output.
10
+ */
11
+ adjustZeroOutputFromPreviousStep?: boolean
12
+ }
13
+
14
+ const parseBigInt = (value: string | undefined): bigint => {
15
+ if (!value) {
16
+ return 0n
17
+ }
18
+ try {
19
+ return BigInt(value)
20
+ } catch {
21
+ return 0n
22
+ }
23
+ }
24
+
25
+ const parseNumber = (value: string | undefined): number => {
26
+ if (!value) {
27
+ return 0
28
+ }
29
+ const parsed = Number(value)
30
+ return Number.isNaN(parsed) ? 0 : parsed
31
+ }
32
+
33
+ const isZeroOutput = (
34
+ toAmount: string,
35
+ toAmountMin: string,
36
+ toAmountUSD?: string
37
+ ): boolean => {
38
+ return (
39
+ !parseBigInt(toAmount) &&
40
+ !parseBigInt(toAmountMin) &&
41
+ !parseNumber(toAmountUSD)
42
+ )
43
+ }
44
+
45
+ const hasNonZeroOutput = (step: Step): boolean => {
46
+ return (
47
+ !!parseBigInt(step.estimate.toAmount) ||
48
+ !!parseBigInt(step.estimate.toAmountMin)
49
+ )
50
+ }
51
+
52
+ const findPreviousNonZeroStep = (steps: Step[]): Step | undefined => {
53
+ // Find the last step that has non-zero output (the step before the zero output step)
54
+ for (let i = steps.length - 1; i >= 0; i--) {
55
+ const step = steps[i]
56
+ if (hasNonZeroOutput(step)) {
57
+ return step
58
+ }
59
+ }
60
+ return undefined
61
+ }
62
+
63
+ export function formatTokenPrice(
64
+ amount?: string | bigint,
65
+ price?: string,
66
+ decimals?: number
67
+ ) {
68
+ if (!amount || !price) {
69
+ return 0
70
+ }
71
+
72
+ const formattedAmount =
73
+ typeof amount === 'bigint' && decimals !== undefined
74
+ ? formatUnits(amount, decimals)
75
+ : amount.toString()
76
+
77
+ if (Number.isNaN(Number(formattedAmount)) || Number.isNaN(Number(price))) {
78
+ return 0
79
+ }
80
+ return Number.parseFloat(formattedAmount) * Number.parseFloat(price)
81
+ }
4
82
 
5
83
  /**
6
84
  * Converts a quote to Route
7
85
  * @param quote - Step returned from the quote endpoint.
8
- * @param txHash
9
- * @param chainId
86
+ * @param options - Optional configuration for handling edge cases.
10
87
  * @returns - The route to be executed.
11
88
  * @throws {BaseError} Throws a ValidationError if the step has missing values.
12
89
  */
13
- export const convertQuoteToRoute = (quote: LiFiStep): Route => {
90
+ export const convertQuoteToRoute = (
91
+ quote: LiFiStep,
92
+ options?: ConvertQuoteToRouteOptions
93
+ ): Route => {
94
+ let toAmount = quote.estimate.toAmount
95
+ let toAmountMin = quote.estimate.toAmountMin
96
+ let toAmountUSD = quote.estimate.toAmountUSD
97
+
98
+ // Handle zero output values by looking at previous included step
99
+ if (
100
+ options?.adjustZeroOutputFromPreviousStep &&
101
+ quote.includedSteps?.length &&
102
+ isZeroOutput(toAmount, toAmountMin, toAmountUSD)
103
+ ) {
104
+ const previousStep = findPreviousNonZeroStep(quote.includedSteps)
105
+ if (previousStep) {
106
+ toAmount = previousStep.estimate.toAmount
107
+ toAmountMin = previousStep.estimate.toAmountMin
108
+ toAmountUSD = formatTokenPrice(
109
+ parseBigInt(toAmount),
110
+ previousStep.action.toToken.priceUSD,
111
+ previousStep.action.toToken.decimals
112
+ ).toFixed(2)
113
+
114
+ // Update the last included step's estimate with the adjusted values
115
+ const lastStep = quote.includedSteps[quote.includedSteps.length - 1]
116
+ if (lastStep && !hasNonZeroOutput(lastStep)) {
117
+ lastStep.estimate.toAmount = toAmount
118
+ lastStep.estimate.toAmountMin = toAmountMin
119
+ }
120
+ }
121
+ }
122
+
14
123
  if (!quote.estimate.fromAmountUSD) {
15
124
  throw new SDKError(
16
125
  new ValidationError("Missing 'fromAmountUSD' in step estimate.")
17
126
  )
18
127
  }
19
128
 
20
- if (!quote.estimate.toAmountUSD) {
129
+ if (!toAmountUSD) {
21
130
  throw new SDKError(
22
131
  new ValidationError("Missing 'toAmountUSD' in step estimate.")
23
132
  )
@@ -32,9 +141,9 @@ export const convertQuoteToRoute = (quote: LiFiStep): Route => {
32
141
  fromAddress: quote.action.fromAddress,
33
142
  toChainId: quote.action.toToken.chainId,
34
143
  toToken: quote.action.toToken,
35
- toAmount: quote.estimate.toAmount,
36
- toAmountMin: quote.estimate.toAmountMin,
37
- toAmountUSD: quote.estimate.toAmountUSD,
144
+ toAmount,
145
+ toAmountMin,
146
+ toAmountUSD,
38
147
  toAddress: quote.action.toAddress || quote.action.fromAddress,
39
148
  gasCostUSD: quote.estimate.gasCosts?.[0]?.amountUSD || '0',
40
149
  steps: [quote],
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number.
3
+ */
4
+ export function formatUnits(value: bigint, decimals: number) {
5
+ let display = value.toString()
6
+
7
+ const negative = display.startsWith('-')
8
+ if (negative) {
9
+ display = display.slice(1)
10
+ }
11
+
12
+ display = display.padStart(decimals, '0')
13
+
14
+ let [integer, fraction] = [
15
+ display.slice(0, display.length - decimals),
16
+ display.slice(display.length - decimals),
17
+ ]
18
+ fraction = fraction.replace(/(0+)$/, '')
19
+ return `${negative ? '-' : ''}${integer || '0'}${
20
+ fraction ? `.${fraction}` : ''
21
+ }`
22
+ }
@@ -0,0 +1,14 @@
1
+ export type Hex = `0x${string}`
2
+
3
+ export function isHex(
4
+ value: unknown,
5
+ { strict = true }: { strict?: boolean | undefined } = {}
6
+ ): value is Hex {
7
+ if (!value) {
8
+ return false
9
+ }
10
+ if (typeof value !== 'string') {
11
+ return false
12
+ }
13
+ return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x')
14
+ }