@paraswap/dex-lib 4.8.40 → 4.8.42-genericWithPartnerFee.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 (242) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +80 -0
  2. package/build/dex/fluid-dex/scripts/measure-calc-time.js +178 -0
  3. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +1 -0
  4. package/build/dex/index.d.ts +4 -1
  5. package/build/dex/index.js +31 -0
  6. package/build/dex/index.js.map +1 -1
  7. package/build/dex/pancakeswap-infinity/subgraph.js +2 -4
  8. package/build/dex/pancakeswap-infinity/subgraph.js.map +1 -1
  9. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  10. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  11. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  12. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  13. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  14. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  15. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  16. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  17. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  18. package/build/generic-swap-transaction-builder.d.ts +2 -3
  19. package/build/generic-swap-transaction-builder.js +3 -8
  20. package/build/generic-swap-transaction-builder.js.map +1 -1
  21. package/build/pools-helper.js +3 -3
  22. package/build/pools-helper.js.map +1 -1
  23. package/package.json +1 -1
  24. package/build/abi/BProtocol.json +0 -1155
  25. package/build/abi/Jarvis.json +0 -1172
  26. package/build/abi/MStableAsset.json +0 -1545
  27. package/build/abi/OneInchLp.json +0 -1304
  28. package/build/abi/Onebit.json +0 -736
  29. package/build/abi/Shell.json +0 -1294
  30. package/build/abi/TraderJoeV2Router.json +0 -50
  31. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  32. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  33. package/build/abi/infusion/InfusionFactory.json +0 -147
  34. package/build/abi/infusion/InfusionPair.json +0 -658
  35. package/build/abi/infusion/InfusionRouter.json +0 -442
  36. package/build/abi/maker-psm/pot.json +0 -322
  37. package/build/abi/maker-psm/psm.json +0 -243
  38. package/build/abi/maker-psm/vat.json +0 -363
  39. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  40. package/build/abi/quick-perps/fast-price-events.json +0 -70
  41. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  42. package/build/abi/quick-perps/reader.json +0 -313
  43. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  44. package/build/abi/quick-perps/vault.json +0 -1953
  45. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  46. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  47. package/build/abi/wUSDM.json +0 -757
  48. package/build/abi/zrx.v2.json +0 -1967
  49. package/build/abi/zrx.v3.json +0 -3454
  50. package/build/abi/zrx.v4.json +0 -2193
  51. package/build/dex/OneInchLp.d.ts +0 -24
  52. package/build/dex/OneInchLp.js +0 -43
  53. package/build/dex/OneInchLp.js.map +0 -1
  54. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  55. package/build/dex/bProtocol/bProtocol.js +0 -56
  56. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  57. package/build/dex/bProtocol/types.d.ts +0 -11
  58. package/build/dex/bProtocol/types.js +0 -8
  59. package/build/dex/bProtocol/types.js.map +0 -1
  60. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  61. package/build/dex/ekubo/pools/base-pool.js +0 -184
  62. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  63. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  64. package/build/dex/ekubo/pools/iface.js +0 -75
  65. package/build/dex/ekubo/pools/iface.js.map +0 -1
  66. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  67. package/build/dex/ekubo/pools/math/price.js +0 -112
  68. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  69. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  70. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  71. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  72. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  73. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  74. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  75. package/build/dex/idle-dao/config.d.ts +0 -5
  76. package/build/dex/idle-dao/config.js +0 -24
  77. package/build/dex/idle-dao/config.js.map +0 -1
  78. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  79. package/build/dex/idle-dao/idle-dao.js +0 -279
  80. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  81. package/build/dex/idle-dao/token_list.d.ts +0 -4
  82. package/build/dex/idle-dao/token_list.js +0 -289
  83. package/build/dex/idle-dao/token_list.js.map +0 -1
  84. package/build/dex/idle-dao/tokens.d.ts +0 -9
  85. package/build/dex/idle-dao/tokens.js +0 -68
  86. package/build/dex/idle-dao/tokens.js.map +0 -1
  87. package/build/dex/idle-dao/types.d.ts +0 -35
  88. package/build/dex/idle-dao/types.js +0 -11
  89. package/build/dex/idle-dao/types.js.map +0 -1
  90. package/build/dex/idle-dao/utils.d.ts +0 -8
  91. package/build/dex/idle-dao/utils.js +0 -149
  92. package/build/dex/idle-dao/utils.js.map +0 -1
  93. package/build/dex/infusion/config.d.ts +0 -3
  94. package/build/dex/infusion/config.js +0 -20
  95. package/build/dex/infusion/config.js.map +0 -1
  96. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  97. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  98. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  99. package/build/dex/infusion/infusion.d.ts +0 -51
  100. package/build/dex/infusion/infusion.js +0 -500
  101. package/build/dex/infusion/infusion.js.map +0 -1
  102. package/build/dex/infusion/types.d.ts +0 -45
  103. package/build/dex/infusion/types.js +0 -3
  104. package/build/dex/infusion/types.js.map +0 -1
  105. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  106. package/build/dex/infusion/utils/isStablePair.js +0 -18
  107. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  108. package/build/dex/jarvis.d.ts +0 -56
  109. package/build/dex/jarvis.js +0 -163
  110. package/build/dex/jarvis.js.map +0 -1
  111. package/build/dex/mStable.d.ts +0 -44
  112. package/build/dex/mStable.js +0 -75
  113. package/build/dex/mStable.js.map +0 -1
  114. package/build/dex/maker-psm/config.d.ts +0 -11
  115. package/build/dex/maker-psm/config.js +0 -53
  116. package/build/dex/maker-psm/config.js.map +0 -1
  117. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  118. package/build/dex/maker-psm/maker-psm.js +0 -493
  119. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  120. package/build/dex/maker-psm/types.d.ts +0 -39
  121. package/build/dex/maker-psm/types.js +0 -3
  122. package/build/dex/maker-psm/types.js.map +0 -1
  123. package/build/dex/onebit/onebit.d.ts +0 -16
  124. package/build/dex/onebit/onebit.js +0 -61
  125. package/build/dex/onebit/onebit.js.map +0 -1
  126. package/build/dex/onebit/types.d.ts +0 -14
  127. package/build/dex/onebit/types.js +0 -8
  128. package/build/dex/onebit/types.js.map +0 -1
  129. package/build/dex/quick-perps/config.d.ts +0 -11
  130. package/build/dex/quick-perps/config.js +0 -27
  131. package/build/dex/quick-perps/config.js.map +0 -1
  132. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  133. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  134. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  135. package/build/dex/quick-perps/pool.d.ts +0 -21
  136. package/build/dex/quick-perps/pool.js +0 -229
  137. package/build/dex/quick-perps/pool.js.map +0 -1
  138. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  139. package/build/dex/quick-perps/quick-perps.js +0 -247
  140. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  141. package/build/dex/quick-perps/types.d.ts +0 -98
  142. package/build/dex/quick-perps/types.js +0 -3
  143. package/build/dex/quick-perps/types.js.map +0 -1
  144. package/build/dex/quick-perps/usdq.d.ts +0 -15
  145. package/build/dex/quick-perps/usdq.js +0 -62
  146. package/build/dex/quick-perps/usdq.js.map +0 -1
  147. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  148. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  149. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  150. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  151. package/build/dex/quick-perps/vault-utils.js +0 -42
  152. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  153. package/build/dex/quick-perps/vault.d.ts +0 -46
  154. package/build/dex/quick-perps/vault.js +0 -182
  155. package/build/dex/quick-perps/vault.js.map +0 -1
  156. package/build/dex/se-vlr/config.d.ts +0 -3
  157. package/build/dex/se-vlr/config.js +0 -24
  158. package/build/dex/se-vlr/config.js.map +0 -1
  159. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  160. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  161. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  162. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  163. package/build/dex/se-vlr/se-vlr.js +0 -131
  164. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  165. package/build/dex/se-vlr/types.d.ts +0 -6
  166. package/build/dex/se-vlr/types.js +0 -3
  167. package/build/dex/se-vlr/types.js.map +0 -1
  168. package/build/dex/shell.d.ts +0 -25
  169. package/build/dex/shell.js +0 -41
  170. package/build/dex/shell.js.map +0 -1
  171. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  172. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  173. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  174. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  175. package/build/dex/solidly/forks-override/chronos.js +0 -141
  176. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  177. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  178. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  179. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  180. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  181. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  182. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  183. package/build/dex/trader-joe-v2.d.ts +0 -40
  184. package/build/dex/trader-joe-v2.js +0 -74
  185. package/build/dex/trader-joe-v2.js.map +0 -1
  186. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  187. package/build/dex/uniswap-v2/dfyn.js +0 -61
  188. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  189. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  190. package/build/dex/uniswap-v2/excalibur.js +0 -47
  191. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  192. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  193. package/build/dex/uniswap-v2/mdex.js +0 -50
  194. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  195. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  196. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  197. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  198. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  199. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  200. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  201. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  202. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  203. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  204. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  205. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  206. package/build/dex/usual-bond/config.d.ts +0 -3
  207. package/build/dex/usual-bond/config.js +0 -13
  208. package/build/dex/usual-bond/config.js.map +0 -1
  209. package/build/dex/usual-bond/types.d.ts +0 -7
  210. package/build/dex/usual-bond/types.js +0 -3
  211. package/build/dex/usual-bond/types.js.map +0 -1
  212. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  213. package/build/dex/usual-bond/usual-bond.js +0 -176
  214. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  215. package/build/dex/wusdm/config.d.ts +0 -3
  216. package/build/dex/wusdm/config.js +0 -43
  217. package/build/dex/wusdm/config.js.map +0 -1
  218. package/build/dex/wusdm/constants.d.ts +0 -2
  219. package/build/dex/wusdm/constants.js +0 -6
  220. package/build/dex/wusdm/constants.js.map +0 -1
  221. package/build/dex/wusdm/types.d.ts +0 -18
  222. package/build/dex/wusdm/types.js +0 -11
  223. package/build/dex/wusdm/types.js.map +0 -1
  224. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  225. package/build/dex/wusdm/wusdm-pool.js +0 -74
  226. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  227. package/build/dex/wusdm/wusdm.d.ts +0 -46
  228. package/build/dex/wusdm/wusdm.js +0 -243
  229. package/build/dex/wusdm/wusdm.js.map +0 -1
  230. package/build/dex/zerox/config.d.ts +0 -2
  231. package/build/dex/zerox/config.js +0 -33
  232. package/build/dex/zerox/config.js.map +0 -1
  233. package/build/dex/zerox/index.d.ts +0 -22
  234. package/build/dex/zerox/index.js +0 -225
  235. package/build/dex/zerox/index.js.map +0 -1
  236. package/build/dex/zerox/order.d.ts +0 -88
  237. package/build/dex/zerox/order.js +0 -53
  238. package/build/dex/zerox/order.js.map +0 -1
  239. package/build/dex/zerox/types.d.ts +0 -73
  240. package/build/dex/zerox/types.js +0 -21
  241. package/build/dex/zerox/types.js.map +0 -1
  242. /package/build/dex/{uniswap-v3/scripts/bench-all-dexes.d.ts → fluid-dex/scripts/measure-calc-time.d.ts} +0 -0
@@ -1,493 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MakerPsm = exports.MakerPsmEventPool = void 0;
40
- const abi_1 = require("@ethersproject/abi");
41
- const constants_1 = require("../../constants");
42
- const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
43
- const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
44
- const utils_1 = require("../../utils");
45
- const simple_exchange_1 = require("../simple-exchange");
46
- const config_1 = require("./config");
47
- const psm_json_1 = __importDefault(require("../../abi/maker-psm/psm.json"));
48
- const vat_json_1 = __importDefault(require("../../abi/maker-psm/vat.json"));
49
- const bigint_constants_1 = require("../../bigint-constants");
50
- const types_1 = require("../../executor/types");
51
- const bytes_1 = require("@ethersproject/bytes");
52
- const core_1 = require("@paraswap/core");
53
- const ethers_1 = require("ethers");
54
- const vatInterface = new abi_1.Interface(vat_json_1.default);
55
- const psmInterface = new abi_1.Interface(psm_json_1.default);
56
- const WAD = bigint_constants_1.BI_POWS[18];
57
- const bigIntify = (b) => BigInt(b.toString());
58
- const ceilDiv = (a, b) => (a + b - 1n) / b;
59
- async function getOnChainState(multiContract, poolConfigs, vatAddress, blockNumber) {
60
- const callData = poolConfigs
61
- .map(c => [
62
- {
63
- target: c.psmAddress,
64
- callData: psmInterface.encodeFunctionData('tin', []),
65
- },
66
- {
67
- target: c.psmAddress,
68
- callData: psmInterface.encodeFunctionData('tout', []),
69
- },
70
- {
71
- target: vatAddress,
72
- callData: vatInterface.encodeFunctionData('ilks', [c.identifier]),
73
- },
74
- ])
75
- .flat();
76
- const res = await multiContract.methods
77
- .aggregate(callData)
78
- .call({}, blockNumber);
79
- let i = 0;
80
- return poolConfigs.map(c => {
81
- const tin = bigIntify(psmInterface.decodeFunctionResult('tin', res.returnData[i++])[0]);
82
- const tout = bigIntify(psmInterface.decodeFunctionResult('tout', res.returnData[i++])[0]);
83
- const ilks = vatInterface.decodeFunctionResult('ilks', res.returnData[i++]);
84
- const Art = bigIntify(ilks.Art);
85
- const line = bigIntify(ilks.line);
86
- const rate = bigIntify(ilks.rate);
87
- return {
88
- tin,
89
- tout,
90
- Art,
91
- line,
92
- rate,
93
- };
94
- });
95
- }
96
- class MakerPsmEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
97
- network;
98
- dexHelper;
99
- poolConfig;
100
- vatAddress;
101
- handlers = {};
102
- logDecoder;
103
- to18ConversionFactor;
104
- bytes32Tout = '0x746f757400000000000000000000000000000000000000000000000000000000'; // bytes32('tout')
105
- bytes32Tin = '0x74696e0000000000000000000000000000000000000000000000000000000000'; // bytes32('tin')
106
- constructor(parentName, network, dexHelper, logger, poolConfig, vatAddress) {
107
- super(parentName, poolConfig.identifier, dexHelper, logger);
108
- this.network = network;
109
- this.dexHelper = dexHelper;
110
- this.poolConfig = poolConfig;
111
- this.vatAddress = vatAddress;
112
- this.logDecoder = (log) => psmInterface.parseLog(log);
113
- this.addressesSubscribed = [poolConfig.psmAddress];
114
- this.to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - poolConfig.gem.decimals);
115
- // Add handlers
116
- this.handlers['File'] = this.handleFile.bind(this);
117
- this.handlers['SellGem'] = this.handleSellGem.bind(this);
118
- this.handlers['BuyGem'] = this.handleBuyGem.bind(this);
119
- }
120
- handleFile(event, pool, log) {
121
- if (event.args.what === this.bytes32Tin) {
122
- pool.tin = bigIntify(event.args.data);
123
- }
124
- else if (event.args.what === this.bytes32Tout) {
125
- pool.tout = bigIntify(event.args.data);
126
- }
127
- return pool;
128
- }
129
- handleSellGem(event, pool, log) {
130
- pool.Art += bigIntify(event.args.value) * this.to18ConversionFactor;
131
- return pool;
132
- }
133
- handleBuyGem(event, pool, log) {
134
- pool.Art -= bigIntify(event.args.value) * this.to18ConversionFactor;
135
- return pool;
136
- }
137
- getIdentifier() {
138
- return `${this.parentName}_${this.poolConfig.psmAddress}`.toLowerCase();
139
- }
140
- /**
141
- * The function is called every time any of the subscribed
142
- * addresses release log. The function accepts the current
143
- * state, updates the state according to the log, and returns
144
- * the updated state.
145
- * @param state - Current state of event subscriber
146
- * @param log - Log released by one of the subscribed addresses
147
- * @returns Updates state of the event subscriber after the log
148
- */
149
- processLog(state, log) {
150
- try {
151
- const event = this.logDecoder(log);
152
- if (event.name in this.handlers) {
153
- return this.handlers[event.name](event, state, log);
154
- }
155
- return state;
156
- }
157
- catch (e) {
158
- this.logger.error(`Error_${this.parentName}_processLog could not parse the log with topic ${log.topics}:`, e);
159
- return null;
160
- }
161
- }
162
- /**
163
- * The function generates state using on-chain calls. This
164
- * function is called to regenerate state if the event based
165
- * system fails to fetch events and the local state is no
166
- * more correct.
167
- * @param blockNumber - Blocknumber for which the state should
168
- * should be generated
169
- * @returns state of the event subscriber at blocknumber
170
- */
171
- async generateState(blockNumber) {
172
- return (await getOnChainState(this.dexHelper.multiContract, [this.poolConfig], this.vatAddress, blockNumber))[0];
173
- }
174
- }
175
- exports.MakerPsmEventPool = MakerPsmEventPool;
176
- class MakerPsm extends simple_exchange_1.SimpleExchange {
177
- network;
178
- dexHelper;
179
- adapters;
180
- dai;
181
- vatAddress;
182
- poolConfigs;
183
- eventPools;
184
- // warning: There is limit on swap
185
- hasConstantPriceLargeAmounts = true;
186
- isFeeOnTransferSupported = false;
187
- static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.MakerPsmConfig);
188
- logger;
189
- constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network], dai = config_1.MakerPsmConfig[dexKey][network].dai, vatAddress = config_1.MakerPsmConfig[dexKey][network].vatAddress, poolConfigs = config_1.MakerPsmConfig[dexKey][network].pools) {
190
- super(dexHelper, dexKey);
191
- this.network = network;
192
- this.dexHelper = dexHelper;
193
- this.adapters = adapters;
194
- this.dai = dai;
195
- this.vatAddress = vatAddress;
196
- this.poolConfigs = poolConfigs;
197
- this.logger = dexHelper.getLogger(dexKey);
198
- this.eventPools = {};
199
- poolConfigs.forEach(p => (this.eventPools[p.gem.address.toLowerCase()] = new MakerPsmEventPool(dexKey, network, dexHelper, this.logger, p, this.vatAddress)));
200
- }
201
- static getDirectFunctionNameV6() {
202
- return [core_1.ContractMethodV6.swapExactAmountInOutOnMakerPSM];
203
- }
204
- async initializePricing(blockNumber) {
205
- const poolStates = await getOnChainState(this.dexHelper.multiContract, this.poolConfigs, this.vatAddress, blockNumber);
206
- await Promise.all(this.poolConfigs.map(async (p, i) => {
207
- const eventPool = this.eventPools[p.gem.address.toLowerCase()];
208
- await eventPool.initialize(blockNumber, {
209
- state: poolStates[i],
210
- });
211
- }));
212
- }
213
- // Returns the list of contract adapters (name and index)
214
- // for a buy/sell. Return null if there are no adapters.
215
- getAdapters(side) {
216
- return this.adapters[side];
217
- }
218
- getEventPool(srcToken, destToken) {
219
- const srcAddress = srcToken.address.toLowerCase();
220
- const destAddress = destToken.address.toLowerCase();
221
- return ((srcAddress === this.dai.address && this.eventPools[destAddress]) ||
222
- (destAddress === this.dai.address && this.eventPools[srcAddress]) ||
223
- null);
224
- }
225
- // Returns list of pool identifiers that can be used
226
- // for a given swap. poolIdentifiers must be unique
227
- // across DEXes.
228
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
229
- const eventPool = this.getEventPool(srcToken, destToken);
230
- if (!eventPool)
231
- return [];
232
- return [eventPool.getIdentifier()];
233
- }
234
- async getPoolState(pool, blockNumber) {
235
- const eventState = pool.getState(blockNumber);
236
- if (eventState)
237
- return eventState;
238
- const onChainState = await pool.generateState(blockNumber);
239
- pool.setState(onChainState, blockNumber);
240
- return onChainState;
241
- }
242
- computePrices(isSrcDai, to18ConversionFactor, side, amounts, poolState) {
243
- const sellGemCheck = (dart) => (dart + poolState.Art) * poolState.rate <= poolState.line;
244
- const buyGemCheck = (dart) => dart <= poolState.Art;
245
- return amounts.map(a => {
246
- if (side === constants_1.SwapSide.SELL) {
247
- if (isSrcDai) {
248
- const gemAmt18 = (a * WAD) / (WAD + poolState.tout);
249
- if (buyGemCheck(gemAmt18))
250
- return gemAmt18 / to18ConversionFactor;
251
- }
252
- else {
253
- const gemAmt18 = to18ConversionFactor * a;
254
- if (sellGemCheck(gemAmt18))
255
- return gemAmt18 - (gemAmt18 * poolState.tin) / WAD;
256
- }
257
- }
258
- else {
259
- if (isSrcDai) {
260
- const gemAmt18 = to18ConversionFactor * a;
261
- if (buyGemCheck(gemAmt18))
262
- return gemAmt18 + (gemAmt18 * poolState.tout) / WAD;
263
- }
264
- else {
265
- const gemAmt18 = (a * WAD) / (WAD - poolState.tin);
266
- if (sellGemCheck(gemAmt18))
267
- return gemAmt18 / to18ConversionFactor;
268
- }
269
- }
270
- return 0n;
271
- });
272
- }
273
- // Returns pool prices for amounts.
274
- // If limitPools is defined only pools in limitPools
275
- // should be used. If limitPools is undefined then
276
- // any pools can be used.
277
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
278
- const eventPool = this.getEventPool(srcToken, destToken);
279
- if (!eventPool)
280
- return null;
281
- const poolIdentifier = eventPool.getIdentifier();
282
- if (limitPools && !limitPools.includes(poolIdentifier))
283
- return null;
284
- const poolState = await this.getPoolState(eventPool, blockNumber);
285
- const unitVolume = (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? srcToken : destToken).decimals);
286
- const isSrcDai = srcToken.address.toLowerCase() === this.dai.address;
287
- const gem = isSrcDai ? destToken : srcToken;
288
- const toll = (side === constants_1.SwapSide.SELL && isSrcDai) ||
289
- (side === constants_1.SwapSide.BUY && !isSrcDai)
290
- ? poolState.tout
291
- : poolState.tin;
292
- const [unit, ...prices] = this.computePrices(isSrcDai, eventPool.to18ConversionFactor, side, [unitVolume, ...amounts], poolState);
293
- return [
294
- {
295
- prices,
296
- unit,
297
- data: {
298
- toll: toll.toString(),
299
- psmAddress: eventPool.poolConfig.psmAddress,
300
- gemJoinAddress: eventPool.poolConfig.gemJoinAddress,
301
- gemDecimals: gem.decimals,
302
- },
303
- poolAddresses: [eventPool.poolConfig.psmAddress],
304
- exchange: this.dexKey,
305
- gasCost: 200 * 1000,
306
- poolIdentifier,
307
- },
308
- ];
309
- }
310
- // Returns estimated gas cost of calldata for this DEX in multiSwap
311
- getCalldataGasCost(poolPrices) {
312
- return (CALLDATA_GAS_COST.DEX_OVERHEAD +
313
- CALLDATA_GAS_COST.LENGTH_SMALL +
314
- CALLDATA_GAS_COST.ADDRESS +
315
- // TODO: pools have toll as zero currently but may change
316
- CALLDATA_GAS_COST.ZERO +
317
- // Either 1 (18 decimals) or 1e12 = 0xe8d4a51000 (6 decimals)
318
- CALLDATA_GAS_COST.wordNonZeroBytes(poolPrices.data.gemDecimals === 6 ? 4 : 1));
319
- }
320
- getPsmParams(srcToken, srcAmount, destAmount, data, side) {
321
- const isSrcDai = srcToken.toLowerCase() === this.dai.address;
322
- const to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - data.gemDecimals);
323
- if (side === constants_1.SwapSide.SELL) {
324
- if (isSrcDai) {
325
- const gemAmt18 = (BigInt(srcAmount) * WAD) / (WAD + BigInt(data.toll));
326
- return {
327
- isGemSell: false,
328
- gemAmount: (gemAmt18 / to18ConversionFactor).toString(),
329
- };
330
- }
331
- else {
332
- return { isGemSell: true, gemAmount: srcAmount };
333
- }
334
- }
335
- else {
336
- if (isSrcDai) {
337
- return { isGemSell: false, gemAmount: destAmount };
338
- }
339
- else {
340
- const gemAmt = ceilDiv(BigInt(destAmount) * WAD, (WAD - BigInt(data.toll)) * to18ConversionFactor);
341
- return {
342
- isGemSell: true,
343
- gemAmount: gemAmt.toString(),
344
- };
345
- }
346
- }
347
- }
348
- // Encode params required by the exchange adapter
349
- // Used for multiSwap, buy & megaSwap
350
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
351
- const to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - data.gemDecimals);
352
- const payload = this.abiCoder.encodeParameter({
353
- ParentStruct: {
354
- gemJoinAddress: 'address',
355
- toll: 'uint256',
356
- to18ConversionFactor: 'uint256',
357
- },
358
- }, {
359
- gemJoinAddress: data.gemJoinAddress,
360
- toll: data.toll,
361
- to18ConversionFactor,
362
- });
363
- return {
364
- targetExchange: data.psmAddress,
365
- networkFee: '0',
366
- payload,
367
- };
368
- }
369
- // Encode call data used by simpleSwap like routers
370
- // Used for simpleSwap & simpleBuy
371
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
372
- const { isGemSell, gemAmount } = this.getPsmParams(srcToken, srcAmount, destAmount, data, side);
373
- const swapData = psmInterface.encodeFunctionData(isGemSell ? 'sellGem' : 'buyGem', [this.augustusAddress, gemAmount]);
374
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.psmAddress, isGemSell ? data.gemJoinAddress : data.psmAddress);
375
- }
376
- getTokenFromAddress(address) {
377
- return { address, decimals: 0 };
378
- }
379
- async preProcessTransaction(optimalSwapExchange, srcToken, destToken, side, options) {
380
- if (!optimalSwapExchange.data) {
381
- throw new Error(`Error_${this.dexKey}_preProcessTransaction payload is not received`);
382
- }
383
- let isApproved = false;
384
- // isApproved is only used in direct method and available only for v6, then no need to check approve for v5
385
- // because it's either done in getSimpleParam or approve call in the adapter smart contract
386
- if (options.version === core_1.ParaSwapVersion.V6 && options.isDirectMethod) {
387
- isApproved = await this.dexHelper.augustusApprovals.hasApproval(options.executionContractAddress, srcToken.address, srcToken.address.toLowerCase() === this.dai.address.toLowerCase()
388
- ? optimalSwapExchange.data.psmAddress
389
- : optimalSwapExchange.data.gemJoinAddress);
390
- }
391
- return [
392
- {
393
- ...optimalSwapExchange,
394
- data: { ...optimalSwapExchange.data, isApproved },
395
- },
396
- {},
397
- ];
398
- }
399
- getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
400
- const { isGemSell, gemAmount } = this.getPsmParams(srcToken, srcAmount, destAmount, data, side);
401
- let exchangeData = psmInterface.encodeFunctionData(isGemSell ? 'sellGem' : 'buyGem', [recipient, gemAmount]);
402
- // append toll and to18ConversionFactor & set specialDexFlag = SWAP_ON_MAKER_PSM to
403
- // - `buyGem` on Ex1 & Ex2
404
- // - `sellGem` on Ex3
405
- let specialDexFlag = types_1.SpecialDex.DEFAULT;
406
- if ((side === constants_1.SwapSide.SELL && !isGemSell) ||
407
- (side === constants_1.SwapSide.BUY && isGemSell)) {
408
- exchangeData = (0, bytes_1.hexConcat)([
409
- exchangeData,
410
- (0, bytes_1.hexZeroPad)((0, bytes_1.hexlify)(BigInt(data.toll)), 32),
411
- (0, bytes_1.hexZeroPad)((0, bytes_1.hexlify)((0, utils_1.getBigIntPow)(18 - data.gemDecimals)), 32),
412
- ]);
413
- specialDexFlag = types_1.SpecialDex.SWAP_ON_MAKER_PSM;
414
- }
415
- return {
416
- needWrapNative: this.needWrapNative,
417
- dexFuncHasRecipient: true,
418
- exchangeData,
419
- targetExchange: data.psmAddress,
420
- specialDexFlag,
421
- spender: isGemSell ? data.gemJoinAddress : data.psmAddress,
422
- returnAmountPos: undefined,
423
- };
424
- }
425
- getDirectParamV6(srcToken, destToken, fromAmount, toAmount, quotedAmount, data, side, permit, uuid, partnerAndFee, beneficiary, blockNumber, contractMethod) {
426
- if (!contractMethod)
427
- throw new Error(`contractMethod need to be passed`);
428
- if (!MakerPsm.getDirectFunctionNameV6().includes(contractMethod)) {
429
- throw new Error(`Invalid contract method ${contractMethod}`);
430
- }
431
- const beneficiaryParam = ethers_1.BigNumber.from(beneficiary);
432
- const approveParam = !data.isApproved
433
- ? ethers_1.BigNumber.from(1).shl(255)
434
- : ethers_1.BigNumber.from(0);
435
- const directionParam = side === constants_1.SwapSide.SELL ? ethers_1.BigNumber.from(0) : ethers_1.BigNumber.from(1).shl(254);
436
- const beneficiaryDirectionApproveFlag = beneficiaryParam
437
- .or(directionParam)
438
- .or(approveParam);
439
- const to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - data.gemDecimals);
440
- const metadata = (0, bytes_1.hexConcat)([
441
- (0, bytes_1.hexZeroPad)((0, utils_1.uuidToBytes16)(uuid), 16),
442
- (0, bytes_1.hexZeroPad)((0, bytes_1.hexlify)(blockNumber), 16),
443
- ]);
444
- const params = [
445
- srcToken,
446
- // not used on the contract, but used for analytics
447
- destToken,
448
- fromAmount,
449
- toAmount,
450
- data.toll,
451
- to18ConversionFactor.toString(),
452
- data.psmAddress,
453
- data.gemJoinAddress,
454
- metadata,
455
- beneficiaryDirectionApproveFlag.toString(),
456
- ];
457
- const payload = [params, permit];
458
- const encoder = (...params) => {
459
- return this.augustusV6Interface.encodeFunctionData(core_1.ContractMethodV6.swapExactAmountInOutOnMakerPSM, [...params]);
460
- };
461
- return { params: payload, encoder, networkFee: '0' };
462
- }
463
- // Returns list of top pools based on liquidity. Max
464
- // limit number pools should be returned.
465
- async getTopPoolsForToken(tokenAddress, limit) {
466
- const _tokenAddress = tokenAddress.toLowerCase();
467
- // Liquidity depends on the swapping side hence we simply use the min
468
- // Its always in terms of stable coin hence liquidityUSD = liquidity
469
- const minLiq = (poolState) => {
470
- const buyLimit = poolState.Art;
471
- const sellLimit = (poolState.line - poolState.Art * poolState.rate) / poolState.rate;
472
- return (2 *
473
- parseInt(((buyLimit > sellLimit ? sellLimit : buyLimit) / bigint_constants_1.BI_POWS[18]).toString()));
474
- };
475
- const isDai = _tokenAddress === this.dai.address;
476
- const validPoolConfigs = isDai
477
- ? this.poolConfigs
478
- : this.eventPools[_tokenAddress]
479
- ? [this.eventPools[_tokenAddress].poolConfig]
480
- : [];
481
- if (!validPoolConfigs.length)
482
- return [];
483
- const poolStates = await getOnChainState(this.dexHelper.multiContract, validPoolConfigs, this.vatAddress, 'latest');
484
- return validPoolConfigs.map((p, i) => ({
485
- exchange: this.dexKey,
486
- address: p.psmAddress,
487
- liquidityUSD: minLiq(poolStates[i]),
488
- connectorTokens: [isDai ? p.gem : this.dai],
489
- }));
490
- }
491
- }
492
- exports.MakerPsm = MakerPsm;
493
- //# sourceMappingURL=maker-psm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maker-psm.js","sourceRoot":"","sources":["../../../src/dex/maker-psm/maker-psm.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { Address, NumberAsString, Token } from '../../types';
2
- export type PoolState = {
3
- tin: bigint;
4
- tout: bigint;
5
- Art: bigint;
6
- rate: bigint;
7
- line: bigint;
8
- };
9
- export type MakerPsmData = {
10
- psmAddress: Address;
11
- gemJoinAddress: Address;
12
- gemDecimals: number;
13
- toll: string;
14
- isApproved?: boolean;
15
- };
16
- export type PoolConfig = {
17
- gem: Token;
18
- gemJoinAddress: Address;
19
- psmAddress: Address;
20
- identifier: string;
21
- };
22
- export type DexParams = {
23
- dai: Token;
24
- vatAddress: Address;
25
- pools: PoolConfig[];
26
- };
27
- export type MakerPsmParams = [
28
- srcToken: Address,
29
- destToken: Address,
30
- fromAmount: NumberAsString,
31
- toAmount: NumberAsString,
32
- toll: NumberAsString,
33
- to18ConversionFactor: NumberAsString,
34
- exchange: Address,
35
- gemJoinAddress: Address,
36
- metadata: string,
37
- beneficiaryDirectionApproveFlag: NumberAsString
38
- ];
39
- export type MakerPsmDirectPayload = [params: MakerPsmParams, permit: string];
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/maker-psm/types.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../../constants';
3
- import { AdapterExchangeParam, Address, DexExchangeParam, NumberAsString, SimpleExchangeParam } from '../../types';
4
- import { IDexTxBuilder } from '../idex';
5
- import { SimpleExchange } from '../simple-exchange';
6
- import { IDexHelper } from '../../dex-helper';
7
- import { OnebitData, OnebitParam } from './types';
8
- export declare class Onebit extends SimpleExchange implements IDexTxBuilder<OnebitData, OnebitParam> {
9
- static dexKeys: string[];
10
- exchangeRouterInterface: Interface;
11
- needWrapNative: boolean;
12
- constructor(dexHelper: IDexHelper);
13
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OnebitData, side: SwapSide): AdapterExchangeParam;
14
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OnebitData, side: SwapSide): Promise<SimpleExchangeParam>;
15
- getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: OnebitData, _side: SwapSide): DexExchangeParam;
16
- }
@@ -1,61 +0,0 @@
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.Onebit = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const constants_1 = require("../../constants");
9
- const simple_exchange_1 = require("../simple-exchange");
10
- const Onebit_json_1 = __importDefault(require("../../abi/Onebit.json"));
11
- const types_1 = require("./types");
12
- const utils_1 = require("../../executor/utils");
13
- class Onebit extends simple_exchange_1.SimpleExchange {
14
- constructor(dexHelper) {
15
- super(dexHelper, 'omm1');
16
- this.needWrapNative = true;
17
- this.exchangeRouterInterface = new abi_1.Interface(Onebit_json_1.default);
18
- }
19
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
20
- return {
21
- targetExchange: data.router,
22
- payload: '0x',
23
- networkFee: '0',
24
- };
25
- }
26
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
27
- const swapFunction = types_1.OnebitFunctions.swapTokensWithTrust;
28
- const swapFunctionParams = [
29
- srcToken,
30
- destToken,
31
- srcAmount,
32
- destAmount,
33
- this.augustusAddress,
34
- ];
35
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
36
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.router);
37
- }
38
- getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, _side) {
39
- const swapFunction = types_1.OnebitFunctions.swapTokensWithTrust;
40
- const swapFunctionParams = [
41
- srcToken,
42
- destToken,
43
- srcAmount,
44
- destAmount,
45
- recipient,
46
- ];
47
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
48
- return {
49
- needWrapNative: this.needWrapNative,
50
- dexFuncHasRecipient: true,
51
- exchangeData: swapData,
52
- targetExchange: data.router,
53
- returnAmountPos: _side === constants_1.SwapSide.SELL
54
- ? (0, utils_1.extractReturnAmountPosition)(this.exchangeRouterInterface, swapFunction)
55
- : undefined,
56
- };
57
- }
58
- }
59
- exports.Onebit = Onebit;
60
- Onebit.dexKeys = ['omm1'];
61
- //# sourceMappingURL=onebit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onebit.js","sourceRoot":"","sources":["../../../src/dex/onebit/onebit.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAE7D,+CAA2C;AAS3C,wDAAoD;AACpD,wEAA8C;AAE9C,mCAAmE;AACnE,gDAAmE;AAEnE,MAAa,MACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAH3B,mBAAc,GAAG,IAAI,CAAC;QAIpB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,qBAA2B,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,MAAM,YAAY,GAAG,uBAAe,CAAC,mBAAmB,CAAC;QACzD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,IAAI,CAAC,eAAe;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAgB,EAChB,KAAe;QAEf,MAAM,YAAY,GAAG,uBAAe,CAAC,mBAAmB,CAAC;QACzD,MAAM,kBAAkB,GAAgB;YACtC,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,SAAS;SACV,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,IAAI,CAAC,MAAM;YAC3B,eAAe,EACb,KAAK,KAAK,oBAAQ,CAAC,IAAI;gBACrB,CAAC,CAAC,IAAA,mCAA2B,EACzB,IAAI,CAAC,uBAAuB,EAC5B,YAAY,CACb;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;;AA9FH,wBA+FC;AA3FQ,cAAO,GAAG,CAAC,MAAM,CAAC,CAAC"}