@meteora-ag/cp-amm-sdk 1.0.2 → 1.0.4

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 (2716) hide show
  1. package/dist/index.d.mts +1201 -322
  2. package/dist/index.d.ts +1201 -322
  3. package/dist/index.js +1009 -332
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1010 -333
  6. package/dist/index.mjs.map +1 -1
  7. package/node_modules/@babel/runtime/LICENSE +22 -0
  8. package/node_modules/@babel/runtime/README.md +19 -0
  9. package/node_modules/@babel/runtime/helpers/AwaitValue.js +4 -0
  10. package/node_modules/@babel/runtime/helpers/OverloadYield.js +4 -0
  11. package/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +9 -0
  12. package/node_modules/@babel/runtime/helpers/applyDecs.js +236 -0
  13. package/node_modules/@babel/runtime/helpers/applyDecs2203.js +184 -0
  14. package/node_modules/@babel/runtime/helpers/applyDecs2203R.js +191 -0
  15. package/node_modules/@babel/runtime/helpers/applyDecs2301.js +222 -0
  16. package/node_modules/@babel/runtime/helpers/applyDecs2305.js +133 -0
  17. package/node_modules/@babel/runtime/helpers/applyDecs2311.js +124 -0
  18. package/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +6 -0
  19. package/node_modules/@babel/runtime/helpers/arrayWithHoles.js +4 -0
  20. package/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +5 -0
  21. package/node_modules/@babel/runtime/helpers/assertClassBrand.js +5 -0
  22. package/node_modules/@babel/runtime/helpers/assertThisInitialized.js +5 -0
  23. package/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +24 -0
  24. package/node_modules/@babel/runtime/helpers/asyncIterator.js +45 -0
  25. package/node_modules/@babel/runtime/helpers/asyncToGenerator.js +26 -0
  26. package/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +5 -0
  27. package/node_modules/@babel/runtime/helpers/callSuper.js +7 -0
  28. package/node_modules/@babel/runtime/helpers/checkInRHS.js +6 -0
  29. package/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +4 -0
  30. package/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +10 -0
  31. package/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +4 -0
  32. package/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +7 -0
  33. package/node_modules/@babel/runtime/helpers/classCallCheck.js +4 -0
  34. package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +5 -0
  35. package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +4 -0
  36. package/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +5 -0
  37. package/node_modules/@babel/runtime/helpers/classNameTDZError.js +4 -0
  38. package/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +7 -0
  39. package/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +7 -0
  40. package/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +5 -0
  41. package/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +5 -0
  42. package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +5 -0
  43. package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +5 -0
  44. package/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +7 -0
  45. package/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +5 -0
  46. package/node_modules/@babel/runtime/helpers/classPrivateGetter.js +5 -0
  47. package/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +5 -0
  48. package/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +5 -0
  49. package/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +4 -0
  50. package/node_modules/@babel/runtime/helpers/classPrivateSetter.js +5 -0
  51. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +7 -0
  52. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +7 -0
  53. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +7 -0
  54. package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +5 -0
  55. package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +4 -0
  56. package/node_modules/@babel/runtime/helpers/construct.js +10 -0
  57. package/node_modules/@babel/runtime/helpers/createClass.js +13 -0
  58. package/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +50 -0
  59. package/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +19 -0
  60. package/node_modules/@babel/runtime/helpers/createSuper.js +16 -0
  61. package/node_modules/@babel/runtime/helpers/decorate.js +250 -0
  62. package/node_modules/@babel/runtime/helpers/defaults.js +9 -0
  63. package/node_modules/@babel/runtime/helpers/defineAccessor.js +8 -0
  64. package/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +12 -0
  65. package/node_modules/@babel/runtime/helpers/defineProperty.js +10 -0
  66. package/node_modules/@babel/runtime/helpers/dispose.js +28 -0
  67. package/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +4 -0
  68. package/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +4 -0
  69. package/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +9 -0
  70. package/node_modules/@babel/runtime/helpers/esm/applyDecs.js +236 -0
  71. package/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +184 -0
  72. package/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +191 -0
  73. package/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +222 -0
  74. package/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +133 -0
  75. package/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +124 -0
  76. package/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +6 -0
  77. package/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +4 -0
  78. package/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +5 -0
  79. package/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +5 -0
  80. package/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +5 -0
  81. package/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +24 -0
  82. package/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +45 -0
  83. package/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +26 -0
  84. package/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +5 -0
  85. package/node_modules/@babel/runtime/helpers/esm/callSuper.js +7 -0
  86. package/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +6 -0
  87. package/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +4 -0
  88. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +10 -0
  89. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +4 -0
  90. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +7 -0
  91. package/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +4 -0
  92. package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +5 -0
  93. package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +4 -0
  94. package/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +5 -0
  95. package/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +4 -0
  96. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +7 -0
  97. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +7 -0
  98. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +5 -0
  99. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +5 -0
  100. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +5 -0
  101. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +5 -0
  102. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +7 -0
  103. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +5 -0
  104. package/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +5 -0
  105. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +5 -0
  106. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +5 -0
  107. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +4 -0
  108. package/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +5 -0
  109. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +7 -0
  110. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +7 -0
  111. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +7 -0
  112. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +5 -0
  113. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +4 -0
  114. package/node_modules/@babel/runtime/helpers/esm/construct.js +10 -0
  115. package/node_modules/@babel/runtime/helpers/esm/createClass.js +13 -0
  116. package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +50 -0
  117. package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +19 -0
  118. package/node_modules/@babel/runtime/helpers/esm/createSuper.js +16 -0
  119. package/node_modules/@babel/runtime/helpers/esm/decorate.js +250 -0
  120. package/node_modules/@babel/runtime/helpers/esm/defaults.js +9 -0
  121. package/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +8 -0
  122. package/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +12 -0
  123. package/node_modules/@babel/runtime/helpers/esm/defineProperty.js +10 -0
  124. package/node_modules/@babel/runtime/helpers/esm/dispose.js +28 -0
  125. package/node_modules/@babel/runtime/helpers/esm/extends.js +10 -0
  126. package/node_modules/@babel/runtime/helpers/esm/get.js +11 -0
  127. package/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +6 -0
  128. package/node_modules/@babel/runtime/helpers/esm/identity.js +4 -0
  129. package/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +27 -0
  130. package/node_modules/@babel/runtime/helpers/esm/inherits.js +14 -0
  131. package/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +5 -0
  132. package/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +9 -0
  133. package/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +4 -0
  134. package/node_modules/@babel/runtime/helpers/esm/instanceof.js +4 -0
  135. package/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +6 -0
  136. package/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +22 -0
  137. package/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +8 -0
  138. package/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +9 -0
  139. package/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +4 -0
  140. package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +28 -0
  141. package/node_modules/@babel/runtime/helpers/esm/jsx.js +22 -0
  142. package/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +9 -0
  143. package/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +4 -0
  144. package/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +4 -0
  145. package/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +4 -0
  146. package/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +4 -0
  147. package/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +4 -0
  148. package/node_modules/@babel/runtime/helpers/esm/objectSpread.js +14 -0
  149. package/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +23 -0
  150. package/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +13 -0
  151. package/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +10 -0
  152. package/node_modules/@babel/runtime/helpers/esm/package.json +3 -0
  153. package/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +8 -0
  154. package/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +4 -0
  155. package/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +272 -0
  156. package/node_modules/@babel/runtime/helpers/esm/set.js +22 -0
  157. package/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +12 -0
  158. package/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +6 -0
  159. package/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +7 -0
  160. package/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +8 -0
  161. package/node_modules/@babel/runtime/helpers/esm/superPropBase.js +6 -0
  162. package/node_modules/@babel/runtime/helpers/esm/superPropGet.js +9 -0
  163. package/node_modules/@babel/runtime/helpers/esm/superPropSet.js +6 -0
  164. package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +8 -0
  165. package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +4 -0
  166. package/node_modules/@babel/runtime/helpers/esm/tdz.js +4 -0
  167. package/node_modules/@babel/runtime/helpers/esm/temporalRef.js +6 -0
  168. package/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +2 -0
  169. package/node_modules/@babel/runtime/helpers/esm/toArray.js +8 -0
  170. package/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +8 -0
  171. package/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +12 -0
  172. package/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +7 -0
  173. package/node_modules/@babel/runtime/helpers/esm/toSetter.js +10 -0
  174. package/node_modules/@babel/runtime/helpers/esm/tsRewriteRelativeImportExtensions.js +6 -0
  175. package/node_modules/@babel/runtime/helpers/esm/typeof.js +10 -0
  176. package/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +9 -0
  177. package/node_modules/@babel/runtime/helpers/esm/using.js +12 -0
  178. package/node_modules/@babel/runtime/helpers/esm/usingCtx.js +59 -0
  179. package/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +69 -0
  180. package/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +27 -0
  181. package/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +52 -0
  182. package/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +4 -0
  183. package/node_modules/@babel/runtime/helpers/extends.js +10 -0
  184. package/node_modules/@babel/runtime/helpers/get.js +11 -0
  185. package/node_modules/@babel/runtime/helpers/getPrototypeOf.js +6 -0
  186. package/node_modules/@babel/runtime/helpers/identity.js +4 -0
  187. package/node_modules/@babel/runtime/helpers/importDeferProxy.js +27 -0
  188. package/node_modules/@babel/runtime/helpers/inherits.js +14 -0
  189. package/node_modules/@babel/runtime/helpers/inheritsLoose.js +5 -0
  190. package/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +9 -0
  191. package/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +4 -0
  192. package/node_modules/@babel/runtime/helpers/instanceof.js +4 -0
  193. package/node_modules/@babel/runtime/helpers/interopRequireDefault.js +6 -0
  194. package/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +22 -0
  195. package/node_modules/@babel/runtime/helpers/isNativeFunction.js +8 -0
  196. package/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +9 -0
  197. package/node_modules/@babel/runtime/helpers/iterableToArray.js +4 -0
  198. package/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +28 -0
  199. package/node_modules/@babel/runtime/helpers/jsx.js +22 -0
  200. package/node_modules/@babel/runtime/helpers/maybeArrayLike.js +9 -0
  201. package/node_modules/@babel/runtime/helpers/newArrowCheck.js +4 -0
  202. package/node_modules/@babel/runtime/helpers/nonIterableRest.js +4 -0
  203. package/node_modules/@babel/runtime/helpers/nonIterableSpread.js +4 -0
  204. package/node_modules/@babel/runtime/helpers/nullishReceiverError.js +4 -0
  205. package/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +4 -0
  206. package/node_modules/@babel/runtime/helpers/objectSpread.js +14 -0
  207. package/node_modules/@babel/runtime/helpers/objectSpread2.js +23 -0
  208. package/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +13 -0
  209. package/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +10 -0
  210. package/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +8 -0
  211. package/node_modules/@babel/runtime/helpers/readOnlyError.js +4 -0
  212. package/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +272 -0
  213. package/node_modules/@babel/runtime/helpers/set.js +22 -0
  214. package/node_modules/@babel/runtime/helpers/setFunctionName.js +12 -0
  215. package/node_modules/@babel/runtime/helpers/setPrototypeOf.js +6 -0
  216. package/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +7 -0
  217. package/node_modules/@babel/runtime/helpers/slicedToArray.js +8 -0
  218. package/node_modules/@babel/runtime/helpers/superPropBase.js +6 -0
  219. package/node_modules/@babel/runtime/helpers/superPropGet.js +9 -0
  220. package/node_modules/@babel/runtime/helpers/superPropSet.js +6 -0
  221. package/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +8 -0
  222. package/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +4 -0
  223. package/node_modules/@babel/runtime/helpers/tdz.js +4 -0
  224. package/node_modules/@babel/runtime/helpers/temporalRef.js +6 -0
  225. package/node_modules/@babel/runtime/helpers/temporalUndefined.js +2 -0
  226. package/node_modules/@babel/runtime/helpers/toArray.js +8 -0
  227. package/node_modules/@babel/runtime/helpers/toConsumableArray.js +8 -0
  228. package/node_modules/@babel/runtime/helpers/toPrimitive.js +12 -0
  229. package/node_modules/@babel/runtime/helpers/toPropertyKey.js +7 -0
  230. package/node_modules/@babel/runtime/helpers/toSetter.js +10 -0
  231. package/node_modules/@babel/runtime/helpers/tsRewriteRelativeImportExtensions.js +6 -0
  232. package/node_modules/@babel/runtime/helpers/typeof.js +10 -0
  233. package/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +9 -0
  234. package/node_modules/@babel/runtime/helpers/using.js +12 -0
  235. package/node_modules/@babel/runtime/helpers/usingCtx.js +59 -0
  236. package/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +69 -0
  237. package/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +27 -0
  238. package/node_modules/@babel/runtime/helpers/wrapRegExp.js +52 -0
  239. package/node_modules/@babel/runtime/helpers/writeOnlyError.js +4 -0
  240. package/node_modules/@babel/runtime/package.json +1062 -0
  241. package/node_modules/@babel/runtime/regenerator/index.js +15 -0
  242. package/node_modules/@coral-xyz/anchor/README.md +10 -0
  243. package/node_modules/@coral-xyz/anchor/dist/browser/index.js +7201 -0
  244. package/node_modules/@coral-xyz/anchor/dist/browser/index.js.map +1 -0
  245. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/accounts.d.ts +27 -0
  246. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/accounts.d.ts.map +1 -0
  247. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/event.d.ts +14 -0
  248. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/event.d.ts.map +1 -0
  249. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/idl.d.ts +32 -0
  250. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/idl.d.ts.map +1 -0
  251. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/index.d.ts +33 -0
  252. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/index.d.ts.map +1 -0
  253. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/instruction.d.ts +42 -0
  254. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/instruction.d.ts.map +1 -0
  255. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/types.d.ts +16 -0
  256. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/types.d.ts.map +1 -0
  257. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/index.d.ts +43 -0
  258. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/index.d.ts.map +1 -0
  259. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/accounts.d.ts +12 -0
  260. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/accounts.d.ts.map +1 -0
  261. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/events.d.ts +9 -0
  262. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/events.d.ts.map +1 -0
  263. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/index.d.ts +17 -0
  264. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/index.d.ts.map +1 -0
  265. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/instruction.d.ts +8 -0
  266. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/instruction.d.ts.map +1 -0
  267. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/types.d.ts +8 -0
  268. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/types.d.ts.map +1 -0
  269. package/node_modules/@coral-xyz/anchor/dist/browser/src/error.d.ts +131 -0
  270. package/node_modules/@coral-xyz/anchor/dist/browser/src/error.d.ts.map +1 -0
  271. package/node_modules/@coral-xyz/anchor/dist/browser/src/idl.d.ts +215 -0
  272. package/node_modules/@coral-xyz/anchor/dist/browser/src/idl.d.ts.map +1 -0
  273. package/node_modules/@coral-xyz/anchor/dist/browser/src/index.d.ts +16 -0
  274. package/node_modules/@coral-xyz/anchor/dist/browser/src/index.d.ts.map +1 -0
  275. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/index.d.ts +7 -0
  276. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/index.d.ts.map +1 -0
  277. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/system.d.ts +390 -0
  278. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/system.d.ts.map +1 -0
  279. package/node_modules/@coral-xyz/anchor/dist/browser/src/nodewallet.d.ts +14 -0
  280. package/node_modules/@coral-xyz/anchor/dist/browser/src/nodewallet.d.ts.map +1 -0
  281. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/accounts-resolver.d.ts +63 -0
  282. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/accounts-resolver.d.ts.map +1 -0
  283. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/common.d.ts +20 -0
  284. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/common.d.ts.map +1 -0
  285. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/context.d.ts +63 -0
  286. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/context.d.ts.map +1 -0
  287. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/event.d.ts +57 -0
  288. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/event.d.ts.map +1 -0
  289. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/index.d.ts +272 -0
  290. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/index.d.ts.map +1 -0
  291. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/account.d.ts +146 -0
  292. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/account.d.ts.map +1 -0
  293. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/index.d.ts +35 -0
  294. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/index.d.ts.map +1 -0
  295. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/instruction.d.ts +57 -0
  296. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/instruction.d.ts.map +1 -0
  297. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/methods.d.ts +206 -0
  298. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/methods.d.ts.map +1 -0
  299. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/rpc.d.ts +49 -0
  300. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/rpc.d.ts.map +1 -0
  301. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/simulate.d.ts +57 -0
  302. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/simulate.d.ts.map +1 -0
  303. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/transaction.d.ts +42 -0
  304. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/transaction.d.ts.map +1 -0
  305. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/types.d.ts +153 -0
  306. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/types.d.ts.map +1 -0
  307. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/views.d.ts +15 -0
  308. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/views.d.ts.map +1 -0
  309. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/token-account-layout.d.ts +2 -0
  310. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/token-account-layout.d.ts.map +1 -0
  311. package/node_modules/@coral-xyz/anchor/dist/browser/src/provider.d.ts +104 -0
  312. package/node_modules/@coral-xyz/anchor/dist/browser/src/provider.d.ts.map +1 -0
  313. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/base64.d.ts +4 -0
  314. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/base64.d.ts.map +1 -0
  315. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/bs58.d.ts +3 -0
  316. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/bs58.d.ts.map +1 -0
  317. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/hex.d.ts +4 -0
  318. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/hex.d.ts.map +1 -0
  319. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/index.d.ts +5 -0
  320. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/index.d.ts.map +1 -0
  321. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/utf8.d.ts +3 -0
  322. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/utf8.d.ts.map +1 -0
  323. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/common.d.ts +22 -0
  324. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/common.d.ts.map +1 -0
  325. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/features.d.ts +3 -0
  326. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/features.d.ts.map +1 -0
  327. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/index.d.ts +8 -0
  328. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/index.d.ts.map +1 -0
  329. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/pubkey.d.ts +3 -0
  330. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/pubkey.d.ts.map +1 -0
  331. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/registry.d.ts +34 -0
  332. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/registry.d.ts.map +1 -0
  333. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/rpc.d.ts +21 -0
  334. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/rpc.d.ts.map +1 -0
  335. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/sha256.d.ts +2 -0
  336. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/sha256.d.ts.map +1 -0
  337. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/token.d.ts +8 -0
  338. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/token.d.ts.map +1 -0
  339. package/node_modules/@coral-xyz/anchor/dist/browser/src/workspace.d.ts +14 -0
  340. package/node_modules/@coral-xyz/anchor/dist/browser/src/workspace.d.ts.map +1 -0
  341. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.d.ts +27 -0
  342. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.d.ts.map +1 -0
  343. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js +103 -0
  344. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js.map +1 -0
  345. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.d.ts +14 -0
  346. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.d.ts.map +1 -0
  347. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js +78 -0
  348. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js.map +1 -0
  349. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.d.ts +32 -0
  350. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.d.ts.map +1 -0
  351. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js +419 -0
  352. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js.map +1 -0
  353. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.d.ts +33 -0
  354. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.d.ts.map +1 -0
  355. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js +27 -0
  356. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js.map +1 -0
  357. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.d.ts +42 -0
  358. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.d.ts.map +1 -0
  359. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js +274 -0
  360. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js.map +1 -0
  361. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.d.ts +16 -0
  362. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.d.ts.map +1 -0
  363. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js +42 -0
  364. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js.map +1 -0
  365. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.d.ts +43 -0
  366. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.d.ts.map +1 -0
  367. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js +19 -0
  368. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js.map +1 -0
  369. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.d.ts +12 -0
  370. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.d.ts.map +1 -0
  371. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js +107 -0
  372. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js.map +1 -0
  373. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.d.ts +9 -0
  374. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.d.ts.map +1 -0
  375. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js +11 -0
  376. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js.map +1 -0
  377. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.d.ts +17 -0
  378. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.d.ts.map +1 -0
  379. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js +20 -0
  380. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js.map +1 -0
  381. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.d.ts +8 -0
  382. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.d.ts.map +1 -0
  383. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js +242 -0
  384. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js.map +1 -0
  385. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.d.ts +8 -0
  386. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.d.ts.map +1 -0
  387. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js +14 -0
  388. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js.map +1 -0
  389. package/node_modules/@coral-xyz/anchor/dist/cjs/error.d.ts +131 -0
  390. package/node_modules/@coral-xyz/anchor/dist/cjs/error.d.ts.map +1 -0
  391. package/node_modules/@coral-xyz/anchor/dist/cjs/error.js +583 -0
  392. package/node_modules/@coral-xyz/anchor/dist/cjs/error.js.map +1 -0
  393. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.d.ts +215 -0
  394. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.d.ts.map +1 -0
  395. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.js +109 -0
  396. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.js.map +1 -0
  397. package/node_modules/@coral-xyz/anchor/dist/cjs/index.d.ts +16 -0
  398. package/node_modules/@coral-xyz/anchor/dist/cjs/index.d.ts.map +1 -0
  399. package/node_modules/@coral-xyz/anchor/dist/cjs/index.js +50 -0
  400. package/node_modules/@coral-xyz/anchor/dist/cjs/index.js.map +1 -0
  401. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.d.ts +7 -0
  402. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.d.ts.map +1 -0
  403. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.js +11 -0
  404. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.js.map +1 -0
  405. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.d.ts +390 -0
  406. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.d.ts.map +1 -0
  407. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.js +394 -0
  408. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.js.map +1 -0
  409. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.d.ts +14 -0
  410. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.d.ts.map +1 -0
  411. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js +48 -0
  412. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js.map +1 -0
  413. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.d.ts +63 -0
  414. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.d.ts.map +1 -0
  415. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js +437 -0
  416. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js.map +1 -0
  417. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.d.ts +20 -0
  418. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.d.ts.map +1 -0
  419. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.js +49 -0
  420. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.js.map +1 -0
  421. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.d.ts +63 -0
  422. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.d.ts.map +1 -0
  423. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.js +16 -0
  424. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.js.map +1 -0
  425. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.d.ts +57 -0
  426. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.d.ts.map +1 -0
  427. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.js +207 -0
  428. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.js.map +1 -0
  429. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.d.ts +272 -0
  430. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.d.ts.map +1 -0
  431. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.js +177 -0
  432. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.js.map +1 -0
  433. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.d.ts +146 -0
  434. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.d.ts.map +1 -0
  435. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js +257 -0
  436. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js.map +1 -0
  437. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.d.ts +35 -0
  438. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.d.ts.map +1 -0
  439. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js +63 -0
  440. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js.map +1 -0
  441. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.d.ts +57 -0
  442. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.d.ts.map +1 -0
  443. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js +94 -0
  444. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js.map +1 -0
  445. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.d.ts +206 -0
  446. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.d.ts.map +1 -0
  447. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js +309 -0
  448. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js.map +1 -0
  449. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.d.ts +49 -0
  450. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.d.ts.map +1 -0
  451. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js +25 -0
  452. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js.map +1 -0
  453. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.d.ts +57 -0
  454. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.d.ts.map +1 -0
  455. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js +42 -0
  456. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js.map +1 -0
  457. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.d.ts +42 -0
  458. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.d.ts.map +1 -0
  459. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js +24 -0
  460. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js.map +1 -0
  461. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.d.ts +153 -0
  462. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.d.ts.map +1 -0
  463. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.js +3 -0
  464. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.js.map +1 -0
  465. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.d.ts +15 -0
  466. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.d.ts.map +1 -0
  467. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js +30 -0
  468. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js.map +1 -0
  469. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.d.ts +2 -0
  470. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.d.ts.map +1 -0
  471. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js +136 -0
  472. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js.map +1 -0
  473. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.d.ts +104 -0
  474. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.d.ts.map +1 -0
  475. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.js +309 -0
  476. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.js.map +1 -0
  477. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.d.ts +4 -0
  478. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.d.ts.map +1 -0
  479. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js +12 -0
  480. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js.map +1 -0
  481. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.d.ts +3 -0
  482. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.d.ts.map +1 -0
  483. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js +15 -0
  484. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js.map +1 -0
  485. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.d.ts +4 -0
  486. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.d.ts.map +1 -0
  487. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js +22 -0
  488. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js.map +1 -0
  489. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.d.ts +5 -0
  490. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.d.ts.map +1 -0
  491. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js +31 -0
  492. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js.map +1 -0
  493. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.d.ts +3 -0
  494. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.d.ts.map +1 -0
  495. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js +18 -0
  496. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js.map +1 -0
  497. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.d.ts +22 -0
  498. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.d.ts.map +1 -0
  499. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js +32 -0
  500. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js.map +1 -0
  501. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.d.ts +3 -0
  502. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.d.ts.map +1 -0
  503. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js +16 -0
  504. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js.map +1 -0
  505. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.d.ts +8 -0
  506. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.d.ts.map +1 -0
  507. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js +34 -0
  508. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js.map +1 -0
  509. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.d.ts +3 -0
  510. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.d.ts.map +1 -0
  511. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js +16 -0
  512. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js.map +1 -0
  513. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.d.ts +34 -0
  514. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.d.ts.map +1 -0
  515. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js +88 -0
  516. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js.map +1 -0
  517. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.d.ts +21 -0
  518. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.d.ts.map +1 -0
  519. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js +167 -0
  520. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js.map +1 -0
  521. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.d.ts +2 -0
  522. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.d.ts.map +1 -0
  523. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js +8 -0
  524. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js.map +1 -0
  525. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.d.ts +8 -0
  526. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.d.ts.map +1 -0
  527. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js +11 -0
  528. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js.map +1 -0
  529. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.d.ts +14 -0
  530. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.d.ts.map +1 -0
  531. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.js +98 -0
  532. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.js.map +1 -0
  533. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.d.ts +27 -0
  534. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.d.ts.map +1 -0
  535. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.js +96 -0
  536. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.js.map +1 -0
  537. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.d.ts +14 -0
  538. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.d.ts.map +1 -0
  539. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.js +51 -0
  540. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.js.map +1 -0
  541. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.d.ts +32 -0
  542. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.d.ts.map +1 -0
  543. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.js +392 -0
  544. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.js.map +1 -0
  545. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.d.ts +33 -0
  546. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.d.ts.map +1 -0
  547. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.js +20 -0
  548. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.js.map +1 -0
  549. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.d.ts +42 -0
  550. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.d.ts.map +1 -0
  551. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.js +244 -0
  552. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.js.map +1 -0
  553. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.d.ts +16 -0
  554. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.d.ts.map +1 -0
  555. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.js +38 -0
  556. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.js.map +1 -0
  557. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.d.ts +43 -0
  558. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.d.ts.map +1 -0
  559. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.js +3 -0
  560. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.js.map +1 -0
  561. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.d.ts +12 -0
  562. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.d.ts.map +1 -0
  563. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.js +80 -0
  564. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.js.map +1 -0
  565. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.d.ts +9 -0
  566. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.d.ts.map +1 -0
  567. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.js +7 -0
  568. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.js.map +1 -0
  569. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.d.ts +17 -0
  570. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.d.ts.map +1 -0
  571. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.js +16 -0
  572. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.js.map +1 -0
  573. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.d.ts +8 -0
  574. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.d.ts.map +1 -0
  575. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.js +212 -0
  576. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.js.map +1 -0
  577. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.d.ts +8 -0
  578. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.d.ts.map +1 -0
  579. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.js +10 -0
  580. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.js.map +1 -0
  581. package/node_modules/@coral-xyz/anchor/dist/esm/error.d.ts +131 -0
  582. package/node_modules/@coral-xyz/anchor/dist/esm/error.d.ts.map +1 -0
  583. package/node_modules/@coral-xyz/anchor/dist/esm/error.js +552 -0
  584. package/node_modules/@coral-xyz/anchor/dist/esm/error.js.map +1 -0
  585. package/node_modules/@coral-xyz/anchor/dist/esm/idl.d.ts +215 -0
  586. package/node_modules/@coral-xyz/anchor/dist/esm/idl.d.ts.map +1 -0
  587. package/node_modules/@coral-xyz/anchor/dist/esm/idl.js +74 -0
  588. package/node_modules/@coral-xyz/anchor/dist/esm/idl.js.map +1 -0
  589. package/node_modules/@coral-xyz/anchor/dist/esm/index.d.ts +16 -0
  590. package/node_modules/@coral-xyz/anchor/dist/esm/index.d.ts.map +1 -0
  591. package/node_modules/@coral-xyz/anchor/dist/esm/index.js +14 -0
  592. package/node_modules/@coral-xyz/anchor/dist/esm/index.js.map +1 -0
  593. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.d.ts +7 -0
  594. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.d.ts.map +1 -0
  595. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.js +7 -0
  596. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.js.map +1 -0
  597. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.d.ts +390 -0
  598. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.d.ts.map +1 -0
  599. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.js +389 -0
  600. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.js.map +1 -0
  601. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.d.ts +14 -0
  602. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.d.ts.map +1 -0
  603. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.js +45 -0
  604. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.js.map +1 -0
  605. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.d.ts +63 -0
  606. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.d.ts.map +1 -0
  607. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.js +429 -0
  608. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.js.map +1 -0
  609. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.d.ts +20 -0
  610. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.d.ts.map +1 -0
  611. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.js +43 -0
  612. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.js.map +1 -0
  613. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.d.ts +63 -0
  614. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.d.ts.map +1 -0
  615. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.js +13 -0
  616. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.js.map +1 -0
  617. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.d.ts +57 -0
  618. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.d.ts.map +1 -0
  619. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.js +202 -0
  620. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.js.map +1 -0
  621. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.d.ts +272 -0
  622. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.d.ts.map +1 -0
  623. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.js +156 -0
  624. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.js.map +1 -0
  625. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.d.ts +146 -0
  626. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.d.ts.map +1 -0
  627. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.js +226 -0
  628. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.js.map +1 -0
  629. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.d.ts +35 -0
  630. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.d.ts.map +1 -0
  631. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.js +54 -0
  632. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.js.map +1 -0
  633. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.d.ts +57 -0
  634. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.d.ts.map +1 -0
  635. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.js +68 -0
  636. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.js.map +1 -0
  637. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.d.ts +206 -0
  638. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.d.ts.map +1 -0
  639. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.js +302 -0
  640. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.js.map +1 -0
  641. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.d.ts +49 -0
  642. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.d.ts.map +1 -0
  643. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.js +22 -0
  644. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.js.map +1 -0
  645. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.d.ts +57 -0
  646. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.d.ts.map +1 -0
  647. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.js +39 -0
  648. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.js.map +1 -0
  649. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.d.ts +42 -0
  650. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.d.ts.map +1 -0
  651. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.js +21 -0
  652. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.js.map +1 -0
  653. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.d.ts +153 -0
  654. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.d.ts.map +1 -0
  655. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.js +2 -0
  656. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.js.map +1 -0
  657. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.d.ts +15 -0
  658. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.d.ts.map +1 -0
  659. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.js +27 -0
  660. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.js.map +1 -0
  661. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.d.ts +2 -0
  662. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.d.ts.map +1 -0
  663. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.js +107 -0
  664. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.js.map +1 -0
  665. package/node_modules/@coral-xyz/anchor/dist/esm/provider.d.ts +104 -0
  666. package/node_modules/@coral-xyz/anchor/dist/esm/provider.d.ts.map +1 -0
  667. package/node_modules/@coral-xyz/anchor/dist/esm/provider.js +303 -0
  668. package/node_modules/@coral-xyz/anchor/dist/esm/provider.js.map +1 -0
  669. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.d.ts +4 -0
  670. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.d.ts.map +1 -0
  671. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.js +8 -0
  672. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.js.map +1 -0
  673. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.d.ts +3 -0
  674. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.d.ts.map +1 -0
  675. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.js +8 -0
  676. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.js.map +1 -0
  677. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.d.ts +4 -0
  678. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.d.ts.map +1 -0
  679. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.js +18 -0
  680. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.js.map +1 -0
  681. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.d.ts +5 -0
  682. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.d.ts.map +1 -0
  683. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.js +5 -0
  684. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.js.map +1 -0
  685. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.d.ts +3 -0
  686. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.d.ts.map +1 -0
  687. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.js +14 -0
  688. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.js.map +1 -0
  689. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.d.ts +22 -0
  690. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.d.ts.map +1 -0
  691. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.js +27 -0
  692. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.js.map +1 -0
  693. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.d.ts +3 -0
  694. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.d.ts.map +1 -0
  695. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.js +12 -0
  696. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.js.map +1 -0
  697. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.d.ts +8 -0
  698. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.d.ts.map +1 -0
  699. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.js +8 -0
  700. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.js.map +1 -0
  701. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.d.ts +3 -0
  702. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.d.ts.map +1 -0
  703. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.js +13 -0
  704. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.js.map +1 -0
  705. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.d.ts +34 -0
  706. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.d.ts.map +1 -0
  707. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.js +57 -0
  708. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.js.map +1 -0
  709. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.d.ts +21 -0
  710. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.d.ts.map +1 -0
  711. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.js +161 -0
  712. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.js.map +1 -0
  713. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.d.ts +2 -0
  714. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.d.ts.map +1 -0
  715. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.js +5 -0
  716. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.js.map +1 -0
  717. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.d.ts +8 -0
  718. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.d.ts.map +1 -0
  719. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.js +7 -0
  720. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.js.map +1 -0
  721. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.d.ts +14 -0
  722. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.d.ts.map +1 -0
  723. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.js +70 -0
  724. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.js.map +1 -0
  725. package/node_modules/@coral-xyz/anchor/dist/tsconfig.cjs.tsbuildinfo +1 -0
  726. package/node_modules/@coral-xyz/anchor/dist/tsconfig.tsbuildinfo +1 -0
  727. package/node_modules/@coral-xyz/anchor/package.json +84 -0
  728. package/node_modules/@coral-xyz/anchor/types/buffer-layout/index.d.ts +88 -0
  729. package/node_modules/@coral-xyz/anchor-errors/dist/index.d.ts +157 -0
  730. package/node_modules/@coral-xyz/anchor-errors/dist/index.d.ts.map +1 -0
  731. package/node_modules/@coral-xyz/anchor-errors/dist/index.js +167 -0
  732. package/node_modules/@coral-xyz/anchor-errors/dist/index.js.map +1 -0
  733. package/node_modules/@coral-xyz/anchor-errors/package.json +32 -0
  734. package/node_modules/@coral-xyz/borsh/dist/index.d.ts +31 -0
  735. package/node_modules/@coral-xyz/borsh/dist/index.d.ts.map +1 -0
  736. package/node_modules/@coral-xyz/borsh/dist/index.js +222 -0
  737. package/node_modules/@coral-xyz/borsh/dist/index.js.map +1 -0
  738. package/node_modules/@coral-xyz/borsh/package.json +35 -0
  739. package/node_modules/@noble/curves/LICENSE +21 -0
  740. package/node_modules/@noble/curves/README.md +998 -0
  741. package/node_modules/@noble/curves/_shortw_utils.d.ts +16 -0
  742. package/node_modules/@noble/curves/_shortw_utils.d.ts.map +1 -0
  743. package/node_modules/@noble/curves/_shortw_utils.js +25 -0
  744. package/node_modules/@noble/curves/_shortw_utils.js.map +1 -0
  745. package/node_modules/@noble/curves/abstract/bls.d.ts +129 -0
  746. package/node_modules/@noble/curves/abstract/bls.d.ts.map +1 -0
  747. package/node_modules/@noble/curves/abstract/bls.js +355 -0
  748. package/node_modules/@noble/curves/abstract/bls.js.map +1 -0
  749. package/node_modules/@noble/curves/abstract/curve.d.ts +109 -0
  750. package/node_modules/@noble/curves/abstract/curve.d.ts.map +1 -0
  751. package/node_modules/@noble/curves/abstract/curve.js +392 -0
  752. package/node_modules/@noble/curves/abstract/curve.js.map +1 -0
  753. package/node_modules/@noble/curves/abstract/edwards.d.ts +92 -0
  754. package/node_modules/@noble/curves/abstract/edwards.d.ts.map +1 -0
  755. package/node_modules/@noble/curves/abstract/edwards.js +452 -0
  756. package/node_modules/@noble/curves/abstract/edwards.js.map +1 -0
  757. package/node_modules/@noble/curves/abstract/fft.d.ts +120 -0
  758. package/node_modules/@noble/curves/abstract/fft.d.ts.map +1 -0
  759. package/node_modules/@noble/curves/abstract/fft.js +439 -0
  760. package/node_modules/@noble/curves/abstract/fft.js.map +1 -0
  761. package/node_modules/@noble/curves/abstract/hash-to-curve.d.ts +84 -0
  762. package/node_modules/@noble/curves/abstract/hash-to-curve.d.ts.map +1 -0
  763. package/node_modules/@noble/curves/abstract/hash-to-curve.js +196 -0
  764. package/node_modules/@noble/curves/abstract/hash-to-curve.js.map +1 -0
  765. package/node_modules/@noble/curves/abstract/modular.d.ts +153 -0
  766. package/node_modules/@noble/curves/abstract/modular.d.ts.map +1 -0
  767. package/node_modules/@noble/curves/abstract/modular.js +481 -0
  768. package/node_modules/@noble/curves/abstract/modular.js.map +1 -0
  769. package/node_modules/@noble/curves/abstract/montgomery.d.ts +21 -0
  770. package/node_modules/@noble/curves/abstract/montgomery.d.ts.map +1 -0
  771. package/node_modules/@noble/curves/abstract/montgomery.js +140 -0
  772. package/node_modules/@noble/curves/abstract/montgomery.js.map +1 -0
  773. package/node_modules/@noble/curves/abstract/poseidon.d.ts +76 -0
  774. package/node_modules/@noble/curves/abstract/poseidon.d.ts.map +1 -0
  775. package/node_modules/@noble/curves/abstract/poseidon.js +300 -0
  776. package/node_modules/@noble/curves/abstract/poseidon.js.map +1 -0
  777. package/node_modules/@noble/curves/abstract/tower.d.ts +119 -0
  778. package/node_modules/@noble/curves/abstract/tower.d.ts.map +1 -0
  779. package/node_modules/@noble/curves/abstract/tower.js +500 -0
  780. package/node_modules/@noble/curves/abstract/tower.js.map +1 -0
  781. package/node_modules/@noble/curves/abstract/utils.d.ts +119 -0
  782. package/node_modules/@noble/curves/abstract/utils.d.ts.map +1 -0
  783. package/node_modules/@noble/curves/abstract/utils.js +377 -0
  784. package/node_modules/@noble/curves/abstract/utils.js.map +1 -0
  785. package/node_modules/@noble/curves/abstract/weierstrass.d.ts +260 -0
  786. package/node_modules/@noble/curves/abstract/weierstrass.d.ts.map +1 -0
  787. package/node_modules/@noble/curves/abstract/weierstrass.js +1226 -0
  788. package/node_modules/@noble/curves/abstract/weierstrass.js.map +1 -0
  789. package/node_modules/@noble/curves/bls12-381.d.ts +14 -0
  790. package/node_modules/@noble/curves/bls12-381.d.ts.map +1 -0
  791. package/node_modules/@noble/curves/bls12-381.js +703 -0
  792. package/node_modules/@noble/curves/bls12-381.js.map +1 -0
  793. package/node_modules/@noble/curves/bn254.d.ts +16 -0
  794. package/node_modules/@noble/curves/bn254.d.ts.map +1 -0
  795. package/node_modules/@noble/curves/bn254.js +238 -0
  796. package/node_modules/@noble/curves/bn254.js.map +1 -0
  797. package/node_modules/@noble/curves/ed25519.d.ts +117 -0
  798. package/node_modules/@noble/curves/ed25519.d.ts.map +1 -0
  799. package/node_modules/@noble/curves/ed25519.js +483 -0
  800. package/node_modules/@noble/curves/ed25519.js.map +1 -0
  801. package/node_modules/@noble/curves/ed448.d.ts +98 -0
  802. package/node_modules/@noble/curves/ed448.d.ts.map +1 -0
  803. package/node_modules/@noble/curves/ed448.js +438 -0
  804. package/node_modules/@noble/curves/ed448.js.map +1 -0
  805. package/node_modules/@noble/curves/esm/_shortw_utils.d.ts +16 -0
  806. package/node_modules/@noble/curves/esm/_shortw_utils.d.ts.map +1 -0
  807. package/node_modules/@noble/curves/esm/_shortw_utils.js +21 -0
  808. package/node_modules/@noble/curves/esm/_shortw_utils.js.map +1 -0
  809. package/node_modules/@noble/curves/esm/abstract/bls.d.ts +129 -0
  810. package/node_modules/@noble/curves/esm/abstract/bls.d.ts.map +1 -0
  811. package/node_modules/@noble/curves/esm/abstract/bls.js +352 -0
  812. package/node_modules/@noble/curves/esm/abstract/bls.js.map +1 -0
  813. package/node_modules/@noble/curves/esm/abstract/curve.d.ts +109 -0
  814. package/node_modules/@noble/curves/esm/abstract/curve.d.ts.map +1 -0
  815. package/node_modules/@noble/curves/esm/abstract/curve.js +386 -0
  816. package/node_modules/@noble/curves/esm/abstract/curve.js.map +1 -0
  817. package/node_modules/@noble/curves/esm/abstract/edwards.d.ts +92 -0
  818. package/node_modules/@noble/curves/esm/abstract/edwards.d.ts.map +1 -0
  819. package/node_modules/@noble/curves/esm/abstract/edwards.js +449 -0
  820. package/node_modules/@noble/curves/esm/abstract/edwards.js.map +1 -0
  821. package/node_modules/@noble/curves/esm/abstract/fft.d.ts +120 -0
  822. package/node_modules/@noble/curves/esm/abstract/fft.d.ts.map +1 -0
  823. package/node_modules/@noble/curves/esm/abstract/fft.js +426 -0
  824. package/node_modules/@noble/curves/esm/abstract/fft.js.map +1 -0
  825. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts +84 -0
  826. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts.map +1 -0
  827. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.js +189 -0
  828. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.js.map +1 -0
  829. package/node_modules/@noble/curves/esm/abstract/modular.d.ts +153 -0
  830. package/node_modules/@noble/curves/esm/abstract/modular.d.ts.map +1 -0
  831. package/node_modules/@noble/curves/esm/abstract/modular.js +457 -0
  832. package/node_modules/@noble/curves/esm/abstract/modular.js.map +1 -0
  833. package/node_modules/@noble/curves/esm/abstract/montgomery.d.ts +21 -0
  834. package/node_modules/@noble/curves/esm/abstract/montgomery.d.ts.map +1 -0
  835. package/node_modules/@noble/curves/esm/abstract/montgomery.js +137 -0
  836. package/node_modules/@noble/curves/esm/abstract/montgomery.js.map +1 -0
  837. package/node_modules/@noble/curves/esm/abstract/poseidon.d.ts +76 -0
  838. package/node_modules/@noble/curves/esm/abstract/poseidon.d.ts.map +1 -0
  839. package/node_modules/@noble/curves/esm/abstract/poseidon.js +291 -0
  840. package/node_modules/@noble/curves/esm/abstract/poseidon.js.map +1 -0
  841. package/node_modules/@noble/curves/esm/abstract/tower.d.ts +119 -0
  842. package/node_modules/@noble/curves/esm/abstract/tower.d.ts.map +1 -0
  843. package/node_modules/@noble/curves/esm/abstract/tower.js +496 -0
  844. package/node_modules/@noble/curves/esm/abstract/tower.js.map +1 -0
  845. package/node_modules/@noble/curves/esm/abstract/utils.d.ts +119 -0
  846. package/node_modules/@noble/curves/esm/abstract/utils.d.ts.map +1 -0
  847. package/node_modules/@noble/curves/esm/abstract/utils.js +348 -0
  848. package/node_modules/@noble/curves/esm/abstract/utils.js.map +1 -0
  849. package/node_modules/@noble/curves/esm/abstract/weierstrass.d.ts +260 -0
  850. package/node_modules/@noble/curves/esm/abstract/weierstrass.d.ts.map +1 -0
  851. package/node_modules/@noble/curves/esm/abstract/weierstrass.js +1218 -0
  852. package/node_modules/@noble/curves/esm/abstract/weierstrass.js.map +1 -0
  853. package/node_modules/@noble/curves/esm/bls12-381.d.ts +14 -0
  854. package/node_modules/@noble/curves/esm/bls12-381.d.ts.map +1 -0
  855. package/node_modules/@noble/curves/esm/bls12-381.js +700 -0
  856. package/node_modules/@noble/curves/esm/bls12-381.js.map +1 -0
  857. package/node_modules/@noble/curves/esm/bn254.d.ts +16 -0
  858. package/node_modules/@noble/curves/esm/bn254.d.ts.map +1 -0
  859. package/node_modules/@noble/curves/esm/bn254.js +234 -0
  860. package/node_modules/@noble/curves/esm/bn254.js.map +1 -0
  861. package/node_modules/@noble/curves/esm/ed25519.d.ts +117 -0
  862. package/node_modules/@noble/curves/esm/ed25519.d.ts.map +1 -0
  863. package/node_modules/@noble/curves/esm/ed25519.js +477 -0
  864. package/node_modules/@noble/curves/esm/ed25519.js.map +1 -0
  865. package/node_modules/@noble/curves/esm/ed448.d.ts +98 -0
  866. package/node_modules/@noble/curves/esm/ed448.d.ts.map +1 -0
  867. package/node_modules/@noble/curves/esm/ed448.js +433 -0
  868. package/node_modules/@noble/curves/esm/ed448.js.map +1 -0
  869. package/node_modules/@noble/curves/esm/index.d.ts +2 -0
  870. package/node_modules/@noble/curves/esm/index.d.ts.map +1 -0
  871. package/node_modules/@noble/curves/esm/index.js +19 -0
  872. package/node_modules/@noble/curves/esm/index.js.map +1 -0
  873. package/node_modules/@noble/curves/esm/jubjub.d.ts +12 -0
  874. package/node_modules/@noble/curves/esm/jubjub.d.ts.map +1 -0
  875. package/node_modules/@noble/curves/esm/jubjub.js +12 -0
  876. package/node_modules/@noble/curves/esm/jubjub.js.map +1 -0
  877. package/node_modules/@noble/curves/esm/misc.d.ts +21 -0
  878. package/node_modules/@noble/curves/esm/misc.d.ts.map +1 -0
  879. package/node_modules/@noble/curves/esm/misc.js +107 -0
  880. package/node_modules/@noble/curves/esm/misc.js.map +1 -0
  881. package/node_modules/@noble/curves/esm/nist.d.ts +30 -0
  882. package/node_modules/@noble/curves/esm/nist.d.ts.map +1 -0
  883. package/node_modules/@noble/curves/esm/nist.js +121 -0
  884. package/node_modules/@noble/curves/esm/nist.js.map +1 -0
  885. package/node_modules/@noble/curves/esm/p256.d.ts +12 -0
  886. package/node_modules/@noble/curves/esm/p256.d.ts.map +1 -0
  887. package/node_modules/@noble/curves/esm/p256.js +12 -0
  888. package/node_modules/@noble/curves/esm/p256.js.map +1 -0
  889. package/node_modules/@noble/curves/esm/p384.d.ts +13 -0
  890. package/node_modules/@noble/curves/esm/p384.d.ts.map +1 -0
  891. package/node_modules/@noble/curves/esm/p384.js +13 -0
  892. package/node_modules/@noble/curves/esm/p384.js.map +1 -0
  893. package/node_modules/@noble/curves/esm/p521.d.ts +12 -0
  894. package/node_modules/@noble/curves/esm/p521.d.ts.map +1 -0
  895. package/node_modules/@noble/curves/esm/p521.js +12 -0
  896. package/node_modules/@noble/curves/esm/p521.js.map +1 -0
  897. package/node_modules/@noble/curves/esm/package.json +4 -0
  898. package/node_modules/@noble/curves/esm/pasta.d.ts +10 -0
  899. package/node_modules/@noble/curves/esm/pasta.d.ts.map +1 -0
  900. package/node_modules/@noble/curves/esm/pasta.js +10 -0
  901. package/node_modules/@noble/curves/esm/pasta.js.map +1 -0
  902. package/node_modules/@noble/curves/esm/secp256k1.d.ts +76 -0
  903. package/node_modules/@noble/curves/esm/secp256k1.d.ts.map +1 -0
  904. package/node_modules/@noble/curves/esm/secp256k1.js +287 -0
  905. package/node_modules/@noble/curves/esm/secp256k1.js.map +1 -0
  906. package/node_modules/@noble/curves/index.d.ts +1 -0
  907. package/node_modules/@noble/curves/index.d.ts.map +1 -0
  908. package/node_modules/@noble/curves/index.js +19 -0
  909. package/node_modules/@noble/curves/index.js.map +1 -0
  910. package/node_modules/@noble/curves/jubjub.d.ts +12 -0
  911. package/node_modules/@noble/curves/jubjub.d.ts.map +1 -0
  912. package/node_modules/@noble/curves/jubjub.js +15 -0
  913. package/node_modules/@noble/curves/jubjub.js.map +1 -0
  914. package/node_modules/@noble/curves/misc.d.ts +21 -0
  915. package/node_modules/@noble/curves/misc.d.ts.map +1 -0
  916. package/node_modules/@noble/curves/misc.js +112 -0
  917. package/node_modules/@noble/curves/misc.js.map +1 -0
  918. package/node_modules/@noble/curves/nist.d.ts +30 -0
  919. package/node_modules/@noble/curves/nist.d.ts.map +1 -0
  920. package/node_modules/@noble/curves/nist.js +124 -0
  921. package/node_modules/@noble/curves/nist.js.map +1 -0
  922. package/node_modules/@noble/curves/p256.d.ts +12 -0
  923. package/node_modules/@noble/curves/p256.d.ts.map +1 -0
  924. package/node_modules/@noble/curves/p256.js +9 -0
  925. package/node_modules/@noble/curves/p256.js.map +1 -0
  926. package/node_modules/@noble/curves/p384.d.ts +13 -0
  927. package/node_modules/@noble/curves/p384.d.ts.map +1 -0
  928. package/node_modules/@noble/curves/p384.js +10 -0
  929. package/node_modules/@noble/curves/p384.js.map +1 -0
  930. package/node_modules/@noble/curves/p521.d.ts +12 -0
  931. package/node_modules/@noble/curves/p521.d.ts.map +1 -0
  932. package/node_modules/@noble/curves/p521.js +9 -0
  933. package/node_modules/@noble/curves/p521.js.map +1 -0
  934. package/node_modules/@noble/curves/package.json +284 -0
  935. package/node_modules/@noble/curves/pasta.d.ts +10 -0
  936. package/node_modules/@noble/curves/pasta.d.ts.map +1 -0
  937. package/node_modules/@noble/curves/pasta.js +13 -0
  938. package/node_modules/@noble/curves/pasta.js.map +1 -0
  939. package/node_modules/@noble/curves/secp256k1.d.ts +76 -0
  940. package/node_modules/@noble/curves/secp256k1.d.ts.map +1 -0
  941. package/node_modules/@noble/curves/secp256k1.js +290 -0
  942. package/node_modules/@noble/curves/secp256k1.js.map +1 -0
  943. package/node_modules/@noble/curves/src/_shortw_utils.ts +30 -0
  944. package/node_modules/@noble/curves/src/abstract/bls.ts +570 -0
  945. package/node_modules/@noble/curves/src/abstract/curve.ts +471 -0
  946. package/node_modules/@noble/curves/src/abstract/edwards.ts +569 -0
  947. package/node_modules/@noble/curves/src/abstract/fft.ts +508 -0
  948. package/node_modules/@noble/curves/src/abstract/hash-to-curve.ts +265 -0
  949. package/node_modules/@noble/curves/src/abstract/modular.ts +533 -0
  950. package/node_modules/@noble/curves/src/abstract/montgomery.ts +165 -0
  951. package/node_modules/@noble/curves/src/abstract/poseidon.ts +331 -0
  952. package/node_modules/@noble/curves/src/abstract/tower.ts +650 -0
  953. package/node_modules/@noble/curves/src/abstract/utils.ts +382 -0
  954. package/node_modules/@noble/curves/src/abstract/weierstrass.ts +1437 -0
  955. package/node_modules/@noble/curves/src/bls12-381.ts +754 -0
  956. package/node_modules/@noble/curves/src/bn254.ts +262 -0
  957. package/node_modules/@noble/curves/src/ed25519.ts +552 -0
  958. package/node_modules/@noble/curves/src/ed448.ts +524 -0
  959. package/node_modules/@noble/curves/src/index.ts +17 -0
  960. package/node_modules/@noble/curves/src/jubjub.ts +12 -0
  961. package/node_modules/@noble/curves/src/misc.ts +123 -0
  962. package/node_modules/@noble/curves/src/nist.ts +155 -0
  963. package/node_modules/@noble/curves/src/p256.ts +11 -0
  964. package/node_modules/@noble/curves/src/p384.ts +13 -0
  965. package/node_modules/@noble/curves/src/p521.ts +11 -0
  966. package/node_modules/@noble/curves/src/package.json +3 -0
  967. package/node_modules/@noble/curves/src/pasta.ts +9 -0
  968. package/node_modules/@noble/curves/src/secp256k1.ts +333 -0
  969. package/node_modules/@noble/hashes/LICENSE +21 -0
  970. package/node_modules/@noble/hashes/README.md +521 -0
  971. package/node_modules/@noble/hashes/_assert.d.ts +17 -0
  972. package/node_modules/@noble/hashes/_assert.d.ts.map +1 -0
  973. package/node_modules/@noble/hashes/_assert.js +18 -0
  974. package/node_modules/@noble/hashes/_assert.js.map +1 -0
  975. package/node_modules/@noble/hashes/_blake.d.ts +14 -0
  976. package/node_modules/@noble/hashes/_blake.d.ts.map +1 -0
  977. package/node_modules/@noble/hashes/_blake.js +50 -0
  978. package/node_modules/@noble/hashes/_blake.js.map +1 -0
  979. package/node_modules/@noble/hashes/_md.d.ts +51 -0
  980. package/node_modules/@noble/hashes/_md.d.ts.map +1 -0
  981. package/node_modules/@noble/hashes/_md.js +162 -0
  982. package/node_modules/@noble/hashes/_md.js.map +1 -0
  983. package/node_modules/@noble/hashes/_u64.d.ts +55 -0
  984. package/node_modules/@noble/hashes/_u64.d.ts.map +1 -0
  985. package/node_modules/@noble/hashes/_u64.js +90 -0
  986. package/node_modules/@noble/hashes/_u64.js.map +1 -0
  987. package/node_modules/@noble/hashes/argon2.d.ts +32 -0
  988. package/node_modules/@noble/hashes/argon2.d.ts.map +1 -0
  989. package/node_modules/@noble/hashes/argon2.js +401 -0
  990. package/node_modules/@noble/hashes/argon2.js.map +1 -0
  991. package/node_modules/@noble/hashes/blake1.d.ts +106 -0
  992. package/node_modules/@noble/hashes/blake1.d.ts.map +1 -0
  993. package/node_modules/@noble/hashes/blake1.js +459 -0
  994. package/node_modules/@noble/hashes/blake1.js.map +1 -0
  995. package/node_modules/@noble/hashes/blake2.d.ts +116 -0
  996. package/node_modules/@noble/hashes/blake2.d.ts.map +1 -0
  997. package/node_modules/@noble/hashes/blake2.js +420 -0
  998. package/node_modules/@noble/hashes/blake2.js.map +1 -0
  999. package/node_modules/@noble/hashes/blake2b.d.ts +11 -0
  1000. package/node_modules/@noble/hashes/blake2b.d.ts.map +1 -0
  1001. package/node_modules/@noble/hashes/blake2b.js +14 -0
  1002. package/node_modules/@noble/hashes/blake2b.js.map +1 -0
  1003. package/node_modules/@noble/hashes/blake2s.d.ts +20 -0
  1004. package/node_modules/@noble/hashes/blake2s.d.ts.map +1 -0
  1005. package/node_modules/@noble/hashes/blake2s.js +24 -0
  1006. package/node_modules/@noble/hashes/blake2s.js.map +1 -0
  1007. package/node_modules/@noble/hashes/blake3.d.ts +54 -0
  1008. package/node_modules/@noble/hashes/blake3.d.ts.map +1 -0
  1009. package/node_modules/@noble/hashes/blake3.js +255 -0
  1010. package/node_modules/@noble/hashes/blake3.js.map +1 -0
  1011. package/node_modules/@noble/hashes/crypto.d.ts +2 -0
  1012. package/node_modules/@noble/hashes/crypto.d.ts.map +1 -0
  1013. package/node_modules/@noble/hashes/crypto.js +5 -0
  1014. package/node_modules/@noble/hashes/crypto.js.map +1 -0
  1015. package/node_modules/@noble/hashes/cryptoNode.d.ts +2 -0
  1016. package/node_modules/@noble/hashes/cryptoNode.d.ts.map +1 -0
  1017. package/node_modules/@noble/hashes/cryptoNode.js +18 -0
  1018. package/node_modules/@noble/hashes/cryptoNode.js.map +1 -0
  1019. package/node_modules/@noble/hashes/eskdf.d.ts +47 -0
  1020. package/node_modules/@noble/hashes/eskdf.d.ts.map +1 -0
  1021. package/node_modules/@noble/hashes/eskdf.js +166 -0
  1022. package/node_modules/@noble/hashes/eskdf.js.map +1 -0
  1023. package/node_modules/@noble/hashes/esm/_assert.d.ts +17 -0
  1024. package/node_modules/@noble/hashes/esm/_assert.d.ts.map +1 -0
  1025. package/node_modules/@noble/hashes/esm/_assert.js +15 -0
  1026. package/node_modules/@noble/hashes/esm/_assert.js.map +1 -0
  1027. package/node_modules/@noble/hashes/esm/_blake.d.ts +14 -0
  1028. package/node_modules/@noble/hashes/esm/_blake.d.ts.map +1 -0
  1029. package/node_modules/@noble/hashes/esm/_blake.js +45 -0
  1030. package/node_modules/@noble/hashes/esm/_blake.js.map +1 -0
  1031. package/node_modules/@noble/hashes/esm/_md.d.ts +51 -0
  1032. package/node_modules/@noble/hashes/esm/_md.d.ts.map +1 -0
  1033. package/node_modules/@noble/hashes/esm/_md.js +155 -0
  1034. package/node_modules/@noble/hashes/esm/_md.js.map +1 -0
  1035. package/node_modules/@noble/hashes/esm/_u64.d.ts +55 -0
  1036. package/node_modules/@noble/hashes/esm/_u64.d.ts.map +1 -0
  1037. package/node_modules/@noble/hashes/esm/_u64.js +67 -0
  1038. package/node_modules/@noble/hashes/esm/_u64.js.map +1 -0
  1039. package/node_modules/@noble/hashes/esm/argon2.d.ts +32 -0
  1040. package/node_modules/@noble/hashes/esm/argon2.d.ts.map +1 -0
  1041. package/node_modules/@noble/hashes/esm/argon2.js +392 -0
  1042. package/node_modules/@noble/hashes/esm/argon2.js.map +1 -0
  1043. package/node_modules/@noble/hashes/esm/blake1.d.ts +106 -0
  1044. package/node_modules/@noble/hashes/esm/blake1.d.ts.map +1 -0
  1045. package/node_modules/@noble/hashes/esm/blake1.js +452 -0
  1046. package/node_modules/@noble/hashes/esm/blake1.js.map +1 -0
  1047. package/node_modules/@noble/hashes/esm/blake2.d.ts +116 -0
  1048. package/node_modules/@noble/hashes/esm/blake2.d.ts.map +1 -0
  1049. package/node_modules/@noble/hashes/esm/blake2.js +413 -0
  1050. package/node_modules/@noble/hashes/esm/blake2.js.map +1 -0
  1051. package/node_modules/@noble/hashes/esm/blake2b.d.ts +11 -0
  1052. package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +1 -0
  1053. package/node_modules/@noble/hashes/esm/blake2b.js +11 -0
  1054. package/node_modules/@noble/hashes/esm/blake2b.js.map +1 -0
  1055. package/node_modules/@noble/hashes/esm/blake2s.d.ts +20 -0
  1056. package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +1 -0
  1057. package/node_modules/@noble/hashes/esm/blake2s.js +21 -0
  1058. package/node_modules/@noble/hashes/esm/blake2s.js.map +1 -0
  1059. package/node_modules/@noble/hashes/esm/blake3.d.ts +54 -0
  1060. package/node_modules/@noble/hashes/esm/blake3.d.ts.map +1 -0
  1061. package/node_modules/@noble/hashes/esm/blake3.js +251 -0
  1062. package/node_modules/@noble/hashes/esm/blake3.js.map +1 -0
  1063. package/node_modules/@noble/hashes/esm/crypto.d.ts +2 -0
  1064. package/node_modules/@noble/hashes/esm/crypto.d.ts.map +1 -0
  1065. package/node_modules/@noble/hashes/esm/crypto.js +2 -0
  1066. package/node_modules/@noble/hashes/esm/crypto.js.map +1 -0
  1067. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +2 -0
  1068. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +1 -0
  1069. package/node_modules/@noble/hashes/esm/cryptoNode.js +15 -0
  1070. package/node_modules/@noble/hashes/esm/cryptoNode.js.map +1 -0
  1071. package/node_modules/@noble/hashes/esm/eskdf.d.ts +47 -0
  1072. package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +1 -0
  1073. package/node_modules/@noble/hashes/esm/eskdf.js +160 -0
  1074. package/node_modules/@noble/hashes/esm/eskdf.js.map +1 -0
  1075. package/node_modules/@noble/hashes/esm/hkdf.d.ts +36 -0
  1076. package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +1 -0
  1077. package/node_modules/@noble/hashes/esm/hkdf.js +82 -0
  1078. package/node_modules/@noble/hashes/esm/hkdf.js.map +1 -0
  1079. package/node_modules/@noble/hashes/esm/hmac.d.ts +35 -0
  1080. package/node_modules/@noble/hashes/esm/hmac.d.ts.map +1 -0
  1081. package/node_modules/@noble/hashes/esm/hmac.js +86 -0
  1082. package/node_modules/@noble/hashes/esm/hmac.js.map +1 -0
  1083. package/node_modules/@noble/hashes/esm/index.d.ts +2 -0
  1084. package/node_modules/@noble/hashes/esm/index.d.ts.map +1 -0
  1085. package/node_modules/@noble/hashes/esm/index.js +33 -0
  1086. package/node_modules/@noble/hashes/esm/index.js.map +1 -0
  1087. package/node_modules/@noble/hashes/esm/legacy.d.ts +71 -0
  1088. package/node_modules/@noble/hashes/esm/legacy.d.ts.map +1 -0
  1089. package/node_modules/@noble/hashes/esm/legacy.js +281 -0
  1090. package/node_modules/@noble/hashes/esm/legacy.js.map +1 -0
  1091. package/node_modules/@noble/hashes/esm/package.json +10 -0
  1092. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +23 -0
  1093. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +1 -0
  1094. package/node_modules/@noble/hashes/esm/pbkdf2.js +97 -0
  1095. package/node_modules/@noble/hashes/esm/pbkdf2.js.map +1 -0
  1096. package/node_modules/@noble/hashes/esm/ripemd160.d.ts +13 -0
  1097. package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +1 -0
  1098. package/node_modules/@noble/hashes/esm/ripemd160.js +13 -0
  1099. package/node_modules/@noble/hashes/esm/ripemd160.js.map +1 -0
  1100. package/node_modules/@noble/hashes/esm/scrypt.d.ts +34 -0
  1101. package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +1 -0
  1102. package/node_modules/@noble/hashes/esm/scrypt.js +228 -0
  1103. package/node_modules/@noble/hashes/esm/scrypt.js.map +1 -0
  1104. package/node_modules/@noble/hashes/esm/sha1.d.ts +11 -0
  1105. package/node_modules/@noble/hashes/esm/sha1.d.ts.map +1 -0
  1106. package/node_modules/@noble/hashes/esm/sha1.js +11 -0
  1107. package/node_modules/@noble/hashes/esm/sha1.js.map +1 -0
  1108. package/node_modules/@noble/hashes/esm/sha2.d.ts +159 -0
  1109. package/node_modules/@noble/hashes/esm/sha2.d.ts.map +1 -0
  1110. package/node_modules/@noble/hashes/esm/sha2.js +375 -0
  1111. package/node_modules/@noble/hashes/esm/sha2.js.map +1 -0
  1112. package/node_modules/@noble/hashes/esm/sha256.d.ts +20 -0
  1113. package/node_modules/@noble/hashes/esm/sha256.d.ts.map +1 -0
  1114. package/node_modules/@noble/hashes/esm/sha256.js +20 -0
  1115. package/node_modules/@noble/hashes/esm/sha256.js.map +1 -0
  1116. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +142 -0
  1117. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +1 -0
  1118. package/node_modules/@noble/hashes/esm/sha3-addons.js +393 -0
  1119. package/node_modules/@noble/hashes/esm/sha3-addons.js.map +1 -0
  1120. package/node_modules/@noble/hashes/esm/sha3.d.ts +53 -0
  1121. package/node_modules/@noble/hashes/esm/sha3.d.ts.map +1 -0
  1122. package/node_modules/@noble/hashes/esm/sha3.js +234 -0
  1123. package/node_modules/@noble/hashes/esm/sha3.js.map +1 -0
  1124. package/node_modules/@noble/hashes/esm/sha512.d.ts +26 -0
  1125. package/node_modules/@noble/hashes/esm/sha512.d.ts.map +1 -0
  1126. package/node_modules/@noble/hashes/esm/sha512.js +26 -0
  1127. package/node_modules/@noble/hashes/esm/sha512.js.map +1 -0
  1128. package/node_modules/@noble/hashes/esm/utils.d.ts +161 -0
  1129. package/node_modules/@noble/hashes/esm/utils.d.ts.map +1 -0
  1130. package/node_modules/@noble/hashes/esm/utils.js +281 -0
  1131. package/node_modules/@noble/hashes/esm/utils.js.map +1 -0
  1132. package/node_modules/@noble/hashes/hkdf.d.ts +36 -0
  1133. package/node_modules/@noble/hashes/hkdf.d.ts.map +1 -0
  1134. package/node_modules/@noble/hashes/hkdf.js +88 -0
  1135. package/node_modules/@noble/hashes/hkdf.js.map +1 -0
  1136. package/node_modules/@noble/hashes/hmac.d.ts +35 -0
  1137. package/node_modules/@noble/hashes/hmac.d.ts.map +1 -0
  1138. package/node_modules/@noble/hashes/hmac.js +91 -0
  1139. package/node_modules/@noble/hashes/hmac.js.map +1 -0
  1140. package/node_modules/@noble/hashes/index.d.ts +1 -0
  1141. package/node_modules/@noble/hashes/index.d.ts.map +1 -0
  1142. package/node_modules/@noble/hashes/index.js +33 -0
  1143. package/node_modules/@noble/hashes/index.js.map +1 -0
  1144. package/node_modules/@noble/hashes/legacy.d.ts +71 -0
  1145. package/node_modules/@noble/hashes/legacy.d.ts.map +1 -0
  1146. package/node_modules/@noble/hashes/legacy.js +287 -0
  1147. package/node_modules/@noble/hashes/legacy.js.map +1 -0
  1148. package/node_modules/@noble/hashes/package.json +266 -0
  1149. package/node_modules/@noble/hashes/pbkdf2.d.ts +23 -0
  1150. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +1 -0
  1151. package/node_modules/@noble/hashes/pbkdf2.js +101 -0
  1152. package/node_modules/@noble/hashes/pbkdf2.js.map +1 -0
  1153. package/node_modules/@noble/hashes/ripemd160.d.ts +13 -0
  1154. package/node_modules/@noble/hashes/ripemd160.d.ts.map +1 -0
  1155. package/node_modules/@noble/hashes/ripemd160.js +16 -0
  1156. package/node_modules/@noble/hashes/ripemd160.js.map +1 -0
  1157. package/node_modules/@noble/hashes/scrypt.d.ts +34 -0
  1158. package/node_modules/@noble/hashes/scrypt.d.ts.map +1 -0
  1159. package/node_modules/@noble/hashes/scrypt.js +232 -0
  1160. package/node_modules/@noble/hashes/scrypt.js.map +1 -0
  1161. package/node_modules/@noble/hashes/sha1.d.ts +11 -0
  1162. package/node_modules/@noble/hashes/sha1.d.ts.map +1 -0
  1163. package/node_modules/@noble/hashes/sha1.js +14 -0
  1164. package/node_modules/@noble/hashes/sha1.js.map +1 -0
  1165. package/node_modules/@noble/hashes/sha2.d.ts +159 -0
  1166. package/node_modules/@noble/hashes/sha2.d.ts.map +1 -0
  1167. package/node_modules/@noble/hashes/sha2.js +384 -0
  1168. package/node_modules/@noble/hashes/sha2.js.map +1 -0
  1169. package/node_modules/@noble/hashes/sha256.d.ts +20 -0
  1170. package/node_modules/@noble/hashes/sha256.d.ts.map +1 -0
  1171. package/node_modules/@noble/hashes/sha256.js +23 -0
  1172. package/node_modules/@noble/hashes/sha256.js.map +1 -0
  1173. package/node_modules/@noble/hashes/sha3-addons.d.ts +142 -0
  1174. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +1 -0
  1175. package/node_modules/@noble/hashes/sha3-addons.js +402 -0
  1176. package/node_modules/@noble/hashes/sha3-addons.js.map +1 -0
  1177. package/node_modules/@noble/hashes/sha3.d.ts +53 -0
  1178. package/node_modules/@noble/hashes/sha3.d.ts.map +1 -0
  1179. package/node_modules/@noble/hashes/sha3.js +239 -0
  1180. package/node_modules/@noble/hashes/sha3.js.map +1 -0
  1181. package/node_modules/@noble/hashes/sha512.d.ts +26 -0
  1182. package/node_modules/@noble/hashes/sha512.d.ts.map +1 -0
  1183. package/node_modules/@noble/hashes/sha512.js +29 -0
  1184. package/node_modules/@noble/hashes/sha512.js.map +1 -0
  1185. package/node_modules/@noble/hashes/src/_assert.ts +22 -0
  1186. package/node_modules/@noble/hashes/src/_blake.ts +50 -0
  1187. package/node_modules/@noble/hashes/src/_md.ts +176 -0
  1188. package/node_modules/@noble/hashes/src/_u64.ts +91 -0
  1189. package/node_modules/@noble/hashes/src/argon2.ts +497 -0
  1190. package/node_modules/@noble/hashes/src/blake1.ts +534 -0
  1191. package/node_modules/@noble/hashes/src/blake2.ts +486 -0
  1192. package/node_modules/@noble/hashes/src/blake2b.ts +10 -0
  1193. package/node_modules/@noble/hashes/src/blake2s.ts +20 -0
  1194. package/node_modules/@noble/hashes/src/blake3.ts +272 -0
  1195. package/node_modules/@noble/hashes/src/crypto.ts +9 -0
  1196. package/node_modules/@noble/hashes/src/cryptoNode.ts +15 -0
  1197. package/node_modules/@noble/hashes/src/eskdf.ts +187 -0
  1198. package/node_modules/@noble/hashes/src/hkdf.ts +88 -0
  1199. package/node_modules/@noble/hashes/src/hmac.ts +94 -0
  1200. package/node_modules/@noble/hashes/src/index.ts +31 -0
  1201. package/node_modules/@noble/hashes/src/legacy.ts +293 -0
  1202. package/node_modules/@noble/hashes/src/pbkdf2.ts +122 -0
  1203. package/node_modules/@noble/hashes/src/ripemd160.ts +12 -0
  1204. package/node_modules/@noble/hashes/src/scrypt.ts +257 -0
  1205. package/node_modules/@noble/hashes/src/sha1.ts +10 -0
  1206. package/node_modules/@noble/hashes/src/sha2.ts +402 -0
  1207. package/node_modules/@noble/hashes/src/sha256.ts +24 -0
  1208. package/node_modules/@noble/hashes/src/sha3-addons.ts +499 -0
  1209. package/node_modules/@noble/hashes/src/sha3.ts +258 -0
  1210. package/node_modules/@noble/hashes/src/sha512.ts +34 -0
  1211. package/node_modules/@noble/hashes/src/utils.ts +395 -0
  1212. package/node_modules/@noble/hashes/utils.d.ts +161 -0
  1213. package/node_modules/@noble/hashes/utils.d.ts.map +1 -0
  1214. package/node_modules/@noble/hashes/utils.js +313 -0
  1215. package/node_modules/@noble/hashes/utils.js.map +1 -0
  1216. package/node_modules/@solana/buffer-layout/LICENSE +21 -0
  1217. package/node_modules/@solana/buffer-layout/README.md +403 -0
  1218. package/node_modules/@solana/buffer-layout/lib/Layout.d.ts +1191 -0
  1219. package/node_modules/@solana/buffer-layout/lib/Layout.js +2390 -0
  1220. package/node_modules/@solana/buffer-layout/lib/Layout.js.map +1 -0
  1221. package/node_modules/@solana/buffer-layout/package.json +55 -0
  1222. package/node_modules/@solana/codecs-core/LICENSE +20 -0
  1223. package/node_modules/@solana/codecs-core/README.md +662 -0
  1224. package/node_modules/@solana/codecs-core/dist/index.browser.cjs +504 -0
  1225. package/node_modules/@solana/codecs-core/dist/index.browser.cjs.map +1 -0
  1226. package/node_modules/@solana/codecs-core/dist/index.browser.mjs +460 -0
  1227. package/node_modules/@solana/codecs-core/dist/index.browser.mjs.map +1 -0
  1228. package/node_modules/@solana/codecs-core/dist/index.native.mjs +460 -0
  1229. package/node_modules/@solana/codecs-core/dist/index.native.mjs.map +1 -0
  1230. package/node_modules/@solana/codecs-core/dist/index.node.cjs +504 -0
  1231. package/node_modules/@solana/codecs-core/dist/index.node.cjs.map +1 -0
  1232. package/node_modules/@solana/codecs-core/dist/index.node.mjs +460 -0
  1233. package/node_modules/@solana/codecs-core/dist/index.node.mjs.map +1 -0
  1234. package/node_modules/@solana/codecs-core/dist/types/add-codec-sentinel.d.ts +70 -0
  1235. package/node_modules/@solana/codecs-core/dist/types/add-codec-sentinel.d.ts.map +1 -0
  1236. package/node_modules/@solana/codecs-core/dist/types/add-codec-size-prefix.d.ts +67 -0
  1237. package/node_modules/@solana/codecs-core/dist/types/add-codec-size-prefix.d.ts.map +1 -0
  1238. package/node_modules/@solana/codecs-core/dist/types/assertions.d.ts +62 -0
  1239. package/node_modules/@solana/codecs-core/dist/types/assertions.d.ts.map +1 -0
  1240. package/node_modules/@solana/codecs-core/dist/types/bytes.d.ts +92 -0
  1241. package/node_modules/@solana/codecs-core/dist/types/bytes.d.ts.map +1 -0
  1242. package/node_modules/@solana/codecs-core/dist/types/codec.d.ts +827 -0
  1243. package/node_modules/@solana/codecs-core/dist/types/codec.d.ts.map +1 -0
  1244. package/node_modules/@solana/codecs-core/dist/types/combine-codec.d.ts +75 -0
  1245. package/node_modules/@solana/codecs-core/dist/types/combine-codec.d.ts.map +1 -0
  1246. package/node_modules/@solana/codecs-core/dist/types/fix-codec-size.d.ts +111 -0
  1247. package/node_modules/@solana/codecs-core/dist/types/fix-codec-size.d.ts.map +1 -0
  1248. package/node_modules/@solana/codecs-core/dist/types/index.d.ts +667 -0
  1249. package/node_modules/@solana/codecs-core/dist/types/index.d.ts.map +1 -0
  1250. package/node_modules/@solana/codecs-core/dist/types/offset-codec.d.ts +328 -0
  1251. package/node_modules/@solana/codecs-core/dist/types/offset-codec.d.ts.map +1 -0
  1252. package/node_modules/@solana/codecs-core/dist/types/pad-codec.d.ts +162 -0
  1253. package/node_modules/@solana/codecs-core/dist/types/pad-codec.d.ts.map +1 -0
  1254. package/node_modules/@solana/codecs-core/dist/types/readonly-uint8array.d.ts +19 -0
  1255. package/node_modules/@solana/codecs-core/dist/types/readonly-uint8array.d.ts.map +1 -0
  1256. package/node_modules/@solana/codecs-core/dist/types/resize-codec.d.ts +129 -0
  1257. package/node_modules/@solana/codecs-core/dist/types/resize-codec.d.ts.map +1 -0
  1258. package/node_modules/@solana/codecs-core/dist/types/reverse-codec.d.ts +92 -0
  1259. package/node_modules/@solana/codecs-core/dist/types/reverse-codec.d.ts.map +1 -0
  1260. package/node_modules/@solana/codecs-core/dist/types/transform-codec.d.ts +114 -0
  1261. package/node_modules/@solana/codecs-core/dist/types/transform-codec.d.ts.map +1 -0
  1262. package/node_modules/@solana/codecs-core/package.json +83 -0
  1263. package/node_modules/@solana/codecs-numbers/LICENSE +20 -0
  1264. package/node_modules/@solana/codecs-numbers/README.md +130 -0
  1265. package/node_modules/@solana/codecs-numbers/dist/index.browser.cjs +331 -0
  1266. package/node_modules/@solana/codecs-numbers/dist/index.browser.cjs.map +1 -0
  1267. package/node_modules/@solana/codecs-numbers/dist/index.browser.mjs +289 -0
  1268. package/node_modules/@solana/codecs-numbers/dist/index.browser.mjs.map +1 -0
  1269. package/node_modules/@solana/codecs-numbers/dist/index.native.mjs +289 -0
  1270. package/node_modules/@solana/codecs-numbers/dist/index.native.mjs.map +1 -0
  1271. package/node_modules/@solana/codecs-numbers/dist/index.node.cjs +331 -0
  1272. package/node_modules/@solana/codecs-numbers/dist/index.node.cjs.map +1 -0
  1273. package/node_modules/@solana/codecs-numbers/dist/index.node.mjs +289 -0
  1274. package/node_modules/@solana/codecs-numbers/dist/index.node.mjs.map +1 -0
  1275. package/node_modules/@solana/codecs-numbers/dist/types/assertions.d.ts +27 -0
  1276. package/node_modules/@solana/codecs-numbers/dist/types/assertions.d.ts.map +1 -0
  1277. package/node_modules/@solana/codecs-numbers/dist/types/common.d.ts +84 -0
  1278. package/node_modules/@solana/codecs-numbers/dist/types/common.d.ts.map +1 -0
  1279. package/node_modules/@solana/codecs-numbers/dist/types/f32.d.ts +87 -0
  1280. package/node_modules/@solana/codecs-numbers/dist/types/f32.d.ts.map +1 -0
  1281. package/node_modules/@solana/codecs-numbers/dist/types/f64.d.ts +87 -0
  1282. package/node_modules/@solana/codecs-numbers/dist/types/f64.d.ts.map +1 -0
  1283. package/node_modules/@solana/codecs-numbers/dist/types/i128.d.ts +91 -0
  1284. package/node_modules/@solana/codecs-numbers/dist/types/i128.d.ts.map +1 -0
  1285. package/node_modules/@solana/codecs-numbers/dist/types/i16.d.ts +87 -0
  1286. package/node_modules/@solana/codecs-numbers/dist/types/i16.d.ts.map +1 -0
  1287. package/node_modules/@solana/codecs-numbers/dist/types/i32.d.ts +87 -0
  1288. package/node_modules/@solana/codecs-numbers/dist/types/i32.d.ts.map +1 -0
  1289. package/node_modules/@solana/codecs-numbers/dist/types/i64.d.ts +90 -0
  1290. package/node_modules/@solana/codecs-numbers/dist/types/i64.d.ts.map +1 -0
  1291. package/node_modules/@solana/codecs-numbers/dist/types/i8.d.ts +75 -0
  1292. package/node_modules/@solana/codecs-numbers/dist/types/i8.d.ts.map +1 -0
  1293. package/node_modules/@solana/codecs-numbers/dist/types/index.d.ts +26 -0
  1294. package/node_modules/@solana/codecs-numbers/dist/types/index.d.ts.map +1 -0
  1295. package/node_modules/@solana/codecs-numbers/dist/types/short-u16.d.ts +96 -0
  1296. package/node_modules/@solana/codecs-numbers/dist/types/short-u16.d.ts.map +1 -0
  1297. package/node_modules/@solana/codecs-numbers/dist/types/u128.d.ts +87 -0
  1298. package/node_modules/@solana/codecs-numbers/dist/types/u128.d.ts.map +1 -0
  1299. package/node_modules/@solana/codecs-numbers/dist/types/u16.d.ts +85 -0
  1300. package/node_modules/@solana/codecs-numbers/dist/types/u16.d.ts.map +1 -0
  1301. package/node_modules/@solana/codecs-numbers/dist/types/u32.d.ts +85 -0
  1302. package/node_modules/@solana/codecs-numbers/dist/types/u32.d.ts.map +1 -0
  1303. package/node_modules/@solana/codecs-numbers/dist/types/u64.d.ts +88 -0
  1304. package/node_modules/@solana/codecs-numbers/dist/types/u64.d.ts.map +1 -0
  1305. package/node_modules/@solana/codecs-numbers/dist/types/u8.d.ts +71 -0
  1306. package/node_modules/@solana/codecs-numbers/dist/types/u8.d.ts.map +1 -0
  1307. package/node_modules/@solana/codecs-numbers/dist/types/utils.d.ts +18 -0
  1308. package/node_modules/@solana/codecs-numbers/dist/types/utils.d.ts.map +1 -0
  1309. package/node_modules/@solana/codecs-numbers/package.json +83 -0
  1310. package/node_modules/@solana/errors/LICENSE +20 -0
  1311. package/node_modules/@solana/errors/README.md +87 -0
  1312. package/node_modules/@solana/errors/bin/cli.mjs +7 -0
  1313. package/node_modules/@solana/errors/dist/cli.mjs +570 -0
  1314. package/node_modules/@solana/errors/dist/index.browser.cjs +1084 -0
  1315. package/node_modules/@solana/errors/dist/index.browser.cjs.map +1 -0
  1316. package/node_modules/@solana/errors/dist/index.browser.mjs +852 -0
  1317. package/node_modules/@solana/errors/dist/index.browser.mjs.map +1 -0
  1318. package/node_modules/@solana/errors/dist/index.native.mjs +852 -0
  1319. package/node_modules/@solana/errors/dist/index.native.mjs.map +1 -0
  1320. package/node_modules/@solana/errors/dist/index.node.cjs +1084 -0
  1321. package/node_modules/@solana/errors/dist/index.node.cjs.map +1 -0
  1322. package/node_modules/@solana/errors/dist/index.node.mjs +852 -0
  1323. package/node_modules/@solana/errors/dist/index.node.mjs.map +1 -0
  1324. package/node_modules/@solana/errors/dist/types/codes.d.ts +275 -0
  1325. package/node_modules/@solana/errors/dist/types/codes.d.ts.map +1 -0
  1326. package/node_modules/@solana/errors/dist/types/context.d.ts +398 -0
  1327. package/node_modules/@solana/errors/dist/types/context.d.ts.map +1 -0
  1328. package/node_modules/@solana/errors/dist/types/error.d.ts +75 -0
  1329. package/node_modules/@solana/errors/dist/types/error.d.ts.map +1 -0
  1330. package/node_modules/@solana/errors/dist/types/index.d.ts +72 -0
  1331. package/node_modules/@solana/errors/dist/types/index.d.ts.map +1 -0
  1332. package/node_modules/@solana/errors/dist/types/instruction-error.d.ts +9 -0
  1333. package/node_modules/@solana/errors/dist/types/instruction-error.d.ts.map +1 -0
  1334. package/node_modules/@solana/errors/dist/types/json-rpc-error.d.ts +51 -0
  1335. package/node_modules/@solana/errors/dist/types/json-rpc-error.d.ts.map +1 -0
  1336. package/node_modules/@solana/errors/dist/types/message-formatter.d.ts +4 -0
  1337. package/node_modules/@solana/errors/dist/types/message-formatter.d.ts.map +1 -0
  1338. package/node_modules/@solana/errors/dist/types/messages.d.ts +16 -0
  1339. package/node_modules/@solana/errors/dist/types/messages.d.ts.map +1 -0
  1340. package/node_modules/@solana/errors/dist/types/rpc-enum-errors.d.ts +31 -0
  1341. package/node_modules/@solana/errors/dist/types/rpc-enum-errors.d.ts.map +1 -0
  1342. package/node_modules/@solana/errors/dist/types/stack-trace.d.ts +2 -0
  1343. package/node_modules/@solana/errors/dist/types/stack-trace.d.ts.map +1 -0
  1344. package/node_modules/@solana/errors/dist/types/transaction-error.d.ts +5 -0
  1345. package/node_modules/@solana/errors/dist/types/transaction-error.d.ts.map +1 -0
  1346. package/node_modules/@solana/errors/node_modules/chalk/license +9 -0
  1347. package/node_modules/@solana/errors/node_modules/chalk/package.json +83 -0
  1348. package/node_modules/@solana/errors/node_modules/chalk/readme.md +297 -0
  1349. package/node_modules/@solana/errors/node_modules/chalk/source/index.d.ts +325 -0
  1350. package/node_modules/@solana/errors/node_modules/chalk/source/index.js +225 -0
  1351. package/node_modules/@solana/errors/node_modules/chalk/source/utilities.js +33 -0
  1352. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  1353. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  1354. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  1355. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  1356. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  1357. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/index.js +182 -0
  1358. package/node_modules/@solana/errors/node_modules/commander/LICENSE +22 -0
  1359. package/node_modules/@solana/errors/node_modules/commander/Readme.md +1149 -0
  1360. package/node_modules/@solana/errors/node_modules/commander/esm.mjs +16 -0
  1361. package/node_modules/@solana/errors/node_modules/commander/index.js +24 -0
  1362. package/node_modules/@solana/errors/node_modules/commander/lib/argument.js +149 -0
  1363. package/node_modules/@solana/errors/node_modules/commander/lib/command.js +2662 -0
  1364. package/node_modules/@solana/errors/node_modules/commander/lib/error.js +39 -0
  1365. package/node_modules/@solana/errors/node_modules/commander/lib/help.js +709 -0
  1366. package/node_modules/@solana/errors/node_modules/commander/lib/option.js +367 -0
  1367. package/node_modules/@solana/errors/node_modules/commander/lib/suggestSimilar.js +101 -0
  1368. package/node_modules/@solana/errors/node_modules/commander/package-support.json +16 -0
  1369. package/node_modules/@solana/errors/node_modules/commander/package.json +82 -0
  1370. package/node_modules/@solana/errors/node_modules/commander/typings/esm.d.mts +3 -0
  1371. package/node_modules/@solana/errors/node_modules/commander/typings/index.d.ts +1045 -0
  1372. package/node_modules/@solana/errors/package.json +84 -0
  1373. package/node_modules/@solana/web3.js/LICENSE +20 -0
  1374. package/node_modules/@solana/web3.js/README.md +145 -0
  1375. package/node_modules/@solana/web3.js/lib/index.browser.cjs.js +10562 -0
  1376. package/node_modules/@solana/web3.js/lib/index.browser.cjs.js.map +1 -0
  1377. package/node_modules/@solana/web3.js/lib/index.browser.esm.js +10461 -0
  1378. package/node_modules/@solana/web3.js/lib/index.browser.esm.js.map +1 -0
  1379. package/node_modules/@solana/web3.js/lib/index.cjs.js +11311 -0
  1380. package/node_modules/@solana/web3.js/lib/index.cjs.js.map +1 -0
  1381. package/node_modules/@solana/web3.js/lib/index.d.ts +4021 -0
  1382. package/node_modules/@solana/web3.js/lib/index.esm.js +11206 -0
  1383. package/node_modules/@solana/web3.js/lib/index.esm.js.map +1 -0
  1384. package/node_modules/@solana/web3.js/lib/index.iife.js +26083 -0
  1385. package/node_modules/@solana/web3.js/lib/index.iife.js.map +1 -0
  1386. package/node_modules/@solana/web3.js/lib/index.iife.min.js +20 -0
  1387. package/node_modules/@solana/web3.js/lib/index.iife.min.js.map +1 -0
  1388. package/node_modules/@solana/web3.js/lib/index.native.js +10562 -0
  1389. package/node_modules/@solana/web3.js/lib/index.native.js.map +1 -0
  1390. package/node_modules/@solana/web3.js/node_modules/superstruct/License.md +9 -0
  1391. package/node_modules/@solana/web3.js/node_modules/superstruct/Readme.md +230 -0
  1392. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/error.d.ts +33 -0
  1393. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/error.d.ts.map +1 -0
  1394. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.cjs +1084 -0
  1395. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.cjs.map +1 -0
  1396. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.d.ts +7 -0
  1397. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.d.ts.map +1 -0
  1398. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.mjs +1026 -0
  1399. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.mjs.map +1 -0
  1400. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/struct.d.ts +119 -0
  1401. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/struct.d.ts.map +1 -0
  1402. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/coercions.d.ts +29 -0
  1403. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/coercions.d.ts.map +1 -0
  1404. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/refinements.d.ts +38 -0
  1405. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/refinements.d.ts.map +1 -0
  1406. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/types.d.ts +142 -0
  1407. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/types.d.ts.map +1 -0
  1408. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/utilities.d.ts +66 -0
  1409. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/utilities.d.ts.map +1 -0
  1410. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/utils.d.ts +144 -0
  1411. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/utils.d.ts.map +1 -0
  1412. package/node_modules/@solana/web3.js/node_modules/superstruct/package.json +85 -0
  1413. package/node_modules/@solana/web3.js/package.json +75 -0
  1414. package/node_modules/@solana/web3.js/src/__forks__/browser/fetch-impl.ts +4 -0
  1415. package/node_modules/@solana/web3.js/src/__forks__/react-native/fetch-impl.ts +4 -0
  1416. package/node_modules/@solana/web3.js/src/account-data.ts +39 -0
  1417. package/node_modules/@solana/web3.js/src/account.ts +55 -0
  1418. package/node_modules/@solana/web3.js/src/blockhash.ts +4 -0
  1419. package/node_modules/@solana/web3.js/src/bpf-loader-deprecated.ts +5 -0
  1420. package/node_modules/@solana/web3.js/src/bpf-loader.ts +50 -0
  1421. package/node_modules/@solana/web3.js/src/connection.ts +6955 -0
  1422. package/node_modules/@solana/web3.js/src/epoch-schedule.ts +102 -0
  1423. package/node_modules/@solana/web3.js/src/errors.ts +133 -0
  1424. package/node_modules/@solana/web3.js/src/fee-calculator.ts +18 -0
  1425. package/node_modules/@solana/web3.js/src/fetch-impl.ts +16 -0
  1426. package/node_modules/@solana/web3.js/src/index.ts +24 -0
  1427. package/node_modules/@solana/web3.js/src/instruction.ts +58 -0
  1428. package/node_modules/@solana/web3.js/src/keypair.ts +102 -0
  1429. package/node_modules/@solana/web3.js/src/layout.ts +188 -0
  1430. package/node_modules/@solana/web3.js/src/loader.ts +267 -0
  1431. package/node_modules/@solana/web3.js/src/message/account-keys.ts +79 -0
  1432. package/node_modules/@solana/web3.js/src/message/compiled-keys.ts +165 -0
  1433. package/node_modules/@solana/web3.js/src/message/index.ts +47 -0
  1434. package/node_modules/@solana/web3.js/src/message/legacy.ts +323 -0
  1435. package/node_modules/@solana/web3.js/src/message/v0.ts +513 -0
  1436. package/node_modules/@solana/web3.js/src/message/versioned.ts +36 -0
  1437. package/node_modules/@solana/web3.js/src/nonce-account.ts +82 -0
  1438. package/node_modules/@solana/web3.js/src/programs/address-lookup-table/index.ts +438 -0
  1439. package/node_modules/@solana/web3.js/src/programs/address-lookup-table/state.ts +84 -0
  1440. package/node_modules/@solana/web3.js/src/programs/compute-budget.ts +281 -0
  1441. package/node_modules/@solana/web3.js/src/programs/ed25519.ts +157 -0
  1442. package/node_modules/@solana/web3.js/src/programs/index.ts +7 -0
  1443. package/node_modules/@solana/web3.js/src/programs/secp256k1.ts +228 -0
  1444. package/node_modules/@solana/web3.js/src/programs/stake.ts +952 -0
  1445. package/node_modules/@solana/web3.js/src/programs/system.ts +1048 -0
  1446. package/node_modules/@solana/web3.js/src/programs/vote.ts +586 -0
  1447. package/node_modules/@solana/web3.js/src/publickey.ts +259 -0
  1448. package/node_modules/@solana/web3.js/src/rpc-websocket.ts +75 -0
  1449. package/node_modules/@solana/web3.js/src/sysvar.ts +37 -0
  1450. package/node_modules/@solana/web3.js/src/timing.ts +23 -0
  1451. package/node_modules/@solana/web3.js/src/transaction/constants.ts +12 -0
  1452. package/node_modules/@solana/web3.js/src/transaction/expiry-custom-errors.ts +48 -0
  1453. package/node_modules/@solana/web3.js/src/transaction/index.ts +5 -0
  1454. package/node_modules/@solana/web3.js/src/transaction/legacy.ts +970 -0
  1455. package/node_modules/@solana/web3.js/src/transaction/message.ts +140 -0
  1456. package/node_modules/@solana/web3.js/src/transaction/versioned.ts +127 -0
  1457. package/node_modules/@solana/web3.js/src/utils/assert.ts +8 -0
  1458. package/node_modules/@solana/web3.js/src/utils/bigint.ts +24 -0
  1459. package/node_modules/@solana/web3.js/src/utils/borsh-schema.ts +38 -0
  1460. package/node_modules/@solana/web3.js/src/utils/cluster.ts +35 -0
  1461. package/node_modules/@solana/web3.js/src/utils/ed25519.ts +43 -0
  1462. package/node_modules/@solana/web3.js/src/utils/guarded-array-utils.ts +34 -0
  1463. package/node_modules/@solana/web3.js/src/utils/index.ts +5 -0
  1464. package/node_modules/@solana/web3.js/src/utils/makeWebsocketUrl.ts +26 -0
  1465. package/node_modules/@solana/web3.js/src/utils/promise-timeout.ts +14 -0
  1466. package/node_modules/@solana/web3.js/src/utils/secp256k1.ts +11 -0
  1467. package/node_modules/@solana/web3.js/src/utils/send-and-confirm-raw-transaction.ts +110 -0
  1468. package/node_modules/@solana/web3.js/src/utils/send-and-confirm-transaction.ts +106 -0
  1469. package/node_modules/@solana/web3.js/src/utils/shortvec-encoding.ts +28 -0
  1470. package/node_modules/@solana/web3.js/src/utils/sleep.ts +4 -0
  1471. package/node_modules/@solana/web3.js/src/utils/to-buffer.ts +11 -0
  1472. package/node_modules/@solana/web3.js/src/validator-info.ts +108 -0
  1473. package/node_modules/@solana/web3.js/src/vote-account.ts +236 -0
  1474. package/node_modules/@swc/helpers/LICENSE +201 -0
  1475. package/node_modules/@swc/helpers/_/_apply_decorated_descriptor/package.json +4 -0
  1476. package/node_modules/@swc/helpers/_/_apply_decs_2203_r/package.json +4 -0
  1477. package/node_modules/@swc/helpers/_/_array_like_to_array/package.json +4 -0
  1478. package/node_modules/@swc/helpers/_/_array_with_holes/package.json +4 -0
  1479. package/node_modules/@swc/helpers/_/_array_without_holes/package.json +4 -0
  1480. package/node_modules/@swc/helpers/_/_assert_this_initialized/package.json +4 -0
  1481. package/node_modules/@swc/helpers/_/_async_generator/package.json +4 -0
  1482. package/node_modules/@swc/helpers/_/_async_generator_delegate/package.json +4 -0
  1483. package/node_modules/@swc/helpers/_/_async_iterator/package.json +4 -0
  1484. package/node_modules/@swc/helpers/_/_async_to_generator/package.json +4 -0
  1485. package/node_modules/@swc/helpers/_/_await_async_generator/package.json +4 -0
  1486. package/node_modules/@swc/helpers/_/_await_value/package.json +4 -0
  1487. package/node_modules/@swc/helpers/_/_call_super/package.json +4 -0
  1488. package/node_modules/@swc/helpers/_/_check_private_redeclaration/package.json +4 -0
  1489. package/node_modules/@swc/helpers/_/_class_apply_descriptor_destructure/package.json +4 -0
  1490. package/node_modules/@swc/helpers/_/_class_apply_descriptor_get/package.json +4 -0
  1491. package/node_modules/@swc/helpers/_/_class_apply_descriptor_set/package.json +4 -0
  1492. package/node_modules/@swc/helpers/_/_class_apply_descriptor_update/package.json +4 -0
  1493. package/node_modules/@swc/helpers/_/_class_call_check/package.json +4 -0
  1494. package/node_modules/@swc/helpers/_/_class_check_private_static_access/package.json +4 -0
  1495. package/node_modules/@swc/helpers/_/_class_check_private_static_field_descriptor/package.json +4 -0
  1496. package/node_modules/@swc/helpers/_/_class_extract_field_descriptor/package.json +4 -0
  1497. package/node_modules/@swc/helpers/_/_class_name_tdz_error/package.json +4 -0
  1498. package/node_modules/@swc/helpers/_/_class_private_field_destructure/package.json +4 -0
  1499. package/node_modules/@swc/helpers/_/_class_private_field_get/package.json +4 -0
  1500. package/node_modules/@swc/helpers/_/_class_private_field_init/package.json +4 -0
  1501. package/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json +4 -0
  1502. package/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json +4 -0
  1503. package/node_modules/@swc/helpers/_/_class_private_field_set/package.json +4 -0
  1504. package/node_modules/@swc/helpers/_/_class_private_field_update/package.json +4 -0
  1505. package/node_modules/@swc/helpers/_/_class_private_method_get/package.json +4 -0
  1506. package/node_modules/@swc/helpers/_/_class_private_method_init/package.json +4 -0
  1507. package/node_modules/@swc/helpers/_/_class_private_method_set/package.json +4 -0
  1508. package/node_modules/@swc/helpers/_/_class_static_private_field_destructure/package.json +4 -0
  1509. package/node_modules/@swc/helpers/_/_class_static_private_field_spec_get/package.json +4 -0
  1510. package/node_modules/@swc/helpers/_/_class_static_private_field_spec_set/package.json +4 -0
  1511. package/node_modules/@swc/helpers/_/_class_static_private_field_update/package.json +4 -0
  1512. package/node_modules/@swc/helpers/_/_class_static_private_method_get/package.json +4 -0
  1513. package/node_modules/@swc/helpers/_/_construct/package.json +4 -0
  1514. package/node_modules/@swc/helpers/_/_create_class/package.json +4 -0
  1515. package/node_modules/@swc/helpers/_/_create_for_of_iterator_helper_loose/package.json +4 -0
  1516. package/node_modules/@swc/helpers/_/_create_super/package.json +4 -0
  1517. package/node_modules/@swc/helpers/_/_decorate/package.json +4 -0
  1518. package/node_modules/@swc/helpers/_/_defaults/package.json +4 -0
  1519. package/node_modules/@swc/helpers/_/_define_enumerable_properties/package.json +4 -0
  1520. package/node_modules/@swc/helpers/_/_define_property/package.json +4 -0
  1521. package/node_modules/@swc/helpers/_/_dispose/package.json +4 -0
  1522. package/node_modules/@swc/helpers/_/_export_star/package.json +4 -0
  1523. package/node_modules/@swc/helpers/_/_extends/package.json +4 -0
  1524. package/node_modules/@swc/helpers/_/_get/package.json +4 -0
  1525. package/node_modules/@swc/helpers/_/_get_prototype_of/package.json +4 -0
  1526. package/node_modules/@swc/helpers/_/_identity/package.json +4 -0
  1527. package/node_modules/@swc/helpers/_/_inherits/package.json +4 -0
  1528. package/node_modules/@swc/helpers/_/_inherits_loose/package.json +4 -0
  1529. package/node_modules/@swc/helpers/_/_initializer_define_property/package.json +4 -0
  1530. package/node_modules/@swc/helpers/_/_initializer_warning_helper/package.json +4 -0
  1531. package/node_modules/@swc/helpers/_/_instanceof/package.json +4 -0
  1532. package/node_modules/@swc/helpers/_/_interop_require_default/package.json +4 -0
  1533. package/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json +4 -0
  1534. package/node_modules/@swc/helpers/_/_is_native_function/package.json +4 -0
  1535. package/node_modules/@swc/helpers/_/_is_native_reflect_construct/package.json +4 -0
  1536. package/node_modules/@swc/helpers/_/_iterable_to_array/package.json +4 -0
  1537. package/node_modules/@swc/helpers/_/_iterable_to_array_limit/package.json +4 -0
  1538. package/node_modules/@swc/helpers/_/_iterable_to_array_limit_loose/package.json +4 -0
  1539. package/node_modules/@swc/helpers/_/_jsx/package.json +4 -0
  1540. package/node_modules/@swc/helpers/_/_new_arrow_check/package.json +4 -0
  1541. package/node_modules/@swc/helpers/_/_non_iterable_rest/package.json +4 -0
  1542. package/node_modules/@swc/helpers/_/_non_iterable_spread/package.json +4 -0
  1543. package/node_modules/@swc/helpers/_/_object_destructuring_empty/package.json +4 -0
  1544. package/node_modules/@swc/helpers/_/_object_spread/package.json +4 -0
  1545. package/node_modules/@swc/helpers/_/_object_spread_props/package.json +4 -0
  1546. package/node_modules/@swc/helpers/_/_object_without_properties/package.json +4 -0
  1547. package/node_modules/@swc/helpers/_/_object_without_properties_loose/package.json +4 -0
  1548. package/node_modules/@swc/helpers/_/_overload_yield/package.json +4 -0
  1549. package/node_modules/@swc/helpers/_/_possible_constructor_return/package.json +4 -0
  1550. package/node_modules/@swc/helpers/_/_read_only_error/package.json +4 -0
  1551. package/node_modules/@swc/helpers/_/_set/package.json +4 -0
  1552. package/node_modules/@swc/helpers/_/_set_prototype_of/package.json +4 -0
  1553. package/node_modules/@swc/helpers/_/_skip_first_generator_next/package.json +4 -0
  1554. package/node_modules/@swc/helpers/_/_sliced_to_array/package.json +4 -0
  1555. package/node_modules/@swc/helpers/_/_sliced_to_array_loose/package.json +4 -0
  1556. package/node_modules/@swc/helpers/_/_super_prop_base/package.json +4 -0
  1557. package/node_modules/@swc/helpers/_/_tagged_template_literal/package.json +4 -0
  1558. package/node_modules/@swc/helpers/_/_tagged_template_literal_loose/package.json +4 -0
  1559. package/node_modules/@swc/helpers/_/_throw/package.json +4 -0
  1560. package/node_modules/@swc/helpers/_/_to_array/package.json +4 -0
  1561. package/node_modules/@swc/helpers/_/_to_consumable_array/package.json +4 -0
  1562. package/node_modules/@swc/helpers/_/_to_primitive/package.json +4 -0
  1563. package/node_modules/@swc/helpers/_/_to_property_key/package.json +4 -0
  1564. package/node_modules/@swc/helpers/_/_ts_add_disposable_resource/package.json +4 -0
  1565. package/node_modules/@swc/helpers/_/_ts_decorate/package.json +4 -0
  1566. package/node_modules/@swc/helpers/_/_ts_dispose_resources/package.json +4 -0
  1567. package/node_modules/@swc/helpers/_/_ts_generator/package.json +4 -0
  1568. package/node_modules/@swc/helpers/_/_ts_metadata/package.json +4 -0
  1569. package/node_modules/@swc/helpers/_/_ts_param/package.json +4 -0
  1570. package/node_modules/@swc/helpers/_/_ts_values/package.json +4 -0
  1571. package/node_modules/@swc/helpers/_/_type_of/package.json +4 -0
  1572. package/node_modules/@swc/helpers/_/_unsupported_iterable_to_array/package.json +4 -0
  1573. package/node_modules/@swc/helpers/_/_update/package.json +4 -0
  1574. package/node_modules/@swc/helpers/_/_using/package.json +4 -0
  1575. package/node_modules/@swc/helpers/_/_using_ctx/package.json +4 -0
  1576. package/node_modules/@swc/helpers/_/_wrap_async_generator/package.json +4 -0
  1577. package/node_modules/@swc/helpers/_/_wrap_native_super/package.json +4 -0
  1578. package/node_modules/@swc/helpers/_/_write_only_error/package.json +4 -0
  1579. package/node_modules/@swc/helpers/_/index/package.json +4 -0
  1580. package/node_modules/@swc/helpers/cjs/_apply_decorated_descriptor.cjs +35 -0
  1581. package/node_modules/@swc/helpers/cjs/_apply_decs_2203_r.cjs +550 -0
  1582. package/node_modules/@swc/helpers/cjs/_array_like_to_array.cjs +10 -0
  1583. package/node_modules/@swc/helpers/cjs/_array_with_holes.cjs +6 -0
  1584. package/node_modules/@swc/helpers/cjs/_array_without_holes.cjs +8 -0
  1585. package/node_modules/@swc/helpers/cjs/_assert_this_initialized.cjs +8 -0
  1586. package/node_modules/@swc/helpers/cjs/_async_generator.cjs +76 -0
  1587. package/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs +53 -0
  1588. package/node_modules/@swc/helpers/cjs/_async_iterator.cjs +46 -0
  1589. package/node_modules/@swc/helpers/cjs/_async_to_generator.cjs +33 -0
  1590. package/node_modules/@swc/helpers/cjs/_await_async_generator.cjs +8 -0
  1591. package/node_modules/@swc/helpers/cjs/_await_value.cjs +6 -0
  1592. package/node_modules/@swc/helpers/cjs/_call_super.cjs +19 -0
  1593. package/node_modules/@swc/helpers/cjs/_check_private_redeclaration.cjs +8 -0
  1594. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_destructure.cjs +25 -0
  1595. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_get.cjs +8 -0
  1596. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_set.cjs +15 -0
  1597. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_update.cjs +30 -0
  1598. package/node_modules/@swc/helpers/cjs/_class_call_check.cjs +6 -0
  1599. package/node_modules/@swc/helpers/cjs/_class_check_private_static_access.cjs +6 -0
  1600. package/node_modules/@swc/helpers/cjs/_class_check_private_static_field_descriptor.cjs +8 -0
  1601. package/node_modules/@swc/helpers/cjs/_class_extract_field_descriptor.cjs +8 -0
  1602. package/node_modules/@swc/helpers/cjs/_class_name_tdz_error.cjs +6 -0
  1603. package/node_modules/@swc/helpers/cjs/_class_private_field_destructure.cjs +10 -0
  1604. package/node_modules/@swc/helpers/cjs/_class_private_field_get.cjs +10 -0
  1605. package/node_modules/@swc/helpers/cjs/_class_private_field_init.cjs +9 -0
  1606. package/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs +10 -0
  1607. package/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs +8 -0
  1608. package/node_modules/@swc/helpers/cjs/_class_private_field_set.cjs +11 -0
  1609. package/node_modules/@swc/helpers/cjs/_class_private_field_update.cjs +10 -0
  1610. package/node_modules/@swc/helpers/cjs/_class_private_method_get.cjs +8 -0
  1611. package/node_modules/@swc/helpers/cjs/_class_private_method_init.cjs +9 -0
  1612. package/node_modules/@swc/helpers/cjs/_class_private_method_set.cjs +6 -0
  1613. package/node_modules/@swc/helpers/cjs/_class_static_private_field_destructure.cjs +13 -0
  1614. package/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_get.cjs +13 -0
  1615. package/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_set.cjs +14 -0
  1616. package/node_modules/@swc/helpers/cjs/_class_static_private_field_update.cjs +13 -0
  1617. package/node_modules/@swc/helpers/cjs/_class_static_private_method_get.cjs +10 -0
  1618. package/node_modules/@swc/helpers/cjs/_construct.cjs +22 -0
  1619. package/node_modules/@swc/helpers/cjs/_create_class.cjs +20 -0
  1620. package/node_modules/@swc/helpers/cjs/_create_for_of_iterator_helper_loose.cjs +24 -0
  1621. package/node_modules/@swc/helpers/cjs/_create_super.cjs +23 -0
  1622. package/node_modules/@swc/helpers/cjs/_decorate.cjs +270 -0
  1623. package/node_modules/@swc/helpers/cjs/_defaults.cjs +15 -0
  1624. package/node_modules/@swc/helpers/cjs/_define_enumerable_properties.cjs +26 -0
  1625. package/node_modules/@swc/helpers/cjs/_define_property.cjs +10 -0
  1626. package/node_modules/@swc/helpers/cjs/_dispose.cjs +43 -0
  1627. package/node_modules/@swc/helpers/cjs/_export_star.cjs +17 -0
  1628. package/node_modules/@swc/helpers/cjs/_extends.cjs +15 -0
  1629. package/node_modules/@swc/helpers/cjs/_get.cjs +23 -0
  1630. package/node_modules/@swc/helpers/cjs/_get_prototype_of.cjs +10 -0
  1631. package/node_modules/@swc/helpers/cjs/_identity.cjs +7 -0
  1632. package/node_modules/@swc/helpers/cjs/_inherits.cjs +14 -0
  1633. package/node_modules/@swc/helpers/cjs/_inherits_loose.cjs +8 -0
  1634. package/node_modules/@swc/helpers/cjs/_initializer_define_property.cjs +13 -0
  1635. package/node_modules/@swc/helpers/cjs/_initializer_warning_helper.cjs +11 -0
  1636. package/node_modules/@swc/helpers/cjs/_instanceof.cjs +8 -0
  1637. package/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  1638. package/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  1639. package/node_modules/@swc/helpers/cjs/_is_native_function.cjs +6 -0
  1640. package/node_modules/@swc/helpers/cjs/_is_native_reflect_construct.cjs +18 -0
  1641. package/node_modules/@swc/helpers/cjs/_iterable_to_array.cjs +8 -0
  1642. package/node_modules/@swc/helpers/cjs/_iterable_to_array_limit.cjs +31 -0
  1643. package/node_modules/@swc/helpers/cjs/_iterable_to_array_limit_loose.cjs +17 -0
  1644. package/node_modules/@swc/helpers/cjs/_jsx.cjs +28 -0
  1645. package/node_modules/@swc/helpers/cjs/_new_arrow_check.cjs +6 -0
  1646. package/node_modules/@swc/helpers/cjs/_non_iterable_rest.cjs +6 -0
  1647. package/node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs +6 -0
  1648. package/node_modules/@swc/helpers/cjs/_object_destructuring_empty.cjs +8 -0
  1649. package/node_modules/@swc/helpers/cjs/_object_spread.cjs +25 -0
  1650. package/node_modules/@swc/helpers/cjs/_object_spread_props.cjs +30 -0
  1651. package/node_modules/@swc/helpers/cjs/_object_without_properties.cjs +23 -0
  1652. package/node_modules/@swc/helpers/cjs/_object_without_properties_loose.cjs +18 -0
  1653. package/node_modules/@swc/helpers/cjs/_overload_yield.cjs +8 -0
  1654. package/node_modules/@swc/helpers/cjs/_possible_constructor_return.cjs +11 -0
  1655. package/node_modules/@swc/helpers/cjs/_read_only_error.cjs +6 -0
  1656. package/node_modules/@swc/helpers/cjs/_set.cjs +44 -0
  1657. package/node_modules/@swc/helpers/cjs/_set_prototype_of.cjs +12 -0
  1658. package/node_modules/@swc/helpers/cjs/_skip_first_generator_next.cjs +11 -0
  1659. package/node_modules/@swc/helpers/cjs/_sliced_to_array.cjs +11 -0
  1660. package/node_modules/@swc/helpers/cjs/_sliced_to_array_loose.cjs +11 -0
  1661. package/node_modules/@swc/helpers/cjs/_super_prop_base.cjs +13 -0
  1662. package/node_modules/@swc/helpers/cjs/_tagged_template_literal.cjs +8 -0
  1663. package/node_modules/@swc/helpers/cjs/_tagged_template_literal_loose.cjs +10 -0
  1664. package/node_modules/@swc/helpers/cjs/_throw.cjs +6 -0
  1665. package/node_modules/@swc/helpers/cjs/_to_array.cjs +11 -0
  1666. package/node_modules/@swc/helpers/cjs/_to_consumable_array.cjs +11 -0
  1667. package/node_modules/@swc/helpers/cjs/_to_primitive.cjs +18 -0
  1668. package/node_modules/@swc/helpers/cjs/_to_property_key.cjs +11 -0
  1669. package/node_modules/@swc/helpers/cjs/_ts_add_disposable_resource.cjs +3 -0
  1670. package/node_modules/@swc/helpers/cjs/_ts_decorate.cjs +3 -0
  1671. package/node_modules/@swc/helpers/cjs/_ts_dispose_resources.cjs +3 -0
  1672. package/node_modules/@swc/helpers/cjs/_ts_generator.cjs +3 -0
  1673. package/node_modules/@swc/helpers/cjs/_ts_metadata.cjs +3 -0
  1674. package/node_modules/@swc/helpers/cjs/_ts_param.cjs +3 -0
  1675. package/node_modules/@swc/helpers/cjs/_ts_values.cjs +3 -0
  1676. package/node_modules/@swc/helpers/cjs/_type_of.cjs +8 -0
  1677. package/node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs +15 -0
  1678. package/node_modules/@swc/helpers/cjs/_update.cjs +16 -0
  1679. package/node_modules/@swc/helpers/cjs/_using.cjs +24 -0
  1680. package/node_modules/@swc/helpers/cjs/_using_ctx.cjs +75 -0
  1681. package/node_modules/@swc/helpers/cjs/_wrap_async_generator.cjs +10 -0
  1682. package/node_modules/@swc/helpers/cjs/_wrap_native_super.cjs +28 -0
  1683. package/node_modules/@swc/helpers/cjs/_write_only_error.cjs +6 -0
  1684. package/node_modules/@swc/helpers/cjs/index.cjs +427 -0
  1685. package/node_modules/@swc/helpers/esm/_apply_decorated_descriptor.js +33 -0
  1686. package/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js +548 -0
  1687. package/node_modules/@swc/helpers/esm/_array_like_to_array.js +8 -0
  1688. package/node_modules/@swc/helpers/esm/_array_with_holes.js +4 -0
  1689. package/node_modules/@swc/helpers/esm/_array_without_holes.js +6 -0
  1690. package/node_modules/@swc/helpers/esm/_assert_this_initialized.js +6 -0
  1691. package/node_modules/@swc/helpers/esm/_async_generator.js +74 -0
  1692. package/node_modules/@swc/helpers/esm/_async_generator_delegate.js +51 -0
  1693. package/node_modules/@swc/helpers/esm/_async_iterator.js +44 -0
  1694. package/node_modules/@swc/helpers/esm/_async_to_generator.js +31 -0
  1695. package/node_modules/@swc/helpers/esm/_await_async_generator.js +6 -0
  1696. package/node_modules/@swc/helpers/esm/_await_value.js +4 -0
  1697. package/node_modules/@swc/helpers/esm/_call_super.js +17 -0
  1698. package/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +6 -0
  1699. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_destructure.js +23 -0
  1700. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +6 -0
  1701. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +13 -0
  1702. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_update.js +28 -0
  1703. package/node_modules/@swc/helpers/esm/_class_call_check.js +4 -0
  1704. package/node_modules/@swc/helpers/esm/_class_check_private_static_access.js +4 -0
  1705. package/node_modules/@swc/helpers/esm/_class_check_private_static_field_descriptor.js +6 -0
  1706. package/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +6 -0
  1707. package/node_modules/@swc/helpers/esm/_class_name_tdz_error.js +4 -0
  1708. package/node_modules/@swc/helpers/esm/_class_private_field_destructure.js +8 -0
  1709. package/node_modules/@swc/helpers/esm/_class_private_field_get.js +8 -0
  1710. package/node_modules/@swc/helpers/esm/_class_private_field_init.js +7 -0
  1711. package/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js +8 -0
  1712. package/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js +6 -0
  1713. package/node_modules/@swc/helpers/esm/_class_private_field_set.js +9 -0
  1714. package/node_modules/@swc/helpers/esm/_class_private_field_update.js +8 -0
  1715. package/node_modules/@swc/helpers/esm/_class_private_method_get.js +6 -0
  1716. package/node_modules/@swc/helpers/esm/_class_private_method_init.js +7 -0
  1717. package/node_modules/@swc/helpers/esm/_class_private_method_set.js +4 -0
  1718. package/node_modules/@swc/helpers/esm/_class_static_private_field_destructure.js +11 -0
  1719. package/node_modules/@swc/helpers/esm/_class_static_private_field_spec_get.js +11 -0
  1720. package/node_modules/@swc/helpers/esm/_class_static_private_field_spec_set.js +12 -0
  1721. package/node_modules/@swc/helpers/esm/_class_static_private_field_update.js +11 -0
  1722. package/node_modules/@swc/helpers/esm/_class_static_private_method_get.js +8 -0
  1723. package/node_modules/@swc/helpers/esm/_construct.js +20 -0
  1724. package/node_modules/@swc/helpers/esm/_create_class.js +18 -0
  1725. package/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js +22 -0
  1726. package/node_modules/@swc/helpers/esm/_create_super.js +21 -0
  1727. package/node_modules/@swc/helpers/esm/_decorate.js +268 -0
  1728. package/node_modules/@swc/helpers/esm/_defaults.js +13 -0
  1729. package/node_modules/@swc/helpers/esm/_define_enumerable_properties.js +24 -0
  1730. package/node_modules/@swc/helpers/esm/_define_property.js +8 -0
  1731. package/node_modules/@swc/helpers/esm/_dispose.js +41 -0
  1732. package/node_modules/@swc/helpers/esm/_export_star.js +15 -0
  1733. package/node_modules/@swc/helpers/esm/_extends.js +13 -0
  1734. package/node_modules/@swc/helpers/esm/_get.js +21 -0
  1735. package/node_modules/@swc/helpers/esm/_get_prototype_of.js +8 -0
  1736. package/node_modules/@swc/helpers/esm/_identity.js +5 -0
  1737. package/node_modules/@swc/helpers/esm/_inherits.js +12 -0
  1738. package/node_modules/@swc/helpers/esm/_inherits_loose.js +6 -0
  1739. package/node_modules/@swc/helpers/esm/_initializer_define_property.js +11 -0
  1740. package/node_modules/@swc/helpers/esm/_initializer_warning_helper.js +9 -0
  1741. package/node_modules/@swc/helpers/esm/_instanceof.js +6 -0
  1742. package/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
  1743. package/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
  1744. package/node_modules/@swc/helpers/esm/_is_native_function.js +4 -0
  1745. package/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js +16 -0
  1746. package/node_modules/@swc/helpers/esm/_iterable_to_array.js +6 -0
  1747. package/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js +29 -0
  1748. package/node_modules/@swc/helpers/esm/_iterable_to_array_limit_loose.js +15 -0
  1749. package/node_modules/@swc/helpers/esm/_jsx.js +26 -0
  1750. package/node_modules/@swc/helpers/esm/_new_arrow_check.js +4 -0
  1751. package/node_modules/@swc/helpers/esm/_non_iterable_rest.js +4 -0
  1752. package/node_modules/@swc/helpers/esm/_non_iterable_spread.js +4 -0
  1753. package/node_modules/@swc/helpers/esm/_object_destructuring_empty.js +6 -0
  1754. package/node_modules/@swc/helpers/esm/_object_spread.js +23 -0
  1755. package/node_modules/@swc/helpers/esm/_object_spread_props.js +28 -0
  1756. package/node_modules/@swc/helpers/esm/_object_without_properties.js +21 -0
  1757. package/node_modules/@swc/helpers/esm/_object_without_properties_loose.js +16 -0
  1758. package/node_modules/@swc/helpers/esm/_overload_yield.js +6 -0
  1759. package/node_modules/@swc/helpers/esm/_possible_constructor_return.js +9 -0
  1760. package/node_modules/@swc/helpers/esm/_read_only_error.js +4 -0
  1761. package/node_modules/@swc/helpers/esm/_set.js +42 -0
  1762. package/node_modules/@swc/helpers/esm/_set_prototype_of.js +10 -0
  1763. package/node_modules/@swc/helpers/esm/_skip_first_generator_next.js +9 -0
  1764. package/node_modules/@swc/helpers/esm/_sliced_to_array.js +9 -0
  1765. package/node_modules/@swc/helpers/esm/_sliced_to_array_loose.js +9 -0
  1766. package/node_modules/@swc/helpers/esm/_super_prop_base.js +11 -0
  1767. package/node_modules/@swc/helpers/esm/_tagged_template_literal.js +6 -0
  1768. package/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js +8 -0
  1769. package/node_modules/@swc/helpers/esm/_throw.js +4 -0
  1770. package/node_modules/@swc/helpers/esm/_to_array.js +9 -0
  1771. package/node_modules/@swc/helpers/esm/_to_consumable_array.js +9 -0
  1772. package/node_modules/@swc/helpers/esm/_to_primitive.js +16 -0
  1773. package/node_modules/@swc/helpers/esm/_to_property_key.js +9 -0
  1774. package/node_modules/@swc/helpers/esm/_ts_add_disposable_resource.js +1 -0
  1775. package/node_modules/@swc/helpers/esm/_ts_decorate.js +1 -0
  1776. package/node_modules/@swc/helpers/esm/_ts_dispose_resources.js +1 -0
  1777. package/node_modules/@swc/helpers/esm/_ts_generator.js +1 -0
  1778. package/node_modules/@swc/helpers/esm/_ts_metadata.js +1 -0
  1779. package/node_modules/@swc/helpers/esm/_ts_param.js +1 -0
  1780. package/node_modules/@swc/helpers/esm/_ts_values.js +1 -0
  1781. package/node_modules/@swc/helpers/esm/_type_of.js +6 -0
  1782. package/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js +13 -0
  1783. package/node_modules/@swc/helpers/esm/_update.js +14 -0
  1784. package/node_modules/@swc/helpers/esm/_using.js +22 -0
  1785. package/node_modules/@swc/helpers/esm/_using_ctx.js +73 -0
  1786. package/node_modules/@swc/helpers/esm/_wrap_async_generator.js +8 -0
  1787. package/node_modules/@swc/helpers/esm/_wrap_native_super.js +26 -0
  1788. package/node_modules/@swc/helpers/esm/_write_only_error.js +4 -0
  1789. package/node_modules/@swc/helpers/esm/index.js +107 -0
  1790. package/node_modules/@swc/helpers/package.json +689 -0
  1791. package/node_modules/@swc/helpers/scripts/ast_grep.js +229 -0
  1792. package/node_modules/@swc/helpers/scripts/build.js +133 -0
  1793. package/node_modules/@swc/helpers/scripts/errors.js +1 -0
  1794. package/node_modules/@swc/helpers/scripts/utils.js +3 -0
  1795. package/node_modules/@swc/helpers/src/_apply_decorated_descriptor.mjs +1 -0
  1796. package/node_modules/@swc/helpers/src/_apply_decs_2203_r.mjs +1 -0
  1797. package/node_modules/@swc/helpers/src/_array_like_to_array.mjs +1 -0
  1798. package/node_modules/@swc/helpers/src/_array_with_holes.mjs +1 -0
  1799. package/node_modules/@swc/helpers/src/_array_without_holes.mjs +1 -0
  1800. package/node_modules/@swc/helpers/src/_assert_this_initialized.mjs +1 -0
  1801. package/node_modules/@swc/helpers/src/_async_generator.mjs +1 -0
  1802. package/node_modules/@swc/helpers/src/_async_generator_delegate.mjs +1 -0
  1803. package/node_modules/@swc/helpers/src/_async_iterator.mjs +1 -0
  1804. package/node_modules/@swc/helpers/src/_async_to_generator.mjs +1 -0
  1805. package/node_modules/@swc/helpers/src/_await_async_generator.mjs +1 -0
  1806. package/node_modules/@swc/helpers/src/_await_value.mjs +1 -0
  1807. package/node_modules/@swc/helpers/src/_call_super.mjs +1 -0
  1808. package/node_modules/@swc/helpers/src/_check_private_redeclaration.mjs +1 -0
  1809. package/node_modules/@swc/helpers/src/_class_apply_descriptor_destructure.mjs +1 -0
  1810. package/node_modules/@swc/helpers/src/_class_apply_descriptor_get.mjs +1 -0
  1811. package/node_modules/@swc/helpers/src/_class_apply_descriptor_set.mjs +1 -0
  1812. package/node_modules/@swc/helpers/src/_class_apply_descriptor_update.mjs +1 -0
  1813. package/node_modules/@swc/helpers/src/_class_call_check.mjs +1 -0
  1814. package/node_modules/@swc/helpers/src/_class_check_private_static_access.mjs +1 -0
  1815. package/node_modules/@swc/helpers/src/_class_check_private_static_field_descriptor.mjs +1 -0
  1816. package/node_modules/@swc/helpers/src/_class_extract_field_descriptor.mjs +1 -0
  1817. package/node_modules/@swc/helpers/src/_class_name_tdz_error.mjs +1 -0
  1818. package/node_modules/@swc/helpers/src/_class_private_field_destructure.mjs +1 -0
  1819. package/node_modules/@swc/helpers/src/_class_private_field_get.mjs +1 -0
  1820. package/node_modules/@swc/helpers/src/_class_private_field_init.mjs +1 -0
  1821. package/node_modules/@swc/helpers/src/_class_private_field_loose_base.mjs +1 -0
  1822. package/node_modules/@swc/helpers/src/_class_private_field_loose_key.mjs +1 -0
  1823. package/node_modules/@swc/helpers/src/_class_private_field_set.mjs +1 -0
  1824. package/node_modules/@swc/helpers/src/_class_private_field_update.mjs +1 -0
  1825. package/node_modules/@swc/helpers/src/_class_private_method_get.mjs +1 -0
  1826. package/node_modules/@swc/helpers/src/_class_private_method_init.mjs +1 -0
  1827. package/node_modules/@swc/helpers/src/_class_private_method_set.mjs +1 -0
  1828. package/node_modules/@swc/helpers/src/_class_static_private_field_destructure.mjs +1 -0
  1829. package/node_modules/@swc/helpers/src/_class_static_private_field_spec_get.mjs +1 -0
  1830. package/node_modules/@swc/helpers/src/_class_static_private_field_spec_set.mjs +1 -0
  1831. package/node_modules/@swc/helpers/src/_class_static_private_field_update.mjs +1 -0
  1832. package/node_modules/@swc/helpers/src/_class_static_private_method_get.mjs +1 -0
  1833. package/node_modules/@swc/helpers/src/_construct.mjs +1 -0
  1834. package/node_modules/@swc/helpers/src/_create_class.mjs +1 -0
  1835. package/node_modules/@swc/helpers/src/_create_for_of_iterator_helper_loose.mjs +1 -0
  1836. package/node_modules/@swc/helpers/src/_create_super.mjs +1 -0
  1837. package/node_modules/@swc/helpers/src/_decorate.mjs +1 -0
  1838. package/node_modules/@swc/helpers/src/_defaults.mjs +1 -0
  1839. package/node_modules/@swc/helpers/src/_define_enumerable_properties.mjs +1 -0
  1840. package/node_modules/@swc/helpers/src/_define_property.mjs +1 -0
  1841. package/node_modules/@swc/helpers/src/_dispose.mjs +1 -0
  1842. package/node_modules/@swc/helpers/src/_export_star.mjs +1 -0
  1843. package/node_modules/@swc/helpers/src/_extends.mjs +1 -0
  1844. package/node_modules/@swc/helpers/src/_get.mjs +1 -0
  1845. package/node_modules/@swc/helpers/src/_get_prototype_of.mjs +1 -0
  1846. package/node_modules/@swc/helpers/src/_identity.mjs +1 -0
  1847. package/node_modules/@swc/helpers/src/_inherits.mjs +1 -0
  1848. package/node_modules/@swc/helpers/src/_inherits_loose.mjs +1 -0
  1849. package/node_modules/@swc/helpers/src/_initializer_define_property.mjs +1 -0
  1850. package/node_modules/@swc/helpers/src/_initializer_warning_helper.mjs +1 -0
  1851. package/node_modules/@swc/helpers/src/_instanceof.mjs +1 -0
  1852. package/node_modules/@swc/helpers/src/_interop_require_default.mjs +1 -0
  1853. package/node_modules/@swc/helpers/src/_interop_require_wildcard.mjs +1 -0
  1854. package/node_modules/@swc/helpers/src/_is_native_function.mjs +1 -0
  1855. package/node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs +1 -0
  1856. package/node_modules/@swc/helpers/src/_iterable_to_array.mjs +1 -0
  1857. package/node_modules/@swc/helpers/src/_iterable_to_array_limit.mjs +1 -0
  1858. package/node_modules/@swc/helpers/src/_iterable_to_array_limit_loose.mjs +1 -0
  1859. package/node_modules/@swc/helpers/src/_jsx.mjs +1 -0
  1860. package/node_modules/@swc/helpers/src/_new_arrow_check.mjs +1 -0
  1861. package/node_modules/@swc/helpers/src/_non_iterable_rest.mjs +1 -0
  1862. package/node_modules/@swc/helpers/src/_non_iterable_spread.mjs +1 -0
  1863. package/node_modules/@swc/helpers/src/_object_destructuring_empty.mjs +1 -0
  1864. package/node_modules/@swc/helpers/src/_object_spread.mjs +1 -0
  1865. package/node_modules/@swc/helpers/src/_object_spread_props.mjs +1 -0
  1866. package/node_modules/@swc/helpers/src/_object_without_properties.mjs +1 -0
  1867. package/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs +1 -0
  1868. package/node_modules/@swc/helpers/src/_overload_yield.mjs +1 -0
  1869. package/node_modules/@swc/helpers/src/_possible_constructor_return.mjs +1 -0
  1870. package/node_modules/@swc/helpers/src/_read_only_error.mjs +1 -0
  1871. package/node_modules/@swc/helpers/src/_set.mjs +1 -0
  1872. package/node_modules/@swc/helpers/src/_set_prototype_of.mjs +1 -0
  1873. package/node_modules/@swc/helpers/src/_skip_first_generator_next.mjs +1 -0
  1874. package/node_modules/@swc/helpers/src/_sliced_to_array.mjs +1 -0
  1875. package/node_modules/@swc/helpers/src/_sliced_to_array_loose.mjs +1 -0
  1876. package/node_modules/@swc/helpers/src/_super_prop_base.mjs +1 -0
  1877. package/node_modules/@swc/helpers/src/_tagged_template_literal.mjs +1 -0
  1878. package/node_modules/@swc/helpers/src/_tagged_template_literal_loose.mjs +1 -0
  1879. package/node_modules/@swc/helpers/src/_throw.mjs +1 -0
  1880. package/node_modules/@swc/helpers/src/_to_array.mjs +1 -0
  1881. package/node_modules/@swc/helpers/src/_to_consumable_array.mjs +1 -0
  1882. package/node_modules/@swc/helpers/src/_to_primitive.mjs +1 -0
  1883. package/node_modules/@swc/helpers/src/_to_property_key.mjs +1 -0
  1884. package/node_modules/@swc/helpers/src/_ts_add_disposable_resource.mjs +1 -0
  1885. package/node_modules/@swc/helpers/src/_ts_decorate.mjs +1 -0
  1886. package/node_modules/@swc/helpers/src/_ts_dispose_resources.mjs +1 -0
  1887. package/node_modules/@swc/helpers/src/_ts_generator.mjs +1 -0
  1888. package/node_modules/@swc/helpers/src/_ts_metadata.mjs +1 -0
  1889. package/node_modules/@swc/helpers/src/_ts_param.mjs +1 -0
  1890. package/node_modules/@swc/helpers/src/_ts_values.mjs +1 -0
  1891. package/node_modules/@swc/helpers/src/_type_of.mjs +1 -0
  1892. package/node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs +1 -0
  1893. package/node_modules/@swc/helpers/src/_update.mjs +1 -0
  1894. package/node_modules/@swc/helpers/src/_using.mjs +1 -0
  1895. package/node_modules/@swc/helpers/src/_using_ctx.mjs +1 -0
  1896. package/node_modules/@swc/helpers/src/_wrap_async_generator.mjs +1 -0
  1897. package/node_modules/@swc/helpers/src/_wrap_native_super.mjs +1 -0
  1898. package/node_modules/@swc/helpers/src/_write_only_error.mjs +1 -0
  1899. package/node_modules/@swc/helpers/src/index.mjs +1 -0
  1900. package/node_modules/@types/connect/LICENSE +21 -0
  1901. package/node_modules/@types/connect/README.md +15 -0
  1902. package/node_modules/@types/connect/index.d.ts +91 -0
  1903. package/node_modules/@types/connect/package.json +32 -0
  1904. package/node_modules/@types/node/LICENSE +21 -0
  1905. package/node_modules/@types/node/README.md +15 -0
  1906. package/node_modules/@types/node/assert/strict.d.ts +8 -0
  1907. package/node_modules/@types/node/assert.d.ts +1054 -0
  1908. package/node_modules/@types/node/async_hooks.d.ts +603 -0
  1909. package/node_modules/@types/node/buffer.buffer.d.ts +463 -0
  1910. package/node_modules/@types/node/buffer.d.ts +1926 -0
  1911. package/node_modules/@types/node/child_process.d.ts +1549 -0
  1912. package/node_modules/@types/node/cluster.d.ts +579 -0
  1913. package/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
  1914. package/node_modules/@types/node/compatibility/index.d.ts +9 -0
  1915. package/node_modules/@types/node/compatibility/indexable.d.ts +23 -0
  1916. package/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  1917. package/node_modules/@types/node/console.d.ts +452 -0
  1918. package/node_modules/@types/node/constants.d.ts +21 -0
  1919. package/node_modules/@types/node/crypto.d.ts +4509 -0
  1920. package/node_modules/@types/node/dgram.d.ts +599 -0
  1921. package/node_modules/@types/node/diagnostics_channel.d.ts +573 -0
  1922. package/node_modules/@types/node/dns/promises.d.ts +476 -0
  1923. package/node_modules/@types/node/dns.d.ts +865 -0
  1924. package/node_modules/@types/node/dom-events.d.ts +124 -0
  1925. package/node_modules/@types/node/domain.d.ts +170 -0
  1926. package/node_modules/@types/node/events.d.ts +931 -0
  1927. package/node_modules/@types/node/fs/promises.d.ts +1272 -0
  1928. package/node_modules/@types/node/fs.d.ts +4437 -0
  1929. package/node_modules/@types/node/globals.d.ts +371 -0
  1930. package/node_modules/@types/node/globals.typedarray.d.ts +21 -0
  1931. package/node_modules/@types/node/http.d.ts +1980 -0
  1932. package/node_modules/@types/node/http2.d.ts +2557 -0
  1933. package/node_modules/@types/node/https.d.ts +545 -0
  1934. package/node_modules/@types/node/index.d.ts +92 -0
  1935. package/node_modules/@types/node/inspector.d.ts +4002 -0
  1936. package/node_modules/@types/node/module.d.ts +772 -0
  1937. package/node_modules/@types/node/net.d.ts +1035 -0
  1938. package/node_modules/@types/node/os.d.ts +495 -0
  1939. package/node_modules/@types/node/package.json +225 -0
  1940. package/node_modules/@types/node/path.d.ts +200 -0
  1941. package/node_modules/@types/node/perf_hooks.d.ts +970 -0
  1942. package/node_modules/@types/node/process.d.ts +2063 -0
  1943. package/node_modules/@types/node/punycode.d.ts +117 -0
  1944. package/node_modules/@types/node/querystring.d.ts +152 -0
  1945. package/node_modules/@types/node/readline/promises.d.ts +162 -0
  1946. package/node_modules/@types/node/readline.d.ts +594 -0
  1947. package/node_modules/@types/node/repl.d.ts +430 -0
  1948. package/node_modules/@types/node/sea.d.ts +153 -0
  1949. package/node_modules/@types/node/sqlite.d.ts +508 -0
  1950. package/node_modules/@types/node/stream/consumers.d.ts +38 -0
  1951. package/node_modules/@types/node/stream/promises.d.ts +90 -0
  1952. package/node_modules/@types/node/stream/web.d.ts +614 -0
  1953. package/node_modules/@types/node/stream.d.ts +1662 -0
  1954. package/node_modules/@types/node/string_decoder.d.ts +67 -0
  1955. package/node_modules/@types/node/test.d.ts +2280 -0
  1956. package/node_modules/@types/node/timers/promises.d.ts +108 -0
  1957. package/node_modules/@types/node/timers.d.ts +287 -0
  1958. package/node_modules/@types/node/tls.d.ts +1259 -0
  1959. package/node_modules/@types/node/trace_events.d.ts +197 -0
  1960. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +460 -0
  1961. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
  1962. package/node_modules/@types/node/ts5.6/index.d.ts +92 -0
  1963. package/node_modules/@types/node/tty.d.ts +208 -0
  1964. package/node_modules/@types/node/url.d.ts +972 -0
  1965. package/node_modules/@types/node/util.d.ts +2584 -0
  1966. package/node_modules/@types/node/v8.d.ts +889 -0
  1967. package/node_modules/@types/node/vm.d.ts +991 -0
  1968. package/node_modules/@types/node/wasi.d.ts +181 -0
  1969. package/node_modules/@types/node/worker_threads.d.ts +746 -0
  1970. package/node_modules/@types/node/zlib.d.ts +670 -0
  1971. package/node_modules/@types/uuid/LICENSE +21 -0
  1972. package/node_modules/@types/uuid/README.md +16 -0
  1973. package/node_modules/@types/uuid/index.d.mts +10 -0
  1974. package/node_modules/@types/uuid/index.d.ts +80 -0
  1975. package/node_modules/@types/uuid/package.json +54 -0
  1976. package/node_modules/@types/ws/LICENSE +21 -0
  1977. package/node_modules/@types/ws/README.md +16 -0
  1978. package/node_modules/@types/ws/index.d.ts +353 -0
  1979. package/node_modules/@types/ws/package.json +57 -0
  1980. package/node_modules/agentkeepalive/LICENSE +23 -0
  1981. package/node_modules/agentkeepalive/README.md +256 -0
  1982. package/node_modules/agentkeepalive/browser.js +5 -0
  1983. package/node_modules/agentkeepalive/index.d.ts +69 -0
  1984. package/node_modules/agentkeepalive/index.js +7 -0
  1985. package/node_modules/agentkeepalive/lib/agent.js +402 -0
  1986. package/node_modules/agentkeepalive/lib/constants.js +14 -0
  1987. package/node_modules/agentkeepalive/lib/https_agent.js +51 -0
  1988. package/node_modules/agentkeepalive/package.json +56 -0
  1989. package/node_modules/base-x/LICENSE.md +22 -0
  1990. package/node_modules/base-x/README.md +67 -0
  1991. package/node_modules/base-x/package.json +49 -0
  1992. package/node_modules/base-x/src/index.d.ts +10 -0
  1993. package/node_modules/base-x/src/index.js +123 -0
  1994. package/node_modules/base64-js/LICENSE +21 -0
  1995. package/node_modules/base64-js/README.md +34 -0
  1996. package/node_modules/base64-js/base64js.min.js +1 -0
  1997. package/node_modules/base64-js/index.d.ts +3 -0
  1998. package/node_modules/base64-js/index.js +150 -0
  1999. package/node_modules/base64-js/package.json +47 -0
  2000. package/node_modules/bn.js/LICENSE +19 -0
  2001. package/node_modules/bn.js/README.md +214 -0
  2002. package/node_modules/bn.js/lib/bn.js +3548 -0
  2003. package/node_modules/bn.js/package.json +39 -0
  2004. package/node_modules/borsh/LICENSE-APACHE +201 -0
  2005. package/node_modules/borsh/LICENSE-MIT.txt +23 -0
  2006. package/node_modules/borsh/README.md +83 -0
  2007. package/node_modules/borsh/lib/index.d.ts +52 -0
  2008. package/node_modules/borsh/lib/index.js +440 -0
  2009. package/node_modules/borsh/package.json +61 -0
  2010. package/node_modules/bs58/README.md +71 -0
  2011. package/node_modules/bs58/index.js +4 -0
  2012. package/node_modules/bs58/package.json +37 -0
  2013. package/node_modules/buffer/AUTHORS.md +73 -0
  2014. package/node_modules/buffer/LICENSE +21 -0
  2015. package/node_modules/buffer/README.md +410 -0
  2016. package/node_modules/buffer/index.d.ts +194 -0
  2017. package/node_modules/buffer/index.js +2106 -0
  2018. package/node_modules/buffer/package.json +93 -0
  2019. package/node_modules/buffer-layout/.eslintrc.js +45 -0
  2020. package/node_modules/buffer-layout/.travis.yml +9 -0
  2021. package/node_modules/buffer-layout/CHANGELOG.md +222 -0
  2022. package/node_modules/buffer-layout/LICENSE +21 -0
  2023. package/node_modules/buffer-layout/README.md +397 -0
  2024. package/node_modules/buffer-layout/jsdoc/conf.json +10 -0
  2025. package/node_modules/buffer-layout/jsdoc/custom/local.js +75 -0
  2026. package/node_modules/buffer-layout/lib/Layout.js +2712 -0
  2027. package/node_modules/buffer-layout/package.json +40 -0
  2028. package/node_modules/buffer-layout/test/LayoutTest.js +2162 -0
  2029. package/node_modules/buffer-layout/test/examples.c +112 -0
  2030. package/node_modules/buffer-layout/test/examples.js +259 -0
  2031. package/node_modules/buffer-layout/test/n64.c +71 -0
  2032. package/node_modules/buffer-layout/x.js +36 -0
  2033. package/node_modules/bufferutil/LICENSE +20 -0
  2034. package/node_modules/bufferutil/README.md +79 -0
  2035. package/node_modules/bufferutil/binding.gyp +32 -0
  2036. package/node_modules/bufferutil/fallback.js +34 -0
  2037. package/node_modules/bufferutil/index.js +7 -0
  2038. package/node_modules/bufferutil/package.json +36 -0
  2039. package/node_modules/bufferutil/prebuilds/darwin-x64+arm64/bufferutil.node +0 -0
  2040. package/node_modules/bufferutil/prebuilds/linux-x64/bufferutil.node +0 -0
  2041. package/node_modules/bufferutil/prebuilds/win32-ia32/bufferutil.node +0 -0
  2042. package/node_modules/bufferutil/prebuilds/win32-x64/bufferutil.node +0 -0
  2043. package/node_modules/bufferutil/src/bufferutil.c +171 -0
  2044. package/node_modules/camelcase/index.d.ts +103 -0
  2045. package/node_modules/camelcase/index.js +113 -0
  2046. package/node_modules/camelcase/license +9 -0
  2047. package/node_modules/camelcase/package.json +44 -0
  2048. package/node_modules/camelcase/readme.md +144 -0
  2049. package/node_modules/commander/LICENSE +22 -0
  2050. package/node_modules/commander/Readme.md +428 -0
  2051. package/node_modules/commander/index.js +1224 -0
  2052. package/node_modules/commander/package.json +38 -0
  2053. package/node_modules/commander/typings/index.d.ts +310 -0
  2054. package/node_modules/cross-fetch/LICENSE +21 -0
  2055. package/node_modules/cross-fetch/README.md +169 -0
  2056. package/node_modules/cross-fetch/dist/browser-polyfill.js +658 -0
  2057. package/node_modules/cross-fetch/dist/browser-ponyfill.js +686 -0
  2058. package/node_modules/cross-fetch/dist/cross-fetch.js +2 -0
  2059. package/node_modules/cross-fetch/dist/cross-fetch.js.map +1 -0
  2060. package/node_modules/cross-fetch/dist/node-polyfill.js +11 -0
  2061. package/node_modules/cross-fetch/dist/node-ponyfill.js +22 -0
  2062. package/node_modules/cross-fetch/dist/react-native-polyfill.js +12 -0
  2063. package/node_modules/cross-fetch/dist/react-native-ponyfill.js +6 -0
  2064. package/node_modules/cross-fetch/index.d.ts +14 -0
  2065. package/node_modules/cross-fetch/package.json +127 -0
  2066. package/node_modules/cross-fetch/polyfill/package.json +8 -0
  2067. package/node_modules/delay/index.d.ts +107 -0
  2068. package/node_modules/delay/index.js +72 -0
  2069. package/node_modules/delay/license +9 -0
  2070. package/node_modules/delay/package.json +54 -0
  2071. package/node_modules/delay/readme.md +173 -0
  2072. package/node_modules/es6-promise/LICENSE +19 -0
  2073. package/node_modules/es6-promise/README.md +97 -0
  2074. package/node_modules/es6-promise/auto.js +4 -0
  2075. package/node_modules/es6-promise/dist/es6-promise.auto.js +1176 -0
  2076. package/node_modules/es6-promise/dist/es6-promise.auto.map +1 -0
  2077. package/node_modules/es6-promise/dist/es6-promise.auto.min.js +1 -0
  2078. package/node_modules/es6-promise/dist/es6-promise.auto.min.map +1 -0
  2079. package/node_modules/es6-promise/dist/es6-promise.js +1174 -0
  2080. package/node_modules/es6-promise/dist/es6-promise.map +1 -0
  2081. package/node_modules/es6-promise/dist/es6-promise.min.js +1 -0
  2082. package/node_modules/es6-promise/dist/es6-promise.min.map +1 -0
  2083. package/node_modules/es6-promise/es6-promise.d.ts +85 -0
  2084. package/node_modules/es6-promise/lib/es6-promise/-internal.js +243 -0
  2085. package/node_modules/es6-promise/lib/es6-promise/asap.js +119 -0
  2086. package/node_modules/es6-promise/lib/es6-promise/enumerator.js +124 -0
  2087. package/node_modules/es6-promise/lib/es6-promise/polyfill.js +35 -0
  2088. package/node_modules/es6-promise/lib/es6-promise/promise/all.js +52 -0
  2089. package/node_modules/es6-promise/lib/es6-promise/promise/race.js +84 -0
  2090. package/node_modules/es6-promise/lib/es6-promise/promise/reject.js +46 -0
  2091. package/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +48 -0
  2092. package/node_modules/es6-promise/lib/es6-promise/promise.js +431 -0
  2093. package/node_modules/es6-promise/lib/es6-promise/then.js +32 -0
  2094. package/node_modules/es6-promise/lib/es6-promise/utils.js +21 -0
  2095. package/node_modules/es6-promise/lib/es6-promise.auto.js +3 -0
  2096. package/node_modules/es6-promise/lib/es6-promise.js +7 -0
  2097. package/node_modules/es6-promise/package.json +78 -0
  2098. package/node_modules/es6-promisify/README.md +89 -0
  2099. package/node_modules/es6-promisify/dist/promise.js +73 -0
  2100. package/node_modules/es6-promisify/dist/promisify.js +85 -0
  2101. package/node_modules/es6-promisify/package.json +41 -0
  2102. package/node_modules/eventemitter3/LICENSE +21 -0
  2103. package/node_modules/eventemitter3/README.md +94 -0
  2104. package/node_modules/eventemitter3/index.d.ts +134 -0
  2105. package/node_modules/eventemitter3/index.js +336 -0
  2106. package/node_modules/eventemitter3/package.json +56 -0
  2107. package/node_modules/eventemitter3/umd/eventemitter3.js +340 -0
  2108. package/node_modules/eventemitter3/umd/eventemitter3.min.js +1 -0
  2109. package/node_modules/eventemitter3/umd/eventemitter3.min.js.map +1 -0
  2110. package/node_modules/eyes/LICENSE +20 -0
  2111. package/node_modules/eyes/Makefile +4 -0
  2112. package/node_modules/eyes/README.md +73 -0
  2113. package/node_modules/eyes/lib/eyes.js +236 -0
  2114. package/node_modules/eyes/package.json +14 -0
  2115. package/node_modules/eyes/test/eyes-test.js +56 -0
  2116. package/node_modules/fast-stable-stringify/.npmignore +4 -0
  2117. package/node_modules/fast-stable-stringify/.travis.yml +10 -0
  2118. package/node_modules/fast-stable-stringify/LICENSE +21 -0
  2119. package/node_modules/fast-stable-stringify/README.md +81 -0
  2120. package/node_modules/fast-stable-stringify/cli/files-to-comparison-results.js +67 -0
  2121. package/node_modules/fast-stable-stringify/cli/format-table.js +70 -0
  2122. package/node_modules/fast-stable-stringify/cli/index.js +19 -0
  2123. package/node_modules/fast-stable-stringify/fixtures/index.js +5 -0
  2124. package/node_modules/fast-stable-stringify/fixtures/input-data-types.js +191 -0
  2125. package/node_modules/fast-stable-stringify/fixtures/log-result.json +22 -0
  2126. package/node_modules/fast-stable-stringify/fixtures/log.txt +24 -0
  2127. package/node_modules/fast-stable-stringify/index.js +73 -0
  2128. package/node_modules/fast-stable-stringify/karma.conf.js +124 -0
  2129. package/node_modules/fast-stable-stringify/karma.conf.travis.js +95 -0
  2130. package/node_modules/fast-stable-stringify/package.json +47 -0
  2131. package/node_modules/fast-stable-stringify/results/escape-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +57 -0
  2132. package/node_modules/fast-stable-stringify/results/escape-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +57 -0
  2133. package/node_modules/fast-stable-stringify/results/escape-long/Edge 14.14393.0 (Windows 10 0.0.0).json +57 -0
  2134. package/node_modules/fast-stable-stringify/results/escape-long/Firefox 54.0.0 (Windows 7 0.0.0).json +57 -0
  2135. package/node_modules/fast-stable-stringify/results/escape-long/IE 10.0.0 (Windows 7 0.0.0).json +57 -0
  2136. package/node_modules/fast-stable-stringify/results/escape-long/IE 11.0.0 (Windows 7 0.0.0).json +57 -0
  2137. package/node_modules/fast-stable-stringify/results/escape-long/IE 9.0.0 (Windows 7 0.0.0).json +57 -0
  2138. package/node_modules/fast-stable-stringify/results/escape-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +57 -0
  2139. package/node_modules/fast-stable-stringify/results/escape-long/Safari 10.0.1 (Mac OS X 10.12.1).json +57 -0
  2140. package/node_modules/fast-stable-stringify/results/escape-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +57 -0
  2141. package/node_modules/fast-stable-stringify/results/escape-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +57 -0
  2142. package/node_modules/fast-stable-stringify/results/escape-short/Edge 14.14393.0 (Windows 10 0.0.0).json +57 -0
  2143. package/node_modules/fast-stable-stringify/results/escape-short/Firefox 54.0.0 (Windows 7 0.0.0).json +57 -0
  2144. package/node_modules/fast-stable-stringify/results/escape-short/IE 10.0.0 (Windows 7 0.0.0).json +57 -0
  2145. package/node_modules/fast-stable-stringify/results/escape-short/IE 11.0.0 (Windows 7 0.0.0).json +57 -0
  2146. package/node_modules/fast-stable-stringify/results/escape-short/IE 9.0.0 (Windows 7 0.0.0).json +57 -0
  2147. package/node_modules/fast-stable-stringify/results/escape-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +57 -0
  2148. package/node_modules/fast-stable-stringify/results/escape-short/Safari 10.0.1 (Mac OS X 10.12.1).json +57 -0
  2149. package/node_modules/fast-stable-stringify/results/escape.md +20 -0
  2150. package/node_modules/fast-stable-stringify/results/itar-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +35 -0
  2151. package/node_modules/fast-stable-stringify/results/itar-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +35 -0
  2152. package/node_modules/fast-stable-stringify/results/itar-long/Edge 14.14393.0 (Windows 10 0.0.0).json +35 -0
  2153. package/node_modules/fast-stable-stringify/results/itar-long/Firefox 54.0.0 (Windows 7 0.0.0).json +35 -0
  2154. package/node_modules/fast-stable-stringify/results/itar-long/IE 10.0.0 (Windows 7 0.0.0).json +35 -0
  2155. package/node_modules/fast-stable-stringify/results/itar-long/IE 11.0.0 (Windows 7 0.0.0).json +35 -0
  2156. package/node_modules/fast-stable-stringify/results/itar-long/IE 9.0.0 (Windows 7 0.0.0).json +35 -0
  2157. package/node_modules/fast-stable-stringify/results/itar-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +35 -0
  2158. package/node_modules/fast-stable-stringify/results/itar-long/Safari 10.0.1 (Mac OS X 10.12.1).json +35 -0
  2159. package/node_modules/fast-stable-stringify/results/itar-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +35 -0
  2160. package/node_modules/fast-stable-stringify/results/itar-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +35 -0
  2161. package/node_modules/fast-stable-stringify/results/itar-short/Edge 14.14393.0 (Windows 10 0.0.0).json +35 -0
  2162. package/node_modules/fast-stable-stringify/results/itar-short/Firefox 54.0.0 (Windows 7 0.0.0).json +35 -0
  2163. package/node_modules/fast-stable-stringify/results/itar-short/IE 10.0.0 (Windows 7 0.0.0).json +35 -0
  2164. package/node_modules/fast-stable-stringify/results/itar-short/IE 11.0.0 (Windows 7 0.0.0).json +35 -0
  2165. package/node_modules/fast-stable-stringify/results/itar-short/IE 9.0.0 (Windows 7 0.0.0).json +35 -0
  2166. package/node_modules/fast-stable-stringify/results/itar-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +35 -0
  2167. package/node_modules/fast-stable-stringify/results/itar-short/Safari 10.0.1 (Mac OS X 10.12.1).json +35 -0
  2168. package/node_modules/fast-stable-stringify/results/itar.md +20 -0
  2169. package/node_modules/fast-stable-stringify/results/iter/Chrome 60.0.3112 (Windows 7 0.0.0).json +35 -0
  2170. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 39.0.0 (Android 5.1.1).json +35 -0
  2171. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 55.0.2883 (Android 6.0.0).json +35 -0
  2172. package/node_modules/fast-stable-stringify/results/iter/Edge 14.14393.0 (Windows 10 0.0.0).json +35 -0
  2173. package/node_modules/fast-stable-stringify/results/iter/Firefox 54.0.0 (Windows 7 0.0.0).json +35 -0
  2174. package/node_modules/fast-stable-stringify/results/iter/IE 10.0.0 (Windows 7 0.0.0).json +35 -0
  2175. package/node_modules/fast-stable-stringify/results/iter/IE 11.0.0 (Windows 7 0.0.0).json +35 -0
  2176. package/node_modules/fast-stable-stringify/results/iter/IE 9.0.0 (Windows 7 0.0.0).json +35 -0
  2177. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 10.0.0 (iOS 10.3.0).json +35 -0
  2178. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 9.0.0 (iOS 9.2.0).json +35 -0
  2179. package/node_modules/fast-stable-stringify/results/iter/Safari 10.0.1 (Mac OS X 10.12.1).json +35 -0
  2180. package/node_modules/fast-stable-stringify/results/iter/Safari 9.1.2 (Mac OS X 10.11.6).json +35 -0
  2181. package/node_modules/fast-stable-stringify/results/iter.md +14 -0
  2182. package/node_modules/fast-stable-stringify/results/libs/Chrome 60.0.3112 (Windows 7 0.0.0).json +46 -0
  2183. package/node_modules/fast-stable-stringify/results/libs/Chrome Mobile 55.0.2883 (Android 6.0.0).json +46 -0
  2184. package/node_modules/fast-stable-stringify/results/libs/Edge 14.14393.0 (Windows 10 0.0.0).json +46 -0
  2185. package/node_modules/fast-stable-stringify/results/libs/Firefox 54.0.0 (Windows 7 0.0.0).json +46 -0
  2186. package/node_modules/fast-stable-stringify/results/libs/IE 10.0.0 (Windows 7 0.0.0).json +35 -0
  2187. package/node_modules/fast-stable-stringify/results/libs/IE 11.0.0 (Windows 7 0.0.0).json +35 -0
  2188. package/node_modules/fast-stable-stringify/results/libs/IE 9.0.0 (Windows 7 0.0.0).json +35 -0
  2189. package/node_modules/fast-stable-stringify/results/libs/Mobile Safari 10.0.0 (iOS 10.3.0).json +46 -0
  2190. package/node_modules/fast-stable-stringify/results/libs/Safari 10.0.1 (Mac OS X 10.12.1).json +46 -0
  2191. package/node_modules/fast-stable-stringify/results/libs.md +15 -0
  2192. package/node_modules/fast-stable-stringify/test/escape-long.js +147 -0
  2193. package/node_modules/fast-stable-stringify/test/escape-short.js +147 -0
  2194. package/node_modules/fast-stable-stringify/test/index.js +6 -0
  2195. package/node_modules/fast-stable-stringify/test/itar-long.js +52 -0
  2196. package/node_modules/fast-stable-stringify/test/itar-short.js +52 -0
  2197. package/node_modules/fast-stable-stringify/test/iter.js +84 -0
  2198. package/node_modules/fast-stable-stringify/test/libs.js +57 -0
  2199. package/node_modules/fast-stable-stringify/test/travis.js +43 -0
  2200. package/node_modules/fast-stable-stringify/test/validate.js +24 -0
  2201. package/node_modules/fast-stable-stringify/util/eachRecursive.js +9 -0
  2202. package/node_modules/fast-stable-stringify/util/get-git-hash-sync.js +21 -0
  2203. package/node_modules/fast-stable-stringify/util/get-lib-info.js +22 -0
  2204. package/node_modules/fast-stable-stringify/util/object-path.js +47 -0
  2205. package/node_modules/fast-stable-stringify/v8-profile/bench.js +8 -0
  2206. package/node_modules/fast-stable-stringify/v8-profile/run.sh +2 -0
  2207. package/node_modules/fast-stable-stringify/zuul-local.sh +2 -0
  2208. package/node_modules/humanize-ms/LICENSE +17 -0
  2209. package/node_modules/humanize-ms/README.md +40 -0
  2210. package/node_modules/humanize-ms/index.js +24 -0
  2211. package/node_modules/humanize-ms/package.json +37 -0
  2212. package/node_modules/ieee754/LICENSE +11 -0
  2213. package/node_modules/ieee754/README.md +51 -0
  2214. package/node_modules/ieee754/index.d.ts +10 -0
  2215. package/node_modules/ieee754/index.js +85 -0
  2216. package/node_modules/ieee754/package.json +52 -0
  2217. package/node_modules/isomorphic-ws/LICENSE +21 -0
  2218. package/node_modules/isomorphic-ws/README.md +58 -0
  2219. package/node_modules/isomorphic-ws/browser.js +17 -0
  2220. package/node_modules/isomorphic-ws/index.d.ts +8 -0
  2221. package/node_modules/isomorphic-ws/node.js +3 -0
  2222. package/node_modules/isomorphic-ws/package.json +34 -0
  2223. package/node_modules/jayson/.gitignore +8 -0
  2224. package/node_modules/jayson/LICENSE +22 -0
  2225. package/node_modules/jayson/README.md +1387 -0
  2226. package/node_modules/jayson/bin/jayson.js +111 -0
  2227. package/node_modules/jayson/index.d.ts +370 -0
  2228. package/node_modules/jayson/index.js +1 -0
  2229. package/node_modules/jayson/lib/client/browser/index.d.ts +14 -0
  2230. package/node_modules/jayson/lib/client/browser/index.js +163 -0
  2231. package/node_modules/jayson/lib/client/http.js +116 -0
  2232. package/node_modules/jayson/lib/client/https.js +34 -0
  2233. package/node_modules/jayson/lib/client/index.js +220 -0
  2234. package/node_modules/jayson/lib/client/tcp.js +90 -0
  2235. package/node_modules/jayson/lib/client/tls.js +89 -0
  2236. package/node_modules/jayson/lib/client/websocket.js +135 -0
  2237. package/node_modules/jayson/lib/generateRequest.js +63 -0
  2238. package/node_modules/jayson/lib/index.js +31 -0
  2239. package/node_modules/jayson/lib/method.js +120 -0
  2240. package/node_modules/jayson/lib/server/http.js +26 -0
  2241. package/node_modules/jayson/lib/server/https.js +26 -0
  2242. package/node_modules/jayson/lib/server/index.js +475 -0
  2243. package/node_modules/jayson/lib/server/middleware.js +75 -0
  2244. package/node_modules/jayson/lib/server/tcp.js +72 -0
  2245. package/node_modules/jayson/lib/server/tls.js +72 -0
  2246. package/node_modules/jayson/lib/server/websocket.js +62 -0
  2247. package/node_modules/jayson/lib/utils.js +514 -0
  2248. package/node_modules/jayson/node_modules/@types/node/LICENSE +21 -0
  2249. package/node_modules/jayson/node_modules/@types/node/README.md +16 -0
  2250. package/node_modules/jayson/node_modules/@types/node/assert.d.ts +117 -0
  2251. package/node_modules/jayson/node_modules/@types/node/async_hooks.d.ts +246 -0
  2252. package/node_modules/jayson/node_modules/@types/node/buffer.d.ts +22 -0
  2253. package/node_modules/jayson/node_modules/@types/node/child_process.d.ts +507 -0
  2254. package/node_modules/jayson/node_modules/@types/node/cluster.d.ts +260 -0
  2255. package/node_modules/jayson/node_modules/@types/node/console.d.ts +3 -0
  2256. package/node_modules/jayson/node_modules/@types/node/constants.d.ts +448 -0
  2257. package/node_modules/jayson/node_modules/@types/node/crypto.d.ts +1183 -0
  2258. package/node_modules/jayson/node_modules/@types/node/dgram.d.ts +118 -0
  2259. package/node_modules/jayson/node_modules/@types/node/dns.d.ts +372 -0
  2260. package/node_modules/jayson/node_modules/@types/node/domain.d.ts +16 -0
  2261. package/node_modules/jayson/node_modules/@types/node/events.d.ts +47 -0
  2262. package/node_modules/jayson/node_modules/@types/node/fs.d.ts +2567 -0
  2263. package/node_modules/jayson/node_modules/@types/node/globals.d.ts +1351 -0
  2264. package/node_modules/jayson/node_modules/@types/node/globals.global.d.ts +1 -0
  2265. package/node_modules/jayson/node_modules/@types/node/http.d.ts +456 -0
  2266. package/node_modules/jayson/node_modules/@types/node/http2.d.ts +952 -0
  2267. package/node_modules/jayson/node_modules/@types/node/https.d.ts +156 -0
  2268. package/node_modules/jayson/node_modules/@types/node/index.d.ts +91 -0
  2269. package/node_modules/jayson/node_modules/@types/node/inspector.d.ts +3040 -0
  2270. package/node_modules/jayson/node_modules/@types/node/module.d.ts +3 -0
  2271. package/node_modules/jayson/node_modules/@types/node/net.d.ts +290 -0
  2272. package/node_modules/jayson/node_modules/@types/node/os.d.ts +263 -0
  2273. package/node_modules/jayson/node_modules/@types/node/package.json +195 -0
  2274. package/node_modules/jayson/node_modules/@types/node/path.d.ts +159 -0
  2275. package/node_modules/jayson/node_modules/@types/node/perf_hooks.d.ts +259 -0
  2276. package/node_modules/jayson/node_modules/@types/node/process.d.ts +15 -0
  2277. package/node_modules/jayson/node_modules/@types/node/punycode.d.ts +75 -0
  2278. package/node_modules/jayson/node_modules/@types/node/querystring.d.ts +29 -0
  2279. package/node_modules/jayson/node_modules/@types/node/readline.d.ts +158 -0
  2280. package/node_modules/jayson/node_modules/@types/node/repl.d.ts +390 -0
  2281. package/node_modules/jayson/node_modules/@types/node/stream.d.ts +334 -0
  2282. package/node_modules/jayson/node_modules/@types/node/string_decoder.d.ts +7 -0
  2283. package/node_modules/jayson/node_modules/@types/node/timers.d.ts +16 -0
  2284. package/node_modules/jayson/node_modules/@types/node/tls.d.ts +713 -0
  2285. package/node_modules/jayson/node_modules/@types/node/trace_events.d.ts +61 -0
  2286. package/node_modules/jayson/node_modules/@types/node/tty.d.ts +66 -0
  2287. package/node_modules/jayson/node_modules/@types/node/url.d.ts +147 -0
  2288. package/node_modules/jayson/node_modules/@types/node/util.d.ts +200 -0
  2289. package/node_modules/jayson/node_modules/@types/node/v8.d.ts +197 -0
  2290. package/node_modules/jayson/node_modules/@types/node/vm.d.ts +112 -0
  2291. package/node_modules/jayson/node_modules/@types/node/wasi.d.ts +55 -0
  2292. package/node_modules/jayson/node_modules/@types/node/worker_threads.d.ts +207 -0
  2293. package/node_modules/jayson/node_modules/@types/node/zlib.d.ts +356 -0
  2294. package/node_modules/jayson/package.json +89 -0
  2295. package/node_modules/jayson/promise/index.d.ts +367 -0
  2296. package/node_modules/jayson/promise/index.js +3 -0
  2297. package/node_modules/jayson/promise/lib/client/browser/index.d.ts +12 -0
  2298. package/node_modules/jayson/promise/lib/client/browser/index.js +28 -0
  2299. package/node_modules/jayson/promise/lib/client/http.js +23 -0
  2300. package/node_modules/jayson/promise/lib/client/https.js +24 -0
  2301. package/node_modules/jayson/promise/lib/client/index.js +53 -0
  2302. package/node_modules/jayson/promise/lib/client/tcp.js +23 -0
  2303. package/node_modules/jayson/promise/lib/client/tls.js +23 -0
  2304. package/node_modules/jayson/promise/lib/client/websocket.js +23 -0
  2305. package/node_modules/jayson/promise/lib/index.js +33 -0
  2306. package/node_modules/jayson/promise/lib/method.js +54 -0
  2307. package/node_modules/jayson/promise/lib/server.js +23 -0
  2308. package/node_modules/jayson/promise/lib/utils.js +23 -0
  2309. package/node_modules/json-stringify-safe/.npmignore +1 -0
  2310. package/node_modules/json-stringify-safe/CHANGELOG.md +14 -0
  2311. package/node_modules/json-stringify-safe/LICENSE +15 -0
  2312. package/node_modules/json-stringify-safe/Makefile +35 -0
  2313. package/node_modules/json-stringify-safe/README.md +52 -0
  2314. package/node_modules/json-stringify-safe/package.json +31 -0
  2315. package/node_modules/json-stringify-safe/stringify.js +27 -0
  2316. package/node_modules/json-stringify-safe/test/mocha.opts +2 -0
  2317. package/node_modules/json-stringify-safe/test/stringify_test.js +246 -0
  2318. package/node_modules/ms/index.js +162 -0
  2319. package/node_modules/ms/license.md +21 -0
  2320. package/node_modules/ms/package.json +38 -0
  2321. package/node_modules/ms/readme.md +59 -0
  2322. package/node_modules/node-fetch/LICENSE.md +22 -0
  2323. package/node_modules/node-fetch/README.md +634 -0
  2324. package/node_modules/node-fetch/browser.js +25 -0
  2325. package/node_modules/node-fetch/lib/index.es.js +1777 -0
  2326. package/node_modules/node-fetch/lib/index.js +1787 -0
  2327. package/node_modules/node-fetch/lib/index.mjs +1775 -0
  2328. package/node_modules/node-fetch/package.json +89 -0
  2329. package/node_modules/node-gyp-build/LICENSE +21 -0
  2330. package/node_modules/node-gyp-build/README.md +58 -0
  2331. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  2332. package/node_modules/node-gyp-build/bin.js +84 -0
  2333. package/node_modules/node-gyp-build/build-test.js +19 -0
  2334. package/node_modules/node-gyp-build/index.js +6 -0
  2335. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  2336. package/node_modules/node-gyp-build/optional.js +7 -0
  2337. package/node_modules/node-gyp-build/package.json +43 -0
  2338. package/node_modules/pako/LICENSE +21 -0
  2339. package/node_modules/pako/README.md +177 -0
  2340. package/node_modules/pako/dist/pako.es5.js +6688 -0
  2341. package/node_modules/pako/dist/pako.es5.min.js +2 -0
  2342. package/node_modules/pako/dist/pako.esm.mjs +6877 -0
  2343. package/node_modules/pako/dist/pako.js +6896 -0
  2344. package/node_modules/pako/dist/pako.min.js +2 -0
  2345. package/node_modules/pako/dist/pako_deflate.es5.js +3924 -0
  2346. package/node_modules/pako/dist/pako_deflate.es5.min.js +2 -0
  2347. package/node_modules/pako/dist/pako_deflate.js +4126 -0
  2348. package/node_modules/pako/dist/pako_deflate.min.js +2 -0
  2349. package/node_modules/pako/dist/pako_inflate.es5.js +3229 -0
  2350. package/node_modules/pako/dist/pako_inflate.es5.min.js +2 -0
  2351. package/node_modules/pako/dist/pako_inflate.js +3239 -0
  2352. package/node_modules/pako/dist/pako_inflate.min.js +2 -0
  2353. package/node_modules/pako/index.js +18 -0
  2354. package/node_modules/pako/lib/deflate.js +380 -0
  2355. package/node_modules/pako/lib/inflate.js +419 -0
  2356. package/node_modules/pako/lib/utils/common.js +48 -0
  2357. package/node_modules/pako/lib/utils/strings.js +174 -0
  2358. package/node_modules/pako/lib/zlib/README +59 -0
  2359. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  2360. package/node_modules/pako/lib/zlib/constants.js +68 -0
  2361. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  2362. package/node_modules/pako/lib/zlib/deflate.js +2048 -0
  2363. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  2364. package/node_modules/pako/lib/zlib/inffast.js +344 -0
  2365. package/node_modules/pako/lib/zlib/inflate.js +1572 -0
  2366. package/node_modules/pako/lib/zlib/inftrees.js +340 -0
  2367. package/node_modules/pako/lib/zlib/messages.js +32 -0
  2368. package/node_modules/pako/lib/zlib/trees.js +1179 -0
  2369. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  2370. package/node_modules/pako/package.json +64 -0
  2371. package/node_modules/rpc-websockets/LICENSE +10 -0
  2372. package/node_modules/rpc-websockets/README.md +156 -0
  2373. package/node_modules/rpc-websockets/dist/index.browser-bundle.js +14 -0
  2374. package/node_modules/rpc-websockets/dist/index.browser.cjs +389 -0
  2375. package/node_modules/rpc-websockets/dist/index.browser.cjs.map +1 -0
  2376. package/node_modules/rpc-websockets/dist/index.browser.d.mts +225 -0
  2377. package/node_modules/rpc-websockets/dist/index.browser.d.ts +225 -0
  2378. package/node_modules/rpc-websockets/dist/index.browser.mjs +384 -0
  2379. package/node_modules/rpc-websockets/dist/index.browser.mjs.map +1 -0
  2380. package/node_modules/rpc-websockets/dist/index.cjs +898 -0
  2381. package/node_modules/rpc-websockets/dist/index.cjs.map +1 -0
  2382. package/node_modules/rpc-websockets/dist/index.d.mts +415 -0
  2383. package/node_modules/rpc-websockets/dist/index.d.ts +415 -0
  2384. package/node_modules/rpc-websockets/dist/index.mjs +886 -0
  2385. package/node_modules/rpc-websockets/dist/index.mjs.map +1 -0
  2386. package/node_modules/rpc-websockets/node_modules/@types/ws/LICENSE +21 -0
  2387. package/node_modules/rpc-websockets/node_modules/@types/ws/README.md +15 -0
  2388. package/node_modules/rpc-websockets/node_modules/@types/ws/index.d.mts +451 -0
  2389. package/node_modules/rpc-websockets/node_modules/@types/ws/index.d.ts +445 -0
  2390. package/node_modules/rpc-websockets/node_modules/@types/ws/package.json +72 -0
  2391. package/node_modules/rpc-websockets/node_modules/eventemitter3/LICENSE +21 -0
  2392. package/node_modules/rpc-websockets/node_modules/eventemitter3/README.md +94 -0
  2393. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.esm.js +347 -0
  2394. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.esm.min.js +1 -0
  2395. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.esm.min.js.map +1 -0
  2396. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.umd.js +355 -0
  2397. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.umd.min.js +1 -0
  2398. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.umd.min.js.map +1 -0
  2399. package/node_modules/rpc-websockets/node_modules/eventemitter3/index.d.ts +135 -0
  2400. package/node_modules/rpc-websockets/node_modules/eventemitter3/index.js +336 -0
  2401. package/node_modules/rpc-websockets/node_modules/eventemitter3/index.mjs +4 -0
  2402. package/node_modules/rpc-websockets/node_modules/eventemitter3/package.json +67 -0
  2403. package/node_modules/rpc-websockets/node_modules/ws/LICENSE +20 -0
  2404. package/node_modules/rpc-websockets/node_modules/ws/README.md +548 -0
  2405. package/node_modules/rpc-websockets/node_modules/ws/browser.js +8 -0
  2406. package/node_modules/rpc-websockets/node_modules/ws/index.js +13 -0
  2407. package/node_modules/rpc-websockets/node_modules/ws/lib/buffer-util.js +131 -0
  2408. package/node_modules/rpc-websockets/node_modules/ws/lib/constants.js +18 -0
  2409. package/node_modules/rpc-websockets/node_modules/ws/lib/event-target.js +292 -0
  2410. package/node_modules/rpc-websockets/node_modules/ws/lib/extension.js +203 -0
  2411. package/node_modules/rpc-websockets/node_modules/ws/lib/limiter.js +55 -0
  2412. package/node_modules/rpc-websockets/node_modules/ws/lib/permessage-deflate.js +528 -0
  2413. package/node_modules/rpc-websockets/node_modules/ws/lib/receiver.js +706 -0
  2414. package/node_modules/rpc-websockets/node_modules/ws/lib/sender.js +602 -0
  2415. package/node_modules/rpc-websockets/node_modules/ws/lib/stream.js +161 -0
  2416. package/node_modules/rpc-websockets/node_modules/ws/lib/subprotocol.js +62 -0
  2417. package/node_modules/rpc-websockets/node_modules/ws/lib/validation.js +152 -0
  2418. package/node_modules/rpc-websockets/node_modules/ws/lib/websocket-server.js +540 -0
  2419. package/node_modules/rpc-websockets/node_modules/ws/lib/websocket.js +1388 -0
  2420. package/node_modules/rpc-websockets/node_modules/ws/package.json +69 -0
  2421. package/node_modules/rpc-websockets/node_modules/ws/wrapper.mjs +8 -0
  2422. package/node_modules/rpc-websockets/package.json +90 -0
  2423. package/node_modules/safe-buffer/LICENSE +21 -0
  2424. package/node_modules/safe-buffer/README.md +584 -0
  2425. package/node_modules/safe-buffer/index.d.ts +187 -0
  2426. package/node_modules/safe-buffer/index.js +65 -0
  2427. package/node_modules/safe-buffer/package.json +51 -0
  2428. package/node_modules/stream-chain/LICENSE +11 -0
  2429. package/node_modules/stream-chain/README.md +334 -0
  2430. package/node_modules/stream-chain/defs.js +22 -0
  2431. package/node_modules/stream-chain/index.js +203 -0
  2432. package/node_modules/stream-chain/package.json +31 -0
  2433. package/node_modules/stream-chain/utils/FromIterable.js +94 -0
  2434. package/node_modules/stream-chain/utils/Reduce.js +40 -0
  2435. package/node_modules/stream-chain/utils/asFun.js +85 -0
  2436. package/node_modules/stream-chain/utils/asGen.js +77 -0
  2437. package/node_modules/stream-chain/utils/comp.js +20 -0
  2438. package/node_modules/stream-chain/utils/fold.js +43 -0
  2439. package/node_modules/stream-chain/utils/gen.js +24 -0
  2440. package/node_modules/stream-chain/utils/scan.js +41 -0
  2441. package/node_modules/stream-chain/utils/skip.js +32 -0
  2442. package/node_modules/stream-chain/utils/skipWhile.js +46 -0
  2443. package/node_modules/stream-chain/utils/take.js +39 -0
  2444. package/node_modules/stream-chain/utils/takeWhile.js +47 -0
  2445. package/node_modules/stream-json/Assembler.js +154 -0
  2446. package/node_modules/stream-json/Disassembler.js +209 -0
  2447. package/node_modules/stream-json/Emitter.js +22 -0
  2448. package/node_modules/stream-json/LICENSE +34 -0
  2449. package/node_modules/stream-json/Parser.js +545 -0
  2450. package/node_modules/stream-json/README.md +128 -0
  2451. package/node_modules/stream-json/Stringer.js +153 -0
  2452. package/node_modules/stream-json/filters/Filter.js +130 -0
  2453. package/node_modules/stream-json/filters/FilterBase.js +201 -0
  2454. package/node_modules/stream-json/filters/Ignore.js +24 -0
  2455. package/node_modules/stream-json/filters/Pick.js +58 -0
  2456. package/node_modules/stream-json/filters/Replace.js +115 -0
  2457. package/node_modules/stream-json/index.js +11 -0
  2458. package/node_modules/stream-json/jsonl/Parser.js +131 -0
  2459. package/node_modules/stream-json/jsonl/Stringer.js +29 -0
  2460. package/node_modules/stream-json/package.json +45 -0
  2461. package/node_modules/stream-json/streamers/StreamArray.js +44 -0
  2462. package/node_modules/stream-json/streamers/StreamBase.js +101 -0
  2463. package/node_modules/stream-json/streamers/StreamObject.js +43 -0
  2464. package/node_modules/stream-json/streamers/StreamValues.js +33 -0
  2465. package/node_modules/stream-json/utils/Batch.js +44 -0
  2466. package/node_modules/stream-json/utils/Utf8Stream.js +53 -0
  2467. package/node_modules/stream-json/utils/Verifier.js +485 -0
  2468. package/node_modules/stream-json/utils/emit.js +5 -0
  2469. package/node_modules/stream-json/utils/withParser.js +10 -0
  2470. package/node_modules/superstruct/License.md +9 -0
  2471. package/node_modules/superstruct/Readme.md +228 -0
  2472. package/node_modules/superstruct/lib/coercions.d.ts +19 -0
  2473. package/node_modules/superstruct/lib/coercions.d.ts.map +1 -0
  2474. package/node_modules/superstruct/lib/error.d.ts +32 -0
  2475. package/node_modules/superstruct/lib/error.d.ts.map +1 -0
  2476. package/node_modules/superstruct/lib/index.cjs +1257 -0
  2477. package/node_modules/superstruct/lib/index.cjs.d.ts +579 -0
  2478. package/node_modules/superstruct/lib/index.cjs.map +1 -0
  2479. package/node_modules/superstruct/lib/index.d.cts +579 -0
  2480. package/node_modules/superstruct/lib/index.d.ts +7 -0
  2481. package/node_modules/superstruct/lib/index.d.ts.map +1 -0
  2482. package/node_modules/superstruct/lib/index.es.d.ts +579 -0
  2483. package/node_modules/superstruct/lib/index.es.js +1203 -0
  2484. package/node_modules/superstruct/lib/index.es.js.map +1 -0
  2485. package/node_modules/superstruct/lib/refinements.d.ts +19 -0
  2486. package/node_modules/superstruct/lib/refinements.d.ts.map +1 -0
  2487. package/node_modules/superstruct/lib/struct.d.ts +110 -0
  2488. package/node_modules/superstruct/lib/struct.d.ts.map +1 -0
  2489. package/node_modules/superstruct/lib/structs/coercions.d.ts +29 -0
  2490. package/node_modules/superstruct/lib/structs/coercions.d.ts.map +1 -0
  2491. package/node_modules/superstruct/lib/structs/refinements.d.ts +38 -0
  2492. package/node_modules/superstruct/lib/structs/refinements.d.ts.map +1 -0
  2493. package/node_modules/superstruct/lib/structs/types.d.ts +142 -0
  2494. package/node_modules/superstruct/lib/structs/types.d.ts.map +1 -0
  2495. package/node_modules/superstruct/lib/structs/utilities.d.ts +66 -0
  2496. package/node_modules/superstruct/lib/structs/utilities.d.ts.map +1 -0
  2497. package/node_modules/superstruct/lib/types.d.ts +200 -0
  2498. package/node_modules/superstruct/lib/types.d.ts.map +1 -0
  2499. package/node_modules/superstruct/lib/typings.d.ts +36 -0
  2500. package/node_modules/superstruct/lib/typings.d.ts.map +1 -0
  2501. package/node_modules/superstruct/lib/utilities.d.ts +56 -0
  2502. package/node_modules/superstruct/lib/utilities.d.ts.map +1 -0
  2503. package/node_modules/superstruct/lib/utils.d.ts +139 -0
  2504. package/node_modules/superstruct/lib/utils.d.ts.map +1 -0
  2505. package/node_modules/superstruct/lib/xtras.d.ts +56 -0
  2506. package/node_modules/superstruct/lib/xtras.d.ts.map +1 -0
  2507. package/node_modules/superstruct/package.json +110 -0
  2508. package/node_modules/superstruct/umd/coercions.d.ts +18 -0
  2509. package/node_modules/superstruct/umd/index.d.ts +4 -0
  2510. package/node_modules/superstruct/umd/refinements.d.ts +14 -0
  2511. package/node_modules/superstruct/umd/struct.d.ts +80 -0
  2512. package/node_modules/superstruct/umd/superstruct.d.ts +579 -0
  2513. package/node_modules/superstruct/umd/superstruct.js +1262 -0
  2514. package/node_modules/superstruct/umd/superstruct.min.d.ts +579 -0
  2515. package/node_modules/superstruct/umd/superstruct.min.js +1 -0
  2516. package/node_modules/superstruct/umd/types.d.ts +127 -0
  2517. package/node_modules/superstruct/umd/utils.d.ts +9 -0
  2518. package/node_modules/text-encoding-utf-8/LICENSE.md +29 -0
  2519. package/node_modules/text-encoding-utf-8/README.md +63 -0
  2520. package/node_modules/text-encoding-utf-8/lib/encoding.js +655 -0
  2521. package/node_modules/text-encoding-utf-8/lib/encoding.lib.js +642 -0
  2522. package/node_modules/text-encoding-utf-8/lib/encoding.lib.mjs +665 -0
  2523. package/node_modules/text-encoding-utf-8/package.json +26 -0
  2524. package/node_modules/text-encoding-utf-8/src/encoding.js +665 -0
  2525. package/node_modules/text-encoding-utf-8/src/polyfill.js +21 -0
  2526. package/node_modules/toml/.jshintrc +18 -0
  2527. package/node_modules/toml/.travis.yml +7 -0
  2528. package/node_modules/toml/CHANGELOG.md +116 -0
  2529. package/node_modules/toml/LICENSE +22 -0
  2530. package/node_modules/toml/README.md +93 -0
  2531. package/node_modules/toml/benchmark.js +12 -0
  2532. package/node_modules/toml/index.d.ts +3 -0
  2533. package/node_modules/toml/index.js +9 -0
  2534. package/node_modules/toml/lib/compiler.js +195 -0
  2535. package/node_modules/toml/lib/parser.js +3841 -0
  2536. package/node_modules/toml/package.json +24 -0
  2537. package/node_modules/toml/src/toml.pegjs +231 -0
  2538. package/node_modules/toml/test/bad.toml +5 -0
  2539. package/node_modules/toml/test/example.toml +32 -0
  2540. package/node_modules/toml/test/hard_example.toml +33 -0
  2541. package/node_modules/toml/test/inline_tables.toml +10 -0
  2542. package/node_modules/toml/test/literal_strings.toml +5 -0
  2543. package/node_modules/toml/test/multiline_eat_whitespace.toml +15 -0
  2544. package/node_modules/toml/test/multiline_literal_strings.toml +7 -0
  2545. package/node_modules/toml/test/multiline_strings.toml +6 -0
  2546. package/node_modules/toml/test/smoke.js +22 -0
  2547. package/node_modules/toml/test/table_arrays_easy.toml +10 -0
  2548. package/node_modules/toml/test/table_arrays_hard.toml +31 -0
  2549. package/node_modules/toml/test/test_toml.js +596 -0
  2550. package/node_modules/tslib/CopyrightNotice.txt +15 -0
  2551. package/node_modules/tslib/LICENSE.txt +12 -0
  2552. package/node_modules/tslib/README.md +164 -0
  2553. package/node_modules/tslib/SECURITY.md +41 -0
  2554. package/node_modules/tslib/modules/index.d.ts +38 -0
  2555. package/node_modules/tslib/modules/index.js +70 -0
  2556. package/node_modules/tslib/modules/package.json +3 -0
  2557. package/node_modules/tslib/package.json +47 -0
  2558. package/node_modules/tslib/tslib.d.ts +460 -0
  2559. package/node_modules/tslib/tslib.es6.html +1 -0
  2560. package/node_modules/tslib/tslib.es6.js +402 -0
  2561. package/node_modules/tslib/tslib.es6.mjs +401 -0
  2562. package/node_modules/tslib/tslib.html +1 -0
  2563. package/node_modules/tslib/tslib.js +484 -0
  2564. package/node_modules/undici-types/LICENSE +21 -0
  2565. package/node_modules/undici-types/README.md +6 -0
  2566. package/node_modules/undici-types/agent.d.ts +31 -0
  2567. package/node_modules/undici-types/api.d.ts +43 -0
  2568. package/node_modules/undici-types/balanced-pool.d.ts +29 -0
  2569. package/node_modules/undici-types/cache.d.ts +36 -0
  2570. package/node_modules/undici-types/client.d.ts +108 -0
  2571. package/node_modules/undici-types/connector.d.ts +34 -0
  2572. package/node_modules/undici-types/content-type.d.ts +21 -0
  2573. package/node_modules/undici-types/cookies.d.ts +28 -0
  2574. package/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  2575. package/node_modules/undici-types/dispatcher.d.ts +256 -0
  2576. package/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  2577. package/node_modules/undici-types/errors.d.ts +149 -0
  2578. package/node_modules/undici-types/eventsource.d.ts +61 -0
  2579. package/node_modules/undici-types/fetch.d.ts +209 -0
  2580. package/node_modules/undici-types/file.d.ts +39 -0
  2581. package/node_modules/undici-types/filereader.d.ts +54 -0
  2582. package/node_modules/undici-types/formdata.d.ts +108 -0
  2583. package/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  2584. package/node_modules/undici-types/global-origin.d.ts +7 -0
  2585. package/node_modules/undici-types/handlers.d.ts +15 -0
  2586. package/node_modules/undici-types/header.d.ts +4 -0
  2587. package/node_modules/undici-types/index.d.ts +71 -0
  2588. package/node_modules/undici-types/interceptors.d.ts +17 -0
  2589. package/node_modules/undici-types/mock-agent.d.ts +50 -0
  2590. package/node_modules/undici-types/mock-client.d.ts +25 -0
  2591. package/node_modules/undici-types/mock-errors.d.ts +12 -0
  2592. package/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  2593. package/node_modules/undici-types/mock-pool.d.ts +25 -0
  2594. package/node_modules/undici-types/package.json +55 -0
  2595. package/node_modules/undici-types/patch.d.ts +33 -0
  2596. package/node_modules/undici-types/pool-stats.d.ts +19 -0
  2597. package/node_modules/undici-types/pool.d.ts +39 -0
  2598. package/node_modules/undici-types/proxy-agent.d.ts +28 -0
  2599. package/node_modules/undici-types/readable.d.ts +65 -0
  2600. package/node_modules/undici-types/retry-agent.d.ts +8 -0
  2601. package/node_modules/undici-types/retry-handler.d.ts +116 -0
  2602. package/node_modules/undici-types/util.d.ts +18 -0
  2603. package/node_modules/undici-types/webidl.d.ts +228 -0
  2604. package/node_modules/undici-types/websocket.d.ts +150 -0
  2605. package/node_modules/utf-8-validate/LICENSE +30 -0
  2606. package/node_modules/utf-8-validate/README.md +50 -0
  2607. package/node_modules/utf-8-validate/binding.gyp +18 -0
  2608. package/node_modules/utf-8-validate/fallback.js +62 -0
  2609. package/node_modules/utf-8-validate/index.js +7 -0
  2610. package/node_modules/utf-8-validate/package.json +36 -0
  2611. package/node_modules/utf-8-validate/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
  2612. package/node_modules/utf-8-validate/prebuilds/linux-x64/node.napi.node +0 -0
  2613. package/node_modules/utf-8-validate/prebuilds/win32-ia32/node.napi.node +0 -0
  2614. package/node_modules/utf-8-validate/prebuilds/win32-x64/node.napi.node +0 -0
  2615. package/node_modules/utf-8-validate/src/validation.c +109 -0
  2616. package/node_modules/uuid/CHANGELOG.md +229 -0
  2617. package/node_modules/uuid/CONTRIBUTING.md +18 -0
  2618. package/node_modules/uuid/LICENSE.md +9 -0
  2619. package/node_modules/uuid/README.md +505 -0
  2620. package/node_modules/uuid/dist/bin/uuid +2 -0
  2621. package/node_modules/uuid/dist/esm-browser/index.js +9 -0
  2622. package/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  2623. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  2624. package/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  2625. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  2626. package/node_modules/uuid/dist/esm-browser/rng.js +19 -0
  2627. package/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  2628. package/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
  2629. package/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  2630. package/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  2631. package/node_modules/uuid/dist/esm-browser/v35.js +64 -0
  2632. package/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  2633. package/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  2634. package/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  2635. package/node_modules/uuid/dist/esm-browser/version.js +11 -0
  2636. package/node_modules/uuid/dist/esm-node/index.js +9 -0
  2637. package/node_modules/uuid/dist/esm-node/md5.js +13 -0
  2638. package/node_modules/uuid/dist/esm-node/nil.js +1 -0
  2639. package/node_modules/uuid/dist/esm-node/parse.js +35 -0
  2640. package/node_modules/uuid/dist/esm-node/regex.js +1 -0
  2641. package/node_modules/uuid/dist/esm-node/rng.js +12 -0
  2642. package/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  2643. package/node_modules/uuid/dist/esm-node/stringify.js +29 -0
  2644. package/node_modules/uuid/dist/esm-node/v1.js +95 -0
  2645. package/node_modules/uuid/dist/esm-node/v3.js +4 -0
  2646. package/node_modules/uuid/dist/esm-node/v35.js +64 -0
  2647. package/node_modules/uuid/dist/esm-node/v4.js +24 -0
  2648. package/node_modules/uuid/dist/esm-node/v5.js +4 -0
  2649. package/node_modules/uuid/dist/esm-node/validate.js +7 -0
  2650. package/node_modules/uuid/dist/esm-node/version.js +11 -0
  2651. package/node_modules/uuid/dist/index.js +79 -0
  2652. package/node_modules/uuid/dist/md5-browser.js +223 -0
  2653. package/node_modules/uuid/dist/md5.js +23 -0
  2654. package/node_modules/uuid/dist/nil.js +8 -0
  2655. package/node_modules/uuid/dist/parse.js +45 -0
  2656. package/node_modules/uuid/dist/regex.js +8 -0
  2657. package/node_modules/uuid/dist/rng-browser.js +26 -0
  2658. package/node_modules/uuid/dist/rng.js +24 -0
  2659. package/node_modules/uuid/dist/sha1-browser.js +104 -0
  2660. package/node_modules/uuid/dist/sha1.js +23 -0
  2661. package/node_modules/uuid/dist/stringify.js +39 -0
  2662. package/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  2663. package/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
  2664. package/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
  2665. package/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
  2666. package/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
  2667. package/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
  2668. package/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  2669. package/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  2670. package/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  2671. package/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  2672. package/node_modules/uuid/dist/uuid-bin.js +85 -0
  2673. package/node_modules/uuid/dist/v1.js +107 -0
  2674. package/node_modules/uuid/dist/v3.js +16 -0
  2675. package/node_modules/uuid/dist/v35.js +78 -0
  2676. package/node_modules/uuid/dist/v4.js +37 -0
  2677. package/node_modules/uuid/dist/v5.js +16 -0
  2678. package/node_modules/uuid/dist/validate.js +17 -0
  2679. package/node_modules/uuid/dist/version.js +21 -0
  2680. package/node_modules/uuid/package.json +135 -0
  2681. package/node_modules/uuid/wrapper.mjs +10 -0
  2682. package/node_modules/webidl-conversions/LICENSE.md +12 -0
  2683. package/node_modules/webidl-conversions/README.md +53 -0
  2684. package/node_modules/webidl-conversions/lib/index.js +189 -0
  2685. package/node_modules/webidl-conversions/package.json +23 -0
  2686. package/node_modules/whatwg-url/LICENSE.txt +21 -0
  2687. package/node_modules/whatwg-url/README.md +67 -0
  2688. package/node_modules/whatwg-url/lib/URL-impl.js +200 -0
  2689. package/node_modules/whatwg-url/lib/URL.js +196 -0
  2690. package/node_modules/whatwg-url/lib/public-api.js +11 -0
  2691. package/node_modules/whatwg-url/lib/url-state-machine.js +1297 -0
  2692. package/node_modules/whatwg-url/lib/utils.js +20 -0
  2693. package/node_modules/whatwg-url/node_modules/tr46/.npmignore +4 -0
  2694. package/node_modules/whatwg-url/node_modules/tr46/index.js +193 -0
  2695. package/node_modules/whatwg-url/node_modules/tr46/lib/.gitkeep +0 -0
  2696. package/node_modules/whatwg-url/node_modules/tr46/lib/mappingTable.json +1 -0
  2697. package/node_modules/whatwg-url/node_modules/tr46/package.json +31 -0
  2698. package/node_modules/whatwg-url/package.json +32 -0
  2699. package/node_modules/ws/LICENSE +21 -0
  2700. package/node_modules/ws/README.md +495 -0
  2701. package/node_modules/ws/browser.js +8 -0
  2702. package/node_modules/ws/index.js +10 -0
  2703. package/node_modules/ws/lib/buffer-util.js +129 -0
  2704. package/node_modules/ws/lib/constants.js +10 -0
  2705. package/node_modules/ws/lib/event-target.js +184 -0
  2706. package/node_modules/ws/lib/extension.js +223 -0
  2707. package/node_modules/ws/lib/limiter.js +55 -0
  2708. package/node_modules/ws/lib/permessage-deflate.js +518 -0
  2709. package/node_modules/ws/lib/receiver.js +607 -0
  2710. package/node_modules/ws/lib/sender.js +409 -0
  2711. package/node_modules/ws/lib/stream.js +180 -0
  2712. package/node_modules/ws/lib/validation.js +104 -0
  2713. package/node_modules/ws/lib/websocket-server.js +449 -0
  2714. package/node_modules/ws/lib/websocket.js +1197 -0
  2715. package/node_modules/ws/package.json +56 -0
  2716. package/package.json +4 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/nguyennguyen/Repos/racoons/cp-amm-sdk/dist/index.js","../src/CpAmm.ts","../src/idl/cp_amm.json","../src/types.ts","../src/pda.ts","../src/constants.ts","../src/helpers/token.ts","../src/helpers/fee.ts","../src/math/feeMath.ts","../src/math/mathUtils.ts","../src/helpers/curve.ts","../src/helpers/computeUnits.ts","../src/helpers/utils.ts","../src/helpers/accountFilters.ts","../src/helpers/priceMath.ts","../src/helpers/token2022.ts","../src/helpers/vestings.ts","../src/index.ts"],"names":["Rounding","ActivationPoint","FeeSchedulerMode","CollectFeeMode","TradeDirection","ActivationType","PublicKey","BN"],"mappings":"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AAEA,MAAA;AACA,MAAA;AACA,MAAA;AACQ,QAAA;AACmB,QAAA;AACZ,QAAA;AACX,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AAEJ,MAAA;AAEA,MAAA;AACE,QAAA;AACA,QAAA;AAA4D,MAAA;AAE9D,MAAA;AAEmB,QAAA;AACK,QAAA;AACpB,QAAA;AACwB,QAAA;AACD,QAAA;AACH,QAAA;AACpB,QAAA;AACA,QAAA;AACO,QAAA;AACP,MAAA;AAIW,IAAA;AACjB,EAAA;AACF;AD2oNA;AACA;AiB7jSA;AjB+jSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/Users/nguyennguyen/Repos/racoons/cp-amm-sdk/dist/index.js","sourcesContent":[null,"import { Program, BN } from \"@coral-xyz/anchor\";\nimport { NATIVE_MINT, TOKEN_2022_PROGRAM_ID } from \"@solana/spl-token\";\nimport invariant from \"invariant\";\n\nimport CpAmmIDL from \"./idl/cp_amm.json\";\nimport type { CpAmm as CpAmmTypes } from \"./idl/cp_amm\";\nimport {\n Connection,\n Transaction,\n PublicKey,\n TransactionInstruction,\n SystemProgram,\n AccountMeta,\n} from \"@solana/web3.js\";\nimport {\n AddLiquidityParams,\n AmmProgram,\n BuildAddLiquidityParams,\n BuildLiquidatePositionInstructionParams,\n BuildRemoveAllLiquidityInstructionParams,\n ClaimPartnerFeeParams,\n ClaimPositionFeeInstructionParams,\n ClaimPositionFeeParams,\n ClaimRewardParams,\n ClosePositionInstructionParams,\n ClosePositionParams,\n ConfigState,\n CreatePoolParams,\n CreatePositionAndAddLiquidity,\n CreatePositionParams,\n DepositQuote,\n DynamicFeeParams,\n FundRewardParams,\n GetDepositQuoteParams,\n GetQuoteParams,\n GetWithdrawQuoteParams,\n InitializeCustomizeablePoolParams,\n LiquidityDeltaParams,\n LockPositionParams,\n MergePositionParams,\n PermanentLockParams,\n PoolState,\n PositionState,\n PreparedPoolCreation,\n PreparePoolCreationParams,\n PreparePoolCreationSingleSide,\n RefreshVestingParams,\n RemoveAllLiquidityAndClosePositionParams,\n RemoveAllLiquidityParams,\n RemoveLiquidityParams,\n Rounding,\n SwapParams,\n TxBuilder,\n UpdateRewardDurationParams,\n UpdateRewardFunderParams,\n VestingState,\n WithdrawIneligibleRewardParams,\n WithdrawQuote,\n} from \"./types\";\nimport {\n deriveCustomizablePoolAddress,\n derivePoolAddress,\n derivePoolAuthority,\n derivePositionAddress,\n derivePositionNftAccount,\n deriveTokenBadgeAddress,\n deriveTokenVaultAddress,\n} from \"./pda\";\n\nimport {\n getFeeNumerator,\n getOrCreateATAInstruction,\n getTokenProgram,\n unwrapSOLInstruction,\n wrapSOLInstruction,\n getSwapAmount,\n getLiquidityDeltaFromAmountA,\n getLiquidityDeltaFromAmountB,\n getMinAmountWithSlippage,\n getPriceImpact,\n positionByPoolFilter,\n vestingByPositionFilter,\n calculateInitSqrtPrice,\n calculateTransferFeeExcludedAmount,\n calculateTransferFeeIncludedAmount,\n getAmountBFromLiquidityDelta,\n getAmountAFromLiquidityDelta,\n getAllUserPositionNftAccount,\n getAvailableVestingLiquidity,\n isVestingComplete,\n getAllPositionNftAccountByOwner,\n} from \"./helpers\";\nimport { min } from \"bn.js\";\n\n/**\n * CpAmm SDK class to interact with the Dynamic CP-AMM\n */\nexport class CpAmm {\n _program: AmmProgram;\n private poolAuthority: PublicKey;\n constructor(connection: Connection) {\n this._program = new Program(CpAmmIDL as CpAmmTypes, {\n connection: connection,\n });\n this.poolAuthority = derivePoolAuthority();\n }\n\n /**\n * Prepares token accounts for a transaction by retrieving or creating associated token accounts.\n * @private\n * @param {PublicKey} owner - The owner of the token accounts\n * @param {PublicKey} tokenAMint - Mint address of token A\n * @param {PublicKey} tokenBMint - Mint address of token B\n * @param {PublicKey} tokenAProgram - Program ID for token A (Token or Token2022)\n * @param {PublicKey} tokenBProgram - Program ID for token B (Token or Token2022)\n * @returns {Promise<{tokenAAta: PublicKey, tokenBAta: PublicKey, instructions: TransactionInstruction[]}>}\n * The token account addresses and any instructions needed to create them\n */\n private async prepareTokenAccounts(\n owner: PublicKey,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey,\n tokenAProgram: PublicKey,\n tokenBProgram: PublicKey\n ): Promise<{\n tokenAAta: PublicKey;\n tokenBAta: PublicKey;\n instructions: TransactionInstruction[];\n }> {\n const instructions: TransactionInstruction[] = [];\n const [\n { ataPubkey: tokenAAta, ix: createInputTokenAccountIx },\n { ataPubkey: tokenBAta, ix: createOutputTokenAccountIx },\n ] = await Promise.all([\n getOrCreateATAInstruction(\n this._program.provider.connection,\n tokenAMint,\n owner,\n owner,\n true,\n tokenAProgram\n ),\n getOrCreateATAInstruction(\n this._program.provider.connection,\n tokenBMint,\n owner,\n owner,\n true,\n tokenBProgram\n ),\n ]);\n createInputTokenAccountIx && instructions.push(createInputTokenAccountIx);\n createOutputTokenAccountIx && instructions.push(createOutputTokenAccountIx);\n\n return { tokenAAta, tokenBAta, instructions };\n }\n\n /**\n * Derives token badge account metadata\n * @param tokenAMint - Public key of token A mint\n * @param tokenBMint - Public key of token B mint\n * @returns Array of account metadata for token badges\n */\n private getTokenBadgeAccounts(\n tokenAMint: PublicKey,\n tokenBMint: PublicKey\n ): AccountMeta[] {\n return [\n {\n pubkey: deriveTokenBadgeAddress(tokenAMint),\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: deriveTokenBadgeAddress(tokenBMint),\n isWritable: false,\n isSigner: false,\n },\n ];\n }\n\n /**\n * Builds an instruction to add liquidity to a position.\n * @private\n * @param {BuildAddLiquidityParams} params - Parameters for adding liquidity\n * @returns {Promise<TransactionInstruction>} Instruction to add liquidity\n */\n private async buildAddLiquidityInstruction(\n params: BuildAddLiquidityParams\n ): Promise<TransactionInstruction> {\n const {\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n } = params;\n return await this._program.methods\n .addLiquidity({\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n })\n .accountsPartial({\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to remove all liquidity from a position.\n * @private\n * @param {BuildRemoveAllLiquidityInstructionParams} params - Parameters for removing all liquidity\n * @returns {Promise<TransactionInstruction>} Instruction to remove all liquidity\n */\n private async buildRemoveAllLiquidityInstruction(\n params: BuildRemoveAllLiquidityInstructionParams\n ): Promise<TransactionInstruction> {\n const {\n poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n } = params;\n return await this._program.methods\n .removeAllLiquidity(tokenAAmountThreshold, tokenBAmountThreshold)\n .accountsPartial({\n poolAuthority,\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to claim fees accumulated by a position.\n * @private\n * @param {ClaimPositionFeeInstructionParams} params - Parameters for claiming position fees\n * @returns {Promise<TransactionInstruction>} Instruction to claim position fees\n */\n private async buildClaimPositionFeeInstruction(\n params: ClaimPositionFeeInstructionParams\n ): Promise<TransactionInstruction> {\n const {\n owner,\n poolAuthority,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n } = params;\n return await this._program.methods\n .claimPositionFee()\n .accountsPartial({\n poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to close a position.\n * @private\n * @param {ClosePositionInstructionParams} params - Parameters for closing a position\n * @returns {Promise<TransactionInstruction>} Instruction to close the position\n */\n private async buildClosePositionInstruction(\n params: ClosePositionInstructionParams\n ): Promise<TransactionInstruction> {\n const {\n owner,\n poolAuthority,\n pool,\n position,\n positionNftAccount,\n positionNftMint,\n } = params;\n\n return await this._program.methods\n .closePosition()\n .accountsPartial({\n positionNftMint,\n positionNftAccount,\n pool,\n position,\n poolAuthority,\n rentReceiver: owner,\n owner,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to refresh vesting for a position\n * @param params Parameters required for the refresh vesting instruction\n * @returns Transaction instruction or null if no vestings to refresh\n */\n private async buildRefreshVestingInstruction(\n params: RefreshVestingParams\n ): Promise<TransactionInstruction | null> {\n const { owner, position, positionNftAccount, pool, vestingAccounts } =\n params;\n\n if (vestingAccounts.length == 0) {\n return null;\n }\n\n return await this._program.methods\n .refreshVesting()\n .accountsPartial({\n position,\n positionNftAccount,\n pool,\n owner,\n })\n .remainingAccounts(\n vestingAccounts.map((pubkey: PublicKey) => {\n return {\n isSigner: false,\n isWritable: true,\n pubkey,\n };\n })\n )\n .instruction();\n }\n\n /**\n * Helper function that builds instructions to claim fees, remove liquidity, and close a position\n * @param {BuildLiquidatePositionInstructionParams} params - Parameters for liquidating a position\n * @returns {Promise<TransactionInstruction[]>} Array of instructions\n * @private\n */\n private async buildLiquidatePositionInstruction(\n params: BuildLiquidatePositionInstructionParams\n ): Promise<TransactionInstruction[]> {\n const {\n owner,\n position,\n positionNftAccount,\n positionState,\n poolState,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n } = params;\n\n const { nftMint: positionNftMint, pool } = positionState;\n const { tokenAMint, tokenBMint, tokenAVault, tokenBVault } = poolState;\n\n const tokenAProgram = getTokenProgram(poolState.tokenAFlag);\n const tokenBProgram = getTokenProgram(poolState.tokenBFlag);\n\n const instructions: TransactionInstruction[] = [];\n\n // 1. claim position fee\n const claimPositionFeeInstruction =\n await this.buildClaimPositionFeeInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n instructions.push(claimPositionFeeInstruction);\n\n // 2. remove all liquidity\n const removeAllLiquidityInstruction =\n await this.buildRemoveAllLiquidityInstruction({\n poolAuthority: this.poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n });\n instructions.push(removeAllLiquidityInstruction);\n // 3. close position\n const closePositionInstruction = await this.buildClosePositionInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftMint,\n positionNftAccount,\n });\n instructions.push(closePositionInstruction);\n\n return instructions;\n }\n\n /**\n * Builds a instruction to create a position.\n * @param {CreatePositionParams} params - Parameters for position creation.\n * @returns Transaction instruction.\n */\n private async buildCreatePositionInstruction(\n params: CreatePositionParams\n ): Promise<{\n ix: TransactionInstruction;\n position: PublicKey;\n positionNftAccount: PublicKey;\n }> {\n const { owner, payer, pool, positionNft } = params;\n\n const position = derivePositionAddress(positionNft);\n const positionNftAccount = derivePositionNftAccount(positionNft);\n\n const ix = await this._program.methods\n .createPosition()\n .accountsPartial({\n owner,\n positionNftMint: positionNft,\n poolAuthority: this.poolAuthority,\n positionNftAccount,\n payer: payer,\n pool,\n position,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n systemProgram: SystemProgram.programId,\n })\n .instruction();\n\n return {\n ix,\n position,\n positionNftAccount,\n };\n }\n\n /**\n * Fetches the Config state of the program.\n * @param config - Public key of the config account.\n * @returns Parsed ConfigState.\n */\n async fetchConfigState(config: PublicKey): Promise<ConfigState> {\n const configState = await this._program.account.config.fetchNullable(\n config\n );\n invariant(configState, `Config account: ${config} not found`);\n\n return configState;\n }\n\n /**\n * Fetches the Pool state.\n * @param pool - Public key of the pool.\n * @returns Parsed PoolState.\n */\n async fetchPoolState(pool: PublicKey): Promise<PoolState> {\n const poolState = await this._program.account.pool.fetchNullable(pool);\n invariant(poolState, `Pool account: ${pool} not found`);\n\n return poolState;\n }\n\n /**\n * Fetches the Position state.\n * @param position - Public key of the position.\n * @returns Parsed PositionState.\n */\n async fetchPositionState(position: PublicKey): Promise<PositionState> {\n const positionState = await this._program.account.position.fetchNullable(\n position\n );\n invariant(positionState, `Position account: ${position} not found`);\n\n return positionState;\n }\n\n /**\n * Retrieves all config accounts.\n * @returns Array of config public keys and their states.\n */\n async getAllConfigs(): Promise<\n Array<{ publicKey: PublicKey; account: ConfigState }>\n > {\n const configAccounts = await this._program.account.config.all();\n\n return configAccounts;\n }\n\n /**\n * Retrieves all pool accounts.\n * @returns Array of pool public keys and their states.\n */\n async getAllPools(): Promise<\n Array<{ publicKey: PublicKey; account: PoolState }>\n > {\n const poolAccounts = await this._program.account.pool.all();\n\n return poolAccounts;\n }\n\n /**\n * Retrieves all position accounts.\n * @returns Array of position public keys and their states.\n */\n async getAllPositions(): Promise<\n Array<{\n publicKey: PublicKey;\n account: PositionState;\n }>\n > {\n const poolAccounts = await this._program.account.position.all();\n\n return poolAccounts;\n }\n\n /**\n * Gets all positions a specific pool.\n * @param pool - Public key of the pool.\n * @returns List of user positions for the pool.\n */\n async getAllPositionsByPool(pool: PublicKey): Promise<\n Array<{\n publicKey: PublicKey;\n account: PositionState;\n }>\n > {\n return await this._program.account.position.all([\n positionByPoolFilter(pool),\n ]);\n }\n\n /**\n * Gets all positions of a user for a specific pool.\n * @param pool - Public key of the pool.\n * @param user - Public key of the user.\n * @returns List of user positions for the pool.\n */\n async getUserPositionByPool(\n pool: PublicKey,\n user: PublicKey\n ): Promise<\n Array<{\n positionNftAccount: PublicKey;\n position: PublicKey;\n positionState: PositionState;\n }>\n > {\n const allUserPositions = await this.getPositionsByUser(user);\n return allUserPositions.filter((position) =>\n position.positionState.pool.equals(pool)\n );\n }\n\n /**\n * Gets all positions of a user across all pools.\n * @param user - Public key of the user.\n * @returns Array of user positions already sorted by liquidity\n */\n async getPositionsByUser(user: PublicKey): Promise<\n Array<{\n positionNftAccount: PublicKey;\n position: PublicKey;\n positionState: PositionState;\n }>\n > {\n const userPositionAccounts = await getAllPositionNftAccountByOwner(\n this._program.provider.connection,\n user\n );\n if (userPositionAccounts.length === 0) {\n return [];\n }\n\n const positionAddresses = userPositionAccounts.map((account) =>\n derivePositionAddress(account.positionNft)\n );\n\n const positionStates = await this._program.account.position.fetchMultiple(\n positionAddresses\n );\n const positionResult = userPositionAccounts\n .map((account, index) => {\n const positionState = positionStates[index];\n if (!positionState) return null;\n\n return {\n positionNftAccount: account.positionNftAccount,\n position: positionAddresses[index],\n positionState,\n };\n })\n .filter(Boolean);\n\n // in-place sort\n positionResult.sort((a, b) => {\n const totalLiquidityA = a.positionState.vestedLiquidity\n .add(a.positionState.permanentLockedLiquidity)\n .add(a.positionState.unlockedLiquidity);\n\n const totalLiquidityB = b.positionState.vestedLiquidity\n .add(b.positionState.permanentLockedLiquidity)\n .add(b.positionState.unlockedLiquidity);\n\n return totalLiquidityB.cmp(totalLiquidityA);\n });\n\n return positionResult;\n }\n\n async getAllVestingsByPosition(position: PublicKey): Promise<\n Array<{\n publicKey: PublicKey;\n account: VestingState;\n }>\n > {\n const vestings = await this._program.account.vesting.all([\n vestingByPositionFilter(position),\n ]);\n\n return vestings;\n }\n\n isLockedPosition(position: PositionState): boolean {\n const totalLockedLiquidity = position.vestedLiquidity.add(\n position.permanentLockedLiquidity\n );\n\n return totalLockedLiquidity.gtn(0);\n }\n\n isPermanentLockedPosition(positionState: PositionState): boolean {\n return positionState.permanentLockedLiquidity.gtn(0);\n }\n\n /**\n * Checks if a position can be unlocked based on its locking state and vesting schedules.\n *\n * This method evaluates whether a position is eligible for operations that require\n * unlocked liquidity, such as removing all liquidity or closing the position. It checks both\n * permanent locks and time-based vesting schedules.\n *\n * @private\n * @param {PositionState} positionState - The current state of the position\n * @param {Array<{account: PublicKey; vestingState: VestingState}>} vestings - Array of vesting accounts and their states\n * @param {BN} currentPoint - Current timestamp or slot number (depending on activation type of pool)\n *\n * @returns {Object} Result object containing unlock status and reason\n * @returns {boolean} result.canUnlock - Whether the position can be unlocked\n * @returns {string|undefined} result.reason - Reason why position cannot be unlocked (if applicable)\n */\n canUnlockPosition(\n positionState: PositionState,\n vestings: Array<{ account: PublicKey; vestingState: VestingState }>,\n currentPoint: BN\n ): { canUnlock: boolean; reason?: string } {\n if (vestings.length > 0) {\n // Check if permanently locked\n if (this.isPermanentLockedPosition(positionState)) {\n return {\n canUnlock: false,\n reason: \"Position is permanently locked\",\n };\n }\n\n // Check each vesting\n // We expect that should have only one vesting per position\n for (const vesting of vestings) {\n if (!isVestingComplete(vesting.vestingState, currentPoint)) {\n return {\n canUnlock: false,\n reason: \"Position has incomplete vesting schedule\",\n };\n }\n }\n }\n\n return { canUnlock: true };\n }\n\n async isPoolExist(pool: PublicKey): Promise<boolean> {\n const poolState = await this._program.account.pool.fetchNullable(pool);\n return poolState !== null;\n }\n\n /**\n * Computes the liquidity delta based on the provided token amounts and sqrt price\n *\n * @param {LiquidityDeltaParams} params - The parameters for liquidity calculation\n * @returns {Promise<BN>} - The computed liquidity delta in Q64 value.\n */\n getLiquidityDelta(params: LiquidityDeltaParams): BN {\n const {\n maxAmountTokenA,\n maxAmountTokenB,\n sqrtMaxPrice,\n sqrtMinPrice,\n sqrtPrice,\n } = params;\n\n const liquidityDeltaFromAmountA = getLiquidityDeltaFromAmountA(\n maxAmountTokenA,\n sqrtPrice,\n sqrtMaxPrice\n );\n\n const liquidityDeltaFromAmountB = getLiquidityDeltaFromAmountB(\n maxAmountTokenB,\n sqrtMinPrice,\n sqrtPrice\n );\n\n return min(liquidityDeltaFromAmountA, liquidityDeltaFromAmountB);\n }\n\n /**\n * Calculates swap quote based on input amount and pool state.\n * @param params - Swap parameters including input amount, pool state, slippage, etc.\n * @returns Swap quote including expected output amount, fee, and price impact.\n */\n getQuote(params: GetQuoteParams): {\n swapInAmount: BN;\n consumedInAmount: BN;\n swapOutAmount: BN;\n minSwapOutAmount: BN;\n totalFee: BN;\n priceImpact: number;\n } {\n const {\n inAmount,\n inputTokenMint,\n slippage,\n poolState,\n currentTime,\n currentSlot,\n inputTokenInfo,\n outputTokenInfo,\n } = params;\n const {\n sqrtPrice: sqrtPriceQ64,\n liquidity: liquidityQ64,\n activationType,\n activationPoint,\n collectFeeMode,\n poolFees,\n } = poolState;\n const {\n feeSchedulerMode,\n cliffFeeNumerator,\n numberOfPeriod,\n reductionFactor,\n periodFrequency,\n } = poolFees.baseFee;\n const dynamicFee = poolFees.dynamicFee;\n\n let actualAmountIn = inAmount;\n if (inputTokenInfo) {\n actualAmountIn = calculateTransferFeeExcludedAmount(\n inAmount,\n inputTokenInfo.mint,\n inputTokenInfo.currentEpoch\n ).amount;\n }\n const aToB = poolState.tokenAMint.equals(inputTokenMint);\n const currentPoint = activationType ? currentTime : currentSlot;\n\n let dynamicFeeParams: DynamicFeeParams;\n if (dynamicFee.initialized) {\n const { volatilityAccumulator, binStep, variableFeeControl } = dynamicFee;\n dynamicFeeParams = { volatilityAccumulator, binStep, variableFeeControl };\n }\n\n const tradeFeeNumerator = getFeeNumerator(\n currentPoint,\n activationPoint,\n numberOfPeriod,\n periodFrequency,\n feeSchedulerMode,\n cliffFeeNumerator,\n reductionFactor,\n dynamicFeeParams\n );\n\n const { amountOut, totalFee } = getSwapAmount(\n actualAmountIn,\n sqrtPriceQ64,\n liquidityQ64,\n tradeFeeNumerator,\n aToB,\n collectFeeMode\n );\n\n let actualAmountOut = amountOut;\n if (outputTokenInfo) {\n actualAmountOut = calculateTransferFeeExcludedAmount(\n amountOut,\n outputTokenInfo.mint,\n outputTokenInfo.currentEpoch\n ).amount;\n }\n\n const minSwapOutAmount = getMinAmountWithSlippage(\n actualAmountOut,\n slippage\n );\n\n return {\n swapInAmount: inAmount,\n consumedInAmount: actualAmountIn,\n swapOutAmount: actualAmountOut,\n minSwapOutAmount,\n totalFee,\n priceImpact: getPriceImpact(minSwapOutAmount, actualAmountOut),\n };\n }\n\n /**\n * Calculates the deposit quote for liquidity pool.\n *\n * @param {GetDepositQuoteParams} params - The parameters for calculating the deposit quote.\n *\n * @returns {Promise<Object>} Deposit quote results\n * @returns {BN} returns.actualInputAmount - The actual amount used as input (after deducting transfer fees).\n * @returns {BN} returns.outputAmount - The calculated corresponding amount of the other token.\n * @returns {BN} returns.liquidityDelta - The amount of liquidity that will be added to the pool.\n */\n getDepositQuote(params: GetDepositQuoteParams): DepositQuote {\n const {\n inAmount,\n isTokenA,\n inputTokenInfo,\n outputTokenInfo,\n minSqrtPrice,\n maxSqrtPrice,\n sqrtPrice,\n } = params;\n\n const actualAmountIn = inputTokenInfo\n ? inAmount.sub(\n calculateTransferFeeIncludedAmount(\n inAmount,\n inputTokenInfo.mint,\n inputTokenInfo.currentEpoch\n ).transferFee\n )\n : inAmount;\n\n const { liquidityDelta, rawAmount } = isTokenA\n ? {\n liquidityDelta: getLiquidityDeltaFromAmountA(\n actualAmountIn,\n sqrtPrice,\n maxSqrtPrice\n ),\n rawAmount: (delta: BN) =>\n getAmountBFromLiquidityDelta(\n delta,\n sqrtPrice,\n minSqrtPrice,\n Rounding.Up\n ),\n }\n : {\n liquidityDelta: getLiquidityDeltaFromAmountB(\n actualAmountIn,\n minSqrtPrice,\n sqrtPrice\n ),\n rawAmount: (delta: BN) =>\n getAmountAFromLiquidityDelta(\n delta,\n sqrtPrice,\n maxSqrtPrice,\n Rounding.Up\n ),\n };\n\n const rawOutputAmount = new BN(rawAmount(liquidityDelta));\n const outputAmount = outputTokenInfo\n ? calculateTransferFeeIncludedAmount(\n rawOutputAmount,\n outputTokenInfo.mint,\n outputTokenInfo.currentEpoch\n ).amount\n : rawOutputAmount;\n\n return {\n actualInputAmount: actualAmountIn,\n consumedInputAmount: inAmount,\n liquidityDelta,\n outputAmount,\n };\n }\n\n /**\n * Calculates the withdrawal quote for removing liquidity from a concentrated liquidity pool.\n *\n * @param {GetWithdrawQuoteParams} params - The parameters for calculating the withdraw quote\n *\n * @param {Object|null} params.tokenATokenInfo - must provide if token a is token2022\n * @param {Object|null} params.tokenBTokenInfo - must provide if token b is token2022\n *\n * @returns {Promise<Object>} Withdrawal quote results\n * @returns {BN} returns.liquidityDelta - The amount of liquidity that will be removed from the pool\n * @returns {BN} returns.outAmountA - The calculated amount of token A to be received (after deducting transfer fees)\n * @returns {BN} returns.outAmountB - The calculated amount of token B to be received (after deducting transfer fees)\n */\n getWithdrawQuote(params: GetWithdrawQuoteParams): WithdrawQuote {\n const {\n liquidityDelta,\n sqrtPrice,\n maxSqrtPrice,\n minSqrtPrice,\n tokenATokenInfo,\n tokenBTokenInfo,\n } = params;\n const amountA = getAmountAFromLiquidityDelta(\n liquidityDelta,\n sqrtPrice,\n maxSqrtPrice,\n Rounding.Down\n );\n const amountB = getAmountBFromLiquidityDelta(\n liquidityDelta,\n sqrtPrice,\n minSqrtPrice,\n Rounding.Down\n );\n\n return {\n liquidityDelta,\n outAmountA: tokenATokenInfo\n ? calculateTransferFeeExcludedAmount(\n amountA,\n tokenATokenInfo.mint,\n tokenATokenInfo.currentEpoch\n ).amount\n : amountA,\n outAmountB: tokenBTokenInfo\n ? calculateTransferFeeExcludedAmount(\n amountB,\n tokenBTokenInfo.mint,\n tokenBTokenInfo.currentEpoch\n ).amount\n : amountB,\n };\n }\n\n /**\n * Calculates liquidity and corresponding token amounts for token A single-sided pool creation\n * Only supports initialization where initial price equals min sqrt price\n * @param params Parameters for single-sided pool creation\n * @returns Calculated liquidity delta\n */\n preparePoolCreationSingleSide(params: PreparePoolCreationSingleSide): BN {\n const {\n tokenAAmount,\n initSqrtPrice,\n minSqrtPrice,\n maxSqrtPrice,\n tokenAInfo,\n } = params;\n\n if (!initSqrtPrice.eq(minSqrtPrice)) {\n throw new Error(\"Only support single side for base token.\");\n }\n\n const actualAmountIn = tokenAInfo\n ? tokenAAmount.sub(\n calculateTransferFeeIncludedAmount(\n tokenAAmount,\n tokenAInfo.mint,\n tokenAInfo.currentEpoch\n ).transferFee\n )\n : tokenAAmount;\n\n const liquidityDelta = getLiquidityDeltaFromAmountA(\n actualAmountIn,\n initSqrtPrice,\n maxSqrtPrice\n );\n\n return liquidityDelta;\n }\n\n /**\n * Prepares parameters required for pool creation, including initial sqrt price and liquidity.\n * @private\n * @param {PreparePoolCreationParams} params - Initial token amounts for pool creation.\n * @returns init sqrt price and liquidity in Q64 format.\n */\n preparePoolCreationParams(\n params: PreparePoolCreationParams\n ): PreparedPoolCreation {\n const {\n tokenAAmount,\n tokenBAmount,\n minSqrtPrice,\n maxSqrtPrice,\n tokenAInfo,\n tokenBInfo,\n } = params;\n\n if (tokenAAmount.eq(new BN(0)) && tokenBAmount.eq(new BN(0))) {\n throw new Error(\"Invalid input amount\");\n }\n\n const actualAmountAIn = tokenAInfo\n ? tokenAAmount.sub(\n calculateTransferFeeIncludedAmount(\n tokenAAmount,\n tokenAInfo.mint,\n tokenAInfo.currentEpoch\n ).transferFee\n )\n : tokenAAmount;\n\n const actualAmountBIn = tokenBInfo\n ? tokenBAmount.sub(\n calculateTransferFeeIncludedAmount(\n tokenBAmount,\n tokenBInfo.mint,\n tokenBInfo.currentEpoch\n ).transferFee\n )\n : tokenBAmount;\n\n const initSqrtPrice = calculateInitSqrtPrice(\n tokenAAmount,\n tokenBAmount,\n minSqrtPrice,\n maxSqrtPrice\n );\n\n const liquidityDeltaFromAmountA = getLiquidityDeltaFromAmountA(\n actualAmountAIn,\n initSqrtPrice,\n maxSqrtPrice\n );\n\n const liquidityDeltaFromAmountB = getLiquidityDeltaFromAmountB(\n actualAmountBIn,\n minSqrtPrice,\n initSqrtPrice\n );\n\n const liquidityDelta = min(\n liquidityDeltaFromAmountA,\n liquidityDeltaFromAmountB\n );\n\n return {\n initSqrtPrice,\n liquidityDelta,\n };\n }\n\n /**\n * Builds a transaction to create a permissionless pool.\n * @param params - Parameters for pool creation.\n * @returns Transaction builder.\n */\n async createPool(params: CreatePoolParams): TxBuilder {\n const {\n payer,\n creator,\n config,\n positionNft,\n tokenAMint,\n tokenBMint,\n initSqrtPrice,\n liquidityDelta,\n activationPoint,\n tokenAAmount,\n tokenBAmount,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const pool = derivePoolAddress(config, tokenAMint, tokenBMint);\n\n const position = derivePositionAddress(positionNft);\n const positionNftAccount = derivePositionNftAccount(positionNft);\n\n const tokenAVault = deriveTokenVaultAddress(tokenAMint, pool);\n const tokenBVault = deriveTokenVaultAddress(tokenBMint, pool);\n\n const {\n tokenAAta: payerTokenA,\n tokenBAta: payerTokenB,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n payer,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n payerTokenA,\n BigInt(tokenAAmount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n payerTokenB,\n BigInt(tokenBAmount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const tokenBadgeAccounts = this.getTokenBadgeAccounts(\n tokenAMint,\n tokenBMint\n );\n\n const tx = await this._program.methods\n .initializePool({\n liquidity: liquidityDelta,\n sqrtPrice: initSqrtPrice,\n activationPoint: activationPoint,\n })\n .accountsPartial({\n creator,\n positionNftAccount,\n positionNftMint: positionNft,\n payer: payer,\n config,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n token2022Program: TOKEN_2022_PROGRAM_ID,\n tokenAProgram,\n tokenBProgram,\n systemProgram: SystemProgram.programId,\n })\n .preInstructions(preInstructions)\n .remainingAccounts(tokenBadgeAccounts)\n .transaction();\n\n return tx;\n }\n\n /**\n * Builds a transaction to create a customizable pool.\n * @param params - Parameters for customizable pool creation.\n * @returns Transaction and related addresses.\n */\n async createCustomPool(params: InitializeCustomizeablePoolParams): Promise<{\n tx: Transaction;\n pool: PublicKey;\n position: PublicKey;\n }> {\n const {\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount,\n sqrtMinPrice,\n sqrtMaxPrice,\n liquidityDelta,\n initSqrtPrice,\n payer,\n creator,\n positionNft,\n poolFees,\n hasAlphaVault,\n collectFeeMode,\n activationPoint,\n activationType,\n tokenAProgram,\n tokenBProgram,\n } = params;\n const pool = deriveCustomizablePoolAddress(tokenAMint, tokenBMint);\n const position = derivePositionAddress(positionNft);\n const positionNftAccount = derivePositionNftAccount(positionNft);\n\n const tokenAVault = deriveTokenVaultAddress(tokenAMint, pool);\n const tokenBVault = deriveTokenVaultAddress(tokenBMint, pool);\n\n const {\n tokenAAta: payerTokenA,\n tokenBAta: payerTokenB,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n payer,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n payerTokenA,\n BigInt(tokenAAmount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const lamports = tokenBAmount.eq(new BN(0)) ? new BN(1) : tokenBAmount;\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n payerTokenB,\n BigInt(lamports.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n const tokenBadgeAccounts = this.getTokenBadgeAccounts(\n tokenAMint,\n tokenBMint\n );\n\n const transaction = await this._program.methods\n .initializeCustomizablePool({\n poolFees,\n sqrtMinPrice,\n sqrtMaxPrice,\n hasAlphaVault,\n liquidity: liquidityDelta,\n sqrtPrice: initSqrtPrice,\n activationType,\n collectFeeMode,\n activationPoint,\n })\n .accountsPartial({\n creator,\n positionNftAccount,\n positionNftMint: positionNft,\n payer: payer,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n token2022Program: TOKEN_2022_PROGRAM_ID,\n tokenAProgram,\n tokenBProgram,\n systemProgram: SystemProgram.programId,\n })\n .preInstructions(preInstructions)\n .remainingAccounts(tokenBadgeAccounts)\n .transaction();\n\n return { tx: transaction, pool, position };\n }\n\n /**\n * Builds a transaction to create a position.\n * @param {CreatePositionParams} params - Parameters for position creation.\n * @returns Transaction builder.\n */\n async createPosition(params: CreatePositionParams): TxBuilder {\n const { ix } = await this.buildCreatePositionInstruction(params);\n return new Transaction().add(ix);\n }\n\n /**\n * Builds a transaction to add liquidity to an existing position.\n * @param {AddLiquidityParams} params - Parameters for adding liquidity.\n * @returns Transaction builder.\n */\n async addLiquidity(params: AddLiquidityParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n liquidityDelta,\n maxAmountTokenA,\n maxAmountTokenB,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenAAccount,\n BigInt(maxAmountTokenA.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenBAccount,\n BigInt(maxAmountTokenB.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n const addLiquidityInstruction = await this.buildAddLiquidityInstruction({\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n });\n\n const transaction = new Transaction();\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n addLiquidityInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Creates a new position and add liquidity to position it in a single transaction.\n * Handles both native SOL and other tokens, automatically wrapping/unwrapping SOL as needed.\n *\n * @param {CreatePositionAndAddLiquidity} params - Parameters for creating position and adding liquidity\n *\n * @returns {Transaction} A transaction that creates a position and adds liquidity\n *\n **/\n async createPositionAndAddLiquidity(\n params: CreatePositionAndAddLiquidity\n ): TxBuilder {\n const {\n owner,\n pool,\n positionNft,\n liquidityDelta,\n maxAmountTokenA,\n maxAmountTokenB,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenAAccount,\n BigInt(maxAmountTokenA.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenBAccount,\n BigInt(maxAmountTokenB.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n const {\n ix: createPositionIx,\n position,\n positionNftAccount,\n } = await this.buildCreatePositionInstruction({\n owner,\n payer: owner,\n pool,\n positionNft,\n });\n\n const addLiquidityInstruction = await this.buildAddLiquidityInstruction({\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n });\n\n const transaction = new Transaction();\n transaction.add(createPositionIx);\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n addLiquidityInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Builds a transaction to remove liquidity from a position.\n * @param {RemoveLiquidityParams} params - Parameters for removing liquidity.\n * @returns Transaction builder.\n */\n async removeLiquidity(params: RemoveLiquidityParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n vestings,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n if (vestings.length > 0) {\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position,\n positionNftAccount,\n pool,\n vestingAccounts: vestings.map((item) => item.account),\n });\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n return await this._program.methods\n .removeLiquidity({\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n })\n .accountsPartial({\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to remove liquidity from a position.\n * @param {RemoveLiquidityParams} params - Parameters for removing liquidity.\n * @returns Transaction builder.\n */\n async removeAllLiquidity(params: RemoveAllLiquidityParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n vestings,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n if (vestings.length > 0) {\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position,\n positionNftAccount,\n pool,\n vestingAccounts: vestings.map((item) => item.account),\n });\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n const removeAllLiquidityInstruction =\n await this.buildRemoveAllLiquidityInstruction({\n poolAuthority: this.poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n });\n\n const transaction = new Transaction();\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n removeAllLiquidityInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Builds a transaction to perform a swap in the pool.\n * @param {SwapParams} params - Parameters for swapping tokens.\n * @returns Transaction builder.\n */\n async swap(params: SwapParams): TxBuilder {\n const {\n payer,\n pool,\n inputTokenMint,\n outputTokenMint,\n amountIn,\n minimumAmountOut,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n referralTokenAccount,\n } = params;\n\n const [inputTokenProgram, outputTokenProgram] = inputTokenMint.equals(\n tokenAMint\n )\n ? [tokenAProgram, tokenBProgram]\n : [tokenBProgram, tokenAProgram];\n\n const {\n tokenAAta: inputTokenAccount,\n tokenBAta: outputTokenAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n payer,\n inputTokenMint,\n outputTokenMint,\n inputTokenProgram,\n outputTokenProgram\n );\n\n if (inputTokenMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n inputTokenAccount,\n BigInt(amountIn.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(payer);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n return await this._program.methods\n .swap({\n amountIn,\n minimumAmountOut,\n })\n .accountsPartial({\n poolAuthority: this.poolAuthority,\n pool,\n payer,\n inputTokenAccount,\n outputTokenAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n referralTokenAccount,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to lock a position with vesting schedule.\n * @param {LockPositionParams} params - Locking parameters.\n * @returns Transaction builder.\n */\n async lockPosition(params: LockPositionParams): TxBuilder {\n const {\n owner,\n pool,\n payer,\n vestingAccount,\n position,\n positionNftAccount,\n cliffPoint,\n periodFrequency,\n cliffUnlockLiquidity,\n liquidityPerPeriod,\n numberOfPeriod,\n } = params;\n const lockPositionParams = {\n cliffPoint,\n periodFrequency,\n cliffUnlockLiquidity,\n liquidityPerPeriod,\n numberOfPeriod,\n };\n return await this._program.methods\n .lockPosition(lockPositionParams)\n .accountsPartial({\n position,\n positionNftAccount,\n vesting: vestingAccount,\n pool: pool,\n owner: owner,\n payer: payer,\n systemProgram: SystemProgram.programId,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to permanently lock a position.\n * @param {PermanentLockParams} params - Parameters for permanent locking.\n * @returns Transaction builder.\n */\n async permanentLockPosition(params: PermanentLockParams): TxBuilder {\n const { owner, position, positionNftAccount, pool, unlockedLiquidity } =\n params;\n\n return await this._program.methods\n .permanentLockPosition(unlockedLiquidity)\n .accountsPartial({\n position,\n positionNftAccount,\n pool: pool,\n owner: owner,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to refresh vesting status of a position.\n * @param {RefreshVestingParams} params - Refresh vesting parameters.\n * @returns Transaction builder.\n */\n async refreshVesting(params: RefreshVestingParams): TxBuilder {\n const instruction = await this.buildRefreshVestingInstruction(params);\n\n return new Transaction().add(instruction);\n }\n\n /**\n * Builds a transaction to claim position fee rewards.\n * @param {ClaimPositionFeeParams} params - Parameters for claiming position fee.\n * @returns Transaction builder.\n */\n async claimPositionFee(params: ClaimPositionFeeParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n const claimPositionFeeInstruction =\n await this.buildClaimPositionFeeInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n const transaction = new Transaction();\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n claimPositionFeeInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n async closePosition(params: ClosePositionParams): TxBuilder {\n const { owner, pool, position, positionNftMint, positionNftAccount } =\n params;\n\n const instruction = await this.buildClosePositionInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftMint,\n positionNftAccount,\n });\n\n return new Transaction().add(instruction);\n }\n\n /**\n * Builds a transaction to remove all liquidity from a position and close it.\n * This combines several operations in a single transaction:\n * 1. Claims any accumulated fees\n * 2. Removes all liquidity\n * 3. Closes the position\n *\n * @param {RemoveAllLiquidityAndClosePositionParams} params - Combined parameters\n * @returns {TxBuilder} Transaction builder with all required instructions\n * @throws {Error} If the position is locked or cannot be closed\n */\n async removeAllLiquidityAndClosePosition(\n params: RemoveAllLiquidityAndClosePositionParams\n ): TxBuilder {\n const {\n owner,\n position,\n positionNftAccount,\n positionState,\n poolState,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n vestings,\n currentPoint,\n } = params;\n\n const { pool } = positionState;\n const { tokenAMint, tokenBMint } = poolState;\n\n const { canUnlock, reason } = this.canUnlockPosition(\n positionState,\n vestings,\n currentPoint\n );\n\n if (!canUnlock) {\n throw new Error(`Cannot remove liquidity: ${reason}`);\n }\n\n const tokenAProgram = getTokenProgram(poolState.tokenAFlag);\n const tokenBProgram = getTokenProgram(poolState.tokenBFlag);\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n // 1. refresh vesting if vesting account provided\n if (vestings.length > 0) {\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position,\n positionNftAccount,\n pool,\n vestingAccounts: vestings.map((item) => item.account),\n });\n\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n const transaction = new Transaction();\n\n if (preInstructions.length > 0) {\n transaction.add(...preInstructions);\n }\n\n // 2. claim fee, remove liquidity and close position\n const liquidatePositionInstructions =\n await this.buildLiquidatePositionInstruction({\n owner,\n position,\n positionNftAccount,\n positionState,\n poolState,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n });\n\n transaction.add(...liquidatePositionInstructions);\n\n if (postInstructions.length > 0) {\n transaction.add(...postInstructions);\n }\n\n return transaction;\n }\n\n /**\n * Builds a transaction to merge liquidity from one position into another.\n * This process:\n * 1. Claims fees from the source position\n * 2. Removes all liquidity from the source position\n * 3. Adds that liquidity to the target position\n * 4. Closes the source position\n *\n * @param {MergePositionParams} params - Parameters for merging positions\n * @returns {TxBuilder} Transaction builder with all required instructions\n * @throws {Error} If either position is locked or incompatible\n */\n async mergePosition(params: MergePositionParams): TxBuilder {\n const {\n owner,\n positionA,\n positionB,\n positionBState,\n poolState,\n positionBNftAccount,\n positionANftAccount,\n tokenAAmountAddLiquidityThreshold,\n tokenBAmountAddLiquidityThreshold,\n tokenAAmountRemoveLiquidityThreshold,\n tokenBAmountRemoveLiquidityThreshold,\n positionBVestings,\n currentPoint,\n } = params;\n\n const { canUnlock, reason } = this.canUnlockPosition(\n positionBState,\n positionBVestings,\n currentPoint\n );\n\n if (!canUnlock) {\n throw new Error(`Cannot remove liquidity: ${reason}`);\n }\n\n const pool = positionBState.pool;\n const { tokenAMint, tokenBMint, tokenAVault, tokenBVault } = poolState;\n\n const tokenAProgram = getTokenProgram(poolState.tokenAFlag);\n const tokenBProgram = getTokenProgram(poolState.tokenBFlag);\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n let positionBLiquidityDelta = positionBState.unlockedLiquidity;\n // 1. refresh vesting position B if vesting account provided\n if (positionBVestings.length > 0) {\n // accumulate all liquidity delta of position b (unlocked + available vesting)\n const totalAvailableVestingLiquidity = positionBVestings.reduce(\n (total, position) => {\n const available = getAvailableVestingLiquidity(\n position.vestingState,\n currentPoint\n );\n return total.add(available);\n },\n new BN(0)\n );\n\n positionBLiquidityDelta = positionBLiquidityDelta.add(\n totalAvailableVestingLiquidity\n );\n\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position: positionB,\n positionNftAccount: positionBNftAccount,\n pool,\n vestingAccounts: positionBVestings.map((item) => item.account),\n });\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n // recalculate liquidity delta\n const tokenAWithdrawAmount = getAmountAFromLiquidityDelta(\n positionBLiquidityDelta,\n poolState.sqrtPrice,\n poolState.sqrtMaxPrice,\n Rounding.Down\n );\n\n const tokenBWithdrawAmount = getAmountBFromLiquidityDelta(\n positionBLiquidityDelta,\n poolState.sqrtPrice,\n poolState.sqrtMinPrice,\n Rounding.Down\n );\n\n const newLiquidityDelta = this.getLiquidityDelta({\n maxAmountTokenA: tokenAWithdrawAmount,\n maxAmountTokenB: tokenBWithdrawAmount,\n sqrtMaxPrice: poolState.sqrtMaxPrice,\n sqrtMinPrice: poolState.sqrtMinPrice,\n sqrtPrice: poolState.sqrtPrice,\n });\n\n const transaction = new Transaction();\n\n if (preInstructions.length > 0) {\n transaction.add(...preInstructions);\n }\n\n // 2. claim fee, remove liquidity and close position\n const liquidatePositionInstructions =\n await this.buildLiquidatePositionInstruction({\n owner,\n position: positionB,\n positionNftAccount: positionBNftAccount,\n positionState: positionBState,\n poolState,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold: tokenAAmountRemoveLiquidityThreshold,\n tokenBAmountThreshold: tokenBAmountRemoveLiquidityThreshold,\n });\n\n transaction.add(...liquidatePositionInstructions);\n\n // 3. add liquidity from position B to positon A\n const addLiquidityInstruction = await this.buildAddLiquidityInstruction({\n pool,\n position: positionA,\n positionNftAccount: positionANftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta: newLiquidityDelta,\n tokenAAmountThreshold: tokenAAmountAddLiquidityThreshold,\n tokenBAmountThreshold: tokenBAmountAddLiquidityThreshold,\n });\n\n transaction.add(addLiquidityInstruction);\n\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && transaction.add(closeWrappedSOLIx);\n }\n\n return transaction;\n }\n\n /**\n * Builds a transaction to update reward duration.\n * @param {UpdateRewardDurationParams} params - Parameters including pool and new duration.\n * @returns Transaction builder.\n */\n async updateRewardDuration(params: UpdateRewardDurationParams): TxBuilder {\n const { pool, admin, rewardIndex, newDuration } = params;\n return await this._program.methods\n .updateRewardDuration(rewardIndex, newDuration)\n .accountsPartial({\n pool,\n admin: admin,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to update reward funder address.\n * @param {UpdateRewardFunderParams} params - Parameters including pool and new funder address.\n * @returns Transaction builder.\n */\n async updateRewardFunder(params: UpdateRewardFunderParams): TxBuilder {\n const { pool, admin, rewardIndex, newFunder } = params;\n return await this._program.methods\n .updateRewardFunder(rewardIndex, newFunder)\n .accountsPartial({\n pool,\n admin: admin,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to fund rewards in a pool.\n * @param {FundRewardParams} params - Funding parameters.\n * @returns Transaction builder.\n */\n async fundReward(params: FundRewardParams): TxBuilder {\n const { rewardIndex, carryForward, pool, funder, amount } = params;\n\n const poolState = await this.fetchPoolState(pool);\n const rewardInfo = poolState.rewardInfos[rewardIndex];\n const { vault, mint } = rewardInfo;\n const tokenProgram = getTokenProgram(rewardIndex);\n\n const preInstructions: TransactionInstruction[] = [];\n\n const { ataPubkey: funderTokenAccount, ix: createFunderTokenAccountIx } =\n await getOrCreateATAInstruction(\n this._program.provider.connection,\n mint,\n funder,\n funder,\n true,\n tokenProgram\n );\n\n createFunderTokenAccountIx &&\n preInstructions.push(createFunderTokenAccountIx);\n\n // TODO: check case reward mint is wSOL && carryForward is true => total amount > amount\n if (mint.equals(NATIVE_MINT) && !amount.isZero()) {\n const wrapSOLIx = wrapSOLInstruction(\n funder,\n funderTokenAccount,\n BigInt(amount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n return await this._program.methods\n .fundReward(rewardIndex, amount, carryForward)\n .accountsPartial({\n pool,\n rewardVault: vault,\n rewardMint: mint,\n funderTokenAccount,\n funder: funder,\n tokenProgram,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to withdraw ineligible rewards from a pool.\n * @param {WithdrawIneligibleRewardParams} params - Parameters for withdrawal.\n * @returns Transaction builder.\n */\n async withdrawIneligibleReward(\n params: WithdrawIneligibleRewardParams\n ): TxBuilder {\n const { rewardIndex, pool, funder } = params;\n const poolState = await this.fetchPoolState(pool);\n\n const rewardInfo = poolState.rewardInfos[rewardIndex];\n const { mint, vault, rewardTokenFlag } = rewardInfo;\n const tokenProgram = getTokenProgram(rewardTokenFlag);\n\n const preInstructions: TransactionInstruction[] = [];\n const postInstructions: TransactionInstruction[] = [];\n const { ataPubkey: funderTokenAccount, ix: createFunderTokenAccountIx } =\n await getOrCreateATAInstruction(\n this._program.provider.connection,\n mint,\n funder,\n funder,\n true,\n tokenProgram\n );\n createFunderTokenAccountIx &&\n preInstructions.push(createFunderTokenAccountIx);\n\n if (mint.equals(NATIVE_MINT)) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(funder);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n return await this._program.methods\n .withdrawIneligibleReward(rewardIndex)\n .accountsPartial({\n pool,\n rewardVault: vault,\n rewardMint: mint,\n poolAuthority: this.poolAuthority,\n funderTokenAccount,\n funder: funder,\n tokenProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to claim partner fee rewards.\n * @param {ClaimPartnerFeeParams} params - Claim parameters including amounts and partner address.\n * @returns Transaction builder.\n */\n async claimPartnerFee(params: ClaimPartnerFeeParams): TxBuilder {\n const { partner, pool, maxAmountA, maxAmountB } = params;\n const poolState = await this.fetchPoolState(pool);\n const {\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAFlag,\n tokenBFlag,\n } = poolState;\n\n const tokenAProgram = getTokenProgram(tokenAFlag);\n const tokenBProgram = getTokenProgram(tokenBFlag);\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts(\n partner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram\n );\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [\n poolState.tokenAMint.toBase58(),\n poolState.tokenBMint.toBase58(),\n ].includes(NATIVE_MINT.toBase58())\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(partner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n return await this._program.methods\n .claimPartnerFee(maxAmountA, maxAmountB)\n .accountsPartial({\n poolAuthority: this.poolAuthority,\n pool,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n partner,\n tokenAProgram,\n tokenBProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to claim reward from a position.\n * @param {ClaimRewardParams} params - Parameters for claiming reward.\n * @returns Transaction builder.\n */\n async claimReward(params: ClaimRewardParams): TxBuilder {\n const {\n user,\n position,\n positionNftAccount,\n rewardIndex,\n poolState,\n positionState,\n } = params;\n\n const rewardInfo = poolState.rewardInfos[rewardIndex];\n const tokenProgram = getTokenProgram(rewardInfo.rewardTokenFlag);\n\n const preInstructions: TransactionInstruction[] = [];\n const postInstructions: TransactionInstruction[] = [];\n const { ataPubkey: userTokenAccount, ix: createUserTokenAccountIx } =\n await getOrCreateATAInstruction(\n this._program.provider.connection,\n rewardInfo.mint,\n user,\n user,\n true,\n tokenProgram\n );\n createUserTokenAccountIx && preInstructions.push(createUserTokenAccountIx);\n\n if (rewardInfo.mint.equals(NATIVE_MINT)) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(user);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n return await this._program.methods\n .claimReward(rewardIndex)\n .accountsPartial({\n pool: positionState.pool,\n positionNftAccount,\n rewardVault: rewardInfo.vault,\n rewardMint: rewardInfo.mint,\n poolAuthority: this.poolAuthority,\n position,\n userTokenAccount,\n owner: user,\n tokenProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n}\n","{\n \"address\": \"cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG\",\n \"metadata\": {\n \"name\": \"cp_amm\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Created with Anchor\"\n },\n \"instructions\": [\n {\n \"name\": \"add_liquidity\",\n \"discriminator\": [\n 181,\n 157,\n 89,\n 67,\n 143,\n 182,\n 52,\n 72\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddLiquidityParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"claim_partner_fee\",\n \"discriminator\": [\n 97,\n 206,\n 39,\n 105,\n 94,\n 94,\n 126,\n 148\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The treasury token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The treasury token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"partner\",\n \"signer\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"max_amount_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_amount_b\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"claim_position_fee\",\n \"discriminator\": [\n 180,\n 38,\n 154,\n 17,\n 133,\n 33,\n 162,\n 211\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_protocol_fee\",\n \"discriminator\": [\n 165,\n 228,\n 133,\n 48,\n 99,\n 249,\n 255,\n 33\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The treasury token a account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 153,\n 10,\n 107,\n 154,\n 255,\n 249,\n 210,\n 173,\n 176,\n 67,\n 220,\n 214,\n 152,\n 71,\n 46,\n 146,\n 161,\n 33,\n 81,\n 148,\n 166,\n 119,\n 5,\n 189,\n 142,\n 11,\n 57,\n 68,\n 162,\n 70,\n 126,\n 100\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The treasury token b account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 153,\n 10,\n 107,\n 154,\n 255,\n 249,\n 210,\n 173,\n 176,\n 67,\n 220,\n 214,\n 152,\n 71,\n 46,\n 146,\n 161,\n 33,\n 81,\n 148,\n 166,\n 119,\n 5,\n 189,\n 142,\n 11,\n 57,\n 68,\n 162,\n 70,\n 126,\n 100\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"claim_fee_operator\",\n \"docs\": [\n \"Claim fee operator\"\n ]\n },\n {\n \"name\": \"operator\",\n \"docs\": [\n \"Operator\"\n ],\n \"signer\": true,\n \"relations\": [\n \"claim_fee_operator\"\n ]\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_reward\",\n \"discriminator\": [\n 149,\n 95,\n 181,\n 242,\n 94,\n 90,\n 158,\n 162\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"docs\": [\n \"The vault token account for reward token\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"user_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"close_claim_fee_operator\",\n \"discriminator\": [\n 38,\n 134,\n 82,\n 216,\n 95,\n 124,\n 17,\n 99\n ],\n \"accounts\": [\n {\n \"name\": \"claim_fee_operator\",\n \"writable\": true\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_config\",\n \"discriminator\": [\n 145,\n 9,\n 72,\n 157,\n 95,\n 125,\n 61,\n 85\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_position\",\n \"discriminator\": [\n 123,\n 134,\n 81,\n 0,\n 49,\n 68,\n 98,\n 98\n ],\n \"accounts\": [\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_claim_fee_operator\",\n \"discriminator\": [\n 169,\n 62,\n 207,\n 107,\n 58,\n 187,\n 162,\n 109\n ],\n \"accounts\": [\n {\n \"name\": \"claim_fee_operator\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 102,\n 95,\n 111,\n 112,\n 101,\n 114,\n 97,\n 116,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"operator\"\n }\n ]\n }\n },\n {\n \"name\": \"operator\"\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_config\",\n \"docs\": [\n \"ADMIN FUNCTIONS /////\"\n ],\n \"discriminator\": [\n 201,\n 207,\n 243,\n 114,\n 75,\n 111,\n 47,\n 189\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"config_parameters.index\"\n }\n ]\n }\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"config_parameters\",\n \"type\": {\n \"defined\": {\n \"name\": \"ConfigParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"create_position\",\n \"discriminator\": [\n 48,\n 215,\n 197,\n 153,\n 96,\n 203,\n 180,\n 133\n ],\n \"accounts\": [\n {\n \"name\": \"owner\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the position. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_token_badge\",\n \"discriminator\": [\n 88,\n 206,\n 0,\n 91,\n 60,\n 175,\n 151,\n 118\n ],\n \"accounts\": [\n {\n \"name\": \"token_badge\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 98,\n 97,\n 100,\n 103,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_mint\"\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"fund_reward\",\n \"discriminator\": [\n 188,\n 50,\n 249,\n 165,\n 93,\n 151,\n 38,\n 63\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"funder_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"funder\",\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"carry_forward\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"initialize_customizable_pool\",\n \"discriminator\": [\n 20,\n 161,\n 241,\n 24,\n 189,\n 221,\n 180,\n 2\n ],\n \"accounts\": [\n {\n \"name\": \"creator\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the pool. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Initialize an account to store the pool state\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"Token a mint\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"Token b mint\"\n ]\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"Token a vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"Token b vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"payer_token_a\",\n \"docs\": [\n \"payer token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer_token_b\",\n \"docs\": [\n \"creator token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_2022_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializeCustomizablePoolParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"initialize_pool\",\n \"docs\": [\n \"USER FUNCTIONS ////\"\n ],\n \"discriminator\": [\n 95,\n 180,\n 10,\n 172,\n 84,\n 174,\n 232,\n 40\n ],\n \"accounts\": [\n {\n \"name\": \"creator\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the pool. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Which config the pool belongs to.\"\n ]\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Initialize an account to store the pool state\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"Token a mint\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"Token b mint\"\n ]\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"Token a vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"Token b vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"payer_token_a\",\n \"docs\": [\n \"payer token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer_token_b\",\n \"docs\": [\n \"creator token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_2022_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializePoolParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"initialize_reward\",\n \"discriminator\": [\n 95,\n 135,\n 192,\n 196,\n 242,\n 129,\n 230,\n 68\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"reward_index\"\n }\n ]\n }\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"funder\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"lock_position\",\n \"discriminator\": [\n 227,\n 62,\n 2,\n 252,\n 247,\n 10,\n 171,\n 185\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"vesting\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"VestingParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"permanent_lock_position\",\n \"discriminator\": [\n 165,\n 176,\n 125,\n 6,\n 231,\n 171,\n 186,\n 213\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"permanent_lock_liquidity\",\n \"type\": \"u128\"\n }\n ]\n },\n {\n \"name\": \"refresh_vesting\",\n \"discriminator\": [\n 9,\n 94,\n 216,\n 14,\n 116,\n 204,\n 247,\n 0\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"remove_all_liquidity\",\n \"discriminator\": [\n 10,\n 51,\n 61,\n 35,\n 112,\n 105,\n 24,\n 85\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"token_a_amount_threshold\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount_threshold\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"remove_liquidity\",\n \"discriminator\": [\n 80,\n 85,\n 209,\n 72,\n 24,\n 206,\n 177,\n 108\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"RemoveLiquidityParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"set_pool_status\",\n \"discriminator\": [\n 112,\n 87,\n 135,\n 223,\n 83,\n 204,\n 132,\n 53\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"status\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"swap\",\n \"discriminator\": [\n 248,\n 198,\n 158,\n 145,\n 225,\n 117,\n 135,\n 200\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Pool account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"input_token_account\",\n \"docs\": [\n \"The user token account for input token\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"output_token_account\",\n \"docs\": [\n \"The user token account for output token\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ]\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"The user performing the swap\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"referral_token_account\",\n \"docs\": [\n \"referral token account\"\n ],\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"SwapParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_reward_duration\",\n \"discriminator\": [\n 138,\n 174,\n 196,\n 169,\n 213,\n 235,\n 254,\n 107\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_duration\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_reward_funder\",\n \"discriminator\": [\n 211,\n 28,\n 48,\n 32,\n 215,\n 160,\n 35,\n 23\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_funder\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"withdraw_ineligible_reward\",\n \"discriminator\": [\n 148,\n 206,\n 42,\n 195,\n 247,\n 49,\n 103,\n 8\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"funder_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"funder\",\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"ClaimFeeOperator\",\n \"discriminator\": [\n 166,\n 48,\n 134,\n 86,\n 34,\n 200,\n 188,\n 150\n ]\n },\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"Pool\",\n \"discriminator\": [\n 241,\n 154,\n 109,\n 4,\n 17,\n 177,\n 109,\n 188\n ]\n },\n {\n \"name\": \"Position\",\n \"discriminator\": [\n 170,\n 188,\n 143,\n 228,\n 122,\n 64,\n 247,\n 208\n ]\n },\n {\n \"name\": \"TokenBadge\",\n \"discriminator\": [\n 116,\n 219,\n 204,\n 229,\n 249,\n 116,\n 255,\n 150\n ]\n },\n {\n \"name\": \"Vesting\",\n \"discriminator\": [\n 100,\n 149,\n 66,\n 138,\n 95,\n 200,\n 128,\n 241\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"EvtAddLiquidity\",\n \"discriminator\": [\n 175,\n 242,\n 8,\n 157,\n 30,\n 247,\n 185,\n 169\n ]\n },\n {\n \"name\": \"EvtClaimPartnerFee\",\n \"discriminator\": [\n 118,\n 99,\n 77,\n 10,\n 226,\n 1,\n 1,\n 87\n ]\n },\n {\n \"name\": \"EvtClaimPositionFee\",\n \"discriminator\": [\n 198,\n 182,\n 183,\n 52,\n 97,\n 12,\n 49,\n 56\n ]\n },\n {\n \"name\": \"EvtClaimProtocolFee\",\n \"discriminator\": [\n 186,\n 244,\n 75,\n 251,\n 188,\n 13,\n 25,\n 33\n ]\n },\n {\n \"name\": \"EvtClaimReward\",\n \"discriminator\": [\n 218,\n 86,\n 147,\n 200,\n 235,\n 188,\n 215,\n 231\n ]\n },\n {\n \"name\": \"EvtCloseClaimFeeOperator\",\n \"discriminator\": [\n 111,\n 39,\n 37,\n 55,\n 110,\n 216,\n 194,\n 23\n ]\n },\n {\n \"name\": \"EvtCloseConfig\",\n \"discriminator\": [\n 36,\n 30,\n 239,\n 45,\n 58,\n 132,\n 14,\n 5\n ]\n },\n {\n \"name\": \"EvtClosePosition\",\n \"discriminator\": [\n 20,\n 145,\n 144,\n 68,\n 143,\n 142,\n 214,\n 178\n ]\n },\n {\n \"name\": \"EvtCreateClaimFeeOperator\",\n \"discriminator\": [\n 21,\n 6,\n 153,\n 120,\n 68,\n 116,\n 28,\n 177\n ]\n },\n {\n \"name\": \"EvtCreateConfig\",\n \"discriminator\": [\n 131,\n 207,\n 180,\n 174,\n 180,\n 73,\n 165,\n 54\n ]\n },\n {\n \"name\": \"EvtCreatePosition\",\n \"discriminator\": [\n 156,\n 15,\n 119,\n 198,\n 29,\n 181,\n 221,\n 55\n ]\n },\n {\n \"name\": \"EvtCreateTokenBadge\",\n \"discriminator\": [\n 141,\n 120,\n 134,\n 116,\n 34,\n 28,\n 114,\n 160\n ]\n },\n {\n \"name\": \"EvtFundReward\",\n \"discriminator\": [\n 104,\n 233,\n 237,\n 122,\n 199,\n 191,\n 121,\n 85\n ]\n },\n {\n \"name\": \"EvtInitializePool\",\n \"discriminator\": [\n 228,\n 50,\n 246,\n 85,\n 203,\n 66,\n 134,\n 37\n ]\n },\n {\n \"name\": \"EvtInitializeReward\",\n \"discriminator\": [\n 129,\n 91,\n 188,\n 3,\n 246,\n 52,\n 185,\n 249\n ]\n },\n {\n \"name\": \"EvtLockPosition\",\n \"discriminator\": [\n 168,\n 63,\n 108,\n 83,\n 219,\n 82,\n 2,\n 200\n ]\n },\n {\n \"name\": \"EvtPermanentLockPosition\",\n \"discriminator\": [\n 145,\n 143,\n 162,\n 218,\n 218,\n 80,\n 67,\n 11\n ]\n },\n {\n \"name\": \"EvtRemoveLiquidity\",\n \"discriminator\": [\n 87,\n 46,\n 88,\n 98,\n 175,\n 96,\n 34,\n 91\n ]\n },\n {\n \"name\": \"EvtSetPoolStatus\",\n \"discriminator\": [\n 100,\n 213,\n 74,\n 3,\n 95,\n 91,\n 228,\n 146\n ]\n },\n {\n \"name\": \"EvtSwap\",\n \"discriminator\": [\n 27,\n 60,\n 21,\n 213,\n 138,\n 170,\n 187,\n 147\n ]\n },\n {\n \"name\": \"EvtUpdateRewardDuration\",\n \"discriminator\": [\n 149,\n 135,\n 65,\n 231,\n 129,\n 153,\n 65,\n 57\n ]\n },\n {\n \"name\": \"EvtUpdateRewardFunder\",\n \"discriminator\": [\n 76,\n 154,\n 208,\n 13,\n 40,\n 115,\n 246,\n 146\n ]\n },\n {\n \"name\": \"EvtWithdrawIneligibleReward\",\n \"discriminator\": [\n 248,\n 215,\n 184,\n 78,\n 31,\n 180,\n 179,\n 168\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"MathOverflow\",\n \"msg\": \"Math operation overflow\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidFee\",\n \"msg\": \"Invalid fee setup\"\n },\n {\n \"code\": 6002,\n \"name\": \"ExceededSlippage\",\n \"msg\": \"Exceeded slippage tolerance\"\n },\n {\n \"code\": 6003,\n \"name\": \"PoolDisabled\",\n \"msg\": \"Pool disabled\"\n },\n {\n \"code\": 6004,\n \"name\": \"ExceedMaxFeeBps\",\n \"msg\": \"Exceeded max fee bps\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidAdmin\",\n \"msg\": \"Invalid admin\"\n },\n {\n \"code\": 6006,\n \"name\": \"AmountIsZero\",\n \"msg\": \"Amount is zero\"\n },\n {\n \"code\": 6007,\n \"name\": \"TypeCastFailed\",\n \"msg\": \"Type cast error\"\n },\n {\n \"code\": 6008,\n \"name\": \"UnableToModifyActivationPoint\",\n \"msg\": \"Unable to modify activation point\"\n },\n {\n \"code\": 6009,\n \"name\": \"InvalidAuthorityToCreateThePool\",\n \"msg\": \"Invalid authority to create the pool\"\n },\n {\n \"code\": 6010,\n \"name\": \"InvalidActivationType\",\n \"msg\": \"Invalid activation type\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidActivationPoint\",\n \"msg\": \"Invalid activation point\"\n },\n {\n \"code\": 6012,\n \"name\": \"InvalidQuoteMint\",\n \"msg\": \"Quote token must be SOL,USDC\"\n },\n {\n \"code\": 6013,\n \"name\": \"InvalidFeeCurve\",\n \"msg\": \"Invalid fee curve\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidPriceRange\",\n \"msg\": \"Invalid Price Range\"\n },\n {\n \"code\": 6015,\n \"name\": \"PriceRangeViolation\",\n \"msg\": \"Trade is over price range\"\n },\n {\n \"code\": 6016,\n \"name\": \"InvalidParameters\",\n \"msg\": \"Invalid parameters\"\n },\n {\n \"code\": 6017,\n \"name\": \"InvalidCollectFeeMode\",\n \"msg\": \"Invalid collect fee mode\"\n },\n {\n \"code\": 6018,\n \"name\": \"InvalidInput\",\n \"msg\": \"Invalid input\"\n },\n {\n \"code\": 6019,\n \"name\": \"CannotCreateTokenBadgeOnSupportedMint\",\n \"msg\": \"Cannot create token badge on supported mint\"\n },\n {\n \"code\": 6020,\n \"name\": \"InvalidTokenBadge\",\n \"msg\": \"Invalid token badge\"\n },\n {\n \"code\": 6021,\n \"name\": \"InvalidMinimumLiquidity\",\n \"msg\": \"Invalid minimum liquidity\"\n },\n {\n \"code\": 6022,\n \"name\": \"InvalidVestingInfo\",\n \"msg\": \"Invalid vesting information\"\n },\n {\n \"code\": 6023,\n \"name\": \"InsufficientLiquidity\",\n \"msg\": \"Insufficient liquidity\"\n },\n {\n \"code\": 6024,\n \"name\": \"InvalidVestingAccount\",\n \"msg\": \"Invalid vesting account\"\n },\n {\n \"code\": 6025,\n \"name\": \"InvalidPoolStatus\",\n \"msg\": \"Invalid pool status\"\n },\n {\n \"code\": 6026,\n \"name\": \"UnsupportNativeMintToken2022\",\n \"msg\": \"Unsupported native mint token2022\"\n },\n {\n \"code\": 6027,\n \"name\": \"InvalidRewardIndex\",\n \"msg\": \"Invalid reward index\"\n },\n {\n \"code\": 6028,\n \"name\": \"InvalidRewardDuration\",\n \"msg\": \"Invalid reward duration\"\n },\n {\n \"code\": 6029,\n \"name\": \"RewardInitialized\",\n \"msg\": \"Reward already initialized\"\n },\n {\n \"code\": 6030,\n \"name\": \"RewardUninitialized\",\n \"msg\": \"Reward not initialized\"\n },\n {\n \"code\": 6031,\n \"name\": \"InvalidRewardVault\",\n \"msg\": \"Invalid reward vault\"\n },\n {\n \"code\": 6032,\n \"name\": \"MustWithdrawnIneligibleReward\",\n \"msg\": \"Must withdraw ineligible reward\"\n },\n {\n \"code\": 6033,\n \"name\": \"IdenticalRewardDuration\",\n \"msg\": \"Reward duration is the same\"\n },\n {\n \"code\": 6034,\n \"name\": \"RewardCampaignInProgress\",\n \"msg\": \"Reward campaign in progress\"\n },\n {\n \"code\": 6035,\n \"name\": \"IdenticalFunder\",\n \"msg\": \"Identical funder\"\n },\n {\n \"code\": 6036,\n \"name\": \"InvalidFunder\",\n \"msg\": \"Invalid funder\"\n },\n {\n \"code\": 6037,\n \"name\": \"RewardNotEnded\",\n \"msg\": \"Reward not ended\"\n },\n {\n \"code\": 6038,\n \"name\": \"FeeInverseIsIncorrect\",\n \"msg\": \"Fee inverse is incorrect\"\n },\n {\n \"code\": 6039,\n \"name\": \"PositionIsNotEmpty\",\n \"msg\": \"Position is not empty\"\n }\n ],\n \"types\": [\n {\n \"name\": \"AddLiquidityParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"liquidity_delta\",\n \"docs\": [\n \"delta liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_a_amount_threshold\",\n \"docs\": [\n \"maximum token a amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount_threshold\",\n \"docs\": [\n \"maximum token b amount\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"BaseFeeConfig\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_fee_numerator\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_scheduler_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"BaseFeeParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_fee_numerator\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_scheduler_mode\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"BaseFeeStruct\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_fee_numerator\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_scheduler_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding_0\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding_1\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"ClaimFeeOperator\",\n \"docs\": [\n \"Parameter that set by the protocol\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"operator\",\n \"docs\": [\n \"operator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"_padding\",\n \"docs\": [\n \"Reserve\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Config\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"vault_config_key\",\n \"docs\": [\n \"Vault config key\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"docs\": [\n \"Only pool_creator_authority can use the current config to initialize new pool. When it's Pubkey::default, it's a public config.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_fees\",\n \"docs\": [\n \"Pool fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeesConfig\"\n }\n }\n },\n {\n \"name\": \"activation_type\",\n \"docs\": [\n \"Activation type\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"docs\": [\n \"Collect fee mode\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"_padding_0\",\n \"docs\": [\n \"padding 0\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 6\n ]\n }\n },\n {\n \"name\": \"index\",\n \"docs\": [\n \"config index\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"sqrt_min_price\",\n \"docs\": [\n \"sqrt min price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"docs\": [\n \"sqrt max price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"_padding_1\",\n \"docs\": [\n \"Fee curve point\",\n \"Padding for further use\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ConfigParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"sqrt_min_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"vault_config_key\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"activation_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"DynamicFeeConfig\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"initialized\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"max_volatility_accumulator\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"variable_fee_control\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bin_step\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"filter_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"decay_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"padding_1\",\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"bin_step_u128\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"DynamicFeeParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bin_step\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bin_step_u128\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"filter_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"decay_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_volatility_accumulator\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"variable_fee_control\",\n \"type\": \"u32\"\n }\n ]\n }\n },\n {\n \"name\": \"DynamicFeeStruct\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"initialized\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"max_volatility_accumulator\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"variable_fee_control\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bin_step\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"filter_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"decay_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"last_update_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bin_step_u128\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price_reference\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"volatility_accumulator\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"volatility_reference\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtAddLiquidity\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddLiquidityParameters\"\n }\n }\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_b\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimPartnerFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimPositionFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_a_claimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_b_claimed\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimProtocolFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint_reward\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"total_reward\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCloseClaimFeeOperator\",\n \"docs\": [\n \"Close claim fee operator\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"claim_fee_operator\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCloseConfig\",\n \"docs\": [\n \"Close config\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"config\",\n \"docs\": [\n \"Config pubkey\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"admin\",\n \"docs\": [\n \"admin pk\"\n ],\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClosePosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateClaimFeeOperator\",\n \"docs\": [\n \"Create claim fee operator\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"operator\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateConfig\",\n \"docs\": [\n \"Create config\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"vault_config_key\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"activation_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"sqrt_min_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"config\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreatePosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateTokenBadge\",\n \"docs\": [\n \"Create token badge\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"token_mint\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtFundReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funder\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint_reward\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"transfer_fee_excluded_amount_in\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtInitializePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_b_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"alpha_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_fees\",\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"sqrt_min_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_point\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_a_flag\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_b_flag\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_b\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pool_type\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtInitializeReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funder\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_duration\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtLockPosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vesting\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"cliff_point\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"cliff_unlock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"liquidity_per_period\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtPermanentLockPosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"lock_liquidity_amount\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_permanent_locked_liquidity\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtRemoveLiquidity\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"RemoveLiquidityParameters\"\n }\n }\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtSetPoolStatus\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"status\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtSwap\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"trade_direction\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"has_referral\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"SwapParameters\"\n }\n }\n },\n {\n \"name\": \"swap_result\",\n \"type\": {\n \"defined\": {\n \"name\": \"SwapResult\"\n }\n }\n },\n {\n \"name\": \"actual_amount_in\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"current_timestamp\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtUpdateRewardDuration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"old_reward_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"new_reward_duration\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtUpdateRewardFunder\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"old_funder\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"new_funder\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtWithdrawIneligibleReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitializeCustomizablePoolParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"docs\": [\n \"pool fees\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"sqrt_min_price\",\n \"docs\": [\n \"sqrt min price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"docs\": [\n \"sqrt max price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"has_alpha_vault\",\n \"docs\": [\n \"has alpha vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"initialize liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"docs\": [\n \"The init price of the pool as a sqrt(token_b/token_a) Q64.64 value\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_type\",\n \"docs\": [\n \"activation type\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"docs\": [\n \"collect fee mode\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"activation_point\",\n \"docs\": [\n \"activation point\"\n ],\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"InitializePoolParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"initialize liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"docs\": [\n \"The init price of the pool as a sqrt(token_b/token_a) Q64.64 value\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_point\",\n \"docs\": [\n \"activation point\"\n ],\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"Pool\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"docs\": [\n \"Pool fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeesStruct\"\n }\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"token a mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"token b mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"token a vault\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"token b vault\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"whitelisted_vault\",\n \"docs\": [\n \"Whitelisted vault to be able to buy pool before activation_point\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"partner\",\n \"docs\": [\n \"partner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"liquidity share\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_a_reserve\",\n \"docs\": [\n \"token a reserve\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_reserve\",\n \"docs\": [\n \"token b reserve\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_a_fee\",\n \"docs\": [\n \"protocol a fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_b_fee\",\n \"docs\": [\n \"protocol b fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"partner_a_fee\",\n \"docs\": [\n \"partner a fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"partner_b_fee\",\n \"docs\": [\n \"partner b fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"sqrt_min_price\",\n \"docs\": [\n \"min price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"docs\": [\n \"max price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"docs\": [\n \"current price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_point\",\n \"docs\": [\n \"Activation point, can be slot or timestamp\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"activation_type\",\n \"docs\": [\n \"Activation type, 0 means by slot, 1 means by timestamp\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"pool_status\",\n \"docs\": [\n \"pool status, 0: enable, 1 disable\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_a_flag\",\n \"docs\": [\n \"token a flag\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_b_flag\",\n \"docs\": [\n \"token b flag\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"docs\": [\n \"0 is collect fee in both token, 1 only collect fee in token a, 2 only collect fee in token b\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"pool_type\",\n \"docs\": [\n \"pool type\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"_padding_0\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 2\n ]\n }\n },\n {\n \"name\": \"fee_a_per_liquidity\",\n \"docs\": [\n \"cumulative\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"fee_b_per_liquidity\",\n \"docs\": [\n \"cumulative\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"permanent_lock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"metrics\",\n \"docs\": [\n \"metrics\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolMetrics\"\n }\n }\n },\n {\n \"name\": \"_padding_1\",\n \"docs\": [\n \"Padding for further use\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n },\n {\n \"name\": \"reward_infos\",\n \"docs\": [\n \"Farming reward information\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"RewardInfo\"\n }\n },\n 2\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolFeeParameters\",\n \"docs\": [\n \"Information regarding fee charges\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"base_fee\",\n \"docs\": [\n \"Base fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BaseFeeParameters\"\n }\n }\n },\n {\n \"name\": \"protocol_fee_percent\",\n \"docs\": [\n \"Protocol trade fee percent\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"partner_fee_percent\",\n \"docs\": [\n \"partner fee percent\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"referral_fee_percent\",\n \"docs\": [\n \"referral fee percent\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"dynamic_fee\",\n \"docs\": [\n \"dynamic fee\"\n ],\n \"type\": {\n \"option\": {\n \"defined\": {\n \"name\": \"DynamicFeeParameters\"\n }\n }\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolFeesConfig\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"base_fee\",\n \"type\": {\n \"defined\": {\n \"name\": \"BaseFeeConfig\"\n }\n }\n },\n {\n \"name\": \"dynamic_fee\",\n \"type\": {\n \"defined\": {\n \"name\": \"DynamicFeeConfig\"\n }\n }\n },\n {\n \"name\": \"protocol_fee_percent\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"partner_fee_percent\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"referral_fee_percent\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding_0\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"padding_1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 5\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolFeesStruct\",\n \"docs\": [\n \"Information regarding fee charges\",\n \"trading_fee = amount * trade_fee_numerator / denominator\",\n \"protocol_fee = trading_fee * protocol_fee_percentage / 100\",\n \"referral_fee = protocol_fee * referral_percentage / 100\",\n \"partner_fee = (protocol_fee - referral_fee) * partner_fee_percentage / denominator\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"base_fee\",\n \"docs\": [\n \"Trade fees are extra token amounts that are held inside the token\",\n \"accounts during a trade, making the value of liquidity tokens rise.\",\n \"Trade fee numerator\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BaseFeeStruct\"\n }\n }\n },\n {\n \"name\": \"protocol_fee_percent\",\n \"docs\": [\n \"Protocol trading fees are extra token amounts that are held inside the token\",\n \"accounts during a trade, with the equivalent in pool tokens minted to\",\n \"the protocol of the program.\",\n \"Protocol trade fee numerator\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"partner_fee_percent\",\n \"docs\": [\n \"partner fee\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"referral_fee_percent\",\n \"docs\": [\n \"referral fee\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding_0\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"dynamic_fee\",\n \"docs\": [\n \"dynamic fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"DynamicFeeStruct\"\n }\n }\n },\n {\n \"name\": \"padding_1\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 2\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolMetrics\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"total_lp_a_fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_lp_b_fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_protocol_a_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_protocol_b_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_partner_a_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_partner_b_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_position\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"Position\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"nft_mint\",\n \"docs\": [\n \"nft mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_a_per_token_checkpoint\",\n \"docs\": [\n \"fee a checkpoint\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"fee_b_per_token_checkpoint\",\n \"docs\": [\n \"fee b checkpoint\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"fee_a_pending\",\n \"docs\": [\n \"fee a pending\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_b_pending\",\n \"docs\": [\n \"fee b pending\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"unlocked_liquidity\",\n \"docs\": [\n \"unlock liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"vested_liquidity\",\n \"docs\": [\n \"vesting liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"permanent_locked_liquidity\",\n \"docs\": [\n \"permanent locked liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"metrics\",\n \"docs\": [\n \"metrics\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PositionMetrics\"\n }\n }\n },\n {\n \"name\": \"reward_infos\",\n \"docs\": [\n \"Farming reward information\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"UserRewardInfo\"\n }\n },\n 2\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"docs\": [\n \"padding for future usage\"\n ],\n \"type\": {\n \"array\": [\n \"u128\",\n 6\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PositionMetrics\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"total_claimed_a_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_claimed_b_fee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RemoveLiquidityParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"liquidity_delta\",\n \"docs\": [\n \"delta liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_a_amount_threshold\",\n \"docs\": [\n \"minimum token a amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount_threshold\",\n \"docs\": [\n \"minimum token b amount\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardInfo\",\n \"docs\": [\n \"Stores the state relevant for tracking liquidity mining rewards\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"initialized\",\n \"docs\": [\n \"Indicates if the reward has been initialized\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_token_flag\",\n \"docs\": [\n \"reward token flag\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"_padding_0\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 6\n ]\n }\n },\n {\n \"name\": \"_padding_1\",\n \"docs\": [\n \"Padding to ensure `reward_rate: u128` is 16-byte aligned\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Reward token mint.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward vault token account.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funder\",\n \"docs\": [\n \"Authority account that allows to fund rewards\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_duration\",\n \"docs\": [\n \"reward duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_duration_end\",\n \"docs\": [\n \"reward duration end\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_rate\",\n \"docs\": [\n \"reward rate\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"reward_per_token_stored\",\n \"docs\": [\n \"Reward per token stored\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"last_update_time\",\n \"docs\": [\n \"The last time reward states were updated.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"cumulative_seconds_with_empty_liquidity_reward\",\n \"docs\": [\n \"Accumulated seconds when the farm distributed rewards but the bin was empty.\",\n \"These rewards will be carried over to the next reward time window.\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SwapParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"amount_in\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"minimum_amount_out\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SwapResult\",\n \"docs\": [\n \"Encodes all results of swapping\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"output_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"next_sqrt_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"lp_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"partner_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"referral_fee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenBadge\",\n \"docs\": [\n \"Parameter that set by the protocol\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"token_mint\",\n \"docs\": [\n \"token mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"_padding\",\n \"docs\": [\n \"Reserve\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"UserRewardInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_per_token_checkpoint\",\n \"docs\": [\n \"The latest update reward checkpoint\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"reward_pendings\",\n \"docs\": [\n \"Current pending rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_claimed_rewards\",\n \"docs\": [\n \"Total claimed rewards\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"Vesting\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"cliff_point\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"cliff_unlock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"liquidity_per_period\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_released_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 14\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u128\",\n 4\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"VestingParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_point\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"cliff_unlock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"liquidity_per_period\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n }\n ]\n }\n }\n ]\n}","import { IdlAccounts, IdlTypes, Program, BN } from \"@coral-xyz/anchor\";\nimport { PublicKey, Transaction } from \"@solana/web3.js\";\nimport type { CpAmm as CpAmmTypes } from \"./idl/cp_amm\";\nimport { Mint } from \"@solana/spl-token\";\n\nexport type AmmProgram = Program<CpAmmTypes>;\n\nexport type TxBuilder = Promise<Transaction>;\n\nexport enum Rounding {\n Up,\n Down,\n}\n\nexport enum ActivationPoint {\n Timestamp,\n Slot,\n}\n\nexport enum FeeSchedulerMode {\n Linear,\n Exponential,\n}\n\nexport enum CollectFeeMode {\n BothToken,\n OnlyB,\n}\n\nexport enum TradeDirection {\n AtoB,\n BtoA,\n}\n\nexport enum ActivationType {\n Slot,\n Timestamp,\n}\n\nexport type FeeMode = {\n feeOnInput: boolean;\n feesOnTokenA: boolean;\n};\n\n// Account state types\nexport type PoolState = IdlAccounts<CpAmmTypes>[\"pool\"];\nexport type PositionState = IdlAccounts<CpAmmTypes>[\"position\"];\nexport type VestingState = IdlAccounts<CpAmmTypes>[\"vesting\"];\nexport type ConfigState = IdlAccounts<CpAmmTypes>[\"config\"];\nexport type TokenBadgeState = IdlAccounts<CpAmmTypes>[\"tokenBadge\"];\n\n// Program params types\n// export type LockPositionParams = IdlTypes<CpAmm>[\"VestingParameters\"];\n// export type AddLiquidityParams = IdlTypes<CpAmm>[\"AddLiquidityParameters\"];\n// export type RemoveLiquidityParams =\n// IdlTypes<CpAmm>[\"RemoveLiquidityParameters\"];\n// export type SwapParams = IdlTypes<CpAmm>[\"SwapParameters\"];\n// export type InitPoolParams = IdlTypes<CpAmm>[\"InitializePoolParameters\"];\n// export type InitCustomizePoolParams =\n// IdlTypes<CpAmm>[\"InitializeCustomizablePoolParameters\"];\nexport type RewardInfo = IdlTypes<CpAmmTypes>[\"rewardInfo\"];\n\nexport type DynamicFee = {\n binStep: number;\n binStepU128: BN;\n filterPeriod: number;\n decayPeriod: number;\n reductionFactor: number;\n maxVolatilityAccumulator: number;\n variableFeeControl: number;\n};\n\nexport type BaseFee = {\n cliffFeeNumerator: BN;\n numberOfPeriod: number;\n periodFrequency: BN;\n reductionFactor: BN;\n feeSchedulerMode: number;\n};\n\nexport type PoolFeesParams = {\n baseFee: BaseFee;\n protocolFeePercent: number;\n partnerFeePercent: number;\n referralFeePercent: number;\n dynamicFee: DynamicFee | null;\n};\n\nexport type InitializeCustomizeablePoolParams = {\n payer: PublicKey;\n creator: PublicKey;\n positionNft: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAAmount: BN;\n tokenBAmount: BN;\n sqrtMinPrice: BN;\n sqrtMaxPrice: BN;\n liquidityDelta: BN;\n initSqrtPrice: BN;\n poolFees: PoolFeesParams;\n hasAlphaVault: boolean;\n activationType: number;\n collectFeeMode: number;\n activationPoint: BN | null;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type PreparePoolCreationParams = {\n tokenAAmount: BN;\n tokenBAmount: BN;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n tokenAInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n tokenBInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type PreparedPoolCreation = {\n initSqrtPrice: BN;\n liquidityDelta: BN;\n};\n\nexport type PreparePoolCreationSingleSide = {\n tokenAAmount: BN;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n initSqrtPrice: BN;\n tokenAInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type CreatePoolParams = {\n creator: PublicKey;\n payer: PublicKey;\n config: PublicKey;\n positionNft: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n initSqrtPrice: BN;\n liquidityDelta: BN;\n tokenAAmount: BN;\n tokenBAmount: BN;\n activationPoint: BN | null;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type CreatePositionParams = {\n owner: PublicKey;\n payer: PublicKey;\n pool: PublicKey;\n positionNft: PublicKey;\n};\n\nexport type AddLiquidityParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n liquidityDelta: BN;\n maxAmountTokenA: BN;\n maxAmountTokenB: BN;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type CreatePositionAndAddLiquidity = {\n owner: PublicKey;\n pool: PublicKey;\n positionNft: PublicKey;\n liquidityDelta: BN;\n maxAmountTokenA: BN;\n maxAmountTokenB: BN;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type LiquidityDeltaParams = {\n maxAmountTokenA: BN;\n maxAmountTokenB: BN;\n sqrtPrice: BN;\n sqrtMinPrice: BN;\n sqrtMaxPrice: BN;\n tokenAInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n tokenBInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type RemoveLiquidityParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n liquidityDelta: BN;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n vestings: Array<{\n account: PublicKey;\n vestingState: VestingState;\n }>;\n currentPoint: BN;\n};\n\nexport type RemoveAllLiquidityParams = Omit<\n RemoveLiquidityParams,\n \"liquidityDelta\"\n>;\n\nexport type BuildAddLiquidityParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n liquidityDelta: BN;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type BuildLiquidatePositionInstructionParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n positionState: PositionState;\n poolState: PoolState;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n};\n\nexport type BuildRemoveAllLiquidityInstructionParams = {\n poolAuthority: PublicKey;\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type ClosePositionParams = {\n owner: PublicKey;\n pool: PublicKey;\n position: PublicKey;\n positionNftMint: PublicKey;\n positionNftAccount: PublicKey;\n};\n\nexport type RemoveAllLiquidityAndClosePositionParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n poolState: PoolState;\n positionState: PositionState;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n vestings: Array<{\n account: PublicKey;\n vestingState: VestingState;\n }>;\n currentPoint: BN;\n};\n\nexport type MergePositionParams = {\n owner: PublicKey;\n positionA: PublicKey;\n positionB: PublicKey;\n poolState: PoolState;\n positionBNftAccount: PublicKey;\n positionANftAccount: PublicKey;\n positionBState: PositionState;\n tokenAAmountAddLiquidityThreshold: BN;\n tokenBAmountAddLiquidityThreshold: BN;\n tokenAAmountRemoveLiquidityThreshold: BN;\n tokenBAmountRemoveLiquidityThreshold: BN;\n positionBVestings: Array<{\n account: PublicKey;\n vestingState: VestingState;\n }>;\n currentPoint: BN;\n};\n\nexport type GetQuoteParams = {\n inAmount: BN;\n inputTokenMint: PublicKey;\n slippage: number;\n poolState: PoolState;\n currentTime: number;\n currentSlot: number;\n inputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n outputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type SwapQuotes = {\n totalFee: BN;\n minOutAmount: BN;\n actualAmount: BN;\n};\n\nexport type SwapParams = {\n payer: PublicKey;\n pool: PublicKey;\n inputTokenMint: PublicKey;\n outputTokenMint: PublicKey;\n amountIn: BN;\n minimumAmountOut: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n referralTokenAccount: PublicKey | null;\n};\n\nexport type LockPositionParams = {\n owner: PublicKey;\n payer: PublicKey;\n vestingAccount: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n pool: PublicKey;\n cliffPoint: BN | null;\n periodFrequency: BN;\n cliffUnlockLiquidity: BN;\n liquidityPerPeriod: BN;\n numberOfPeriod: number;\n};\n\nexport type ClaimPositionFeeInstructionParams = {\n owner: PublicKey;\n poolAuthority: PublicKey;\n pool: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type ClaimPositionFeeParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type ClosePositionInstructionParams = {\n owner: PublicKey;\n poolAuthority: PublicKey;\n pool: PublicKey;\n position: PublicKey;\n positionNftMint: PublicKey;\n positionNftAccount: PublicKey;\n};\n\nexport type InitializeRewardParams = {\n rewardIndex: number;\n rewardDuration: BN;\n pool: PublicKey;\n rewardMint: PublicKey;\n payer: PublicKey;\n};\n\nexport type UpdateRewardDurationParams = {\n pool: PublicKey;\n admin: PublicKey;\n rewardIndex: number;\n newDuration: BN;\n};\n\nexport type UpdateRewardFunderParams = {\n pool: PublicKey;\n admin: PublicKey;\n rewardIndex: number;\n newFunder: PublicKey;\n};\n\nexport type FundRewardParams = {\n funder: PublicKey;\n rewardIndex: number;\n pool: PublicKey;\n carryForward: boolean;\n amount: BN;\n};\n\nexport type WithdrawIneligibleRewardParams = {\n rewardIndex: number;\n pool: PublicKey;\n funder: PublicKey;\n};\n\nexport type ClaimPartnerFeeParams = {\n partner: PublicKey;\n pool: PublicKey;\n maxAmountA: BN;\n maxAmountB: BN;\n};\n\nexport type ClaimRewardParams = {\n user: PublicKey;\n position: PublicKey;\n poolState: PoolState;\n positionState: PositionState;\n positionNftAccount: PublicKey;\n rewardIndex: number;\n};\n\nexport type RefreshVestingParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n pool: PublicKey;\n vestingAccounts: PublicKey[];\n};\n\nexport type PermanentLockParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n pool: PublicKey;\n unlockedLiquidity: BN;\n};\n\nexport type GetDepositQuoteParams = {\n inAmount: BN;\n isTokenA: boolean;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n sqrtPrice: BN;\n inputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n outputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type GetWithdrawQuoteParams = {\n liquidityDelta: BN;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n sqrtPrice: BN;\n tokenATokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n tokenBTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type DepositQuote = {\n actualInputAmount: BN;\n consumedInputAmount: BN;\n outputAmount: BN;\n liquidityDelta: BN;\n};\n\nexport type WithdrawQuote = {\n liquidityDelta: BN;\n outAmountA: BN;\n outAmountB: BN;\n};\n\nexport type DynamicFeeParams = {\n volatilityAccumulator: BN;\n binStep: number;\n variableFeeControl: number;\n};\n","import { PublicKey } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\nimport { CP_AMM_PROGRAM_ID } from \"./constants\";\n\n// Private function: Only use to derive pool account\nexport function getFirstKey(key1: PublicKey, key2: PublicKey) {\n const buf1 = key1.toBuffer();\n const buf2 = key2.toBuffer();\n // Buf1 > buf2\n if (Buffer.compare(buf1, buf2) === 1) {\n return buf1;\n }\n return buf2;\n}\n\nexport function getSecondKey(key1: PublicKey, key2: PublicKey) {\n const buf1 = key1.toBuffer();\n const buf2 = key2.toBuffer();\n // Buf1 > buf2\n if (Buffer.compare(buf1, buf2) === 1) {\n return buf2;\n }\n return buf1;\n}\n\nexport function derivePoolAuthority(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"pool_authority\")],\n CP_AMM_PROGRAM_ID\n )[0];\n}\nexport function deriveConfigAddress(index: BN): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"config\"), index.toArrayLike(Buffer, \"le\", 8)],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function derivePoolAddress(\n config: PublicKey,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(\"pool\"),\n config.toBuffer(),\n getFirstKey(tokenAMint, tokenBMint),\n getSecondKey(tokenAMint, tokenBMint),\n ],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function derivePositionAddress(positionNft: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"position\"), positionNft.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveTokenVaultAddress(\n tokenMint: PublicKey,\n pool: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"token_vault\"), tokenMint.toBuffer(), pool.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveRewardVaultAddress(\n pool: PublicKey,\n rewardIndex: number\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"reward_vault\"), pool.toBuffer(), Buffer.from([rewardIndex])],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveCustomizablePoolAddress(\n tokenAMint: PublicKey,\n tokenBMint: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(\"cpool\"),\n getFirstKey(tokenAMint, tokenBMint),\n getSecondKey(tokenAMint, tokenBMint),\n ],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveTokenBadgeAddress(tokenMint: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"token_badge\"), tokenMint.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveClaimFeeOperatorAddress(operator: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"cf_operator\"), operator.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function derivePositionNftAccount(\n positionNftMint: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"position_nft_account\"), positionNftMint.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport const CP_AMM_PROGRAM_ID = new PublicKey(\n \"cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG\"\n);\n\nexport const LIQUIDITY_SCALE = 128;\nexport const SCALE_OFFSET = 64;\nexport const BASIS_POINT_MAX = 10_000;\nexport const MAX_FEE_NUMERATOR = 500_000_000;\nexport const FEE_DENOMINATOR = 1_000_000_000;\n\nexport const MIN_SQRT_PRICE = new BN(\"4295048016\");\nexport const MAX_SQRT_PRICE = new BN(\"79226673521066979257578248091\");\nexport const MIN_CU_BUFFER = 50_000;\nexport const MAX_CU_BUFFER = 200_000;\n\nexport const DYNAMIC_FEE_FILTER_PERIOD_DEFAULT = 10;\nexport const DYNAMIC_FEE_DECAY_PERIOD_DEFAULT = 120;\nexport const DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT = 5000; // 50%\nexport const BIN_STEP_BPS_DEFAULT = 1;\n// bin_step << 64 / BASIS_POINT_MAX\nexport const BIN_STEP_BPS_U128_DEFAULT = new BN(\"1844674407370955\");\nexport const MAX_PRICE_CHANGE_BPS_DEFAULT = 1500; // 15%\n","import { bs58 } from \"@coral-xyz/anchor/dist/cjs/utils/bytes\";\nimport {\n AccountLayout,\n createAssociatedTokenAccountIdempotentInstruction,\n createCloseAccountInstruction,\n getAccount,\n getAssociatedTokenAddressSync,\n getMint,\n NATIVE_MINT,\n TOKEN_2022_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n TokenAccountNotFoundError,\n TokenInvalidAccountOwnerError,\n} from \"@solana/spl-token\";\nimport {\n Connection,\n GetProgramAccountsFilter,\n PublicKey,\n SystemProgram,\n TransactionInstruction,\n} from \"@solana/web3.js\";\n\nexport function getTokenProgram(flag: number): PublicKey {\n return flag == 0 ? TOKEN_PROGRAM_ID : TOKEN_2022_PROGRAM_ID;\n}\nexport const getTokenDecimals = async (\n connection: Connection,\n mint: PublicKey\n): Promise<number> => {\n return (await getMint(connection, mint)).decimals;\n};\n\nexport const getOrCreateATAInstruction = async (\n connection: Connection,\n tokenMint: PublicKey,\n owner: PublicKey,\n payer: PublicKey = owner,\n allowOwnerOffCurve = true,\n tokenProgram: PublicKey\n): Promise<{ ataPubkey: PublicKey; ix?: TransactionInstruction }> => {\n const toAccount = getAssociatedTokenAddressSync(\n tokenMint,\n owner,\n allowOwnerOffCurve,\n tokenProgram\n );\n\n try {\n await getAccount(connection, toAccount);\n return { ataPubkey: toAccount, ix: undefined };\n } catch (e) {\n if (\n e instanceof TokenAccountNotFoundError ||\n e instanceof TokenInvalidAccountOwnerError\n ) {\n const ix = createAssociatedTokenAccountIdempotentInstruction(\n payer,\n toAccount,\n owner,\n tokenMint,\n tokenProgram\n );\n\n return { ataPubkey: toAccount, ix };\n } else {\n /* handle error */\n console.error(\"Error::getOrCreateATAInstruction\", e);\n throw e;\n }\n }\n};\n\nexport const wrapSOLInstruction = (\n from: PublicKey,\n to: PublicKey,\n amount: bigint\n): TransactionInstruction[] => {\n return [\n SystemProgram.transfer({\n fromPubkey: from,\n toPubkey: to,\n lamports: amount,\n }),\n new TransactionInstruction({\n keys: [\n {\n pubkey: to,\n isSigner: false,\n isWritable: true,\n },\n ],\n data: Buffer.from(new Uint8Array([17])),\n programId: TOKEN_PROGRAM_ID,\n }),\n ];\n};\n\nexport const unwrapSOLInstruction = async (\n owner: PublicKey,\n allowOwnerOffCurve = true\n) => {\n const wSolATAAccount = getAssociatedTokenAddressSync(\n NATIVE_MINT,\n owner,\n allowOwnerOffCurve\n );\n if (wSolATAAccount) {\n const closedWrappedSolInstruction = createCloseAccountInstruction(\n wSolATAAccount,\n owner,\n owner,\n [],\n TOKEN_PROGRAM_ID\n );\n return closedWrappedSolInstruction;\n }\n return null;\n};\n\nexport async function getAllUserPositionNftAccount(\n connection: Connection,\n user: PublicKey\n): Promise<\n Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }>\n> {\n const filters: GetProgramAccountsFilter[] = [\n {\n memcmp: {\n offset: 32,\n bytes: user.toBase58(),\n },\n },\n {\n memcmp: {\n offset: 64,\n bytes: bs58.encode(Buffer.from([1, 0, 0, 0, 0, 0, 0, 0])), // 1\n },\n },\n ];\n\n const tokenAccountsRaw = await connection.getProgramAccounts(\n TOKEN_2022_PROGRAM_ID,\n {\n filters,\n }\n );\n\n const userPositionNftAccount: Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }> = [];\n for (const { account, pubkey } of tokenAccountsRaw) {\n const tokenAccountData = AccountLayout.decode(account.data);\n userPositionNftAccount.push({\n positionNft: tokenAccountData.mint,\n positionNftAccount: pubkey,\n });\n }\n\n return userPositionNftAccount;\n}\n\nexport async function getAllPositionNftAccountByOwner(\n connection: Connection,\n user: PublicKey\n): Promise<\n Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }>\n> {\n const tokenAccounts = await connection.getTokenAccountsByOwner(user, {\n programId: TOKEN_2022_PROGRAM_ID,\n });\n\n const userPositionNftAccount: Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }> = [];\n for (const { account, pubkey } of tokenAccounts.value) {\n const tokenAccountData = AccountLayout.decode(account.data);\n if (tokenAccountData.amount.toString() === \"1\") {\n userPositionNftAccount.push({\n positionNft: tokenAccountData.mint,\n positionNftAccount: pubkey,\n });\n }\n }\n\n return userPositionNftAccount;\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport {\n BaseFee,\n CollectFeeMode,\n DynamicFee,\n FeeMode,\n FeeSchedulerMode,\n Rounding,\n} from \"../types\";\nimport {\n BASIS_POINT_MAX,\n BIN_STEP_BPS_DEFAULT,\n BIN_STEP_BPS_U128_DEFAULT,\n DYNAMIC_FEE_DECAY_PERIOD_DEFAULT,\n DYNAMIC_FEE_FILTER_PERIOD_DEFAULT,\n DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT,\n FEE_DENOMINATOR,\n MAX_FEE_NUMERATOR,\n MAX_PRICE_CHANGE_BPS_DEFAULT,\n SCALE_OFFSET,\n} from \"../constants\";\nimport { ONE, pow } from \"../math/feeMath\";\nimport { mulDiv } from \"../math\";\nimport {\n getAmountAFromLiquidityDelta,\n getAmountBFromLiquidityDelta,\n getNextSqrtPrice,\n} from \"./curve\";\nimport Decimal from \"decimal.js\";\n\n// Fee scheduler\n// Linear: cliffFeeNumerator - period * reductionFactor\n// Exponential: cliffFeeNumerator * (1 -reductionFactor/BASIS_POINT_MAX)^period\nexport function getBaseFeeNumerator(\n feeSchedulerMode: FeeSchedulerMode,\n cliffFeeNumerator: BN,\n period: BN,\n reductionFactor: BN\n): BN {\n let feeNumerator: BN;\n if (feeSchedulerMode == FeeSchedulerMode.Linear) {\n feeNumerator = cliffFeeNumerator.sub(period.mul(reductionFactor));\n } else {\n const bps = reductionFactor.shln(SCALE_OFFSET).div(new BN(BASIS_POINT_MAX));\n const base = ONE.sub(bps);\n const result = pow(base, period);\n feeNumerator = cliffFeeNumerator.mul(result).shrn(SCALE_OFFSET);\n }\n\n return feeNumerator;\n}\n\n/**\n * Calculates the dynamic fee numerator based on market volatility metrics\n *\n * @param volatilityAccumulator - A measure of accumulated market volatility (BN)\n * @param binStep - The size of price bins in the liquidity distribution (BN)\n * @param variableFeeControl - Parameter controlling the impact of volatility on fees (BN)\n * @returns The calculated dynamic fee numerator (BN)\n */\nexport function getDynamicFeeNumerator(\n volatilityAccumulator: BN,\n binStep: BN,\n variableFeeControl: BN\n): BN {\n if (variableFeeControl.isZero()) {\n return new BN(0);\n }\n const squareVfaBin = volatilityAccumulator\n .mul(new BN(binStep))\n .pow(new BN(2));\n const vFee = variableFeeControl.mul(squareVfaBin);\n\n return vFee.add(new BN(99_999_999_999)).div(new BN(100_000_000_000));\n}\n\n/**\n * Calculates the fee numerator based on current market conditions and fee schedule configuration\n *\n * @param currentPoint - The current price point in the liquidity curve\n * @param activationPoint - The price point at which the fee schedule is activated (BN)\n * @param numberOfPeriod - The total number of periods in the fee schedule\n * @param periodFrequency - The frequency at which periods change (BN)\n * @param feeSchedulerMode - The mode determining how fees are calculated (0 = constant, 1 = linear, etc.)\n * @param cliffFeeNumerator - The initial fee numerator at the cliff point (BN)\n * @param reductionFactor - The factor by which fees are reduced in each period (BN)\n * @param dynamicFeeParams - Optional parameters for dynamic fee calculation\n * @param dynamicFeeParams.volatilityAccumulator - Measure of accumulated market volatility (BN)\n * @param dynamicFeeParams.binStep - Size of price bins in the liquidity distribution (BN)\n * @param dynamicFeeParams.variableFeeControl - Parameter controlling the impact of volatility (BN)\n * @returns The calculated fee numerator (BN), capped at MAX_FEE_NUMERATOR\n */\nexport function getFeeNumerator(\n currentPoint: number,\n activationPoint: BN,\n numberOfPeriod: number,\n periodFrequency: BN,\n feeSchedulerMode: number,\n cliffFeeNumerator: BN,\n reductionFactor: BN,\n dynamicFeeParams?: {\n volatilityAccumulator: BN;\n binStep: number;\n variableFeeControl: number;\n }\n): BN {\n if (Number(periodFrequency) == 0) {\n return cliffFeeNumerator;\n }\n const period = new BN(currentPoint).lt(activationPoint)\n ? new BN(numberOfPeriod)\n : BN.min(\n new BN(numberOfPeriod),\n new BN(currentPoint).sub(activationPoint).div(periodFrequency)\n );\n\n let feeNumerator = getBaseFeeNumerator(\n feeSchedulerMode,\n cliffFeeNumerator,\n period,\n reductionFactor\n );\n\n if (dynamicFeeParams) {\n const { volatilityAccumulator, binStep, variableFeeControl } =\n dynamicFeeParams;\n const dynamicFeeNumberator = getDynamicFeeNumerator(\n volatilityAccumulator,\n new BN(binStep),\n new BN(variableFeeControl)\n );\n feeNumerator = feeNumerator.add(dynamicFeeNumberator);\n }\n return feeNumerator.gt(new BN(MAX_FEE_NUMERATOR))\n ? new BN(MAX_FEE_NUMERATOR)\n : feeNumerator;\n}\n\n/**\n * Determines the fee mode based on the swap direction and fee collection configuration\n *\n * @param collectFeeMode - The fee collection mode (e.g., OnlyB, BothToken)\n * @param btoA - Boolean indicating if the swap is from token B to token A\n * @returns { feeOnInput, feesOnTokenA }\n */\nfunction getFeeMode(collectFeeMode: CollectFeeMode, btoA: boolean): FeeMode {\n const feeOnInput = btoA && collectFeeMode === CollectFeeMode.OnlyB;\n const feesOnTokenA = btoA && collectFeeMode === CollectFeeMode.BothToken;\n\n return {\n feeOnInput,\n feesOnTokenA,\n };\n}\n\n/**\n * Calculates the total fee amount based on the transaction amount and fee numerator\n *\n * @param amount - The transaction amount (BN)\n * @param tradeFeeNumerator - The fee numerator to apply (BN)\n * @returns The calculated fee amount (BN), rounded up\n */\nfunction getTotalFeeOnAmount(amount: BN, tradeFeeNumerator: BN) {\n return mulDiv(\n amount,\n tradeFeeNumerator,\n new BN(FEE_DENOMINATOR),\n Rounding.Up\n );\n}\n\n/**\n *\n * Calculates the output amount and fees for a swap operation in a concentrated liquidity pool.\n *\n * @param inAmount - The input amount of tokens the user is swapping\n * @param sqrtPrice - The current square root price of the pool\n * @param liquidity - The current liquidity available in the pool\n * @param tradeFeeNumerator - The fee numerator used to calculate trading fees\n * @param aToB - Direction of the swap: true for token A to token B, false for token B to token A\n * @param collectFeeMode - Determines how fees are collected (0: both tokens, 1: only token B)\n * @returns Object containing the actual output amount after fees and the total fee amount\n */\nexport function getSwapAmount(\n inAmount: BN,\n sqrtPrice: BN,\n liquidity: BN,\n tradeFeeNumerator: BN,\n aToB: boolean,\n collectFeeMode: number\n): { amountOut: BN; totalFee: BN } {\n let feeMode = getFeeMode(collectFeeMode, !aToB);\n let actualInAmount = inAmount;\n let totalFee = new BN(0);\n\n if (feeMode.feeOnInput) {\n totalFee = getTotalFeeOnAmount(inAmount, tradeFeeNumerator);\n actualInAmount = inAmount.sub(totalFee);\n }\n\n // Calculate the output amount based on swap direction\n const outAmount = aToB\n ? getAmountBFromLiquidityDelta(\n liquidity,\n sqrtPrice,\n getNextSqrtPrice(actualInAmount, sqrtPrice, liquidity, true),\n Rounding.Down\n )\n : getAmountAFromLiquidityDelta(\n liquidity,\n sqrtPrice,\n getNextSqrtPrice(actualInAmount, sqrtPrice, liquidity, false),\n Rounding.Down\n );\n\n // Apply fees to output amount if fee is taken on output\n const amountOut = feeMode.feeOnInput\n ? outAmount\n : ((totalFee = getTotalFeeOnAmount(outAmount, tradeFeeNumerator)),\n outAmount.sub(totalFee));\n\n return { amountOut, totalFee };\n}\n\n/**\n * Converts basis points (bps) to a fee numerator\n * 1 bps = 0.01% = 0.0001 in decimal\n *\n * @param bps - The value in basis points [1-10_000]\n * @returns The equivalent fee numerator\n */\nexport function bpsToFeeNumerator(bps: number): BN {\n return new BN(bps * FEE_DENOMINATOR).divn(BASIS_POINT_MAX);\n}\n\n/**\n * Converts a fee numerator back to basis points (bps)\n *\n * @param feeNumerator - The fee numerator to convert\n * @returns The equivalent value in basis points [1-10_000]\n */\nexport function feeNumeratorToBps(feeNumerator: BN): number {\n return feeNumerator\n .muln(BASIS_POINT_MAX)\n .div(new BN(FEE_DENOMINATOR))\n .toNumber();\n}\n\n/**\n * Calculates base fee parameters for a fee scheduler system.\n * @param {number} maxBaseFeeBps - Maximum fee in basis points\n * @param {number} minBaseFeeBps - Minimum fee in basis points\n * @param {FeeSchedulerMode} feeSchedulerMode - Mode for fee reduction (Linear or Exponential)\n * @param {number} numberOfPeriod - Number of periods over which to schedule fee reduction\n * @param {BN} periodFrequency - Time interval between fee reductions\n *\n * @returns {BaseFee}\n */\nexport function getBaseFeeParams(\n maxBaseFeeBps: number,\n minBaseFeeBps: number,\n feeSchedulerMode: FeeSchedulerMode,\n numberOfPeriod: number,\n totalDuration: number\n): BaseFee {\n if (maxBaseFeeBps == minBaseFeeBps) {\n if (numberOfPeriod != 0 || totalDuration != 0) {\n throw new Error(\"numberOfPeriod and totalDuration must both be zero\");\n }\n\n return {\n cliffFeeNumerator: bpsToFeeNumerator(maxBaseFeeBps),\n numberOfPeriod: 0,\n periodFrequency: new BN(0),\n reductionFactor: new BN(0),\n feeSchedulerMode: 0,\n };\n }\n\n if (numberOfPeriod <= 0) {\n throw new Error(\"Total periods must be greater than zero\");\n }\n\n if (maxBaseFeeBps > feeNumeratorToBps(new BN(MAX_FEE_NUMERATOR))) {\n throw new Error(\n `maxBaseFeeBps (${maxBaseFeeBps} bps) exceeds maximum allowed value of ${feeNumeratorToBps(\n new BN(MAX_FEE_NUMERATOR)\n )} bps`\n );\n }\n\n if (minBaseFeeBps > maxBaseFeeBps) {\n throw new Error(\n \"minBaseFee bps must be less than or equal to maxBaseFee bps\"\n );\n }\n\n if (numberOfPeriod == 0 || totalDuration == 0) {\n throw new Error(\n \"numberOfPeriod and totalDuration must both greater than zero\"\n );\n }\n\n const maxBaseFeeNumerator = bpsToFeeNumerator(maxBaseFeeBps);\n\n const minBaseFeeNumerator = bpsToFeeNumerator(minBaseFeeBps);\n\n const periodFrequency = new BN(totalDuration / numberOfPeriod);\n\n let reductionFactor: BN;\n if (feeSchedulerMode == FeeSchedulerMode.Linear) {\n const totalReduction = maxBaseFeeNumerator.sub(minBaseFeeNumerator);\n reductionFactor = totalReduction.divn(numberOfPeriod);\n } else {\n const ratio =\n minBaseFeeNumerator.toNumber() / maxBaseFeeNumerator.toNumber();\n const decayBase = Math.pow(ratio, 1 / numberOfPeriod);\n reductionFactor = new BN(BASIS_POINT_MAX * (1 - decayBase));\n }\n\n return {\n cliffFeeNumerator: maxBaseFeeNumerator,\n numberOfPeriod,\n periodFrequency,\n reductionFactor,\n feeSchedulerMode,\n };\n}\n\n/**\n * Calculate dynamic fee parameters\n * @param {number} baseFeeBps - Base fee in basis points\n * @param {number} [maxPriceChangeBps=1500] - Maximum price change to consider for fee calculation (in basis points)\n *\n * @returns {DynamicFee}\n */\nexport function getDynamicFeeParams(\n baseFeeBps: number,\n maxPriceChangeBps: number = MAX_PRICE_CHANGE_BPS_DEFAULT // default 15%\n): DynamicFee {\n if (maxPriceChangeBps > MAX_PRICE_CHANGE_BPS_DEFAULT) {\n throw new Error(\n `maxPriceChangeBps (${maxPriceChangeBps} bps) must be less than or equal to ${MAX_PRICE_CHANGE_BPS_DEFAULT}`\n );\n }\n\n const priceRatio = maxPriceChangeBps / BASIS_POINT_MAX + 1;\n // Q64\n const sqrtPriceRatioQ64 = new BN(\n Decimal.sqrt(priceRatio.toString())\n .mul(Decimal.pow(2, 64))\n .floor()\n .toFixed()\n );\n const deltaBinId = sqrtPriceRatioQ64\n .sub(ONE)\n .div(BIN_STEP_BPS_U128_DEFAULT)\n .muln(2);\n\n const maxVolatilityAccumulator = new BN(deltaBinId.muln(BASIS_POINT_MAX));\n\n const squareVfaBin = maxVolatilityAccumulator\n .mul(new BN(BIN_STEP_BPS_DEFAULT))\n .pow(new BN(2));\n\n const baseFeeNumerator = new BN(bpsToFeeNumerator(baseFeeBps));\n const maxDynamicFeeNumerator = baseFeeNumerator.muln(20).divn(100); // default max dynamic fee = 20% of base fee.\n const vFee = maxDynamicFeeNumerator\n .mul(new BN(100_000_000_000))\n .sub(new BN(99_999_999_999));\n\n const variableFeeControl = vFee.div(squareVfaBin);\n\n return {\n binStep: BIN_STEP_BPS_DEFAULT,\n binStepU128: BIN_STEP_BPS_U128_DEFAULT,\n filterPeriod: DYNAMIC_FEE_FILTER_PERIOD_DEFAULT,\n decayPeriod: DYNAMIC_FEE_DECAY_PERIOD_DEFAULT,\n reductionFactor: DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT,\n maxVolatilityAccumulator: maxVolatilityAccumulator.toNumber(),\n variableFeeControl: variableFeeControl.toNumber(),\n };\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { SCALE_OFFSET } from \"../constants\";\n\nconst MAX_EXPONENTIAL = new BN(0x80000);\n\nexport const ONE = new BN(1).shln(SCALE_OFFSET);\nconst MAX = new BN(2).pow(new BN(128)).sub(new BN(1));\n\nexport function pow(base: BN, exp: BN): BN {\n let invert = exp.isNeg();\n\n if (exp.isZero()) {\n return ONE;\n }\n\n exp = invert ? exp.abs() : exp;\n\n if (exp.gt(MAX_EXPONENTIAL)) {\n return new BN(0);\n }\n\n let squaredBase = base;\n let result = ONE;\n\n if (squaredBase.gte(result)) {\n squaredBase = MAX.div(squaredBase);\n invert = !invert;\n }\n\n if (!exp.and(new BN(0x1)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x2)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x4)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x8)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x10)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x20)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x40)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x80)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x100)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x200)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x400)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x800)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x1000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x2000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x4000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x8000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x10000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x20000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x40000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n if (result.isZero()) {\n return new BN(0);\n }\n\n if (invert) {\n result = MAX.div(result);\n }\n\n return result;\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport Decimal from \"decimal.js\";\nimport { Rounding } from \"../types\";\n\nexport function mulDiv(x: BN, y: BN, denominator: BN, rounding: Rounding): BN {\n const { div, mod } = x.mul(y).divmod(denominator);\n\n if (rounding == Rounding.Up && !mod.isZero()) {\n return div.add(new BN(1));\n }\n return div;\n}\n\nexport function q64ToDecimal(num: BN, decimalPlaces?: number): Decimal {\n return new Decimal(num.toString())\n .div(Decimal.pow(2, 64))\n .toDecimalPlaces(decimalPlaces);\n}\n\nexport function decimalToQ64(num: Decimal): BN {\n return new BN(num.mul(Decimal.pow(2, 64)).floor().toFixed());\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { Rounding } from \"../types\";\nimport { mulDiv } from \"../math\";\nimport { SCALE_OFFSET } from \"../constants\";\n\n// aToB\n// √P' = √P * L / (L + Δx*√P)\n// bToA\n// √P' = √P + Δy / L\nexport function getNextSqrtPrice(\n amount: BN,\n sqrtPrice: BN,\n liquidity: BN,\n aToB: boolean\n): BN {\n let result: BN;\n if (aToB) {\n const product = amount.mul(sqrtPrice);\n const denominator = liquidity.add(product);\n const numerator = liquidity.mul(sqrtPrice);\n result = numerator.add(denominator.sub(new BN(1))).div(denominator);\n } else {\n const quotient = amount.shln(SCALE_OFFSET * 2).div(liquidity);\n result = sqrtPrice.add(quotient);\n }\n\n return result;\n}\n\n// Δa = L * (1 / √P_lower - 1 / √P_upper)\n//\n// Δa = L * (√P_upper - √P_lower) / (√P_upper * √P_lower)\n//\n// L = Δa * √P_upper * √P_lower / (√P_upper - √P_lower)\n//\nexport function getLiquidityDeltaFromAmountA(\n amountA: BN,\n lowerSqrtPrice: BN, // current sqrt price\n upperSqrtPrice: BN // max sqrt price\n): BN {\n const product = amountA.mul(lowerSqrtPrice).mul(upperSqrtPrice); // Q128.128\n const denominator = upperSqrtPrice.sub(lowerSqrtPrice); // Q64.64\n\n return product.div(denominator);\n}\n\n// Δb = L (√P_upper - √P_lower)\n// L = Δb / (√P_upper - √P_lower)\nexport function getLiquidityDeltaFromAmountB(\n amountB: BN,\n lowerSqrtPrice: BN, // min sqrt price\n upperSqrtPrice: BN // current sqrt price,\n): BN {\n const denominator = upperSqrtPrice.sub(lowerSqrtPrice);\n const product = amountB.shln(128);\n return product.div(denominator);\n}\n\n// L = Δa * √P_upper * √P_lower / (√P_upper - √P_lower)\n// Δa = L * (√P_upper - √P_lower) / √P_upper * √P_lower\nexport function getAmountAFromLiquidityDelta(\n liquidity: BN,\n currentSqrtPrice: BN, // current sqrt price\n maxSqrtPrice: BN,\n rounding: Rounding\n): BN {\n // Q128.128\n const product = liquidity.mul(maxSqrtPrice.sub(currentSqrtPrice));\n // Q128.128\n const denominator = currentSqrtPrice.mul(maxSqrtPrice);\n // Q64.64\n if (rounding == Rounding.Up) {\n return product.add(denominator.sub(new BN(1))).div(denominator);\n }\n return product.div(denominator);\n}\n\n// L = Δb / (√P_upper - √P_lower)\n// Δb = L * (√P_upper - √P_lower)\nexport function getAmountBFromLiquidityDelta(\n liquidity: BN,\n currentSqrtPrice: BN, // current sqrt price,\n minSqrtPrice: BN,\n rounding: Rounding\n): BN {\n const one = new BN(1).shln(128);\n const deltaPrice = currentSqrtPrice.sub(minSqrtPrice);\n const result = liquidity.mul(deltaPrice); // Q128\n if (rounding == Rounding.Up) {\n return result.add(one.sub(new BN(1))).div(one);\n }\n return result.shrn(128);\n}\n","import {\n AddressLookupTableAccount,\n Commitment,\n ComputeBudgetProgram,\n Connection,\n PublicKey,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { MAX_CU_BUFFER, MIN_CU_BUFFER } from \"../constants\";\n\nexport const getSimulationComputeUnits = async (\n connection: Connection,\n instructions: Array<TransactionInstruction>,\n payer: PublicKey,\n lookupTables: Array<AddressLookupTableAccount> | [],\n commitment: Commitment = \"confirmed\"\n): Promise<number | null> => {\n const testInstructions = [\n // Set an arbitrarily high number in simulation\n // so we can be sure the transaction will succeed\n // and get the real compute units used\n ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }),\n ...instructions,\n ];\n\n const testTransaction = new VersionedTransaction(\n new TransactionMessage({\n instructions: testInstructions,\n payerKey: payer,\n // RecentBlockhash can by any public key during simulation\n // since 'replaceRecentBlockhash' is set to 'true' below\n recentBlockhash: PublicKey.default.toString(),\n }).compileToV0Message(lookupTables)\n );\n\n const rpcResponse = await connection.simulateTransaction(testTransaction, {\n replaceRecentBlockhash: true,\n sigVerify: false,\n commitment,\n });\n\n if (rpcResponse?.value?.err) {\n const logs = rpcResponse.value.logs?.join(\"\\n • \") || \"No logs available\";\n throw new Error(\n `Transaction simulation failed:\\n •${logs}` +\n JSON.stringify(rpcResponse?.value?.err)\n );\n }\n\n return rpcResponse.value.unitsConsumed || null;\n};\n\n/**\n * Gets the estimated compute unit usage with a buffer.\n * @param connection A Solana connection object.\n * @param instructions The instructions of the transaction to simulate.\n * @param feePayer The public key of the fee payer.\n * @param buffer The buffer to add to the estimated compute unit usage. Max value is 1. Default value is 0.1 if not provided, and will be capped between 50k - 200k.\n * @returns The estimated compute unit usage with the buffer.\n */\nexport const getEstimatedComputeUnitUsageWithBuffer = async (\n connection: Connection,\n instructions: TransactionInstruction[],\n feePayer: PublicKey,\n buffer?: number\n) => {\n if (!buffer) {\n buffer = 0.1;\n }\n // Avoid negative value\n buffer = Math.max(0, buffer);\n // Limit buffer to 1\n buffer = Math.min(1, buffer);\n\n const estimatedComputeUnitUsage = await getSimulationComputeUnits(\n connection,\n instructions,\n feePayer,\n []\n );\n\n if (!estimatedComputeUnitUsage) {\n return 0;\n }\n\n let extraComputeUnitBuffer = estimatedComputeUnitUsage * buffer;\n if (extraComputeUnitBuffer > MAX_CU_BUFFER) {\n extraComputeUnitBuffer = MAX_CU_BUFFER;\n } else if (extraComputeUnitBuffer < MIN_CU_BUFFER) {\n extraComputeUnitBuffer = MIN_CU_BUFFER;\n }\n\n return estimatedComputeUnitUsage + extraComputeUnitBuffer;\n};\n\n/**\n * Gets the estimated compute unit usage with a buffer and converts it to a SetComputeUnitLimit instruction.\n * If the estimated compute unit usage cannot be retrieved, returns a SetComputeUnitLimit instruction with the fallback unit.\n * @param connection A Solana connection object.\n * @param instructions The instructions of the transaction to simulate.\n * @param feePayer The public key of the fee payer.\n * @param buffer The buffer to add to the estimated compute unit usage. Max value is 1. Default value is 0.1 if not provided, and will be capped between 50k - 200k.\n * @returns A SetComputeUnitLimit instruction with the estimated compute unit usage.\n */\nexport const getEstimatedComputeUnitIxWithBuffer = async (\n connection: Connection,\n instructions: TransactionInstruction[],\n feePayer: PublicKey,\n buffer?: number\n) => {\n const units = await getEstimatedComputeUnitUsageWithBuffer(\n connection,\n instructions,\n feePayer,\n buffer\n ).catch((error) => {\n console.error(\"Error::getEstimatedComputeUnitUsageWithBuffer\", error);\n return 1_400_000;\n });\n\n return ComputeBudgetProgram.setComputeUnitLimit({ units });\n};\n","import { BN } from \"@coral-xyz/anchor\";\nimport { BASIS_POINT_MAX, LIQUIDITY_SCALE } from \"../constants\";\nimport Decimal from \"decimal.js\";\nimport { PoolState, PositionState } from \"../types\";\nimport { PublicKey } from \"@solana/web3.js\";\n/**\n * It takes an amount and a slippage rate, and returns the maximum amount that can be received with\n * that slippage rate\n * @param {BN} amount - The amount of tokens you want to buy.\n * @param {number} rate - The maximum percentage of slippage you're willing to accept. (Max to 2 decimal place)\n * @returns The maximum amount of tokens that can be bought with the given amount of ETH, given the\n * slippage rate.\n */\nexport const getMaxAmountWithSlippage = (amount: BN, rate: number) => {\n const slippage = ((100 + rate) / 100) * BASIS_POINT_MAX;\n return amount.mul(new BN(slippage)).div(new BN(BASIS_POINT_MAX));\n};\n\n/**\n * It takes an amount and a slippage rate, and returns the minimum amount that will be received after\n * slippage\n * @param {BN} amount - The amount of tokens you want to sell.\n * @param {number} rate - The percentage of slippage you're willing to accept. (Max to 2 decimal place)\n * @returns The minimum amount that can be received after slippage is applied.\n */\nexport const getMinAmountWithSlippage = (amount: BN, rate: number) => {\n const slippage = ((100 - rate) / 100) * BASIS_POINT_MAX;\n return amount.mul(new BN(slippage)).div(new BN(BASIS_POINT_MAX));\n};\n\n/**\n * Calculate price impact as a percentage\n * @param actualAmount Amount after slippage in token units\n * @param idealAmount Theoretical amount without slippage in token units\n * @returns Price impact as a percentage (e.g., 1.5 means 1.5%)\n */\nexport const getPriceImpact = (actualAmount: BN, idealAmount: BN): number => {\n const diff = idealAmount.sub(actualAmount);\n return new Decimal(diff.toString())\n .div(new Decimal(idealAmount.toString()))\n .mul(100)\n .toNumber();\n};\n\n// (sqrtPrice)^2 * 10 ** (base_decimal - quote_decimal) / 2^128\nexport const getPriceFromSqrtPrice = (\n sqrtPrice: BN,\n tokenADecimal: number,\n tokenBDecimal: number\n): string => {\n const decimalSqrtPrice = new Decimal(sqrtPrice.toString());\n const price = decimalSqrtPrice\n .mul(decimalSqrtPrice)\n .mul(new Decimal(10 ** (tokenADecimal - tokenBDecimal)))\n .div(Decimal.pow(2, 128))\n .toString();\n\n return price;\n};\n\n// sqrt(price / 10^(tokenADecimal - tokenBDecimal)) * 2^64\nexport const getSqrtPriceFromPrice = (\n price: string,\n tokenADecimal: number,\n tokenBDecimal: number\n): BN => {\n const decimalPrice = new Decimal(price);\n\n const adjustedByDecimals = decimalPrice.div(\n new Decimal(10 ** (tokenADecimal - tokenBDecimal))\n );\n\n const sqrtValue = Decimal.sqrt(adjustedByDecimals);\n\n const sqrtValueQ64 = sqrtValue.mul(Decimal.pow(2, 64));\n\n return new BN(sqrtValueQ64.floor().toFixed());\n};\n\n// fee = totalLiquidity * feePerTokenStore\n// precision: (totalLiquidity * feePerTokenStore) >> 128\nexport const getUnClaimReward = (\n poolState: PoolState,\n positionState: PositionState\n): {\n feeTokenA: BN;\n feeTokenB: BN;\n rewards: BN[];\n} => {\n const totalPositionLiquidity = positionState.unlockedLiquidity\n .add(positionState.vestedLiquidity)\n .add(positionState.permanentLockedLiquidity);\n\n const feeAPerTokenStored = new BN(\n Buffer.from(poolState.feeAPerLiquidity).reverse()\n ).sub(new BN(Buffer.from(positionState.feeAPerTokenCheckpoint).reverse()));\n\n const feeBPerTokenStored = new BN(\n Buffer.from(poolState.feeBPerLiquidity).reverse()\n ).sub(new BN(Buffer.from(positionState.feeBPerTokenCheckpoint).reverse()));\n\n const feeA = totalPositionLiquidity\n .mul(feeAPerTokenStored)\n .shrn(LIQUIDITY_SCALE);\n const feeB = totalPositionLiquidity\n .mul(feeBPerTokenStored)\n .shrn(LIQUIDITY_SCALE);\n\n return {\n feeTokenA: positionState.feeAPending.add(feeA),\n feeTokenB: positionState.feeBPending.add(feeB),\n rewards:\n positionState.rewardInfos.length > 0\n ? positionState.rewardInfos.map((item) => item.rewardPendings)\n : [],\n };\n};\n","import { GetProgramAccountsFilter, PublicKey } from \"@solana/web3.js\";\n\nexport const positionByPoolFilter = (\n pool: PublicKey\n): GetProgramAccountsFilter => {\n return {\n memcmp: {\n bytes: pool.toBase58(),\n offset: 8,\n },\n };\n};\n\nexport const vestingByPositionFilter = (\n position: PublicKey\n): GetProgramAccountsFilter => {\n return {\n memcmp: {\n bytes: position.toBase58(),\n offset: 8,\n },\n };\n};\n","import { BN } from \"@coral-xyz/anchor\";\nimport Decimal from \"decimal.js\";\n\n// a = L * (1/s - 1/pb)\n// b = L * (s - pa)\n// b/a = (s - pa) / (1/s - 1/pb)\n// With: x = 1 / pb and y = b/a\n// => s ^ 2 + s * (-pa + x * y) - y = 0\n// s = [(pa - xy) + √((xy - pa)² + 4y)]/2\nexport function calculateInitSqrtPrice(\n tokenAAmount: BN,\n tokenBAmount: BN,\n minSqrtPrice: BN,\n maxSqrtPrice: BN\n): BN {\n if (tokenAAmount.isZero() || tokenBAmount.isZero()) {\n throw new Error(\"Amount cannot be zero\");\n }\n\n const amountADecimal = new Decimal(tokenAAmount.toString());\n const amountBDecimal = new Decimal(tokenBAmount.toString());\n const minSqrtPriceDecimal = new Decimal(minSqrtPrice.toString()).div(\n Decimal.pow(2, 64)\n );\n const maxSqrtPriceDecimal = new Decimal(maxSqrtPrice.toString()).div(\n Decimal.pow(2, 64)\n );\n\n const x = new Decimal(1).div(maxSqrtPriceDecimal);\n const y = amountBDecimal.div(amountADecimal);\n const xy = x.mul(y);\n\n const paMinusXY = minSqrtPriceDecimal.sub(xy);\n const xyMinusPa = xy.sub(minSqrtPriceDecimal);\n\n const fourY = new Decimal(4).mul(y);\n\n const discriminant = xyMinusPa.mul(xyMinusPa).add(fourY);\n\n // sqrt_discriminant = √discriminant\n const sqrtDiscriminant = discriminant.sqrt();\n const result = paMinusXY\n .add(sqrtDiscriminant)\n .div(new Decimal(2))\n .mul(Decimal.pow(2, 64));\n\n return new BN(result.floor().toFixed());\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport {\n calculateFee,\n getEpochFee,\n getTransferFeeConfig,\n MAX_FEE_BASIS_POINTS,\n Mint,\n TransferFee,\n} from \"@solana/spl-token\";\n\ninterface TransferFeeIncludedAmount {\n amount: BN;\n transferFee: BN;\n}\n\nfunction calculatePreFeeAmount(transferFee: TransferFee, postFeeAmount: BN) {\n if (postFeeAmount.isZero()) {\n return new BN(0);\n }\n\n if (transferFee.transferFeeBasisPoints === 0) {\n return postFeeAmount;\n }\n\n const maximumFee = new BN(transferFee.maximumFee.toString());\n\n if (transferFee.transferFeeBasisPoints === MAX_FEE_BASIS_POINTS) {\n return postFeeAmount.add(maximumFee);\n }\n\n const ONE_IN_BASIS_POINTS = new BN(MAX_FEE_BASIS_POINTS);\n const numerator = postFeeAmount.mul(ONE_IN_BASIS_POINTS);\n const denominator = ONE_IN_BASIS_POINTS.sub(\n new BN(transferFee.transferFeeBasisPoints)\n );\n\n const rawPreFeeAmount = numerator\n .add(denominator)\n .sub(new BN(1))\n .div(denominator);\n\n if (rawPreFeeAmount.sub(postFeeAmount).gte(maximumFee)) {\n return postFeeAmount.add(maximumFee);\n }\n\n return rawPreFeeAmount;\n}\n\nfunction calculateInverseFee(transferFee: TransferFee, postFeeAmount: BN) {\n const preFeeAmount = calculatePreFeeAmount(transferFee, postFeeAmount);\n return new BN(\n calculateFee(transferFee, BigInt(preFeeAmount.toString())).toString()\n );\n}\n\nexport function calculateTransferFeeIncludedAmount(\n transferFeeExcludedAmount: BN,\n mint: Mint,\n currentEpoch: number\n): TransferFeeIncludedAmount {\n if (transferFeeExcludedAmount.isZero()) {\n return {\n amount: new BN(0),\n transferFee: new BN(0),\n };\n }\n\n const transferFeeConfig = getTransferFeeConfig(mint);\n\n if (transferFeeConfig === null) {\n return {\n amount: transferFeeExcludedAmount,\n transferFee: new BN(0),\n };\n }\n\n const epochFee = getEpochFee(transferFeeConfig, BigInt(currentEpoch));\n\n const transferFee =\n epochFee.transferFeeBasisPoints == MAX_FEE_BASIS_POINTS\n ? new BN(epochFee.maximumFee.toString())\n : calculateInverseFee(epochFee, transferFeeExcludedAmount);\n\n const transferFeeIncludedAmount = transferFeeExcludedAmount.add(transferFee);\n\n return {\n amount: transferFeeIncludedAmount,\n transferFee,\n };\n}\n\ninterface TransferFeeExcludedAmount {\n amount: BN;\n transferFee: BN;\n}\n\nexport function calculateTransferFeeExcludedAmount(\n transferFeeIncludedAmount: BN,\n mint: Mint,\n currentEpoch: number\n): TransferFeeExcludedAmount {\n const transferFeeConfig = getTransferFeeConfig(mint);\n if (transferFeeConfig === null) {\n return {\n amount: transferFeeIncludedAmount,\n transferFee: new BN(0),\n };\n }\n\n const transferFeeIncludedAmountN = BigInt(\n transferFeeIncludedAmount.toString()\n );\n\n const transferFee = calculateFee(\n getEpochFee(transferFeeConfig, BigInt(currentEpoch)),\n transferFeeIncludedAmountN\n );\n\n const transferFeeExcludedAmount = new BN(\n (transferFeeIncludedAmountN - transferFee).toString()\n );\n\n return {\n amount: transferFeeExcludedAmount,\n transferFee: new BN(transferFee.toString()),\n };\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { PositionState, VestingState } from \"../types\";\nimport { min } from \"bn.js\";\n\n/**\n * Checks if a vesting schedule is ready for full release\n * @param vestingData The vesting account data\n * @param currentPoint Current timestamp or slot\n * @returns True if the vesting is complete and all liquidity can be released\n */\nexport function isVestingComplete(\n vestingData: VestingState,\n currentPoint: BN\n): boolean {\n const cliffPoint = vestingData.cliffPoint;\n const periodFrequency = vestingData.periodFrequency;\n const numberOfPeriods = vestingData.numberOfPeriod;\n\n const endPoint = cliffPoint.add(periodFrequency.muln(numberOfPeriods));\n\n return currentPoint.gte(endPoint);\n}\n\n/**\n * Gets the total amount of liquidity in the vesting schedule\n * @param vestingData The vesting account data\n * @returns The total locked liquidity amount\n */\nexport function getTotalLockedLiquidity(vestingData: VestingState): BN {\n return vestingData.cliffUnlockLiquidity.add(\n vestingData.liquidityPerPeriod.mul(new BN(vestingData.numberOfPeriod))\n );\n}\n\n/**\n * Calculates the available liquidity to withdraw based on vesting schedule\n * @param vestingData The vesting account data\n * @param positionData The position account data\n * @param currentPoint Current timestamp or slot\n * @returns The amount of liquidity available to withdraw\n */\nexport function getAvailableVestingLiquidity(\n vestingData: VestingState,\n currentPoint: BN\n): BN {\n const {\n cliffPoint,\n periodFrequency,\n cliffUnlockLiquidity,\n liquidityPerPeriod,\n numberOfPeriod,\n totalReleasedLiquidity,\n } = vestingData;\n\n if (currentPoint.lt(cliffPoint)) {\n return new BN(0);\n }\n\n if (periodFrequency.isZero()) {\n return cliffUnlockLiquidity;\n }\n\n let passedPeriod = new BN(currentPoint).sub(cliffPoint).div(periodFrequency);\n\n passedPeriod = min(passedPeriod, new BN(numberOfPeriod));\n\n // total unlocked liquidity: cliff + (periods * per_period)\n const unlockedLiquidity = cliffUnlockLiquidity.add(\n passedPeriod.mul(liquidityPerPeriod)\n );\n const availableReleasingLiquidity = unlockedLiquidity.sub(\n totalReleasedLiquidity\n );\n\n return availableReleasingLiquidity;\n}\n","export * from \"./CpAmm\";\nexport * from \"./pda\";\nexport * from \"./types\";\nexport * from \"./constants\";\nexport * from \"./helpers\";\nexport * from \"./types\";\nexport * from \"./math\";\nexport type { CpAmm as CpAmmTypes } from \"./idl/cp_amm\";\nimport CpAmmIDL from \"./idl/cp_amm.json\";\nexport default CpAmmIDL;\n"]}
1
+ {"version":3,"sources":["/Users/nguyennguyen/Repos/racoons/cp-amm-sdk/dist/index.js","../src/CpAmm.ts","../src/idl/cp_amm.json","../src/types.ts","../src/pda.ts","../src/constants.ts","../src/helpers/token.ts","../src/helpers/fee.ts","../src/math/feeMath.ts","../src/math/mathUtils.ts","../src/helpers/curve.ts","../src/helpers/computeUnits.ts","../src/helpers/utils.ts","../src/helpers/accountFilters.ts","../src/helpers/priceMath.ts","../src/helpers/token2022.ts","../src/helpers/vestings.ts","../src/index.ts"],"names":["Rounding","ActivationPoint","FeeSchedulerMode","CollectFeeMode","TradeDirection","ActivationType","PublicKey","BN"],"mappings":"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AACA,MAAA;AAGF,MAAA;AACA,MAAA;AAEA,MAAA;AACA,MAAA;AACA,MAAA;AACQ,QAAA;AACmB,QAAA;AACZ,QAAA;AACX,QAAA;AACY,QAAA;AACZ,QAAA;AACA,MAAA;AAEJ,MAAA;AAEA,MAAA;AACE,QAAA;AACA,QAAA;AAA4D,MAAA;AAE9D,MAAA;AAEmB,QAAA;AACK,QAAA;AACpB,QAAA;AACwB,QAAA;AACD,QAAA;AACH,QAAA;AACpB,QAAA;AACA,QAAA;AACO,QAAA;AACP,MAAA;AAIW,IAAA;AACjB,EAAA;AACF;ADgjOA;AACA;AiBluTA;AjBouTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/Users/nguyennguyen/Repos/racoons/cp-amm-sdk/dist/index.js","sourcesContent":[null,"import { Program, BN } from \"@coral-xyz/anchor\";\nimport { NATIVE_MINT, TOKEN_2022_PROGRAM_ID } from \"@solana/spl-token\";\nimport invariant from \"invariant\";\n\nimport CpAmmIDL from \"./idl/cp_amm.json\";\nimport type { CpAmm as CpAmmTypes } from \"./idl/cp_amm\";\nimport {\n Connection,\n Transaction,\n PublicKey,\n TransactionInstruction,\n SystemProgram,\n AccountMeta,\n} from \"@solana/web3.js\";\nimport {\n AddLiquidityParams,\n AmmProgram,\n BuildAddLiquidityParams,\n BuildLiquidatePositionInstructionParams,\n BuildRemoveAllLiquidityInstructionParams,\n ClaimPartnerFeeParams,\n ClaimPositionFeeInstructionParams,\n ClaimPositionFeeParams,\n ClaimRewardParams,\n ClosePositionInstructionParams,\n ClosePositionParams,\n ConfigState,\n CreatePoolParams,\n CreatePositionAndAddLiquidity,\n CreatePositionParams,\n DepositQuote,\n DynamicFeeParams,\n FundRewardParams,\n GetDepositQuoteParams,\n GetQuoteParams,\n GetWithdrawQuoteParams,\n InitializeCustomizeablePoolParams,\n InitializeCustomizeablePoolWithDynamicConfigParams,\n LiquidityDeltaParams,\n LockPositionParams,\n MergePositionParams,\n PermanentLockParams,\n PoolState,\n PositionState,\n PrepareCustomizablePoolParams,\n PreparedPoolCreation,\n PreparePoolCreationParams,\n PreparePoolCreationSingleSide,\n PrepareTokenAccountParams,\n RefreshVestingParams,\n RemoveAllLiquidityAndClosePositionParams,\n RemoveAllLiquidityParams,\n RemoveLiquidityParams,\n Rounding,\n SetupFeeClaimAccountsParams,\n SwapParams,\n TxBuilder,\n UpdateRewardDurationParams,\n UpdateRewardFunderParams,\n VestingState,\n WithdrawIneligibleRewardParams,\n WithdrawQuote,\n} from \"./types\";\nimport {\n deriveCustomizablePoolAddress,\n derivePoolAddress,\n derivePoolAuthority,\n derivePositionAddress,\n derivePositionNftAccount,\n deriveTokenBadgeAddress,\n deriveTokenVaultAddress,\n} from \"./pda\";\n\nimport {\n getFeeNumerator,\n getOrCreateATAInstruction,\n getTokenProgram,\n unwrapSOLInstruction,\n wrapSOLInstruction,\n getSwapAmount,\n getLiquidityDeltaFromAmountA,\n getLiquidityDeltaFromAmountB,\n getMinAmountWithSlippage,\n getPriceImpact,\n positionByPoolFilter,\n vestingByPositionFilter,\n calculateInitSqrtPrice,\n calculateTransferFeeExcludedAmount,\n calculateTransferFeeIncludedAmount,\n getAmountBFromLiquidityDelta,\n getAmountAFromLiquidityDelta,\n getAvailableVestingLiquidity,\n isVestingComplete,\n getAllPositionNftAccountByOwner,\n} from \"./helpers\";\nimport { min, max } from \"bn.js\";\n\n/**\n * CpAmm SDK class to interact with the Dynamic CP-AMM\n */\nexport class CpAmm {\n _program: AmmProgram;\n private poolAuthority: PublicKey;\n constructor(connection: Connection) {\n this._program = new Program(CpAmmIDL as CpAmmTypes, {\n connection: connection,\n });\n this.poolAuthority = derivePoolAuthority();\n }\n\n //// ANCHOR: PRIVATE FUNCTIONS //////\n /**\n * Prepares token accounts for a transaction by retrieving or creating associated token accounts.\n * @private\n * @param {PublicKey} owner - The owner of the token accounts\n * @param {PublicKey} tokenAMint - Mint address of token A\n * @param {PublicKey} tokenBMint - Mint address of token B\n * @param {PublicKey} tokenAProgram - Program ID for token A (Token or Token2022)\n * @param {PublicKey} tokenBProgram - Program ID for token B (Token or Token2022)\n * @returns {Promise<{tokenAAta: PublicKey, tokenBAta: PublicKey, instructions: TransactionInstruction[]}>}\n * The token account addresses and any instructions needed to create them\n */\n private async prepareTokenAccounts(\n params: PrepareTokenAccountParams\n ): Promise<{\n tokenAAta: PublicKey;\n tokenBAta: PublicKey;\n instructions: TransactionInstruction[];\n }> {\n const {\n payer,\n tokenAOwner,\n tokenBOwner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n } = params;\n const instructions: TransactionInstruction[] = [];\n const [\n { ataPubkey: tokenAAta, ix: createInputTokenAccountIx },\n { ataPubkey: tokenBAta, ix: createOutputTokenAccountIx },\n ] = await Promise.all([\n getOrCreateATAInstruction(\n this._program.provider.connection,\n tokenAMint,\n tokenAOwner,\n payer,\n true,\n tokenAProgram\n ),\n getOrCreateATAInstruction(\n this._program.provider.connection,\n tokenBMint,\n tokenBOwner,\n payer,\n true,\n tokenBProgram\n ),\n ]);\n createInputTokenAccountIx && instructions.push(createInputTokenAccountIx);\n createOutputTokenAccountIx && instructions.push(createOutputTokenAccountIx);\n\n return { tokenAAta, tokenBAta, instructions };\n }\n\n /**\n * Derives token badge account metadata\n * @param tokenAMint - Public key of token A mint\n * @param tokenBMint - Public key of token B mint\n * @returns Array of account metadata for token badges\n */\n private getTokenBadgeAccounts(\n tokenAMint: PublicKey,\n tokenBMint: PublicKey\n ): AccountMeta[] {\n return [\n {\n pubkey: deriveTokenBadgeAddress(tokenAMint),\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: deriveTokenBadgeAddress(tokenBMint),\n isWritable: false,\n isSigner: false,\n },\n ];\n }\n\n /**\n * Builds an instruction to add liquidity to a position.\n * @private\n * @param {BuildAddLiquidityParams} params - Parameters for adding liquidity\n * @returns {Promise<TransactionInstruction>} Instruction to add liquidity\n */\n private async buildAddLiquidityInstruction(\n params: BuildAddLiquidityParams\n ): Promise<TransactionInstruction> {\n const {\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n } = params;\n return await this._program.methods\n .addLiquidity({\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n })\n .accountsPartial({\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to remove all liquidity from a position.\n * @private\n * @param {BuildRemoveAllLiquidityInstructionParams} params - Parameters for removing all liquidity\n * @returns {Promise<TransactionInstruction>} Instruction to remove all liquidity\n */\n private async buildRemoveAllLiquidityInstruction(\n params: BuildRemoveAllLiquidityInstructionParams\n ): Promise<TransactionInstruction> {\n const {\n poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n } = params;\n return await this._program.methods\n .removeAllLiquidity(tokenAAmountThreshold, tokenBAmountThreshold)\n .accountsPartial({\n poolAuthority,\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to claim fees accumulated by a position.\n * @private\n * @param {ClaimPositionFeeInstructionParams} params - Parameters for claiming position fees\n * @returns {Promise<TransactionInstruction>} Instruction to claim position fees\n */\n private async buildClaimPositionFeeInstruction(\n params: ClaimPositionFeeInstructionParams\n ): Promise<TransactionInstruction> {\n const {\n owner,\n poolAuthority,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n } = params;\n return await this._program.methods\n .claimPositionFee()\n .accountsPartial({\n poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to close a position.\n * @private\n * @param {ClosePositionInstructionParams} params - Parameters for closing a position\n * @returns {Promise<TransactionInstruction>} Instruction to close the position\n */\n private async buildClosePositionInstruction(\n params: ClosePositionInstructionParams\n ): Promise<TransactionInstruction> {\n const {\n owner,\n poolAuthority,\n pool,\n position,\n positionNftAccount,\n positionNftMint,\n } = params;\n\n return await this._program.methods\n .closePosition()\n .accountsPartial({\n positionNftMint,\n positionNftAccount,\n pool,\n position,\n poolAuthority,\n rentReceiver: owner,\n owner,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n })\n .instruction();\n }\n\n /**\n * Builds an instruction to refresh vesting for a position\n * @param params Parameters required for the refresh vesting instruction\n * @returns Transaction instruction or null if no vestings to refresh\n */\n private async buildRefreshVestingInstruction(\n params: RefreshVestingParams\n ): Promise<TransactionInstruction | null> {\n const { owner, position, positionNftAccount, pool, vestingAccounts } =\n params;\n\n if (vestingAccounts.length == 0) {\n return null;\n }\n\n return await this._program.methods\n .refreshVesting()\n .accountsPartial({\n position,\n positionNftAccount,\n pool,\n owner,\n })\n .remainingAccounts(\n vestingAccounts.map((pubkey: PublicKey) => {\n return {\n isSigner: false,\n isWritable: true,\n pubkey,\n };\n })\n )\n .instruction();\n }\n\n /**\n * Helper function that builds instructions to claim fees, remove liquidity, and close a position\n * @param {BuildLiquidatePositionInstructionParams} params - Parameters for liquidating a position\n * @returns {Promise<TransactionInstruction[]>} Array of instructions\n * @private\n */\n private async buildLiquidatePositionInstruction(\n params: BuildLiquidatePositionInstructionParams\n ): Promise<TransactionInstruction[]> {\n const {\n owner,\n position,\n positionNftAccount,\n positionState,\n poolState,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n } = params;\n\n const { nftMint: positionNftMint, pool } = positionState;\n const { tokenAMint, tokenBMint, tokenAVault, tokenBVault } = poolState;\n\n const tokenAProgram = getTokenProgram(poolState.tokenAFlag);\n const tokenBProgram = getTokenProgram(poolState.tokenBFlag);\n\n const instructions: TransactionInstruction[] = [];\n\n // 1. claim position fee\n const claimPositionFeeInstruction =\n await this.buildClaimPositionFeeInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n instructions.push(claimPositionFeeInstruction);\n\n // 2. remove all liquidity\n const removeAllLiquidityInstruction =\n await this.buildRemoveAllLiquidityInstruction({\n poolAuthority: this.poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n });\n instructions.push(removeAllLiquidityInstruction);\n // 3. close position\n const closePositionInstruction = await this.buildClosePositionInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftMint,\n positionNftAccount,\n });\n instructions.push(closePositionInstruction);\n\n return instructions;\n }\n\n /**\n * Builds a instruction to create a position.\n * @param {CreatePositionParams} params - Parameters for position creation.\n * @returns Transaction instruction.\n */\n private async buildCreatePositionInstruction(\n params: CreatePositionParams\n ): Promise<{\n ix: TransactionInstruction;\n position: PublicKey;\n positionNftAccount: PublicKey;\n }> {\n const { owner, payer, pool, positionNft } = params;\n\n const position = derivePositionAddress(positionNft);\n const positionNftAccount = derivePositionNftAccount(positionNft);\n\n const ix = await this._program.methods\n .createPosition()\n .accountsPartial({\n owner,\n positionNftMint: positionNft,\n poolAuthority: this.poolAuthority,\n positionNftAccount,\n payer: payer,\n pool,\n position,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n systemProgram: SystemProgram.programId,\n })\n .instruction();\n\n return {\n ix,\n position,\n positionNftAccount,\n };\n }\n\n /**\n * Private helper method to prepare common customizable pool creation logic\n * @param {PrepareCustomizablePoolParams} params - Common parameters for pool creation\n * @returns Prepared transaction data including instructions and accounts\n */\n private async prepareCreatePoolParams(params: PrepareCustomizablePoolParams) {\n const {\n pool,\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount,\n payer,\n positionNft,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const position = derivePositionAddress(positionNft);\n const positionNftAccount = derivePositionNftAccount(positionNft);\n\n const tokenAVault = deriveTokenVaultAddress(tokenAMint, pool);\n const tokenBVault = deriveTokenVaultAddress(tokenBMint, pool);\n\n const {\n tokenAAta: payerTokenA,\n tokenBAta: payerTokenB,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer,\n tokenAOwner: payer,\n tokenBOwner: payer,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n payerTokenA,\n BigInt(tokenAAmount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n payerTokenB,\n BigInt(tokenBAmount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n const tokenBadgeAccounts = this.getTokenBadgeAccounts(\n tokenAMint,\n tokenBMint\n );\n\n return {\n position,\n positionNftAccount,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n preInstructions,\n tokenBadgeAccounts,\n };\n }\n\n /**\n * Sets up token accounts and instructions for fee claim operations.\n * @private\n * @param {SetupFeeClaimAccountsParams} params - Parameters for setting up fee claim accounts.\n * @returns Token accounts and instructions for fee claiming.\n */\n private async setupFeeClaimAccounts(\n params: SetupFeeClaimAccountsParams\n ): Promise<{\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n preInstructions: TransactionInstruction[];\n postInstructions: TransactionInstruction[];\n }> {\n const {\n payer,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n receiver,\n tempWSolAccount,\n } = params;\n\n const tokenAIsSOL = tokenAMint.equals(NATIVE_MINT);\n const tokenBIsSOL = tokenBMint.equals(NATIVE_MINT);\n const hasSolToken = tokenAIsSOL || tokenBIsSOL;\n\n const preInstructions: TransactionInstruction[] = [];\n const postInstructions: TransactionInstruction[] = [];\n let tokenAAccount: PublicKey;\n let tokenBAccount: PublicKey;\n\n const tokenAOwner =\n tempWSolAccount && tokenAIsSOL ? tempWSolAccount : receiver;\n const tokenBOwner =\n tempWSolAccount && tokenBIsSOL ? tempWSolAccount : receiver;\n\n const { tokenAAta, tokenBAta, instructions } =\n await this.prepareTokenAccounts({\n payer,\n tokenAOwner,\n tokenBOwner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n tokenAAccount = tokenAAta;\n tokenBAccount = tokenBAta;\n preInstructions.push(...instructions);\n\n if (hasSolToken) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(\n tempWSolAccount ?? receiver,\n receiver\n );\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n return {\n tokenAAccount,\n tokenBAccount,\n preInstructions,\n postInstructions,\n };\n }\n\n //// ANCHOR: GETTER/FETCHER FUNCTIONS //////\n\n /**\n * Fetches the Config state of the program.\n * @param config - Public key of the config account.\n * @returns Parsed ConfigState.\n */\n async fetchConfigState(config: PublicKey): Promise<ConfigState> {\n const configState = await this._program.account.config.fetchNullable(\n config\n );\n invariant(configState, `Config account: ${config} not found`);\n\n return configState;\n }\n\n /**\n * Fetches the Pool state.\n * @param pool - Public key of the pool.\n * @returns Parsed PoolState.\n */\n async fetchPoolState(pool: PublicKey): Promise<PoolState> {\n const poolState = await this._program.account.pool.fetchNullable(pool);\n invariant(poolState, `Pool account: ${pool} not found`);\n\n return poolState;\n }\n\n /**\n * Fetches the Position state.\n * @param position - Public key of the position.\n * @returns Parsed PositionState.\n */\n async fetchPositionState(position: PublicKey): Promise<PositionState> {\n const positionState = await this._program.account.position.fetchNullable(\n position\n );\n invariant(positionState, `Position account: ${position} not found`);\n\n return positionState;\n }\n\n /**\n * Retrieves all config accounts.\n * @returns Array of config public keys and their states.\n */\n async getAllConfigs(): Promise<\n Array<{ publicKey: PublicKey; account: ConfigState }>\n > {\n const configAccounts = await this._program.account.config.all();\n\n return configAccounts;\n }\n\n /**\n * Retrieves all pool accounts.\n * @returns Array of pool public keys and their states.\n */\n async getAllPools(): Promise<\n Array<{ publicKey: PublicKey; account: PoolState }>\n > {\n const poolAccounts = await this._program.account.pool.all();\n\n return poolAccounts;\n }\n\n /**\n * Retrieves all position accounts.\n * @returns Array of position public keys and their states.\n */\n async getAllPositions(): Promise<\n Array<{\n publicKey: PublicKey;\n account: PositionState;\n }>\n > {\n const poolAccounts = await this._program.account.position.all();\n\n return poolAccounts;\n }\n\n /**\n * Gets all positions a specific pool.\n * @param pool - Public key of the pool.\n * @returns List of user positions for the pool.\n */\n async getAllPositionsByPool(pool: PublicKey): Promise<\n Array<{\n publicKey: PublicKey;\n account: PositionState;\n }>\n > {\n return await this._program.account.position.all([\n positionByPoolFilter(pool),\n ]);\n }\n\n /**\n * Gets all positions of a user for a specific pool.\n * @param pool - Public key of the pool.\n * @param user - Public key of the user.\n * @returns List of user positions for the pool.\n */\n async getUserPositionByPool(\n pool: PublicKey,\n user: PublicKey\n ): Promise<\n Array<{\n positionNftAccount: PublicKey;\n position: PublicKey;\n positionState: PositionState;\n }>\n > {\n const allUserPositions = await this.getPositionsByUser(user);\n return allUserPositions.filter((position) =>\n position.positionState.pool.equals(pool)\n );\n }\n\n /**\n * Gets all positions of a user across all pools.\n * @param user - Public key of the user.\n * @returns Array of user positions already sorted by liquidity\n */\n async getPositionsByUser(user: PublicKey): Promise<\n Array<{\n positionNftAccount: PublicKey;\n position: PublicKey;\n positionState: PositionState;\n }>\n > {\n const userPositionAccounts = await getAllPositionNftAccountByOwner(\n this._program.provider.connection,\n user\n );\n if (userPositionAccounts.length === 0) {\n return [];\n }\n\n const positionAddresses = userPositionAccounts.map((account) =>\n derivePositionAddress(account.positionNft)\n );\n\n const positionStates = await this._program.account.position.fetchMultiple(\n positionAddresses\n );\n const positionResult = userPositionAccounts\n .map((account, index) => {\n const positionState = positionStates[index];\n if (!positionState) return null;\n\n return {\n positionNftAccount: account.positionNftAccount,\n position: positionAddresses[index],\n positionState,\n };\n })\n .filter(Boolean);\n\n // in-place sort\n positionResult.sort((a, b) => {\n const totalLiquidityA = a.positionState.vestedLiquidity\n .add(a.positionState.permanentLockedLiquidity)\n .add(a.positionState.unlockedLiquidity);\n\n const totalLiquidityB = b.positionState.vestedLiquidity\n .add(b.positionState.permanentLockedLiquidity)\n .add(b.positionState.unlockedLiquidity);\n\n return totalLiquidityB.cmp(totalLiquidityA);\n });\n\n return positionResult;\n }\n\n async getAllVestingsByPosition(position: PublicKey): Promise<\n Array<{\n publicKey: PublicKey;\n account: VestingState;\n }>\n > {\n const vestings = await this._program.account.vesting.all([\n vestingByPositionFilter(position),\n ]);\n\n return vestings;\n }\n\n isLockedPosition(position: PositionState): boolean {\n const totalLockedLiquidity = position.vestedLiquidity.add(\n position.permanentLockedLiquidity\n );\n\n return totalLockedLiquidity.gtn(0);\n }\n\n isPermanentLockedPosition(positionState: PositionState): boolean {\n return positionState.permanentLockedLiquidity.gtn(0);\n }\n\n /**\n * Checks if a position can be unlocked based on its locking state and vesting schedules.\n *\n * This method evaluates whether a position is eligible for operations that require\n * unlocked liquidity, such as removing all liquidity or closing the position. It checks both\n * permanent locks and time-based vesting schedules.\n *\n * @private\n * @param {PositionState} positionState - The current state of the position\n * @param {Array<{account: PublicKey; vestingState: VestingState}>} vestings - Array of vesting accounts and their states\n * @param {BN} currentPoint - Current timestamp or slot number (depending on activation type of pool)\n *\n * @returns {Object} Result object containing unlock status and reason\n * @returns {boolean} result.canUnlock - Whether the position can be unlocked\n * @returns {string|undefined} result.reason - Reason why position cannot be unlocked (if applicable)\n */\n canUnlockPosition(\n positionState: PositionState,\n vestings: Array<{ account: PublicKey; vestingState: VestingState }>,\n currentPoint: BN\n ): { canUnlock: boolean; reason?: string } {\n if (vestings.length > 0) {\n // Check if permanently locked\n if (this.isPermanentLockedPosition(positionState)) {\n return {\n canUnlock: false,\n reason: \"Position is permanently locked\",\n };\n }\n\n // Check each vesting\n // We expect that should have only one vesting per position\n for (const vesting of vestings) {\n if (!isVestingComplete(vesting.vestingState, currentPoint)) {\n return {\n canUnlock: false,\n reason: \"Position has incomplete vesting schedule\",\n };\n }\n }\n }\n\n return { canUnlock: true };\n }\n\n async isPoolExist(pool: PublicKey): Promise<boolean> {\n const poolState = await this._program.account.pool.fetchNullable(pool);\n return poolState !== null;\n }\n\n /**\n * Computes the liquidity delta based on the provided token amounts and sqrt price\n *\n * @param {LiquidityDeltaParams} params - The parameters for liquidity calculation\n * @returns {Promise<BN>} - The computed liquidity delta in Q64 value.\n */\n getLiquidityDelta(params: LiquidityDeltaParams): BN {\n const {\n maxAmountTokenA,\n maxAmountTokenB,\n sqrtMaxPrice,\n sqrtMinPrice,\n sqrtPrice,\n } = params;\n\n const liquidityDeltaFromAmountA = getLiquidityDeltaFromAmountA(\n maxAmountTokenA,\n sqrtPrice,\n sqrtMaxPrice\n );\n\n const liquidityDeltaFromAmountB = getLiquidityDeltaFromAmountB(\n maxAmountTokenB,\n sqrtMinPrice,\n sqrtPrice\n );\n\n return min(liquidityDeltaFromAmountA, liquidityDeltaFromAmountB);\n }\n\n /**\n * Calculates swap quote based on input amount and pool state.\n * @param params - Swap parameters including input amount, pool state, slippage, etc.\n * @returns Swap quote including expected output amount, fee, and price impact.\n */\n getQuote(params: GetQuoteParams): {\n swapInAmount: BN;\n consumedInAmount: BN;\n swapOutAmount: BN;\n minSwapOutAmount: BN;\n totalFee: BN;\n priceImpact: number;\n } {\n const {\n inAmount,\n inputTokenMint,\n slippage,\n poolState,\n currentTime,\n currentSlot,\n inputTokenInfo,\n outputTokenInfo,\n } = params;\n const {\n sqrtPrice: sqrtPriceQ64,\n liquidity: liquidityQ64,\n activationType,\n activationPoint,\n collectFeeMode,\n poolFees,\n } = poolState;\n const {\n feeSchedulerMode,\n cliffFeeNumerator,\n numberOfPeriod,\n reductionFactor,\n periodFrequency,\n } = poolFees.baseFee;\n const dynamicFee = poolFees.dynamicFee;\n\n let actualAmountIn = inAmount;\n if (inputTokenInfo) {\n actualAmountIn = calculateTransferFeeExcludedAmount(\n inAmount,\n inputTokenInfo.mint,\n inputTokenInfo.currentEpoch\n ).amount;\n }\n const aToB = poolState.tokenAMint.equals(inputTokenMint);\n const currentPoint = activationType ? currentTime : currentSlot;\n\n let dynamicFeeParams: DynamicFeeParams;\n if (dynamicFee.initialized) {\n const { volatilityAccumulator, binStep, variableFeeControl } = dynamicFee;\n dynamicFeeParams = { volatilityAccumulator, binStep, variableFeeControl };\n }\n\n const tradeFeeNumerator = getFeeNumerator(\n currentPoint,\n activationPoint,\n numberOfPeriod,\n periodFrequency,\n feeSchedulerMode,\n cliffFeeNumerator,\n reductionFactor,\n dynamicFeeParams\n );\n\n const { amountOut, totalFee } = getSwapAmount(\n actualAmountIn,\n sqrtPriceQ64,\n liquidityQ64,\n tradeFeeNumerator,\n aToB,\n collectFeeMode\n );\n\n let actualAmountOut = amountOut;\n if (outputTokenInfo) {\n actualAmountOut = calculateTransferFeeExcludedAmount(\n amountOut,\n outputTokenInfo.mint,\n outputTokenInfo.currentEpoch\n ).amount;\n }\n\n const minSwapOutAmount = getMinAmountWithSlippage(\n actualAmountOut,\n slippage\n );\n\n return {\n swapInAmount: inAmount,\n consumedInAmount: actualAmountIn,\n swapOutAmount: actualAmountOut,\n minSwapOutAmount,\n totalFee,\n priceImpact: getPriceImpact(minSwapOutAmount, actualAmountOut),\n };\n }\n\n /**\n * Calculates the deposit quote for liquidity pool.\n *\n * @param {GetDepositQuoteParams} params - The parameters for calculating the deposit quote.\n *\n * @returns {Promise<Object>} Deposit quote results\n * @returns {BN} returns.actualInputAmount - The actual amount used as input (after deducting transfer fees).\n * @returns {BN} returns.outputAmount - The calculated corresponding amount of the other token.\n * @returns {BN} returns.liquidityDelta - The amount of liquidity that will be added to the pool.\n */\n getDepositQuote(params: GetDepositQuoteParams): DepositQuote {\n const {\n inAmount,\n isTokenA,\n inputTokenInfo,\n outputTokenInfo,\n minSqrtPrice,\n maxSqrtPrice,\n sqrtPrice,\n } = params;\n\n const actualAmountIn = inputTokenInfo\n ? calculateTransferFeeExcludedAmount(\n inAmount,\n inputTokenInfo.mint,\n inputTokenInfo.currentEpoch\n ).amount\n : inAmount;\n\n const { liquidityDelta, rawAmount } = isTokenA\n ? {\n liquidityDelta: getLiquidityDeltaFromAmountA(\n actualAmountIn,\n sqrtPrice,\n maxSqrtPrice\n ),\n rawAmount: (delta: BN) =>\n getAmountBFromLiquidityDelta(\n delta,\n sqrtPrice,\n minSqrtPrice,\n Rounding.Up\n ),\n }\n : {\n liquidityDelta: getLiquidityDeltaFromAmountB(\n actualAmountIn,\n minSqrtPrice,\n sqrtPrice\n ),\n rawAmount: (delta: BN) =>\n getAmountAFromLiquidityDelta(\n delta,\n sqrtPrice,\n maxSqrtPrice,\n Rounding.Up\n ),\n };\n\n const rawOutputAmount = new BN(rawAmount(liquidityDelta));\n const outputAmount = outputTokenInfo\n ? calculateTransferFeeIncludedAmount(\n rawOutputAmount,\n outputTokenInfo.mint,\n outputTokenInfo.currentEpoch\n ).amount\n : rawOutputAmount;\n\n return {\n actualInputAmount: actualAmountIn,\n consumedInputAmount: inAmount,\n liquidityDelta,\n outputAmount,\n };\n }\n\n /**\n * Calculates the withdrawal quote for removing liquidity from a concentrated liquidity pool.\n *\n * @param {GetWithdrawQuoteParams} params - The parameters for calculating the withdraw quote\n *\n * @param {Object|null} params.tokenATokenInfo - must provide if token a is token2022\n * @param {Object|null} params.tokenBTokenInfo - must provide if token b is token2022\n *\n * @returns {Promise<Object>} Withdrawal quote results\n * @returns {BN} returns.liquidityDelta - The amount of liquidity that will be removed from the pool\n * @returns {BN} returns.outAmountA - The calculated amount of token A to be received (after deducting transfer fees)\n * @returns {BN} returns.outAmountB - The calculated amount of token B to be received (after deducting transfer fees)\n */\n getWithdrawQuote(params: GetWithdrawQuoteParams): WithdrawQuote {\n const {\n liquidityDelta,\n sqrtPrice,\n maxSqrtPrice,\n minSqrtPrice,\n tokenATokenInfo,\n tokenBTokenInfo,\n } = params;\n const amountA = getAmountAFromLiquidityDelta(\n liquidityDelta,\n sqrtPrice,\n maxSqrtPrice,\n Rounding.Down\n );\n const amountB = getAmountBFromLiquidityDelta(\n liquidityDelta,\n sqrtPrice,\n minSqrtPrice,\n Rounding.Down\n );\n\n return {\n liquidityDelta,\n outAmountA: tokenATokenInfo\n ? calculateTransferFeeExcludedAmount(\n amountA,\n tokenATokenInfo.mint,\n tokenATokenInfo.currentEpoch\n ).amount\n : amountA,\n outAmountB: tokenBTokenInfo\n ? calculateTransferFeeExcludedAmount(\n amountB,\n tokenBTokenInfo.mint,\n tokenBTokenInfo.currentEpoch\n ).amount\n : amountB,\n };\n }\n\n /**\n * Calculates liquidity and corresponding token amounts for token A single-sided pool creation\n * Only supports initialization where initial price equals min sqrt price\n * @param params Parameters for single-sided pool creation\n * @returns Calculated liquidity delta\n */\n preparePoolCreationSingleSide(params: PreparePoolCreationSingleSide): BN {\n const {\n tokenAAmount,\n initSqrtPrice,\n minSqrtPrice,\n maxSqrtPrice,\n tokenAInfo,\n } = params;\n\n if (!initSqrtPrice.eq(minSqrtPrice)) {\n throw new Error(\"Only support single side for base token.\");\n }\n\n const actualAmountIn = tokenAInfo\n ? tokenAAmount.sub(\n calculateTransferFeeIncludedAmount(\n tokenAAmount,\n tokenAInfo.mint,\n tokenAInfo.currentEpoch\n ).transferFee\n )\n : tokenAAmount;\n\n const liquidityDelta = getLiquidityDeltaFromAmountA(\n actualAmountIn,\n initSqrtPrice,\n maxSqrtPrice\n );\n\n return liquidityDelta;\n }\n\n /**\n * Prepares parameters required for pool creation, including initial sqrt price and liquidity.\n * @private\n * @param {PreparePoolCreationParams} params - Initial token amounts for pool creation.\n * @returns init sqrt price and liquidity in Q64 format.\n */\n preparePoolCreationParams(\n params: PreparePoolCreationParams\n ): PreparedPoolCreation {\n const {\n tokenAAmount,\n tokenBAmount,\n minSqrtPrice,\n maxSqrtPrice,\n tokenAInfo,\n tokenBInfo,\n } = params;\n\n if (tokenAAmount.eq(new BN(0)) && tokenBAmount.eq(new BN(0))) {\n throw new Error(\"Invalid input amount\");\n }\n\n const actualAmountAIn = tokenAInfo\n ? tokenAAmount.sub(\n calculateTransferFeeIncludedAmount(\n tokenAAmount,\n tokenAInfo.mint,\n tokenAInfo.currentEpoch\n ).transferFee\n )\n : tokenAAmount;\n\n const actualAmountBIn = tokenBInfo\n ? tokenBAmount.sub(\n calculateTransferFeeIncludedAmount(\n tokenBAmount,\n tokenBInfo.mint,\n tokenBInfo.currentEpoch\n ).transferFee\n )\n : tokenBAmount;\n\n const initSqrtPrice = calculateInitSqrtPrice(\n tokenAAmount,\n tokenBAmount,\n minSqrtPrice,\n maxSqrtPrice\n );\n\n const liquidityDeltaFromAmountA = getLiquidityDeltaFromAmountA(\n actualAmountAIn,\n initSqrtPrice,\n maxSqrtPrice\n );\n\n const liquidityDeltaFromAmountB = getLiquidityDeltaFromAmountB(\n actualAmountBIn,\n minSqrtPrice,\n initSqrtPrice\n );\n\n const liquidityDelta = min(\n liquidityDeltaFromAmountA,\n liquidityDeltaFromAmountB\n );\n\n return {\n initSqrtPrice,\n liquidityDelta,\n };\n }\n\n //// ANCHOR: MAIN ENDPOINT //////\n /**\n * Builds a transaction to create a permissionless pool.\n * @param params - Parameters for pool creation.\n * @returns Transaction builder.\n */\n async createPool(params: CreatePoolParams): TxBuilder {\n const {\n payer,\n creator,\n config,\n positionNft,\n tokenAMint,\n tokenBMint,\n initSqrtPrice,\n liquidityDelta,\n activationPoint,\n tokenAAmount,\n tokenBAmount,\n tokenAProgram,\n tokenBProgram,\n isLockLiquidity,\n } = params;\n\n const pool = derivePoolAddress(config, tokenAMint, tokenBMint);\n const {\n position,\n positionNftAccount,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n preInstructions,\n tokenBadgeAccounts,\n } = await this.prepareCreatePoolParams({\n pool,\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount,\n payer,\n positionNft,\n tokenAProgram,\n tokenBProgram,\n });\n\n const postInstruction: TransactionInstruction[] = [];\n\n if (isLockLiquidity) {\n const permanentLockIx = await this._program.methods\n .permanentLockPosition(liquidityDelta)\n .accountsPartial({\n position,\n positionNftAccount,\n pool: pool,\n owner: creator,\n })\n .instruction();\n postInstruction.push(permanentLockIx);\n }\n\n const tx = await this._program.methods\n .initializePool({\n liquidity: liquidityDelta,\n sqrtPrice: initSqrtPrice,\n activationPoint: activationPoint,\n })\n .accountsPartial({\n creator,\n positionNftAccount,\n positionNftMint: positionNft,\n payer,\n config,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n token2022Program: TOKEN_2022_PROGRAM_ID,\n tokenAProgram,\n tokenBProgram,\n systemProgram: SystemProgram.programId,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstruction)\n .remainingAccounts(tokenBadgeAccounts)\n .transaction();\n\n return tx;\n }\n\n /**\n * Builds a transaction to create a customizable pool.\n * @param params - Parameters for customizable pool creation.\n * @returns Transaction and related addresses.\n */\n async createCustomPool(params: InitializeCustomizeablePoolParams): Promise<{\n tx: Transaction;\n pool: PublicKey;\n position: PublicKey;\n }> {\n const {\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount,\n sqrtMinPrice,\n sqrtMaxPrice,\n liquidityDelta,\n initSqrtPrice,\n payer,\n creator,\n positionNft,\n poolFees,\n hasAlphaVault,\n collectFeeMode,\n activationPoint,\n activationType,\n tokenAProgram,\n tokenBProgram,\n isLockLiquidity,\n } = params;\n const pool = deriveCustomizablePoolAddress(tokenAMint, tokenBMint);\n const {\n position,\n positionNftAccount,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n preInstructions,\n tokenBadgeAccounts,\n } = await this.prepareCreatePoolParams({\n pool,\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount: tokenBMint.equals(NATIVE_MINT)\n ? max(tokenBAmount, new BN(1))\n : tokenBAmount,\n payer,\n positionNft,\n tokenAProgram,\n tokenBProgram,\n });\n\n const postInstruction: TransactionInstruction[] = [];\n\n if (isLockLiquidity) {\n const permanentLockIx = await this._program.methods\n .permanentLockPosition(liquidityDelta)\n .accountsPartial({\n position,\n positionNftAccount,\n pool: pool,\n owner: creator,\n })\n .instruction();\n postInstruction.push(permanentLockIx);\n }\n\n const transaction = await this._program.methods\n .initializeCustomizablePool({\n poolFees,\n sqrtMinPrice,\n sqrtMaxPrice,\n hasAlphaVault,\n liquidity: liquidityDelta,\n sqrtPrice: initSqrtPrice,\n activationType,\n collectFeeMode,\n activationPoint,\n })\n .accountsPartial({\n creator,\n positionNftAccount,\n positionNftMint: positionNft,\n payer: payer,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n token2022Program: TOKEN_2022_PROGRAM_ID,\n tokenAProgram,\n tokenBProgram,\n systemProgram: SystemProgram.programId,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstruction)\n .remainingAccounts(tokenBadgeAccounts)\n .transaction();\n\n return { tx: transaction, pool, position };\n }\n\n async createCustomPoolWithDynamicConfig(\n params: InitializeCustomizeablePoolWithDynamicConfigParams\n ): Promise<{\n tx: Transaction;\n pool: PublicKey;\n position: PublicKey;\n }> {\n const {\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount,\n sqrtMinPrice,\n sqrtMaxPrice,\n liquidityDelta,\n initSqrtPrice,\n payer,\n config,\n poolCreatorAuthority,\n creator,\n positionNft,\n poolFees,\n hasAlphaVault,\n collectFeeMode,\n activationPoint,\n activationType,\n tokenAProgram,\n tokenBProgram,\n isLockLiquidity,\n } = params;\n\n const pool = derivePoolAddress(config, tokenAMint, tokenBMint);\n const {\n position,\n positionNftAccount,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n preInstructions,\n tokenBadgeAccounts,\n } = await this.prepareCreatePoolParams({\n pool,\n tokenAMint,\n tokenBMint,\n tokenAAmount,\n tokenBAmount,\n payer,\n positionNft,\n tokenAProgram,\n tokenBProgram,\n });\n\n const postInstruction: TransactionInstruction[] = [];\n\n if (isLockLiquidity) {\n const permanentLockIx = await this._program.methods\n .permanentLockPosition(liquidityDelta)\n .accountsPartial({\n position,\n positionNftAccount,\n pool: pool,\n owner: creator,\n })\n .instruction();\n postInstruction.push(permanentLockIx);\n }\n\n const transaction = await this._program.methods\n .initializePoolWithDynamicConfig({\n poolFees,\n sqrtMinPrice,\n sqrtMaxPrice,\n hasAlphaVault,\n liquidity: liquidityDelta,\n sqrtPrice: initSqrtPrice,\n activationType,\n collectFeeMode,\n activationPoint,\n })\n .accountsPartial({\n creator,\n positionNftAccount,\n positionNftMint: positionNft,\n payer: payer,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n poolCreatorAuthority: poolCreatorAuthority,\n config: config,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n payerTokenA,\n payerTokenB,\n token2022Program: TOKEN_2022_PROGRAM_ID,\n tokenAProgram,\n tokenBProgram,\n systemProgram: SystemProgram.programId,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstruction)\n .remainingAccounts(tokenBadgeAccounts)\n .transaction();\n\n return { tx: transaction, pool, position };\n }\n\n /**\n * Builds a transaction to create a position.\n * @param {CreatePositionParams} params - Parameters for position creation.\n * @returns Transaction builder.\n */\n async createPosition(params: CreatePositionParams): TxBuilder {\n const { ix } = await this.buildCreatePositionInstruction(params);\n return new Transaction().add(ix);\n }\n\n /**\n * Builds a transaction to add liquidity to an existing position.\n * @param {AddLiquidityParams} params - Parameters for adding liquidity.\n * @returns Transaction builder.\n */\n async addLiquidity(params: AddLiquidityParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n liquidityDelta,\n maxAmountTokenA,\n maxAmountTokenB,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer: owner,\n tokenAOwner: owner,\n tokenBOwner: owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenAAccount,\n BigInt(maxAmountTokenA.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenBAccount,\n BigInt(maxAmountTokenB.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n const addLiquidityInstruction = await this.buildAddLiquidityInstruction({\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n });\n\n const transaction = new Transaction();\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n addLiquidityInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Creates a new position and add liquidity to position it in a single transaction.\n * Handles both native SOL and other tokens, automatically wrapping/unwrapping SOL as needed.\n *\n * @param {CreatePositionAndAddLiquidity} params - Parameters for creating position and adding liquidity\n *\n * @returns {Transaction} A transaction that creates a position and adds liquidity\n *\n **/\n async createPositionAndAddLiquidity(\n params: CreatePositionAndAddLiquidity\n ): TxBuilder {\n const {\n owner,\n pool,\n positionNft,\n liquidityDelta,\n maxAmountTokenA,\n maxAmountTokenB,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer: owner,\n tokenAOwner: owner,\n tokenBOwner: owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n if (tokenAMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenAAccount,\n BigInt(maxAmountTokenA.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n if (tokenBMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n owner,\n tokenBAccount,\n BigInt(maxAmountTokenB.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n const {\n ix: createPositionIx,\n position,\n positionNftAccount,\n } = await this.buildCreatePositionInstruction({\n owner,\n payer: owner,\n pool,\n positionNft,\n });\n\n const addLiquidityInstruction = await this.buildAddLiquidityInstruction({\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n });\n\n const transaction = new Transaction();\n transaction.add(createPositionIx);\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n addLiquidityInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Builds a transaction to remove liquidity from a position.\n * @param {RemoveLiquidityParams} params - Parameters for removing liquidity.\n * @returns Transaction builder.\n */\n async removeLiquidity(params: RemoveLiquidityParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n vestings,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer: owner,\n tokenAOwner: owner,\n tokenBOwner: owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n if (vestings.length > 0) {\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position,\n positionNftAccount,\n pool,\n vestingAccounts: vestings.map((item) => item.account),\n });\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n return await this._program.methods\n .removeLiquidity({\n liquidityDelta,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n })\n .accountsPartial({\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to remove liquidity from a position.\n * @param {RemoveLiquidityParams} params - Parameters for removing liquidity.\n * @returns Transaction builder.\n */\n async removeAllLiquidity(params: RemoveAllLiquidityParams): TxBuilder {\n const {\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n vestings,\n } = params;\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer: owner,\n tokenAOwner: owner,\n tokenBOwner: owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n if (vestings.length > 0) {\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position,\n positionNftAccount,\n pool,\n vestingAccounts: vestings.map((item) => item.account),\n });\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n const removeAllLiquidityInstruction =\n await this.buildRemoveAllLiquidityInstruction({\n poolAuthority: this.poolAuthority,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n });\n\n const transaction = new Transaction();\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n removeAllLiquidityInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Builds a transaction to perform a swap in the pool.\n * @param {SwapParams} params - Parameters for swapping tokens.\n * @returns Transaction builder.\n */\n async swap(params: SwapParams): TxBuilder {\n const {\n payer,\n pool,\n inputTokenMint,\n outputTokenMint,\n amountIn,\n minimumAmountOut,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n referralTokenAccount,\n } = params;\n\n const [inputTokenProgram, outputTokenProgram] = inputTokenMint.equals(\n tokenAMint\n )\n ? [tokenAProgram, tokenBProgram]\n : [tokenBProgram, tokenAProgram];\n\n const {\n tokenAAta: inputTokenAccount,\n tokenBAta: outputTokenAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer,\n tokenAOwner: payer,\n tokenBOwner: payer,\n tokenAMint: inputTokenMint,\n tokenBMint: outputTokenMint,\n tokenAProgram: inputTokenProgram,\n tokenBProgram: outputTokenProgram,\n });\n\n if (inputTokenMint.equals(NATIVE_MINT)) {\n const wrapSOLIx = wrapSOLInstruction(\n payer,\n inputTokenAccount,\n BigInt(amountIn.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(payer);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n return await this._program.methods\n .swap({\n amountIn,\n minimumAmountOut,\n })\n .accountsPartial({\n poolAuthority: this.poolAuthority,\n pool,\n payer,\n inputTokenAccount,\n outputTokenAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n referralTokenAccount,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to lock a position with vesting schedule.\n * @param {LockPositionParams} params - Locking parameters.\n * @returns Transaction builder.\n */\n async lockPosition(params: LockPositionParams): TxBuilder {\n const {\n owner,\n pool,\n payer,\n vestingAccount,\n position,\n positionNftAccount,\n cliffPoint,\n periodFrequency,\n cliffUnlockLiquidity,\n liquidityPerPeriod,\n numberOfPeriod,\n } = params;\n const lockPositionParams = {\n cliffPoint,\n periodFrequency,\n cliffUnlockLiquidity,\n liquidityPerPeriod,\n numberOfPeriod,\n };\n return await this._program.methods\n .lockPosition(lockPositionParams)\n .accountsPartial({\n position,\n positionNftAccount,\n vesting: vestingAccount,\n pool: pool,\n owner: owner,\n payer: payer,\n systemProgram: SystemProgram.programId,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to permanently lock a position.\n * @param {PermanentLockParams} params - Parameters for permanent locking.\n * @returns Transaction builder.\n */\n async permanentLockPosition(params: PermanentLockParams): TxBuilder {\n const { owner, position, positionNftAccount, pool, unlockedLiquidity } =\n params;\n\n return await this._program.methods\n .permanentLockPosition(unlockedLiquidity)\n .accountsPartial({\n position,\n positionNftAccount,\n pool: pool,\n owner: owner,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to refresh vesting status of a position.\n * @param {RefreshVestingParams} params - Refresh vesting parameters.\n * @returns Transaction builder.\n */\n async refreshVesting(params: RefreshVestingParams): TxBuilder {\n const instruction = await this.buildRefreshVestingInstruction(params);\n\n return new Transaction().add(instruction);\n }\n\n async closePosition(params: ClosePositionParams): TxBuilder {\n const { owner, pool, position, positionNftMint, positionNftAccount } =\n params;\n\n const instruction = await this.buildClosePositionInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftMint,\n positionNftAccount,\n });\n\n return new Transaction().add(instruction);\n }\n\n /**\n * Builds a transaction to remove all liquidity from a position and close it.\n * This combines several operations in a single transaction:\n * 1. Claims any accumulated fees\n * 2. Removes all liquidity\n * 3. Closes the position\n *\n * @param {RemoveAllLiquidityAndClosePositionParams} params - Combined parameters\n * @returns {TxBuilder} Transaction builder with all required instructions\n * @throws {Error} If the position is locked or cannot be closed\n */\n async removeAllLiquidityAndClosePosition(\n params: RemoveAllLiquidityAndClosePositionParams\n ): TxBuilder {\n const {\n owner,\n position,\n positionNftAccount,\n positionState,\n poolState,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n vestings,\n currentPoint,\n } = params;\n\n const { pool } = positionState;\n const { tokenAMint, tokenBMint } = poolState;\n\n const { canUnlock, reason } = this.canUnlockPosition(\n positionState,\n vestings,\n currentPoint\n );\n\n if (!canUnlock) {\n throw new Error(`Cannot remove liquidity: ${reason}`);\n }\n\n const tokenAProgram = getTokenProgram(poolState.tokenAFlag);\n const tokenBProgram = getTokenProgram(poolState.tokenBFlag);\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer: owner,\n tokenAOwner: owner,\n tokenBOwner: owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n const postInstructions: TransactionInstruction[] = [];\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n // 1. refresh vesting if vesting account provided\n if (vestings.length > 0) {\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position,\n positionNftAccount,\n pool,\n vestingAccounts: vestings.map((item) => item.account),\n });\n\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n const transaction = new Transaction();\n\n if (preInstructions.length > 0) {\n transaction.add(...preInstructions);\n }\n\n // 2. claim fee, remove liquidity and close position\n const liquidatePositionInstructions =\n await this.buildLiquidatePositionInstruction({\n owner,\n position,\n positionNftAccount,\n positionState,\n poolState,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold,\n tokenBAmountThreshold,\n });\n\n transaction.add(...liquidatePositionInstructions);\n\n if (postInstructions.length > 0) {\n transaction.add(...postInstructions);\n }\n\n return transaction;\n }\n\n /**\n * Builds a transaction to merge liquidity from one position into another.\n * This process:\n * 1. Claims fees from the source position\n * 2. Removes all liquidity from the source position\n * 3. Adds that liquidity to the target position\n * 4. Closes the source position\n *\n * @param {MergePositionParams} params - Parameters for merging positions\n * @returns {TxBuilder} Transaction builder with all required instructions\n * @throws {Error} If either position is locked or incompatible\n */\n async mergePosition(params: MergePositionParams): TxBuilder {\n const {\n owner,\n positionA,\n positionB,\n positionBState,\n poolState,\n positionBNftAccount,\n positionANftAccount,\n tokenAAmountAddLiquidityThreshold,\n tokenBAmountAddLiquidityThreshold,\n tokenAAmountRemoveLiquidityThreshold,\n tokenBAmountRemoveLiquidityThreshold,\n positionBVestings,\n currentPoint,\n } = params;\n\n const { canUnlock, reason } = this.canUnlockPosition(\n positionBState,\n positionBVestings,\n currentPoint\n );\n\n if (!canUnlock) {\n throw new Error(`Cannot remove liquidity: ${reason}`);\n }\n\n const pool = positionBState.pool;\n const { tokenAMint, tokenBMint, tokenAVault, tokenBVault } = poolState;\n\n const tokenAProgram = getTokenProgram(poolState.tokenAFlag);\n const tokenBProgram = getTokenProgram(poolState.tokenBFlag);\n\n const {\n tokenAAta: tokenAAccount,\n tokenBAta: tokenBAccount,\n instructions: preInstructions,\n } = await this.prepareTokenAccounts({\n payer: owner,\n tokenAOwner: owner,\n tokenBOwner: owner,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n let positionBLiquidityDelta = positionBState.unlockedLiquidity;\n // 1. refresh vesting position B if vesting account provided\n if (positionBVestings.length > 0) {\n // accumulate all liquidity delta of position b (unlocked + available vesting)\n const totalAvailableVestingLiquidity = positionBVestings.reduce(\n (total, position) => {\n const available = getAvailableVestingLiquidity(\n position.vestingState,\n currentPoint\n );\n return total.add(available);\n },\n new BN(0)\n );\n\n positionBLiquidityDelta = positionBLiquidityDelta.add(\n totalAvailableVestingLiquidity\n );\n\n const refreshVestingInstruction =\n await this.buildRefreshVestingInstruction({\n owner,\n position: positionB,\n positionNftAccount: positionBNftAccount,\n pool,\n vestingAccounts: positionBVestings.map((item) => item.account),\n });\n refreshVestingInstruction &&\n preInstructions.push(refreshVestingInstruction);\n }\n\n // recalculate liquidity delta\n const tokenAWithdrawAmount = getAmountAFromLiquidityDelta(\n positionBLiquidityDelta,\n poolState.sqrtPrice,\n poolState.sqrtMaxPrice,\n Rounding.Down\n );\n\n const tokenBWithdrawAmount = getAmountBFromLiquidityDelta(\n positionBLiquidityDelta,\n poolState.sqrtPrice,\n poolState.sqrtMinPrice,\n Rounding.Down\n );\n\n const newLiquidityDelta = this.getLiquidityDelta({\n maxAmountTokenA: tokenAWithdrawAmount,\n maxAmountTokenB: tokenBWithdrawAmount,\n sqrtMaxPrice: poolState.sqrtMaxPrice,\n sqrtMinPrice: poolState.sqrtMinPrice,\n sqrtPrice: poolState.sqrtPrice,\n });\n\n const transaction = new Transaction();\n\n if (preInstructions.length > 0) {\n transaction.add(...preInstructions);\n }\n\n // 2. claim fee, remove liquidity and close position\n const liquidatePositionInstructions =\n await this.buildLiquidatePositionInstruction({\n owner,\n position: positionB,\n positionNftAccount: positionBNftAccount,\n positionState: positionBState,\n poolState,\n tokenAAccount,\n tokenBAccount,\n tokenAAmountThreshold: tokenAAmountRemoveLiquidityThreshold,\n tokenBAmountThreshold: tokenBAmountRemoveLiquidityThreshold,\n });\n\n transaction.add(...liquidatePositionInstructions);\n\n // 3. add liquidity from position B to positon A\n const addLiquidityInstruction = await this.buildAddLiquidityInstruction({\n pool,\n position: positionA,\n positionNftAccount: positionANftAccount,\n owner,\n tokenAAccount,\n tokenBAccount,\n tokenAMint,\n tokenBMint,\n tokenAVault,\n tokenBVault,\n tokenAProgram,\n tokenBProgram,\n liquidityDelta: newLiquidityDelta,\n tokenAAmountThreshold: tokenAAmountAddLiquidityThreshold,\n tokenBAmountThreshold: tokenBAmountAddLiquidityThreshold,\n });\n\n transaction.add(addLiquidityInstruction);\n\n if (\n [tokenAMint.toBase58(), tokenBMint.toBase58()].includes(\n NATIVE_MINT.toBase58()\n )\n ) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(owner);\n closeWrappedSOLIx && transaction.add(closeWrappedSOLIx);\n }\n\n return transaction;\n }\n\n /**\n * Builds a transaction to update reward duration.\n * @param {UpdateRewardDurationParams} params - Parameters including pool and new duration.\n * @returns Transaction builder.\n */\n async updateRewardDuration(params: UpdateRewardDurationParams): TxBuilder {\n const { pool, admin, rewardIndex, newDuration } = params;\n return await this._program.methods\n .updateRewardDuration(rewardIndex, newDuration)\n .accountsPartial({\n pool,\n admin: admin,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to update reward funder address.\n * @param {UpdateRewardFunderParams} params - Parameters including pool and new funder address.\n * @returns Transaction builder.\n */\n async updateRewardFunder(params: UpdateRewardFunderParams): TxBuilder {\n const { pool, admin, rewardIndex, newFunder } = params;\n return await this._program.methods\n .updateRewardFunder(rewardIndex, newFunder)\n .accountsPartial({\n pool,\n admin: admin,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to fund rewards in a pool.\n * @param {FundRewardParams} params - Funding parameters.\n * @returns Transaction builder.\n */\n async fundReward(params: FundRewardParams): TxBuilder {\n const { rewardIndex, carryForward, pool, funder, amount } = params;\n\n const poolState = await this.fetchPoolState(pool);\n const rewardInfo = poolState.rewardInfos[rewardIndex];\n const { vault, mint } = rewardInfo;\n const tokenProgram = getTokenProgram(rewardIndex);\n\n const preInstructions: TransactionInstruction[] = [];\n\n const { ataPubkey: funderTokenAccount, ix: createFunderTokenAccountIx } =\n await getOrCreateATAInstruction(\n this._program.provider.connection,\n mint,\n funder,\n funder,\n true,\n tokenProgram\n );\n\n createFunderTokenAccountIx &&\n preInstructions.push(createFunderTokenAccountIx);\n\n // TODO: check case reward mint is wSOL && carryForward is true => total amount > amount\n if (mint.equals(NATIVE_MINT) && !amount.isZero()) {\n const wrapSOLIx = wrapSOLInstruction(\n funder,\n funderTokenAccount,\n BigInt(amount.toString())\n );\n\n preInstructions.push(...wrapSOLIx);\n }\n\n return await this._program.methods\n .fundReward(rewardIndex, amount, carryForward)\n .accountsPartial({\n pool,\n rewardVault: vault,\n rewardMint: mint,\n funderTokenAccount,\n funder: funder,\n tokenProgram,\n })\n .transaction();\n }\n\n /**\n * Builds a transaction to withdraw ineligible rewards from a pool.\n * @param {WithdrawIneligibleRewardParams} params - Parameters for withdrawal.\n * @returns Transaction builder.\n */\n async withdrawIneligibleReward(\n params: WithdrawIneligibleRewardParams\n ): TxBuilder {\n const { rewardIndex, pool, funder } = params;\n const poolState = await this.fetchPoolState(pool);\n\n const rewardInfo = poolState.rewardInfos[rewardIndex];\n const { mint, vault, rewardTokenFlag } = rewardInfo;\n const tokenProgram = getTokenProgram(rewardTokenFlag);\n\n const preInstructions: TransactionInstruction[] = [];\n const postInstructions: TransactionInstruction[] = [];\n const { ataPubkey: funderTokenAccount, ix: createFunderTokenAccountIx } =\n await getOrCreateATAInstruction(\n this._program.provider.connection,\n mint,\n funder,\n funder,\n true,\n tokenProgram\n );\n createFunderTokenAccountIx &&\n preInstructions.push(createFunderTokenAccountIx);\n\n if (mint.equals(NATIVE_MINT)) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(funder);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n\n return await this._program.methods\n .withdrawIneligibleReward(rewardIndex)\n .accountsPartial({\n pool,\n rewardVault: vault,\n rewardMint: mint,\n poolAuthority: this.poolAuthority,\n funderTokenAccount,\n funder: funder,\n tokenProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to claim partner fee rewards.\n * @param {ClaimPartnerFeeParams} params - Claim parameters including amounts and partner address.\n * @returns Transaction builder.\n */\n async claimPartnerFee(params: ClaimPartnerFeeParams): TxBuilder {\n const {\n feePayer,\n receiver,\n tempWSolAccount,\n partner,\n pool,\n maxAmountA,\n maxAmountB,\n } = params;\n const poolState = await this.fetchPoolState(pool);\n const {\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAFlag,\n tokenBFlag,\n } = poolState;\n\n const tokenAProgram = getTokenProgram(tokenAFlag);\n const tokenBProgram = getTokenProgram(tokenBFlag);\n\n const payer = feePayer ?? partner;\n const { tokenAAccount, tokenBAccount, preInstructions, postInstructions } =\n await this.setupFeeClaimAccounts({\n payer,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n receiver,\n tempWSolAccount,\n });\n\n return await this._program.methods\n .claimPartnerFee(maxAmountA, maxAmountB)\n .accountsPartial({\n poolAuthority: this.poolAuthority,\n pool,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n partner,\n tokenAProgram,\n tokenBProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n\n /**\n * Builds a transaction to claim position fee rewards.\n * @param {ClaimPositionFeeParams} params - Parameters for claiming position fee.\n * @returns Transaction builder.\n */\n async claimPositionFee(params: ClaimPositionFeeParams): TxBuilder {\n const {\n receiver,\n tempWSolAccount,\n feePayer,\n owner,\n pool,\n position,\n positionNftAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n } = params;\n\n const payer = feePayer ?? owner;\n const { tokenAAccount, tokenBAccount, preInstructions, postInstructions } =\n await this.setupFeeClaimAccounts({\n payer,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n receiver,\n tempWSolAccount,\n });\n const claimPositionFeeInstruction =\n await this.buildClaimPositionFeeInstruction({\n owner,\n poolAuthority: this.poolAuthority,\n pool,\n position,\n positionNftAccount,\n tokenAAccount,\n tokenBAccount,\n tokenAVault,\n tokenBVault,\n tokenAMint,\n tokenBMint,\n tokenAProgram,\n tokenBProgram,\n });\n\n const transaction = new Transaction();\n transaction.add(\n ...(preInstructions.length > 0 ? preInstructions : []),\n claimPositionFeeInstruction,\n ...(postInstructions.length > 0 ? postInstructions : [])\n );\n\n return transaction;\n }\n\n /**\n * Builds a transaction to claim reward from a position.\n * @param {ClaimRewardParams} params - Parameters for claiming reward.\n * @returns Transaction builder.\n */\n async claimReward(params: ClaimRewardParams): TxBuilder {\n const {\n feePayer,\n user,\n position,\n positionNftAccount,\n rewardIndex,\n poolState,\n positionState,\n } = params;\n\n const rewardInfo = poolState.rewardInfos[rewardIndex];\n const tokenProgram = getTokenProgram(rewardInfo.rewardTokenFlag);\n\n const preInstructions: TransactionInstruction[] = [];\n const postInstructions: TransactionInstruction[] = [];\n const { ataPubkey: userTokenAccount, ix: createUserTokenAccountIx } =\n await getOrCreateATAInstruction(\n this._program.provider.connection,\n rewardInfo.mint,\n user,\n feePayer ?? user,\n true,\n tokenProgram\n );\n createUserTokenAccountIx && preInstructions.push(createUserTokenAccountIx);\n\n if (rewardInfo.mint.equals(NATIVE_MINT)) {\n const closeWrappedSOLIx = await unwrapSOLInstruction(user);\n closeWrappedSOLIx && postInstructions.push(closeWrappedSOLIx);\n }\n return await this._program.methods\n .claimReward(rewardIndex)\n .accountsPartial({\n pool: positionState.pool,\n positionNftAccount,\n rewardVault: rewardInfo.vault,\n rewardMint: rewardInfo.mint,\n poolAuthority: this.poolAuthority,\n position,\n userTokenAccount,\n owner: user,\n tokenProgram,\n })\n .preInstructions(preInstructions)\n .postInstructions(postInstructions)\n .transaction();\n }\n}\n","{\n \"address\": \"cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG\",\n \"metadata\": {\n \"name\": \"cp_amm\",\n \"version\": \"0.1.1\",\n \"spec\": \"0.1.0\",\n \"description\": \"Created with Anchor\"\n },\n \"instructions\": [\n {\n \"name\": \"add_liquidity\",\n \"discriminator\": [\n 181,\n 157,\n 89,\n 67,\n 143,\n 182,\n 52,\n 72\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddLiquidityParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"claim_partner_fee\",\n \"discriminator\": [\n 97,\n 206,\n 39,\n 105,\n 94,\n 94,\n 126,\n 148\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The treasury token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The treasury token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"partner\",\n \"signer\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"max_amount_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_amount_b\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"claim_position_fee\",\n \"discriminator\": [\n 180,\n 38,\n 154,\n 17,\n 133,\n 33,\n 162,\n 211\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_protocol_fee\",\n \"discriminator\": [\n 165,\n 228,\n 133,\n 48,\n 99,\n 249,\n 255,\n 33\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The treasury token a account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 48,\n 9,\n 89,\n 123,\n 106,\n 114,\n 131,\n 251,\n 50,\n 173,\n 254,\n 250,\n 10,\n 80,\n 160,\n 84,\n 143,\n 100,\n 81,\n 249,\n 134,\n 112,\n 30,\n 213,\n 50,\n 166,\n 239,\n 78,\n 53,\n 175,\n 188,\n 85\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The treasury token b account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 48,\n 9,\n 89,\n 123,\n 106,\n 114,\n 131,\n 251,\n 50,\n 173,\n 254,\n 250,\n 10,\n 80,\n 160,\n 84,\n 143,\n 100,\n 81,\n 249,\n 134,\n 112,\n 30,\n 213,\n 50,\n 166,\n 239,\n 78,\n 53,\n 175,\n 188,\n 85\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"claim_fee_operator\",\n \"docs\": [\n \"Claim fee operator\"\n ]\n },\n {\n \"name\": \"operator\",\n \"docs\": [\n \"Operator\"\n ],\n \"signer\": true,\n \"relations\": [\n \"claim_fee_operator\"\n ]\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_reward\",\n \"discriminator\": [\n 149,\n 95,\n 181,\n 242,\n 94,\n 90,\n 158,\n 162\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"docs\": [\n \"The vault token account for reward token\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"user_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"close_claim_fee_operator\",\n \"discriminator\": [\n 38,\n 134,\n 82,\n 216,\n 95,\n 124,\n 17,\n 99\n ],\n \"accounts\": [\n {\n \"name\": \"claim_fee_operator\",\n \"writable\": true\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_config\",\n \"discriminator\": [\n 145,\n 9,\n 72,\n 157,\n 95,\n 125,\n 61,\n 85\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_position\",\n \"discriminator\": [\n 123,\n 134,\n 81,\n 0,\n 49,\n 68,\n 98,\n 98\n ],\n \"accounts\": [\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"rent_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_claim_fee_operator\",\n \"discriminator\": [\n 169,\n 62,\n 207,\n 107,\n 58,\n 187,\n 162,\n 109\n ],\n \"accounts\": [\n {\n \"name\": \"claim_fee_operator\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 102,\n 95,\n 111,\n 112,\n 101,\n 114,\n 97,\n 116,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"operator\"\n }\n ]\n }\n },\n {\n \"name\": \"operator\"\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_config\",\n \"docs\": [\n \"ADMIN FUNCTIONS /////\"\n ],\n \"discriminator\": [\n 201,\n 207,\n 243,\n 114,\n 75,\n 111,\n 47,\n 189\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"index\"\n }\n ]\n }\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"index\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"config_parameters\",\n \"type\": {\n \"defined\": {\n \"name\": \"StaticConfigParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"create_dynamic_config\",\n \"discriminator\": [\n 81,\n 251,\n 122,\n 78,\n 66,\n 57,\n 208,\n 82\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n },\n {\n \"kind\": \"arg\",\n \"path\": \"index\"\n }\n ]\n }\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"index\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"config_parameters\",\n \"type\": {\n \"defined\": {\n \"name\": \"DynamicConfigParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"create_position\",\n \"discriminator\": [\n 48,\n 215,\n 197,\n 153,\n 96,\n 203,\n 180,\n 133\n ],\n \"accounts\": [\n {\n \"name\": \"owner\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the position. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_token_badge\",\n \"discriminator\": [\n 88,\n 206,\n 0,\n 91,\n 60,\n 175,\n 151,\n 118\n ],\n \"accounts\": [\n {\n \"name\": \"token_badge\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 98,\n 97,\n 100,\n 103,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_mint\"\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"fund_reward\",\n \"discriminator\": [\n 188,\n 50,\n 249,\n 165,\n 93,\n 151,\n 38,\n 63\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"funder_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"funder\",\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"carry_forward\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"initialize_customizable_pool\",\n \"discriminator\": [\n 20,\n 161,\n 241,\n 24,\n 189,\n 221,\n 180,\n 2\n ],\n \"accounts\": [\n {\n \"name\": \"creator\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the pool. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Initialize an account to store the pool state\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"Token a mint\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"Token b mint\"\n ]\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"Token a vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"Token b vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"payer_token_a\",\n \"docs\": [\n \"payer token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer_token_b\",\n \"docs\": [\n \"creator token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_2022_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializeCustomizablePoolParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"initialize_pool\",\n \"docs\": [\n \"USER FUNCTIONS ////\"\n ],\n \"discriminator\": [\n 95,\n 180,\n 10,\n 172,\n 84,\n 174,\n 232,\n 40\n ],\n \"accounts\": [\n {\n \"name\": \"creator\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the pool. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Which config the pool belongs to.\"\n ]\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Initialize an account to store the pool state\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"Token a mint\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"Token b mint\"\n ]\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"Token a vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"Token b vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"payer_token_a\",\n \"docs\": [\n \"payer token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer_token_b\",\n \"docs\": [\n \"creator token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_2022_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializePoolParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"initialize_pool_with_dynamic_config\",\n \"discriminator\": [\n 149,\n 82,\n 72,\n 197,\n 253,\n 252,\n 68,\n 15\n ],\n \"accounts\": [\n {\n \"name\": \"creator\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"docs\": [\n \"position_nft_mint\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"position nft account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110,\n 95,\n 110,\n 102,\n 116,\n 95,\n 97,\n 99,\n 99,\n 111,\n 117,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Address paying to create the pool. Can be anyone\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"pool_creator_authority\",\n \"signer\": true,\n \"relations\": [\n \"config\"\n ]\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Which config the pool belongs to.\"\n ]\n },\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Initialize an account to store the pool state\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"position\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 115,\n 105,\n 116,\n 105,\n 111,\n 110\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"position_nft_mint\"\n }\n ]\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"Token a mint\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"Token b mint\"\n ]\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"Token a vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_a_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"Token b vault for the pool\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 116,\n 111,\n 107,\n 101,\n 110,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_b_mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n }\n ]\n }\n },\n {\n \"name\": \"payer_token_a\",\n \"docs\": [\n \"payer token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer_token_b\",\n \"docs\": [\n \"creator token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Program to create mint account and mint tokens\"\n ]\n },\n {\n \"name\": \"token_2022_program\",\n \"docs\": [\n \"Program to create NFT mint/token account and transfer for token22 account\"\n ],\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitializeCustomizablePoolParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"initialize_reward\",\n \"discriminator\": [\n 95,\n 135,\n 192,\n 196,\n 242,\n 129,\n 230,\n 68\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 95,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"pool\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"reward_index\"\n }\n ]\n }\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"funder\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"lock_position\",\n \"discriminator\": [\n 227,\n 62,\n 2,\n 252,\n 247,\n 10,\n 171,\n 185\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"vesting\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"VestingParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"permanent_lock_position\",\n \"discriminator\": [\n 165,\n 176,\n 125,\n 6,\n 231,\n 171,\n 186,\n 213\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"permanent_lock_liquidity\",\n \"type\": \"u128\"\n }\n ]\n },\n {\n \"name\": \"refresh_vesting\",\n \"discriminator\": [\n 9,\n 94,\n 216,\n 14,\n 116,\n 204,\n 247,\n 0\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"remove_all_liquidity\",\n \"discriminator\": [\n 10,\n 51,\n 61,\n 35,\n 112,\n 105,\n 24,\n 85\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"token_a_amount_threshold\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount_threshold\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"remove_liquidity\",\n \"discriminator\": [\n 80,\n 85,\n 209,\n 72,\n 24,\n 206,\n 177,\n 108\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true,\n \"relations\": [\n \"position\"\n ]\n },\n {\n \"name\": \"position\",\n \"writable\": true\n },\n {\n \"name\": \"token_a_account\",\n \"docs\": [\n \"The user token a account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_b_account\",\n \"docs\": [\n \"The user token b account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ],\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"position_nft_account\",\n \"docs\": [\n \"The token account for nft\"\n ]\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"owner of position\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"RemoveLiquidityParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"set_pool_status\",\n \"discriminator\": [\n 112,\n 87,\n 135,\n 223,\n 83,\n 204,\n 132,\n 53\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"status\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"swap\",\n \"discriminator\": [\n 248,\n 198,\n 158,\n 145,\n 225,\n 117,\n 135,\n 200\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"docs\": [\n \"Pool account\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"input_token_account\",\n \"docs\": [\n \"The user token account for input token\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"output_token_account\",\n \"docs\": [\n \"The user token account for output token\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"The vault token account for input token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"The vault token account for output token\"\n ],\n \"writable\": true,\n \"relations\": [\n \"pool\"\n ]\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"The mint of token a\"\n ]\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"The mint of token b\"\n ]\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"The user performing the swap\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"token_a_program\",\n \"docs\": [\n \"Token a program\"\n ]\n },\n {\n \"name\": \"token_b_program\",\n \"docs\": [\n \"Token b program\"\n ]\n },\n {\n \"name\": \"referral_token_account\",\n \"docs\": [\n \"referral token account\"\n ],\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"SwapParameters\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"update_reward_duration\",\n \"discriminator\": [\n 138,\n 174,\n 196,\n 169,\n 213,\n 235,\n 254,\n 107\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_duration\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_reward_funder\",\n \"discriminator\": [\n 211,\n 28,\n 48,\n 32,\n 215,\n 160,\n 35,\n 23\n ],\n \"accounts\": [\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"admin\",\n \"signer\": true\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"new_funder\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"withdraw_ineligible_reward\",\n \"discriminator\": [\n 148,\n 206,\n 42,\n 195,\n 247,\n 49,\n 103,\n 8\n ],\n \"accounts\": [\n {\n \"name\": \"pool_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 111,\n 111,\n 108,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"pool\",\n \"writable\": true\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"funder_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"funder\",\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"ClaimFeeOperator\",\n \"discriminator\": [\n 166,\n 48,\n 134,\n 86,\n 34,\n 200,\n 188,\n 150\n ]\n },\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"Pool\",\n \"discriminator\": [\n 241,\n 154,\n 109,\n 4,\n 17,\n 177,\n 109,\n 188\n ]\n },\n {\n \"name\": \"Position\",\n \"discriminator\": [\n 170,\n 188,\n 143,\n 228,\n 122,\n 64,\n 247,\n 208\n ]\n },\n {\n \"name\": \"TokenBadge\",\n \"discriminator\": [\n 116,\n 219,\n 204,\n 229,\n 249,\n 116,\n 255,\n 150\n ]\n },\n {\n \"name\": \"Vesting\",\n \"discriminator\": [\n 100,\n 149,\n 66,\n 138,\n 95,\n 200,\n 128,\n 241\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"EvtAddLiquidity\",\n \"discriminator\": [\n 175,\n 242,\n 8,\n 157,\n 30,\n 247,\n 185,\n 169\n ]\n },\n {\n \"name\": \"EvtClaimPartnerFee\",\n \"discriminator\": [\n 118,\n 99,\n 77,\n 10,\n 226,\n 1,\n 1,\n 87\n ]\n },\n {\n \"name\": \"EvtClaimPositionFee\",\n \"discriminator\": [\n 198,\n 182,\n 183,\n 52,\n 97,\n 12,\n 49,\n 56\n ]\n },\n {\n \"name\": \"EvtClaimProtocolFee\",\n \"discriminator\": [\n 186,\n 244,\n 75,\n 251,\n 188,\n 13,\n 25,\n 33\n ]\n },\n {\n \"name\": \"EvtClaimReward\",\n \"discriminator\": [\n 218,\n 86,\n 147,\n 200,\n 235,\n 188,\n 215,\n 231\n ]\n },\n {\n \"name\": \"EvtCloseClaimFeeOperator\",\n \"discriminator\": [\n 111,\n 39,\n 37,\n 55,\n 110,\n 216,\n 194,\n 23\n ]\n },\n {\n \"name\": \"EvtCloseConfig\",\n \"discriminator\": [\n 36,\n 30,\n 239,\n 45,\n 58,\n 132,\n 14,\n 5\n ]\n },\n {\n \"name\": \"EvtClosePosition\",\n \"discriminator\": [\n 20,\n 145,\n 144,\n 68,\n 143,\n 142,\n 214,\n 178\n ]\n },\n {\n \"name\": \"EvtCreateClaimFeeOperator\",\n \"discriminator\": [\n 21,\n 6,\n 153,\n 120,\n 68,\n 116,\n 28,\n 177\n ]\n },\n {\n \"name\": \"EvtCreateConfig\",\n \"discriminator\": [\n 131,\n 207,\n 180,\n 174,\n 180,\n 73,\n 165,\n 54\n ]\n },\n {\n \"name\": \"EvtCreateDynamicConfig\",\n \"discriminator\": [\n 231,\n 197,\n 13,\n 164,\n 248,\n 213,\n 133,\n 152\n ]\n },\n {\n \"name\": \"EvtCreatePosition\",\n \"discriminator\": [\n 156,\n 15,\n 119,\n 198,\n 29,\n 181,\n 221,\n 55\n ]\n },\n {\n \"name\": \"EvtCreateTokenBadge\",\n \"discriminator\": [\n 141,\n 120,\n 134,\n 116,\n 34,\n 28,\n 114,\n 160\n ]\n },\n {\n \"name\": \"EvtFundReward\",\n \"discriminator\": [\n 104,\n 233,\n 237,\n 122,\n 199,\n 191,\n 121,\n 85\n ]\n },\n {\n \"name\": \"EvtInitializePool\",\n \"discriminator\": [\n 228,\n 50,\n 246,\n 85,\n 203,\n 66,\n 134,\n 37\n ]\n },\n {\n \"name\": \"EvtInitializeReward\",\n \"discriminator\": [\n 129,\n 91,\n 188,\n 3,\n 246,\n 52,\n 185,\n 249\n ]\n },\n {\n \"name\": \"EvtLockPosition\",\n \"discriminator\": [\n 168,\n 63,\n 108,\n 83,\n 219,\n 82,\n 2,\n 200\n ]\n },\n {\n \"name\": \"EvtPermanentLockPosition\",\n \"discriminator\": [\n 145,\n 143,\n 162,\n 218,\n 218,\n 80,\n 67,\n 11\n ]\n },\n {\n \"name\": \"EvtRemoveLiquidity\",\n \"discriminator\": [\n 87,\n 46,\n 88,\n 98,\n 175,\n 96,\n 34,\n 91\n ]\n },\n {\n \"name\": \"EvtSetPoolStatus\",\n \"discriminator\": [\n 100,\n 213,\n 74,\n 3,\n 95,\n 91,\n 228,\n 146\n ]\n },\n {\n \"name\": \"EvtSwap\",\n \"discriminator\": [\n 27,\n 60,\n 21,\n 213,\n 138,\n 170,\n 187,\n 147\n ]\n },\n {\n \"name\": \"EvtUpdateRewardDuration\",\n \"discriminator\": [\n 149,\n 135,\n 65,\n 231,\n 129,\n 153,\n 65,\n 57\n ]\n },\n {\n \"name\": \"EvtUpdateRewardFunder\",\n \"discriminator\": [\n 76,\n 154,\n 208,\n 13,\n 40,\n 115,\n 246,\n 146\n ]\n },\n {\n \"name\": \"EvtWithdrawIneligibleReward\",\n \"discriminator\": [\n 248,\n 215,\n 184,\n 78,\n 31,\n 180,\n 179,\n 168\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"MathOverflow\",\n \"msg\": \"Math operation overflow\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidFee\",\n \"msg\": \"Invalid fee setup\"\n },\n {\n \"code\": 6002,\n \"name\": \"ExceededSlippage\",\n \"msg\": \"Exceeded slippage tolerance\"\n },\n {\n \"code\": 6003,\n \"name\": \"PoolDisabled\",\n \"msg\": \"Pool disabled\"\n },\n {\n \"code\": 6004,\n \"name\": \"ExceedMaxFeeBps\",\n \"msg\": \"Exceeded max fee bps\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidAdmin\",\n \"msg\": \"Invalid admin\"\n },\n {\n \"code\": 6006,\n \"name\": \"AmountIsZero\",\n \"msg\": \"Amount is zero\"\n },\n {\n \"code\": 6007,\n \"name\": \"TypeCastFailed\",\n \"msg\": \"Type cast error\"\n },\n {\n \"code\": 6008,\n \"name\": \"UnableToModifyActivationPoint\",\n \"msg\": \"Unable to modify activation point\"\n },\n {\n \"code\": 6009,\n \"name\": \"InvalidAuthorityToCreateThePool\",\n \"msg\": \"Invalid authority to create the pool\"\n },\n {\n \"code\": 6010,\n \"name\": \"InvalidActivationType\",\n \"msg\": \"Invalid activation type\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidActivationPoint\",\n \"msg\": \"Invalid activation point\"\n },\n {\n \"code\": 6012,\n \"name\": \"InvalidQuoteMint\",\n \"msg\": \"Quote token must be SOL,USDC\"\n },\n {\n \"code\": 6013,\n \"name\": \"InvalidFeeCurve\",\n \"msg\": \"Invalid fee curve\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidPriceRange\",\n \"msg\": \"Invalid Price Range\"\n },\n {\n \"code\": 6015,\n \"name\": \"PriceRangeViolation\",\n \"msg\": \"Trade is over price range\"\n },\n {\n \"code\": 6016,\n \"name\": \"InvalidParameters\",\n \"msg\": \"Invalid parameters\"\n },\n {\n \"code\": 6017,\n \"name\": \"InvalidCollectFeeMode\",\n \"msg\": \"Invalid collect fee mode\"\n },\n {\n \"code\": 6018,\n \"name\": \"InvalidInput\",\n \"msg\": \"Invalid input\"\n },\n {\n \"code\": 6019,\n \"name\": \"CannotCreateTokenBadgeOnSupportedMint\",\n \"msg\": \"Cannot create token badge on supported mint\"\n },\n {\n \"code\": 6020,\n \"name\": \"InvalidTokenBadge\",\n \"msg\": \"Invalid token badge\"\n },\n {\n \"code\": 6021,\n \"name\": \"InvalidMinimumLiquidity\",\n \"msg\": \"Invalid minimum liquidity\"\n },\n {\n \"code\": 6022,\n \"name\": \"InvalidVestingInfo\",\n \"msg\": \"Invalid vesting information\"\n },\n {\n \"code\": 6023,\n \"name\": \"InsufficientLiquidity\",\n \"msg\": \"Insufficient liquidity\"\n },\n {\n \"code\": 6024,\n \"name\": \"InvalidVestingAccount\",\n \"msg\": \"Invalid vesting account\"\n },\n {\n \"code\": 6025,\n \"name\": \"InvalidPoolStatus\",\n \"msg\": \"Invalid pool status\"\n },\n {\n \"code\": 6026,\n \"name\": \"UnsupportNativeMintToken2022\",\n \"msg\": \"Unsupported native mint token2022\"\n },\n {\n \"code\": 6027,\n \"name\": \"InvalidRewardIndex\",\n \"msg\": \"Invalid reward index\"\n },\n {\n \"code\": 6028,\n \"name\": \"InvalidRewardDuration\",\n \"msg\": \"Invalid reward duration\"\n },\n {\n \"code\": 6029,\n \"name\": \"RewardInitialized\",\n \"msg\": \"Reward already initialized\"\n },\n {\n \"code\": 6030,\n \"name\": \"RewardUninitialized\",\n \"msg\": \"Reward not initialized\"\n },\n {\n \"code\": 6031,\n \"name\": \"InvalidRewardVault\",\n \"msg\": \"Invalid reward vault\"\n },\n {\n \"code\": 6032,\n \"name\": \"MustWithdrawnIneligibleReward\",\n \"msg\": \"Must withdraw ineligible reward\"\n },\n {\n \"code\": 6033,\n \"name\": \"IdenticalRewardDuration\",\n \"msg\": \"Reward duration is the same\"\n },\n {\n \"code\": 6034,\n \"name\": \"RewardCampaignInProgress\",\n \"msg\": \"Reward campaign in progress\"\n },\n {\n \"code\": 6035,\n \"name\": \"IdenticalFunder\",\n \"msg\": \"Identical funder\"\n },\n {\n \"code\": 6036,\n \"name\": \"InvalidFunder\",\n \"msg\": \"Invalid funder\"\n },\n {\n \"code\": 6037,\n \"name\": \"RewardNotEnded\",\n \"msg\": \"Reward not ended\"\n },\n {\n \"code\": 6038,\n \"name\": \"FeeInverseIsIncorrect\",\n \"msg\": \"Fee inverse is incorrect\"\n },\n {\n \"code\": 6039,\n \"name\": \"PositionIsNotEmpty\",\n \"msg\": \"Position is not empty\"\n },\n {\n \"code\": 6040,\n \"name\": \"InvalidPoolCreatorAuthority\",\n \"msg\": \"Invalid pool creator authority\"\n },\n {\n \"code\": 6041,\n \"name\": \"InvalidConfigType\",\n \"msg\": \"Invalid config type\"\n }\n ],\n \"types\": [\n {\n \"name\": \"AddLiquidityParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"liquidity_delta\",\n \"docs\": [\n \"delta liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_a_amount_threshold\",\n \"docs\": [\n \"maximum token a amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount_threshold\",\n \"docs\": [\n \"maximum token b amount\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"BaseFeeConfig\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_fee_numerator\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_scheduler_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"BaseFeeParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_fee_numerator\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_scheduler_mode\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"BaseFeeStruct\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_fee_numerator\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_scheduler_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding_0\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding_1\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"ClaimFeeOperator\",\n \"docs\": [\n \"Parameter that set by the protocol\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"operator\",\n \"docs\": [\n \"operator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"_padding\",\n \"docs\": [\n \"Reserve\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Config\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"vault_config_key\",\n \"docs\": [\n \"Vault config key\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"docs\": [\n \"Only pool_creator_authority can use the current config to initialize new pool. When it's Pubkey::default, it's a public config.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_fees\",\n \"docs\": [\n \"Pool fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeesConfig\"\n }\n }\n },\n {\n \"name\": \"activation_type\",\n \"docs\": [\n \"Activation type\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"docs\": [\n \"Collect fee mode\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"config_type\",\n \"docs\": [\n \"Config type mode, 0 for static, 1 for dynamic\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"_padding_0\",\n \"docs\": [\n \"padding 0\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"index\",\n \"docs\": [\n \"config index\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"sqrt_min_price\",\n \"docs\": [\n \"sqrt min price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"docs\": [\n \"sqrt max price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"_padding_1\",\n \"docs\": [\n \"Fee curve point\",\n \"Padding for further use\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"DynamicConfigParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_creator_authority\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"DynamicFeeConfig\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"initialized\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"max_volatility_accumulator\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"variable_fee_control\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bin_step\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"filter_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"decay_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"padding_1\",\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"bin_step_u128\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"DynamicFeeParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bin_step\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"bin_step_u128\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"filter_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"decay_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_volatility_accumulator\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"variable_fee_control\",\n \"type\": \"u32\"\n }\n ]\n }\n },\n {\n \"name\": \"DynamicFeeStruct\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"initialized\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"max_volatility_accumulator\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"variable_fee_control\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"bin_step\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"filter_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"decay_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"reduction_factor\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"last_update_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bin_step_u128\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price_reference\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"volatility_accumulator\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"volatility_reference\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtAddLiquidity\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"AddLiquidityParameters\"\n }\n }\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_b\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimPartnerFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimPositionFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_a_claimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_b_claimed\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimProtocolFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClaimReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint_reward\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"total_reward\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCloseClaimFeeOperator\",\n \"docs\": [\n \"Close claim fee operator\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"claim_fee_operator\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"operator\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCloseConfig\",\n \"docs\": [\n \"Close config\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"config\",\n \"docs\": [\n \"Config pubkey\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"admin\",\n \"docs\": [\n \"admin pk\"\n ],\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtClosePosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateClaimFeeOperator\",\n \"docs\": [\n \"Create claim fee operator\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"operator\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateConfig\",\n \"docs\": [\n \"Create static config\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"vault_config_key\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"activation_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"sqrt_min_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"config\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateDynamicConfig\",\n \"docs\": [\n \"Create dynamic config\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"config\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"index\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreatePosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position_nft_mint\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtCreateTokenBadge\",\n \"docs\": [\n \"Create token badge\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"token_mint\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtFundReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funder\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint_reward\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"transfer_fee_excluded_amount_in\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtInitializePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_b_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"alpha_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_fees\",\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"sqrt_min_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_point\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_a_flag\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_b_flag\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_a\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_amount_b\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pool_type\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtInitializeReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funder\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_duration\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtLockPosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vesting\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"cliff_point\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"cliff_unlock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"liquidity_per_period\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtPermanentLockPosition\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"lock_liquidity_amount\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_permanent_locked_liquidity\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtRemoveLiquidity\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"RemoveLiquidityParameters\"\n }\n }\n },\n {\n \"name\": \"token_a_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtSetPoolStatus\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"status\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtSwap\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"trade_direction\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"has_referral\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": {\n \"name\": \"SwapParameters\"\n }\n }\n },\n {\n \"name\": \"swap_result\",\n \"type\": {\n \"defined\": {\n \"name\": \"SwapResult\"\n }\n }\n },\n {\n \"name\": \"actual_amount_in\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"current_timestamp\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtUpdateRewardDuration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"old_reward_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"new_reward_duration\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtUpdateRewardFunder\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"old_funder\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"new_funder\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"EvtWithdrawIneligibleReward\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitializeCustomizablePoolParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"docs\": [\n \"pool fees\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"sqrt_min_price\",\n \"docs\": [\n \"sqrt min price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"docs\": [\n \"sqrt max price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"has_alpha_vault\",\n \"docs\": [\n \"has alpha vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"initialize liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"docs\": [\n \"The init price of the pool as a sqrt(token_b/token_a) Q64.64 value\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_type\",\n \"docs\": [\n \"activation type\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"docs\": [\n \"collect fee mode\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"activation_point\",\n \"docs\": [\n \"activation point\"\n ],\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"InitializePoolParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"initialize liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"docs\": [\n \"The init price of the pool as a sqrt(token_b/token_a) Q64.64 value\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_point\",\n \"docs\": [\n \"activation point\"\n ],\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n }\n },\n {\n \"name\": \"Pool\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"docs\": [\n \"Pool fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeesStruct\"\n }\n }\n },\n {\n \"name\": \"token_a_mint\",\n \"docs\": [\n \"token a mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_b_mint\",\n \"docs\": [\n \"token b mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_a_vault\",\n \"docs\": [\n \"token a vault\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token_b_vault\",\n \"docs\": [\n \"token b vault\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"whitelisted_vault\",\n \"docs\": [\n \"Whitelisted vault to be able to buy pool before activation_point\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"partner\",\n \"docs\": [\n \"partner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"liquidity share\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"_padding\",\n \"docs\": [\n \"padding, previous reserve amount, be careful to use that field\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"protocol_a_fee\",\n \"docs\": [\n \"protocol a fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_b_fee\",\n \"docs\": [\n \"protocol b fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"partner_a_fee\",\n \"docs\": [\n \"partner a fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"partner_b_fee\",\n \"docs\": [\n \"partner b fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"sqrt_min_price\",\n \"docs\": [\n \"min price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"docs\": [\n \"max price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_price\",\n \"docs\": [\n \"current price\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"activation_point\",\n \"docs\": [\n \"Activation point, can be slot or timestamp\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"activation_type\",\n \"docs\": [\n \"Activation type, 0 means by slot, 1 means by timestamp\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"pool_status\",\n \"docs\": [\n \"pool status, 0: enable, 1 disable\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_a_flag\",\n \"docs\": [\n \"token a flag\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"token_b_flag\",\n \"docs\": [\n \"token b flag\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"docs\": [\n \"0 is collect fee in both token, 1 only collect fee in token a, 2 only collect fee in token b\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"pool_type\",\n \"docs\": [\n \"pool type\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"_padding_0\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 2\n ]\n }\n },\n {\n \"name\": \"fee_a_per_liquidity\",\n \"docs\": [\n \"cumulative\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"fee_b_per_liquidity\",\n \"docs\": [\n \"cumulative\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"permanent_lock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"metrics\",\n \"docs\": [\n \"metrics\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PoolMetrics\"\n }\n }\n },\n {\n \"name\": \"_padding_1\",\n \"docs\": [\n \"Padding for further use\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n },\n {\n \"name\": \"reward_infos\",\n \"docs\": [\n \"Farming reward information\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"RewardInfo\"\n }\n },\n 2\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolFeeParameters\",\n \"docs\": [\n \"Information regarding fee charges\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"base_fee\",\n \"docs\": [\n \"Base fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BaseFeeParameters\"\n }\n }\n },\n {\n \"name\": \"protocol_fee_percent\",\n \"docs\": [\n \"Protocol trade fee percent\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"partner_fee_percent\",\n \"docs\": [\n \"partner fee percent\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"referral_fee_percent\",\n \"docs\": [\n \"referral fee percent\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"dynamic_fee\",\n \"docs\": [\n \"dynamic fee\"\n ],\n \"type\": {\n \"option\": {\n \"defined\": {\n \"name\": \"DynamicFeeParameters\"\n }\n }\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolFeesConfig\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"base_fee\",\n \"type\": {\n \"defined\": {\n \"name\": \"BaseFeeConfig\"\n }\n }\n },\n {\n \"name\": \"dynamic_fee\",\n \"type\": {\n \"defined\": {\n \"name\": \"DynamicFeeConfig\"\n }\n }\n },\n {\n \"name\": \"protocol_fee_percent\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"partner_fee_percent\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"referral_fee_percent\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding_0\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"padding_1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 5\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolFeesStruct\",\n \"docs\": [\n \"Information regarding fee charges\",\n \"trading_fee = amount * trade_fee_numerator / denominator\",\n \"protocol_fee = trading_fee * protocol_fee_percentage / 100\",\n \"referral_fee = protocol_fee * referral_percentage / 100\",\n \"partner_fee = (protocol_fee - referral_fee) * partner_fee_percentage / denominator\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"base_fee\",\n \"docs\": [\n \"Trade fees are extra token amounts that are held inside the token\",\n \"accounts during a trade, making the value of liquidity tokens rise.\",\n \"Trade fee numerator\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BaseFeeStruct\"\n }\n }\n },\n {\n \"name\": \"protocol_fee_percent\",\n \"docs\": [\n \"Protocol trading fees are extra token amounts that are held inside the token\",\n \"accounts during a trade, with the equivalent in pool tokens minted to\",\n \"the protocol of the program.\",\n \"Protocol trade fee numerator\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"partner_fee_percent\",\n \"docs\": [\n \"partner fee\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"referral_fee_percent\",\n \"docs\": [\n \"referral fee\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding_0\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"dynamic_fee\",\n \"docs\": [\n \"dynamic fee\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"DynamicFeeStruct\"\n }\n }\n },\n {\n \"name\": \"padding_1\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 2\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PoolMetrics\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"total_lp_a_fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_lp_b_fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_protocol_a_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_protocol_b_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_partner_a_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_partner_b_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_position\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"Position\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"nft_mint\",\n \"docs\": [\n \"nft mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_a_per_token_checkpoint\",\n \"docs\": [\n \"fee a checkpoint\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"fee_b_per_token_checkpoint\",\n \"docs\": [\n \"fee b checkpoint\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"fee_a_pending\",\n \"docs\": [\n \"fee a pending\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee_b_pending\",\n \"docs\": [\n \"fee b pending\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"unlocked_liquidity\",\n \"docs\": [\n \"unlock liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"vested_liquidity\",\n \"docs\": [\n \"vesting liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"permanent_locked_liquidity\",\n \"docs\": [\n \"permanent locked liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"metrics\",\n \"docs\": [\n \"metrics\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PositionMetrics\"\n }\n }\n },\n {\n \"name\": \"reward_infos\",\n \"docs\": [\n \"Farming reward information\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"UserRewardInfo\"\n }\n },\n 2\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"docs\": [\n \"padding for future usage\"\n ],\n \"type\": {\n \"array\": [\n \"u128\",\n 6\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"PositionMetrics\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"total_claimed_a_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_claimed_b_fee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RemoveLiquidityParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"liquidity_delta\",\n \"docs\": [\n \"delta liquidity\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_a_amount_threshold\",\n \"docs\": [\n \"minimum token a amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_b_amount_threshold\",\n \"docs\": [\n \"minimum token b amount\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardInfo\",\n \"docs\": [\n \"Stores the state relevant for tracking liquidity mining rewards\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"initialized\",\n \"docs\": [\n \"Indicates if the reward has been initialized\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_token_flag\",\n \"docs\": [\n \"reward token flag\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"_padding_0\",\n \"docs\": [\n \"padding\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 6\n ]\n }\n },\n {\n \"name\": \"_padding_1\",\n \"docs\": [\n \"Padding to ensure `reward_rate: u128` is 16-byte aligned\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Reward token mint.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward vault token account.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funder\",\n \"docs\": [\n \"Authority account that allows to fund rewards\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_duration\",\n \"docs\": [\n \"reward duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_duration_end\",\n \"docs\": [\n \"reward duration end\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_rate\",\n \"docs\": [\n \"reward rate\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"reward_per_token_stored\",\n \"docs\": [\n \"Reward per token stored\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"last_update_time\",\n \"docs\": [\n \"The last time reward states were updated.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"cumulative_seconds_with_empty_liquidity_reward\",\n \"docs\": [\n \"Accumulated seconds when the farm distributed rewards but the bin was empty.\",\n \"These rewards will be carried over to the next reward time window.\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"StaticConfigParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"pool_fees\",\n \"type\": {\n \"defined\": {\n \"name\": \"PoolFeeParameters\"\n }\n }\n },\n {\n \"name\": \"sqrt_min_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"sqrt_max_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"vault_config_key\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pool_creator_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"activation_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"collect_fee_mode\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"SwapParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"amount_in\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"minimum_amount_out\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SwapResult\",\n \"docs\": [\n \"Encodes all results of swapping\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"output_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"next_sqrt_price\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"lp_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"protocol_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"partner_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"referral_fee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenBadge\",\n \"docs\": [\n \"Parameter that set by the protocol\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"token_mint\",\n \"docs\": [\n \"token mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"_padding\",\n \"docs\": [\n \"Reserve\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"UserRewardInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_per_token_checkpoint\",\n \"docs\": [\n \"The latest update reward checkpoint\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"reward_pendings\",\n \"docs\": [\n \"Current pending rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_claimed_rewards\",\n \"docs\": [\n \"Total claimed rewards\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"Vesting\",\n \"serialization\": \"bytemuck\",\n \"repr\": {\n \"kind\": \"c\"\n },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"position\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"cliff_point\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"cliff_unlock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"liquidity_per_period\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_released_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u8\",\n 14\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u128\",\n 4\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"VestingParameters\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"cliff_point\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"period_frequency\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"cliff_unlock_liquidity\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"liquidity_per_period\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"number_of_period\",\n \"type\": \"u16\"\n }\n ]\n }\n }\n ]\n}","import { IdlAccounts, IdlTypes, Program, BN } from \"@coral-xyz/anchor\";\nimport { PublicKey, Transaction } from \"@solana/web3.js\";\nimport type { CpAmm as CpAmmTypes } from \"./idl/cp_amm\";\nimport { Mint } from \"@solana/spl-token\";\n\nexport type AmmProgram = Program<CpAmmTypes>;\n\nexport type TxBuilder = Promise<Transaction>;\n\nexport enum Rounding {\n Up,\n Down,\n}\n\nexport enum ActivationPoint {\n Timestamp,\n Slot,\n}\n\nexport enum FeeSchedulerMode {\n Linear,\n Exponential,\n}\n\nexport enum CollectFeeMode {\n BothToken,\n OnlyB,\n}\n\nexport enum TradeDirection {\n AtoB,\n BtoA,\n}\n\nexport enum ActivationType {\n Slot,\n Timestamp,\n}\n\nexport type FeeMode = {\n feeOnInput: boolean;\n feesOnTokenA: boolean;\n};\n\n// Account state types\nexport type PoolState = IdlAccounts<CpAmmTypes>[\"pool\"];\nexport type PositionState = IdlAccounts<CpAmmTypes>[\"position\"];\nexport type VestingState = IdlAccounts<CpAmmTypes>[\"vesting\"];\nexport type ConfigState = IdlAccounts<CpAmmTypes>[\"config\"];\nexport type TokenBadgeState = IdlAccounts<CpAmmTypes>[\"tokenBadge\"];\n\n// Program params types\n// export type LockPositionParams = IdlTypes<CpAmm>[\"VestingParameters\"];\n// export type AddLiquidityParams = IdlTypes<CpAmm>[\"AddLiquidityParameters\"];\n// export type RemoveLiquidityParams =\n// IdlTypes<CpAmm>[\"RemoveLiquidityParameters\"];\n// export type SwapParams = IdlTypes<CpAmm>[\"SwapParameters\"];\n// export type InitPoolParams = IdlTypes<CpAmm>[\"InitializePoolParameters\"];\n// export type InitCustomizePoolParams =\n// IdlTypes<CpAmm>[\"InitializeCustomizablePoolParameters\"];\nexport type RewardInfo = IdlTypes<CpAmmTypes>[\"rewardInfo\"];\n\nexport type DynamicFee = {\n binStep: number;\n binStepU128: BN;\n filterPeriod: number;\n decayPeriod: number;\n reductionFactor: number;\n maxVolatilityAccumulator: number;\n variableFeeControl: number;\n};\n\nexport type BaseFee = {\n cliffFeeNumerator: BN;\n numberOfPeriod: number;\n periodFrequency: BN;\n reductionFactor: BN;\n feeSchedulerMode: number;\n};\n\nexport type PoolFeesParams = {\n baseFee: BaseFee;\n protocolFeePercent: number;\n partnerFeePercent: number;\n referralFeePercent: number;\n dynamicFee: DynamicFee | null;\n};\n\nexport type PrepareTokenAccountParams = {\n payer: PublicKey;\n tokenAOwner: PublicKey;\n tokenBOwner: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type PrepareCustomizablePoolParams = {\n pool: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAAmount: BN;\n tokenBAmount: BN;\n payer: PublicKey;\n positionNft: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type InitializeCustomizeablePoolParams = {\n payer: PublicKey;\n creator: PublicKey;\n positionNft: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAAmount: BN;\n tokenBAmount: BN;\n sqrtMinPrice: BN;\n sqrtMaxPrice: BN;\n liquidityDelta: BN;\n initSqrtPrice: BN;\n poolFees: PoolFeesParams;\n hasAlphaVault: boolean;\n activationType: number;\n collectFeeMode: number;\n activationPoint: BN | null;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n isLockLiquidity?: boolean;\n};\n\nexport type InitializeCustomizeablePoolWithDynamicConfigParams =\n InitializeCustomizeablePoolParams & {\n config: PublicKey;\n poolCreatorAuthority: PublicKey;\n };\n\nexport type PreparePoolCreationParams = {\n tokenAAmount: BN;\n tokenBAmount: BN;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n tokenAInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n tokenBInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type PreparedPoolCreation = {\n initSqrtPrice: BN;\n liquidityDelta: BN;\n};\n\nexport type PreparePoolCreationSingleSide = {\n tokenAAmount: BN;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n initSqrtPrice: BN;\n tokenAInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type CreatePoolParams = {\n creator: PublicKey;\n payer: PublicKey;\n config: PublicKey;\n positionNft: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n initSqrtPrice: BN;\n liquidityDelta: BN;\n tokenAAmount: BN;\n tokenBAmount: BN;\n activationPoint: BN | null;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n isLockLiquidity?: boolean;\n};\n\nexport type CreatePositionParams = {\n owner: PublicKey;\n payer: PublicKey;\n pool: PublicKey;\n positionNft: PublicKey;\n};\n\nexport type AddLiquidityParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n liquidityDelta: BN;\n maxAmountTokenA: BN;\n maxAmountTokenB: BN;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type CreatePositionAndAddLiquidity = {\n owner: PublicKey;\n pool: PublicKey;\n positionNft: PublicKey;\n liquidityDelta: BN;\n maxAmountTokenA: BN;\n maxAmountTokenB: BN;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type LiquidityDeltaParams = {\n maxAmountTokenA: BN;\n maxAmountTokenB: BN;\n sqrtPrice: BN;\n sqrtMinPrice: BN;\n sqrtMaxPrice: BN;\n tokenAInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n tokenBInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type RemoveLiquidityParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n liquidityDelta: BN;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n vestings: Array<{\n account: PublicKey;\n vestingState: VestingState;\n }>;\n currentPoint: BN;\n};\n\nexport type RemoveAllLiquidityParams = Omit<\n RemoveLiquidityParams,\n \"liquidityDelta\"\n>;\n\nexport type BuildAddLiquidityParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n liquidityDelta: BN;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type BuildLiquidatePositionInstructionParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n positionState: PositionState;\n poolState: PoolState;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n};\n\nexport type BuildRemoveAllLiquidityInstructionParams = {\n poolAuthority: PublicKey;\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type ClosePositionParams = {\n owner: PublicKey;\n pool: PublicKey;\n position: PublicKey;\n positionNftMint: PublicKey;\n positionNftAccount: PublicKey;\n};\n\nexport type RemoveAllLiquidityAndClosePositionParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n poolState: PoolState;\n positionState: PositionState;\n tokenAAmountThreshold: BN;\n tokenBAmountThreshold: BN;\n vestings: Array<{\n account: PublicKey;\n vestingState: VestingState;\n }>;\n currentPoint: BN;\n};\n\nexport type MergePositionParams = {\n owner: PublicKey;\n positionA: PublicKey;\n positionB: PublicKey;\n poolState: PoolState;\n positionBNftAccount: PublicKey;\n positionANftAccount: PublicKey;\n positionBState: PositionState;\n tokenAAmountAddLiquidityThreshold: BN;\n tokenBAmountAddLiquidityThreshold: BN;\n tokenAAmountRemoveLiquidityThreshold: BN;\n tokenBAmountRemoveLiquidityThreshold: BN;\n positionBVestings: Array<{\n account: PublicKey;\n vestingState: VestingState;\n }>;\n currentPoint: BN;\n};\n\nexport type GetQuoteParams = {\n inAmount: BN;\n inputTokenMint: PublicKey;\n slippage: number;\n poolState: PoolState;\n currentTime: number;\n currentSlot: number;\n inputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n outputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type SwapQuotes = {\n totalFee: BN;\n minOutAmount: BN;\n actualAmount: BN;\n};\n\nexport type SwapParams = {\n payer: PublicKey;\n pool: PublicKey;\n inputTokenMint: PublicKey;\n outputTokenMint: PublicKey;\n amountIn: BN;\n minimumAmountOut: BN;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n referralTokenAccount: PublicKey | null;\n};\n\nexport type LockPositionParams = {\n owner: PublicKey;\n payer: PublicKey;\n vestingAccount: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n pool: PublicKey;\n cliffPoint: BN | null;\n periodFrequency: BN;\n cliffUnlockLiquidity: BN;\n liquidityPerPeriod: BN;\n numberOfPeriod: number;\n};\n\nexport type SetupFeeClaimAccountsParams = {\n payer: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n receiver: PublicKey;\n tempWSolAccount?: PublicKey;\n};\n\nexport type ClaimPositionFeeInstructionParams = {\n owner: PublicKey;\n poolAuthority: PublicKey;\n pool: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n tokenAAccount: PublicKey;\n tokenBAccount: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n};\n\nexport type ClaimPositionFeeParams = {\n owner: PublicKey;\n position: PublicKey;\n pool: PublicKey;\n positionNftAccount: PublicKey;\n tokenAMint: PublicKey;\n tokenBMint: PublicKey;\n tokenAVault: PublicKey;\n tokenBVault: PublicKey;\n tokenAProgram: PublicKey;\n tokenBProgram: PublicKey;\n receiver: PublicKey;\n feePayer?: PublicKey;\n tempWSolAccount?: PublicKey;\n};\n\nexport type ClosePositionInstructionParams = {\n owner: PublicKey;\n poolAuthority: PublicKey;\n pool: PublicKey;\n position: PublicKey;\n positionNftMint: PublicKey;\n positionNftAccount: PublicKey;\n};\n\nexport type InitializeRewardParams = {\n rewardIndex: number;\n rewardDuration: BN;\n pool: PublicKey;\n rewardMint: PublicKey;\n payer: PublicKey;\n};\n\nexport type UpdateRewardDurationParams = {\n pool: PublicKey;\n admin: PublicKey;\n rewardIndex: number;\n newDuration: BN;\n};\n\nexport type UpdateRewardFunderParams = {\n pool: PublicKey;\n admin: PublicKey;\n rewardIndex: number;\n newFunder: PublicKey;\n};\n\nexport type FundRewardParams = {\n funder: PublicKey;\n rewardIndex: number;\n pool: PublicKey;\n carryForward: boolean;\n amount: BN;\n};\n\nexport type WithdrawIneligibleRewardParams = {\n rewardIndex: number;\n pool: PublicKey;\n funder: PublicKey;\n};\n\nexport type ClaimPartnerFeeParams = {\n partner: PublicKey;\n pool: PublicKey;\n maxAmountA: BN;\n maxAmountB: BN;\n receiver: PublicKey;\n feePayer?: PublicKey;\n tempWSolAccount?: PublicKey;\n};\n\nexport type ClaimRewardParams = {\n user: PublicKey;\n position: PublicKey;\n poolState: PoolState;\n positionState: PositionState;\n positionNftAccount: PublicKey;\n rewardIndex: number;\n feePayer?: PublicKey;\n};\n\nexport type RefreshVestingParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n pool: PublicKey;\n vestingAccounts: PublicKey[];\n};\n\nexport type PermanentLockParams = {\n owner: PublicKey;\n position: PublicKey;\n positionNftAccount: PublicKey;\n pool: PublicKey;\n unlockedLiquidity: BN;\n};\n\nexport type GetDepositQuoteParams = {\n inAmount: BN;\n isTokenA: boolean;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n sqrtPrice: BN;\n inputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n outputTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type GetWithdrawQuoteParams = {\n liquidityDelta: BN;\n minSqrtPrice: BN;\n maxSqrtPrice: BN;\n sqrtPrice: BN;\n tokenATokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n tokenBTokenInfo?: {\n mint: Mint;\n currentEpoch: number;\n };\n};\n\nexport type DepositQuote = {\n actualInputAmount: BN;\n consumedInputAmount: BN;\n outputAmount: BN;\n liquidityDelta: BN;\n};\n\nexport type WithdrawQuote = {\n liquidityDelta: BN;\n outAmountA: BN;\n outAmountB: BN;\n};\n\nexport type DynamicFeeParams = {\n volatilityAccumulator: BN;\n binStep: number;\n variableFeeControl: number;\n};\n","import { PublicKey } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\nimport { CP_AMM_PROGRAM_ID } from \"./constants\";\n\n// Private function: Only use to derive pool account\nexport function getFirstKey(key1: PublicKey, key2: PublicKey) {\n const buf1 = key1.toBuffer();\n const buf2 = key2.toBuffer();\n // Buf1 > buf2\n if (Buffer.compare(buf1, buf2) === 1) {\n return buf1;\n }\n return buf2;\n}\n\nexport function getSecondKey(key1: PublicKey, key2: PublicKey) {\n const buf1 = key1.toBuffer();\n const buf2 = key2.toBuffer();\n // Buf1 > buf2\n if (Buffer.compare(buf1, buf2) === 1) {\n return buf2;\n }\n return buf1;\n}\n\nexport function derivePoolAuthority(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"pool_authority\")],\n CP_AMM_PROGRAM_ID\n )[0];\n}\nexport function deriveConfigAddress(index: BN): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"config\"), index.toArrayLike(Buffer, \"le\", 8)],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function derivePoolAddress(\n config: PublicKey,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(\"pool\"),\n config.toBuffer(),\n getFirstKey(tokenAMint, tokenBMint),\n getSecondKey(tokenAMint, tokenBMint),\n ],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function derivePositionAddress(positionNft: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"position\"), positionNft.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveTokenVaultAddress(\n tokenMint: PublicKey,\n pool: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"token_vault\"), tokenMint.toBuffer(), pool.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveRewardVaultAddress(\n pool: PublicKey,\n rewardIndex: number\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"reward_vault\"), pool.toBuffer(), Buffer.from([rewardIndex])],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveCustomizablePoolAddress(\n tokenAMint: PublicKey,\n tokenBMint: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(\"cpool\"),\n getFirstKey(tokenAMint, tokenBMint),\n getSecondKey(tokenAMint, tokenBMint),\n ],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveTokenBadgeAddress(tokenMint: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"token_badge\"), tokenMint.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function deriveClaimFeeOperatorAddress(operator: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"cf_operator\"), operator.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n\nexport function derivePositionNftAccount(\n positionNftMint: PublicKey\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(\"position_nft_account\"), positionNftMint.toBuffer()],\n CP_AMM_PROGRAM_ID\n )[0];\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport const CP_AMM_PROGRAM_ID = new PublicKey(\n \"cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG\"\n);\n\nexport const LIQUIDITY_SCALE = 128;\nexport const SCALE_OFFSET = 64;\nexport const BASIS_POINT_MAX = 10_000;\nexport const MAX_FEE_NUMERATOR = 500_000_000;\nexport const FEE_DENOMINATOR = 1_000_000_000;\n\nexport const MIN_SQRT_PRICE = new BN(\"4295048016\");\nexport const MAX_SQRT_PRICE = new BN(\"79226673521066979257578248091\");\nexport const MIN_CU_BUFFER = 50_000;\nexport const MAX_CU_BUFFER = 200_000;\n\nexport const DYNAMIC_FEE_FILTER_PERIOD_DEFAULT = 10;\nexport const DYNAMIC_FEE_DECAY_PERIOD_DEFAULT = 120;\nexport const DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT = 5000; // 50%\nexport const BIN_STEP_BPS_DEFAULT = 1;\n// bin_step << 64 / BASIS_POINT_MAX\nexport const BIN_STEP_BPS_U128_DEFAULT = new BN(\"1844674407370955\");\nexport const MAX_PRICE_CHANGE_BPS_DEFAULT = 1500; // 15%\n","import { bs58 } from \"@coral-xyz/anchor/dist/cjs/utils/bytes\";\nimport {\n AccountLayout,\n createAssociatedTokenAccountIdempotentInstruction,\n createCloseAccountInstruction,\n getAccount,\n getAssociatedTokenAddressSync,\n getMint,\n NATIVE_MINT,\n TOKEN_2022_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n TokenAccountNotFoundError,\n TokenInvalidAccountOwnerError,\n} from \"@solana/spl-token\";\nimport {\n Connection,\n GetProgramAccountsFilter,\n PublicKey,\n SystemProgram,\n TransactionInstruction,\n} from \"@solana/web3.js\";\n\nexport function getTokenProgram(flag: number): PublicKey {\n return flag == 0 ? TOKEN_PROGRAM_ID : TOKEN_2022_PROGRAM_ID;\n}\nexport const getTokenDecimals = async (\n connection: Connection,\n mint: PublicKey\n): Promise<number> => {\n return (await getMint(connection, mint)).decimals;\n};\n\nexport const getOrCreateATAInstruction = async (\n connection: Connection,\n tokenMint: PublicKey,\n owner: PublicKey,\n payer: PublicKey = owner,\n allowOwnerOffCurve = true,\n tokenProgram: PublicKey\n): Promise<{ ataPubkey: PublicKey; ix?: TransactionInstruction }> => {\n const toAccount = getAssociatedTokenAddressSync(\n tokenMint,\n owner,\n allowOwnerOffCurve,\n tokenProgram\n );\n\n try {\n await getAccount(connection, toAccount);\n return { ataPubkey: toAccount, ix: undefined };\n } catch (e) {\n if (\n e instanceof TokenAccountNotFoundError ||\n e instanceof TokenInvalidAccountOwnerError\n ) {\n const ix = createAssociatedTokenAccountIdempotentInstruction(\n payer,\n toAccount,\n owner,\n tokenMint,\n tokenProgram\n );\n\n return { ataPubkey: toAccount, ix };\n } else {\n /* handle error */\n console.error(\"Error::getOrCreateATAInstruction\", e);\n throw e;\n }\n }\n};\n\nexport const wrapSOLInstruction = (\n from: PublicKey,\n to: PublicKey,\n amount: bigint\n): TransactionInstruction[] => {\n return [\n SystemProgram.transfer({\n fromPubkey: from,\n toPubkey: to,\n lamports: amount,\n }),\n new TransactionInstruction({\n keys: [\n {\n pubkey: to,\n isSigner: false,\n isWritable: true,\n },\n ],\n data: Buffer.from(new Uint8Array([17])),\n programId: TOKEN_PROGRAM_ID,\n }),\n ];\n};\n\nexport const unwrapSOLInstruction = async (\n owner: PublicKey,\n receiver: PublicKey = owner,\n allowOwnerOffCurve = true\n) => {\n const wSolATAAccount = getAssociatedTokenAddressSync(\n NATIVE_MINT,\n owner,\n allowOwnerOffCurve\n );\n if (wSolATAAccount) {\n const closedWrappedSolInstruction = createCloseAccountInstruction(\n wSolATAAccount,\n receiver,\n owner,\n [],\n TOKEN_PROGRAM_ID\n );\n return closedWrappedSolInstruction;\n }\n return null;\n};\n\nexport async function getAllUserPositionNftAccount(\n connection: Connection,\n user: PublicKey\n): Promise<\n Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }>\n> {\n const filters: GetProgramAccountsFilter[] = [\n {\n memcmp: {\n offset: 32,\n bytes: user.toBase58(),\n },\n },\n {\n memcmp: {\n offset: 64,\n bytes: bs58.encode(Buffer.from([1, 0, 0, 0, 0, 0, 0, 0])), // 1\n },\n },\n ];\n\n const tokenAccountsRaw = await connection.getProgramAccounts(\n TOKEN_2022_PROGRAM_ID,\n {\n filters,\n }\n );\n\n const userPositionNftAccount: Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }> = [];\n for (const { account, pubkey } of tokenAccountsRaw) {\n const tokenAccountData = AccountLayout.decode(account.data);\n userPositionNftAccount.push({\n positionNft: tokenAccountData.mint,\n positionNftAccount: pubkey,\n });\n }\n\n return userPositionNftAccount;\n}\n\nexport async function getAllPositionNftAccountByOwner(\n connection: Connection,\n user: PublicKey\n): Promise<\n Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }>\n> {\n const tokenAccounts = await connection.getTokenAccountsByOwner(user, {\n programId: TOKEN_2022_PROGRAM_ID,\n });\n\n const userPositionNftAccount: Array<{\n positionNft: PublicKey;\n positionNftAccount: PublicKey;\n }> = [];\n for (const { account, pubkey } of tokenAccounts.value) {\n const tokenAccountData = AccountLayout.decode(account.data);\n if (tokenAccountData.amount.toString() === \"1\") {\n userPositionNftAccount.push({\n positionNft: tokenAccountData.mint,\n positionNftAccount: pubkey,\n });\n }\n }\n\n return userPositionNftAccount;\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport {\n BaseFee,\n CollectFeeMode,\n DynamicFee,\n FeeMode,\n FeeSchedulerMode,\n Rounding,\n} from \"../types\";\nimport {\n BASIS_POINT_MAX,\n BIN_STEP_BPS_DEFAULT,\n BIN_STEP_BPS_U128_DEFAULT,\n DYNAMIC_FEE_DECAY_PERIOD_DEFAULT,\n DYNAMIC_FEE_FILTER_PERIOD_DEFAULT,\n DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT,\n FEE_DENOMINATOR,\n MAX_FEE_NUMERATOR,\n MAX_PRICE_CHANGE_BPS_DEFAULT,\n SCALE_OFFSET,\n} from \"../constants\";\nimport { ONE, pow } from \"../math/feeMath\";\nimport { mulDiv } from \"../math\";\nimport {\n getAmountAFromLiquidityDelta,\n getAmountBFromLiquidityDelta,\n getNextSqrtPrice,\n} from \"./curve\";\nimport Decimal from \"decimal.js\";\n\n// Fee scheduler\n// Linear: cliffFeeNumerator - period * reductionFactor\n// Exponential: cliffFeeNumerator * (1 -reductionFactor/BASIS_POINT_MAX)^period\nexport function getBaseFeeNumerator(\n feeSchedulerMode: FeeSchedulerMode,\n cliffFeeNumerator: BN,\n period: BN,\n reductionFactor: BN\n): BN {\n let feeNumerator: BN;\n if (feeSchedulerMode == FeeSchedulerMode.Linear) {\n feeNumerator = cliffFeeNumerator.sub(period.mul(reductionFactor));\n } else {\n const bps = reductionFactor.shln(SCALE_OFFSET).div(new BN(BASIS_POINT_MAX));\n const base = ONE.sub(bps);\n const result = pow(base, period);\n feeNumerator = cliffFeeNumerator.mul(result).shrn(SCALE_OFFSET);\n }\n\n return feeNumerator;\n}\n\n/**\n * Calculates the dynamic fee numerator based on market volatility metrics\n *\n * @param volatilityAccumulator - A measure of accumulated market volatility (BN)\n * @param binStep - The size of price bins in the liquidity distribution (BN)\n * @param variableFeeControl - Parameter controlling the impact of volatility on fees (BN)\n * @returns The calculated dynamic fee numerator (BN)\n */\nexport function getDynamicFeeNumerator(\n volatilityAccumulator: BN,\n binStep: BN,\n variableFeeControl: BN\n): BN {\n if (variableFeeControl.isZero()) {\n return new BN(0);\n }\n const squareVfaBin = volatilityAccumulator\n .mul(new BN(binStep))\n .pow(new BN(2));\n const vFee = variableFeeControl.mul(squareVfaBin);\n\n return vFee.add(new BN(99_999_999_999)).div(new BN(100_000_000_000));\n}\n\n/**\n * Calculates the fee numerator based on current market conditions and fee schedule configuration\n *\n * @param currentPoint - The current price point in the liquidity curve\n * @param activationPoint - The price point at which the fee schedule is activated (BN)\n * @param numberOfPeriod - The total number of periods in the fee schedule\n * @param periodFrequency - The frequency at which periods change (BN)\n * @param feeSchedulerMode - The mode determining how fees are calculated (0 = constant, 1 = linear, etc.)\n * @param cliffFeeNumerator - The initial fee numerator at the cliff point (BN)\n * @param reductionFactor - The factor by which fees are reduced in each period (BN)\n * @param dynamicFeeParams - Optional parameters for dynamic fee calculation\n * @param dynamicFeeParams.volatilityAccumulator - Measure of accumulated market volatility (BN)\n * @param dynamicFeeParams.binStep - Size of price bins in the liquidity distribution (BN)\n * @param dynamicFeeParams.variableFeeControl - Parameter controlling the impact of volatility (BN)\n * @returns The calculated fee numerator (BN), capped at MAX_FEE_NUMERATOR\n */\nexport function getFeeNumerator(\n currentPoint: number,\n activationPoint: BN,\n numberOfPeriod: number,\n periodFrequency: BN,\n feeSchedulerMode: number,\n cliffFeeNumerator: BN,\n reductionFactor: BN,\n dynamicFeeParams?: {\n volatilityAccumulator: BN;\n binStep: number;\n variableFeeControl: number;\n }\n): BN {\n if (Number(periodFrequency) == 0) {\n return cliffFeeNumerator;\n }\n const period = new BN(currentPoint).lt(activationPoint)\n ? new BN(numberOfPeriod)\n : BN.min(\n new BN(numberOfPeriod),\n new BN(currentPoint).sub(activationPoint).div(periodFrequency)\n );\n\n let feeNumerator = getBaseFeeNumerator(\n feeSchedulerMode,\n cliffFeeNumerator,\n period,\n reductionFactor\n );\n\n if (dynamicFeeParams) {\n const { volatilityAccumulator, binStep, variableFeeControl } =\n dynamicFeeParams;\n const dynamicFeeNumberator = getDynamicFeeNumerator(\n volatilityAccumulator,\n new BN(binStep),\n new BN(variableFeeControl)\n );\n feeNumerator = feeNumerator.add(dynamicFeeNumberator);\n }\n return feeNumerator.gt(new BN(MAX_FEE_NUMERATOR))\n ? new BN(MAX_FEE_NUMERATOR)\n : feeNumerator;\n}\n\n/**\n * Determines the fee mode based on the swap direction and fee collection configuration\n *\n * @param collectFeeMode - The fee collection mode (e.g., OnlyB, BothToken)\n * @param btoA - Boolean indicating if the swap is from token B to token A\n * @returns { feeOnInput, feesOnTokenA }\n */\nfunction getFeeMode(collectFeeMode: CollectFeeMode, btoA: boolean): FeeMode {\n const feeOnInput = btoA && collectFeeMode === CollectFeeMode.OnlyB;\n const feesOnTokenA = btoA && collectFeeMode === CollectFeeMode.BothToken;\n\n return {\n feeOnInput,\n feesOnTokenA,\n };\n}\n\n/**\n * Calculates the total fee amount based on the transaction amount and fee numerator\n *\n * @param amount - The transaction amount (BN)\n * @param tradeFeeNumerator - The fee numerator to apply (BN)\n * @returns The calculated fee amount (BN), rounded up\n */\nfunction getTotalFeeOnAmount(amount: BN, tradeFeeNumerator: BN) {\n return mulDiv(\n amount,\n tradeFeeNumerator,\n new BN(FEE_DENOMINATOR),\n Rounding.Up\n );\n}\n\n/**\n *\n * Calculates the output amount and fees for a swap operation in a concentrated liquidity pool.\n *\n * @param inAmount - The input amount of tokens the user is swapping\n * @param sqrtPrice - The current square root price of the pool\n * @param liquidity - The current liquidity available in the pool\n * @param tradeFeeNumerator - The fee numerator used to calculate trading fees\n * @param aToB - Direction of the swap: true for token A to token B, false for token B to token A\n * @param collectFeeMode - Determines how fees are collected (0: both tokens, 1: only token B)\n * @returns Object containing the actual output amount after fees and the total fee amount\n */\nexport function getSwapAmount(\n inAmount: BN,\n sqrtPrice: BN,\n liquidity: BN,\n tradeFeeNumerator: BN,\n aToB: boolean,\n collectFeeMode: number\n): { amountOut: BN; totalFee: BN } {\n let feeMode = getFeeMode(collectFeeMode, !aToB);\n let actualInAmount = inAmount;\n let totalFee = new BN(0);\n\n if (feeMode.feeOnInput) {\n totalFee = getTotalFeeOnAmount(inAmount, tradeFeeNumerator);\n actualInAmount = inAmount.sub(totalFee);\n }\n\n // Calculate the output amount based on swap direction\n const outAmount = aToB\n ? getAmountBFromLiquidityDelta(\n liquidity,\n sqrtPrice,\n getNextSqrtPrice(actualInAmount, sqrtPrice, liquidity, true),\n Rounding.Down\n )\n : getAmountAFromLiquidityDelta(\n liquidity,\n sqrtPrice,\n getNextSqrtPrice(actualInAmount, sqrtPrice, liquidity, false),\n Rounding.Down\n );\n\n // Apply fees to output amount if fee is taken on output\n const amountOut = feeMode.feeOnInput\n ? outAmount\n : ((totalFee = getTotalFeeOnAmount(outAmount, tradeFeeNumerator)),\n outAmount.sub(totalFee));\n\n return { amountOut, totalFee };\n}\n\n/**\n * Converts basis points (bps) to a fee numerator\n * 1 bps = 0.01% = 0.0001 in decimal\n *\n * @param bps - The value in basis points [1-10_000]\n * @returns The equivalent fee numerator\n */\nexport function bpsToFeeNumerator(bps: number): BN {\n return new BN(bps * FEE_DENOMINATOR).divn(BASIS_POINT_MAX);\n}\n\n/**\n * Converts a fee numerator back to basis points (bps)\n *\n * @param feeNumerator - The fee numerator to convert\n * @returns The equivalent value in basis points [1-10_000]\n */\nexport function feeNumeratorToBps(feeNumerator: BN): number {\n return feeNumerator\n .muln(BASIS_POINT_MAX)\n .div(new BN(FEE_DENOMINATOR))\n .toNumber();\n}\n\n/**\n * Calculates base fee parameters for a fee scheduler system.\n * @param {number} maxBaseFeeBps - Maximum fee in basis points\n * @param {number} minBaseFeeBps - Minimum fee in basis points\n * @param {FeeSchedulerMode} feeSchedulerMode - Mode for fee reduction (Linear or Exponential)\n * @param {number} numberOfPeriod - Number of periods over which to schedule fee reduction\n * @param {BN} periodFrequency - Time interval between fee reductions\n *\n * @returns {BaseFee}\n */\nexport function getBaseFeeParams(\n maxBaseFeeBps: number,\n minBaseFeeBps: number,\n feeSchedulerMode: FeeSchedulerMode,\n numberOfPeriod: number,\n totalDuration: number\n): BaseFee {\n if (maxBaseFeeBps == minBaseFeeBps) {\n if (numberOfPeriod != 0 || totalDuration != 0) {\n throw new Error(\"numberOfPeriod and totalDuration must both be zero\");\n }\n\n return {\n cliffFeeNumerator: bpsToFeeNumerator(maxBaseFeeBps),\n numberOfPeriod: 0,\n periodFrequency: new BN(0),\n reductionFactor: new BN(0),\n feeSchedulerMode: 0,\n };\n }\n\n if (numberOfPeriod <= 0) {\n throw new Error(\"Total periods must be greater than zero\");\n }\n\n if (maxBaseFeeBps > feeNumeratorToBps(new BN(MAX_FEE_NUMERATOR))) {\n throw new Error(\n `maxBaseFeeBps (${maxBaseFeeBps} bps) exceeds maximum allowed value of ${feeNumeratorToBps(\n new BN(MAX_FEE_NUMERATOR)\n )} bps`\n );\n }\n\n if (minBaseFeeBps > maxBaseFeeBps) {\n throw new Error(\n \"minBaseFee bps must be less than or equal to maxBaseFee bps\"\n );\n }\n\n if (numberOfPeriod == 0 || totalDuration == 0) {\n throw new Error(\n \"numberOfPeriod and totalDuration must both greater than zero\"\n );\n }\n\n const maxBaseFeeNumerator = bpsToFeeNumerator(maxBaseFeeBps);\n\n const minBaseFeeNumerator = bpsToFeeNumerator(minBaseFeeBps);\n\n const periodFrequency = new BN(totalDuration / numberOfPeriod);\n\n let reductionFactor: BN;\n if (feeSchedulerMode == FeeSchedulerMode.Linear) {\n const totalReduction = maxBaseFeeNumerator.sub(minBaseFeeNumerator);\n reductionFactor = totalReduction.divn(numberOfPeriod);\n } else {\n const ratio =\n minBaseFeeNumerator.toNumber() / maxBaseFeeNumerator.toNumber();\n const decayBase = Math.pow(ratio, 1 / numberOfPeriod);\n reductionFactor = new BN(BASIS_POINT_MAX * (1 - decayBase));\n }\n\n return {\n cliffFeeNumerator: maxBaseFeeNumerator,\n numberOfPeriod,\n periodFrequency,\n reductionFactor,\n feeSchedulerMode,\n };\n}\n\n/**\n * Calculate dynamic fee parameters\n * @param {number} baseFeeBps - Base fee in basis points\n * @param {number} [maxPriceChangeBps=1500] - Maximum price change to consider for fee calculation (in basis points)\n *\n * @returns {DynamicFee}\n */\nexport function getDynamicFeeParams(\n baseFeeBps: number,\n maxPriceChangeBps: number = MAX_PRICE_CHANGE_BPS_DEFAULT // default 15%\n): DynamicFee {\n if (maxPriceChangeBps > MAX_PRICE_CHANGE_BPS_DEFAULT) {\n throw new Error(\n `maxPriceChangeBps (${maxPriceChangeBps} bps) must be less than or equal to ${MAX_PRICE_CHANGE_BPS_DEFAULT}`\n );\n }\n\n const priceRatio = maxPriceChangeBps / BASIS_POINT_MAX + 1;\n // Q64\n const sqrtPriceRatioQ64 = new BN(\n Decimal.sqrt(priceRatio.toString())\n .mul(Decimal.pow(2, 64))\n .floor()\n .toFixed()\n );\n const deltaBinId = sqrtPriceRatioQ64\n .sub(ONE)\n .div(BIN_STEP_BPS_U128_DEFAULT)\n .muln(2);\n\n const maxVolatilityAccumulator = new BN(deltaBinId.muln(BASIS_POINT_MAX));\n\n const squareVfaBin = maxVolatilityAccumulator\n .mul(new BN(BIN_STEP_BPS_DEFAULT))\n .pow(new BN(2));\n\n const baseFeeNumerator = new BN(bpsToFeeNumerator(baseFeeBps));\n const maxDynamicFeeNumerator = baseFeeNumerator.muln(20).divn(100); // default max dynamic fee = 20% of base fee.\n const vFee = maxDynamicFeeNumerator\n .mul(new BN(100_000_000_000))\n .sub(new BN(99_999_999_999));\n\n const variableFeeControl = vFee.div(squareVfaBin);\n\n return {\n binStep: BIN_STEP_BPS_DEFAULT,\n binStepU128: BIN_STEP_BPS_U128_DEFAULT,\n filterPeriod: DYNAMIC_FEE_FILTER_PERIOD_DEFAULT,\n decayPeriod: DYNAMIC_FEE_DECAY_PERIOD_DEFAULT,\n reductionFactor: DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT,\n maxVolatilityAccumulator: maxVolatilityAccumulator.toNumber(),\n variableFeeControl: variableFeeControl.toNumber(),\n };\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { SCALE_OFFSET } from \"../constants\";\n\nconst MAX_EXPONENTIAL = new BN(0x80000);\n\nexport const ONE = new BN(1).shln(SCALE_OFFSET);\nconst MAX = new BN(2).pow(new BN(128)).sub(new BN(1));\n\nexport function pow(base: BN, exp: BN): BN {\n let invert = exp.isNeg();\n\n if (exp.isZero()) {\n return ONE;\n }\n\n exp = invert ? exp.abs() : exp;\n\n if (exp.gt(MAX_EXPONENTIAL)) {\n return new BN(0);\n }\n\n let squaredBase = base;\n let result = ONE;\n\n if (squaredBase.gte(result)) {\n squaredBase = MAX.div(squaredBase);\n invert = !invert;\n }\n\n if (!exp.and(new BN(0x1)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x2)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x4)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x8)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x10)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x20)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x40)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x80)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x100)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x200)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x400)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x800)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x1000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x2000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x4000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x8000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x10000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x20000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n squaredBase = squaredBase.mul(squaredBase).shrn(SCALE_OFFSET);\n\n if (!exp.and(new BN(0x40000)).isZero()) {\n result = result.mul(squaredBase).shrn(SCALE_OFFSET);\n }\n\n if (result.isZero()) {\n return new BN(0);\n }\n\n if (invert) {\n result = MAX.div(result);\n }\n\n return result;\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport Decimal from \"decimal.js\";\nimport { Rounding } from \"../types\";\n\nexport function mulDiv(x: BN, y: BN, denominator: BN, rounding: Rounding): BN {\n const { div, mod } = x.mul(y).divmod(denominator);\n\n if (rounding == Rounding.Up && !mod.isZero()) {\n return div.add(new BN(1));\n }\n return div;\n}\n\nexport function q64ToDecimal(num: BN, decimalPlaces?: number): Decimal {\n return new Decimal(num.toString())\n .div(Decimal.pow(2, 64))\n .toDecimalPlaces(decimalPlaces);\n}\n\nexport function decimalToQ64(num: Decimal): BN {\n return new BN(num.mul(Decimal.pow(2, 64)).floor().toFixed());\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { Rounding } from \"../types\";\nimport { mulDiv } from \"../math\";\nimport { SCALE_OFFSET } from \"../constants\";\n\n// aToB\n// √P' = √P * L / (L + Δx*√P)\n// bToA\n// √P' = √P + Δy / L\nexport function getNextSqrtPrice(\n amount: BN,\n sqrtPrice: BN,\n liquidity: BN,\n aToB: boolean\n): BN {\n let result: BN;\n if (aToB) {\n const product = amount.mul(sqrtPrice);\n const denominator = liquidity.add(product);\n const numerator = liquidity.mul(sqrtPrice);\n result = numerator.add(denominator.sub(new BN(1))).div(denominator);\n } else {\n const quotient = amount.shln(SCALE_OFFSET * 2).div(liquidity);\n result = sqrtPrice.add(quotient);\n }\n\n return result;\n}\n\n// Δa = L * (1 / √P_lower - 1 / √P_upper)\n//\n// Δa = L * (√P_upper - √P_lower) / (√P_upper * √P_lower)\n//\n// L = Δa * √P_upper * √P_lower / (√P_upper - √P_lower)\n//\nexport function getLiquidityDeltaFromAmountA(\n amountA: BN,\n lowerSqrtPrice: BN, // current sqrt price\n upperSqrtPrice: BN // max sqrt price\n): BN {\n const product = amountA.mul(lowerSqrtPrice).mul(upperSqrtPrice); // Q128.128\n const denominator = upperSqrtPrice.sub(lowerSqrtPrice); // Q64.64\n\n return product.div(denominator);\n}\n\n// Δb = L (√P_upper - √P_lower)\n// L = Δb / (√P_upper - √P_lower)\nexport function getLiquidityDeltaFromAmountB(\n amountB: BN,\n lowerSqrtPrice: BN, // min sqrt price\n upperSqrtPrice: BN // current sqrt price,\n): BN {\n const denominator = upperSqrtPrice.sub(lowerSqrtPrice);\n const product = amountB.shln(128);\n return product.div(denominator);\n}\n\n// L = Δa * √P_upper * √P_lower / (√P_upper - √P_lower)\n// Δa = L * (√P_upper - √P_lower) / √P_upper * √P_lower\nexport function getAmountAFromLiquidityDelta(\n liquidity: BN,\n currentSqrtPrice: BN, // current sqrt price\n maxSqrtPrice: BN,\n rounding: Rounding\n): BN {\n // Q128.128\n const product = liquidity.mul(maxSqrtPrice.sub(currentSqrtPrice));\n // Q128.128\n const denominator = currentSqrtPrice.mul(maxSqrtPrice);\n // Q64.64\n if (rounding == Rounding.Up) {\n return product.add(denominator.sub(new BN(1))).div(denominator);\n }\n return product.div(denominator);\n}\n\n// L = Δb / (√P_upper - √P_lower)\n// Δb = L * (√P_upper - √P_lower)\nexport function getAmountBFromLiquidityDelta(\n liquidity: BN,\n currentSqrtPrice: BN, // current sqrt price,\n minSqrtPrice: BN,\n rounding: Rounding\n): BN {\n const one = new BN(1).shln(128);\n const deltaPrice = currentSqrtPrice.sub(minSqrtPrice);\n const result = liquidity.mul(deltaPrice); // Q128\n if (rounding == Rounding.Up) {\n return result.add(one.sub(new BN(1))).div(one);\n }\n return result.shrn(128);\n}\n","import {\n AddressLookupTableAccount,\n Commitment,\n ComputeBudgetProgram,\n Connection,\n PublicKey,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { MAX_CU_BUFFER, MIN_CU_BUFFER } from \"../constants\";\n\nexport const getSimulationComputeUnits = async (\n connection: Connection,\n instructions: Array<TransactionInstruction>,\n payer: PublicKey,\n lookupTables: Array<AddressLookupTableAccount> | [],\n commitment: Commitment = \"confirmed\"\n): Promise<number | null> => {\n const testInstructions = [\n // Set an arbitrarily high number in simulation\n // so we can be sure the transaction will succeed\n // and get the real compute units used\n ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }),\n ...instructions,\n ];\n\n const testTransaction = new VersionedTransaction(\n new TransactionMessage({\n instructions: testInstructions,\n payerKey: payer,\n // RecentBlockhash can by any public key during simulation\n // since 'replaceRecentBlockhash' is set to 'true' below\n recentBlockhash: PublicKey.default.toString(),\n }).compileToV0Message(lookupTables)\n );\n\n const rpcResponse = await connection.simulateTransaction(testTransaction, {\n replaceRecentBlockhash: true,\n sigVerify: false,\n commitment,\n });\n\n if (rpcResponse?.value?.err) {\n const logs = rpcResponse.value.logs?.join(\"\\n • \") || \"No logs available\";\n throw new Error(\n `Transaction simulation failed:\\n •${logs}` +\n JSON.stringify(rpcResponse?.value?.err)\n );\n }\n\n return rpcResponse.value.unitsConsumed || null;\n};\n\n/**\n * Gets the estimated compute unit usage with a buffer.\n * @param connection A Solana connection object.\n * @param instructions The instructions of the transaction to simulate.\n * @param feePayer The public key of the fee payer.\n * @param buffer The buffer to add to the estimated compute unit usage. Max value is 1. Default value is 0.1 if not provided, and will be capped between 50k - 200k.\n * @returns The estimated compute unit usage with the buffer.\n */\nexport const getEstimatedComputeUnitUsageWithBuffer = async (\n connection: Connection,\n instructions: TransactionInstruction[],\n feePayer: PublicKey,\n buffer?: number\n) => {\n if (!buffer) {\n buffer = 0.1;\n }\n // Avoid negative value\n buffer = Math.max(0, buffer);\n // Limit buffer to 1\n buffer = Math.min(1, buffer);\n\n const estimatedComputeUnitUsage = await getSimulationComputeUnits(\n connection,\n instructions,\n feePayer,\n []\n );\n\n if (!estimatedComputeUnitUsage) {\n return 0;\n }\n\n let extraComputeUnitBuffer = estimatedComputeUnitUsage * buffer;\n if (extraComputeUnitBuffer > MAX_CU_BUFFER) {\n extraComputeUnitBuffer = MAX_CU_BUFFER;\n } else if (extraComputeUnitBuffer < MIN_CU_BUFFER) {\n extraComputeUnitBuffer = MIN_CU_BUFFER;\n }\n\n return estimatedComputeUnitUsage + extraComputeUnitBuffer;\n};\n\n/**\n * Gets the estimated compute unit usage with a buffer and converts it to a SetComputeUnitLimit instruction.\n * If the estimated compute unit usage cannot be retrieved, returns a SetComputeUnitLimit instruction with the fallback unit.\n * @param connection A Solana connection object.\n * @param instructions The instructions of the transaction to simulate.\n * @param feePayer The public key of the fee payer.\n * @param buffer The buffer to add to the estimated compute unit usage. Max value is 1. Default value is 0.1 if not provided, and will be capped between 50k - 200k.\n * @returns A SetComputeUnitLimit instruction with the estimated compute unit usage.\n */\nexport const getEstimatedComputeUnitIxWithBuffer = async (\n connection: Connection,\n instructions: TransactionInstruction[],\n feePayer: PublicKey,\n buffer?: number\n) => {\n const units = await getEstimatedComputeUnitUsageWithBuffer(\n connection,\n instructions,\n feePayer,\n buffer\n ).catch((error) => {\n console.error(\"Error::getEstimatedComputeUnitUsageWithBuffer\", error);\n return 1_400_000;\n });\n\n return ComputeBudgetProgram.setComputeUnitLimit({ units });\n};\n","import { BN } from \"@coral-xyz/anchor\";\nimport { BASIS_POINT_MAX, LIQUIDITY_SCALE } from \"../constants\";\nimport Decimal from \"decimal.js\";\nimport { PoolState, PositionState } from \"../types\";\nimport { PublicKey } from \"@solana/web3.js\";\n/**\n * It takes an amount and a slippage rate, and returns the maximum amount that can be received with\n * that slippage rate\n * @param {BN} amount - The amount of tokens you want to buy.\n * @param {number} rate - The maximum percentage of slippage you're willing to accept. (Max to 2 decimal place)\n * @returns The maximum amount of tokens that can be bought with the given amount of ETH, given the\n * slippage rate.\n */\nexport const getMaxAmountWithSlippage = (amount: BN, rate: number) => {\n const slippage = ((100 + rate) / 100) * BASIS_POINT_MAX;\n return amount.mul(new BN(slippage)).div(new BN(BASIS_POINT_MAX));\n};\n\n/**\n * It takes an amount and a slippage rate, and returns the minimum amount that will be received after\n * slippage\n * @param {BN} amount - The amount of tokens you want to sell.\n * @param {number} rate - The percentage of slippage you're willing to accept. (Max to 2 decimal place)\n * @returns The minimum amount that can be received after slippage is applied.\n */\nexport const getMinAmountWithSlippage = (amount: BN, rate: number) => {\n const slippage = ((100 - rate) / 100) * BASIS_POINT_MAX;\n return amount.mul(new BN(slippage)).div(new BN(BASIS_POINT_MAX));\n};\n\n/**\n * Calculate price impact as a percentage\n * @param actualAmount Amount after slippage in token units\n * @param idealAmount Theoretical amount without slippage in token units\n * @returns Price impact as a percentage (e.g., 1.5 means 1.5%)\n */\nexport const getPriceImpact = (actualAmount: BN, idealAmount: BN): number => {\n const diff = idealAmount.sub(actualAmount);\n return new Decimal(diff.toString())\n .div(new Decimal(idealAmount.toString()))\n .mul(100)\n .toNumber();\n};\n\n// (sqrtPrice)^2 * 10 ** (base_decimal - quote_decimal) / 2^128\nexport const getPriceFromSqrtPrice = (\n sqrtPrice: BN,\n tokenADecimal: number,\n tokenBDecimal: number\n): string => {\n const decimalSqrtPrice = new Decimal(sqrtPrice.toString());\n const price = decimalSqrtPrice\n .mul(decimalSqrtPrice)\n .mul(new Decimal(10 ** (tokenADecimal - tokenBDecimal)))\n .div(Decimal.pow(2, 128))\n .toString();\n\n return price;\n};\n\n// sqrt(price / 10^(tokenADecimal - tokenBDecimal)) * 2^64\nexport const getSqrtPriceFromPrice = (\n price: string,\n tokenADecimal: number,\n tokenBDecimal: number\n): BN => {\n const decimalPrice = new Decimal(price);\n\n const adjustedByDecimals = decimalPrice.div(\n new Decimal(10 ** (tokenADecimal - tokenBDecimal))\n );\n\n const sqrtValue = Decimal.sqrt(adjustedByDecimals);\n\n const sqrtValueQ64 = sqrtValue.mul(Decimal.pow(2, 64));\n\n return new BN(sqrtValueQ64.floor().toFixed());\n};\n\n// fee = totalLiquidity * feePerTokenStore\n// precision: (totalLiquidity * feePerTokenStore) >> 128\nexport const getUnClaimReward = (\n poolState: PoolState,\n positionState: PositionState\n): {\n feeTokenA: BN;\n feeTokenB: BN;\n rewards: BN[];\n} => {\n const totalPositionLiquidity = positionState.unlockedLiquidity\n .add(positionState.vestedLiquidity)\n .add(positionState.permanentLockedLiquidity);\n\n const feeAPerTokenStored = new BN(\n Buffer.from(poolState.feeAPerLiquidity).reverse()\n ).sub(new BN(Buffer.from(positionState.feeAPerTokenCheckpoint).reverse()));\n\n const feeBPerTokenStored = new BN(\n Buffer.from(poolState.feeBPerLiquidity).reverse()\n ).sub(new BN(Buffer.from(positionState.feeBPerTokenCheckpoint).reverse()));\n\n const feeA = totalPositionLiquidity\n .mul(feeAPerTokenStored)\n .shrn(LIQUIDITY_SCALE);\n const feeB = totalPositionLiquidity\n .mul(feeBPerTokenStored)\n .shrn(LIQUIDITY_SCALE);\n\n return {\n feeTokenA: positionState.feeAPending.add(feeA),\n feeTokenB: positionState.feeBPending.add(feeB),\n rewards:\n positionState.rewardInfos.length > 0\n ? positionState.rewardInfos.map((item) => item.rewardPendings)\n : [],\n };\n};\n","import { GetProgramAccountsFilter, PublicKey } from \"@solana/web3.js\";\n\nexport const positionByPoolFilter = (\n pool: PublicKey\n): GetProgramAccountsFilter => {\n return {\n memcmp: {\n bytes: pool.toBase58(),\n offset: 8,\n },\n };\n};\n\nexport const vestingByPositionFilter = (\n position: PublicKey\n): GetProgramAccountsFilter => {\n return {\n memcmp: {\n bytes: position.toBase58(),\n offset: 8,\n },\n };\n};\n","import { BN } from \"@coral-xyz/anchor\";\nimport Decimal from \"decimal.js\";\n\n// a = L * (1/s - 1/pb)\n// b = L * (s - pa)\n// b/a = (s - pa) / (1/s - 1/pb)\n// With: x = 1 / pb and y = b/a\n// => s ^ 2 + s * (-pa + x * y) - y = 0\n// s = [(pa - xy) + √((xy - pa)² + 4y)]/2\nexport function calculateInitSqrtPrice(\n tokenAAmount: BN,\n tokenBAmount: BN,\n minSqrtPrice: BN,\n maxSqrtPrice: BN\n): BN {\n if (tokenAAmount.isZero() || tokenBAmount.isZero()) {\n throw new Error(\"Amount cannot be zero\");\n }\n\n const amountADecimal = new Decimal(tokenAAmount.toString());\n const amountBDecimal = new Decimal(tokenBAmount.toString());\n const minSqrtPriceDecimal = new Decimal(minSqrtPrice.toString()).div(\n Decimal.pow(2, 64)\n );\n const maxSqrtPriceDecimal = new Decimal(maxSqrtPrice.toString()).div(\n Decimal.pow(2, 64)\n );\n\n const x = new Decimal(1).div(maxSqrtPriceDecimal);\n const y = amountBDecimal.div(amountADecimal);\n const xy = x.mul(y);\n\n const paMinusXY = minSqrtPriceDecimal.sub(xy);\n const xyMinusPa = xy.sub(minSqrtPriceDecimal);\n\n const fourY = new Decimal(4).mul(y);\n\n const discriminant = xyMinusPa.mul(xyMinusPa).add(fourY);\n\n // sqrt_discriminant = √discriminant\n const sqrtDiscriminant = discriminant.sqrt();\n const result = paMinusXY\n .add(sqrtDiscriminant)\n .div(new Decimal(2))\n .mul(Decimal.pow(2, 64));\n\n return new BN(result.floor().toFixed());\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport {\n calculateFee,\n getEpochFee,\n getTransferFeeConfig,\n MAX_FEE_BASIS_POINTS,\n Mint,\n TransferFee,\n} from \"@solana/spl-token\";\n\ninterface TransferFeeIncludedAmount {\n amount: BN;\n transferFee: BN;\n}\n\nfunction calculatePreFeeAmount(transferFee: TransferFee, postFeeAmount: BN) {\n if (postFeeAmount.isZero()) {\n return new BN(0);\n }\n\n if (transferFee.transferFeeBasisPoints === 0) {\n return postFeeAmount;\n }\n\n const maximumFee = new BN(transferFee.maximumFee.toString());\n\n if (transferFee.transferFeeBasisPoints === MAX_FEE_BASIS_POINTS) {\n return postFeeAmount.add(maximumFee);\n }\n\n const ONE_IN_BASIS_POINTS = new BN(MAX_FEE_BASIS_POINTS);\n const numerator = postFeeAmount.mul(ONE_IN_BASIS_POINTS);\n const denominator = ONE_IN_BASIS_POINTS.sub(\n new BN(transferFee.transferFeeBasisPoints)\n );\n\n const rawPreFeeAmount = numerator\n .add(denominator)\n .sub(new BN(1))\n .div(denominator);\n\n if (rawPreFeeAmount.sub(postFeeAmount).gte(maximumFee)) {\n return postFeeAmount.add(maximumFee);\n }\n\n return rawPreFeeAmount;\n}\n\nfunction calculateInverseFee(transferFee: TransferFee, postFeeAmount: BN) {\n const preFeeAmount = calculatePreFeeAmount(transferFee, postFeeAmount);\n return new BN(\n calculateFee(transferFee, BigInt(preFeeAmount.toString())).toString()\n );\n}\n\nexport function calculateTransferFeeIncludedAmount(\n transferFeeExcludedAmount: BN,\n mint: Mint,\n currentEpoch: number\n): TransferFeeIncludedAmount {\n if (transferFeeExcludedAmount.isZero()) {\n return {\n amount: new BN(0),\n transferFee: new BN(0),\n };\n }\n\n const transferFeeConfig = getTransferFeeConfig(mint);\n\n if (transferFeeConfig === null) {\n return {\n amount: transferFeeExcludedAmount,\n transferFee: new BN(0),\n };\n }\n\n const epochFee = getEpochFee(transferFeeConfig, BigInt(currentEpoch));\n\n const transferFee =\n epochFee.transferFeeBasisPoints == MAX_FEE_BASIS_POINTS\n ? new BN(epochFee.maximumFee.toString())\n : calculateInverseFee(epochFee, transferFeeExcludedAmount);\n\n const transferFeeIncludedAmount = transferFeeExcludedAmount.add(transferFee);\n\n return {\n amount: transferFeeIncludedAmount,\n transferFee,\n };\n}\n\ninterface TransferFeeExcludedAmount {\n amount: BN;\n transferFee: BN;\n}\n\nexport function calculateTransferFeeExcludedAmount(\n transferFeeIncludedAmount: BN,\n mint: Mint,\n currentEpoch: number\n): TransferFeeExcludedAmount {\n const transferFeeConfig = getTransferFeeConfig(mint);\n if (transferFeeConfig === null) {\n return {\n amount: transferFeeIncludedAmount,\n transferFee: new BN(0),\n };\n }\n\n const transferFeeIncludedAmountN = BigInt(\n transferFeeIncludedAmount.toString()\n );\n\n const transferFee = calculateFee(\n getEpochFee(transferFeeConfig, BigInt(currentEpoch)),\n transferFeeIncludedAmountN\n );\n\n const transferFeeExcludedAmount = new BN(\n (transferFeeIncludedAmountN - transferFee).toString()\n );\n\n return {\n amount: transferFeeExcludedAmount,\n transferFee: new BN(transferFee.toString()),\n };\n}\n","import { BN } from \"@coral-xyz/anchor\";\nimport { PositionState, VestingState } from \"../types\";\nimport { min } from \"bn.js\";\n\n/**\n * Checks if a vesting schedule is ready for full release\n * @param vestingData The vesting account data\n * @param currentPoint Current timestamp or slot\n * @returns True if the vesting is complete and all liquidity can be released\n */\nexport function isVestingComplete(\n vestingData: VestingState,\n currentPoint: BN\n): boolean {\n const cliffPoint = vestingData.cliffPoint;\n const periodFrequency = vestingData.periodFrequency;\n const numberOfPeriods = vestingData.numberOfPeriod;\n\n const endPoint = cliffPoint.add(periodFrequency.muln(numberOfPeriods));\n\n return currentPoint.gte(endPoint);\n}\n\n/**\n * Gets the total amount of liquidity in the vesting schedule\n * @param vestingData The vesting account data\n * @returns The total locked liquidity amount\n */\nexport function getTotalLockedLiquidity(vestingData: VestingState): BN {\n return vestingData.cliffUnlockLiquidity.add(\n vestingData.liquidityPerPeriod.mul(new BN(vestingData.numberOfPeriod))\n );\n}\n\n/**\n * Calculates the available liquidity to withdraw based on vesting schedule\n * @param vestingData The vesting account data\n * @param positionData The position account data\n * @param currentPoint Current timestamp or slot\n * @returns The amount of liquidity available to withdraw\n */\nexport function getAvailableVestingLiquidity(\n vestingData: VestingState,\n currentPoint: BN\n): BN {\n const {\n cliffPoint,\n periodFrequency,\n cliffUnlockLiquidity,\n liquidityPerPeriod,\n numberOfPeriod,\n totalReleasedLiquidity,\n } = vestingData;\n\n if (currentPoint.lt(cliffPoint)) {\n return new BN(0);\n }\n\n if (periodFrequency.isZero()) {\n return cliffUnlockLiquidity;\n }\n\n let passedPeriod = new BN(currentPoint).sub(cliffPoint).div(periodFrequency);\n\n passedPeriod = min(passedPeriod, new BN(numberOfPeriod));\n\n // total unlocked liquidity: cliff + (periods * per_period)\n const unlockedLiquidity = cliffUnlockLiquidity.add(\n passedPeriod.mul(liquidityPerPeriod)\n );\n const availableReleasingLiquidity = unlockedLiquidity.sub(\n totalReleasedLiquidity\n );\n\n return availableReleasingLiquidity;\n}\n","export * from \"./CpAmm\";\nexport * from \"./pda\";\nexport * from \"./types\";\nexport * from \"./constants\";\nexport * from \"./helpers\";\nexport * from \"./types\";\nexport * from \"./math\";\nexport type { CpAmm as CpAmmTypes } from \"./idl/cp_amm\";\nimport CpAmmIDL from \"./idl/cp_amm.json\";\nexport default CpAmmIDL;\n"]}