@eth-optimism/actions-sdk 0.2.0 → 0.3.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 (271) hide show
  1. package/dist/__mocks__/MockAssets.d.ts.map +1 -1
  2. package/dist/__mocks__/MockAssets.js +2 -0
  3. package/dist/__mocks__/MockAssets.js.map +1 -1
  4. package/dist/__tests__/actions.test.js +0 -4
  5. package/dist/__tests__/actions.test.js.map +1 -1
  6. package/dist/actions.d.ts +20 -1
  7. package/dist/actions.d.ts.map +1 -1
  8. package/dist/actions.js +37 -13
  9. package/dist/actions.js.map +1 -1
  10. package/dist/constants/assets.d.ts +4 -0
  11. package/dist/constants/assets.d.ts.map +1 -1
  12. package/dist/constants/assets.js +15 -0
  13. package/dist/constants/assets.js.map +1 -1
  14. package/dist/constants/contracts.d.ts +4 -0
  15. package/dist/constants/contracts.d.ts.map +1 -0
  16. package/dist/constants/contracts.js +3 -0
  17. package/dist/constants/contracts.js.map +1 -0
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/lend/core/LendProvider.d.ts +0 -6
  23. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  24. package/dist/lend/core/LendProvider.js +6 -15
  25. package/dist/lend/core/LendProvider.js.map +1 -1
  26. package/dist/lend/core/__tests__/LendProvider.test.js +2 -4
  27. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
  28. package/dist/lend/providers/morpho/__tests__/sdk.test.js +3 -2
  29. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  30. package/dist/lend/providers/morpho/api.d.ts +4 -0
  31. package/dist/lend/providers/morpho/api.d.ts.map +1 -1
  32. package/dist/lend/providers/morpho/api.js.map +1 -1
  33. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  34. package/dist/lend/providers/morpho/sdk.js +10 -1
  35. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  36. package/dist/supported/tokens.d.ts.map +1 -1
  37. package/dist/supported/tokens.js +9 -2
  38. package/dist/supported/tokens.js.map +1 -1
  39. package/dist/swap/__mocks__/MockSwapProvider.d.ts +38 -0
  40. package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
  41. package/dist/swap/__mocks__/MockSwapProvider.js +138 -0
  42. package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
  43. package/dist/swap/core/SwapProvider.d.ts +56 -0
  44. package/dist/swap/core/SwapProvider.d.ts.map +1 -0
  45. package/dist/swap/core/SwapProvider.js +177 -0
  46. package/dist/swap/core/SwapProvider.js.map +1 -0
  47. package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
  48. package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
  49. package/dist/swap/core/__tests__/SwapProvider.test.js +329 -0
  50. package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
  51. package/dist/swap/index.d.ts +7 -0
  52. package/dist/swap/index.d.ts.map +1 -0
  53. package/dist/swap/index.js +8 -0
  54. package/dist/swap/index.js.map +1 -0
  55. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
  56. package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
  57. package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
  58. package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
  59. package/dist/swap/namespaces/BaseSwapNamespace.d.ts +33 -0
  60. package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
  61. package/dist/swap/namespaces/BaseSwapNamespace.js +58 -0
  62. package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
  63. package/dist/swap/namespaces/WalletSwapNamespace.d.ts +22 -0
  64. package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
  65. package/dist/swap/namespaces/WalletSwapNamespace.js +60 -0
  66. package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
  67. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
  68. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
  69. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +106 -0
  70. package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
  71. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
  72. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
  73. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +132 -0
  74. package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
  75. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +68 -0
  76. package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
  77. package/dist/swap/providers/uniswap/UniswapSwapProvider.js +206 -0
  78. package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
  79. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
  80. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
  81. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +257 -0
  82. package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
  83. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
  84. package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
  85. package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
  86. package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
  87. package/dist/swap/providers/uniswap/abis.d.ts +227 -0
  88. package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
  89. package/dist/swap/providers/uniswap/abis.js +138 -0
  90. package/dist/swap/providers/uniswap/abis.js.map +1 -0
  91. package/dist/swap/providers/uniswap/addresses.d.ts +21 -0
  92. package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
  93. package/dist/swap/providers/uniswap/addresses.js +81 -0
  94. package/dist/swap/providers/uniswap/addresses.js.map +1 -0
  95. package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
  96. package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
  97. package/dist/swap/providers/uniswap/encoding.js +233 -0
  98. package/dist/swap/providers/uniswap/encoding.js.map +1 -0
  99. package/dist/swap/providers/uniswap/types.d.ts +20 -0
  100. package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
  101. package/dist/swap/providers/uniswap/types.js +2 -0
  102. package/dist/swap/providers/uniswap/types.js.map +1 -0
  103. package/dist/types/actions.d.ts +19 -5
  104. package/dist/types/actions.d.ts.map +1 -1
  105. package/dist/types/index.d.ts +2 -0
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/dist/types/index.js +2 -0
  108. package/dist/types/index.js.map +1 -1
  109. package/dist/types/lend/base.d.ts +3 -13
  110. package/dist/types/lend/base.d.ts.map +1 -1
  111. package/dist/types/lend/base.js.map +1 -1
  112. package/dist/types/swap/base.d.ts +238 -0
  113. package/dist/types/swap/base.d.ts.map +1 -0
  114. package/dist/types/swap/base.js +4 -0
  115. package/dist/types/swap/base.js.map +1 -0
  116. package/dist/types/swap/index.d.ts +2 -0
  117. package/dist/types/swap/index.d.ts.map +1 -0
  118. package/dist/types/swap/index.js +2 -0
  119. package/dist/types/swap/index.js.map +1 -0
  120. package/dist/types/transaction.d.ts +14 -0
  121. package/dist/types/transaction.d.ts.map +1 -0
  122. package/dist/types/transaction.js +2 -0
  123. package/dist/types/transaction.js.map +1 -0
  124. package/dist/utils/assets.d.ts +4 -5
  125. package/dist/utils/assets.d.ts.map +1 -1
  126. package/dist/utils/assets.js +4 -11
  127. package/dist/utils/assets.js.map +1 -1
  128. package/dist/utils/assets.test.js +13 -1
  129. package/dist/utils/assets.test.js.map +1 -1
  130. package/dist/utils/permit2.d.ts +46 -0
  131. package/dist/utils/permit2.d.ts.map +1 -0
  132. package/dist/utils/permit2.js +100 -0
  133. package/dist/utils/permit2.js.map +1 -0
  134. package/dist/utils/permit2.test.d.ts +2 -0
  135. package/dist/utils/permit2.test.d.ts.map +1 -0
  136. package/dist/utils/permit2.test.js +110 -0
  137. package/dist/utils/permit2.test.js.map +1 -0
  138. package/dist/utils/validation.d.ts +12 -0
  139. package/dist/utils/validation.d.ts.map +1 -0
  140. package/dist/utils/validation.js +44 -0
  141. package/dist/utils/validation.js.map +1 -0
  142. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +7 -1
  143. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  144. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
  145. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  146. package/dist/wallet/core/providers/hosted/types/index.d.ts +5 -1
  147. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  148. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +7 -1
  149. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  150. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
  151. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  152. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +2 -2
  153. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  154. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +13 -2
  155. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  156. package/dist/wallet/core/wallets/abstract/Wallet.js +7 -1
  157. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  158. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +7 -2
  159. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  160. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
  161. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  162. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  163. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  164. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
  165. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  166. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  167. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +4 -3
  168. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  169. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -1
  170. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  171. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
  172. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  173. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +6 -1
  174. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  175. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
  176. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  177. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  178. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  179. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  180. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  181. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +7 -1
  182. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  183. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +6 -2
  184. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  185. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -0
  186. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  187. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
  188. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  189. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -2
  190. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  191. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -0
  192. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  193. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -3
  194. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  195. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +5 -4
  196. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  197. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
  198. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
  199. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  200. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +7 -1
  201. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  202. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
  203. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  204. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -1
  205. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  206. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  207. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  208. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
  209. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  210. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  211. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  212. package/package.json +2 -2
  213. package/src/__mocks__/MockAssets.ts +2 -0
  214. package/src/__tests__/actions.test.ts +0 -4
  215. package/src/actions.ts +57 -19
  216. package/src/constants/assets.ts +16 -0
  217. package/src/constants/contracts.ts +5 -0
  218. package/src/index.ts +30 -2
  219. package/src/lend/core/LendProvider.ts +6 -18
  220. package/src/lend/core/__tests__/LendProvider.test.ts +2 -5
  221. package/src/lend/providers/morpho/__tests__/sdk.test.ts +3 -2
  222. package/src/lend/providers/morpho/api.ts +4 -0
  223. package/src/lend/providers/morpho/sdk.ts +10 -1
  224. package/src/supported/tokens.ts +16 -2
  225. package/src/swap/__mocks__/MockSwapProvider.ts +216 -0
  226. package/src/swap/core/SwapProvider.ts +319 -0
  227. package/src/swap/core/__tests__/SwapProvider.test.ts +478 -0
  228. package/src/swap/index.ts +14 -0
  229. package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
  230. package/src/swap/namespaces/BaseSwapNamespace.ts +77 -0
  231. package/src/swap/namespaces/WalletSwapNamespace.ts +82 -0
  232. package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +138 -0
  233. package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +162 -0
  234. package/src/swap/providers/uniswap/UniswapSwapProvider.ts +304 -0
  235. package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
  236. package/src/swap/providers/uniswap/__tests__/sdk.test.ts +370 -0
  237. package/src/swap/providers/uniswap/abis.ts +144 -0
  238. package/src/swap/providers/uniswap/addresses.ts +108 -0
  239. package/src/swap/providers/uniswap/encoding.ts +406 -0
  240. package/src/swap/providers/uniswap/types.ts +24 -0
  241. package/src/types/actions.ts +22 -6
  242. package/src/types/index.ts +2 -0
  243. package/src/types/lend/base.ts +4 -14
  244. package/src/types/swap/base.ts +259 -0
  245. package/src/types/swap/index.ts +1 -0
  246. package/src/types/transaction.ts +14 -0
  247. package/src/utils/assets.test.ts +16 -1
  248. package/src/utils/assets.ts +13 -10
  249. package/src/utils/permit2.test.ts +142 -0
  250. package/src/utils/permit2.ts +144 -0
  251. package/src/utils/validation.ts +76 -0
  252. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +9 -1
  253. package/src/wallet/core/providers/hosted/types/index.ts +5 -1
  254. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +13 -1
  255. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +2 -0
  256. package/src/wallet/core/wallets/abstract/Wallet.ts +18 -2
  257. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +14 -5
  258. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -2
  259. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -2
  260. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -2
  261. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +11 -2
  262. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
  263. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +10 -2
  264. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -0
  265. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +9 -2
  266. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -0
  267. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +9 -4
  268. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +18 -6
  269. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -2
  270. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -2
  271. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapProvider.js","sourceRoot":"","sources":["../../../src/swap/core/SwapProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SwapProvider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapProvider.test.d.ts","sourceRoot":"","sources":["../../../../src/swap/core/__tests__/SwapProvider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,329 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { MockSwapProvider } from '../../__mocks__/MockSwapProvider.js';
3
+ // Test assets
4
+ const MockUSDC = {
5
+ type: 'erc20',
6
+ address: { 84532: '0x1111111111111111111111111111111111111111' },
7
+ metadata: { name: 'USD Coin', symbol: 'USDC', decimals: 6 },
8
+ };
9
+ const MockWETH = {
10
+ type: 'erc20',
11
+ address: { 84532: '0x2222222222222222222222222222222222222222' },
12
+ metadata: { name: 'Wrapped Ether', symbol: 'WETH', decimals: 18 },
13
+ };
14
+ const MockOP = {
15
+ type: 'erc20',
16
+ address: { 84532: '0x3333333333333333333333333333333333333333' },
17
+ metadata: { name: 'Optimism', symbol: 'OP', decimals: 18 },
18
+ };
19
+ describe('SwapProvider', () => {
20
+ describe('constructor and configuration', () => {
21
+ it('should initialize with default config', () => {
22
+ const provider = new MockSwapProvider();
23
+ expect(provider).toBeDefined();
24
+ expect(provider.supportedChainIds()).toContain(84532);
25
+ });
26
+ it('should use default slippage when not configured', () => {
27
+ const provider = new MockSwapProvider();
28
+ expect(provider.defaultSlippage).toBe(0.005);
29
+ });
30
+ it('should use config slippage when provided', () => {
31
+ const provider = new MockSwapProvider({ defaultSlippage: 0.01 });
32
+ expect(provider.defaultSlippage).toBe(0.01);
33
+ });
34
+ it('should store market allowlist when provided', () => {
35
+ const config = {
36
+ assets: [MockUSDC, MockWETH],
37
+ chainId: 84532,
38
+ };
39
+ const provider = new MockSwapProvider({ marketAllowlist: [config] });
40
+ expect(provider.config.marketAllowlist).toEqual([config]);
41
+ });
42
+ });
43
+ describe('execute()', () => {
44
+ it('should throw if neither amountIn nor amountOut provided', async () => {
45
+ const provider = new MockSwapProvider();
46
+ await expect(provider.execute({
47
+ assetIn: MockUSDC,
48
+ assetOut: MockWETH,
49
+ chainId: 84532,
50
+ walletAddress: '0x1234',
51
+ })).rejects.toThrow('Either amountIn or amountOut must be provided');
52
+ });
53
+ it('should throw if chain not supported', async () => {
54
+ const provider = new MockSwapProvider();
55
+ await expect(provider.execute({
56
+ amountIn: 100,
57
+ assetIn: MockUSDC,
58
+ assetOut: MockWETH,
59
+ chainId: 999,
60
+ walletAddress: '0x1234',
61
+ })).rejects.toThrow('Chain 999 is not supported');
62
+ });
63
+ it('should throw if asset not supported on chain', async () => {
64
+ const unsupportedAsset = {
65
+ type: 'erc20',
66
+ address: { 1: '0x1111' }, // Only on mainnet
67
+ metadata: { name: 'Test', symbol: 'TEST', decimals: 18 },
68
+ };
69
+ const provider = new MockSwapProvider();
70
+ await expect(provider.execute({
71
+ amountIn: 100,
72
+ assetIn: unsupportedAsset,
73
+ assetOut: MockWETH,
74
+ chainId: 84532,
75
+ walletAddress: '0x1234',
76
+ })).rejects.toThrow('not supported on chain');
77
+ });
78
+ it('should use param slippage over config default', async () => {
79
+ const provider = new MockSwapProvider({ defaultSlippage: 0.01 });
80
+ const result = await provider.execute({
81
+ amountIn: 100,
82
+ assetIn: MockUSDC,
83
+ assetOut: MockWETH,
84
+ chainId: 84532,
85
+ walletAddress: '0x1234',
86
+ slippage: 0.02,
87
+ });
88
+ expect(result).toBeDefined();
89
+ // Slippage is passed to internal params
90
+ expect(provider.mockExecute).toHaveBeenCalledWith(expect.objectContaining({ slippage: 0.02 }));
91
+ });
92
+ it('should use default deadline when not specified', async () => {
93
+ const provider = new MockSwapProvider();
94
+ const beforeTime = Math.floor(Date.now() / 1000);
95
+ await provider.execute({
96
+ amountIn: 100,
97
+ assetIn: MockUSDC,
98
+ assetOut: MockWETH,
99
+ chainId: 84532,
100
+ walletAddress: '0x1234',
101
+ });
102
+ const afterTime = Math.floor(Date.now() / 1000) + 60;
103
+ expect(provider.mockExecute).toHaveBeenCalledWith(expect.objectContaining({
104
+ deadline: expect.any(Number),
105
+ }));
106
+ const call = provider.mockExecute.mock.calls[0][0];
107
+ expect(call.deadline).toBeGreaterThanOrEqual(beforeTime + 60);
108
+ expect(call.deadline).toBeLessThanOrEqual(afterTime);
109
+ });
110
+ it('should convert human-readable amounts to wei', async () => {
111
+ const provider = new MockSwapProvider();
112
+ await provider.execute({
113
+ amountIn: 100,
114
+ assetIn: MockUSDC, // 6 decimals
115
+ assetOut: MockWETH,
116
+ chainId: 84532,
117
+ walletAddress: '0x1234',
118
+ });
119
+ expect(provider.mockExecute).toHaveBeenCalledWith(expect.objectContaining({
120
+ amountInWei: 100000000n, // 100 * 10^6
121
+ }));
122
+ });
123
+ it('should return swap transaction', async () => {
124
+ const provider = new MockSwapProvider();
125
+ const result = await provider.execute({
126
+ amountIn: 100,
127
+ assetIn: MockUSDC,
128
+ assetOut: MockWETH,
129
+ chainId: 84532,
130
+ walletAddress: '0x1234',
131
+ });
132
+ expect(result.amountIn).toBeDefined();
133
+ expect(result.amountOut).toBeDefined();
134
+ expect(result.transactionData.swap).toBeDefined();
135
+ });
136
+ });
137
+ describe('getPrice()', () => {
138
+ it('should throw if chain not supported', async () => {
139
+ const provider = new MockSwapProvider();
140
+ await expect(provider.getPrice({
141
+ assetIn: MockUSDC,
142
+ assetOut: MockWETH,
143
+ chainId: 999,
144
+ })).rejects.toThrow('Chain 999 is not supported');
145
+ });
146
+ it('should return price quote', async () => {
147
+ const provider = new MockSwapProvider();
148
+ const price = await provider.getPrice({
149
+ assetIn: MockUSDC,
150
+ assetOut: MockWETH,
151
+ amountIn: 100,
152
+ chainId: 84532,
153
+ });
154
+ expect(price.price).toBeDefined();
155
+ expect(price.amountIn).toBeDefined();
156
+ expect(price.amountOut).toBeDefined();
157
+ expect(price.route).toBeDefined();
158
+ });
159
+ });
160
+ describe('getMarket()', () => {
161
+ it('should throw if chain not supported', async () => {
162
+ const provider = new MockSwapProvider();
163
+ await expect(provider.getMarket({
164
+ poolId: '0xpool1',
165
+ chainId: 999,
166
+ })).rejects.toThrow('Chain 999 is not supported');
167
+ });
168
+ it('should return market info', async () => {
169
+ const provider = new MockSwapProvider();
170
+ const market = await provider.getMarket({
171
+ poolId: '0xpool1',
172
+ chainId: 84532,
173
+ });
174
+ expect(market.marketId.poolId).toBe('0xpool1');
175
+ expect(market.assets).toHaveLength(2);
176
+ expect(market.provider).toBe('uniswap');
177
+ });
178
+ });
179
+ describe('getMarkets()', () => {
180
+ it('should return markets array', async () => {
181
+ const provider = new MockSwapProvider();
182
+ const markets = await provider.getMarkets();
183
+ expect(Array.isArray(markets)).toBe(true);
184
+ expect(markets.length).toBeGreaterThan(0);
185
+ });
186
+ it('should validate chainId if provided', async () => {
187
+ const provider = new MockSwapProvider();
188
+ await expect(provider.getMarkets({ chainId: 999 })).rejects.toThrow('Chain 999 is not supported');
189
+ });
190
+ });
191
+ describe('supportedChainIds()', () => {
192
+ it('should return array of supported chain IDs', () => {
193
+ const provider = new MockSwapProvider();
194
+ const chainIds = provider.supportedChainIds();
195
+ expect(Array.isArray(chainIds)).toBe(true);
196
+ expect(chainIds).toContain(84532);
197
+ });
198
+ });
199
+ describe('isChainSupported()', () => {
200
+ it('should return true for supported chain', () => {
201
+ const provider = new MockSwapProvider();
202
+ expect(provider.isChainSupported(84532)).toBe(true);
203
+ });
204
+ it('should return false for unsupported chain', () => {
205
+ const provider = new MockSwapProvider();
206
+ expect(provider.isChainSupported(999)).toBe(false);
207
+ });
208
+ });
209
+ describe('validateMarketAllowed()', () => {
210
+ it('should allow any pair when no allowlist configured', () => {
211
+ const provider = new MockSwapProvider();
212
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockWETH, 84532)).not.toThrow();
213
+ });
214
+ it('should allow pairs in allowlist', () => {
215
+ const config = {
216
+ assets: [MockUSDC, MockWETH],
217
+ chainId: 84532,
218
+ };
219
+ const provider = new MockSwapProvider({ marketAllowlist: [config] });
220
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockWETH, 84532)).not.toThrow();
221
+ });
222
+ it('should reject pairs not in allowlist', () => {
223
+ const config = {
224
+ assets: [MockUSDC, MockWETH],
225
+ chainId: 84532,
226
+ };
227
+ const provider = new MockSwapProvider({ marketAllowlist: [config] });
228
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockOP, 84532)).toThrow('not in the allowlist');
229
+ });
230
+ it('should match pairs regardless of order', () => {
231
+ const config = {
232
+ assets: [MockUSDC, MockWETH],
233
+ chainId: 84532,
234
+ };
235
+ const provider = new MockSwapProvider({ marketAllowlist: [config] });
236
+ // Reversed order should still match
237
+ expect(() => provider.testValidateMarketAllowed(MockWETH, MockUSDC, 84532)).not.toThrow();
238
+ });
239
+ it('should reject blocklisted pairs', () => {
240
+ const config = {
241
+ assets: [MockUSDC, MockOP],
242
+ chainId: 84532,
243
+ };
244
+ const provider = new MockSwapProvider({ marketBlocklist: [config] });
245
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockOP, 84532)).toThrow('is blocked');
246
+ });
247
+ it('should check blocklist before allowlist', () => {
248
+ const allowConfig = {
249
+ assets: [MockUSDC, MockWETH],
250
+ chainId: 84532,
251
+ };
252
+ const blockConfig = {
253
+ assets: [MockUSDC, MockWETH],
254
+ chainId: 84532,
255
+ };
256
+ const provider = new MockSwapProvider({
257
+ marketAllowlist: [allowConfig],
258
+ marketBlocklist: [blockConfig],
259
+ });
260
+ // Blocklist takes precedence
261
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockWETH, 84532)).toThrow('is blocked');
262
+ });
263
+ it('should expand multi-asset filter to all pairs', () => {
264
+ const config = {
265
+ assets: [MockUSDC, MockWETH, MockOP],
266
+ chainId: 84532,
267
+ };
268
+ const provider = new MockSwapProvider({ marketAllowlist: [config] });
269
+ // All 3 pairs should be allowed: USDC/WETH, USDC/OP, WETH/OP
270
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockWETH, 84532)).not.toThrow();
271
+ expect(() => provider.testValidateMarketAllowed(MockUSDC, MockOP, 84532)).not.toThrow();
272
+ expect(() => provider.testValidateMarketAllowed(MockWETH, MockOP, 84532)).not.toThrow();
273
+ });
274
+ it('should match any chain when filter has no chainId', () => {
275
+ // Assets with addresses on both chains
276
+ const multiChainUSDC = {
277
+ ...MockUSDC,
278
+ address: {
279
+ 84532: '0x1111111111111111111111111111111111111111',
280
+ 10: '0x1111111111111111111111111111111111111112',
281
+ },
282
+ };
283
+ const multiChainWETH = {
284
+ ...MockWETH,
285
+ address: {
286
+ 84532: '0x2222222222222222222222222222222222222222',
287
+ 10: '0x2222222222222222222222222222222222222223',
288
+ },
289
+ };
290
+ const config = {
291
+ assets: [multiChainUSDC, multiChainWETH],
292
+ };
293
+ const provider = new MockSwapProvider({ marketAllowlist: [config] }, {
294
+ supportedChains: [84532, 10],
295
+ });
296
+ // Should match on any supported chain
297
+ expect(() => provider.testValidateMarketAllowed(multiChainUSDC, multiChainWETH, 84532)).not.toThrow();
298
+ expect(() => provider.testValidateMarketAllowed(multiChainUSDC, multiChainWETH, 10)).not.toThrow();
299
+ });
300
+ it('should scope filter to specific chainId when provided', () => {
301
+ const multiChainUSDC = {
302
+ ...MockUSDC,
303
+ address: {
304
+ 84532: '0x1111111111111111111111111111111111111111',
305
+ 10: '0x1111111111111111111111111111111111111112',
306
+ },
307
+ };
308
+ const multiChainWETH = {
309
+ ...MockWETH,
310
+ address: {
311
+ 84532: '0x2222222222222222222222222222222222222222',
312
+ 10: '0x2222222222222222222222222222222222222223',
313
+ },
314
+ };
315
+ const config = {
316
+ assets: [multiChainUSDC, multiChainWETH],
317
+ chainId: 84532,
318
+ };
319
+ const provider = new MockSwapProvider({ marketAllowlist: [config] }, {
320
+ supportedChains: [84532, 10],
321
+ });
322
+ // Should match on 84532
323
+ expect(() => provider.testValidateMarketAllowed(multiChainUSDC, multiChainWETH, 84532)).not.toThrow();
324
+ // Should NOT match on chain 10
325
+ expect(() => provider.testValidateMarketAllowed(multiChainUSDC, multiChainWETH, 10)).toThrow('not in the allowlist');
326
+ });
327
+ });
328
+ });
329
+ //# sourceMappingURL=SwapProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapProvider.test.js","sourceRoot":"","sources":["../../../../src/swap/core/__tests__/SwapProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { SwapProvider } from './core/SwapProvider.js';
2
+ export { ActionsSwapNamespace } from './namespaces/ActionsSwapNamespace.js';
3
+ export { BaseSwapNamespace } from './namespaces/BaseSwapNamespace.js';
4
+ export { WalletSwapNamespace } from './namespaces/WalletSwapNamespace.js';
5
+ export type { UniswapMarketConfig, UniswapSwapProviderConfig, } from './providers/uniswap/types.js';
6
+ export { UniswapSwapProvider } from './providers/uniswap/UniswapSwapProvider.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAG9E,YAAY,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA"}
@@ -0,0 +1,8 @@
1
+ // Core
2
+ export { SwapProvider } from './core/SwapProvider.js';
3
+ // Namespaces
4
+ export { ActionsSwapNamespace } from './namespaces/ActionsSwapNamespace.js';
5
+ export { BaseSwapNamespace } from './namespaces/BaseSwapNamespace.js';
6
+ export { WalletSwapNamespace } from './namespaces/WalletSwapNamespace.js';
7
+ export { UniswapSwapProvider } from './providers/uniswap/UniswapSwapProvider.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,aAAa;AACb,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAO9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { BaseSwapNamespace } from './BaseSwapNamespace.js';
2
+ /**
3
+ * Actions swap namespace (read-only, no wallet required)
4
+ * @description Provides price(), getMarket(), and getMarkets() for read-only access without a wallet
5
+ */
6
+ export declare class ActionsSwapNamespace extends BaseSwapNamespace {
7
+ }
8
+ //# sourceMappingURL=ActionsSwapNamespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/ActionsSwapNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE1E;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { BaseSwapNamespace } from './BaseSwapNamespace.js';
2
+ /**
3
+ * Actions swap namespace (read-only, no wallet required)
4
+ * @description Provides price(), getMarket(), and getMarkets() for read-only access without a wallet
5
+ */
6
+ export class ActionsSwapNamespace extends BaseSwapNamespace {
7
+ }
8
+ //# sourceMappingURL=ActionsSwapNamespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/ActionsSwapNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE1E;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;CAAG"}
@@ -0,0 +1,33 @@
1
+ import type { SupportedChainId } from '../../constants/supportedChains.js';
2
+ import type { SwapProvider } from '../core/SwapProvider.js';
3
+ import type { GetSwapMarketParams, GetSwapMarketsParams, SwapMarket, SwapPrice, SwapPriceParams, SwapProviderConfig, SwapProviders } from '../../types/swap/index.js';
4
+ /**
5
+ * Base swap namespace with shared read-only operations
6
+ */
7
+ export declare abstract class BaseSwapNamespace {
8
+ protected readonly providers: SwapProviders;
9
+ constructor(providers: SwapProviders);
10
+ /**
11
+ * Get price quote for a swap
12
+ */
13
+ price(params: SwapPriceParams): Promise<SwapPrice>;
14
+ /**
15
+ * Get a specific swap market
16
+ * @param params - Market identifier
17
+ * @returns Market information
18
+ */
19
+ getMarket(params: GetSwapMarketParams): Promise<SwapMarket>;
20
+ /**
21
+ * Get available swap markets across all providers
22
+ * @param params - Optional filtering by chainId or asset
23
+ * @returns Promise resolving to array of markets from all providers
24
+ */
25
+ getMarkets(params?: GetSwapMarketsParams): Promise<SwapMarket[]>;
26
+ /**
27
+ * Get all supported chain IDs across all providers
28
+ */
29
+ supportedChainIds(): SupportedChainId[];
30
+ protected getAllProviders(): Array<SwapProvider<SwapProviderConfig>>;
31
+ protected getProvider(): SwapProvider<SwapProviderConfig>;
32
+ }
33
+ //# sourceMappingURL=BaseSwapNamespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/BaseSwapNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,aAAa,EACd,MAAM,uBAAuB,CAAA;AAE9B;;GAEG;AACH,8BAAsB,iBAAiB;IACzB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa;gBAAxB,SAAS,EAAE,aAAa;IAEvD;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAKxD;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjE;;;;OAIG;IACG,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1E;;OAEG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAWvC,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAOpE,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,kBAAkB,CAAC;CAO1D"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Base swap namespace with shared read-only operations
3
+ */
4
+ export class BaseSwapNamespace {
5
+ constructor(providers) {
6
+ this.providers = providers;
7
+ }
8
+ /**
9
+ * Get price quote for a swap
10
+ */
11
+ async price(params) {
12
+ const provider = this.getProvider();
13
+ return provider.getPrice(params);
14
+ }
15
+ /**
16
+ * Get a specific swap market
17
+ * @param params - Market identifier
18
+ * @returns Market information
19
+ */
20
+ async getMarket(params) {
21
+ const provider = this.getProvider();
22
+ return provider.getMarket(params);
23
+ }
24
+ /**
25
+ * Get available swap markets across all providers
26
+ * @param params - Optional filtering by chainId or asset
27
+ * @returns Promise resolving to array of markets from all providers
28
+ */
29
+ async getMarkets(params = {}) {
30
+ const results = await Promise.all(this.getAllProviders().map((p) => p.getMarkets(params)));
31
+ return results.flat();
32
+ }
33
+ /**
34
+ * Get all supported chain IDs across all providers
35
+ */
36
+ supportedChainIds() {
37
+ const chainIds = new Set();
38
+ for (const provider of this.getAllProviders()) {
39
+ for (const chainId of provider.supportedChainIds()) {
40
+ chainIds.add(chainId);
41
+ }
42
+ }
43
+ return Array.from(chainIds);
44
+ }
45
+ // SwapProviders keys are optional (uniswap?, aerodrome?, etc.) so filter out unconfigured ones
46
+ getAllProviders() {
47
+ return Object.values(this.providers).filter((p) => p !== undefined);
48
+ }
49
+ // Future: resolve the best provider for given params (e.g. best price across Uniswap, Aerodrome, etc.)
50
+ getProvider() {
51
+ const provider = this.providers.uniswap;
52
+ if (!provider) {
53
+ throw new Error('No swap provider configured');
54
+ }
55
+ return provider;
56
+ }
57
+ }
58
+ //# sourceMappingURL=BaseSwapNamespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/BaseSwapNamespace.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,OAAgB,iBAAiB;IACrC,YAA+B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAE3D;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAuB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACnC,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,MAA2B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACnC,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,SAA+B,EAAE;QAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACxD,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBACnD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAED,+FAA+F;IACrF,eAAe;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CACzC,CAAC,CAAC,EAAyC,EAAE,CAAC,CAAC,KAAK,SAAS,CAC9D,CAAA;IACH,CAAC;IAED,uGAAuG;IAC7F,WAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAA;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { BaseSwapNamespace } from './BaseSwapNamespace.js';
2
+ import type { SwapProviders, SwapReceipt, WalletSwapParams } from '../../types/swap/index.js';
3
+ import type { Wallet } from '../../wallet/core/wallets/abstract/Wallet.js';
4
+ /**
5
+ * Wallet swap namespace (full operations with signing)
6
+ * @description Provides execute() for swapping tokens
7
+ */
8
+ export declare class WalletSwapNamespace extends BaseSwapNamespace {
9
+ private readonly wallet;
10
+ constructor(providers: SwapProviders, wallet: Wallet);
11
+ /**
12
+ * Execute a token swap
13
+ * @param params - Swap parameters including chainId
14
+ * @returns Swap receipt with transaction details
15
+ */
16
+ execute(params: WalletSwapParams): Promise<SwapReceipt>;
17
+ /**
18
+ * Execute swap transaction with approval batching
19
+ */
20
+ private executeTransaction;
21
+ }
22
+ //# sourceMappingURL=WalletSwapNamespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/WalletSwapNamespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAEX,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEtE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;IAGtD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,SAAS,EAAE,aAAa,EACP,MAAM,EAAE,MAAM;IAKjC;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB7D;;OAEG;YACW,kBAAkB;CA0BjC"}
@@ -0,0 +1,60 @@
1
+ import { BaseSwapNamespace } from './BaseSwapNamespace.js';
2
+ /**
3
+ * Wallet swap namespace (full operations with signing)
4
+ * @description Provides execute() for swapping tokens
5
+ */
6
+ export class WalletSwapNamespace extends BaseSwapNamespace {
7
+ constructor(providers, wallet) {
8
+ super(providers);
9
+ this.wallet = wallet;
10
+ }
11
+ /**
12
+ * Execute a token swap
13
+ * @param params - Swap parameters including chainId
14
+ * @returns Swap receipt with transaction details
15
+ */
16
+ async execute(params) {
17
+ const provider = this.getProvider();
18
+ // Build swap transaction
19
+ const swapTx = await provider.execute({
20
+ ...params,
21
+ walletAddress: this.wallet.address,
22
+ });
23
+ // Execute transaction(s)
24
+ const receipt = await this.executeTransaction(swapTx, params.chainId);
25
+ return {
26
+ receipt,
27
+ amountIn: swapTx.amountIn,
28
+ amountOut: swapTx.amountOut,
29
+ amountInWei: swapTx.amountInWei,
30
+ amountOutWei: swapTx.amountOutWei,
31
+ assetIn: swapTx.assetIn,
32
+ assetOut: swapTx.assetOut,
33
+ price: swapTx.price,
34
+ priceImpact: swapTx.priceImpact,
35
+ };
36
+ }
37
+ /**
38
+ * Execute swap transaction with approval batching
39
+ */
40
+ async executeTransaction(swapTx, chainId) {
41
+ const { transactionData } = swapTx;
42
+ const txs = [];
43
+ // Add token approval if needed
44
+ if (transactionData.tokenApproval) {
45
+ txs.push(transactionData.tokenApproval);
46
+ }
47
+ // Add Permit2 approval if needed
48
+ if (transactionData.permit2Approval) {
49
+ txs.push(transactionData.permit2Approval);
50
+ }
51
+ // Add main swap transaction
52
+ txs.push(transactionData.swap);
53
+ // Execute as batch if multiple transactions, otherwise single
54
+ if (txs.length > 1) {
55
+ return this.wallet.sendBatch(txs, chainId);
56
+ }
57
+ return this.wallet.send(transactionData.swap, chainId);
58
+ }
59
+ }
60
+ //# sourceMappingURL=WalletSwapNamespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/WalletSwapNamespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAS1E;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IACxD,YACE,SAAwB,EACP,MAAc;QAE/B,KAAK,CAAC,SAAS,CAAC,CAAA;QAFC,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpC,GAAG,MAAM;YACT,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SACnC,CAAC,CAAA;QAEF,yBAAyB;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAErE,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAA;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,MAAuB,EACvB,OAAyB;QAEzB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;QAClC,MAAM,GAAG,GAAG,EAAE,CAAA;QAEd,+BAA+B;QAC/B,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QACzC,CAAC;QAED,iCAAiC;QACjC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QAC3C,CAAC;QAED,4BAA4B;QAC5B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAE9B,8DAA8D;QAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BaseSwapNamespace.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSwapNamespace.spec.d.ts","sourceRoot":"","sources":["../../../../src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts"],"names":[],"mappings":""}