@cronos-labs/rfq-sdk 0.2.3

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 (660) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/cjs/abis/MockERC20.json +1606 -0
  4. package/dist/cjs/abis/deploylessMulticall2.json +30 -0
  5. package/dist/cjs/abis/multicall2.json +315 -0
  6. package/dist/cjs/src/builder/DutchOrderBuilder.d.ts +25 -0
  7. package/dist/cjs/src/builder/DutchOrderBuilder.js +143 -0
  8. package/dist/cjs/src/builder/DutchOrderBuilder.js.map +1 -0
  9. package/dist/cjs/src/builder/HybridOrderBuilder.d.ts +40 -0
  10. package/dist/cjs/src/builder/HybridOrderBuilder.js +257 -0
  11. package/dist/cjs/src/builder/HybridOrderBuilder.js.map +1 -0
  12. package/dist/cjs/src/builder/OrderBuilder.d.ts +17 -0
  13. package/dist/cjs/src/builder/OrderBuilder.js +59 -0
  14. package/dist/cjs/src/builder/OrderBuilder.js.map +1 -0
  15. package/dist/cjs/src/builder/PriorityOrderBuilder.d.ts +29 -0
  16. package/dist/cjs/src/builder/PriorityOrderBuilder.js +174 -0
  17. package/dist/cjs/src/builder/PriorityOrderBuilder.js.map +1 -0
  18. package/dist/cjs/src/builder/RelayOrderBuilder.d.ts +22 -0
  19. package/dist/cjs/src/builder/RelayOrderBuilder.js +109 -0
  20. package/dist/cjs/src/builder/RelayOrderBuilder.js.map +1 -0
  21. package/dist/cjs/src/builder/V2DutchOrderBuilder.d.ts +33 -0
  22. package/dist/cjs/src/builder/V2DutchOrderBuilder.js +240 -0
  23. package/dist/cjs/src/builder/V2DutchOrderBuilder.js.map +1 -0
  24. package/dist/cjs/src/builder/V3DutchOrderBuilder.d.ts +36 -0
  25. package/dist/cjs/src/builder/V3DutchOrderBuilder.js +253 -0
  26. package/dist/cjs/src/builder/V3DutchOrderBuilder.js.map +1 -0
  27. package/dist/cjs/src/builder/index.d.ts +7 -0
  28. package/dist/cjs/src/builder/index.js +11 -0
  29. package/dist/cjs/src/builder/index.js.map +1 -0
  30. package/dist/cjs/src/constants/v4.d.ts +44 -0
  31. package/dist/cjs/src/constants/v4.js +58 -0
  32. package/dist/cjs/src/constants/v4.js.map +1 -0
  33. package/dist/cjs/src/constants.d.ts +76 -0
  34. package/dist/cjs/src/constants.js +148 -0
  35. package/dist/cjs/src/constants.js.map +1 -0
  36. package/dist/cjs/src/contracts/DSTokenInterface.d.ts +372 -0
  37. package/dist/cjs/src/contracts/DSTokenInterface.js +3 -0
  38. package/dist/cjs/src/contracts/DSTokenInterface.js.map +1 -0
  39. package/dist/cjs/src/contracts/DeploylessMulticall2.d.ts +37 -0
  40. package/dist/cjs/src/contracts/DeploylessMulticall2.js +3 -0
  41. package/dist/cjs/src/contracts/DeploylessMulticall2.js.map +1 -0
  42. package/dist/cjs/src/contracts/DutchLimitOrderReactor.d.ts +191 -0
  43. package/dist/cjs/src/contracts/DutchLimitOrderReactor.js +3 -0
  44. package/dist/cjs/src/contracts/DutchLimitOrderReactor.js.map +1 -0
  45. package/dist/cjs/src/contracts/DutchOrderReactor.d.ts +191 -0
  46. package/dist/cjs/src/contracts/DutchOrderReactor.js +3 -0
  47. package/dist/cjs/src/contracts/DutchOrderReactor.js.map +1 -0
  48. package/dist/cjs/src/contracts/ERC1967Proxy.d.ts +39 -0
  49. package/dist/cjs/src/contracts/ERC1967Proxy.js +3 -0
  50. package/dist/cjs/src/contracts/ERC1967Proxy.js.map +1 -0
  51. package/dist/cjs/src/contracts/ExclusiveDutchOrderReactor.d.ts +207 -0
  52. package/dist/cjs/src/contracts/ExclusiveDutchOrderReactor.js +3 -0
  53. package/dist/cjs/src/contracts/ExclusiveDutchOrderReactor.js.map +1 -0
  54. package/dist/cjs/src/contracts/ExclusiveFillerValidation.d.ts +105 -0
  55. package/dist/cjs/src/contracts/ExclusiveFillerValidation.js +3 -0
  56. package/dist/cjs/src/contracts/ExclusiveFillerValidation.js.map +1 -0
  57. package/dist/cjs/src/contracts/HybridAuctionResolver.d.ts +148 -0
  58. package/dist/cjs/src/contracts/HybridAuctionResolver.js +3 -0
  59. package/dist/cjs/src/contracts/HybridAuctionResolver.js.map +1 -0
  60. package/dist/cjs/src/contracts/ISuperstateTokenV4.d.ts +628 -0
  61. package/dist/cjs/src/contracts/ISuperstateTokenV4.js +3 -0
  62. package/dist/cjs/src/contracts/ISuperstateTokenV4.js.map +1 -0
  63. package/dist/cjs/src/contracts/MockDSTokenInterface.d.ts +62 -0
  64. package/dist/cjs/src/contracts/MockDSTokenInterface.js +3 -0
  65. package/dist/cjs/src/contracts/MockDSTokenInterface.js.map +1 -0
  66. package/dist/cjs/src/contracts/MockERC20.d.ts +242 -0
  67. package/dist/cjs/src/contracts/MockERC20.js +3 -0
  68. package/dist/cjs/src/contracts/MockERC20.js.map +1 -0
  69. package/dist/cjs/src/contracts/MockSuperstateTokenV4.d.ts +58 -0
  70. package/dist/cjs/src/contracts/MockSuperstateTokenV4.js +3 -0
  71. package/dist/cjs/src/contracts/MockSuperstateTokenV4.js.map +1 -0
  72. package/dist/cjs/src/contracts/Multicall2.d.ts +218 -0
  73. package/dist/cjs/src/contracts/Multicall2.js +3 -0
  74. package/dist/cjs/src/contracts/Multicall2.js.map +1 -0
  75. package/dist/cjs/src/contracts/OrderQuoter.d.ts +131 -0
  76. package/dist/cjs/src/contracts/OrderQuoter.js +3 -0
  77. package/dist/cjs/src/contracts/OrderQuoter.js.map +1 -0
  78. package/dist/cjs/src/contracts/OrderQuoterV4.d.ts +150 -0
  79. package/dist/cjs/src/contracts/OrderQuoterV4.js +3 -0
  80. package/dist/cjs/src/contracts/OrderQuoterV4.js.map +1 -0
  81. package/dist/cjs/src/contracts/Permit2.d.ts +533 -0
  82. package/dist/cjs/src/contracts/Permit2.js +3 -0
  83. package/dist/cjs/src/contracts/Permit2.js.map +1 -0
  84. package/dist/cjs/src/contracts/PriorityOrderReactor.d.ts +207 -0
  85. package/dist/cjs/src/contracts/PriorityOrderReactor.js +3 -0
  86. package/dist/cjs/src/contracts/PriorityOrderReactor.js.map +1 -0
  87. package/dist/cjs/src/contracts/Proxy.d.ts +106 -0
  88. package/dist/cjs/src/contracts/Proxy.js +3 -0
  89. package/dist/cjs/src/contracts/Proxy.js.map +1 -0
  90. package/dist/cjs/src/contracts/Reactor.d.ts +207 -0
  91. package/dist/cjs/src/contracts/Reactor.js +3 -0
  92. package/dist/cjs/src/contracts/Reactor.js.map +1 -0
  93. package/dist/cjs/src/contracts/RelayOrderReactor.d.ts +150 -0
  94. package/dist/cjs/src/contracts/RelayOrderReactor.js +3 -0
  95. package/dist/cjs/src/contracts/RelayOrderReactor.js.map +1 -0
  96. package/dist/cjs/src/contracts/SwapRouter02Executor.d.ts +240 -0
  97. package/dist/cjs/src/contracts/SwapRouter02Executor.js +3 -0
  98. package/dist/cjs/src/contracts/SwapRouter02Executor.js.map +1 -0
  99. package/dist/cjs/src/contracts/TokenTransferHook.d.ts +144 -0
  100. package/dist/cjs/src/contracts/TokenTransferHook.js +3 -0
  101. package/dist/cjs/src/contracts/TokenTransferHook.js.map +1 -0
  102. package/dist/cjs/src/contracts/V2DutchOrderReactor.d.ts +207 -0
  103. package/dist/cjs/src/contracts/V2DutchOrderReactor.js +3 -0
  104. package/dist/cjs/src/contracts/V2DutchOrderReactor.js.map +1 -0
  105. package/dist/cjs/src/contracts/V3DutchOrderReactor.d.ts +207 -0
  106. package/dist/cjs/src/contracts/V3DutchOrderReactor.js +3 -0
  107. package/dist/cjs/src/contracts/V3DutchOrderReactor.js.map +1 -0
  108. package/dist/cjs/src/contracts/common.d.ts +22 -0
  109. package/dist/cjs/src/contracts/common.js +3 -0
  110. package/dist/cjs/src/contracts/common.js.map +1 -0
  111. package/dist/cjs/src/contracts/factories/DSTokenInterface__factory.d.ts +368 -0
  112. package/dist/cjs/src/contracts/factories/DSTokenInterface__factory.js +506 -0
  113. package/dist/cjs/src/contracts/factories/DSTokenInterface__factory.js.map +1 -0
  114. package/dist/cjs/src/contracts/factories/DeploylessMulticall2__factory.d.ts +29 -0
  115. package/dist/cjs/src/contracts/factories/DeploylessMulticall2__factory.js +48 -0
  116. package/dist/cjs/src/contracts/factories/DeploylessMulticall2__factory.js.map +1 -0
  117. package/dist/cjs/src/contracts/factories/DutchLimitOrderReactor__factory.d.ts +87 -0
  118. package/dist/cjs/src/contracts/factories/DutchLimitOrderReactor__factory.js +385 -0
  119. package/dist/cjs/src/contracts/factories/DutchLimitOrderReactor__factory.js.map +1 -0
  120. package/dist/cjs/src/contracts/factories/DutchOrderReactor__factory.d.ts +87 -0
  121. package/dist/cjs/src/contracts/factories/DutchOrderReactor__factory.js +385 -0
  122. package/dist/cjs/src/contracts/factories/DutchOrderReactor__factory.js.map +1 -0
  123. package/dist/cjs/src/contracts/factories/ERC1967Proxy__factory.d.ts +70 -0
  124. package/dist/cjs/src/contracts/factories/ERC1967Proxy__factory.js +108 -0
  125. package/dist/cjs/src/contracts/factories/ERC1967Proxy__factory.js.map +1 -0
  126. package/dist/cjs/src/contracts/factories/ExclusiveDutchOrderReactor__factory.d.ts +297 -0
  127. package/dist/cjs/src/contracts/factories/ExclusiveDutchOrderReactor__factory.js +400 -0
  128. package/dist/cjs/src/contracts/factories/ExclusiveDutchOrderReactor__factory.js.map +1 -0
  129. package/dist/cjs/src/contracts/factories/ExclusiveFillerValidation__factory.d.ts +115 -0
  130. package/dist/cjs/src/contracts/factories/ExclusiveFillerValidation__factory.js +165 -0
  131. package/dist/cjs/src/contracts/factories/ExclusiveFillerValidation__factory.js.map +1 -0
  132. package/dist/cjs/src/contracts/factories/HybridAuctionResolver__factory.d.ts +204 -0
  133. package/dist/cjs/src/contracts/factories/HybridAuctionResolver__factory.js +279 -0
  134. package/dist/cjs/src/contracts/factories/HybridAuctionResolver__factory.js.map +1 -0
  135. package/dist/cjs/src/contracts/factories/ISuperstateTokenV4__factory.d.ts +714 -0
  136. package/dist/cjs/src/contracts/factories/ISuperstateTokenV4__factory.js +918 -0
  137. package/dist/cjs/src/contracts/factories/ISuperstateTokenV4__factory.js.map +1 -0
  138. package/dist/cjs/src/contracts/factories/MockDSTokenInterface__factory.d.ts +61 -0
  139. package/dist/cjs/src/contracts/factories/MockDSTokenInterface__factory.js +95 -0
  140. package/dist/cjs/src/contracts/factories/MockDSTokenInterface__factory.js.map +1 -0
  141. package/dist/cjs/src/contracts/factories/MockERC20__factory.d.ts +301 -0
  142. package/dist/cjs/src/contracts/factories/MockERC20__factory.js +408 -0
  143. package/dist/cjs/src/contracts/factories/MockERC20__factory.js.map +1 -0
  144. package/dist/cjs/src/contracts/factories/MockSuperstateTokenV4__factory.d.ts +49 -0
  145. package/dist/cjs/src/contracts/factories/MockSuperstateTokenV4__factory.js +80 -0
  146. package/dist/cjs/src/contracts/factories/MockSuperstateTokenV4__factory.js.map +1 -0
  147. package/dist/cjs/src/contracts/factories/Multicall2__factory.d.ts +245 -0
  148. package/dist/cjs/src/contracts/factories/Multicall2__factory.js +333 -0
  149. package/dist/cjs/src/contracts/factories/Multicall2__factory.js.map +1 -0
  150. package/dist/cjs/src/contracts/factories/OrderQuoterV4__factory.d.ts +262 -0
  151. package/dist/cjs/src/contracts/factories/OrderQuoterV4__factory.js +354 -0
  152. package/dist/cjs/src/contracts/factories/OrderQuoterV4__factory.js.map +1 -0
  153. package/dist/cjs/src/contracts/factories/OrderQuoter__factory.d.ts +215 -0
  154. package/dist/cjs/src/contracts/factories/OrderQuoter__factory.js +295 -0
  155. package/dist/cjs/src/contracts/factories/OrderQuoter__factory.js.map +1 -0
  156. package/dist/cjs/src/contracts/factories/Permit2__factory.d.ts +720 -0
  157. package/dist/cjs/src/contracts/factories/Permit2__factory.js +942 -0
  158. package/dist/cjs/src/contracts/factories/Permit2__factory.js.map +1 -0
  159. package/dist/cjs/src/contracts/factories/PriorityOrderReactor__factory.d.ts +293 -0
  160. package/dist/cjs/src/contracts/factories/PriorityOrderReactor__factory.js +395 -0
  161. package/dist/cjs/src/contracts/factories/PriorityOrderReactor__factory.js.map +1 -0
  162. package/dist/cjs/src/contracts/factories/Proxy__factory.d.ts +88 -0
  163. package/dist/cjs/src/contracts/factories/Proxy__factory.js +130 -0
  164. package/dist/cjs/src/contracts/factories/Proxy__factory.js.map +1 -0
  165. package/dist/cjs/src/contracts/factories/Reactor__factory.d.ts +313 -0
  166. package/dist/cjs/src/contracts/factories/Reactor__factory.js +421 -0
  167. package/dist/cjs/src/contracts/factories/Reactor__factory.js.map +1 -0
  168. package/dist/cjs/src/contracts/factories/RelayOrderReactor__factory.d.ts +188 -0
  169. package/dist/cjs/src/contracts/factories/RelayOrderReactor__factory.js +258 -0
  170. package/dist/cjs/src/contracts/factories/RelayOrderReactor__factory.js.map +1 -0
  171. package/dist/cjs/src/contracts/factories/SwapRouter02Executor__factory.d.ts +257 -0
  172. package/dist/cjs/src/contracts/factories/SwapRouter02Executor__factory.js +348 -0
  173. package/dist/cjs/src/contracts/factories/SwapRouter02Executor__factory.js.map +1 -0
  174. package/dist/cjs/src/contracts/factories/TokenTransferHook__factory.d.ts +159 -0
  175. package/dist/cjs/src/contracts/factories/TokenTransferHook__factory.js +221 -0
  176. package/dist/cjs/src/contracts/factories/TokenTransferHook__factory.js.map +1 -0
  177. package/dist/cjs/src/contracts/factories/V2DutchOrderReactor__factory.d.ts +297 -0
  178. package/dist/cjs/src/contracts/factories/V2DutchOrderReactor__factory.js +400 -0
  179. package/dist/cjs/src/contracts/factories/V2DutchOrderReactor__factory.js.map +1 -0
  180. package/dist/cjs/src/contracts/factories/V3DutchOrderReactor__factory.d.ts +297 -0
  181. package/dist/cjs/src/contracts/factories/V3DutchOrderReactor__factory.js +400 -0
  182. package/dist/cjs/src/contracts/factories/V3DutchOrderReactor__factory.js.map +1 -0
  183. package/dist/cjs/src/contracts/factories/index.d.ts +22 -0
  184. package/dist/cjs/src/contracts/factories/index.js +51 -0
  185. package/dist/cjs/src/contracts/factories/index.js.map +1 -0
  186. package/dist/cjs/src/contracts/index.d.ts +45 -0
  187. package/dist/cjs/src/contracts/index.js +50 -0
  188. package/dist/cjs/src/contracts/index.js.map +1 -0
  189. package/dist/cjs/src/errors.d.ts +3 -0
  190. package/dist/cjs/src/errors.js +11 -0
  191. package/dist/cjs/src/errors.js.map +1 -0
  192. package/dist/cjs/src/index.d.ts +5 -0
  193. package/dist/cjs/src/index.js +9 -0
  194. package/dist/cjs/src/index.js.map +1 -0
  195. package/dist/cjs/src/order/DutchOrder.d.ts +67 -0
  196. package/dist/cjs/src/order/DutchOrder.js +291 -0
  197. package/dist/cjs/src/order/DutchOrder.js.map +1 -0
  198. package/dist/cjs/src/order/PriorityOrder.d.ts +121 -0
  199. package/dist/cjs/src/order/PriorityOrder.js +397 -0
  200. package/dist/cjs/src/order/PriorityOrder.js.map +1 -0
  201. package/dist/cjs/src/order/RelayOrder.d.ts +75 -0
  202. package/dist/cjs/src/order/RelayOrder.js +228 -0
  203. package/dist/cjs/src/order/RelayOrder.js.map +1 -0
  204. package/dist/cjs/src/order/V2DutchOrder.d.ts +103 -0
  205. package/dist/cjs/src/order/V2DutchOrder.js +389 -0
  206. package/dist/cjs/src/order/V2DutchOrder.js.map +1 -0
  207. package/dist/cjs/src/order/V3DutchOrder.d.ts +105 -0
  208. package/dist/cjs/src/order/V3DutchOrder.js +433 -0
  209. package/dist/cjs/src/order/V3DutchOrder.js.map +1 -0
  210. package/dist/cjs/src/order/index.d.ts +18 -0
  211. package/dist/cjs/src/order/index.js +13 -0
  212. package/dist/cjs/src/order/index.js.map +1 -0
  213. package/dist/cjs/src/order/types.d.ts +158 -0
  214. package/dist/cjs/src/order/types.js +3 -0
  215. package/dist/cjs/src/order/types.js.map +1 -0
  216. package/dist/cjs/src/order/v4/HybridOrder.d.ts +83 -0
  217. package/dist/cjs/src/order/v4/HybridOrder.js +665 -0
  218. package/dist/cjs/src/order/v4/HybridOrder.js.map +1 -0
  219. package/dist/cjs/src/order/v4/hashing.d.ts +87 -0
  220. package/dist/cjs/src/order/v4/hashing.js +431 -0
  221. package/dist/cjs/src/order/v4/hashing.js.map +1 -0
  222. package/dist/cjs/src/order/v4/index.d.ts +3 -0
  223. package/dist/cjs/src/order/v4/index.js +10 -0
  224. package/dist/cjs/src/order/v4/index.js.map +1 -0
  225. package/dist/cjs/src/order/v4/types.d.ts +244 -0
  226. package/dist/cjs/src/order/v4/types.js +3 -0
  227. package/dist/cjs/src/order/v4/types.js.map +1 -0
  228. package/dist/cjs/src/order/validation.d.ts +24 -0
  229. package/dist/cjs/src/order/validation.js +61 -0
  230. package/dist/cjs/src/order/validation.js.map +1 -0
  231. package/dist/cjs/src/trade/DutchOrderTrade.d.ts +33 -0
  232. package/dist/cjs/src/trade/DutchOrderTrade.js +81 -0
  233. package/dist/cjs/src/trade/DutchOrderTrade.js.map +1 -0
  234. package/dist/cjs/src/trade/HybridOrderTrade.d.ts +61 -0
  235. package/dist/cjs/src/trade/HybridOrderTrade.js +104 -0
  236. package/dist/cjs/src/trade/HybridOrderTrade.js.map +1 -0
  237. package/dist/cjs/src/trade/PriorityOrderTrade.d.ts +43 -0
  238. package/dist/cjs/src/trade/PriorityOrderTrade.js +101 -0
  239. package/dist/cjs/src/trade/PriorityOrderTrade.js.map +1 -0
  240. package/dist/cjs/src/trade/RelayOrderTrade.d.ts +34 -0
  241. package/dist/cjs/src/trade/RelayOrderTrade.js +87 -0
  242. package/dist/cjs/src/trade/RelayOrderTrade.js.map +1 -0
  243. package/dist/cjs/src/trade/V2DutchOrderTrade.d.ts +33 -0
  244. package/dist/cjs/src/trade/V2DutchOrderTrade.js +81 -0
  245. package/dist/cjs/src/trade/V2DutchOrderTrade.js.map +1 -0
  246. package/dist/cjs/src/trade/V3DutchOrderTrade.d.ts +41 -0
  247. package/dist/cjs/src/trade/V3DutchOrderTrade.js +91 -0
  248. package/dist/cjs/src/trade/V3DutchOrderTrade.js.map +1 -0
  249. package/dist/cjs/src/trade/index.d.ts +6 -0
  250. package/dist/cjs/src/trade/index.js +10 -0
  251. package/dist/cjs/src/trade/index.js.map +1 -0
  252. package/dist/cjs/src/trade/utils.d.ts +8 -0
  253. package/dist/cjs/src/trade/utils.js +35 -0
  254. package/dist/cjs/src/trade/utils.js.map +1 -0
  255. package/dist/cjs/src/utils/EventWatcher.d.ts +46 -0
  256. package/dist/cjs/src/utils/EventWatcher.js +120 -0
  257. package/dist/cjs/src/utils/EventWatcher.js.map +1 -0
  258. package/dist/cjs/src/utils/NonceManager.d.ts +36 -0
  259. package/dist/cjs/src/utils/NonceManager.js +134 -0
  260. package/dist/cjs/src/utils/NonceManager.js.map +1 -0
  261. package/dist/cjs/src/utils/OrderQuoter.d.ts +144 -0
  262. package/dist/cjs/src/utils/OrderQuoter.js +517 -0
  263. package/dist/cjs/src/utils/OrderQuoter.js.map +1 -0
  264. package/dist/cjs/src/utils/OrderValidator.d.ts +19 -0
  265. package/dist/cjs/src/utils/OrderValidator.js +69 -0
  266. package/dist/cjs/src/utils/OrderValidator.js.map +1 -0
  267. package/dist/cjs/src/utils/PermissionedTokenValidator.d.ts +23 -0
  268. package/dist/cjs/src/utils/PermissionedTokenValidator.js +70 -0
  269. package/dist/cjs/src/utils/PermissionedTokenValidator.js.map +1 -0
  270. package/dist/cjs/src/utils/dutchBlockDecay.d.ts +15 -0
  271. package/dist/cjs/src/utils/dutchBlockDecay.js +73 -0
  272. package/dist/cjs/src/utils/dutchBlockDecay.js.map +1 -0
  273. package/dist/cjs/src/utils/dutchDecay.d.ts +8 -0
  274. package/dist/cjs/src/utils/dutchDecay.js +32 -0
  275. package/dist/cjs/src/utils/dutchDecay.js.map +1 -0
  276. package/dist/cjs/src/utils/index.d.ts +12 -0
  277. package/dist/cjs/src/utils/index.js +51 -0
  278. package/dist/cjs/src/utils/index.js.map +1 -0
  279. package/dist/cjs/src/utils/multicall.d.ts +36 -0
  280. package/dist/cjs/src/utils/multicall.js +93 -0
  281. package/dist/cjs/src/utils/multicall.js.map +1 -0
  282. package/dist/cjs/src/utils/order.d.ts +52 -0
  283. package/dist/cjs/src/utils/order.js +182 -0
  284. package/dist/cjs/src/utils/order.js.map +1 -0
  285. package/dist/esm/abis/MockERC20.json +1606 -0
  286. package/dist/esm/abis/deploylessMulticall2.json +30 -0
  287. package/dist/esm/abis/multicall2.json +315 -0
  288. package/dist/esm/src/builder/DutchOrderBuilder.d.ts +25 -0
  289. package/dist/esm/src/builder/DutchOrderBuilder.js +138 -0
  290. package/dist/esm/src/builder/DutchOrderBuilder.js.map +1 -0
  291. package/dist/esm/src/builder/HybridOrderBuilder.d.ts +40 -0
  292. package/dist/esm/src/builder/HybridOrderBuilder.js +252 -0
  293. package/dist/esm/src/builder/HybridOrderBuilder.js.map +1 -0
  294. package/dist/esm/src/builder/OrderBuilder.d.ts +17 -0
  295. package/dist/esm/src/builder/OrderBuilder.js +54 -0
  296. package/dist/esm/src/builder/OrderBuilder.js.map +1 -0
  297. package/dist/esm/src/builder/PriorityOrderBuilder.d.ts +29 -0
  298. package/dist/esm/src/builder/PriorityOrderBuilder.js +169 -0
  299. package/dist/esm/src/builder/PriorityOrderBuilder.js.map +1 -0
  300. package/dist/esm/src/builder/RelayOrderBuilder.d.ts +22 -0
  301. package/dist/esm/src/builder/RelayOrderBuilder.js +104 -0
  302. package/dist/esm/src/builder/RelayOrderBuilder.js.map +1 -0
  303. package/dist/esm/src/builder/V2DutchOrderBuilder.d.ts +33 -0
  304. package/dist/esm/src/builder/V2DutchOrderBuilder.js +235 -0
  305. package/dist/esm/src/builder/V2DutchOrderBuilder.js.map +1 -0
  306. package/dist/esm/src/builder/V3DutchOrderBuilder.d.ts +36 -0
  307. package/dist/esm/src/builder/V3DutchOrderBuilder.js +248 -0
  308. package/dist/esm/src/builder/V3DutchOrderBuilder.js.map +1 -0
  309. package/dist/esm/src/builder/index.d.ts +7 -0
  310. package/dist/esm/src/builder/index.js +8 -0
  311. package/dist/esm/src/builder/index.js.map +1 -0
  312. package/dist/esm/src/constants/v4.d.ts +44 -0
  313. package/dist/esm/src/constants/v4.js +52 -0
  314. package/dist/esm/src/constants/v4.js.map +1 -0
  315. package/dist/esm/src/constants.d.ts +76 -0
  316. package/dist/esm/src/constants.js +143 -0
  317. package/dist/esm/src/constants.js.map +1 -0
  318. package/dist/esm/src/contracts/DSTokenInterface.d.ts +372 -0
  319. package/dist/esm/src/contracts/DSTokenInterface.js +2 -0
  320. package/dist/esm/src/contracts/DSTokenInterface.js.map +1 -0
  321. package/dist/esm/src/contracts/DeploylessMulticall2.d.ts +37 -0
  322. package/dist/esm/src/contracts/DeploylessMulticall2.js +2 -0
  323. package/dist/esm/src/contracts/DeploylessMulticall2.js.map +1 -0
  324. package/dist/esm/src/contracts/DutchLimitOrderReactor.d.ts +191 -0
  325. package/dist/esm/src/contracts/DutchLimitOrderReactor.js +2 -0
  326. package/dist/esm/src/contracts/DutchLimitOrderReactor.js.map +1 -0
  327. package/dist/esm/src/contracts/DutchOrderReactor.d.ts +191 -0
  328. package/dist/esm/src/contracts/DutchOrderReactor.js +2 -0
  329. package/dist/esm/src/contracts/DutchOrderReactor.js.map +1 -0
  330. package/dist/esm/src/contracts/ERC1967Proxy.d.ts +39 -0
  331. package/dist/esm/src/contracts/ERC1967Proxy.js +2 -0
  332. package/dist/esm/src/contracts/ERC1967Proxy.js.map +1 -0
  333. package/dist/esm/src/contracts/ExclusiveDutchOrderReactor.d.ts +207 -0
  334. package/dist/esm/src/contracts/ExclusiveDutchOrderReactor.js +2 -0
  335. package/dist/esm/src/contracts/ExclusiveDutchOrderReactor.js.map +1 -0
  336. package/dist/esm/src/contracts/ExclusiveFillerValidation.d.ts +105 -0
  337. package/dist/esm/src/contracts/ExclusiveFillerValidation.js +2 -0
  338. package/dist/esm/src/contracts/ExclusiveFillerValidation.js.map +1 -0
  339. package/dist/esm/src/contracts/HybridAuctionResolver.d.ts +148 -0
  340. package/dist/esm/src/contracts/HybridAuctionResolver.js +2 -0
  341. package/dist/esm/src/contracts/HybridAuctionResolver.js.map +1 -0
  342. package/dist/esm/src/contracts/ISuperstateTokenV4.d.ts +628 -0
  343. package/dist/esm/src/contracts/ISuperstateTokenV4.js +2 -0
  344. package/dist/esm/src/contracts/ISuperstateTokenV4.js.map +1 -0
  345. package/dist/esm/src/contracts/MockDSTokenInterface.d.ts +62 -0
  346. package/dist/esm/src/contracts/MockDSTokenInterface.js +2 -0
  347. package/dist/esm/src/contracts/MockDSTokenInterface.js.map +1 -0
  348. package/dist/esm/src/contracts/MockERC20.d.ts +242 -0
  349. package/dist/esm/src/contracts/MockERC20.js +2 -0
  350. package/dist/esm/src/contracts/MockERC20.js.map +1 -0
  351. package/dist/esm/src/contracts/MockSuperstateTokenV4.d.ts +58 -0
  352. package/dist/esm/src/contracts/MockSuperstateTokenV4.js +2 -0
  353. package/dist/esm/src/contracts/MockSuperstateTokenV4.js.map +1 -0
  354. package/dist/esm/src/contracts/Multicall2.d.ts +218 -0
  355. package/dist/esm/src/contracts/Multicall2.js +2 -0
  356. package/dist/esm/src/contracts/Multicall2.js.map +1 -0
  357. package/dist/esm/src/contracts/OrderQuoter.d.ts +131 -0
  358. package/dist/esm/src/contracts/OrderQuoter.js +2 -0
  359. package/dist/esm/src/contracts/OrderQuoter.js.map +1 -0
  360. package/dist/esm/src/contracts/OrderQuoterV4.d.ts +150 -0
  361. package/dist/esm/src/contracts/OrderQuoterV4.js +2 -0
  362. package/dist/esm/src/contracts/OrderQuoterV4.js.map +1 -0
  363. package/dist/esm/src/contracts/Permit2.d.ts +533 -0
  364. package/dist/esm/src/contracts/Permit2.js +2 -0
  365. package/dist/esm/src/contracts/Permit2.js.map +1 -0
  366. package/dist/esm/src/contracts/PriorityOrderReactor.d.ts +207 -0
  367. package/dist/esm/src/contracts/PriorityOrderReactor.js +2 -0
  368. package/dist/esm/src/contracts/PriorityOrderReactor.js.map +1 -0
  369. package/dist/esm/src/contracts/Proxy.d.ts +106 -0
  370. package/dist/esm/src/contracts/Proxy.js +2 -0
  371. package/dist/esm/src/contracts/Proxy.js.map +1 -0
  372. package/dist/esm/src/contracts/Reactor.d.ts +207 -0
  373. package/dist/esm/src/contracts/Reactor.js +2 -0
  374. package/dist/esm/src/contracts/Reactor.js.map +1 -0
  375. package/dist/esm/src/contracts/RelayOrderReactor.d.ts +150 -0
  376. package/dist/esm/src/contracts/RelayOrderReactor.js +2 -0
  377. package/dist/esm/src/contracts/RelayOrderReactor.js.map +1 -0
  378. package/dist/esm/src/contracts/SwapRouter02Executor.d.ts +240 -0
  379. package/dist/esm/src/contracts/SwapRouter02Executor.js +2 -0
  380. package/dist/esm/src/contracts/SwapRouter02Executor.js.map +1 -0
  381. package/dist/esm/src/contracts/TokenTransferHook.d.ts +144 -0
  382. package/dist/esm/src/contracts/TokenTransferHook.js +2 -0
  383. package/dist/esm/src/contracts/TokenTransferHook.js.map +1 -0
  384. package/dist/esm/src/contracts/V2DutchOrderReactor.d.ts +207 -0
  385. package/dist/esm/src/contracts/V2DutchOrderReactor.js +2 -0
  386. package/dist/esm/src/contracts/V2DutchOrderReactor.js.map +1 -0
  387. package/dist/esm/src/contracts/V3DutchOrderReactor.d.ts +207 -0
  388. package/dist/esm/src/contracts/V3DutchOrderReactor.js +2 -0
  389. package/dist/esm/src/contracts/V3DutchOrderReactor.js.map +1 -0
  390. package/dist/esm/src/contracts/common.d.ts +22 -0
  391. package/dist/esm/src/contracts/common.js +2 -0
  392. package/dist/esm/src/contracts/common.js.map +1 -0
  393. package/dist/esm/src/contracts/factories/DSTokenInterface__factory.d.ts +368 -0
  394. package/dist/esm/src/contracts/factories/DSTokenInterface__factory.js +502 -0
  395. package/dist/esm/src/contracts/factories/DSTokenInterface__factory.js.map +1 -0
  396. package/dist/esm/src/contracts/factories/DeploylessMulticall2__factory.d.ts +29 -0
  397. package/dist/esm/src/contracts/factories/DeploylessMulticall2__factory.js +44 -0
  398. package/dist/esm/src/contracts/factories/DeploylessMulticall2__factory.js.map +1 -0
  399. package/dist/esm/src/contracts/factories/DutchLimitOrderReactor__factory.d.ts +87 -0
  400. package/dist/esm/src/contracts/factories/DutchLimitOrderReactor__factory.js +381 -0
  401. package/dist/esm/src/contracts/factories/DutchLimitOrderReactor__factory.js.map +1 -0
  402. package/dist/esm/src/contracts/factories/DutchOrderReactor__factory.d.ts +87 -0
  403. package/dist/esm/src/contracts/factories/DutchOrderReactor__factory.js +381 -0
  404. package/dist/esm/src/contracts/factories/DutchOrderReactor__factory.js.map +1 -0
  405. package/dist/esm/src/contracts/factories/ERC1967Proxy__factory.d.ts +70 -0
  406. package/dist/esm/src/contracts/factories/ERC1967Proxy__factory.js +104 -0
  407. package/dist/esm/src/contracts/factories/ERC1967Proxy__factory.js.map +1 -0
  408. package/dist/esm/src/contracts/factories/ExclusiveDutchOrderReactor__factory.d.ts +297 -0
  409. package/dist/esm/src/contracts/factories/ExclusiveDutchOrderReactor__factory.js +396 -0
  410. package/dist/esm/src/contracts/factories/ExclusiveDutchOrderReactor__factory.js.map +1 -0
  411. package/dist/esm/src/contracts/factories/ExclusiveFillerValidation__factory.d.ts +115 -0
  412. package/dist/esm/src/contracts/factories/ExclusiveFillerValidation__factory.js +161 -0
  413. package/dist/esm/src/contracts/factories/ExclusiveFillerValidation__factory.js.map +1 -0
  414. package/dist/esm/src/contracts/factories/HybridAuctionResolver__factory.d.ts +204 -0
  415. package/dist/esm/src/contracts/factories/HybridAuctionResolver__factory.js +275 -0
  416. package/dist/esm/src/contracts/factories/HybridAuctionResolver__factory.js.map +1 -0
  417. package/dist/esm/src/contracts/factories/ISuperstateTokenV4__factory.d.ts +714 -0
  418. package/dist/esm/src/contracts/factories/ISuperstateTokenV4__factory.js +914 -0
  419. package/dist/esm/src/contracts/factories/ISuperstateTokenV4__factory.js.map +1 -0
  420. package/dist/esm/src/contracts/factories/MockDSTokenInterface__factory.d.ts +61 -0
  421. package/dist/esm/src/contracts/factories/MockDSTokenInterface__factory.js +91 -0
  422. package/dist/esm/src/contracts/factories/MockDSTokenInterface__factory.js.map +1 -0
  423. package/dist/esm/src/contracts/factories/MockERC20__factory.d.ts +301 -0
  424. package/dist/esm/src/contracts/factories/MockERC20__factory.js +404 -0
  425. package/dist/esm/src/contracts/factories/MockERC20__factory.js.map +1 -0
  426. package/dist/esm/src/contracts/factories/MockSuperstateTokenV4__factory.d.ts +49 -0
  427. package/dist/esm/src/contracts/factories/MockSuperstateTokenV4__factory.js +76 -0
  428. package/dist/esm/src/contracts/factories/MockSuperstateTokenV4__factory.js.map +1 -0
  429. package/dist/esm/src/contracts/factories/Multicall2__factory.d.ts +245 -0
  430. package/dist/esm/src/contracts/factories/Multicall2__factory.js +329 -0
  431. package/dist/esm/src/contracts/factories/Multicall2__factory.js.map +1 -0
  432. package/dist/esm/src/contracts/factories/OrderQuoterV4__factory.d.ts +262 -0
  433. package/dist/esm/src/contracts/factories/OrderQuoterV4__factory.js +350 -0
  434. package/dist/esm/src/contracts/factories/OrderQuoterV4__factory.js.map +1 -0
  435. package/dist/esm/src/contracts/factories/OrderQuoter__factory.d.ts +215 -0
  436. package/dist/esm/src/contracts/factories/OrderQuoter__factory.js +291 -0
  437. package/dist/esm/src/contracts/factories/OrderQuoter__factory.js.map +1 -0
  438. package/dist/esm/src/contracts/factories/Permit2__factory.d.ts +720 -0
  439. package/dist/esm/src/contracts/factories/Permit2__factory.js +938 -0
  440. package/dist/esm/src/contracts/factories/Permit2__factory.js.map +1 -0
  441. package/dist/esm/src/contracts/factories/PriorityOrderReactor__factory.d.ts +293 -0
  442. package/dist/esm/src/contracts/factories/PriorityOrderReactor__factory.js +391 -0
  443. package/dist/esm/src/contracts/factories/PriorityOrderReactor__factory.js.map +1 -0
  444. package/dist/esm/src/contracts/factories/Proxy__factory.d.ts +88 -0
  445. package/dist/esm/src/contracts/factories/Proxy__factory.js +126 -0
  446. package/dist/esm/src/contracts/factories/Proxy__factory.js.map +1 -0
  447. package/dist/esm/src/contracts/factories/Reactor__factory.d.ts +313 -0
  448. package/dist/esm/src/contracts/factories/Reactor__factory.js +417 -0
  449. package/dist/esm/src/contracts/factories/Reactor__factory.js.map +1 -0
  450. package/dist/esm/src/contracts/factories/RelayOrderReactor__factory.d.ts +188 -0
  451. package/dist/esm/src/contracts/factories/RelayOrderReactor__factory.js +254 -0
  452. package/dist/esm/src/contracts/factories/RelayOrderReactor__factory.js.map +1 -0
  453. package/dist/esm/src/contracts/factories/SwapRouter02Executor__factory.d.ts +257 -0
  454. package/dist/esm/src/contracts/factories/SwapRouter02Executor__factory.js +344 -0
  455. package/dist/esm/src/contracts/factories/SwapRouter02Executor__factory.js.map +1 -0
  456. package/dist/esm/src/contracts/factories/TokenTransferHook__factory.d.ts +159 -0
  457. package/dist/esm/src/contracts/factories/TokenTransferHook__factory.js +217 -0
  458. package/dist/esm/src/contracts/factories/TokenTransferHook__factory.js.map +1 -0
  459. package/dist/esm/src/contracts/factories/V2DutchOrderReactor__factory.d.ts +297 -0
  460. package/dist/esm/src/contracts/factories/V2DutchOrderReactor__factory.js +396 -0
  461. package/dist/esm/src/contracts/factories/V2DutchOrderReactor__factory.js.map +1 -0
  462. package/dist/esm/src/contracts/factories/V3DutchOrderReactor__factory.d.ts +297 -0
  463. package/dist/esm/src/contracts/factories/V3DutchOrderReactor__factory.js +396 -0
  464. package/dist/esm/src/contracts/factories/V3DutchOrderReactor__factory.js.map +1 -0
  465. package/dist/esm/src/contracts/factories/index.d.ts +22 -0
  466. package/dist/esm/src/contracts/factories/index.js +26 -0
  467. package/dist/esm/src/contracts/factories/index.js.map +1 -0
  468. package/dist/esm/src/contracts/index.d.ts +45 -0
  469. package/dist/esm/src/contracts/index.js +24 -0
  470. package/dist/esm/src/contracts/index.js.map +1 -0
  471. package/dist/esm/src/errors.d.ts +3 -0
  472. package/dist/esm/src/errors.js +7 -0
  473. package/dist/esm/src/errors.js.map +1 -0
  474. package/dist/esm/src/index.d.ts +5 -0
  475. package/dist/esm/src/index.js +6 -0
  476. package/dist/esm/src/index.js.map +1 -0
  477. package/dist/esm/src/order/DutchOrder.d.ts +67 -0
  478. package/dist/esm/src/order/DutchOrder.js +286 -0
  479. package/dist/esm/src/order/DutchOrder.js.map +1 -0
  480. package/dist/esm/src/order/PriorityOrder.d.ts +121 -0
  481. package/dist/esm/src/order/PriorityOrder.js +391 -0
  482. package/dist/esm/src/order/PriorityOrder.js.map +1 -0
  483. package/dist/esm/src/order/RelayOrder.d.ts +75 -0
  484. package/dist/esm/src/order/RelayOrder.js +224 -0
  485. package/dist/esm/src/order/RelayOrder.js.map +1 -0
  486. package/dist/esm/src/order/V2DutchOrder.d.ts +103 -0
  487. package/dist/esm/src/order/V2DutchOrder.js +384 -0
  488. package/dist/esm/src/order/V2DutchOrder.js.map +1 -0
  489. package/dist/esm/src/order/V3DutchOrder.d.ts +105 -0
  490. package/dist/esm/src/order/V3DutchOrder.js +427 -0
  491. package/dist/esm/src/order/V3DutchOrder.js.map +1 -0
  492. package/dist/esm/src/order/index.d.ts +18 -0
  493. package/dist/esm/src/order/index.js +10 -0
  494. package/dist/esm/src/order/index.js.map +1 -0
  495. package/dist/esm/src/order/types.d.ts +158 -0
  496. package/dist/esm/src/order/types.js +2 -0
  497. package/dist/esm/src/order/types.js.map +1 -0
  498. package/dist/esm/src/order/v4/HybridOrder.d.ts +83 -0
  499. package/dist/esm/src/order/v4/HybridOrder.js +657 -0
  500. package/dist/esm/src/order/v4/HybridOrder.js.map +1 -0
  501. package/dist/esm/src/order/v4/hashing.d.ts +87 -0
  502. package/dist/esm/src/order/v4/hashing.js +422 -0
  503. package/dist/esm/src/order/v4/hashing.js.map +1 -0
  504. package/dist/esm/src/order/v4/index.d.ts +3 -0
  505. package/dist/esm/src/order/v4/index.js +7 -0
  506. package/dist/esm/src/order/v4/index.js.map +1 -0
  507. package/dist/esm/src/order/v4/types.d.ts +244 -0
  508. package/dist/esm/src/order/v4/types.js +2 -0
  509. package/dist/esm/src/order/v4/types.js.map +1 -0
  510. package/dist/esm/src/order/validation.d.ts +24 -0
  511. package/dist/esm/src/order/validation.js +55 -0
  512. package/dist/esm/src/order/validation.js.map +1 -0
  513. package/dist/esm/src/trade/DutchOrderTrade.d.ts +33 -0
  514. package/dist/esm/src/trade/DutchOrderTrade.js +77 -0
  515. package/dist/esm/src/trade/DutchOrderTrade.js.map +1 -0
  516. package/dist/esm/src/trade/HybridOrderTrade.d.ts +61 -0
  517. package/dist/esm/src/trade/HybridOrderTrade.js +100 -0
  518. package/dist/esm/src/trade/HybridOrderTrade.js.map +1 -0
  519. package/dist/esm/src/trade/PriorityOrderTrade.d.ts +43 -0
  520. package/dist/esm/src/trade/PriorityOrderTrade.js +97 -0
  521. package/dist/esm/src/trade/PriorityOrderTrade.js.map +1 -0
  522. package/dist/esm/src/trade/RelayOrderTrade.d.ts +34 -0
  523. package/dist/esm/src/trade/RelayOrderTrade.js +83 -0
  524. package/dist/esm/src/trade/RelayOrderTrade.js.map +1 -0
  525. package/dist/esm/src/trade/V2DutchOrderTrade.d.ts +33 -0
  526. package/dist/esm/src/trade/V2DutchOrderTrade.js +77 -0
  527. package/dist/esm/src/trade/V2DutchOrderTrade.js.map +1 -0
  528. package/dist/esm/src/trade/V3DutchOrderTrade.d.ts +41 -0
  529. package/dist/esm/src/trade/V3DutchOrderTrade.js +87 -0
  530. package/dist/esm/src/trade/V3DutchOrderTrade.js.map +1 -0
  531. package/dist/esm/src/trade/index.d.ts +6 -0
  532. package/dist/esm/src/trade/index.js +7 -0
  533. package/dist/esm/src/trade/index.js.map +1 -0
  534. package/dist/esm/src/trade/utils.d.ts +8 -0
  535. package/dist/esm/src/trade/utils.js +31 -0
  536. package/dist/esm/src/trade/utils.js.map +1 -0
  537. package/dist/esm/src/utils/EventWatcher.d.ts +46 -0
  538. package/dist/esm/src/utils/EventWatcher.js +115 -0
  539. package/dist/esm/src/utils/EventWatcher.js.map +1 -0
  540. package/dist/esm/src/utils/NonceManager.d.ts +36 -0
  541. package/dist/esm/src/utils/NonceManager.js +124 -0
  542. package/dist/esm/src/utils/NonceManager.js.map +1 -0
  543. package/dist/esm/src/utils/OrderQuoter.d.ts +144 -0
  544. package/dist/esm/src/utils/OrderQuoter.js +511 -0
  545. package/dist/esm/src/utils/OrderQuoter.js.map +1 -0
  546. package/dist/esm/src/utils/OrderValidator.d.ts +19 -0
  547. package/dist/esm/src/utils/OrderValidator.js +63 -0
  548. package/dist/esm/src/utils/OrderValidator.js.map +1 -0
  549. package/dist/esm/src/utils/PermissionedTokenValidator.d.ts +23 -0
  550. package/dist/esm/src/utils/PermissionedTokenValidator.js +66 -0
  551. package/dist/esm/src/utils/PermissionedTokenValidator.js.map +1 -0
  552. package/dist/esm/src/utils/dutchBlockDecay.d.ts +15 -0
  553. package/dist/esm/src/utils/dutchBlockDecay.js +68 -0
  554. package/dist/esm/src/utils/dutchBlockDecay.js.map +1 -0
  555. package/dist/esm/src/utils/dutchDecay.d.ts +8 -0
  556. package/dist/esm/src/utils/dutchDecay.js +28 -0
  557. package/dist/esm/src/utils/dutchDecay.js.map +1 -0
  558. package/dist/esm/src/utils/index.d.ts +12 -0
  559. package/dist/esm/src/utils/index.js +44 -0
  560. package/dist/esm/src/utils/index.js.map +1 -0
  561. package/dist/esm/src/utils/multicall.d.ts +36 -0
  562. package/dist/esm/src/utils/multicall.js +87 -0
  563. package/dist/esm/src/utils/multicall.js.map +1 -0
  564. package/dist/esm/src/utils/order.d.ts +52 -0
  565. package/dist/esm/src/utils/order.js +176 -0
  566. package/dist/esm/src/utils/order.js.map +1 -0
  567. package/dist/types/src/builder/DutchOrderBuilder.d.ts +25 -0
  568. package/dist/types/src/builder/HybridOrderBuilder.d.ts +40 -0
  569. package/dist/types/src/builder/OrderBuilder.d.ts +17 -0
  570. package/dist/types/src/builder/PriorityOrderBuilder.d.ts +29 -0
  571. package/dist/types/src/builder/RelayOrderBuilder.d.ts +22 -0
  572. package/dist/types/src/builder/V2DutchOrderBuilder.d.ts +33 -0
  573. package/dist/types/src/builder/V3DutchOrderBuilder.d.ts +36 -0
  574. package/dist/types/src/builder/index.d.ts +7 -0
  575. package/dist/types/src/constants/v4.d.ts +44 -0
  576. package/dist/types/src/constants.d.ts +76 -0
  577. package/dist/types/src/contracts/DSTokenInterface.d.ts +372 -0
  578. package/dist/types/src/contracts/DeploylessMulticall2.d.ts +37 -0
  579. package/dist/types/src/contracts/DutchLimitOrderReactor.d.ts +191 -0
  580. package/dist/types/src/contracts/DutchOrderReactor.d.ts +191 -0
  581. package/dist/types/src/contracts/ERC1967Proxy.d.ts +39 -0
  582. package/dist/types/src/contracts/ExclusiveDutchOrderReactor.d.ts +207 -0
  583. package/dist/types/src/contracts/ExclusiveFillerValidation.d.ts +105 -0
  584. package/dist/types/src/contracts/HybridAuctionResolver.d.ts +148 -0
  585. package/dist/types/src/contracts/ISuperstateTokenV4.d.ts +628 -0
  586. package/dist/types/src/contracts/MockDSTokenInterface.d.ts +62 -0
  587. package/dist/types/src/contracts/MockERC20.d.ts +242 -0
  588. package/dist/types/src/contracts/MockSuperstateTokenV4.d.ts +58 -0
  589. package/dist/types/src/contracts/Multicall2.d.ts +218 -0
  590. package/dist/types/src/contracts/OrderQuoter.d.ts +131 -0
  591. package/dist/types/src/contracts/OrderQuoterV4.d.ts +150 -0
  592. package/dist/types/src/contracts/Permit2.d.ts +533 -0
  593. package/dist/types/src/contracts/PriorityOrderReactor.d.ts +207 -0
  594. package/dist/types/src/contracts/Proxy.d.ts +106 -0
  595. package/dist/types/src/contracts/Reactor.d.ts +207 -0
  596. package/dist/types/src/contracts/RelayOrderReactor.d.ts +150 -0
  597. package/dist/types/src/contracts/SwapRouter02Executor.d.ts +240 -0
  598. package/dist/types/src/contracts/TokenTransferHook.d.ts +144 -0
  599. package/dist/types/src/contracts/V2DutchOrderReactor.d.ts +207 -0
  600. package/dist/types/src/contracts/V3DutchOrderReactor.d.ts +207 -0
  601. package/dist/types/src/contracts/common.d.ts +22 -0
  602. package/dist/types/src/contracts/factories/DSTokenInterface__factory.d.ts +368 -0
  603. package/dist/types/src/contracts/factories/DeploylessMulticall2__factory.d.ts +29 -0
  604. package/dist/types/src/contracts/factories/DutchLimitOrderReactor__factory.d.ts +87 -0
  605. package/dist/types/src/contracts/factories/DutchOrderReactor__factory.d.ts +87 -0
  606. package/dist/types/src/contracts/factories/ERC1967Proxy__factory.d.ts +70 -0
  607. package/dist/types/src/contracts/factories/ExclusiveDutchOrderReactor__factory.d.ts +297 -0
  608. package/dist/types/src/contracts/factories/ExclusiveFillerValidation__factory.d.ts +115 -0
  609. package/dist/types/src/contracts/factories/HybridAuctionResolver__factory.d.ts +204 -0
  610. package/dist/types/src/contracts/factories/ISuperstateTokenV4__factory.d.ts +714 -0
  611. package/dist/types/src/contracts/factories/MockDSTokenInterface__factory.d.ts +61 -0
  612. package/dist/types/src/contracts/factories/MockERC20__factory.d.ts +301 -0
  613. package/dist/types/src/contracts/factories/MockSuperstateTokenV4__factory.d.ts +49 -0
  614. package/dist/types/src/contracts/factories/Multicall2__factory.d.ts +245 -0
  615. package/dist/types/src/contracts/factories/OrderQuoterV4__factory.d.ts +262 -0
  616. package/dist/types/src/contracts/factories/OrderQuoter__factory.d.ts +215 -0
  617. package/dist/types/src/contracts/factories/Permit2__factory.d.ts +720 -0
  618. package/dist/types/src/contracts/factories/PriorityOrderReactor__factory.d.ts +293 -0
  619. package/dist/types/src/contracts/factories/Proxy__factory.d.ts +88 -0
  620. package/dist/types/src/contracts/factories/Reactor__factory.d.ts +313 -0
  621. package/dist/types/src/contracts/factories/RelayOrderReactor__factory.d.ts +188 -0
  622. package/dist/types/src/contracts/factories/SwapRouter02Executor__factory.d.ts +257 -0
  623. package/dist/types/src/contracts/factories/TokenTransferHook__factory.d.ts +159 -0
  624. package/dist/types/src/contracts/factories/V2DutchOrderReactor__factory.d.ts +297 -0
  625. package/dist/types/src/contracts/factories/V3DutchOrderReactor__factory.d.ts +297 -0
  626. package/dist/types/src/contracts/factories/index.d.ts +22 -0
  627. package/dist/types/src/contracts/index.d.ts +45 -0
  628. package/dist/types/src/errors.d.ts +3 -0
  629. package/dist/types/src/index.d.ts +5 -0
  630. package/dist/types/src/order/DutchOrder.d.ts +67 -0
  631. package/dist/types/src/order/PriorityOrder.d.ts +121 -0
  632. package/dist/types/src/order/RelayOrder.d.ts +75 -0
  633. package/dist/types/src/order/V2DutchOrder.d.ts +103 -0
  634. package/dist/types/src/order/V3DutchOrder.d.ts +105 -0
  635. package/dist/types/src/order/index.d.ts +18 -0
  636. package/dist/types/src/order/types.d.ts +158 -0
  637. package/dist/types/src/order/v4/HybridOrder.d.ts +83 -0
  638. package/dist/types/src/order/v4/hashing.d.ts +87 -0
  639. package/dist/types/src/order/v4/index.d.ts +3 -0
  640. package/dist/types/src/order/v4/types.d.ts +244 -0
  641. package/dist/types/src/order/validation.d.ts +24 -0
  642. package/dist/types/src/trade/DutchOrderTrade.d.ts +33 -0
  643. package/dist/types/src/trade/HybridOrderTrade.d.ts +61 -0
  644. package/dist/types/src/trade/PriorityOrderTrade.d.ts +43 -0
  645. package/dist/types/src/trade/RelayOrderTrade.d.ts +34 -0
  646. package/dist/types/src/trade/V2DutchOrderTrade.d.ts +33 -0
  647. package/dist/types/src/trade/V3DutchOrderTrade.d.ts +41 -0
  648. package/dist/types/src/trade/index.d.ts +6 -0
  649. package/dist/types/src/trade/utils.d.ts +8 -0
  650. package/dist/types/src/utils/EventWatcher.d.ts +46 -0
  651. package/dist/types/src/utils/NonceManager.d.ts +36 -0
  652. package/dist/types/src/utils/OrderQuoter.d.ts +144 -0
  653. package/dist/types/src/utils/OrderValidator.d.ts +19 -0
  654. package/dist/types/src/utils/PermissionedTokenValidator.d.ts +23 -0
  655. package/dist/types/src/utils/dutchBlockDecay.d.ts +15 -0
  656. package/dist/types/src/utils/dutchDecay.d.ts +8 -0
  657. package/dist/types/src/utils/index.d.ts +12 -0
  658. package/dist/types/src/utils/multicall.d.ts +36 -0
  659. package/dist/types/src/utils/order.d.ts +52 -0
  660. package/package.json +83 -0
@@ -0,0 +1,66 @@
1
+ import { __awaiter } from "tslib";
2
+ import { PERMISSIONED_TOKENS, PermissionedTokenInterface } from "../constants";
3
+ import { PermissionedTokenProxyType } from "../constants";
4
+ import { DSTokenInterface__factory, ISuperstateTokenV4__factory, Proxy__factory } from "../contracts";
5
+ export class PermissionedTokenValidator {
6
+ /**
7
+ * Checks if a token is a permissioned token
8
+ * @param tokenAddress The address of the token
9
+ * @returns True if the token is a permissioned token, false otherwise
10
+ */
11
+ static isPermissionedToken(tokenAddress, chainId, permissionedTokens = PERMISSIONED_TOKENS) {
12
+ return permissionedTokens.some(token => token.address.toLowerCase() === tokenAddress.toLowerCase() && token.chainId === chainId);
13
+ }
14
+ /**
15
+ * Checks if a transfer would be allowed for a permissioned token
16
+ * @param provider The provider to use for the view call
17
+ * @param tokenAddress The address of the permissioned token
18
+ * @param from The sender's address
19
+ * @param to The recipient's address
20
+ * @param value The amount to transfer (in base units)
21
+ * @returns True if the token is not a permissioned token or the transfer is
22
+ * allowed, false otherwise
23
+ * @throws Will throw an exception if there is an error with the provider
24
+ */
25
+ static preTransferCheck(provider, tokenAddress, from, to, value, permissionedTokens = PERMISSIONED_TOKENS) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const token = permissionedTokens.find(token => token.address.toLowerCase() === tokenAddress.toLowerCase());
28
+ // If the token is not in the list, we don't need to check anything
29
+ if (!token) {
30
+ return true;
31
+ }
32
+ // Get the resolved token contract
33
+ let resolvedTokenAddress = tokenAddress;
34
+ if (token.proxyType === PermissionedTokenProxyType.Standard) {
35
+ const proxyContract = Proxy__factory.connect(tokenAddress, provider);
36
+ resolvedTokenAddress = yield proxyContract.target();
37
+ }
38
+ else if (token.proxyType === PermissionedTokenProxyType.ERC1967) {
39
+ // EIP-1967 implementation slot: bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
40
+ // https://eips.ethereum.org/EIPS/eip-1967
41
+ const implSlot = '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc';
42
+ const implStorage = yield provider.getStorageAt(tokenAddress, implSlot);
43
+ resolvedTokenAddress = '0x' + implStorage.slice(26);
44
+ }
45
+ // Use the appropriate interface to perform the approval check
46
+ if (token.interface === PermissionedTokenInterface.DSTokenInterface) {
47
+ const tokenContract = DSTokenInterface__factory.connect(resolvedTokenAddress, provider);
48
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
+ const [code, _reason] = yield tokenContract.preTransferCheck(from, to, value);
50
+ return code.toNumber() === 0;
51
+ }
52
+ else if (token.interface === PermissionedTokenInterface.ISuperstateTokenV4) {
53
+ const tokenContract = ISuperstateTokenV4__factory.connect(resolvedTokenAddress, provider);
54
+ const [fromAllowed, toAllowed] = yield Promise.all([
55
+ tokenContract.isAllowed(from),
56
+ tokenContract.isAllowed(to),
57
+ ]);
58
+ return fromAllowed && toAllowed;
59
+ }
60
+ else {
61
+ throw new Error("Unknown token interface: " + token.interface);
62
+ }
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=PermissionedTokenValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionedTokenValidator.js","sourceRoot":"","sources":["../../../../src/utils/PermissionedTokenValidator.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAoB,yBAAyB,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAExH,MAAM,OAAO,0BAA0B;IAErC;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CACxB,YAAoB,EACpB,OAAgB,EAChB,qBAAiD,mBAAmB;QAEpE,OAAO,kBAAkB,CAAC,IAAI,CAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CACjG,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAO,gBAAgB,CAC3B,QAAkB,EAClB,YAAoB,EACpB,IAAY,EACZ,EAAU,EACV,KAAa,EACb,qBAAiD,mBAAmB;;YAEpE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CACnC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CACpE,CAAC;YACF,mEAAmE;YACnE,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;YAED,kCAAkC;YAClC,IAAI,oBAAoB,GAAG,YAAY,CAAC;YACxC,IAAI,KAAK,CAAC,SAAS,KAAK,0BAA0B,CAAC,QAAQ,EAAE;gBAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACrE,oBAAoB,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC;aACrD;iBACI,IAAI,KAAK,CAAC,SAAS,KAAK,0BAA0B,CAAC,OAAO,EAAE;gBAC/D,gGAAgG;gBAChG,0CAA0C;gBAC1C,MAAM,QAAQ,GACZ,oEAAoE,CAAC;gBACvE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACxE,oBAAoB,GAAG,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACrD;YAED,8DAA8D;YAC9D,IAAI,KAAK,CAAC,SAAS,KAAK,0BAA0B,CAAC,gBAAgB,EAAE;gBACnE,MAAM,aAAa,GAAqB,yBAAyB,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;gBAC1G,6DAA6D;gBAC7D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC9E,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC9B;iBACI,IAAI,KAAK,CAAC,SAAS,KAAK,0BAA0B,CAAC,kBAAkB,EAAE;gBAC1E,MAAM,aAAa,GAAG,2BAA2B,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;gBAC1F,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACjD,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC7B,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;iBAC5B,CAAC,CAAC;gBACH,OAAO,WAAW,IAAI,SAAS,CAAC;aACjC;iBACI;gBACH,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;aAC/D;QACH,CAAC;KAAA;CACF"}
@@ -0,0 +1,15 @@
1
+ import { BigNumber } from "ethers";
2
+ import { NonlinearDutchDecay } from "../order";
3
+ declare class NonLinearDutchDecayLib {
4
+ static decay(curve: NonlinearDutchDecay, startAmount: BigNumber, decayStartBlock: number, currentBlock: number): BigNumber;
5
+ static linearDecay(startPoint: number, endPoint: number, currentPoint: number, startAmount: BigNumber, endAmount: BigNumber): BigNumber;
6
+ }
7
+ export { NonLinearDutchDecayLib };
8
+ export interface DutchBlockDecayConfig {
9
+ decayStartBlock: number;
10
+ startAmount: BigNumber;
11
+ relativeBlocks: number[];
12
+ relativeAmounts: bigint[];
13
+ }
14
+ export declare function getBlockDecayedAmount(config: DutchBlockDecayConfig, atBlock: number): BigNumber;
15
+ export declare function getEndAmount(config: Partial<DutchBlockDecayConfig>): BigNumber;
@@ -0,0 +1,68 @@
1
+ import { BigNumber } from "ethers";
2
+ /*
3
+ These functions mimic the smart contract functions as closely as possible to ensure that the same results are produced.
4
+ Essentially Solidity translated to TypeScript.
5
+ */
6
+ function locateArrayPosition(curve, currentRelativeBlock) {
7
+ const relativeBlocks = curve.relativeBlocks;
8
+ let prev = 0;
9
+ let next = 0;
10
+ for (; next < relativeBlocks.length; next++) {
11
+ if (relativeBlocks[next] >= currentRelativeBlock) {
12
+ return [prev, next];
13
+ }
14
+ prev = next;
15
+ }
16
+ return [next - 1, next - 1];
17
+ }
18
+ class NonLinearDutchDecayLib {
19
+ static decay(curve, startAmount, decayStartBlock, currentBlock) {
20
+ // mismatch of relativeAmounts and relativeBlocks
21
+ if (curve.relativeAmounts.length > 16) {
22
+ throw new Error("InvalidDecayCurve");
23
+ }
24
+ // handle current block before decay or no decay
25
+ if (decayStartBlock >= currentBlock || curve.relativeAmounts.length === 0) {
26
+ return startAmount;
27
+ }
28
+ const blockDelta = currentBlock - decayStartBlock;
29
+ // Special case for when we need to use the decayStartBlock (0)
30
+ if (curve.relativeBlocks[0] > blockDelta) {
31
+ return this.linearDecay(0, curve.relativeBlocks[0], blockDelta, startAmount, startAmount.sub(curve.relativeAmounts[0].toString()));
32
+ }
33
+ // the current pos is within or after the curve
34
+ const [prev, next] = locateArrayPosition(curve, blockDelta);
35
+ //relativeAmounts holds BigInts so we can't directly subtract without conversion
36
+ const lastAmount = startAmount.sub(curve.relativeAmounts[prev].toString());
37
+ const nextAmount = startAmount.sub(curve.relativeAmounts[next].toString());
38
+ return this.linearDecay(curve.relativeBlocks[prev], curve.relativeBlocks[next], blockDelta, lastAmount, nextAmount);
39
+ }
40
+ static linearDecay(startPoint, endPoint, currentPoint, startAmount, endAmount) {
41
+ if (currentPoint >= endPoint) {
42
+ return endAmount;
43
+ }
44
+ const elapsed = BigNumber.from(currentPoint - startPoint);
45
+ const duration = BigNumber.from(endPoint - startPoint);
46
+ let delta;
47
+ if (endAmount.lt(startAmount)) {
48
+ delta = BigNumber.from(0).sub((startAmount.sub(endAmount)).mul(elapsed).div(duration)); // mulDivDown in contract
49
+ }
50
+ else {
51
+ delta = (endAmount.sub(startAmount)).mul(elapsed).div(duration); // mulDivDown in contract
52
+ }
53
+ return startAmount.add(delta);
54
+ }
55
+ }
56
+ export { NonLinearDutchDecayLib };
57
+ export function getBlockDecayedAmount(config, atBlock) {
58
+ const { decayStartBlock, startAmount, relativeBlocks, relativeAmounts } = config;
59
+ return NonLinearDutchDecayLib.decay({ relativeAmounts, relativeBlocks }, startAmount, decayStartBlock, atBlock);
60
+ }
61
+ export function getEndAmount(config) {
62
+ const { startAmount, relativeAmounts } = config;
63
+ if (!startAmount || !relativeAmounts) {
64
+ throw new Error("Invalid config for getting V3 decay end amount");
65
+ }
66
+ return startAmount.sub(relativeAmounts[relativeAmounts.length - 1].toString());
67
+ }
68
+ //# sourceMappingURL=dutchBlockDecay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dutchBlockDecay.js","sourceRoot":"","sources":["../../../../src/utils/dutchBlockDecay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { BigNumber } from "ethers";
2
+ export interface DutchDecayConfig {
3
+ startAmount: BigNumber;
4
+ endAmount: BigNumber;
5
+ decayStartTime: number;
6
+ decayEndTime: number;
7
+ }
8
+ export declare function getDecayedAmount(config: DutchDecayConfig, atTime?: number): BigNumber;
@@ -0,0 +1,28 @@
1
+ export function getDecayedAmount(config, atTime = Math.floor(Date.now() / 1000)) {
2
+ const { startAmount, endAmount, decayStartTime, decayEndTime } = config;
3
+ // decay is over, return the ending amount
4
+ if (decayEndTime <= atTime) {
5
+ return endAmount;
6
+ }
7
+ // decay hasnt started, return the starting amount
8
+ if (decayStartTime >= atTime) {
9
+ return startAmount;
10
+ }
11
+ // no decay, just return the static amount
12
+ if (startAmount.eq(endAmount)) {
13
+ return startAmount;
14
+ }
15
+ const duration = decayEndTime - decayStartTime;
16
+ const elapsed = atTime - decayStartTime;
17
+ if (startAmount.gt(endAmount)) {
18
+ // decaying downward
19
+ const decay = startAmount.sub(endAmount).mul(elapsed).div(duration);
20
+ return startAmount.sub(decay);
21
+ }
22
+ else {
23
+ // decaying upward
24
+ const decay = endAmount.sub(startAmount).mul(elapsed).div(duration);
25
+ return startAmount.add(decay);
26
+ }
27
+ }
28
+ //# sourceMappingURL=dutchDecay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dutchDecay.js","sourceRoot":"","sources":["../../../../src/utils/dutchDecay.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,gBAAgB,CAC9B,MAAwB,EACxB,SAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAE9C,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAExE,0CAA0C;IAC1C,IAAI,YAAY,IAAI,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IAED,kDAAkD;IAClD,IAAI,cAAc,IAAI,MAAM,EAAE;QAC5B,OAAO,WAAW,CAAC;KACpB;IAED,0CAA0C;IAC1C,IAAI,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,QAAQ,GAAG,YAAY,GAAG,cAAc,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;IACxC,IAAI,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;QAC7B,oBAAoB;QACpB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC/B;SAAM;QACL,kBAAkB;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC/B;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { OrderType } from "../constants";
2
+ export * from "./OrderValidator";
3
+ export * from "./NonceManager";
4
+ export * from "./OrderQuoter";
5
+ export * from "./EventWatcher";
6
+ export * from "./multicall";
7
+ export * from "./dutchDecay";
8
+ export * from "./order";
9
+ export * from "./PermissionedTokenValidator";
10
+ export declare function stripHexPrefix(a: string): string;
11
+ export declare function getPermit2(chainId: number, permit2Address?: string): string;
12
+ export declare function getReactor(chainId: number, orderType: OrderType, reactorAddress?: string): string;
@@ -0,0 +1,44 @@
1
+ import { PERMIT2_MAPPING, REACTOR_ADDRESS_MAPPING, } from "../constants";
2
+ import { MissingConfiguration } from "../errors";
3
+ export * from "./OrderValidator";
4
+ export * from "./NonceManager";
5
+ export * from "./OrderQuoter";
6
+ export * from "./EventWatcher";
7
+ export * from "./multicall";
8
+ export * from "./dutchDecay";
9
+ export * from "./order";
10
+ export * from "./PermissionedTokenValidator";
11
+ export function stripHexPrefix(a) {
12
+ if (a.startsWith("0x")) {
13
+ return a.slice(2);
14
+ }
15
+ else {
16
+ return a;
17
+ }
18
+ }
19
+ export function getPermit2(chainId, permit2Address) {
20
+ if (permit2Address) {
21
+ return permit2Address;
22
+ }
23
+ else if (PERMIT2_MAPPING[chainId]) {
24
+ return PERMIT2_MAPPING[chainId];
25
+ }
26
+ else {
27
+ throw new MissingConfiguration("permit2", chainId.toString());
28
+ }
29
+ }
30
+ export function getReactor(chainId, orderType, reactorAddress) {
31
+ const mappedReactorAddress = REACTOR_ADDRESS_MAPPING[chainId]
32
+ ? REACTOR_ADDRESS_MAPPING[chainId][orderType]
33
+ : undefined;
34
+ if (reactorAddress) {
35
+ return reactorAddress;
36
+ }
37
+ else if (mappedReactorAddress) {
38
+ return mappedReactorAddress;
39
+ }
40
+ else {
41
+ throw new MissingConfiguration("reactor", chainId.toString());
42
+ }
43
+ }
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,8BAA8B,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB;SAAM;QACL,OAAO,CAAC,CAAC;KACV;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,cAAuB;IACjE,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;SAAM,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;QACnC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;KACjC;SAAM;QACL,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,SAAoB,EACpB,cAAuB;IAEvB,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,OAAO,CAAC;QAC3D,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;SAAM,IAAI,oBAAoB,EAAE;QAC/B,OAAO,oBAAoB,CAAC;KAC7B;SAAM;QACL,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Interface } from "@ethersproject/abi";
2
+ import { StaticJsonRpcProvider } from "@ethersproject/providers";
3
+ import { BlockOverrides } from "../order";
4
+ export type MulticallParams = {
5
+ contractInterface: Interface;
6
+ functionName: string;
7
+ };
8
+ export type MulticallSameContractParams<TFunctionParams> = MulticallParams & {
9
+ address: string;
10
+ functionParams: TFunctionParams[];
11
+ };
12
+ export type MulticallSameFunctionParams<TFunctionParams> = MulticallParams & {
13
+ addresses: string[];
14
+ functionParam: TFunctionParams;
15
+ };
16
+ export type MulticallResult = {
17
+ success: boolean;
18
+ returnData: string;
19
+ };
20
+ type Call = {
21
+ target: string;
22
+ callData: string;
23
+ };
24
+ export declare function multicallSameContractManyFunctions<TFunctionParams extends any[] | undefined>(provider: StaticJsonRpcProvider, params: MulticallSameContractParams<TFunctionParams>, stateOverrrides?: {
25
+ code?: string;
26
+ state?: any;
27
+ }, blockOverrides?: BlockOverrides): Promise<MulticallResult[]>;
28
+ export declare function multicallSameFunctionManyContracts<TFunctionParams extends any[] | undefined>(provider: StaticJsonRpcProvider, params: MulticallSameFunctionParams<TFunctionParams>, stateOverrrides?: {
29
+ code?: string;
30
+ state?: any;
31
+ }, blockOverrides?: BlockOverrides): Promise<MulticallResult[]>;
32
+ export declare function multicall(provider: StaticJsonRpcProvider, calls: Call[], stateOverrides?: {
33
+ code?: string;
34
+ state?: any;
35
+ }, blockOverrides?: BlockOverrides): Promise<MulticallResult[]>;
36
+ export {};
@@ -0,0 +1,87 @@
1
+ // Uses deployless multicall to fetch responses and errors for multiple calls at once
2
+ // https://github.com/Destiner/deployless-multicall
3
+ import { __awaiter } from "tslib";
4
+ import { Interface } from "@ethersproject/abi";
5
+ import { hexConcat } from "@ethersproject/bytes";
6
+ import { ethers } from "ethers";
7
+ import deploylessMulticall2Abi from "../../abis/deploylessMulticall2.json";
8
+ import multicall2Abi from "../../abis/multicall2.json";
9
+ import { multicallAddressOn } from "../constants";
10
+ import { Multicall2__factory } from "../contracts";
11
+ const DEPLOYLESS_MULTICALL_BYTECODE = "0x608060405234801561001057600080fd5b5060405161087538038061087583398181016040528101906100329190610666565b6000815167ffffffffffffffff81111561004f5761004e610358565b5b60405190808252806020026020018201604052801561008857816020015b6100756102da565b81526020019060019003908161006d5790505b50905060005b82518110156101d3576000808483815181106100ad576100ac6106c2565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168584815181106100e2576100e16106c2565b5b6020026020010151602001516040516100fb9190610738565b6000604051808303816000865af19150503d8060008114610138576040519150601f19603f3d011682016040523d82523d6000602084013e61013d565b606091505b509150915085156101895781610188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017f906107d2565b60405180910390fd5b5b60405180604001604052808315158152602001828152508484815181106101b3576101b26106c2565b5b6020026020010181905250505080806101cb9061082b565b91505061008e565b50602081516040028260405103030160408160405103036001835111156102535760005b8351811015610251578060200260208501018160200260400183018261021f57855160200281525b6000831115610244576020808303510151602083510151038060208303510180835250505b50506001810190506101f7565b505b60005b8351811015610281578060200260208501018051516040602083510151035250600181019050610256565b5060005b83518110156102ae57806020026020850101604060208083510151035250600181019050610285565b506001835114156102cb5760208301604082018451602002815250505b60208152825160208201528181f35b6040518060400160405280600015158152602001606081525090565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b61031f8161030a565b811461032a57600080fd5b50565b60008151905061033c81610316565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61039082610347565b810181811067ffffffffffffffff821117156103af576103ae610358565b5b80604052505050565b60006103c26102f6565b90506103ce8282610387565b919050565b600067ffffffffffffffff8211156103ee576103ed610358565b5b602082029050602081019050919050565b600080fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104398261040e565b9050919050565b6104498161042e565b811461045457600080fd5b50565b60008151905061046681610440565b92915050565b600080fd5b600067ffffffffffffffff82111561048c5761048b610358565b5b61049582610347565b9050602081019050919050565b60005b838110156104c05780820151818401526020810190506104a5565b838111156104cf576000848401525b50505050565b60006104e86104e384610471565b6103b8565b9050828152602081018484840111156105045761050361046c565b5b61050f8482856104a2565b509392505050565b600082601f83011261052c5761052b610342565b5b815161053c8482602086016104d5565b91505092915050565b60006040828403121561055b5761055a610404565b5b61056560406103b8565b9050600061057584828501610457565b600083015250602082015167ffffffffffffffff81111561059957610598610409565b5b6105a584828501610517565b60208301525092915050565b60006105c46105bf846103d3565b6103b8565b905080838252602082019050602084028301858111156105e7576105e66103ff565b5b835b8181101561062e57805167ffffffffffffffff81111561060c5761060b610342565b5b8086016106198982610545565b855260208501945050506020810190506105e9565b5050509392505050565b600082601f83011261064d5761064c610342565b5b815161065d8482602086016105b1565b91505092915050565b6000806040838503121561067d5761067c610300565b5b600061068b8582860161032d565b925050602083015167ffffffffffffffff8111156106ac576106ab610305565b5b6106b885828601610638565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600081905092915050565b6000610712826106f1565b61071c81856106fc565b935061072c8185602086016104a2565b80840191505092915050565b60006107448284610707565b915081905092915050565b600082825260208201905092915050565b7f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006107bc60218361074f565b91506107c782610760565b604082019050919050565b600060208201905081810360008301526107eb816107af565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061083682610821565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610869576108686107f2565b5b60018201905091905056fe";
12
+ // Perform multiple on-chain calls in a single http request
13
+ // return all results including errors
14
+ // Uses deployless method to function properly even on chains with no multicall contract deployed
15
+ export function multicallSameContractManyFunctions(provider, params, stateOverrrides, blockOverrides) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const { address, contractInterface, functionName, functionParams } = params;
18
+ const fragment = contractInterface.getFunction(functionName);
19
+ const calls = functionParams.map((functionParam) => {
20
+ const callData = contractInterface.encodeFunctionData(fragment, functionParam);
21
+ return {
22
+ target: address,
23
+ callData,
24
+ };
25
+ });
26
+ return multicall(provider, calls, stateOverrrides, blockOverrides);
27
+ });
28
+ }
29
+ export function multicallSameFunctionManyContracts(provider, params, stateOverrrides, blockOverrides) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const { addresses, contractInterface, functionName, functionParam } = params;
32
+ const fragment = contractInterface.getFunction(functionName);
33
+ const callData = contractInterface.encodeFunctionData(fragment, functionParam);
34
+ const calls = addresses.map((address) => {
35
+ return {
36
+ target: address,
37
+ callData,
38
+ };
39
+ });
40
+ return multicall(provider, calls, stateOverrrides, blockOverrides);
41
+ });
42
+ }
43
+ export function multicall(provider, calls, stateOverrides, blockOverrides) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const chainId = (yield provider.getNetwork()).chainId;
46
+ const code = yield provider.getCode(multicallAddressOn(chainId));
47
+ let response;
48
+ if (code.length > 2) {
49
+ const multicall = Multicall2__factory.connect(multicallAddressOn(chainId), provider);
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ const params = [
52
+ {
53
+ from: ethers.constants.AddressZero,
54
+ to: multicall.address,
55
+ data: multicall.interface.encodeFunctionData("tryAggregate", [false, calls]),
56
+ },
57
+ 'latest',
58
+ (stateOverrides ? stateOverrides : {}),
59
+ ];
60
+ if (blockOverrides)
61
+ params.push(blockOverrides);
62
+ response = yield provider.send("eth_call", params);
63
+ }
64
+ else {
65
+ const deploylessInterface = new Interface(deploylessMulticall2Abi);
66
+ const args = deploylessInterface.encodeDeploy([false, calls]);
67
+ const data = hexConcat([DEPLOYLESS_MULTICALL_BYTECODE, args]);
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ const params = [
70
+ {
71
+ from: ethers.constants.AddressZero,
72
+ to: ethers.constants.AddressZero,
73
+ data,
74
+ },
75
+ 'latest',
76
+ (stateOverrides ? stateOverrides : {}),
77
+ ];
78
+ if (blockOverrides)
79
+ params.push(blockOverrides);
80
+ response = yield provider.send("eth_call", params);
81
+ }
82
+ const multicallInterface = new Interface(multicall2Abi);
83
+ return multicallInterface.decodeFunctionResult("tryAggregate", response)
84
+ .returnData;
85
+ });
86
+ }
87
+ //# sourceMappingURL=multicall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multicall.js","sourceRoot":"","sources":["../../../../src/utils/multicall.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,mDAAmD;;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,6BAA6B,GACjC,8uIAA8uI,CAAC;AA2BjvI,2DAA2D;AAC3D,sCAAsC;AACtC,iGAAiG;AACjG,MAAM,UAAgB,kCAAkC,CAItD,QAA+B,EAC/B,MAAoD,EACpD,eAIC,EACD,cAA+B;;QAE/B,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAE5E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAW,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;YACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,kBAAkB,CACnD,QAAQ,EACR,aAAa,CACd,CAAC;YAEF,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;CAAA;AAED,MAAM,UAAgB,kCAAkC,CAItD,QAA+B,EAC/B,MAAoD,EACpD,eAIC,EACD,cAA+B;;QAE/B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAE7E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,kBAAkB,CACnD,QAAQ,EACR,aAAa,CACd,CAAC;QACF,MAAM,KAAK,GAAW,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;CAAA;AAED,MAAM,UAAgB,SAAS,CAC7B,QAA+B,EAC/B,KAAa,EACb,cAIC,EACD,cAA+B;;QAE/B,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAA;QACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,IAAI,QAAQ,CAAC;QACb,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrF,8DAA8D;YAC9D,MAAM,MAAM,GAAU;gBACpB;oBACE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;oBAClC,EAAE,EAAE,SAAS,CAAC,OAAO;oBACrB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;iBAC7E;gBACD,QAAQ;gBACR,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAA;YACD,IAAG,cAAc;gBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/C,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACpD;aAAM;YACL,MAAM,mBAAmB,GAAG,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC,CAAC;YAE9D,8DAA8D;YAC9D,MAAM,MAAM,GAAU;gBACpB;oBACE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;oBAClC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;oBAChC,IAAI;iBACL;gBACD,QAAQ;gBACR,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAA;YACD,IAAG,cAAc;gBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/C,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACpD;QACD,MAAM,kBAAkB,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC;aACrE,UAAU,CAAC;IAClB,CAAC;CAAA"}
@@ -0,0 +1,52 @@
1
+ import { BigNumber } from "ethers";
2
+ import { OrderType } from "../constants";
3
+ import { Order, RelayOrder, UniswapXOrder } from "../order";
4
+ declare abstract class OrderParser {
5
+ abstract orderInfoOffset: number;
6
+ abstract parseOrder(order: string, chainId: number): Order;
7
+ /**
8
+ * Parses a serialized order based on the order shape
9
+ * @dev called by derived classes which set the offset
10
+ */
11
+ protected _parseOrder(order: string): OrderType;
12
+ /**
13
+ * Determines the OrderType from an Order object
14
+ * @return OrderType
15
+ */
16
+ getOrderType(order: Order): OrderType;
17
+ /**
18
+ * Helper function to determine the OrderType from a serialized order
19
+ */
20
+ getOrderTypeFromEncoded(order: string, chainId: number): OrderType;
21
+ }
22
+ export declare class UniswapXOrderParser extends OrderParser {
23
+ orderInfoOffset: number;
24
+ /**
25
+ * Parses a serialized order
26
+ */
27
+ parseOrder(order: string, chainId: number): UniswapXOrder;
28
+ /**
29
+ * Detects V4 order type by checking if the first address is a known resolver
30
+ * V4 orders are serialized as: (resolver, orderData)
31
+ */
32
+ private detectV4OrderType;
33
+ /**
34
+ * Parses a V4 order based on its resolver
35
+ */
36
+ private parseV4Order;
37
+ /**
38
+ * Determine the order type of a UniswapX order
39
+ * @dev Special cases limit orders which are dutch orders with no output decay
40
+ * @dev V4 orders (like HybridOrder) are detected by instance check since they use resolver-based lookup
41
+ */
42
+ getOrderType(order: Order): OrderType;
43
+ }
44
+ export declare class RelayOrderParser extends OrderParser {
45
+ orderInfoOffset: number;
46
+ /**
47
+ * Parses a serialized order
48
+ */
49
+ parseOrder(order: string, chainId: number): RelayOrder;
50
+ }
51
+ export declare function originalIfZero(value: BigNumber, original: BigNumber): BigNumber;
52
+ export {};
@@ -0,0 +1,176 @@
1
+ import { ethers } from "ethers";
2
+ import { OrderType, REVERSE_REACTOR_MAPPING, REVERSE_RESOLVER_MAPPING, } from "../constants";
3
+ import { MissingConfiguration } from "../errors";
4
+ import { CosignedHybridOrder, CosignedPriorityOrder, CosignedV2DutchOrder, DutchOrder, RelayOrder, UnsignedHybridOrder, UnsignedPriorityOrder, UnsignedV2DutchOrder, } from "../order";
5
+ import { CosignedV3DutchOrder, UnsignedV3DutchOrder } from "../order/V3DutchOrder";
6
+ import { stripHexPrefix } from ".";
7
+ const UNISWAPX_ORDER_INFO_OFFSET = 64;
8
+ const RELAY_ORDER_INFO_OFFSET = 64;
9
+ const SLOT_LENGTH = 64;
10
+ const ADDRESS_LENGTH = 40;
11
+ class OrderParser {
12
+ /**
13
+ * Parses a serialized order based on the order shape
14
+ * @dev called by derived classes which set the offset
15
+ */
16
+ _parseOrder(order) {
17
+ const strippedOrder = stripHexPrefix(order);
18
+ // look up the tail offset of orderInfo
19
+ // orderInfo is always the first field in the order,
20
+ // but since it is dynamic size it is a pointer in the tail
21
+ const orderInfoOffsetBytes = parseInt(strippedOrder.slice(this.orderInfoOffset, this.orderInfoOffset + SLOT_LENGTH), 16);
22
+ // multiply tail offset by 2 to get in terms of hex characters instead of bytes
23
+ // and add one slot to skip the orderinfo size slot
24
+ const reactorAddressOffset = orderInfoOffsetBytes * 2 + SLOT_LENGTH;
25
+ const reactorAddressSlot = strippedOrder.slice(reactorAddressOffset, reactorAddressOffset + SLOT_LENGTH);
26
+ // slice off the 0 padding in front of the address
27
+ const reactorAddress = ethers.utils
28
+ .getAddress(reactorAddressSlot.slice(SLOT_LENGTH - ADDRESS_LENGTH))
29
+ .toLowerCase();
30
+ if (!REVERSE_REACTOR_MAPPING[reactorAddress]) {
31
+ throw new MissingConfiguration("reactor", reactorAddress);
32
+ }
33
+ return REVERSE_REACTOR_MAPPING[reactorAddress].orderType;
34
+ }
35
+ /**
36
+ * Determines the OrderType from an Order object
37
+ * @return OrderType
38
+ */
39
+ getOrderType(order) {
40
+ const { orderType } = REVERSE_REACTOR_MAPPING[order.info.reactor.toLowerCase()];
41
+ return orderType;
42
+ }
43
+ /**
44
+ * Helper function to determine the OrderType from a serialized order
45
+ */
46
+ getOrderTypeFromEncoded(order, chainId) {
47
+ const parsedOrder = this.parseOrder(order, chainId);
48
+ return this.getOrderType(parsedOrder);
49
+ }
50
+ }
51
+ export class UniswapXOrderParser extends OrderParser {
52
+ constructor() {
53
+ super(...arguments);
54
+ this.orderInfoOffset = UNISWAPX_ORDER_INFO_OFFSET;
55
+ }
56
+ /**
57
+ * Parses a serialized order
58
+ */
59
+ parseOrder(order, chainId) {
60
+ // First try resolver-based detection for V4 orders
61
+ const v4OrderType = this.detectV4OrderType(order);
62
+ if (v4OrderType) {
63
+ return this.parseV4Order(order, chainId, v4OrderType);
64
+ }
65
+ // Fall back to reactor-based detection for V1-V3
66
+ const orderType = this._parseOrder(order);
67
+ switch (orderType) {
68
+ case OrderType.Dutch:
69
+ return DutchOrder.parse(order, chainId);
70
+ case OrderType.Dutch_V2: {
71
+ // cosigned and unsigned serialized versions are the same format
72
+ const cosignedOrder = CosignedV2DutchOrder.parse(order, chainId);
73
+ // if no cosignature, returned unsigned variant
74
+ if (cosignedOrder.info.cosignature === "0x") {
75
+ return UnsignedV2DutchOrder.parse(order, chainId);
76
+ }
77
+ // if cosignature exists then returned cosigned version
78
+ return cosignedOrder;
79
+ }
80
+ case OrderType.Dutch_V3: {
81
+ // cosigned and unsigned serialized versions are the same format
82
+ const cosignedOrder = CosignedV3DutchOrder.parse(order, chainId);
83
+ // if no cosignature, returned unsigned variant
84
+ if (cosignedOrder.info.cosignature === "0x") {
85
+ return UnsignedV3DutchOrder.parse(order, chainId);
86
+ }
87
+ // if cosignature exists then returned cosigned version
88
+ return cosignedOrder;
89
+ }
90
+ case OrderType.Priority: {
91
+ // cosigned and unsigned serialized versions are the same format
92
+ const cosignedOrder = CosignedPriorityOrder.parse(order, chainId);
93
+ // if no cosignature, returned unsigned variant
94
+ if (cosignedOrder.info.cosignature === "0x") {
95
+ return UnsignedPriorityOrder.parse(order, chainId);
96
+ }
97
+ // if cosignature exists then returned cosigned version
98
+ return cosignedOrder;
99
+ }
100
+ default:
101
+ throw new MissingConfiguration("orderType", orderType);
102
+ }
103
+ }
104
+ /**
105
+ * Detects V4 order type by checking if the first address is a known resolver
106
+ * V4 orders are serialized as: (resolver, orderData)
107
+ */
108
+ detectV4OrderType(order) {
109
+ try {
110
+ const abiCoder = new ethers.utils.AbiCoder();
111
+ const [resolver] = abiCoder.decode(["address", "bytes"], order);
112
+ const resolverLower = resolver.toLowerCase();
113
+ if (REVERSE_RESOLVER_MAPPING[resolverLower]) {
114
+ return REVERSE_RESOLVER_MAPPING[resolverLower].orderType;
115
+ }
116
+ }
117
+ catch (_a) {
118
+ // Not a V4 order format
119
+ }
120
+ return null;
121
+ }
122
+ /**
123
+ * Parses a V4 order based on its resolver
124
+ */
125
+ parseV4Order(order, chainId, orderType) {
126
+ switch (orderType) {
127
+ case OrderType.Hybrid: {
128
+ const cosignedOrder = CosignedHybridOrder.parse(order, chainId);
129
+ if (cosignedOrder.info.cosignature === "0x") {
130
+ return UnsignedHybridOrder.parse(order, chainId);
131
+ }
132
+ return cosignedOrder;
133
+ }
134
+ default:
135
+ throw new MissingConfiguration("v4OrderType", orderType);
136
+ }
137
+ }
138
+ /**
139
+ * Determine the order type of a UniswapX order
140
+ * @dev Special cases limit orders which are dutch orders with no output decay
141
+ * @dev V4 orders (like HybridOrder) are detected by instance check since they use resolver-based lookup
142
+ */
143
+ getOrderType(order) {
144
+ // V4 orders: check by instance type
145
+ if (order instanceof UnsignedHybridOrder ||
146
+ order instanceof CosignedHybridOrder) {
147
+ return OrderType.Hybrid;
148
+ }
149
+ // V1-V3 orders: use reactor-based lookup
150
+ const { orderType } = REVERSE_REACTOR_MAPPING[order.info.reactor.toLowerCase()];
151
+ if (orderType == OrderType.Dutch) {
152
+ const input = order.info.input;
153
+ const outputs = order.info.outputs;
154
+ const isLimit = input.startAmount.eq(input.endAmount) &&
155
+ outputs.every((output) => output.startAmount.eq(output.endAmount));
156
+ return isLimit ? OrderType.Limit : OrderType.Dutch;
157
+ }
158
+ return orderType;
159
+ }
160
+ }
161
+ export class RelayOrderParser extends OrderParser {
162
+ constructor() {
163
+ super(...arguments);
164
+ this.orderInfoOffset = RELAY_ORDER_INFO_OFFSET;
165
+ }
166
+ /**
167
+ * Parses a serialized order
168
+ */
169
+ parseOrder(order, chainId) {
170
+ return RelayOrder.parse(order, chainId);
171
+ }
172
+ }
173
+ export function originalIfZero(value, original) {
174
+ return value.isZero() ? original : value;
175
+ }
176
+ //# sourceMappingURL=order.js.map