0xtrails 0.14.0 → 0.15.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 (160) hide show
  1. package/dist/abis/requireUtils.d.ts +134 -0
  2. package/dist/abis/requireUtils.d.ts.map +1 -0
  3. package/dist/abis/trailsHydrate.d.ts +1 -0
  4. package/dist/abis/trailsHydrate.d.ts.map +1 -1
  5. package/dist/abis/trailsRouter.d.ts.map +1 -1
  6. package/dist/actions/actionBuilder.d.ts +414 -0
  7. package/dist/actions/actionBuilder.d.ts.map +1 -0
  8. package/dist/actions/constants.d.ts +1853 -0
  9. package/dist/actions/constants.d.ts.map +1 -0
  10. package/dist/actions/custom-integrations/sushiswapV3/addresses.d.ts +4 -0
  11. package/dist/actions/custom-integrations/sushiswapV3/addresses.d.ts.map +1 -0
  12. package/dist/actions/custom-integrations/sushiswapV3/calldata.d.ts +4 -0
  13. package/dist/actions/custom-integrations/sushiswapV3/calldata.d.ts.map +1 -0
  14. package/dist/actions/custom-integrations/sushiswapV3/calls.d.ts +28 -0
  15. package/dist/actions/custom-integrations/sushiswapV3/calls.d.ts.map +1 -0
  16. package/dist/actions/custom-integrations/sushiswapV3/helpers.d.ts +15 -0
  17. package/dist/actions/custom-integrations/sushiswapV3/helpers.d.ts.map +1 -0
  18. package/dist/actions/custom-integrations/sushiswapV3/sushiswapV3.d.ts +9 -0
  19. package/dist/actions/custom-integrations/sushiswapV3/sushiswapV3.d.ts.map +1 -0
  20. package/dist/actions/custom-integrations/sushiswapV3/types.d.ts +95 -0
  21. package/dist/actions/custom-integrations/sushiswapV3/types.d.ts.map +1 -0
  22. package/dist/actions/custom-integrations/uniswapV3/addresses.d.ts +4 -0
  23. package/dist/actions/custom-integrations/uniswapV3/addresses.d.ts.map +1 -0
  24. package/dist/actions/custom-integrations/uniswapV3/calldata.d.ts +4 -0
  25. package/dist/actions/custom-integrations/uniswapV3/calldata.d.ts.map +1 -0
  26. package/dist/actions/custom-integrations/uniswapV3/calls.d.ts +50 -0
  27. package/dist/actions/custom-integrations/uniswapV3/calls.d.ts.map +1 -0
  28. package/dist/actions/custom-integrations/uniswapV3/helpers.d.ts +23 -0
  29. package/dist/actions/custom-integrations/uniswapV3/helpers.d.ts.map +1 -0
  30. package/dist/actions/custom-integrations/uniswapV3/types.d.ts +90 -0
  31. package/dist/actions/custom-integrations/uniswapV3/types.d.ts.map +1 -0
  32. package/dist/actions/custom-integrations/uniswapV3/uniswapV3.d.ts +9 -0
  33. package/dist/actions/custom-integrations/uniswapV3/uniswapV3.d.ts.map +1 -0
  34. package/dist/actions/destinationCalls.d.ts +17 -0
  35. package/dist/actions/destinationCalls.d.ts.map +1 -0
  36. package/dist/actions/dynamic.d.ts +97 -0
  37. package/dist/actions/dynamic.d.ts.map +1 -0
  38. package/dist/actions/hooks/useEarnBalances.d.ts +53 -0
  39. package/dist/actions/hooks/useEarnBalances.d.ts.map +1 -0
  40. package/dist/actions/hooks/useEarnMarkets.d.ts +29 -0
  41. package/dist/actions/hooks/useEarnMarkets.d.ts.map +1 -0
  42. package/dist/actions/hooks/useEarnProviders.d.ts +18 -0
  43. package/dist/actions/hooks/useEarnProviders.d.ts.map +1 -0
  44. package/dist/actions/hooks/useResolveActions.d.ts +28 -0
  45. package/dist/actions/hooks/useResolveActions.d.ts.map +1 -0
  46. package/dist/actions/index.d.ts +8 -0
  47. package/dist/actions/index.d.ts.map +1 -0
  48. package/dist/actions/index.js +13 -0
  49. package/dist/actions/resolvers.d.ts +30 -0
  50. package/dist/actions/resolvers.d.ts.map +1 -0
  51. package/dist/actions/types/earn.d.ts +51 -0
  52. package/dist/actions/types/earn.d.ts.map +1 -0
  53. package/dist/actions/types.d.ts +303 -0
  54. package/dist/actions/types.d.ts.map +1 -0
  55. package/dist/actions/utils.d.ts +181 -0
  56. package/dist/actions/utils.d.ts.map +1 -0
  57. package/dist/chainSwitch.d.ts.map +1 -1
  58. package/dist/chains-DttlfV-6.js +4 -0
  59. package/dist/chains-ccVR_-73.js +655 -0
  60. package/dist/chains.d.ts.map +1 -1
  61. package/dist/hooks/persistedToken.d.ts +22 -0
  62. package/dist/hooks/persistedToken.d.ts.map +1 -0
  63. package/dist/hooks/prepareTrailsSendTransactionDestination.d.ts +26 -0
  64. package/dist/hooks/prepareTrailsSendTransactionDestination.d.ts.map +1 -0
  65. package/dist/hooks/useCustomTokenSearch.d.ts +2 -1
  66. package/dist/hooks/useCustomTokenSearch.d.ts.map +1 -1
  67. package/dist/hooks/useDestinationSelectedToken.d.ts +8 -0
  68. package/dist/hooks/useDestinationSelectedToken.d.ts.map +1 -1
  69. package/dist/hooks/useOriginSelectedToken.d.ts.map +1 -1
  70. package/dist/hooks/useQuote.d.ts +201 -21
  71. package/dist/hooks/useQuote.d.ts.map +1 -1
  72. package/dist/hooks/useSendForm.d.ts +5 -2
  73. package/dist/hooks/useSendForm.d.ts.map +1 -1
  74. package/dist/hooks/useTokenList.d.ts +2 -1
  75. package/dist/hooks/useTokenList.d.ts.map +1 -1
  76. package/dist/hooks/useTrailsSendTransaction.d.ts +93 -5
  77. package/dist/hooks/useTrailsSendTransaction.d.ts.map +1 -1
  78. package/dist/hydrate/index.d.ts +3 -1
  79. package/dist/hydrate/index.d.ts.map +1 -1
  80. package/dist/hydrate/index.js +10 -7
  81. package/dist/hydrate/multicall.d.ts +69 -0
  82. package/dist/hydrate/multicall.d.ts.map +1 -0
  83. package/dist/hydrate/source.d.ts +11 -0
  84. package/dist/hydrate/source.d.ts.map +1 -0
  85. package/dist/hydrate/types.d.ts +3 -1
  86. package/dist/hydrate/types.d.ts.map +1 -1
  87. package/dist/{hydrate-Cr9eaeDK.js → hydrate-BsQ8nPlI.js} +367 -139
  88. package/dist/index.d.ts +29 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +189 -157
  91. package/dist/intentProtocolEncoding.d.ts +5 -0
  92. package/dist/intentProtocolEncoding.d.ts.map +1 -1
  93. package/dist/intentProtocolResolver.d.ts.map +1 -1
  94. package/dist/placeholder.d.ts +129 -5
  95. package/dist/placeholder.d.ts.map +1 -1
  96. package/dist/poolUtils.d.ts +0 -14
  97. package/dist/poolUtils.d.ts.map +1 -1
  98. package/dist/prepareSend.d.ts.map +1 -1
  99. package/dist/query/balance.fetchers.d.ts +7 -1
  100. package/dist/query/balance.fetchers.d.ts.map +1 -1
  101. package/dist/{src-4HYDQv2T.js → src-CQhZqidH.js} +34729 -31934
  102. package/dist/tokens.d.ts.map +1 -1
  103. package/dist/transactionIntent/handlers/intentHandler.d.ts +1 -0
  104. package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
  105. package/dist/transactionIntent/types.d.ts +1 -0
  106. package/dist/transactionIntent/types.d.ts.map +1 -1
  107. package/dist/umd/trails.min.js +254 -252
  108. package/dist/utils/validation.d.ts +14 -0
  109. package/dist/utils/validation.d.ts.map +1 -1
  110. package/dist/widget/components/ChainList.d.ts +2 -0
  111. package/dist/widget/components/ChainList.d.ts.map +1 -1
  112. package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
  113. package/dist/widget/components/EarnMarkets.d.ts +9 -0
  114. package/dist/widget/components/EarnMarkets.d.ts.map +1 -0
  115. package/dist/widget/components/EarnPoolsFilters.d.ts +7 -1
  116. package/dist/widget/components/EarnPoolsFilters.d.ts.map +1 -1
  117. package/dist/widget/components/{PoolWithdraw.d.ts → EarnWithdraw.d.ts} +5 -5
  118. package/dist/widget/components/{PoolWithdraw.d.ts.map → EarnWithdraw.d.ts.map} +1 -1
  119. package/dist/widget/components/Fund.d.ts.map +1 -1
  120. package/dist/widget/components/HookModalContent.d.ts.map +1 -1
  121. package/dist/widget/components/Pay.d.ts.map +1 -1
  122. package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
  123. package/dist/widget/components/TokenSelector.d.ts +1 -0
  124. package/dist/widget/components/TokenSelector.d.ts.map +1 -1
  125. package/dist/widget/components/Withdraw.d.ts.map +1 -1
  126. package/dist/widget/components/earnMarketUtils.d.ts +11 -0
  127. package/dist/widget/components/earnMarketUtils.d.ts.map +1 -0
  128. package/dist/widget/components/earnNetworks.d.ts +6 -0
  129. package/dist/widget/components/earnNetworks.d.ts.map +1 -0
  130. package/dist/widget/index.js +14 -14
  131. package/dist/widget/modes/EarnWidget.d.ts +19 -12
  132. package/dist/widget/modes/EarnWidget.d.ts.map +1 -1
  133. package/dist/widget/modes/FundWidget.d.ts +5 -11
  134. package/dist/widget/modes/FundWidget.d.ts.map +1 -1
  135. package/dist/widget/modes/PayWidget.d.ts +6 -12
  136. package/dist/widget/modes/PayWidget.d.ts.map +1 -1
  137. package/dist/widget/modes/SwapWidget.d.ts +5 -11
  138. package/dist/widget/modes/SwapWidget.d.ts.map +1 -1
  139. package/dist/widget/modes/WithdrawWidget.d.ts +27 -11
  140. package/dist/widget/modes/WithdrawWidget.d.ts.map +1 -1
  141. package/dist/widget/providers/WidgetProviderTree.d.ts.map +1 -1
  142. package/dist/widget/shared/destinationDefaultToken.d.ts +15 -0
  143. package/dist/widget/shared/destinationDefaultToken.d.ts.map +1 -0
  144. package/dist/widget/shared/resolution.d.ts +2 -1
  145. package/dist/widget/shared/resolution.d.ts.map +1 -1
  146. package/dist/widget/shared/resolvePaymentSource.d.ts +2 -0
  147. package/dist/widget/shared/resolvePaymentSource.d.ts.map +1 -1
  148. package/dist/widget/shared/tokenAllowlist.d.ts +36 -0
  149. package/dist/widget/shared/tokenAllowlist.d.ts.map +1 -0
  150. package/dist/widget/shared/types.d.ts +70 -14
  151. package/dist/widget/shared/types.d.ts.map +1 -1
  152. package/dist/widget/styles.gen.d.ts +2 -0
  153. package/dist/widget/styles.gen.d.ts.map +1 -0
  154. package/dist/widget/widget.d.ts +2 -0
  155. package/dist/widget/widget.d.ts.map +1 -1
  156. package/package.json +8 -3
  157. package/dist/chains-C1NhDLF_.js +0 -4
  158. package/dist/chains-CcoarGia.js +0 -658
  159. package/dist/widget/styles.d.ts +0 -2
  160. package/dist/widget/styles.d.ts.map +0 -1
@@ -0,0 +1,134 @@
1
+ export declare const requireUtilsAbi: readonly [{
2
+ readonly type: "function";
3
+ readonly name: "requireNonExpired";
4
+ readonly inputs: readonly [{
5
+ readonly name: "expiration";
6
+ readonly type: "uint256";
7
+ }];
8
+ readonly outputs: readonly [];
9
+ readonly stateMutability: "view";
10
+ }, {
11
+ readonly type: "function";
12
+ readonly name: "requireMinBalance";
13
+ readonly inputs: readonly [{
14
+ readonly name: "owner";
15
+ readonly type: "address";
16
+ }, {
17
+ readonly name: "minBalance";
18
+ readonly type: "uint256";
19
+ }];
20
+ readonly outputs: readonly [];
21
+ readonly stateMutability: "view";
22
+ }, {
23
+ readonly type: "function";
24
+ readonly name: "requireMinBalanceSelf";
25
+ readonly inputs: readonly [{
26
+ readonly name: "minBalance";
27
+ readonly type: "uint256";
28
+ }];
29
+ readonly outputs: readonly [];
30
+ readonly stateMutability: "view";
31
+ }, {
32
+ readonly type: "function";
33
+ readonly name: "requireMinERC20Balance";
34
+ readonly inputs: readonly [{
35
+ readonly name: "token";
36
+ readonly type: "address";
37
+ }, {
38
+ readonly name: "owner";
39
+ readonly type: "address";
40
+ }, {
41
+ readonly name: "minBalance";
42
+ readonly type: "uint256";
43
+ }];
44
+ readonly outputs: readonly [];
45
+ readonly stateMutability: "view";
46
+ }, {
47
+ readonly type: "function";
48
+ readonly name: "requireMinERC20BalanceSelf";
49
+ readonly inputs: readonly [{
50
+ readonly name: "token";
51
+ readonly type: "address";
52
+ }, {
53
+ readonly name: "minBalance";
54
+ readonly type: "uint256";
55
+ }];
56
+ readonly outputs: readonly [];
57
+ readonly stateMutability: "view";
58
+ }, {
59
+ readonly type: "function";
60
+ readonly name: "requireMinERC20Allowance";
61
+ readonly inputs: readonly [{
62
+ readonly name: "token";
63
+ readonly type: "address";
64
+ }, {
65
+ readonly name: "owner";
66
+ readonly type: "address";
67
+ }, {
68
+ readonly name: "spender";
69
+ readonly type: "address";
70
+ }, {
71
+ readonly name: "minAllowance";
72
+ readonly type: "uint256";
73
+ }];
74
+ readonly outputs: readonly [];
75
+ readonly stateMutability: "view";
76
+ }, {
77
+ readonly type: "function";
78
+ readonly name: "requireMinERC20AllowanceSelf";
79
+ readonly inputs: readonly [{
80
+ readonly name: "token";
81
+ readonly type: "address";
82
+ }, {
83
+ readonly name: "spender";
84
+ readonly type: "address";
85
+ }, {
86
+ readonly name: "minAllowance";
87
+ readonly type: "uint256";
88
+ }];
89
+ readonly outputs: readonly [];
90
+ readonly stateMutability: "view";
91
+ }, {
92
+ readonly type: "function";
93
+ readonly name: "requireMinERC20BalanceAllowanceSelf";
94
+ readonly inputs: readonly [{
95
+ readonly name: "token";
96
+ readonly type: "address";
97
+ }, {
98
+ readonly name: "spender";
99
+ readonly type: "address";
100
+ }, {
101
+ readonly name: "minAmount";
102
+ readonly type: "uint256";
103
+ }];
104
+ readonly outputs: readonly [];
105
+ readonly stateMutability: "view";
106
+ }, {
107
+ readonly type: "function";
108
+ readonly name: "requireERC721OwnerSelf";
109
+ readonly inputs: readonly [{
110
+ readonly name: "token";
111
+ readonly type: "address";
112
+ }, {
113
+ readonly name: "tokenId";
114
+ readonly type: "uint256";
115
+ }];
116
+ readonly outputs: readonly [];
117
+ readonly stateMutability: "view";
118
+ }, {
119
+ readonly type: "function";
120
+ readonly name: "requireMinERC1155BalanceSelf";
121
+ readonly inputs: readonly [{
122
+ readonly name: "token";
123
+ readonly type: "address";
124
+ }, {
125
+ readonly name: "tokenId";
126
+ readonly type: "uint256";
127
+ }, {
128
+ readonly name: "minBalance";
129
+ readonly type: "uint256";
130
+ }];
131
+ readonly outputs: readonly [];
132
+ readonly stateMutability: "view";
133
+ }];
134
+ //# sourceMappingURL=requireUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireUtils.d.ts","sourceRoot":"","sources":["../../src/abis/requireUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqGlB,CAAA"}
@@ -3,4 +3,5 @@
3
3
  * For `hydratePayload` bytes and selectors, import from `0xtrails/hydrate`.
4
4
  */
5
5
  export { decodeHydrateExecuteAndSweepCalldata, decodeHydrateExecuteCalldata, encodeHydrateExecuteAndSweepCalldata, encodeHydrateExecuteCalldata, } from '../hydrate/encodeExecute.js';
6
+ export { createHydratePayload, encodeMulticallHydrateExecute, type HydrateTypeData, } from '../hydrate/multicall.js';
6
7
  //# sourceMappingURL=trailsHydrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trailsHydrate.d.ts","sourceRoot":"","sources":["../../src/abis/trailsHydrate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,oCAAoC,EACpC,4BAA4B,EAC5B,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"trailsHydrate.d.ts","sourceRoot":"","sources":["../../src/abis/trailsHydrate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,oCAAoC,EACpC,4BAA4B,EAC5B,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"trailsRouter.d.ts","sourceRoot":"","sources":["../../src/abis/trailsRouter.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB,iBAUA;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,EACnD,KAAK,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,mBAAmB,EAAE,MAAM,CAAA;CAC5B,GAAG;IAAE,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA0CpE"}
1
+ {"version":3,"file":"trailsRouter.d.ts","sourceRoot":"","sources":["../../src/abis/trailsRouter.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB,iBAUA;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,EACnD,KAAK,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,mBAAmB,EAAE,MAAM,CAAA;CAC5B,GAAG;IAAE,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2CpE"}
@@ -0,0 +1,414 @@
1
+ import { Address } from 'ox';
2
+ import { TokenOrAddress, FeePercent, LendActionItem, SwapActionItem, DepositActionItem, CustomActionItem, AssertActionItem } from './types.js';
3
+ import { SwapProvider } from './resolvers.js';
4
+ export { SwapType } from './resolvers.js';
5
+ export type { SwapProvider } from './resolvers.js';
6
+ type LendBuilderParams = {
7
+ marketId: string;
8
+ amount?: string;
9
+ amountRaw?: bigint | string;
10
+ inputToken?: string;
11
+ inputTokenNetwork?: string;
12
+ receiverAddress?: `0x${string}`;
13
+ };
14
+ type DepositBuilderParams = {
15
+ marketId: string;
16
+ amount?: string;
17
+ amountRaw?: bigint | string;
18
+ inputToken?: string;
19
+ inputTokenNetwork?: string;
20
+ receiverAddress?: `0x${string}`;
21
+ useMaxAllowance?: boolean;
22
+ };
23
+ type SwapCommonBuilderParams = {
24
+ tokenIn: TokenOrAddress;
25
+ tokenOut: TokenOrAddress;
26
+ fee?: FeePercent;
27
+ provider?: SwapProvider;
28
+ /**
29
+ * Where the swap output is sent. Defaults to the user's wallet for the
30
+ * last action in a batch, and to `self()` (the intent wallet, via the
31
+ * hydration encoder) for intermediate actions so downstream steps can
32
+ * consume the output.
33
+ *
34
+ * Pass `self()` to explicitly route output back to the intent wallet,
35
+ * or a concrete `0x…` address to forward to a third party.
36
+ */
37
+ recipient?: Address.Address;
38
+ };
39
+ type SwapExactInputBuilderParams = SwapCommonBuilderParams & {
40
+ amountIn?: string;
41
+ amountInRaw?: bigint | string;
42
+ minAmountOut?: string;
43
+ minAmountOutRaw?: bigint | string;
44
+ amountOut?: never;
45
+ amountOutRaw?: never;
46
+ maxAmountIn?: never;
47
+ maxAmountInRaw?: never;
48
+ };
49
+ type SwapExactOutputBuilderParams = SwapCommonBuilderParams & {
50
+ amountOut?: string;
51
+ amountOutRaw?: bigint | string;
52
+ maxAmountIn?: string;
53
+ maxAmountInRaw?: bigint | string;
54
+ amountIn?: never;
55
+ amountInRaw?: never;
56
+ minAmountOut?: never;
57
+ minAmountOutRaw?: never;
58
+ };
59
+ export type SwapBuilderParams = SwapExactInputBuilderParams | SwapExactOutputBuilderParams;
60
+ type BuildCustomParams = {
61
+ to: Address.Address;
62
+ /**
63
+ * Raw calldata for the target contract. Omit for native ETH transfers.
64
+ */
65
+ data?: `0x${string}`;
66
+ /**
67
+ * Native value (`msg.value`) to send with this call.
68
+ *
69
+ * - `bigint` — static amount in wei.
70
+ * - `dynamic()` — use the intent wallet's native balance at execution time.
71
+ * The SDK strips the sentinel to `0n` in the encoded payload and attaches
72
+ * a `{ type: "value", address: "self" }` hydration entry so HydrateProxy
73
+ * overwrites `msg.value` just before the call runs. Use this for payable
74
+ * deposits (WETH.deposit(), native-ETH vaults, etc.) where the arriving
75
+ * ETH amount isn't known at build time.
76
+ */
77
+ value?: bigint;
78
+ /**
79
+ * The ERC-20 token the `dynamic()` amount in `data` refers to.
80
+ *
81
+ * At execution time the SDK reads the intent wallet's balance of this token
82
+ * and writes it into the `dynamic()` slot in `data`.
83
+ *
84
+ * Required whenever `data` contains a `dynamic()` amount. The one exception
85
+ * is a bare `approve(spender, dynamic())` call, where `to` is already the
86
+ * token contract and the SDK infers it automatically.
87
+ */
88
+ dynamicAmountToken?: Address.Address;
89
+ };
90
+ type AssertERC20BalanceParams = {
91
+ erc20Balance: {
92
+ token: TokenOrAddress;
93
+ gte?: string;
94
+ gteRaw?: bigint | string;
95
+ };
96
+ };
97
+ type AssertNativeBalanceParams = {
98
+ nativeBalance: {
99
+ gte?: string;
100
+ gteRaw?: bigint | string;
101
+ };
102
+ };
103
+ type AssertNotExpiredParams = {
104
+ notExpired: {
105
+ deadline: number;
106
+ };
107
+ };
108
+ type AssertERC20AllowanceParams = {
109
+ erc20Allowance: {
110
+ token: TokenOrAddress;
111
+ spender: `0x${string}`;
112
+ gte?: string;
113
+ gteRaw?: bigint | string;
114
+ };
115
+ };
116
+ export type AssertBuilderParams = AssertERC20BalanceParams | AssertNativeBalanceParams | AssertNotExpiredParams | AssertERC20AllowanceParams;
117
+ /**
118
+ * Supply liquidity to a supported lending market such as Aave on the
119
+ * destination chain.
120
+ *
121
+ * ### Discovering market IDs
122
+ *
123
+ * Don't hardcode IDs — the Trails API catalogue evolves and the ID shape
124
+ * varies across providers. Fetch the live list:
125
+ * - `getEarnMarkets({ type: "lending", chain, ... })` — programmatic,
126
+ * returns a promise.
127
+ * - `useEarnMarkets({ type: "lending", chain, ... })` — React hook,
128
+ * React Query–backed.
129
+ *
130
+ * Both accept filters by `chain`, `type`, `provider`, free-text `search`,
131
+ * and pagination. Each returned market exposes `.id` (pass to `marketId`),
132
+ * `.token`, `.rewardRate`, `.statistics.tvlUsd`, and provider metadata.
133
+ *
134
+ * ```ts
135
+ * import { useEarnMarkets, lend } from "0xtrails"
136
+ *
137
+ * const { data: markets } = useEarnMarkets({
138
+ * chain: "base",
139
+ * type: "lending",
140
+ * sortBy: "rewardRateDesc",
141
+ * })
142
+ *
143
+ * const action = markets?.[0] &&
144
+ * lend({ marketId: markets[0].id, amount: "50" })
145
+ * ```
146
+ *
147
+ * ### Amounts
148
+ *
149
+ * - `string` — human-readable (e.g. `"50"`), scaled by the underlying
150
+ * token's decimals.
151
+ * - `bigint` — raw wei.
152
+ * - `dynamic()` — supply the intent wallet's full runtime balance of the
153
+ * market's input token. The resolver returns calldata with a placeholder
154
+ * that HydrateProxy replaces at execution time, and emits a fresh
155
+ * `approve(spender, dynamic())` for the same balance.
156
+ *
157
+ * ### Position ownership
158
+ *
159
+ * `receiverAddress` defaults to the connected user wallet, so aTokens /
160
+ * fTokens / cTokens land on the user's EOA by default. Override only
161
+ * when you want the position to belong to a different owner (smart
162
+ * account, treasury, …).
163
+ *
164
+ * @remarks
165
+ * Only supply (enter) is supported. Withdrawals are not part of the
166
+ * Trails intent pipeline — use the protocol's own withdrawal flow
167
+ * directly.
168
+ *
169
+ * @example
170
+ * Supply 50 USDC to a lending market on Base:
171
+ * ```ts
172
+ * lend({
173
+ * marketId: "base-usdc-aave-v3-lending",
174
+ * amount: "50",
175
+ * })
176
+ * ```
177
+ */
178
+ export declare function lend(params: LendBuilderParams): LendActionItem;
179
+ /**
180
+ * Deposit into a vault-style market — ERC-4626 vaults, Morpho, Yearn,
181
+ * SummerFi, Sky, etc. — on the destination chain.
182
+ *
183
+ * Use `deposit` for anything that isn't covered by `lend` (money-market
184
+ * supply): curated vaults, structured products, LP-style deposits that
185
+ * return a share token.
186
+ *
187
+ * ### Discovering market IDs
188
+ *
189
+ * Don't hardcode IDs — fetch the live catalogue via
190
+ * `getEarnMarkets({ type: "vault", chain, ... })` (promise) or
191
+ * `useEarnMarkets({ type: "vault", chain, ... })` (React hook). Each
192
+ * returned market exposes `.id` — pass it straight into `marketId`.
193
+ *
194
+ * ### Amounts
195
+ *
196
+ * - `string` — human-readable (e.g. `"100"`), scaled by the vault's input
197
+ * token decimals.
198
+ * - `bigint` — raw wei.
199
+ * - `dynamic()` — deposit the intent wallet's full runtime balance of the
200
+ * vault's input token.
201
+ *
202
+ * ### Custody and allowance
203
+ *
204
+ * - `receiverAddress` — defaults to the connected user wallet, so shares
205
+ * mint to the user by default. Override only to send shares to a
206
+ * different owner (smart account, treasury, …).
207
+ * - `useMaxAllowance` — when `true` the resolver emits a `uint256.max`
208
+ * approve instead of an exact-amount approve. Reduces gas on subsequent
209
+ * deposits at the cost of a broader allowance.
210
+ *
211
+ * @remarks
212
+ * Only deposit (enter) is supported. Redemptions are not part of the
213
+ * Trails intent pipeline — use the protocol's own withdrawal flow
214
+ * directly.
215
+ *
216
+ * @example
217
+ * Deposit 50 USDC into a vault:
218
+ * ```ts
219
+ * deposit({
220
+ * marketId: "base-usdc-pusdc-0x1401d1271c47648ac70cbcdfa3776d4a87ce006b-4626-vault",
221
+ * amount: "50",
222
+ * })
223
+ * ```
224
+ *
225
+ * @example
226
+ * Deposit 100 USDC, mint shares to a different owner (overriding the
227
+ * default EOA receiver), with unlimited allowance:
228
+ * ```ts
229
+ * deposit({
230
+ * marketId: "base-usdc-pusdc-0x1401d1271c47648ac70cbcdfa3776d4a87ce006b-4626-vault",
231
+ * amount: "100",
232
+ * receiverAddress: "0xabc...", // only needed when you don't want the user's EOA
233
+ * useMaxAllowance: true,
234
+ * })
235
+ * ```
236
+ */
237
+ export declare function deposit(params: DepositBuilderParams): DepositActionItem;
238
+ /**
239
+ * Swap one token for another on the destination chain, executed through a
240
+ * supported on-chain router (Uniswap V3 or SushiSwap V3). Use this for
241
+ * intra-batch token conversions — e.g. bridge USDC, swap to WETH, then
242
+ * lend the WETH.
243
+ *
244
+ * ### Trade type (inferred)
245
+ *
246
+ * Exactly one of `amountIn` / `amountOut` must be provided:
247
+ * - `amountIn` → EXACT_INPUT (spend an exact amount, receive at least `minAmountOut`).
248
+ * - `amountOut` → EXACT_OUTPUT (receive an exact amount, spend up to `maxAmountIn`).
249
+ *
250
+ * Setting both, or neither, throws at build time.
251
+ *
252
+ * ### Amounts
253
+ *
254
+ * - `string` — human-readable (e.g. `"1.25"`), scaled by the relevant
255
+ * token's decimals.
256
+ * - `bigint` — raw wei.
257
+ * - `dynamic()` — permitted on `amountIn` (EXACT_INPUT) and `maxAmountIn`
258
+ * (EXACT_OUTPUT) only. Forbidden on `amountOut` / `minAmountOut`, which
259
+ * must be concrete thresholds. When `maxAmountIn` is omitted for
260
+ * EXACT_OUTPUT it defaults to `dynamic()`, letting Trails spend whatever
261
+ * `tokenIn` balance lands at runtime.
262
+ *
263
+ * ### Pool fee tier (`fee`)
264
+ *
265
+ * Selects the V3 pool tier:
266
+ * - `"0.01"` — 0.01% (stablecoin ↔ stablecoin).
267
+ * - `"0.05"` — 0.05% (correlated pairs, e.g. stETH/ETH).
268
+ * - `"0.3"` — 0.3%, default (most volatile pairs).
269
+ * - `"1"` — 1% (exotic pairs).
270
+ *
271
+ * ### Provider
272
+ *
273
+ * Defaults to `"UNISWAP_V3"`. Pass `"SUSHISWAP_V3"` to route through
274
+ * SushiSwap. If the chosen provider isn't deployed on the destination
275
+ * chain the resolver throws with a suggested alternative.
276
+ *
277
+ * ### Recipient
278
+ *
279
+ * Controls where the swap output is delivered:
280
+ * - Omitted — the resolver routes to the user's wallet for the final
281
+ * action, and to `self()` for intermediate actions so the next step can
282
+ * consume the output from the intent wallet's balance.
283
+ * - `self()` — force delivery back to the intent wallet (via the
284
+ * hydration encoder at execution time).
285
+ * - `0x...` — forward to a third-party address.
286
+ *
287
+ * @example
288
+ * Swap an exact amount (EXACT_INPUT) of WETH to USDC:
289
+ * ```ts
290
+ * swap({
291
+ * tokenIn: "WETH",
292
+ * tokenOut: "USDC",
293
+ * amountIn: "1", // spend 1 WETH
294
+ * minAmountOut: "3000", // revert if output < 3000 USDC
295
+ * fee: "0.05",
296
+ * })
297
+ * ```
298
+ *
299
+ * @example
300
+ * Swap for an exact amount of USDC (EXACT_OUTPUT), capped by a maximum
301
+ * spend:
302
+ * ```ts
303
+ * swap({
304
+ * tokenIn: "WETH",
305
+ * tokenOut: "USDC",
306
+ * amountOut: "3000", // must receive 3000 USDC
307
+ * maxAmountIn: "2", // spend at most 2 WETH
308
+ * })
309
+ * ```
310
+ *
311
+ * @example
312
+ * Chain a swap into a lending supply:
313
+ * ```ts
314
+ * const actions = [
315
+ * swap({
316
+ * tokenIn: "USDC",
317
+ * tokenOut: "WETH",
318
+ * amountIn: "100",
319
+ * minAmountOut: "0.03",
320
+ * }),
321
+ * lend({
322
+ * marketId: "base-weth-aave-v3-lending",
323
+ * amount: "0.03",
324
+ * }),
325
+ * ]
326
+ * ```
327
+ *
328
+ * @example
329
+ * Route the swap output to a third party via SushiSwap:
330
+ * ```ts
331
+ * swap({
332
+ * provider: "SUSHISWAP_V3",
333
+ * tokenIn: "USDC",
334
+ * tokenOut: "WETH",
335
+ * amountIn: "100",
336
+ * recipient: "0xabc...",
337
+ * })
338
+ * ```
339
+ */
340
+ export declare function swap(params: SwapBuilderParams): SwapActionItem;
341
+ /**
342
+ * Insert an on-chain condition check into the batch. If the condition fails
343
+ * at execution time the entire batch reverts.
344
+ *
345
+ * Conditions compile to calls against the deployed `RequireUtils` contract
346
+ * (part of `TrailsUtils`).
347
+ *
348
+ * Named `assertCondition` (not `assert`) to avoid shadowing `node:assert`
349
+ * and test-framework `assert` helpers at import sites.
350
+ *
351
+ * @example
352
+ * ```ts
353
+ * // Revert if the wallet holds less than 2,400 USDC after the swap
354
+ * assertCondition({ erc20Balance: { token: "USDC", gte: "2400" } })
355
+ *
356
+ * // Revert if native balance is below 0.5 ETH
357
+ * assertCondition({ nativeBalance: { gte: "0.5" } })
358
+ *
359
+ * // Revert if the batch is executed after the deadline
360
+ * assertCondition({ notExpired: { deadline: 1712600000 } })
361
+ *
362
+ * // Revert if allowance is insufficient
363
+ * assertCondition({ erc20Allowance: { token: "USDC", spender: "0x...", gte: "1000" } })
364
+ * ```
365
+ */
366
+ export declare function assertCondition(params: AssertBuilderParams): AssertActionItem;
367
+ /**
368
+ * Wrap a raw contract call as an action item. Use this for custom protocol
369
+ * interactions not covered by the typed builders. Omit `data` for native ETH
370
+ * transfers; the builder normalizes empty calldata to `"0x"` for execution.
371
+ *
372
+ * ### `dynamic()` amounts in custom calldata
373
+ *
374
+ * If `data` contains a `dynamic()` sentinel, you must set
375
+ * `dynamicAmountToken` to the ERC-20 whose runtime balance should replace
376
+ * the sentinel — **unless** the call itself is an `approve(spender,
377
+ * dynamic())`, in which case `to` IS the token contract and the encoder
378
+ * infers it. There is no implicit fallback to the batch destination token;
379
+ * forgetting `dynamicAmountToken` throws at build time.
380
+ *
381
+ * ### `dynamic()` for native `msg.value`
382
+ *
383
+ * Pass `value: dynamic()` for payable calls whose `msg.value` must equal the
384
+ * intent wallet's runtime native balance (e.g. `WETH.deposit()`, native-ETH
385
+ * vault deposits). The SDK strips the sentinel to `0n` in the encoded
386
+ * payload and attaches a `{ type: "value", address: "self" }` hydration
387
+ * entry so HydrateProxy overwrites `msg.value` just before the call runs —
388
+ * callers don't author hydration entries directly.
389
+ *
390
+ * @example
391
+ * ```ts
392
+ * // Raw Uniswap swap with dynamic amountIn — dynamicAmountToken REQUIRED
393
+ * custom({
394
+ * to: UNISWAP_ROUTER,
395
+ * data: encodeExactInputSingle({ tokenIn: USDC, amountIn: dynamic(), ... }),
396
+ * dynamicAmountToken: USDC, // ← tells the encoder to hydrate from balanceOf(USDC)
397
+ * })
398
+ *
399
+ * // Payable WETH.deposit() with runtime-resolved msg.value
400
+ * custom({
401
+ * to: WETH,
402
+ * data: encodeFunctionData({ abi: wethAbi, functionName: "deposit", args: [] }),
403
+ * value: dynamic(), // ← SDK auto-hydrates msg.value from the wallet's ETH balance
404
+ * })
405
+ *
406
+ * // Plain ETH transfer
407
+ * custom({
408
+ * to: "0xabc...",
409
+ * value: 1_000_000_000_000_000n,
410
+ * })
411
+ * ```
412
+ */
413
+ export declare function custom(params: BuildCustomParams): CustomActionItem;
414
+ //# sourceMappingURL=actionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionBuilder.d.ts","sourceRoot":"","sources":["../../src/actions/actionBuilder.ts"],"names":[],"mappings":"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"}