@paraswap/dex-lib 4.5.9-inter.2 → 4.5.9

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 (187) hide show
  1. package/build/abi/bunni-v2/BunniHook.abi.json +1921 -0
  2. package/build/abi/bunni-v2/BunniHub.abi.json +1598 -0
  3. package/build/abi/bunni-v2/BunniToken.abi.json +833 -0
  4. package/build/abi/bunni-v2/FeeOverrideHooklet.abi.json +1947 -0
  5. package/build/abi/bunni-v2/FloodPlain.abi.json +1195 -0
  6. package/build/abi/bunni-v2/PoolManager.abi.json +1366 -0
  7. package/build/abi/bunni-v2/V4Quoter.abi.json +637 -0
  8. package/build/abi/miro-migrator/MiroMigrator.abi.json +19 -36
  9. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +796 -0
  10. package/build/abi/ring-v2/few-wrapped-token.json +587 -0
  11. package/build/abi/ring-v2/ring-v2-factory.json +125 -0
  12. package/build/abi/ring-v2/ring-v2-pool.json +461 -0
  13. package/build/abi/ring-v2/ring-v2-router.json +332 -0
  14. package/build/dex/bunni-v2/bunni-v2-pool.d.ts +61 -0
  15. package/build/dex/bunni-v2/bunni-v2-pool.js +484 -0
  16. package/build/dex/bunni-v2/bunni-v2-pool.js.map +1 -0
  17. package/build/dex/bunni-v2/bunni-v2.d.ts +47 -0
  18. package/build/dex/bunni-v2/bunni-v2.js +464 -0
  19. package/build/dex/bunni-v2/bunni-v2.js.map +1 -0
  20. package/build/dex/bunni-v2/config.d.ts +3 -0
  21. package/build/dex/bunni-v2/config.js +89 -0
  22. package/build/dex/bunni-v2/config.js.map +1 -0
  23. package/build/dex/bunni-v2/encoder.d.ts +19 -0
  24. package/build/dex/bunni-v2/encoder.js +400 -0
  25. package/build/dex/bunni-v2/encoder.js.map +1 -0
  26. package/build/dex/bunni-v2/getOnChainState.d.ts +25 -0
  27. package/build/dex/bunni-v2/getOnChainState.js +455 -0
  28. package/build/dex/bunni-v2/getOnChainState.js.map +1 -0
  29. package/build/dex/bunni-v2/hook/BunniSwapMath.d.ts +7 -0
  30. package/build/dex/bunni-v2/hook/BunniSwapMath.js +198 -0
  31. package/build/dex/bunni-v2/hook/BunniSwapMath.js.map +1 -0
  32. package/build/dex/bunni-v2/hook/SwapMath.d.ts +8 -0
  33. package/build/dex/bunni-v2/hook/SwapMath.js +65 -0
  34. package/build/dex/bunni-v2/hook/SwapMath.js.map +1 -0
  35. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.d.ts +33 -0
  36. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js +33 -0
  37. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js.map +1 -0
  38. package/build/dex/bunni-v2/hooklet/index.d.ts +21 -0
  39. package/build/dex/bunni-v2/hooklet/index.js +65 -0
  40. package/build/dex/bunni-v2/hooklet/index.js.map +1 -0
  41. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.d.ts +70 -0
  42. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js +277 -0
  43. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js.map +1 -0
  44. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.d.ts +64 -0
  45. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js +262 -0
  46. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js.map +1 -0
  47. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.d.ts +60 -0
  48. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js +224 -0
  49. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js.map +1 -0
  50. package/build/dex/bunni-v2/ldf/GeometricDistribution.d.ts +56 -0
  51. package/build/dex/bunni-v2/ldf/GeometricDistribution.js +489 -0
  52. package/build/dex/bunni-v2/ldf/GeometricDistribution.js.map +1 -0
  53. package/build/dex/bunni-v2/ldf/LDFType.d.ts +5 -0
  54. package/build/dex/bunni-v2/ldf/LDFType.js +10 -0
  55. package/build/dex/bunni-v2/ldf/LDFType.js.map +1 -0
  56. package/build/dex/bunni-v2/ldf/ShiftMode.d.ts +7 -0
  57. package/build/dex/bunni-v2/ldf/ShiftMode.js +19 -0
  58. package/build/dex/bunni-v2/ldf/ShiftMode.js.map +1 -0
  59. package/build/dex/bunni-v2/ldf/UniformDistribution.d.ts +55 -0
  60. package/build/dex/bunni-v2/ldf/UniformDistribution.js +291 -0
  61. package/build/dex/bunni-v2/ldf/UniformDistribution.js.map +1 -0
  62. package/build/dex/bunni-v2/ldf/index.d.ts +15 -0
  63. package/build/dex/bunni-v2/ldf/index.js +38 -0
  64. package/build/dex/bunni-v2/ldf/index.js.map +1 -0
  65. package/build/dex/bunni-v2/lib/AmAmmPayload.d.ts +4 -0
  66. package/build/dex/bunni-v2/lib/AmAmmPayload.js +10 -0
  67. package/build/dex/bunni-v2/lib/AmAmmPayload.js.map +1 -0
  68. package/build/dex/bunni-v2/lib/BitMath.d.ts +4 -0
  69. package/build/dex/bunni-v2/lib/BitMath.js +24 -0
  70. package/build/dex/bunni-v2/lib/BitMath.js.map +1 -0
  71. package/build/dex/bunni-v2/lib/Constants.d.ts +14 -0
  72. package/build/dex/bunni-v2/lib/Constants.js +18 -0
  73. package/build/dex/bunni-v2/lib/Constants.js.map +1 -0
  74. package/build/dex/bunni-v2/lib/ExpMath.d.ts +5 -0
  75. package/build/dex/bunni-v2/lib/ExpMath.js +121 -0
  76. package/build/dex/bunni-v2/lib/ExpMath.js.map +1 -0
  77. package/build/dex/bunni-v2/lib/FeeMath.d.ts +2 -0
  78. package/build/dex/bunni-v2/lib/FeeMath.js +27 -0
  79. package/build/dex/bunni-v2/lib/FeeMath.js.map +1 -0
  80. package/build/dex/bunni-v2/lib/FixedPointMath.d.ts +3 -0
  81. package/build/dex/bunni-v2/lib/FixedPointMath.js +15 -0
  82. package/build/dex/bunni-v2/lib/FixedPointMath.js.map +1 -0
  83. package/build/dex/bunni-v2/lib/FullMathX96.d.ts +4 -0
  84. package/build/dex/bunni-v2/lib/FullMathX96.js +21 -0
  85. package/build/dex/bunni-v2/lib/FullMathX96.js.map +1 -0
  86. package/build/dex/bunni-v2/lib/IdleBalance.d.ts +11 -0
  87. package/build/dex/bunni-v2/lib/IdleBalance.js +33 -0
  88. package/build/dex/bunni-v2/lib/IdleBalance.js.map +1 -0
  89. package/build/dex/bunni-v2/lib/LiquidityAmounts.d.ts +6 -0
  90. package/build/dex/bunni-v2/lib/LiquidityAmounts.js +25 -0
  91. package/build/dex/bunni-v2/lib/LiquidityAmounts.js.map +1 -0
  92. package/build/dex/bunni-v2/lib/Math.d.ts +28 -0
  93. package/build/dex/bunni-v2/lib/Math.js +169 -0
  94. package/build/dex/bunni-v2/lib/Math.js.map +1 -0
  95. package/build/dex/bunni-v2/lib/Oracle.d.ts +27 -0
  96. package/build/dex/bunni-v2/lib/Oracle.js +180 -0
  97. package/build/dex/bunni-v2/lib/Oracle.js.map +1 -0
  98. package/build/dex/bunni-v2/lib/QueryLDF.d.ts +12 -0
  99. package/build/dex/bunni-v2/lib/QueryLDF.js +90 -0
  100. package/build/dex/bunni-v2/lib/QueryLDF.js.map +1 -0
  101. package/build/dex/bunni-v2/lib/QueryTwap.d.ts +2 -0
  102. package/build/dex/bunni-v2/lib/QueryTwap.js +13 -0
  103. package/build/dex/bunni-v2/lib/QueryTwap.js.map +1 -0
  104. package/build/dex/bunni-v2/lib/SqrtPriceMath.d.ts +8 -0
  105. package/build/dex/bunni-v2/lib/SqrtPriceMath.js +84 -0
  106. package/build/dex/bunni-v2/lib/SqrtPriceMath.js.map +1 -0
  107. package/build/dex/bunni-v2/lib/TickMath.d.ts +11 -0
  108. package/build/dex/bunni-v2/lib/TickMath.js +100 -0
  109. package/build/dex/bunni-v2/lib/TickMath.js.map +1 -0
  110. package/build/dex/bunni-v2/lib/VaultMath.d.ts +2 -0
  111. package/build/dex/bunni-v2/lib/VaultMath.js +11 -0
  112. package/build/dex/bunni-v2/lib/VaultMath.js.map +1 -0
  113. package/build/dex/bunni-v2/logic/AmAmm.d.ts +11 -0
  114. package/build/dex/bunni-v2/logic/AmAmm.js +156 -0
  115. package/build/dex/bunni-v2/logic/AmAmm.js.map +1 -0
  116. package/build/dex/bunni-v2/logic/BunniHookLogic.d.ts +10 -0
  117. package/build/dex/bunni-v2/logic/BunniHookLogic.js +298 -0
  118. package/build/dex/bunni-v2/logic/BunniHookLogic.js.map +1 -0
  119. package/build/dex/bunni-v2/logic/BunniHubLogic.d.ts +5 -0
  120. package/build/dex/bunni-v2/logic/BunniHubLogic.js +245 -0
  121. package/build/dex/bunni-v2/logic/BunniHubLogic.js.map +1 -0
  122. package/build/dex/bunni-v2/logic/BunniQuoter.d.ts +12 -0
  123. package/build/dex/bunni-v2/logic/BunniQuoter.js +201 -0
  124. package/build/dex/bunni-v2/logic/BunniQuoter.js.map +1 -0
  125. package/build/dex/bunni-v2/subgraph.d.ts +6 -0
  126. package/build/dex/bunni-v2/subgraph.js +139 -0
  127. package/build/dex/bunni-v2/subgraph.js.map +1 -0
  128. package/build/dex/bunni-v2/types.d.ts +238 -0
  129. package/build/dex/bunni-v2/types.js +3 -0
  130. package/build/dex/bunni-v2/types.js.map +1 -0
  131. package/build/dex/bunni-v2/utils.d.ts +17 -0
  132. package/build/dex/bunni-v2/utils.js +194 -0
  133. package/build/dex/bunni-v2/utils.js.map +1 -0
  134. package/build/dex/ekubo/config.d.ts +1 -1
  135. package/build/dex/ekubo/config.js +3 -1
  136. package/build/dex/ekubo/config.js.map +1 -1
  137. package/build/dex/ekubo/ekubo.d.ts +7 -10
  138. package/build/dex/ekubo/ekubo.js +89 -59
  139. package/build/dex/ekubo/ekubo.js.map +1 -1
  140. package/build/dex/ekubo/pools/math/constants.d.ts +6 -3
  141. package/build/dex/ekubo/pools/math/constants.js +7 -4
  142. package/build/dex/ekubo/pools/math/constants.js.map +1 -1
  143. package/build/dex/ekubo/pools/math/price.js +4 -2
  144. package/build/dex/ekubo/pools/math/price.js.map +1 -1
  145. package/build/dex/ekubo/pools/math/swap.js +2 -2
  146. package/build/dex/ekubo/pools/math/swap.js.map +1 -1
  147. package/build/dex/ekubo/types.d.ts +23 -7
  148. package/build/dex/ekubo/utils.d.ts +4 -1
  149. package/build/dex/ekubo/utils.js +26 -3
  150. package/build/dex/ekubo/utils.js.map +1 -1
  151. package/build/dex/idex.d.ts +0 -1
  152. package/build/dex/miro-migrator/config.js +10 -3
  153. package/build/dex/miro-migrator/config.js.map +1 -1
  154. package/build/dex/miro-migrator/constants.d.ts +1 -2
  155. package/build/dex/miro-migrator/constants.js +2 -3
  156. package/build/dex/miro-migrator/constants.js.map +1 -1
  157. package/build/dex/miro-migrator/miro-migrator-pool.d.ts +5 -9
  158. package/build/dex/miro-migrator/miro-migrator-pool.js +30 -49
  159. package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
  160. package/build/dex/miro-migrator/miro-migrator-state.d.ts +27 -0
  161. package/build/dex/miro-migrator/miro-migrator-state.js +89 -0
  162. package/build/dex/miro-migrator/miro-migrator-state.js.map +1 -0
  163. package/build/dex/miro-migrator/miro-migrator.d.ts +4 -5
  164. package/build/dex/miro-migrator/miro-migrator.js +83 -41
  165. package/build/dex/miro-migrator/miro-migrator.js.map +1 -1
  166. package/build/dex/miro-migrator/types.d.ts +4 -2
  167. package/build/dex/miro-migrator/types.js +2 -1
  168. package/build/dex/miro-migrator/types.js.map +1 -1
  169. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +4 -0
  170. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +56 -0
  171. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +1 -0
  172. package/build/dex/uniswap-v3/uniswap-v3.d.ts +0 -1
  173. package/build/dex/uniswap-v3/uniswap-v3.js +0 -2
  174. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  175. package/build/dex/uniswap-v4/uniswap-v4.d.ts +0 -1
  176. package/build/dex/uniswap-v4/uniswap-v4.js +0 -2
  177. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  178. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +26 -0
  179. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +75 -0
  180. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +1 -0
  181. package/build/implementations/local-paraswap-sdk.d.ts +2 -2
  182. package/build/implementations/local-paraswap-sdk.js +2 -1
  183. package/build/implementations/local-paraswap-sdk.js.map +1 -1
  184. package/build/pricing-helper.d.ts +1 -1
  185. package/build/pricing-helper.js +2 -33
  186. package/build/pricing-helper.js.map +1 -1
  187. package/package.json +1 -1
@@ -0,0 +1,455 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateOnChainState = generateOnChainState;
7
+ exports.updateStateAfterNewBunni = updateStateAfterNewBunni;
8
+ exports.updateStateAfterDeposit = updateStateAfterDeposit;
9
+ exports.updateStateAfterWithdraw = updateStateAfterWithdraw;
10
+ exports.updateStateAfterSwap = updateStateAfterSwap;
11
+ exports.updateStateAfterOrderFulfilled = updateStateAfterOrderFulfilled;
12
+ exports.updateHubState = updateHubState;
13
+ exports.updateHookState = updateHookState;
14
+ exports.updateSlot0 = updateSlot0;
15
+ exports.updateLdfState = updateLdfState;
16
+ exports.updateVaultSharePricesAtLastSwap = updateVaultSharePricesAtLastSwap;
17
+ exports.updateCuratorFees = updateCuratorFees;
18
+ exports.updateTopBid = updateTopBid;
19
+ exports.updateNextBid = updateNextBid;
20
+ exports.updateTotalSupply = updateTotalSupply;
21
+ exports.updateObservations = updateObservations;
22
+ exports.updateFeeOverrides = updateFeeOverrides;
23
+ exports.updateVaultSharePrices = updateVaultSharePrices;
24
+ exports.ERC4626_previewDeposit = ERC4626_previewDeposit;
25
+ exports.ERC4626_previewWithdraw = ERC4626_previewWithdraw;
26
+ exports.ERC4626_previewRedeem = ERC4626_previewRedeem;
27
+ exports.ERC4626_maxDeposit = ERC4626_maxDeposit;
28
+ const abi_1 = require("@ethersproject/abi");
29
+ const ERC4626_json_1 = __importDefault(require("../../abi/ERC4626.json"));
30
+ const utils_1 = require("../../utils");
31
+ const utils_2 = require("./utils");
32
+ const ethers_1 = require("ethers");
33
+ const ERC4626Interface = new abi_1.Interface(ERC4626_json_1.default);
34
+ const mask8 = ethers_1.BigNumber.from('0xff');
35
+ const mask16 = ethers_1.BigNumber.from('0xffff');
36
+ const mask24 = ethers_1.BigNumber.from('0xffffff');
37
+ const mask32 = ethers_1.BigNumber.from('0xffffffff');
38
+ const mask56 = ethers_1.BigNumber.from('0x00ffffffffffffff');
39
+ const mask120 = ethers_1.BigNumber.from('0xffffffffffffffffffffffffffffff');
40
+ async function generateOnChainState(poolStates, blockNumber, bunniHubInterface, bunniHookInterface, bunniTokenInterface, feeOverrideHookletInterface, dexHelper, config) {
41
+ await Promise.all([
42
+ updateHubState(poolStates, blockNumber, bunniHubInterface, dexHelper).then(() => updateFeeOverrides(poolStates, blockNumber, feeOverrideHookletInterface, dexHelper, config)),
43
+ updateHookState(poolStates, blockNumber, bunniHookInterface, dexHelper).then(() => updateObservations(poolStates, blockNumber, bunniHookInterface, dexHelper)),
44
+ updateSlot0(poolStates, blockNumber, bunniHookInterface, dexHelper),
45
+ updateLdfState(poolStates, blockNumber, bunniHookInterface, dexHelper),
46
+ updateVaultSharePricesAtLastSwap(poolStates, blockNumber, bunniHookInterface, dexHelper),
47
+ updateCuratorFees(poolStates, blockNumber, bunniHookInterface, dexHelper),
48
+ updateTotalSupply(poolStates, blockNumber, bunniTokenInterface, dexHelper),
49
+ updateTopBid(poolStates, blockNumber, bunniHookInterface, dexHelper),
50
+ updateNextBid(poolStates, blockNumber, bunniHookInterface, dexHelper),
51
+ ]);
52
+ }
53
+ /* -------------------------------------------------------------------------- */
54
+ /* After Event Updaters */
55
+ /* -------------------------------------------------------------------------- */
56
+ async function updateStateAfterNewBunni(state, blockNumber, bunniHubInterface, bunniHookInterface, bunniTokenInterface, dexHelper) {
57
+ await Promise.all([
58
+ updateHubState([state], blockNumber, bunniHubInterface, dexHelper),
59
+ updateLdfState([state], blockNumber, bunniHookInterface, dexHelper),
60
+ updateTotalSupply([state], blockNumber, bunniTokenInterface, dexHelper),
61
+ ]);
62
+ }
63
+ async function updateStateAfterDeposit(state, blockNumber, bunniHubInterface, bunniHookInterface, dexHelper) {
64
+ await Promise.all([
65
+ updateHubState([state], blockNumber, bunniHubInterface, dexHelper),
66
+ updateLdfState([state], blockNumber, bunniHookInterface, dexHelper),
67
+ ]);
68
+ }
69
+ async function updateStateAfterWithdraw(state, blockNumber, bunniHubInterface, dexHelper) {
70
+ await Promise.all([
71
+ updateHubState([state], blockNumber, bunniHubInterface, dexHelper),
72
+ ]);
73
+ }
74
+ async function updateStateAfterSwap(state, blockNumber, bunniHubInterface, bunniHookInterface, dexHelper) {
75
+ await Promise.all([
76
+ updateHubState([state], blockNumber, bunniHubInterface, dexHelper),
77
+ updateHookState([state], blockNumber, bunniHookInterface, dexHelper).then(() => updateObservations([state], blockNumber, bunniHookInterface, dexHelper)),
78
+ updateSlot0([state], blockNumber, bunniHookInterface, dexHelper),
79
+ updateLdfState([state], blockNumber, bunniHookInterface, dexHelper),
80
+ updateVaultSharePricesAtLastSwap([state], blockNumber, bunniHookInterface, dexHelper),
81
+ ]);
82
+ }
83
+ async function updateStateAfterOrderFulfilled(states, blockNumber, bunniHubInterface, bunniHookInterface, dexHelper) {
84
+ await Promise.all([
85
+ updateHubState(states, blockNumber, bunniHubInterface, dexHelper),
86
+ updateSlot0(states, blockNumber, bunniHookInterface, dexHelper),
87
+ ]);
88
+ }
89
+ /* -------------------------------------------------------------------------- */
90
+ /* State Updaters */
91
+ /* -------------------------------------------------------------------------- */
92
+ async function updateHubState(poolStates, blockNumber, bunniHubInterface, dexHelper) {
93
+ const multiCallData = poolStates.map(poolState => {
94
+ return {
95
+ target: poolState.bunniHub,
96
+ callData: bunniHubInterface.encodeFunctionData('poolState', [
97
+ poolState.id,
98
+ ]),
99
+ };
100
+ });
101
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
102
+ poolStates.forEach((poolState, i) => {
103
+ const data = bunniHubInterface.decodeFunctionResult('poolState', result[i].returnData)[0];
104
+ poolState.liquidityDensityFunction =
105
+ data.liquidityDensityFunction.toLowerCase();
106
+ poolState.bunniToken = data.bunniToken.toLowerCase();
107
+ poolState.hooklet = data.hooklet.toLowerCase();
108
+ poolState.twapSecondsAgo = (0, utils_1.bigIntify)(data.twapSecondsAgo);
109
+ poolState.ldfParams = data.ldfParams;
110
+ poolState.hookParams = data.hookParams;
111
+ poolState.vault0 = data.vault0.toLowerCase();
112
+ poolState.vault1 = data.vault1.toLowerCase();
113
+ poolState.ldfType = parseInt(data.ldfType);
114
+ poolState.minRawTokenRatio0 = (0, utils_1.bigIntify)(data.minRawTokenRatio0);
115
+ poolState.targetRawTokenRatio0 = (0, utils_1.bigIntify)(data.targetRawTokenRatio0);
116
+ poolState.maxRawTokenRatio0 = (0, utils_1.bigIntify)(data.maxRawTokenRatio0);
117
+ poolState.minRawTokenRatio1 = (0, utils_1.bigIntify)(data.minRawTokenRatio1);
118
+ poolState.targetRawTokenRatio1 = (0, utils_1.bigIntify)(data.targetRawTokenRatio1);
119
+ poolState.maxRawTokenRatio1 = (0, utils_1.bigIntify)(data.maxRawTokenRatio1);
120
+ poolState.currency0Decimals = (0, utils_1.bigIntify)(data.currency0Decimals);
121
+ poolState.currency1Decimals = (0, utils_1.bigIntify)(data.currency1Decimals);
122
+ poolState.vault0Decimals = (0, utils_1.bigIntify)(data.vault0Decimals);
123
+ poolState.vault1Decimals = (0, utils_1.bigIntify)(data.vault1Decimals);
124
+ poolState.rawBalance0 = (0, utils_1.bigIntify)(data.rawBalance0);
125
+ poolState.rawBalance1 = (0, utils_1.bigIntify)(data.rawBalance1);
126
+ poolState.reserve0 = (0, utils_1.bigIntify)(data.reserve0);
127
+ poolState.reserve1 = (0, utils_1.bigIntify)(data.reserve1);
128
+ poolState.idleBalance = data.idleBalance;
129
+ });
130
+ }
131
+ async function updateHookState(poolStates, blockNumber, bunniHookInterface, dexHelper) {
132
+ const encodeExtsLoad = (s) => {
133
+ const statesSlot = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes32', 'uint256'], [s.id, 7n]));
134
+ const intermediateObservationSlot = ethers_1.BigNumber.from(statesSlot)
135
+ .add(1)
136
+ .toHexString();
137
+ const rebalanceOrderHashSlot = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes32', 'uint256'], [s.id, 8n]));
138
+ return bunniHookInterface.encodeFunctionData('0xdbd035ff', [
139
+ [statesSlot, intermediateObservationSlot, rebalanceOrderHashSlot],
140
+ ]);
141
+ };
142
+ const decodeExtsLoad = (d) => {
143
+ const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(['bytes32[]'], d);
144
+ // decode the observation state
145
+ const decodedState = ethers_1.BigNumber.from(decoded[0][0]);
146
+ const index = (0, utils_1.bigIntify)(decodedState.and(mask32));
147
+ const cardinality = (0, utils_1.bigIntify)(decodedState.shr(32).and(mask32));
148
+ const cardinalityNext = (0, utils_1.bigIntify)(decodedState.shr(64).and(mask32));
149
+ // decode the intermediate observation
150
+ const decodedIntermediateObservation = ethers_1.BigNumber.from(decoded[0][1]);
151
+ const blockTimestamp = (0, utils_1.bigIntify)(decodedIntermediateObservation.and(mask32));
152
+ const prevTick = decodedIntermediateObservation.shr(32).and(mask24);
153
+ const tickCumulative = decodedIntermediateObservation.shr(56).and(mask56);
154
+ const initialized = decodedIntermediateObservation
155
+ .shr(112)
156
+ .and(mask8)
157
+ .eq(1);
158
+ const prevTickSigned = prevTick.gt(ethers_1.BigNumber.from('0x7fffff'))
159
+ ? prevTick.sub(ethers_1.BigNumber.from('0x1000000'))
160
+ : prevTick;
161
+ const tickCumulativeSigned = tickCumulative.gt(ethers_1.BigNumber.from('0x7fffffffffffff'))
162
+ ? tickCumulative.sub(ethers_1.BigNumber.from('0x100000000000000'))
163
+ : tickCumulative;
164
+ const rebalanceOrderHash = decoded[0][2];
165
+ return {
166
+ index,
167
+ cardinality,
168
+ cardinalityNext,
169
+ intermediateObservation: {
170
+ blockTimestamp,
171
+ prevTick: (0, utils_1.bigIntify)(prevTickSigned),
172
+ tickCumulative: (0, utils_1.bigIntify)(tickCumulativeSigned),
173
+ initialized,
174
+ },
175
+ rebalanceOrderHash,
176
+ };
177
+ };
178
+ const multiCallData = poolStates.map(poolState => {
179
+ return {
180
+ target: poolState.key.hooks,
181
+ callData: encodeExtsLoad(poolState),
182
+ };
183
+ });
184
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
185
+ poolStates.forEach((poolState, i) => {
186
+ const data = decodeExtsLoad(result[i].returnData);
187
+ poolState.index = data.index;
188
+ poolState.cardinality = data.cardinality;
189
+ poolState.cardinalityNext = data.cardinalityNext;
190
+ poolState.intermediateObservation = data.intermediateObservation;
191
+ poolState.rebalanceOrderHash = data.rebalanceOrderHash;
192
+ });
193
+ }
194
+ async function updateSlot0(poolStates, blockNumber, bunniHookInterface, dexHelper) {
195
+ const multiCallData = poolStates.map(poolState => {
196
+ return {
197
+ target: poolState.key.hooks,
198
+ callData: bunniHookInterface.encodeFunctionData('slot0s', [poolState.id]),
199
+ };
200
+ });
201
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
202
+ poolStates.forEach((poolState, i) => {
203
+ const data = bunniHookInterface.decodeFunctionResult('slot0s', result[i].returnData);
204
+ poolState.slot0.sqrtPriceX96 = (0, utils_1.bigIntify)(data.sqrtPriceX96);
205
+ poolState.slot0.tick = (0, utils_1.bigIntify)(data.tick);
206
+ poolState.slot0.lastSwapTimestamp = (0, utils_1.bigIntify)(data.lastSwapTimestamp);
207
+ poolState.slot0.lastSurgeTimestamp = (0, utils_1.bigIntify)(data.lastSurgeTimestamp);
208
+ });
209
+ }
210
+ async function updateLdfState(poolStates, blockNumber, bunniHookInterface, dexHelper) {
211
+ const multiCallData = poolStates.map(poolState => {
212
+ return {
213
+ target: poolState.key.hooks,
214
+ callData: bunniHookInterface.encodeFunctionData('ldfStates', [
215
+ poolState.id,
216
+ ]),
217
+ };
218
+ });
219
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
220
+ poolStates.forEach((poolState, i) => {
221
+ const data = bunniHookInterface.decodeFunctionResult('ldfStates', result[i].returnData)[0];
222
+ poolState.ldfState = data;
223
+ });
224
+ }
225
+ async function updateVaultSharePricesAtLastSwap(poolStates, blockNumber, bunniHookInterface, dexHelper) {
226
+ const encodeExtsLoad = (s) => {
227
+ const slot = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes32', 'uint256'], [s.id, 11n]));
228
+ return bunniHookInterface.encodeFunctionData('0x1e2eaeaf', [slot]);
229
+ };
230
+ const decodeExtsLoad = (d) => {
231
+ const decodedVaultSharePricesAtLastSwap = ethers_1.BigNumber.from(d);
232
+ const initialized = decodedVaultSharePricesAtLastSwap.and(mask8).eq(1);
233
+ const sharePrice0 = (0, utils_1.bigIntify)(decodedVaultSharePricesAtLastSwap.shr(8).and(mask120));
234
+ const sharePrice1 = (0, utils_1.bigIntify)(decodedVaultSharePricesAtLastSwap.shr(128).and(mask120));
235
+ return { initialized, sharePrice0, sharePrice1 };
236
+ };
237
+ const multiCallData = poolStates.map(poolState => {
238
+ return {
239
+ target: poolState.key.hooks,
240
+ callData: encodeExtsLoad(poolState),
241
+ };
242
+ });
243
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
244
+ poolStates.forEach((poolState, i) => {
245
+ const data = decodeExtsLoad(result[i].returnData);
246
+ poolState.initialized = data.initialized;
247
+ poolState.sharePrice0 = data.sharePrice0;
248
+ poolState.sharePrice1 = data.sharePrice1;
249
+ });
250
+ }
251
+ async function updateCuratorFees(poolStates, blockNumber, bunniHookInterface, dexHelper) {
252
+ const encodeExtsLoad = (s) => {
253
+ const slot = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes32', 'uint256'], [s.id, 15n]));
254
+ return bunniHookInterface.encodeFunctionData('0x1e2eaeaf', [slot]);
255
+ };
256
+ const decodeExtsLoad = (d) => {
257
+ const decodedCuratorFees = ethers_1.BigNumber.from(d);
258
+ const feeRate = (0, utils_1.bigIntify)(decodedCuratorFees.and(mask16));
259
+ const accruedFee0 = (0, utils_1.bigIntify)(decodedCuratorFees.shr(8).and(mask120));
260
+ const accruedFee1 = (0, utils_1.bigIntify)(decodedCuratorFees.shr(128).and(mask120));
261
+ return { feeRate, accruedFee0, accruedFee1 };
262
+ };
263
+ const multiCallData = poolStates.map(poolState => {
264
+ return {
265
+ target: poolState.key.hooks,
266
+ callData: encodeExtsLoad(poolState),
267
+ };
268
+ });
269
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
270
+ poolStates.forEach((poolState, i) => {
271
+ const data = decodeExtsLoad(result[i].returnData);
272
+ poolState.curatorFeeRate = data.feeRate;
273
+ });
274
+ }
275
+ async function updateTopBid(poolStates, blockNumber, bunniHookInterface, dexHelper) {
276
+ const multiCallData = poolStates.map(poolState => {
277
+ return {
278
+ target: poolState.key.hooks,
279
+ callData: bunniHookInterface.encodeFunctionData('getBid', [
280
+ poolState.id,
281
+ true,
282
+ ]),
283
+ };
284
+ });
285
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
286
+ poolStates.forEach((poolState, i) => {
287
+ const data = bunniHookInterface.decodeFunctionResult('getBid', result[i].returnData)[0];
288
+ poolState.topBid = {
289
+ manager: data.manager,
290
+ blockIdx: (0, utils_1.bigIntify)(data.blockIdx),
291
+ payload: data.payload,
292
+ rent: (0, utils_1.bigIntify)(data.rent),
293
+ deposit: (0, utils_1.bigIntify)(data.deposit),
294
+ };
295
+ });
296
+ }
297
+ async function updateNextBid(poolStates, blockNumber, bunniHookInterface, dexHelper) {
298
+ const multiCallData = poolStates.map(poolState => {
299
+ return {
300
+ target: poolState.key.hooks,
301
+ callData: bunniHookInterface.encodeFunctionData('getBid', [
302
+ poolState.id,
303
+ false,
304
+ ]),
305
+ };
306
+ });
307
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
308
+ poolStates.forEach((poolState, i) => {
309
+ const data = bunniHookInterface.decodeFunctionResult('getBid', result[i].returnData)[0];
310
+ poolState.nextBid = {
311
+ manager: data.manager,
312
+ blockIdx: (0, utils_1.bigIntify)(data.blockIdx),
313
+ payload: data.payload,
314
+ rent: (0, utils_1.bigIntify)(data.rent),
315
+ deposit: (0, utils_1.bigIntify)(data.deposit),
316
+ };
317
+ });
318
+ }
319
+ async function updateTotalSupply(poolStates, blockNumber, bunniTokenInterface, dexHelper) {
320
+ const multiCallData = poolStates.map(poolState => {
321
+ return {
322
+ target: poolState.bunniToken,
323
+ callData: bunniTokenInterface.encodeFunctionData('totalSupply'),
324
+ };
325
+ });
326
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
327
+ poolStates.forEach((poolState, i) => {
328
+ const data = bunniTokenInterface.decodeFunctionResult('totalSupply', result[i].returnData);
329
+ poolState.totalSupply = (0, utils_1.bigIntify)(data);
330
+ });
331
+ }
332
+ async function updateObservations(poolStates, blockNumber, bunniHookInterface, dexHelper) {
333
+ const encodeExtsLoad = (s) => {
334
+ const observationsBaseSlot = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes32', 'uint256'], [s.id, 6n]));
335
+ const observationSlots = [];
336
+ for (let i = 0; i < s.cardinalityNext; i++) {
337
+ observationSlots.push(ethers_1.BigNumber.from(observationsBaseSlot).add(i).toHexString());
338
+ }
339
+ return bunniHookInterface.encodeFunctionData('0xdbd035ff', [
340
+ [...observationSlots],
341
+ ]);
342
+ };
343
+ const decodeExtsLoad = (d) => {
344
+ const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(['bytes32[]'], d);
345
+ const observations = [];
346
+ for (let i = 0; i < decoded[0].length; i++) {
347
+ const rawObservation = ethers_1.BigNumber.from(decoded[0][i]);
348
+ const blockTimestamp = (0, utils_1.bigIntify)(rawObservation.and(mask32));
349
+ const prevTick = rawObservation.shr(32).and(mask24);
350
+ const tickCumulative = rawObservation.shr(56).and(mask56);
351
+ const initialized = rawObservation.shr(112).and(mask8).eq(1);
352
+ const prevTickSigned = prevTick.gt(ethers_1.BigNumber.from('0x7fffff'))
353
+ ? prevTick.sub(ethers_1.BigNumber.from('0x1000000'))
354
+ : prevTick;
355
+ const tickCumulativeSigned = tickCumulative.gt(ethers_1.BigNumber.from('0x7fffffffffffff'))
356
+ ? tickCumulative.sub(ethers_1.BigNumber.from('0x100000000000000'))
357
+ : tickCumulative;
358
+ observations.push({
359
+ blockTimestamp,
360
+ prevTick: (0, utils_1.bigIntify)(prevTickSigned),
361
+ tickCumulative: (0, utils_1.bigIntify)(tickCumulativeSigned),
362
+ initialized,
363
+ });
364
+ }
365
+ return observations;
366
+ };
367
+ const multiCallData = poolStates.map(poolState => {
368
+ return {
369
+ target: poolState.key.hooks,
370
+ callData: encodeExtsLoad(poolState),
371
+ };
372
+ });
373
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
374
+ poolStates.forEach((poolState, i) => {
375
+ const data = decodeExtsLoad(result[i].returnData);
376
+ poolState.observations = data;
377
+ });
378
+ }
379
+ async function updateFeeOverrides(poolStates, blockNumber, feeOverrideHookletInterface, dexHelper, config) {
380
+ const poolsToQuery = poolStates.filter(poolState => config.feeOverrideHooklets.some(hooklet => hooklet.toLowerCase() === poolState.hooklet.toLowerCase()));
381
+ const multiCallData = poolsToQuery.map(poolState => {
382
+ return {
383
+ target: poolState.hooklet,
384
+ callData: feeOverrideHookletInterface.encodeFunctionData('feeOverrides', [
385
+ poolState.id,
386
+ ]),
387
+ };
388
+ });
389
+ const result = await (0, utils_2.multicall)(multiCallData, blockNumber, dexHelper);
390
+ poolsToQuery.forEach((poolState, i) => {
391
+ const data = feeOverrideHookletInterface.decodeFunctionResult('feeOverrides', result[i].returnData);
392
+ poolState.overrideZeroToOne = data.overrideZeroToOne;
393
+ poolState.feeZeroToOne = (0, utils_1.bigIntify)(data.feeZeroToOne);
394
+ poolState.overrideOneToZero = data.overrideOneToZero;
395
+ poolState.feeOneToZero = (0, utils_1.bigIntify)(data.feeOneToZero);
396
+ });
397
+ }
398
+ /* -------------------------------------------------------------------------- */
399
+ /* OTHER */
400
+ /* -------------------------------------------------------------------------- */
401
+ async function updateVaultSharePrices(vaults, dexHelper) {
402
+ const multiCallData = vaults.map(vault => {
403
+ return {
404
+ target: vault.address,
405
+ callData: ERC4626Interface.encodeFunctionData('convertToAssets', [
406
+ 10n ** vault.vaultDecimals,
407
+ ]),
408
+ };
409
+ });
410
+ const result = await (0, utils_2.multicall)(multiCallData, 'latest', dexHelper);
411
+ vaults.forEach((vault, i) => {
412
+ const data = ERC4626Interface.decodeFunctionResult('convertToAssets', result[i].returnData);
413
+ vault.sharePrice = (0, utils_1.bigIntify)(data);
414
+ });
415
+ }
416
+ /* -------------------------------------------------------------------------- */
417
+ /* ERC4626 */
418
+ /* -------------------------------------------------------------------------- */
419
+ async function ERC4626_previewDeposit(amount, vault, blockNumber, dexHelper) {
420
+ const callData = {
421
+ target: vault,
422
+ callData: ERC4626Interface.encodeFunctionData('previewDeposit', [amount]),
423
+ };
424
+ const result = await (0, utils_2.multicall)([callData], Number(blockNumber), dexHelper);
425
+ const data = ERC4626Interface.decodeFunctionResult('previewDeposit', result[0].returnData)[0];
426
+ return (0, utils_1.bigIntify)(data);
427
+ }
428
+ async function ERC4626_previewWithdraw(amount, vault, blockNumber, dexHelper) {
429
+ const callData = {
430
+ target: vault,
431
+ callData: ERC4626Interface.encodeFunctionData('previewWithdraw', [amount]),
432
+ };
433
+ const result = await (0, utils_2.multicall)([callData], Number(blockNumber), dexHelper);
434
+ const data = ERC4626Interface.decodeFunctionResult('previewWithdraw', result[0].returnData)[0];
435
+ return (0, utils_1.bigIntify)(data);
436
+ }
437
+ async function ERC4626_previewRedeem(amount, vault, blockNumber, dexHelper) {
438
+ const callData = {
439
+ target: vault,
440
+ callData: ERC4626Interface.encodeFunctionData('previewRedeem', [amount]),
441
+ };
442
+ const result = await (0, utils_2.multicall)([callData], Number(blockNumber), dexHelper);
443
+ const data = ERC4626Interface.decodeFunctionResult('previewRedeem', result[0].returnData)[0];
444
+ return (0, utils_1.bigIntify)(data);
445
+ }
446
+ async function ERC4626_maxDeposit(account, vault, blockNumber, dexHelper) {
447
+ const callData = {
448
+ target: vault,
449
+ callData: ERC4626Interface.encodeFunctionData('maxDeposit', [account]),
450
+ };
451
+ const result = await (0, utils_2.multicall)([callData], Number(blockNumber), dexHelper);
452
+ const data = ERC4626Interface.decodeFunctionResult('maxDeposit', result[0].returnData)[0];
453
+ return (0, utils_1.bigIntify)(data);
454
+ }
455
+ //# sourceMappingURL=getOnChainState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOnChainState.js","sourceRoot":"","sources":["../../../src/dex/bunni-v2/getOnChainState.ts"],"names":[],"mappings":";;;;;AAiBA,oDA+CC;AAMD,4DAaC;AAED,0DAWC;AAED,4DASC;AAED,oDAsBC;AAED,wEAWC;AAMD,wCAgDC;AAED,0CAwFC;AAED,kCA0BC;AAED,wCAwBC;AAED,4EAyCC;AAED,8CAmCC;AAED,oCAgCC;AAED,sCAgCC;AAED,8CAsBC;AAED,gDAqEC;AAED,gDAmCC;AAMD,wDAsBC;AAMD,wDAmBC;AAED,0DAmBC;AAED,sDAmBC;AAED,gDAmBC;AAluBD,4CAA+C;AAE/C,0EAAgD;AAEhD,uCAAwC;AACxC,mCAAoC;AACpC,mCAAsD;AAEtD,MAAM,gBAAgB,GAAc,IAAI,eAAS,CAAC,sBAAU,CAAC,CAAC;AAE9D,MAAM,KAAK,GAAc,kBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,GAAc,kBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnD,MAAM,MAAM,GAAc,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrD,MAAM,MAAM,GAAc,kBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvD,MAAM,MAAM,GAAc,kBAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC/D,MAAM,OAAO,GAAc,kBAAS,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;AAEvE,KAAK,UAAU,oBAAoB,CACxC,UAAuB,EACvB,WAAmB,EACnB,iBAA4B,EAC5B,kBAA6B,EAC7B,mBAA8B,EAC9B,2BAAsC,EACtC,SAAqB,EACrB,MAAiB;IAEjB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,CACxE,GAAG,EAAE,CACH,kBAAkB,CAChB,UAAU,EACV,WAAW,EACX,2BAA2B,EAC3B,SAAS,EACT,MAAM,CACP,CACJ;QACD,eAAe,CACb,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,SAAS,CACV,CAAC,IAAI,CAAC,GAAG,EAAE,CACV,kBAAkB,CAChB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,SAAS,CACV,CACF;QACD,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QACnE,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QACtE,gCAAgC,CAC9B,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,SAAS,CACV;QACD,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QACzE,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,CAAC;QAC1E,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QACpE,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEzE,KAAK,UAAU,wBAAwB,CAC5C,KAAgB,EAChB,WAAmB,EACnB,iBAA4B,EAC5B,kBAA6B,EAC7B,mBAA8B,EAC9B,SAAqB;IAErB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC;QAClE,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QACnE,iBAAiB,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,CAAC;KACxE,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,KAAgB,EAChB,WAAmB,EACnB,iBAA4B,EAC5B,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC;QAClE,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,KAAgB,EAChB,WAAmB,EACnB,iBAA4B,EAC5B,SAAqB;IAErB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC;KACnE,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,KAAgB,EAChB,WAAmB,EACnB,iBAA4B,EAC5B,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC;QAClE,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC,IAAI,CACvE,GAAG,EAAE,CACH,kBAAkB,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAC1E;QACD,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QAChE,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;QACnE,gCAAgC,CAC9B,CAAC,KAAK,CAAC,EACP,WAAW,EACX,kBAAkB,EAClB,SAAS,CACV;KACF,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,8BAA8B,CAClD,MAAmB,EACnB,WAAmB,EACnB,iBAA4B,EAC5B,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC;QACjE,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,CAAC;KAChE,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEzE,KAAK,UAAU,cAAc,CAClC,UAAuB,EACvB,WAAmB,EACnB,iBAA4B,EAC5B,SAAqB;IAErB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,QAAQ;YAC1B,QAAQ,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBAC1D,SAAS,CAAC,EAAE;aACb,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CACjD,WAAW,EACX,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;QACL,SAAS,CAAC,wBAAwB;YAChC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;QAC9C,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACrD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/C,SAAS,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,SAAS,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,CAAC,oBAAoB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtE,SAAS,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,CAAC,oBAAoB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtE,SAAS,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,SAAS,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,SAAS,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,SAAS,CAAC,WAAW,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,SAAS,CAAC,WAAW,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,SAAS,CAAC,QAAQ,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,SAAS,CAAC,QAAQ,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CACvC,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACxE,CAAC;QACF,MAAM,2BAA2B,GAAG,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC;aACN,WAAW,EAAE,CAAC;QAEjB,MAAM,sBAAsB,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CACnD,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACxE,CAAC;QAEF,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACzD,CAAC,UAAU,EAAE,2BAA2B,EAAE,sBAAsB,CAAC;SAClE,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtE,+BAA+B;QAC/B,MAAM,YAAY,GAAG,kBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,IAAA,iBAAS,EAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpE,sCAAsC;QACtC,MAAM,8BAA8B,GAAG,kBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAA,iBAAS,EAC9B,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,CAC3C,CAAC;QACF,MAAM,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,8BAA8B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,8BAA8B;aAC/C,GAAG,CAAC,GAAG,CAAC;aACR,GAAG,CAAC,KAAK,CAAC;aACV,EAAE,CAAC,CAAC,CAAC,CAAC;QAET,MAAM,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,oBAAoB,GAAG,cAAc,CAAC,EAAE,CAC5C,kBAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACnC;YACC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzD,CAAC,CAAC,cAAc,CAAC;QAEnB,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,OAAO;YACL,KAAK;YACL,WAAW;YACX,eAAe;YACf,uBAAuB,EAAE;gBACvB,cAAc;gBACd,QAAQ,EAAE,IAAA,iBAAS,EAAC,cAAc,CAAC;gBACnC,cAAc,EAAE,IAAA,iBAAS,EAAC,oBAAoB,CAAC;gBAC/C,WAAW;aACZ;YACD,kBAAkB;SACnB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAElD,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACjE,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SAC1E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,oBAAoB,CAClD,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC;QAEF,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,SAAS,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtE,SAAS,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBAC3D,SAAS,CAAC,EAAE;aACb,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,oBAAoB,CAClD,WAAW,EACX,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;QACL,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,gCAAgC,CACpD,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CACjC,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CACzE,CAAC;QACF,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,iCAAiC,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,iCAAiC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,IAAA,iBAAS,EAC3B,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CACtD,CAAC;QACF,MAAM,WAAW,GAAG,IAAA,iBAAS,EAC3B,iCAAiC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CACxD,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACzC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CACjC,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CACzE,CAAC;QACF,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,kBAAkB,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBACxD,SAAS,CAAC,EAAE;gBACZ,IAAI;aACL,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,oBAAoB,CAClD,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;QAEL,SAAS,CAAC,MAAM,GAAG;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,OAAO,CAAC;SACjC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBACxD,SAAS,CAAC,EAAE;gBACZ,KAAK;aACN,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,oBAAoB,CAClD,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;QAEL,SAAS,CAAC,OAAO,GAAG;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,OAAO,CAAC;SACjC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,UAAuB,EACvB,WAAmB,EACnB,mBAA8B,EAC9B,SAAqB;IAErB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,UAAU;YAC5B,QAAQ,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,mBAAmB,CAAC,oBAAoB,CACnD,aAAa,EACb,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC;QACF,SAAS,CAAC,WAAW,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,UAAuB,EACvB,WAAmB,EACnB,kBAA6B,EAC7B,SAAqB;IAErB,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,oBAAoB,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CACjD,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACxE,CAAC;QAEF,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,gBAAgB,CAAC,IAAI,CACnB,kBAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACzD,CAAC,GAAG,gBAAgB,CAAC;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAY,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtE,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,kBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAErD,MAAM,cAAc,GAAG,IAAA,iBAAS,EAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE7D,MAAM,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5D,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC,CAAC,QAAQ,CAAC;YAEb,MAAM,oBAAoB,GAAG,cAAc,CAAC,EAAE,CAC5C,kBAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACnC;gBACC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACzD,CAAC,CAAC,cAAc,CAAC;YAEnB,YAAY,CAAC,IAAI,CAAC;gBAChB,cAAc;gBACd,QAAQ,EAAE,IAAA,iBAAS,EAAC,cAAc,CAAC;gBACnC,cAAc,EAAE,IAAA,iBAAS,EAAC,oBAAoB,CAAC;gBAC/C,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,UAAuB,EACvB,WAAmB,EACnB,2BAAsC,EACtC,SAAqB,EACrB,MAAiB;IAEjB,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CACjD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAC7B,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CACrE,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACjD,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,OAAO;YACzB,QAAQ,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,cAAc,EAAE;gBACvE,SAAS,CAAC,EAAE;aACb,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,2BAA2B,CAAC,oBAAoB,CAC3D,cAAc,EACd,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC;QAEF,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACrD,SAAS,CAAC,YAAY,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACrD,SAAS,CAAC,YAAY,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAEzE,KAAK,UAAU,sBAAsB,CAC1C,MAAe,EACf,SAAqB;IAErB,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvC,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;gBAC/D,GAAG,IAAI,KAAK,CAAC,aAAa;aAC3B,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEnE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAChD,iBAAiB,EACjB,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC;QACF,KAAK,CAAC,UAAU,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEzE,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,KAAa,EACb,WAAmB,EACnB,SAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;KAC1E,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAChD,gBAAgB,EAChB,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,MAAc,EACd,KAAa,EACb,WAAmB,EACnB,SAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;KAC3E,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAChD,iBAAiB,EACjB,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,KAAa,EACb,WAAmB,EACnB,SAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;KACzE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAChD,eAAe,EACf,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,KAAa,EACb,WAAmB,EACnB,SAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC;KACvE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAS,EAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAChD,YAAY,EACZ,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { BunniComputeSwapInput } from '../types';
2
+ export declare function computeSwap(input: BunniComputeSwapInput): {
3
+ updatedSqrtPriceX96: bigint;
4
+ updatedTick: bigint;
5
+ inputAmount: bigint;
6
+ outputAmount: bigint;
7
+ };