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

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 +4 -5
  2. package/dist/index.d.ts +4 -5
  3. package/dist/index.js +21 -14
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +21 -14
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +1 -4
  8. package/node_modules/@babel/runtime/LICENSE +0 -22
  9. package/node_modules/@babel/runtime/README.md +0 -19
  10. package/node_modules/@babel/runtime/helpers/AwaitValue.js +0 -4
  11. package/node_modules/@babel/runtime/helpers/OverloadYield.js +0 -4
  12. package/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +0 -9
  13. package/node_modules/@babel/runtime/helpers/applyDecs.js +0 -236
  14. package/node_modules/@babel/runtime/helpers/applyDecs2203.js +0 -184
  15. package/node_modules/@babel/runtime/helpers/applyDecs2203R.js +0 -191
  16. package/node_modules/@babel/runtime/helpers/applyDecs2301.js +0 -222
  17. package/node_modules/@babel/runtime/helpers/applyDecs2305.js +0 -133
  18. package/node_modules/@babel/runtime/helpers/applyDecs2311.js +0 -124
  19. package/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -6
  20. package/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -4
  21. package/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +0 -5
  22. package/node_modules/@babel/runtime/helpers/assertClassBrand.js +0 -5
  23. package/node_modules/@babel/runtime/helpers/assertThisInitialized.js +0 -5
  24. package/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +0 -24
  25. package/node_modules/@babel/runtime/helpers/asyncIterator.js +0 -45
  26. package/node_modules/@babel/runtime/helpers/asyncToGenerator.js +0 -26
  27. package/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +0 -5
  28. package/node_modules/@babel/runtime/helpers/callSuper.js +0 -7
  29. package/node_modules/@babel/runtime/helpers/checkInRHS.js +0 -6
  30. package/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +0 -4
  31. package/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +0 -10
  32. package/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +0 -4
  33. package/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +0 -7
  34. package/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -4
  35. package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +0 -5
  36. package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +0 -4
  37. package/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +0 -5
  38. package/node_modules/@babel/runtime/helpers/classNameTDZError.js +0 -4
  39. package/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +0 -7
  40. package/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +0 -7
  41. package/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +0 -5
  42. package/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +0 -5
  43. package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +0 -5
  44. package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +0 -5
  45. package/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +0 -7
  46. package/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +0 -5
  47. package/node_modules/@babel/runtime/helpers/classPrivateGetter.js +0 -5
  48. package/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +0 -5
  49. package/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +0 -5
  50. package/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +0 -4
  51. package/node_modules/@babel/runtime/helpers/classPrivateSetter.js +0 -5
  52. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +0 -7
  53. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +0 -7
  54. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +0 -7
  55. package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +0 -5
  56. package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +0 -4
  57. package/node_modules/@babel/runtime/helpers/construct.js +0 -10
  58. package/node_modules/@babel/runtime/helpers/createClass.js +0 -13
  59. package/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +0 -50
  60. package/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +0 -19
  61. package/node_modules/@babel/runtime/helpers/createSuper.js +0 -16
  62. package/node_modules/@babel/runtime/helpers/decorate.js +0 -250
  63. package/node_modules/@babel/runtime/helpers/defaults.js +0 -9
  64. package/node_modules/@babel/runtime/helpers/defineAccessor.js +0 -8
  65. package/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +0 -12
  66. package/node_modules/@babel/runtime/helpers/defineProperty.js +0 -10
  67. package/node_modules/@babel/runtime/helpers/dispose.js +0 -28
  68. package/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +0 -4
  69. package/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +0 -4
  70. package/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +0 -9
  71. package/node_modules/@babel/runtime/helpers/esm/applyDecs.js +0 -236
  72. package/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +0 -184
  73. package/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +0 -191
  74. package/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +0 -222
  75. package/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +0 -133
  76. package/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +0 -124
  77. package/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -6
  78. package/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -4
  79. package/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +0 -5
  80. package/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +0 -5
  81. package/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -5
  82. package/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +0 -24
  83. package/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +0 -45
  84. package/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +0 -26
  85. package/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +0 -5
  86. package/node_modules/@babel/runtime/helpers/esm/callSuper.js +0 -7
  87. package/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +0 -6
  88. package/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +0 -4
  89. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +0 -10
  90. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +0 -4
  91. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +0 -7
  92. package/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -4
  93. package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +0 -5
  94. package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +0 -4
  95. package/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +0 -5
  96. package/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +0 -4
  97. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +0 -7
  98. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +0 -7
  99. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +0 -5
  100. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +0 -5
  101. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +0 -5
  102. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +0 -5
  103. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +0 -7
  104. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +0 -5
  105. package/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +0 -5
  106. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +0 -5
  107. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +0 -5
  108. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +0 -4
  109. package/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +0 -5
  110. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +0 -7
  111. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +0 -7
  112. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +0 -7
  113. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +0 -5
  114. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +0 -4
  115. package/node_modules/@babel/runtime/helpers/esm/construct.js +0 -10
  116. package/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -13
  117. package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +0 -50
  118. package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +0 -19
  119. package/node_modules/@babel/runtime/helpers/esm/createSuper.js +0 -16
  120. package/node_modules/@babel/runtime/helpers/esm/decorate.js +0 -250
  121. package/node_modules/@babel/runtime/helpers/esm/defaults.js +0 -9
  122. package/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +0 -8
  123. package/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +0 -12
  124. package/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -10
  125. package/node_modules/@babel/runtime/helpers/esm/dispose.js +0 -28
  126. package/node_modules/@babel/runtime/helpers/esm/extends.js +0 -10
  127. package/node_modules/@babel/runtime/helpers/esm/get.js +0 -11
  128. package/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -6
  129. package/node_modules/@babel/runtime/helpers/esm/identity.js +0 -4
  130. package/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +0 -27
  131. package/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -14
  132. package/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +0 -5
  133. package/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +0 -9
  134. package/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +0 -4
  135. package/node_modules/@babel/runtime/helpers/esm/instanceof.js +0 -4
  136. package/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +0 -6
  137. package/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +0 -22
  138. package/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +0 -8
  139. package/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +0 -9
  140. package/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -4
  141. package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +0 -28
  142. package/node_modules/@babel/runtime/helpers/esm/jsx.js +0 -22
  143. package/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +0 -9
  144. package/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +0 -4
  145. package/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -4
  146. package/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +0 -4
  147. package/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +0 -4
  148. package/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +0 -4
  149. package/node_modules/@babel/runtime/helpers/esm/objectSpread.js +0 -14
  150. package/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +0 -23
  151. package/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +0 -13
  152. package/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -10
  153. package/node_modules/@babel/runtime/helpers/esm/package.json +0 -3
  154. package/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -8
  155. package/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +0 -4
  156. package/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +0 -272
  157. package/node_modules/@babel/runtime/helpers/esm/set.js +0 -22
  158. package/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +0 -12
  159. package/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -6
  160. package/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +0 -7
  161. package/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +0 -8
  162. package/node_modules/@babel/runtime/helpers/esm/superPropBase.js +0 -6
  163. package/node_modules/@babel/runtime/helpers/esm/superPropGet.js +0 -9
  164. package/node_modules/@babel/runtime/helpers/esm/superPropSet.js +0 -6
  165. package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +0 -8
  166. package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +0 -4
  167. package/node_modules/@babel/runtime/helpers/esm/tdz.js +0 -4
  168. package/node_modules/@babel/runtime/helpers/esm/temporalRef.js +0 -6
  169. package/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +0 -2
  170. package/node_modules/@babel/runtime/helpers/esm/toArray.js +0 -8
  171. package/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +0 -8
  172. package/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -12
  173. package/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -7
  174. package/node_modules/@babel/runtime/helpers/esm/toSetter.js +0 -10
  175. package/node_modules/@babel/runtime/helpers/esm/tsRewriteRelativeImportExtensions.js +0 -6
  176. package/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -10
  177. package/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -9
  178. package/node_modules/@babel/runtime/helpers/esm/using.js +0 -12
  179. package/node_modules/@babel/runtime/helpers/esm/usingCtx.js +0 -59
  180. package/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +0 -69
  181. package/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +0 -27
  182. package/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +0 -52
  183. package/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +0 -4
  184. package/node_modules/@babel/runtime/helpers/extends.js +0 -10
  185. package/node_modules/@babel/runtime/helpers/get.js +0 -11
  186. package/node_modules/@babel/runtime/helpers/getPrototypeOf.js +0 -6
  187. package/node_modules/@babel/runtime/helpers/identity.js +0 -4
  188. package/node_modules/@babel/runtime/helpers/importDeferProxy.js +0 -27
  189. package/node_modules/@babel/runtime/helpers/inherits.js +0 -14
  190. package/node_modules/@babel/runtime/helpers/inheritsLoose.js +0 -5
  191. package/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +0 -9
  192. package/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +0 -4
  193. package/node_modules/@babel/runtime/helpers/instanceof.js +0 -4
  194. package/node_modules/@babel/runtime/helpers/interopRequireDefault.js +0 -6
  195. package/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +0 -22
  196. package/node_modules/@babel/runtime/helpers/isNativeFunction.js +0 -8
  197. package/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +0 -9
  198. package/node_modules/@babel/runtime/helpers/iterableToArray.js +0 -4
  199. package/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -28
  200. package/node_modules/@babel/runtime/helpers/jsx.js +0 -22
  201. package/node_modules/@babel/runtime/helpers/maybeArrayLike.js +0 -9
  202. package/node_modules/@babel/runtime/helpers/newArrowCheck.js +0 -4
  203. package/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -4
  204. package/node_modules/@babel/runtime/helpers/nonIterableSpread.js +0 -4
  205. package/node_modules/@babel/runtime/helpers/nullishReceiverError.js +0 -4
  206. package/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +0 -4
  207. package/node_modules/@babel/runtime/helpers/objectSpread.js +0 -14
  208. package/node_modules/@babel/runtime/helpers/objectSpread2.js +0 -23
  209. package/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +0 -13
  210. package/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +0 -10
  211. package/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +0 -8
  212. package/node_modules/@babel/runtime/helpers/readOnlyError.js +0 -4
  213. package/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +0 -272
  214. package/node_modules/@babel/runtime/helpers/set.js +0 -22
  215. package/node_modules/@babel/runtime/helpers/setFunctionName.js +0 -12
  216. package/node_modules/@babel/runtime/helpers/setPrototypeOf.js +0 -6
  217. package/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +0 -7
  218. package/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -8
  219. package/node_modules/@babel/runtime/helpers/superPropBase.js +0 -6
  220. package/node_modules/@babel/runtime/helpers/superPropGet.js +0 -9
  221. package/node_modules/@babel/runtime/helpers/superPropSet.js +0 -6
  222. package/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +0 -8
  223. package/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +0 -4
  224. package/node_modules/@babel/runtime/helpers/tdz.js +0 -4
  225. package/node_modules/@babel/runtime/helpers/temporalRef.js +0 -6
  226. package/node_modules/@babel/runtime/helpers/temporalUndefined.js +0 -2
  227. package/node_modules/@babel/runtime/helpers/toArray.js +0 -8
  228. package/node_modules/@babel/runtime/helpers/toConsumableArray.js +0 -8
  229. package/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -12
  230. package/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -7
  231. package/node_modules/@babel/runtime/helpers/toSetter.js +0 -10
  232. package/node_modules/@babel/runtime/helpers/tsRewriteRelativeImportExtensions.js +0 -6
  233. package/node_modules/@babel/runtime/helpers/typeof.js +0 -10
  234. package/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -9
  235. package/node_modules/@babel/runtime/helpers/using.js +0 -12
  236. package/node_modules/@babel/runtime/helpers/usingCtx.js +0 -59
  237. package/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +0 -69
  238. package/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +0 -27
  239. package/node_modules/@babel/runtime/helpers/wrapRegExp.js +0 -52
  240. package/node_modules/@babel/runtime/helpers/writeOnlyError.js +0 -4
  241. package/node_modules/@babel/runtime/package.json +0 -1062
  242. package/node_modules/@babel/runtime/regenerator/index.js +0 -15
  243. package/node_modules/@coral-xyz/anchor/README.md +0 -10
  244. package/node_modules/@coral-xyz/anchor/dist/browser/index.js +0 -7201
  245. package/node_modules/@coral-xyz/anchor/dist/browser/index.js.map +0 -1
  246. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/accounts.d.ts +0 -27
  247. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/accounts.d.ts.map +0 -1
  248. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/event.d.ts +0 -14
  249. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/event.d.ts.map +0 -1
  250. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/idl.d.ts +0 -32
  251. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/idl.d.ts.map +0 -1
  252. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/index.d.ts +0 -33
  253. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/index.d.ts.map +0 -1
  254. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/instruction.d.ts +0 -42
  255. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/instruction.d.ts.map +0 -1
  256. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/types.d.ts +0 -16
  257. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/borsh/types.d.ts.map +0 -1
  258. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/index.d.ts +0 -43
  259. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/index.d.ts.map +0 -1
  260. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/accounts.d.ts +0 -12
  261. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/accounts.d.ts.map +0 -1
  262. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/events.d.ts +0 -9
  263. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/events.d.ts.map +0 -1
  264. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/index.d.ts +0 -17
  265. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/index.d.ts.map +0 -1
  266. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/instruction.d.ts +0 -8
  267. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/instruction.d.ts.map +0 -1
  268. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/types.d.ts +0 -8
  269. package/node_modules/@coral-xyz/anchor/dist/browser/src/coder/system/types.d.ts.map +0 -1
  270. package/node_modules/@coral-xyz/anchor/dist/browser/src/error.d.ts +0 -131
  271. package/node_modules/@coral-xyz/anchor/dist/browser/src/error.d.ts.map +0 -1
  272. package/node_modules/@coral-xyz/anchor/dist/browser/src/idl.d.ts +0 -215
  273. package/node_modules/@coral-xyz/anchor/dist/browser/src/idl.d.ts.map +0 -1
  274. package/node_modules/@coral-xyz/anchor/dist/browser/src/index.d.ts +0 -16
  275. package/node_modules/@coral-xyz/anchor/dist/browser/src/index.d.ts.map +0 -1
  276. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/index.d.ts +0 -7
  277. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/index.d.ts.map +0 -1
  278. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/system.d.ts +0 -390
  279. package/node_modules/@coral-xyz/anchor/dist/browser/src/native/system.d.ts.map +0 -1
  280. package/node_modules/@coral-xyz/anchor/dist/browser/src/nodewallet.d.ts +0 -14
  281. package/node_modules/@coral-xyz/anchor/dist/browser/src/nodewallet.d.ts.map +0 -1
  282. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/accounts-resolver.d.ts +0 -63
  283. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/accounts-resolver.d.ts.map +0 -1
  284. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/common.d.ts +0 -20
  285. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/common.d.ts.map +0 -1
  286. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/context.d.ts +0 -63
  287. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/context.d.ts.map +0 -1
  288. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/event.d.ts +0 -57
  289. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/event.d.ts.map +0 -1
  290. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/index.d.ts +0 -272
  291. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/index.d.ts.map +0 -1
  292. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/account.d.ts +0 -146
  293. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/account.d.ts.map +0 -1
  294. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/index.d.ts +0 -35
  295. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/index.d.ts.map +0 -1
  296. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/instruction.d.ts +0 -57
  297. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/instruction.d.ts.map +0 -1
  298. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/methods.d.ts +0 -206
  299. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/methods.d.ts.map +0 -1
  300. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/rpc.d.ts +0 -49
  301. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/rpc.d.ts.map +0 -1
  302. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/simulate.d.ts +0 -57
  303. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/simulate.d.ts.map +0 -1
  304. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/transaction.d.ts +0 -42
  305. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/transaction.d.ts.map +0 -1
  306. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/types.d.ts +0 -153
  307. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/types.d.ts.map +0 -1
  308. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/views.d.ts +0 -15
  309. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/namespace/views.d.ts.map +0 -1
  310. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/token-account-layout.d.ts +0 -2
  311. package/node_modules/@coral-xyz/anchor/dist/browser/src/program/token-account-layout.d.ts.map +0 -1
  312. package/node_modules/@coral-xyz/anchor/dist/browser/src/provider.d.ts +0 -104
  313. package/node_modules/@coral-xyz/anchor/dist/browser/src/provider.d.ts.map +0 -1
  314. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/base64.d.ts +0 -4
  315. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/base64.d.ts.map +0 -1
  316. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/bs58.d.ts +0 -3
  317. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/bs58.d.ts.map +0 -1
  318. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/hex.d.ts +0 -4
  319. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/hex.d.ts.map +0 -1
  320. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/index.d.ts +0 -5
  321. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/index.d.ts.map +0 -1
  322. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/utf8.d.ts +0 -3
  323. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/bytes/utf8.d.ts.map +0 -1
  324. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/common.d.ts +0 -22
  325. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/common.d.ts.map +0 -1
  326. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/features.d.ts +0 -3
  327. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/features.d.ts.map +0 -1
  328. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/index.d.ts +0 -8
  329. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/index.d.ts.map +0 -1
  330. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/pubkey.d.ts +0 -3
  331. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/pubkey.d.ts.map +0 -1
  332. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/registry.d.ts +0 -34
  333. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/registry.d.ts.map +0 -1
  334. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/rpc.d.ts +0 -21
  335. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/rpc.d.ts.map +0 -1
  336. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/sha256.d.ts +0 -2
  337. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/sha256.d.ts.map +0 -1
  338. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/token.d.ts +0 -8
  339. package/node_modules/@coral-xyz/anchor/dist/browser/src/utils/token.d.ts.map +0 -1
  340. package/node_modules/@coral-xyz/anchor/dist/browser/src/workspace.d.ts +0 -14
  341. package/node_modules/@coral-xyz/anchor/dist/browser/src/workspace.d.ts.map +0 -1
  342. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.d.ts +0 -27
  343. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.d.ts.map +0 -1
  344. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js +0 -103
  345. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.js.map +0 -1
  346. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.d.ts +0 -14
  347. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.d.ts.map +0 -1
  348. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js +0 -78
  349. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.js.map +0 -1
  350. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.d.ts +0 -32
  351. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.d.ts.map +0 -1
  352. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js +0 -419
  353. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/idl.js.map +0 -1
  354. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.d.ts +0 -33
  355. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.d.ts.map +0 -1
  356. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js +0 -27
  357. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.js.map +0 -1
  358. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.d.ts +0 -42
  359. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.d.ts.map +0 -1
  360. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js +0 -274
  361. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.js.map +0 -1
  362. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.d.ts +0 -16
  363. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.d.ts.map +0 -1
  364. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js +0 -42
  365. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.js.map +0 -1
  366. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.d.ts +0 -43
  367. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.d.ts.map +0 -1
  368. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js +0 -19
  369. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/index.js.map +0 -1
  370. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.d.ts +0 -12
  371. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.d.ts.map +0 -1
  372. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js +0 -107
  373. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.js.map +0 -1
  374. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.d.ts +0 -9
  375. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.d.ts.map +0 -1
  376. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js +0 -11
  377. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.js.map +0 -1
  378. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.d.ts +0 -17
  379. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.d.ts.map +0 -1
  380. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js +0 -20
  381. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.js.map +0 -1
  382. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.d.ts +0 -8
  383. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.d.ts.map +0 -1
  384. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js +0 -242
  385. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.js.map +0 -1
  386. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.d.ts +0 -8
  387. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.d.ts.map +0 -1
  388. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js +0 -14
  389. package/node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.js.map +0 -1
  390. package/node_modules/@coral-xyz/anchor/dist/cjs/error.d.ts +0 -131
  391. package/node_modules/@coral-xyz/anchor/dist/cjs/error.d.ts.map +0 -1
  392. package/node_modules/@coral-xyz/anchor/dist/cjs/error.js +0 -583
  393. package/node_modules/@coral-xyz/anchor/dist/cjs/error.js.map +0 -1
  394. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.d.ts +0 -215
  395. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.d.ts.map +0 -1
  396. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.js +0 -109
  397. package/node_modules/@coral-xyz/anchor/dist/cjs/idl.js.map +0 -1
  398. package/node_modules/@coral-xyz/anchor/dist/cjs/index.d.ts +0 -16
  399. package/node_modules/@coral-xyz/anchor/dist/cjs/index.d.ts.map +0 -1
  400. package/node_modules/@coral-xyz/anchor/dist/cjs/index.js +0 -50
  401. package/node_modules/@coral-xyz/anchor/dist/cjs/index.js.map +0 -1
  402. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.d.ts +0 -7
  403. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.d.ts.map +0 -1
  404. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.js +0 -11
  405. package/node_modules/@coral-xyz/anchor/dist/cjs/native/index.js.map +0 -1
  406. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.d.ts +0 -390
  407. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.d.ts.map +0 -1
  408. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.js +0 -394
  409. package/node_modules/@coral-xyz/anchor/dist/cjs/native/system.js.map +0 -1
  410. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.d.ts +0 -14
  411. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.d.ts.map +0 -1
  412. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js +0 -48
  413. package/node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.js.map +0 -1
  414. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.d.ts +0 -63
  415. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.d.ts.map +0 -1
  416. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js +0 -437
  417. package/node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.js.map +0 -1
  418. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.d.ts +0 -20
  419. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.d.ts.map +0 -1
  420. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.js +0 -49
  421. package/node_modules/@coral-xyz/anchor/dist/cjs/program/common.js.map +0 -1
  422. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.d.ts +0 -63
  423. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.d.ts.map +0 -1
  424. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.js +0 -16
  425. package/node_modules/@coral-xyz/anchor/dist/cjs/program/context.js.map +0 -1
  426. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.d.ts +0 -57
  427. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.d.ts.map +0 -1
  428. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.js +0 -207
  429. package/node_modules/@coral-xyz/anchor/dist/cjs/program/event.js.map +0 -1
  430. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.d.ts +0 -272
  431. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.d.ts.map +0 -1
  432. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.js +0 -177
  433. package/node_modules/@coral-xyz/anchor/dist/cjs/program/index.js.map +0 -1
  434. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.d.ts +0 -146
  435. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.d.ts.map +0 -1
  436. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js +0 -257
  437. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.js.map +0 -1
  438. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.d.ts +0 -35
  439. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.d.ts.map +0 -1
  440. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js +0 -63
  441. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.js.map +0 -1
  442. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.d.ts +0 -57
  443. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.d.ts.map +0 -1
  444. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js +0 -94
  445. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.js.map +0 -1
  446. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.d.ts +0 -206
  447. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.d.ts.map +0 -1
  448. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js +0 -309
  449. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.js.map +0 -1
  450. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.d.ts +0 -49
  451. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.d.ts.map +0 -1
  452. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js +0 -25
  453. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.js.map +0 -1
  454. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.d.ts +0 -57
  455. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.d.ts.map +0 -1
  456. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js +0 -42
  457. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.js.map +0 -1
  458. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.d.ts +0 -42
  459. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.d.ts.map +0 -1
  460. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js +0 -24
  461. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.js.map +0 -1
  462. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.d.ts +0 -153
  463. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.d.ts.map +0 -1
  464. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.js +0 -3
  465. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.js.map +0 -1
  466. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.d.ts +0 -15
  467. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.d.ts.map +0 -1
  468. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js +0 -30
  469. package/node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.js.map +0 -1
  470. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.d.ts +0 -2
  471. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.d.ts.map +0 -1
  472. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js +0 -136
  473. package/node_modules/@coral-xyz/anchor/dist/cjs/program/token-account-layout.js.map +0 -1
  474. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.d.ts +0 -104
  475. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.d.ts.map +0 -1
  476. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.js +0 -309
  477. package/node_modules/@coral-xyz/anchor/dist/cjs/provider.js.map +0 -1
  478. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.d.ts +0 -4
  479. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.d.ts.map +0 -1
  480. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js +0 -12
  481. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.js.map +0 -1
  482. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.d.ts +0 -3
  483. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.d.ts.map +0 -1
  484. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js +0 -15
  485. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.js.map +0 -1
  486. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.d.ts +0 -4
  487. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.d.ts.map +0 -1
  488. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js +0 -22
  489. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.js.map +0 -1
  490. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.d.ts +0 -5
  491. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.d.ts.map +0 -1
  492. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js +0 -31
  493. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.js.map +0 -1
  494. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.d.ts +0 -3
  495. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.d.ts.map +0 -1
  496. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js +0 -18
  497. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.js.map +0 -1
  498. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.d.ts +0 -22
  499. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.d.ts.map +0 -1
  500. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js +0 -32
  501. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/common.js.map +0 -1
  502. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.d.ts +0 -3
  503. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.d.ts.map +0 -1
  504. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js +0 -16
  505. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/features.js.map +0 -1
  506. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.d.ts +0 -8
  507. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.d.ts.map +0 -1
  508. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js +0 -34
  509. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/index.js.map +0 -1
  510. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.d.ts +0 -3
  511. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.d.ts.map +0 -1
  512. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js +0 -16
  513. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.js.map +0 -1
  514. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.d.ts +0 -34
  515. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.d.ts.map +0 -1
  516. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js +0 -88
  517. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.js.map +0 -1
  518. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.d.ts +0 -21
  519. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.d.ts.map +0 -1
  520. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js +0 -167
  521. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.js.map +0 -1
  522. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.d.ts +0 -2
  523. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.d.ts.map +0 -1
  524. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js +0 -8
  525. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.js.map +0 -1
  526. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.d.ts +0 -8
  527. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.d.ts.map +0 -1
  528. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js +0 -11
  529. package/node_modules/@coral-xyz/anchor/dist/cjs/utils/token.js.map +0 -1
  530. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.d.ts +0 -14
  531. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.d.ts.map +0 -1
  532. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.js +0 -98
  533. package/node_modules/@coral-xyz/anchor/dist/cjs/workspace.js.map +0 -1
  534. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.d.ts +0 -27
  535. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.d.ts.map +0 -1
  536. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.js +0 -96
  537. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/accounts.js.map +0 -1
  538. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.d.ts +0 -14
  539. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.d.ts.map +0 -1
  540. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.js +0 -51
  541. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/event.js.map +0 -1
  542. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.d.ts +0 -32
  543. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.d.ts.map +0 -1
  544. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.js +0 -392
  545. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/idl.js.map +0 -1
  546. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.d.ts +0 -33
  547. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.d.ts.map +0 -1
  548. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.js +0 -20
  549. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/index.js.map +0 -1
  550. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.d.ts +0 -42
  551. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.d.ts.map +0 -1
  552. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.js +0 -244
  553. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/instruction.js.map +0 -1
  554. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.d.ts +0 -16
  555. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.d.ts.map +0 -1
  556. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.js +0 -38
  557. package/node_modules/@coral-xyz/anchor/dist/esm/coder/borsh/types.js.map +0 -1
  558. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.d.ts +0 -43
  559. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.d.ts.map +0 -1
  560. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.js +0 -3
  561. package/node_modules/@coral-xyz/anchor/dist/esm/coder/index.js.map +0 -1
  562. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.d.ts +0 -12
  563. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.d.ts.map +0 -1
  564. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.js +0 -80
  565. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/accounts.js.map +0 -1
  566. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.d.ts +0 -9
  567. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.d.ts.map +0 -1
  568. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.js +0 -7
  569. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/events.js.map +0 -1
  570. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.d.ts +0 -17
  571. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.d.ts.map +0 -1
  572. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.js +0 -16
  573. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/index.js.map +0 -1
  574. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.d.ts +0 -8
  575. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.d.ts.map +0 -1
  576. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.js +0 -212
  577. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/instruction.js.map +0 -1
  578. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.d.ts +0 -8
  579. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.d.ts.map +0 -1
  580. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.js +0 -10
  581. package/node_modules/@coral-xyz/anchor/dist/esm/coder/system/types.js.map +0 -1
  582. package/node_modules/@coral-xyz/anchor/dist/esm/error.d.ts +0 -131
  583. package/node_modules/@coral-xyz/anchor/dist/esm/error.d.ts.map +0 -1
  584. package/node_modules/@coral-xyz/anchor/dist/esm/error.js +0 -552
  585. package/node_modules/@coral-xyz/anchor/dist/esm/error.js.map +0 -1
  586. package/node_modules/@coral-xyz/anchor/dist/esm/idl.d.ts +0 -215
  587. package/node_modules/@coral-xyz/anchor/dist/esm/idl.d.ts.map +0 -1
  588. package/node_modules/@coral-xyz/anchor/dist/esm/idl.js +0 -74
  589. package/node_modules/@coral-xyz/anchor/dist/esm/idl.js.map +0 -1
  590. package/node_modules/@coral-xyz/anchor/dist/esm/index.d.ts +0 -16
  591. package/node_modules/@coral-xyz/anchor/dist/esm/index.d.ts.map +0 -1
  592. package/node_modules/@coral-xyz/anchor/dist/esm/index.js +0 -14
  593. package/node_modules/@coral-xyz/anchor/dist/esm/index.js.map +0 -1
  594. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.d.ts +0 -7
  595. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.d.ts.map +0 -1
  596. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.js +0 -7
  597. package/node_modules/@coral-xyz/anchor/dist/esm/native/index.js.map +0 -1
  598. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.d.ts +0 -390
  599. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.d.ts.map +0 -1
  600. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.js +0 -389
  601. package/node_modules/@coral-xyz/anchor/dist/esm/native/system.js.map +0 -1
  602. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.d.ts +0 -14
  603. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.d.ts.map +0 -1
  604. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.js +0 -45
  605. package/node_modules/@coral-xyz/anchor/dist/esm/nodewallet.js.map +0 -1
  606. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.d.ts +0 -63
  607. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.d.ts.map +0 -1
  608. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.js +0 -429
  609. package/node_modules/@coral-xyz/anchor/dist/esm/program/accounts-resolver.js.map +0 -1
  610. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.d.ts +0 -20
  611. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.d.ts.map +0 -1
  612. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.js +0 -43
  613. package/node_modules/@coral-xyz/anchor/dist/esm/program/common.js.map +0 -1
  614. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.d.ts +0 -63
  615. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.d.ts.map +0 -1
  616. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.js +0 -13
  617. package/node_modules/@coral-xyz/anchor/dist/esm/program/context.js.map +0 -1
  618. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.d.ts +0 -57
  619. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.d.ts.map +0 -1
  620. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.js +0 -202
  621. package/node_modules/@coral-xyz/anchor/dist/esm/program/event.js.map +0 -1
  622. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.d.ts +0 -272
  623. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.d.ts.map +0 -1
  624. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.js +0 -156
  625. package/node_modules/@coral-xyz/anchor/dist/esm/program/index.js.map +0 -1
  626. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.d.ts +0 -146
  627. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.d.ts.map +0 -1
  628. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.js +0 -226
  629. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/account.js.map +0 -1
  630. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.d.ts +0 -35
  631. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.d.ts.map +0 -1
  632. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.js +0 -54
  633. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/index.js.map +0 -1
  634. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.d.ts +0 -57
  635. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.d.ts.map +0 -1
  636. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.js +0 -68
  637. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/instruction.js.map +0 -1
  638. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.d.ts +0 -206
  639. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.d.ts.map +0 -1
  640. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.js +0 -302
  641. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/methods.js.map +0 -1
  642. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.d.ts +0 -49
  643. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.d.ts.map +0 -1
  644. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.js +0 -22
  645. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/rpc.js.map +0 -1
  646. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.d.ts +0 -57
  647. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.d.ts.map +0 -1
  648. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.js +0 -39
  649. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/simulate.js.map +0 -1
  650. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.d.ts +0 -42
  651. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.d.ts.map +0 -1
  652. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.js +0 -21
  653. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/transaction.js.map +0 -1
  654. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.d.ts +0 -153
  655. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.d.ts.map +0 -1
  656. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.js +0 -2
  657. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/types.js.map +0 -1
  658. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.d.ts +0 -15
  659. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.d.ts.map +0 -1
  660. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.js +0 -27
  661. package/node_modules/@coral-xyz/anchor/dist/esm/program/namespace/views.js.map +0 -1
  662. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.d.ts +0 -2
  663. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.d.ts.map +0 -1
  664. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.js +0 -107
  665. package/node_modules/@coral-xyz/anchor/dist/esm/program/token-account-layout.js.map +0 -1
  666. package/node_modules/@coral-xyz/anchor/dist/esm/provider.d.ts +0 -104
  667. package/node_modules/@coral-xyz/anchor/dist/esm/provider.d.ts.map +0 -1
  668. package/node_modules/@coral-xyz/anchor/dist/esm/provider.js +0 -303
  669. package/node_modules/@coral-xyz/anchor/dist/esm/provider.js.map +0 -1
  670. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.d.ts +0 -4
  671. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.d.ts.map +0 -1
  672. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.js +0 -8
  673. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/base64.js.map +0 -1
  674. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.d.ts +0 -3
  675. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.d.ts.map +0 -1
  676. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.js +0 -8
  677. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/bs58.js.map +0 -1
  678. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.d.ts +0 -4
  679. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.d.ts.map +0 -1
  680. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.js +0 -18
  681. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/hex.js.map +0 -1
  682. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.d.ts +0 -5
  683. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.d.ts.map +0 -1
  684. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.js +0 -5
  685. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/index.js.map +0 -1
  686. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.d.ts +0 -3
  687. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.d.ts.map +0 -1
  688. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.js +0 -14
  689. package/node_modules/@coral-xyz/anchor/dist/esm/utils/bytes/utf8.js.map +0 -1
  690. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.d.ts +0 -22
  691. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.d.ts.map +0 -1
  692. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.js +0 -27
  693. package/node_modules/@coral-xyz/anchor/dist/esm/utils/common.js.map +0 -1
  694. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.d.ts +0 -3
  695. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.d.ts.map +0 -1
  696. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.js +0 -12
  697. package/node_modules/@coral-xyz/anchor/dist/esm/utils/features.js.map +0 -1
  698. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.d.ts +0 -8
  699. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.d.ts.map +0 -1
  700. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.js +0 -8
  701. package/node_modules/@coral-xyz/anchor/dist/esm/utils/index.js.map +0 -1
  702. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.d.ts +0 -3
  703. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.d.ts.map +0 -1
  704. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.js +0 -13
  705. package/node_modules/@coral-xyz/anchor/dist/esm/utils/pubkey.js.map +0 -1
  706. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.d.ts +0 -34
  707. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.d.ts.map +0 -1
  708. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.js +0 -57
  709. package/node_modules/@coral-xyz/anchor/dist/esm/utils/registry.js.map +0 -1
  710. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.d.ts +0 -21
  711. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.d.ts.map +0 -1
  712. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.js +0 -161
  713. package/node_modules/@coral-xyz/anchor/dist/esm/utils/rpc.js.map +0 -1
  714. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.d.ts +0 -2
  715. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.d.ts.map +0 -1
  716. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.js +0 -5
  717. package/node_modules/@coral-xyz/anchor/dist/esm/utils/sha256.js.map +0 -1
  718. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.d.ts +0 -8
  719. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.d.ts.map +0 -1
  720. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.js +0 -7
  721. package/node_modules/@coral-xyz/anchor/dist/esm/utils/token.js.map +0 -1
  722. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.d.ts +0 -14
  723. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.d.ts.map +0 -1
  724. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.js +0 -70
  725. package/node_modules/@coral-xyz/anchor/dist/esm/workspace.js.map +0 -1
  726. package/node_modules/@coral-xyz/anchor/dist/tsconfig.cjs.tsbuildinfo +0 -1
  727. package/node_modules/@coral-xyz/anchor/dist/tsconfig.tsbuildinfo +0 -1
  728. package/node_modules/@coral-xyz/anchor/package.json +0 -84
  729. package/node_modules/@coral-xyz/anchor/types/buffer-layout/index.d.ts +0 -88
  730. package/node_modules/@coral-xyz/anchor-errors/dist/index.d.ts +0 -157
  731. package/node_modules/@coral-xyz/anchor-errors/dist/index.d.ts.map +0 -1
  732. package/node_modules/@coral-xyz/anchor-errors/dist/index.js +0 -167
  733. package/node_modules/@coral-xyz/anchor-errors/dist/index.js.map +0 -1
  734. package/node_modules/@coral-xyz/anchor-errors/package.json +0 -32
  735. package/node_modules/@coral-xyz/borsh/dist/index.d.ts +0 -31
  736. package/node_modules/@coral-xyz/borsh/dist/index.d.ts.map +0 -1
  737. package/node_modules/@coral-xyz/borsh/dist/index.js +0 -222
  738. package/node_modules/@coral-xyz/borsh/dist/index.js.map +0 -1
  739. package/node_modules/@coral-xyz/borsh/package.json +0 -35
  740. package/node_modules/@noble/curves/LICENSE +0 -21
  741. package/node_modules/@noble/curves/README.md +0 -998
  742. package/node_modules/@noble/curves/_shortw_utils.d.ts +0 -16
  743. package/node_modules/@noble/curves/_shortw_utils.d.ts.map +0 -1
  744. package/node_modules/@noble/curves/_shortw_utils.js +0 -25
  745. package/node_modules/@noble/curves/_shortw_utils.js.map +0 -1
  746. package/node_modules/@noble/curves/abstract/bls.d.ts +0 -129
  747. package/node_modules/@noble/curves/abstract/bls.d.ts.map +0 -1
  748. package/node_modules/@noble/curves/abstract/bls.js +0 -355
  749. package/node_modules/@noble/curves/abstract/bls.js.map +0 -1
  750. package/node_modules/@noble/curves/abstract/curve.d.ts +0 -109
  751. package/node_modules/@noble/curves/abstract/curve.d.ts.map +0 -1
  752. package/node_modules/@noble/curves/abstract/curve.js +0 -392
  753. package/node_modules/@noble/curves/abstract/curve.js.map +0 -1
  754. package/node_modules/@noble/curves/abstract/edwards.d.ts +0 -92
  755. package/node_modules/@noble/curves/abstract/edwards.d.ts.map +0 -1
  756. package/node_modules/@noble/curves/abstract/edwards.js +0 -452
  757. package/node_modules/@noble/curves/abstract/edwards.js.map +0 -1
  758. package/node_modules/@noble/curves/abstract/fft.d.ts +0 -120
  759. package/node_modules/@noble/curves/abstract/fft.d.ts.map +0 -1
  760. package/node_modules/@noble/curves/abstract/fft.js +0 -439
  761. package/node_modules/@noble/curves/abstract/fft.js.map +0 -1
  762. package/node_modules/@noble/curves/abstract/hash-to-curve.d.ts +0 -84
  763. package/node_modules/@noble/curves/abstract/hash-to-curve.d.ts.map +0 -1
  764. package/node_modules/@noble/curves/abstract/hash-to-curve.js +0 -196
  765. package/node_modules/@noble/curves/abstract/hash-to-curve.js.map +0 -1
  766. package/node_modules/@noble/curves/abstract/modular.d.ts +0 -153
  767. package/node_modules/@noble/curves/abstract/modular.d.ts.map +0 -1
  768. package/node_modules/@noble/curves/abstract/modular.js +0 -481
  769. package/node_modules/@noble/curves/abstract/modular.js.map +0 -1
  770. package/node_modules/@noble/curves/abstract/montgomery.d.ts +0 -21
  771. package/node_modules/@noble/curves/abstract/montgomery.d.ts.map +0 -1
  772. package/node_modules/@noble/curves/abstract/montgomery.js +0 -140
  773. package/node_modules/@noble/curves/abstract/montgomery.js.map +0 -1
  774. package/node_modules/@noble/curves/abstract/poseidon.d.ts +0 -76
  775. package/node_modules/@noble/curves/abstract/poseidon.d.ts.map +0 -1
  776. package/node_modules/@noble/curves/abstract/poseidon.js +0 -300
  777. package/node_modules/@noble/curves/abstract/poseidon.js.map +0 -1
  778. package/node_modules/@noble/curves/abstract/tower.d.ts +0 -119
  779. package/node_modules/@noble/curves/abstract/tower.d.ts.map +0 -1
  780. package/node_modules/@noble/curves/abstract/tower.js +0 -500
  781. package/node_modules/@noble/curves/abstract/tower.js.map +0 -1
  782. package/node_modules/@noble/curves/abstract/utils.d.ts +0 -119
  783. package/node_modules/@noble/curves/abstract/utils.d.ts.map +0 -1
  784. package/node_modules/@noble/curves/abstract/utils.js +0 -377
  785. package/node_modules/@noble/curves/abstract/utils.js.map +0 -1
  786. package/node_modules/@noble/curves/abstract/weierstrass.d.ts +0 -260
  787. package/node_modules/@noble/curves/abstract/weierstrass.d.ts.map +0 -1
  788. package/node_modules/@noble/curves/abstract/weierstrass.js +0 -1226
  789. package/node_modules/@noble/curves/abstract/weierstrass.js.map +0 -1
  790. package/node_modules/@noble/curves/bls12-381.d.ts +0 -14
  791. package/node_modules/@noble/curves/bls12-381.d.ts.map +0 -1
  792. package/node_modules/@noble/curves/bls12-381.js +0 -703
  793. package/node_modules/@noble/curves/bls12-381.js.map +0 -1
  794. package/node_modules/@noble/curves/bn254.d.ts +0 -16
  795. package/node_modules/@noble/curves/bn254.d.ts.map +0 -1
  796. package/node_modules/@noble/curves/bn254.js +0 -238
  797. package/node_modules/@noble/curves/bn254.js.map +0 -1
  798. package/node_modules/@noble/curves/ed25519.d.ts +0 -117
  799. package/node_modules/@noble/curves/ed25519.d.ts.map +0 -1
  800. package/node_modules/@noble/curves/ed25519.js +0 -483
  801. package/node_modules/@noble/curves/ed25519.js.map +0 -1
  802. package/node_modules/@noble/curves/ed448.d.ts +0 -98
  803. package/node_modules/@noble/curves/ed448.d.ts.map +0 -1
  804. package/node_modules/@noble/curves/ed448.js +0 -438
  805. package/node_modules/@noble/curves/ed448.js.map +0 -1
  806. package/node_modules/@noble/curves/esm/_shortw_utils.d.ts +0 -16
  807. package/node_modules/@noble/curves/esm/_shortw_utils.d.ts.map +0 -1
  808. package/node_modules/@noble/curves/esm/_shortw_utils.js +0 -21
  809. package/node_modules/@noble/curves/esm/_shortw_utils.js.map +0 -1
  810. package/node_modules/@noble/curves/esm/abstract/bls.d.ts +0 -129
  811. package/node_modules/@noble/curves/esm/abstract/bls.d.ts.map +0 -1
  812. package/node_modules/@noble/curves/esm/abstract/bls.js +0 -352
  813. package/node_modules/@noble/curves/esm/abstract/bls.js.map +0 -1
  814. package/node_modules/@noble/curves/esm/abstract/curve.d.ts +0 -109
  815. package/node_modules/@noble/curves/esm/abstract/curve.d.ts.map +0 -1
  816. package/node_modules/@noble/curves/esm/abstract/curve.js +0 -386
  817. package/node_modules/@noble/curves/esm/abstract/curve.js.map +0 -1
  818. package/node_modules/@noble/curves/esm/abstract/edwards.d.ts +0 -92
  819. package/node_modules/@noble/curves/esm/abstract/edwards.d.ts.map +0 -1
  820. package/node_modules/@noble/curves/esm/abstract/edwards.js +0 -449
  821. package/node_modules/@noble/curves/esm/abstract/edwards.js.map +0 -1
  822. package/node_modules/@noble/curves/esm/abstract/fft.d.ts +0 -120
  823. package/node_modules/@noble/curves/esm/abstract/fft.d.ts.map +0 -1
  824. package/node_modules/@noble/curves/esm/abstract/fft.js +0 -426
  825. package/node_modules/@noble/curves/esm/abstract/fft.js.map +0 -1
  826. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts +0 -84
  827. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts.map +0 -1
  828. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.js +0 -189
  829. package/node_modules/@noble/curves/esm/abstract/hash-to-curve.js.map +0 -1
  830. package/node_modules/@noble/curves/esm/abstract/modular.d.ts +0 -153
  831. package/node_modules/@noble/curves/esm/abstract/modular.d.ts.map +0 -1
  832. package/node_modules/@noble/curves/esm/abstract/modular.js +0 -457
  833. package/node_modules/@noble/curves/esm/abstract/modular.js.map +0 -1
  834. package/node_modules/@noble/curves/esm/abstract/montgomery.d.ts +0 -21
  835. package/node_modules/@noble/curves/esm/abstract/montgomery.d.ts.map +0 -1
  836. package/node_modules/@noble/curves/esm/abstract/montgomery.js +0 -137
  837. package/node_modules/@noble/curves/esm/abstract/montgomery.js.map +0 -1
  838. package/node_modules/@noble/curves/esm/abstract/poseidon.d.ts +0 -76
  839. package/node_modules/@noble/curves/esm/abstract/poseidon.d.ts.map +0 -1
  840. package/node_modules/@noble/curves/esm/abstract/poseidon.js +0 -291
  841. package/node_modules/@noble/curves/esm/abstract/poseidon.js.map +0 -1
  842. package/node_modules/@noble/curves/esm/abstract/tower.d.ts +0 -119
  843. package/node_modules/@noble/curves/esm/abstract/tower.d.ts.map +0 -1
  844. package/node_modules/@noble/curves/esm/abstract/tower.js +0 -496
  845. package/node_modules/@noble/curves/esm/abstract/tower.js.map +0 -1
  846. package/node_modules/@noble/curves/esm/abstract/utils.d.ts +0 -119
  847. package/node_modules/@noble/curves/esm/abstract/utils.d.ts.map +0 -1
  848. package/node_modules/@noble/curves/esm/abstract/utils.js +0 -348
  849. package/node_modules/@noble/curves/esm/abstract/utils.js.map +0 -1
  850. package/node_modules/@noble/curves/esm/abstract/weierstrass.d.ts +0 -260
  851. package/node_modules/@noble/curves/esm/abstract/weierstrass.d.ts.map +0 -1
  852. package/node_modules/@noble/curves/esm/abstract/weierstrass.js +0 -1218
  853. package/node_modules/@noble/curves/esm/abstract/weierstrass.js.map +0 -1
  854. package/node_modules/@noble/curves/esm/bls12-381.d.ts +0 -14
  855. package/node_modules/@noble/curves/esm/bls12-381.d.ts.map +0 -1
  856. package/node_modules/@noble/curves/esm/bls12-381.js +0 -700
  857. package/node_modules/@noble/curves/esm/bls12-381.js.map +0 -1
  858. package/node_modules/@noble/curves/esm/bn254.d.ts +0 -16
  859. package/node_modules/@noble/curves/esm/bn254.d.ts.map +0 -1
  860. package/node_modules/@noble/curves/esm/bn254.js +0 -234
  861. package/node_modules/@noble/curves/esm/bn254.js.map +0 -1
  862. package/node_modules/@noble/curves/esm/ed25519.d.ts +0 -117
  863. package/node_modules/@noble/curves/esm/ed25519.d.ts.map +0 -1
  864. package/node_modules/@noble/curves/esm/ed25519.js +0 -477
  865. package/node_modules/@noble/curves/esm/ed25519.js.map +0 -1
  866. package/node_modules/@noble/curves/esm/ed448.d.ts +0 -98
  867. package/node_modules/@noble/curves/esm/ed448.d.ts.map +0 -1
  868. package/node_modules/@noble/curves/esm/ed448.js +0 -433
  869. package/node_modules/@noble/curves/esm/ed448.js.map +0 -1
  870. package/node_modules/@noble/curves/esm/index.d.ts +0 -2
  871. package/node_modules/@noble/curves/esm/index.d.ts.map +0 -1
  872. package/node_modules/@noble/curves/esm/index.js +0 -19
  873. package/node_modules/@noble/curves/esm/index.js.map +0 -1
  874. package/node_modules/@noble/curves/esm/jubjub.d.ts +0 -12
  875. package/node_modules/@noble/curves/esm/jubjub.d.ts.map +0 -1
  876. package/node_modules/@noble/curves/esm/jubjub.js +0 -12
  877. package/node_modules/@noble/curves/esm/jubjub.js.map +0 -1
  878. package/node_modules/@noble/curves/esm/misc.d.ts +0 -21
  879. package/node_modules/@noble/curves/esm/misc.d.ts.map +0 -1
  880. package/node_modules/@noble/curves/esm/misc.js +0 -107
  881. package/node_modules/@noble/curves/esm/misc.js.map +0 -1
  882. package/node_modules/@noble/curves/esm/nist.d.ts +0 -30
  883. package/node_modules/@noble/curves/esm/nist.d.ts.map +0 -1
  884. package/node_modules/@noble/curves/esm/nist.js +0 -121
  885. package/node_modules/@noble/curves/esm/nist.js.map +0 -1
  886. package/node_modules/@noble/curves/esm/p256.d.ts +0 -12
  887. package/node_modules/@noble/curves/esm/p256.d.ts.map +0 -1
  888. package/node_modules/@noble/curves/esm/p256.js +0 -12
  889. package/node_modules/@noble/curves/esm/p256.js.map +0 -1
  890. package/node_modules/@noble/curves/esm/p384.d.ts +0 -13
  891. package/node_modules/@noble/curves/esm/p384.d.ts.map +0 -1
  892. package/node_modules/@noble/curves/esm/p384.js +0 -13
  893. package/node_modules/@noble/curves/esm/p384.js.map +0 -1
  894. package/node_modules/@noble/curves/esm/p521.d.ts +0 -12
  895. package/node_modules/@noble/curves/esm/p521.d.ts.map +0 -1
  896. package/node_modules/@noble/curves/esm/p521.js +0 -12
  897. package/node_modules/@noble/curves/esm/p521.js.map +0 -1
  898. package/node_modules/@noble/curves/esm/package.json +0 -4
  899. package/node_modules/@noble/curves/esm/pasta.d.ts +0 -10
  900. package/node_modules/@noble/curves/esm/pasta.d.ts.map +0 -1
  901. package/node_modules/@noble/curves/esm/pasta.js +0 -10
  902. package/node_modules/@noble/curves/esm/pasta.js.map +0 -1
  903. package/node_modules/@noble/curves/esm/secp256k1.d.ts +0 -76
  904. package/node_modules/@noble/curves/esm/secp256k1.d.ts.map +0 -1
  905. package/node_modules/@noble/curves/esm/secp256k1.js +0 -287
  906. package/node_modules/@noble/curves/esm/secp256k1.js.map +0 -1
  907. package/node_modules/@noble/curves/index.d.ts +0 -1
  908. package/node_modules/@noble/curves/index.d.ts.map +0 -1
  909. package/node_modules/@noble/curves/index.js +0 -19
  910. package/node_modules/@noble/curves/index.js.map +0 -1
  911. package/node_modules/@noble/curves/jubjub.d.ts +0 -12
  912. package/node_modules/@noble/curves/jubjub.d.ts.map +0 -1
  913. package/node_modules/@noble/curves/jubjub.js +0 -15
  914. package/node_modules/@noble/curves/jubjub.js.map +0 -1
  915. package/node_modules/@noble/curves/misc.d.ts +0 -21
  916. package/node_modules/@noble/curves/misc.d.ts.map +0 -1
  917. package/node_modules/@noble/curves/misc.js +0 -112
  918. package/node_modules/@noble/curves/misc.js.map +0 -1
  919. package/node_modules/@noble/curves/nist.d.ts +0 -30
  920. package/node_modules/@noble/curves/nist.d.ts.map +0 -1
  921. package/node_modules/@noble/curves/nist.js +0 -124
  922. package/node_modules/@noble/curves/nist.js.map +0 -1
  923. package/node_modules/@noble/curves/p256.d.ts +0 -12
  924. package/node_modules/@noble/curves/p256.d.ts.map +0 -1
  925. package/node_modules/@noble/curves/p256.js +0 -9
  926. package/node_modules/@noble/curves/p256.js.map +0 -1
  927. package/node_modules/@noble/curves/p384.d.ts +0 -13
  928. package/node_modules/@noble/curves/p384.d.ts.map +0 -1
  929. package/node_modules/@noble/curves/p384.js +0 -10
  930. package/node_modules/@noble/curves/p384.js.map +0 -1
  931. package/node_modules/@noble/curves/p521.d.ts +0 -12
  932. package/node_modules/@noble/curves/p521.d.ts.map +0 -1
  933. package/node_modules/@noble/curves/p521.js +0 -9
  934. package/node_modules/@noble/curves/p521.js.map +0 -1
  935. package/node_modules/@noble/curves/package.json +0 -284
  936. package/node_modules/@noble/curves/pasta.d.ts +0 -10
  937. package/node_modules/@noble/curves/pasta.d.ts.map +0 -1
  938. package/node_modules/@noble/curves/pasta.js +0 -13
  939. package/node_modules/@noble/curves/pasta.js.map +0 -1
  940. package/node_modules/@noble/curves/secp256k1.d.ts +0 -76
  941. package/node_modules/@noble/curves/secp256k1.d.ts.map +0 -1
  942. package/node_modules/@noble/curves/secp256k1.js +0 -290
  943. package/node_modules/@noble/curves/secp256k1.js.map +0 -1
  944. package/node_modules/@noble/curves/src/_shortw_utils.ts +0 -30
  945. package/node_modules/@noble/curves/src/abstract/bls.ts +0 -570
  946. package/node_modules/@noble/curves/src/abstract/curve.ts +0 -471
  947. package/node_modules/@noble/curves/src/abstract/edwards.ts +0 -569
  948. package/node_modules/@noble/curves/src/abstract/fft.ts +0 -508
  949. package/node_modules/@noble/curves/src/abstract/hash-to-curve.ts +0 -265
  950. package/node_modules/@noble/curves/src/abstract/modular.ts +0 -533
  951. package/node_modules/@noble/curves/src/abstract/montgomery.ts +0 -165
  952. package/node_modules/@noble/curves/src/abstract/poseidon.ts +0 -331
  953. package/node_modules/@noble/curves/src/abstract/tower.ts +0 -650
  954. package/node_modules/@noble/curves/src/abstract/utils.ts +0 -382
  955. package/node_modules/@noble/curves/src/abstract/weierstrass.ts +0 -1437
  956. package/node_modules/@noble/curves/src/bls12-381.ts +0 -754
  957. package/node_modules/@noble/curves/src/bn254.ts +0 -262
  958. package/node_modules/@noble/curves/src/ed25519.ts +0 -552
  959. package/node_modules/@noble/curves/src/ed448.ts +0 -524
  960. package/node_modules/@noble/curves/src/index.ts +0 -17
  961. package/node_modules/@noble/curves/src/jubjub.ts +0 -12
  962. package/node_modules/@noble/curves/src/misc.ts +0 -123
  963. package/node_modules/@noble/curves/src/nist.ts +0 -155
  964. package/node_modules/@noble/curves/src/p256.ts +0 -11
  965. package/node_modules/@noble/curves/src/p384.ts +0 -13
  966. package/node_modules/@noble/curves/src/p521.ts +0 -11
  967. package/node_modules/@noble/curves/src/package.json +0 -3
  968. package/node_modules/@noble/curves/src/pasta.ts +0 -9
  969. package/node_modules/@noble/curves/src/secp256k1.ts +0 -333
  970. package/node_modules/@noble/hashes/LICENSE +0 -21
  971. package/node_modules/@noble/hashes/README.md +0 -521
  972. package/node_modules/@noble/hashes/_assert.d.ts +0 -17
  973. package/node_modules/@noble/hashes/_assert.d.ts.map +0 -1
  974. package/node_modules/@noble/hashes/_assert.js +0 -18
  975. package/node_modules/@noble/hashes/_assert.js.map +0 -1
  976. package/node_modules/@noble/hashes/_blake.d.ts +0 -14
  977. package/node_modules/@noble/hashes/_blake.d.ts.map +0 -1
  978. package/node_modules/@noble/hashes/_blake.js +0 -50
  979. package/node_modules/@noble/hashes/_blake.js.map +0 -1
  980. package/node_modules/@noble/hashes/_md.d.ts +0 -51
  981. package/node_modules/@noble/hashes/_md.d.ts.map +0 -1
  982. package/node_modules/@noble/hashes/_md.js +0 -162
  983. package/node_modules/@noble/hashes/_md.js.map +0 -1
  984. package/node_modules/@noble/hashes/_u64.d.ts +0 -55
  985. package/node_modules/@noble/hashes/_u64.d.ts.map +0 -1
  986. package/node_modules/@noble/hashes/_u64.js +0 -90
  987. package/node_modules/@noble/hashes/_u64.js.map +0 -1
  988. package/node_modules/@noble/hashes/argon2.d.ts +0 -32
  989. package/node_modules/@noble/hashes/argon2.d.ts.map +0 -1
  990. package/node_modules/@noble/hashes/argon2.js +0 -401
  991. package/node_modules/@noble/hashes/argon2.js.map +0 -1
  992. package/node_modules/@noble/hashes/blake1.d.ts +0 -106
  993. package/node_modules/@noble/hashes/blake1.d.ts.map +0 -1
  994. package/node_modules/@noble/hashes/blake1.js +0 -459
  995. package/node_modules/@noble/hashes/blake1.js.map +0 -1
  996. package/node_modules/@noble/hashes/blake2.d.ts +0 -116
  997. package/node_modules/@noble/hashes/blake2.d.ts.map +0 -1
  998. package/node_modules/@noble/hashes/blake2.js +0 -420
  999. package/node_modules/@noble/hashes/blake2.js.map +0 -1
  1000. package/node_modules/@noble/hashes/blake2b.d.ts +0 -11
  1001. package/node_modules/@noble/hashes/blake2b.d.ts.map +0 -1
  1002. package/node_modules/@noble/hashes/blake2b.js +0 -14
  1003. package/node_modules/@noble/hashes/blake2b.js.map +0 -1
  1004. package/node_modules/@noble/hashes/blake2s.d.ts +0 -20
  1005. package/node_modules/@noble/hashes/blake2s.d.ts.map +0 -1
  1006. package/node_modules/@noble/hashes/blake2s.js +0 -24
  1007. package/node_modules/@noble/hashes/blake2s.js.map +0 -1
  1008. package/node_modules/@noble/hashes/blake3.d.ts +0 -54
  1009. package/node_modules/@noble/hashes/blake3.d.ts.map +0 -1
  1010. package/node_modules/@noble/hashes/blake3.js +0 -255
  1011. package/node_modules/@noble/hashes/blake3.js.map +0 -1
  1012. package/node_modules/@noble/hashes/crypto.d.ts +0 -2
  1013. package/node_modules/@noble/hashes/crypto.d.ts.map +0 -1
  1014. package/node_modules/@noble/hashes/crypto.js +0 -5
  1015. package/node_modules/@noble/hashes/crypto.js.map +0 -1
  1016. package/node_modules/@noble/hashes/cryptoNode.d.ts +0 -2
  1017. package/node_modules/@noble/hashes/cryptoNode.d.ts.map +0 -1
  1018. package/node_modules/@noble/hashes/cryptoNode.js +0 -18
  1019. package/node_modules/@noble/hashes/cryptoNode.js.map +0 -1
  1020. package/node_modules/@noble/hashes/eskdf.d.ts +0 -47
  1021. package/node_modules/@noble/hashes/eskdf.d.ts.map +0 -1
  1022. package/node_modules/@noble/hashes/eskdf.js +0 -166
  1023. package/node_modules/@noble/hashes/eskdf.js.map +0 -1
  1024. package/node_modules/@noble/hashes/esm/_assert.d.ts +0 -17
  1025. package/node_modules/@noble/hashes/esm/_assert.d.ts.map +0 -1
  1026. package/node_modules/@noble/hashes/esm/_assert.js +0 -15
  1027. package/node_modules/@noble/hashes/esm/_assert.js.map +0 -1
  1028. package/node_modules/@noble/hashes/esm/_blake.d.ts +0 -14
  1029. package/node_modules/@noble/hashes/esm/_blake.d.ts.map +0 -1
  1030. package/node_modules/@noble/hashes/esm/_blake.js +0 -45
  1031. package/node_modules/@noble/hashes/esm/_blake.js.map +0 -1
  1032. package/node_modules/@noble/hashes/esm/_md.d.ts +0 -51
  1033. package/node_modules/@noble/hashes/esm/_md.d.ts.map +0 -1
  1034. package/node_modules/@noble/hashes/esm/_md.js +0 -155
  1035. package/node_modules/@noble/hashes/esm/_md.js.map +0 -1
  1036. package/node_modules/@noble/hashes/esm/_u64.d.ts +0 -55
  1037. package/node_modules/@noble/hashes/esm/_u64.d.ts.map +0 -1
  1038. package/node_modules/@noble/hashes/esm/_u64.js +0 -67
  1039. package/node_modules/@noble/hashes/esm/_u64.js.map +0 -1
  1040. package/node_modules/@noble/hashes/esm/argon2.d.ts +0 -32
  1041. package/node_modules/@noble/hashes/esm/argon2.d.ts.map +0 -1
  1042. package/node_modules/@noble/hashes/esm/argon2.js +0 -392
  1043. package/node_modules/@noble/hashes/esm/argon2.js.map +0 -1
  1044. package/node_modules/@noble/hashes/esm/blake1.d.ts +0 -106
  1045. package/node_modules/@noble/hashes/esm/blake1.d.ts.map +0 -1
  1046. package/node_modules/@noble/hashes/esm/blake1.js +0 -452
  1047. package/node_modules/@noble/hashes/esm/blake1.js.map +0 -1
  1048. package/node_modules/@noble/hashes/esm/blake2.d.ts +0 -116
  1049. package/node_modules/@noble/hashes/esm/blake2.d.ts.map +0 -1
  1050. package/node_modules/@noble/hashes/esm/blake2.js +0 -413
  1051. package/node_modules/@noble/hashes/esm/blake2.js.map +0 -1
  1052. package/node_modules/@noble/hashes/esm/blake2b.d.ts +0 -11
  1053. package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +0 -1
  1054. package/node_modules/@noble/hashes/esm/blake2b.js +0 -11
  1055. package/node_modules/@noble/hashes/esm/blake2b.js.map +0 -1
  1056. package/node_modules/@noble/hashes/esm/blake2s.d.ts +0 -20
  1057. package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +0 -1
  1058. package/node_modules/@noble/hashes/esm/blake2s.js +0 -21
  1059. package/node_modules/@noble/hashes/esm/blake2s.js.map +0 -1
  1060. package/node_modules/@noble/hashes/esm/blake3.d.ts +0 -54
  1061. package/node_modules/@noble/hashes/esm/blake3.d.ts.map +0 -1
  1062. package/node_modules/@noble/hashes/esm/blake3.js +0 -251
  1063. package/node_modules/@noble/hashes/esm/blake3.js.map +0 -1
  1064. package/node_modules/@noble/hashes/esm/crypto.d.ts +0 -2
  1065. package/node_modules/@noble/hashes/esm/crypto.d.ts.map +0 -1
  1066. package/node_modules/@noble/hashes/esm/crypto.js +0 -2
  1067. package/node_modules/@noble/hashes/esm/crypto.js.map +0 -1
  1068. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +0 -2
  1069. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +0 -1
  1070. package/node_modules/@noble/hashes/esm/cryptoNode.js +0 -15
  1071. package/node_modules/@noble/hashes/esm/cryptoNode.js.map +0 -1
  1072. package/node_modules/@noble/hashes/esm/eskdf.d.ts +0 -47
  1073. package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +0 -1
  1074. package/node_modules/@noble/hashes/esm/eskdf.js +0 -160
  1075. package/node_modules/@noble/hashes/esm/eskdf.js.map +0 -1
  1076. package/node_modules/@noble/hashes/esm/hkdf.d.ts +0 -36
  1077. package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +0 -1
  1078. package/node_modules/@noble/hashes/esm/hkdf.js +0 -82
  1079. package/node_modules/@noble/hashes/esm/hkdf.js.map +0 -1
  1080. package/node_modules/@noble/hashes/esm/hmac.d.ts +0 -35
  1081. package/node_modules/@noble/hashes/esm/hmac.d.ts.map +0 -1
  1082. package/node_modules/@noble/hashes/esm/hmac.js +0 -86
  1083. package/node_modules/@noble/hashes/esm/hmac.js.map +0 -1
  1084. package/node_modules/@noble/hashes/esm/index.d.ts +0 -2
  1085. package/node_modules/@noble/hashes/esm/index.d.ts.map +0 -1
  1086. package/node_modules/@noble/hashes/esm/index.js +0 -33
  1087. package/node_modules/@noble/hashes/esm/index.js.map +0 -1
  1088. package/node_modules/@noble/hashes/esm/legacy.d.ts +0 -71
  1089. package/node_modules/@noble/hashes/esm/legacy.d.ts.map +0 -1
  1090. package/node_modules/@noble/hashes/esm/legacy.js +0 -281
  1091. package/node_modules/@noble/hashes/esm/legacy.js.map +0 -1
  1092. package/node_modules/@noble/hashes/esm/package.json +0 -10
  1093. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +0 -23
  1094. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +0 -1
  1095. package/node_modules/@noble/hashes/esm/pbkdf2.js +0 -97
  1096. package/node_modules/@noble/hashes/esm/pbkdf2.js.map +0 -1
  1097. package/node_modules/@noble/hashes/esm/ripemd160.d.ts +0 -13
  1098. package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +0 -1
  1099. package/node_modules/@noble/hashes/esm/ripemd160.js +0 -13
  1100. package/node_modules/@noble/hashes/esm/ripemd160.js.map +0 -1
  1101. package/node_modules/@noble/hashes/esm/scrypt.d.ts +0 -34
  1102. package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +0 -1
  1103. package/node_modules/@noble/hashes/esm/scrypt.js +0 -228
  1104. package/node_modules/@noble/hashes/esm/scrypt.js.map +0 -1
  1105. package/node_modules/@noble/hashes/esm/sha1.d.ts +0 -11
  1106. package/node_modules/@noble/hashes/esm/sha1.d.ts.map +0 -1
  1107. package/node_modules/@noble/hashes/esm/sha1.js +0 -11
  1108. package/node_modules/@noble/hashes/esm/sha1.js.map +0 -1
  1109. package/node_modules/@noble/hashes/esm/sha2.d.ts +0 -159
  1110. package/node_modules/@noble/hashes/esm/sha2.d.ts.map +0 -1
  1111. package/node_modules/@noble/hashes/esm/sha2.js +0 -375
  1112. package/node_modules/@noble/hashes/esm/sha2.js.map +0 -1
  1113. package/node_modules/@noble/hashes/esm/sha256.d.ts +0 -20
  1114. package/node_modules/@noble/hashes/esm/sha256.d.ts.map +0 -1
  1115. package/node_modules/@noble/hashes/esm/sha256.js +0 -20
  1116. package/node_modules/@noble/hashes/esm/sha256.js.map +0 -1
  1117. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +0 -142
  1118. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +0 -1
  1119. package/node_modules/@noble/hashes/esm/sha3-addons.js +0 -393
  1120. package/node_modules/@noble/hashes/esm/sha3-addons.js.map +0 -1
  1121. package/node_modules/@noble/hashes/esm/sha3.d.ts +0 -53
  1122. package/node_modules/@noble/hashes/esm/sha3.d.ts.map +0 -1
  1123. package/node_modules/@noble/hashes/esm/sha3.js +0 -234
  1124. package/node_modules/@noble/hashes/esm/sha3.js.map +0 -1
  1125. package/node_modules/@noble/hashes/esm/sha512.d.ts +0 -26
  1126. package/node_modules/@noble/hashes/esm/sha512.d.ts.map +0 -1
  1127. package/node_modules/@noble/hashes/esm/sha512.js +0 -26
  1128. package/node_modules/@noble/hashes/esm/sha512.js.map +0 -1
  1129. package/node_modules/@noble/hashes/esm/utils.d.ts +0 -161
  1130. package/node_modules/@noble/hashes/esm/utils.d.ts.map +0 -1
  1131. package/node_modules/@noble/hashes/esm/utils.js +0 -281
  1132. package/node_modules/@noble/hashes/esm/utils.js.map +0 -1
  1133. package/node_modules/@noble/hashes/hkdf.d.ts +0 -36
  1134. package/node_modules/@noble/hashes/hkdf.d.ts.map +0 -1
  1135. package/node_modules/@noble/hashes/hkdf.js +0 -88
  1136. package/node_modules/@noble/hashes/hkdf.js.map +0 -1
  1137. package/node_modules/@noble/hashes/hmac.d.ts +0 -35
  1138. package/node_modules/@noble/hashes/hmac.d.ts.map +0 -1
  1139. package/node_modules/@noble/hashes/hmac.js +0 -91
  1140. package/node_modules/@noble/hashes/hmac.js.map +0 -1
  1141. package/node_modules/@noble/hashes/index.d.ts +0 -1
  1142. package/node_modules/@noble/hashes/index.d.ts.map +0 -1
  1143. package/node_modules/@noble/hashes/index.js +0 -33
  1144. package/node_modules/@noble/hashes/index.js.map +0 -1
  1145. package/node_modules/@noble/hashes/legacy.d.ts +0 -71
  1146. package/node_modules/@noble/hashes/legacy.d.ts.map +0 -1
  1147. package/node_modules/@noble/hashes/legacy.js +0 -287
  1148. package/node_modules/@noble/hashes/legacy.js.map +0 -1
  1149. package/node_modules/@noble/hashes/package.json +0 -266
  1150. package/node_modules/@noble/hashes/pbkdf2.d.ts +0 -23
  1151. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +0 -1
  1152. package/node_modules/@noble/hashes/pbkdf2.js +0 -101
  1153. package/node_modules/@noble/hashes/pbkdf2.js.map +0 -1
  1154. package/node_modules/@noble/hashes/ripemd160.d.ts +0 -13
  1155. package/node_modules/@noble/hashes/ripemd160.d.ts.map +0 -1
  1156. package/node_modules/@noble/hashes/ripemd160.js +0 -16
  1157. package/node_modules/@noble/hashes/ripemd160.js.map +0 -1
  1158. package/node_modules/@noble/hashes/scrypt.d.ts +0 -34
  1159. package/node_modules/@noble/hashes/scrypt.d.ts.map +0 -1
  1160. package/node_modules/@noble/hashes/scrypt.js +0 -232
  1161. package/node_modules/@noble/hashes/scrypt.js.map +0 -1
  1162. package/node_modules/@noble/hashes/sha1.d.ts +0 -11
  1163. package/node_modules/@noble/hashes/sha1.d.ts.map +0 -1
  1164. package/node_modules/@noble/hashes/sha1.js +0 -14
  1165. package/node_modules/@noble/hashes/sha1.js.map +0 -1
  1166. package/node_modules/@noble/hashes/sha2.d.ts +0 -159
  1167. package/node_modules/@noble/hashes/sha2.d.ts.map +0 -1
  1168. package/node_modules/@noble/hashes/sha2.js +0 -384
  1169. package/node_modules/@noble/hashes/sha2.js.map +0 -1
  1170. package/node_modules/@noble/hashes/sha256.d.ts +0 -20
  1171. package/node_modules/@noble/hashes/sha256.d.ts.map +0 -1
  1172. package/node_modules/@noble/hashes/sha256.js +0 -23
  1173. package/node_modules/@noble/hashes/sha256.js.map +0 -1
  1174. package/node_modules/@noble/hashes/sha3-addons.d.ts +0 -142
  1175. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +0 -1
  1176. package/node_modules/@noble/hashes/sha3-addons.js +0 -402
  1177. package/node_modules/@noble/hashes/sha3-addons.js.map +0 -1
  1178. package/node_modules/@noble/hashes/sha3.d.ts +0 -53
  1179. package/node_modules/@noble/hashes/sha3.d.ts.map +0 -1
  1180. package/node_modules/@noble/hashes/sha3.js +0 -239
  1181. package/node_modules/@noble/hashes/sha3.js.map +0 -1
  1182. package/node_modules/@noble/hashes/sha512.d.ts +0 -26
  1183. package/node_modules/@noble/hashes/sha512.d.ts.map +0 -1
  1184. package/node_modules/@noble/hashes/sha512.js +0 -29
  1185. package/node_modules/@noble/hashes/sha512.js.map +0 -1
  1186. package/node_modules/@noble/hashes/src/_assert.ts +0 -22
  1187. package/node_modules/@noble/hashes/src/_blake.ts +0 -50
  1188. package/node_modules/@noble/hashes/src/_md.ts +0 -176
  1189. package/node_modules/@noble/hashes/src/_u64.ts +0 -91
  1190. package/node_modules/@noble/hashes/src/argon2.ts +0 -497
  1191. package/node_modules/@noble/hashes/src/blake1.ts +0 -534
  1192. package/node_modules/@noble/hashes/src/blake2.ts +0 -486
  1193. package/node_modules/@noble/hashes/src/blake2b.ts +0 -10
  1194. package/node_modules/@noble/hashes/src/blake2s.ts +0 -20
  1195. package/node_modules/@noble/hashes/src/blake3.ts +0 -272
  1196. package/node_modules/@noble/hashes/src/crypto.ts +0 -9
  1197. package/node_modules/@noble/hashes/src/cryptoNode.ts +0 -15
  1198. package/node_modules/@noble/hashes/src/eskdf.ts +0 -187
  1199. package/node_modules/@noble/hashes/src/hkdf.ts +0 -88
  1200. package/node_modules/@noble/hashes/src/hmac.ts +0 -94
  1201. package/node_modules/@noble/hashes/src/index.ts +0 -31
  1202. package/node_modules/@noble/hashes/src/legacy.ts +0 -293
  1203. package/node_modules/@noble/hashes/src/pbkdf2.ts +0 -122
  1204. package/node_modules/@noble/hashes/src/ripemd160.ts +0 -12
  1205. package/node_modules/@noble/hashes/src/scrypt.ts +0 -257
  1206. package/node_modules/@noble/hashes/src/sha1.ts +0 -10
  1207. package/node_modules/@noble/hashes/src/sha2.ts +0 -402
  1208. package/node_modules/@noble/hashes/src/sha256.ts +0 -24
  1209. package/node_modules/@noble/hashes/src/sha3-addons.ts +0 -499
  1210. package/node_modules/@noble/hashes/src/sha3.ts +0 -258
  1211. package/node_modules/@noble/hashes/src/sha512.ts +0 -34
  1212. package/node_modules/@noble/hashes/src/utils.ts +0 -395
  1213. package/node_modules/@noble/hashes/utils.d.ts +0 -161
  1214. package/node_modules/@noble/hashes/utils.d.ts.map +0 -1
  1215. package/node_modules/@noble/hashes/utils.js +0 -313
  1216. package/node_modules/@noble/hashes/utils.js.map +0 -1
  1217. package/node_modules/@solana/buffer-layout/LICENSE +0 -21
  1218. package/node_modules/@solana/buffer-layout/README.md +0 -403
  1219. package/node_modules/@solana/buffer-layout/lib/Layout.d.ts +0 -1191
  1220. package/node_modules/@solana/buffer-layout/lib/Layout.js +0 -2390
  1221. package/node_modules/@solana/buffer-layout/lib/Layout.js.map +0 -1
  1222. package/node_modules/@solana/buffer-layout/package.json +0 -55
  1223. package/node_modules/@solana/codecs-core/LICENSE +0 -20
  1224. package/node_modules/@solana/codecs-core/README.md +0 -662
  1225. package/node_modules/@solana/codecs-core/dist/index.browser.cjs +0 -504
  1226. package/node_modules/@solana/codecs-core/dist/index.browser.cjs.map +0 -1
  1227. package/node_modules/@solana/codecs-core/dist/index.browser.mjs +0 -460
  1228. package/node_modules/@solana/codecs-core/dist/index.browser.mjs.map +0 -1
  1229. package/node_modules/@solana/codecs-core/dist/index.native.mjs +0 -460
  1230. package/node_modules/@solana/codecs-core/dist/index.native.mjs.map +0 -1
  1231. package/node_modules/@solana/codecs-core/dist/index.node.cjs +0 -504
  1232. package/node_modules/@solana/codecs-core/dist/index.node.cjs.map +0 -1
  1233. package/node_modules/@solana/codecs-core/dist/index.node.mjs +0 -460
  1234. package/node_modules/@solana/codecs-core/dist/index.node.mjs.map +0 -1
  1235. package/node_modules/@solana/codecs-core/dist/types/add-codec-sentinel.d.ts +0 -70
  1236. package/node_modules/@solana/codecs-core/dist/types/add-codec-sentinel.d.ts.map +0 -1
  1237. package/node_modules/@solana/codecs-core/dist/types/add-codec-size-prefix.d.ts +0 -67
  1238. package/node_modules/@solana/codecs-core/dist/types/add-codec-size-prefix.d.ts.map +0 -1
  1239. package/node_modules/@solana/codecs-core/dist/types/assertions.d.ts +0 -62
  1240. package/node_modules/@solana/codecs-core/dist/types/assertions.d.ts.map +0 -1
  1241. package/node_modules/@solana/codecs-core/dist/types/bytes.d.ts +0 -92
  1242. package/node_modules/@solana/codecs-core/dist/types/bytes.d.ts.map +0 -1
  1243. package/node_modules/@solana/codecs-core/dist/types/codec.d.ts +0 -827
  1244. package/node_modules/@solana/codecs-core/dist/types/codec.d.ts.map +0 -1
  1245. package/node_modules/@solana/codecs-core/dist/types/combine-codec.d.ts +0 -75
  1246. package/node_modules/@solana/codecs-core/dist/types/combine-codec.d.ts.map +0 -1
  1247. package/node_modules/@solana/codecs-core/dist/types/fix-codec-size.d.ts +0 -111
  1248. package/node_modules/@solana/codecs-core/dist/types/fix-codec-size.d.ts.map +0 -1
  1249. package/node_modules/@solana/codecs-core/dist/types/index.d.ts +0 -667
  1250. package/node_modules/@solana/codecs-core/dist/types/index.d.ts.map +0 -1
  1251. package/node_modules/@solana/codecs-core/dist/types/offset-codec.d.ts +0 -328
  1252. package/node_modules/@solana/codecs-core/dist/types/offset-codec.d.ts.map +0 -1
  1253. package/node_modules/@solana/codecs-core/dist/types/pad-codec.d.ts +0 -162
  1254. package/node_modules/@solana/codecs-core/dist/types/pad-codec.d.ts.map +0 -1
  1255. package/node_modules/@solana/codecs-core/dist/types/readonly-uint8array.d.ts +0 -19
  1256. package/node_modules/@solana/codecs-core/dist/types/readonly-uint8array.d.ts.map +0 -1
  1257. package/node_modules/@solana/codecs-core/dist/types/resize-codec.d.ts +0 -129
  1258. package/node_modules/@solana/codecs-core/dist/types/resize-codec.d.ts.map +0 -1
  1259. package/node_modules/@solana/codecs-core/dist/types/reverse-codec.d.ts +0 -92
  1260. package/node_modules/@solana/codecs-core/dist/types/reverse-codec.d.ts.map +0 -1
  1261. package/node_modules/@solana/codecs-core/dist/types/transform-codec.d.ts +0 -114
  1262. package/node_modules/@solana/codecs-core/dist/types/transform-codec.d.ts.map +0 -1
  1263. package/node_modules/@solana/codecs-core/package.json +0 -83
  1264. package/node_modules/@solana/codecs-numbers/LICENSE +0 -20
  1265. package/node_modules/@solana/codecs-numbers/README.md +0 -130
  1266. package/node_modules/@solana/codecs-numbers/dist/index.browser.cjs +0 -331
  1267. package/node_modules/@solana/codecs-numbers/dist/index.browser.cjs.map +0 -1
  1268. package/node_modules/@solana/codecs-numbers/dist/index.browser.mjs +0 -289
  1269. package/node_modules/@solana/codecs-numbers/dist/index.browser.mjs.map +0 -1
  1270. package/node_modules/@solana/codecs-numbers/dist/index.native.mjs +0 -289
  1271. package/node_modules/@solana/codecs-numbers/dist/index.native.mjs.map +0 -1
  1272. package/node_modules/@solana/codecs-numbers/dist/index.node.cjs +0 -331
  1273. package/node_modules/@solana/codecs-numbers/dist/index.node.cjs.map +0 -1
  1274. package/node_modules/@solana/codecs-numbers/dist/index.node.mjs +0 -289
  1275. package/node_modules/@solana/codecs-numbers/dist/index.node.mjs.map +0 -1
  1276. package/node_modules/@solana/codecs-numbers/dist/types/assertions.d.ts +0 -27
  1277. package/node_modules/@solana/codecs-numbers/dist/types/assertions.d.ts.map +0 -1
  1278. package/node_modules/@solana/codecs-numbers/dist/types/common.d.ts +0 -84
  1279. package/node_modules/@solana/codecs-numbers/dist/types/common.d.ts.map +0 -1
  1280. package/node_modules/@solana/codecs-numbers/dist/types/f32.d.ts +0 -87
  1281. package/node_modules/@solana/codecs-numbers/dist/types/f32.d.ts.map +0 -1
  1282. package/node_modules/@solana/codecs-numbers/dist/types/f64.d.ts +0 -87
  1283. package/node_modules/@solana/codecs-numbers/dist/types/f64.d.ts.map +0 -1
  1284. package/node_modules/@solana/codecs-numbers/dist/types/i128.d.ts +0 -91
  1285. package/node_modules/@solana/codecs-numbers/dist/types/i128.d.ts.map +0 -1
  1286. package/node_modules/@solana/codecs-numbers/dist/types/i16.d.ts +0 -87
  1287. package/node_modules/@solana/codecs-numbers/dist/types/i16.d.ts.map +0 -1
  1288. package/node_modules/@solana/codecs-numbers/dist/types/i32.d.ts +0 -87
  1289. package/node_modules/@solana/codecs-numbers/dist/types/i32.d.ts.map +0 -1
  1290. package/node_modules/@solana/codecs-numbers/dist/types/i64.d.ts +0 -90
  1291. package/node_modules/@solana/codecs-numbers/dist/types/i64.d.ts.map +0 -1
  1292. package/node_modules/@solana/codecs-numbers/dist/types/i8.d.ts +0 -75
  1293. package/node_modules/@solana/codecs-numbers/dist/types/i8.d.ts.map +0 -1
  1294. package/node_modules/@solana/codecs-numbers/dist/types/index.d.ts +0 -26
  1295. package/node_modules/@solana/codecs-numbers/dist/types/index.d.ts.map +0 -1
  1296. package/node_modules/@solana/codecs-numbers/dist/types/short-u16.d.ts +0 -96
  1297. package/node_modules/@solana/codecs-numbers/dist/types/short-u16.d.ts.map +0 -1
  1298. package/node_modules/@solana/codecs-numbers/dist/types/u128.d.ts +0 -87
  1299. package/node_modules/@solana/codecs-numbers/dist/types/u128.d.ts.map +0 -1
  1300. package/node_modules/@solana/codecs-numbers/dist/types/u16.d.ts +0 -85
  1301. package/node_modules/@solana/codecs-numbers/dist/types/u16.d.ts.map +0 -1
  1302. package/node_modules/@solana/codecs-numbers/dist/types/u32.d.ts +0 -85
  1303. package/node_modules/@solana/codecs-numbers/dist/types/u32.d.ts.map +0 -1
  1304. package/node_modules/@solana/codecs-numbers/dist/types/u64.d.ts +0 -88
  1305. package/node_modules/@solana/codecs-numbers/dist/types/u64.d.ts.map +0 -1
  1306. package/node_modules/@solana/codecs-numbers/dist/types/u8.d.ts +0 -71
  1307. package/node_modules/@solana/codecs-numbers/dist/types/u8.d.ts.map +0 -1
  1308. package/node_modules/@solana/codecs-numbers/dist/types/utils.d.ts +0 -18
  1309. package/node_modules/@solana/codecs-numbers/dist/types/utils.d.ts.map +0 -1
  1310. package/node_modules/@solana/codecs-numbers/package.json +0 -83
  1311. package/node_modules/@solana/errors/LICENSE +0 -20
  1312. package/node_modules/@solana/errors/README.md +0 -87
  1313. package/node_modules/@solana/errors/bin/cli.mjs +0 -7
  1314. package/node_modules/@solana/errors/dist/cli.mjs +0 -570
  1315. package/node_modules/@solana/errors/dist/index.browser.cjs +0 -1084
  1316. package/node_modules/@solana/errors/dist/index.browser.cjs.map +0 -1
  1317. package/node_modules/@solana/errors/dist/index.browser.mjs +0 -852
  1318. package/node_modules/@solana/errors/dist/index.browser.mjs.map +0 -1
  1319. package/node_modules/@solana/errors/dist/index.native.mjs +0 -852
  1320. package/node_modules/@solana/errors/dist/index.native.mjs.map +0 -1
  1321. package/node_modules/@solana/errors/dist/index.node.cjs +0 -1084
  1322. package/node_modules/@solana/errors/dist/index.node.cjs.map +0 -1
  1323. package/node_modules/@solana/errors/dist/index.node.mjs +0 -852
  1324. package/node_modules/@solana/errors/dist/index.node.mjs.map +0 -1
  1325. package/node_modules/@solana/errors/dist/types/codes.d.ts +0 -275
  1326. package/node_modules/@solana/errors/dist/types/codes.d.ts.map +0 -1
  1327. package/node_modules/@solana/errors/dist/types/context.d.ts +0 -398
  1328. package/node_modules/@solana/errors/dist/types/context.d.ts.map +0 -1
  1329. package/node_modules/@solana/errors/dist/types/error.d.ts +0 -75
  1330. package/node_modules/@solana/errors/dist/types/error.d.ts.map +0 -1
  1331. package/node_modules/@solana/errors/dist/types/index.d.ts +0 -72
  1332. package/node_modules/@solana/errors/dist/types/index.d.ts.map +0 -1
  1333. package/node_modules/@solana/errors/dist/types/instruction-error.d.ts +0 -9
  1334. package/node_modules/@solana/errors/dist/types/instruction-error.d.ts.map +0 -1
  1335. package/node_modules/@solana/errors/dist/types/json-rpc-error.d.ts +0 -51
  1336. package/node_modules/@solana/errors/dist/types/json-rpc-error.d.ts.map +0 -1
  1337. package/node_modules/@solana/errors/dist/types/message-formatter.d.ts +0 -4
  1338. package/node_modules/@solana/errors/dist/types/message-formatter.d.ts.map +0 -1
  1339. package/node_modules/@solana/errors/dist/types/messages.d.ts +0 -16
  1340. package/node_modules/@solana/errors/dist/types/messages.d.ts.map +0 -1
  1341. package/node_modules/@solana/errors/dist/types/rpc-enum-errors.d.ts +0 -31
  1342. package/node_modules/@solana/errors/dist/types/rpc-enum-errors.d.ts.map +0 -1
  1343. package/node_modules/@solana/errors/dist/types/stack-trace.d.ts +0 -2
  1344. package/node_modules/@solana/errors/dist/types/stack-trace.d.ts.map +0 -1
  1345. package/node_modules/@solana/errors/dist/types/transaction-error.d.ts +0 -5
  1346. package/node_modules/@solana/errors/dist/types/transaction-error.d.ts.map +0 -1
  1347. package/node_modules/@solana/errors/node_modules/chalk/license +0 -9
  1348. package/node_modules/@solana/errors/node_modules/chalk/package.json +0 -83
  1349. package/node_modules/@solana/errors/node_modules/chalk/readme.md +0 -297
  1350. package/node_modules/@solana/errors/node_modules/chalk/source/index.d.ts +0 -325
  1351. package/node_modules/@solana/errors/node_modules/chalk/source/index.js +0 -225
  1352. package/node_modules/@solana/errors/node_modules/chalk/source/utilities.js +0 -33
  1353. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +0 -236
  1354. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/ansi-styles/index.js +0 -223
  1355. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/browser.d.ts +0 -1
  1356. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/browser.js +0 -34
  1357. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/index.d.ts +0 -55
  1358. package/node_modules/@solana/errors/node_modules/chalk/source/vendor/supports-color/index.js +0 -182
  1359. package/node_modules/@solana/errors/node_modules/commander/LICENSE +0 -22
  1360. package/node_modules/@solana/errors/node_modules/commander/Readme.md +0 -1149
  1361. package/node_modules/@solana/errors/node_modules/commander/esm.mjs +0 -16
  1362. package/node_modules/@solana/errors/node_modules/commander/index.js +0 -24
  1363. package/node_modules/@solana/errors/node_modules/commander/lib/argument.js +0 -149
  1364. package/node_modules/@solana/errors/node_modules/commander/lib/command.js +0 -2662
  1365. package/node_modules/@solana/errors/node_modules/commander/lib/error.js +0 -39
  1366. package/node_modules/@solana/errors/node_modules/commander/lib/help.js +0 -709
  1367. package/node_modules/@solana/errors/node_modules/commander/lib/option.js +0 -367
  1368. package/node_modules/@solana/errors/node_modules/commander/lib/suggestSimilar.js +0 -101
  1369. package/node_modules/@solana/errors/node_modules/commander/package-support.json +0 -16
  1370. package/node_modules/@solana/errors/node_modules/commander/package.json +0 -82
  1371. package/node_modules/@solana/errors/node_modules/commander/typings/esm.d.mts +0 -3
  1372. package/node_modules/@solana/errors/node_modules/commander/typings/index.d.ts +0 -1045
  1373. package/node_modules/@solana/errors/package.json +0 -84
  1374. package/node_modules/@solana/web3.js/LICENSE +0 -20
  1375. package/node_modules/@solana/web3.js/README.md +0 -145
  1376. package/node_modules/@solana/web3.js/lib/index.browser.cjs.js +0 -10562
  1377. package/node_modules/@solana/web3.js/lib/index.browser.cjs.js.map +0 -1
  1378. package/node_modules/@solana/web3.js/lib/index.browser.esm.js +0 -10461
  1379. package/node_modules/@solana/web3.js/lib/index.browser.esm.js.map +0 -1
  1380. package/node_modules/@solana/web3.js/lib/index.cjs.js +0 -11311
  1381. package/node_modules/@solana/web3.js/lib/index.cjs.js.map +0 -1
  1382. package/node_modules/@solana/web3.js/lib/index.d.ts +0 -4021
  1383. package/node_modules/@solana/web3.js/lib/index.esm.js +0 -11206
  1384. package/node_modules/@solana/web3.js/lib/index.esm.js.map +0 -1
  1385. package/node_modules/@solana/web3.js/lib/index.iife.js +0 -26083
  1386. package/node_modules/@solana/web3.js/lib/index.iife.js.map +0 -1
  1387. package/node_modules/@solana/web3.js/lib/index.iife.min.js +0 -20
  1388. package/node_modules/@solana/web3.js/lib/index.iife.min.js.map +0 -1
  1389. package/node_modules/@solana/web3.js/lib/index.native.js +0 -10562
  1390. package/node_modules/@solana/web3.js/lib/index.native.js.map +0 -1
  1391. package/node_modules/@solana/web3.js/node_modules/superstruct/License.md +0 -9
  1392. package/node_modules/@solana/web3.js/node_modules/superstruct/Readme.md +0 -230
  1393. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/error.d.ts +0 -33
  1394. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/error.d.ts.map +0 -1
  1395. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.cjs +0 -1084
  1396. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.cjs.map +0 -1
  1397. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.d.ts +0 -7
  1398. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.d.ts.map +0 -1
  1399. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.mjs +0 -1026
  1400. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/index.mjs.map +0 -1
  1401. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/struct.d.ts +0 -119
  1402. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/struct.d.ts.map +0 -1
  1403. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/coercions.d.ts +0 -29
  1404. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/coercions.d.ts.map +0 -1
  1405. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/refinements.d.ts +0 -38
  1406. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/refinements.d.ts.map +0 -1
  1407. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/types.d.ts +0 -142
  1408. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/types.d.ts.map +0 -1
  1409. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/utilities.d.ts +0 -66
  1410. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/structs/utilities.d.ts.map +0 -1
  1411. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/utils.d.ts +0 -144
  1412. package/node_modules/@solana/web3.js/node_modules/superstruct/dist/utils.d.ts.map +0 -1
  1413. package/node_modules/@solana/web3.js/node_modules/superstruct/package.json +0 -85
  1414. package/node_modules/@solana/web3.js/package.json +0 -75
  1415. package/node_modules/@solana/web3.js/src/__forks__/browser/fetch-impl.ts +0 -4
  1416. package/node_modules/@solana/web3.js/src/__forks__/react-native/fetch-impl.ts +0 -4
  1417. package/node_modules/@solana/web3.js/src/account-data.ts +0 -39
  1418. package/node_modules/@solana/web3.js/src/account.ts +0 -55
  1419. package/node_modules/@solana/web3.js/src/blockhash.ts +0 -4
  1420. package/node_modules/@solana/web3.js/src/bpf-loader-deprecated.ts +0 -5
  1421. package/node_modules/@solana/web3.js/src/bpf-loader.ts +0 -50
  1422. package/node_modules/@solana/web3.js/src/connection.ts +0 -6955
  1423. package/node_modules/@solana/web3.js/src/epoch-schedule.ts +0 -102
  1424. package/node_modules/@solana/web3.js/src/errors.ts +0 -133
  1425. package/node_modules/@solana/web3.js/src/fee-calculator.ts +0 -18
  1426. package/node_modules/@solana/web3.js/src/fetch-impl.ts +0 -16
  1427. package/node_modules/@solana/web3.js/src/index.ts +0 -24
  1428. package/node_modules/@solana/web3.js/src/instruction.ts +0 -58
  1429. package/node_modules/@solana/web3.js/src/keypair.ts +0 -102
  1430. package/node_modules/@solana/web3.js/src/layout.ts +0 -188
  1431. package/node_modules/@solana/web3.js/src/loader.ts +0 -267
  1432. package/node_modules/@solana/web3.js/src/message/account-keys.ts +0 -79
  1433. package/node_modules/@solana/web3.js/src/message/compiled-keys.ts +0 -165
  1434. package/node_modules/@solana/web3.js/src/message/index.ts +0 -47
  1435. package/node_modules/@solana/web3.js/src/message/legacy.ts +0 -323
  1436. package/node_modules/@solana/web3.js/src/message/v0.ts +0 -513
  1437. package/node_modules/@solana/web3.js/src/message/versioned.ts +0 -36
  1438. package/node_modules/@solana/web3.js/src/nonce-account.ts +0 -82
  1439. package/node_modules/@solana/web3.js/src/programs/address-lookup-table/index.ts +0 -438
  1440. package/node_modules/@solana/web3.js/src/programs/address-lookup-table/state.ts +0 -84
  1441. package/node_modules/@solana/web3.js/src/programs/compute-budget.ts +0 -281
  1442. package/node_modules/@solana/web3.js/src/programs/ed25519.ts +0 -157
  1443. package/node_modules/@solana/web3.js/src/programs/index.ts +0 -7
  1444. package/node_modules/@solana/web3.js/src/programs/secp256k1.ts +0 -228
  1445. package/node_modules/@solana/web3.js/src/programs/stake.ts +0 -952
  1446. package/node_modules/@solana/web3.js/src/programs/system.ts +0 -1048
  1447. package/node_modules/@solana/web3.js/src/programs/vote.ts +0 -586
  1448. package/node_modules/@solana/web3.js/src/publickey.ts +0 -259
  1449. package/node_modules/@solana/web3.js/src/rpc-websocket.ts +0 -75
  1450. package/node_modules/@solana/web3.js/src/sysvar.ts +0 -37
  1451. package/node_modules/@solana/web3.js/src/timing.ts +0 -23
  1452. package/node_modules/@solana/web3.js/src/transaction/constants.ts +0 -12
  1453. package/node_modules/@solana/web3.js/src/transaction/expiry-custom-errors.ts +0 -48
  1454. package/node_modules/@solana/web3.js/src/transaction/index.ts +0 -5
  1455. package/node_modules/@solana/web3.js/src/transaction/legacy.ts +0 -970
  1456. package/node_modules/@solana/web3.js/src/transaction/message.ts +0 -140
  1457. package/node_modules/@solana/web3.js/src/transaction/versioned.ts +0 -127
  1458. package/node_modules/@solana/web3.js/src/utils/assert.ts +0 -8
  1459. package/node_modules/@solana/web3.js/src/utils/bigint.ts +0 -24
  1460. package/node_modules/@solana/web3.js/src/utils/borsh-schema.ts +0 -38
  1461. package/node_modules/@solana/web3.js/src/utils/cluster.ts +0 -35
  1462. package/node_modules/@solana/web3.js/src/utils/ed25519.ts +0 -43
  1463. package/node_modules/@solana/web3.js/src/utils/guarded-array-utils.ts +0 -34
  1464. package/node_modules/@solana/web3.js/src/utils/index.ts +0 -5
  1465. package/node_modules/@solana/web3.js/src/utils/makeWebsocketUrl.ts +0 -26
  1466. package/node_modules/@solana/web3.js/src/utils/promise-timeout.ts +0 -14
  1467. package/node_modules/@solana/web3.js/src/utils/secp256k1.ts +0 -11
  1468. package/node_modules/@solana/web3.js/src/utils/send-and-confirm-raw-transaction.ts +0 -110
  1469. package/node_modules/@solana/web3.js/src/utils/send-and-confirm-transaction.ts +0 -106
  1470. package/node_modules/@solana/web3.js/src/utils/shortvec-encoding.ts +0 -28
  1471. package/node_modules/@solana/web3.js/src/utils/sleep.ts +0 -4
  1472. package/node_modules/@solana/web3.js/src/utils/to-buffer.ts +0 -11
  1473. package/node_modules/@solana/web3.js/src/validator-info.ts +0 -108
  1474. package/node_modules/@solana/web3.js/src/vote-account.ts +0 -236
  1475. package/node_modules/@swc/helpers/LICENSE +0 -201
  1476. package/node_modules/@swc/helpers/_/_apply_decorated_descriptor/package.json +0 -4
  1477. package/node_modules/@swc/helpers/_/_apply_decs_2203_r/package.json +0 -4
  1478. package/node_modules/@swc/helpers/_/_array_like_to_array/package.json +0 -4
  1479. package/node_modules/@swc/helpers/_/_array_with_holes/package.json +0 -4
  1480. package/node_modules/@swc/helpers/_/_array_without_holes/package.json +0 -4
  1481. package/node_modules/@swc/helpers/_/_assert_this_initialized/package.json +0 -4
  1482. package/node_modules/@swc/helpers/_/_async_generator/package.json +0 -4
  1483. package/node_modules/@swc/helpers/_/_async_generator_delegate/package.json +0 -4
  1484. package/node_modules/@swc/helpers/_/_async_iterator/package.json +0 -4
  1485. package/node_modules/@swc/helpers/_/_async_to_generator/package.json +0 -4
  1486. package/node_modules/@swc/helpers/_/_await_async_generator/package.json +0 -4
  1487. package/node_modules/@swc/helpers/_/_await_value/package.json +0 -4
  1488. package/node_modules/@swc/helpers/_/_call_super/package.json +0 -4
  1489. package/node_modules/@swc/helpers/_/_check_private_redeclaration/package.json +0 -4
  1490. package/node_modules/@swc/helpers/_/_class_apply_descriptor_destructure/package.json +0 -4
  1491. package/node_modules/@swc/helpers/_/_class_apply_descriptor_get/package.json +0 -4
  1492. package/node_modules/@swc/helpers/_/_class_apply_descriptor_set/package.json +0 -4
  1493. package/node_modules/@swc/helpers/_/_class_apply_descriptor_update/package.json +0 -4
  1494. package/node_modules/@swc/helpers/_/_class_call_check/package.json +0 -4
  1495. package/node_modules/@swc/helpers/_/_class_check_private_static_access/package.json +0 -4
  1496. package/node_modules/@swc/helpers/_/_class_check_private_static_field_descriptor/package.json +0 -4
  1497. package/node_modules/@swc/helpers/_/_class_extract_field_descriptor/package.json +0 -4
  1498. package/node_modules/@swc/helpers/_/_class_name_tdz_error/package.json +0 -4
  1499. package/node_modules/@swc/helpers/_/_class_private_field_destructure/package.json +0 -4
  1500. package/node_modules/@swc/helpers/_/_class_private_field_get/package.json +0 -4
  1501. package/node_modules/@swc/helpers/_/_class_private_field_init/package.json +0 -4
  1502. package/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json +0 -4
  1503. package/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json +0 -4
  1504. package/node_modules/@swc/helpers/_/_class_private_field_set/package.json +0 -4
  1505. package/node_modules/@swc/helpers/_/_class_private_field_update/package.json +0 -4
  1506. package/node_modules/@swc/helpers/_/_class_private_method_get/package.json +0 -4
  1507. package/node_modules/@swc/helpers/_/_class_private_method_init/package.json +0 -4
  1508. package/node_modules/@swc/helpers/_/_class_private_method_set/package.json +0 -4
  1509. package/node_modules/@swc/helpers/_/_class_static_private_field_destructure/package.json +0 -4
  1510. package/node_modules/@swc/helpers/_/_class_static_private_field_spec_get/package.json +0 -4
  1511. package/node_modules/@swc/helpers/_/_class_static_private_field_spec_set/package.json +0 -4
  1512. package/node_modules/@swc/helpers/_/_class_static_private_field_update/package.json +0 -4
  1513. package/node_modules/@swc/helpers/_/_class_static_private_method_get/package.json +0 -4
  1514. package/node_modules/@swc/helpers/_/_construct/package.json +0 -4
  1515. package/node_modules/@swc/helpers/_/_create_class/package.json +0 -4
  1516. package/node_modules/@swc/helpers/_/_create_for_of_iterator_helper_loose/package.json +0 -4
  1517. package/node_modules/@swc/helpers/_/_create_super/package.json +0 -4
  1518. package/node_modules/@swc/helpers/_/_decorate/package.json +0 -4
  1519. package/node_modules/@swc/helpers/_/_defaults/package.json +0 -4
  1520. package/node_modules/@swc/helpers/_/_define_enumerable_properties/package.json +0 -4
  1521. package/node_modules/@swc/helpers/_/_define_property/package.json +0 -4
  1522. package/node_modules/@swc/helpers/_/_dispose/package.json +0 -4
  1523. package/node_modules/@swc/helpers/_/_export_star/package.json +0 -4
  1524. package/node_modules/@swc/helpers/_/_extends/package.json +0 -4
  1525. package/node_modules/@swc/helpers/_/_get/package.json +0 -4
  1526. package/node_modules/@swc/helpers/_/_get_prototype_of/package.json +0 -4
  1527. package/node_modules/@swc/helpers/_/_identity/package.json +0 -4
  1528. package/node_modules/@swc/helpers/_/_inherits/package.json +0 -4
  1529. package/node_modules/@swc/helpers/_/_inherits_loose/package.json +0 -4
  1530. package/node_modules/@swc/helpers/_/_initializer_define_property/package.json +0 -4
  1531. package/node_modules/@swc/helpers/_/_initializer_warning_helper/package.json +0 -4
  1532. package/node_modules/@swc/helpers/_/_instanceof/package.json +0 -4
  1533. package/node_modules/@swc/helpers/_/_interop_require_default/package.json +0 -4
  1534. package/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json +0 -4
  1535. package/node_modules/@swc/helpers/_/_is_native_function/package.json +0 -4
  1536. package/node_modules/@swc/helpers/_/_is_native_reflect_construct/package.json +0 -4
  1537. package/node_modules/@swc/helpers/_/_iterable_to_array/package.json +0 -4
  1538. package/node_modules/@swc/helpers/_/_iterable_to_array_limit/package.json +0 -4
  1539. package/node_modules/@swc/helpers/_/_iterable_to_array_limit_loose/package.json +0 -4
  1540. package/node_modules/@swc/helpers/_/_jsx/package.json +0 -4
  1541. package/node_modules/@swc/helpers/_/_new_arrow_check/package.json +0 -4
  1542. package/node_modules/@swc/helpers/_/_non_iterable_rest/package.json +0 -4
  1543. package/node_modules/@swc/helpers/_/_non_iterable_spread/package.json +0 -4
  1544. package/node_modules/@swc/helpers/_/_object_destructuring_empty/package.json +0 -4
  1545. package/node_modules/@swc/helpers/_/_object_spread/package.json +0 -4
  1546. package/node_modules/@swc/helpers/_/_object_spread_props/package.json +0 -4
  1547. package/node_modules/@swc/helpers/_/_object_without_properties/package.json +0 -4
  1548. package/node_modules/@swc/helpers/_/_object_without_properties_loose/package.json +0 -4
  1549. package/node_modules/@swc/helpers/_/_overload_yield/package.json +0 -4
  1550. package/node_modules/@swc/helpers/_/_possible_constructor_return/package.json +0 -4
  1551. package/node_modules/@swc/helpers/_/_read_only_error/package.json +0 -4
  1552. package/node_modules/@swc/helpers/_/_set/package.json +0 -4
  1553. package/node_modules/@swc/helpers/_/_set_prototype_of/package.json +0 -4
  1554. package/node_modules/@swc/helpers/_/_skip_first_generator_next/package.json +0 -4
  1555. package/node_modules/@swc/helpers/_/_sliced_to_array/package.json +0 -4
  1556. package/node_modules/@swc/helpers/_/_sliced_to_array_loose/package.json +0 -4
  1557. package/node_modules/@swc/helpers/_/_super_prop_base/package.json +0 -4
  1558. package/node_modules/@swc/helpers/_/_tagged_template_literal/package.json +0 -4
  1559. package/node_modules/@swc/helpers/_/_tagged_template_literal_loose/package.json +0 -4
  1560. package/node_modules/@swc/helpers/_/_throw/package.json +0 -4
  1561. package/node_modules/@swc/helpers/_/_to_array/package.json +0 -4
  1562. package/node_modules/@swc/helpers/_/_to_consumable_array/package.json +0 -4
  1563. package/node_modules/@swc/helpers/_/_to_primitive/package.json +0 -4
  1564. package/node_modules/@swc/helpers/_/_to_property_key/package.json +0 -4
  1565. package/node_modules/@swc/helpers/_/_ts_add_disposable_resource/package.json +0 -4
  1566. package/node_modules/@swc/helpers/_/_ts_decorate/package.json +0 -4
  1567. package/node_modules/@swc/helpers/_/_ts_dispose_resources/package.json +0 -4
  1568. package/node_modules/@swc/helpers/_/_ts_generator/package.json +0 -4
  1569. package/node_modules/@swc/helpers/_/_ts_metadata/package.json +0 -4
  1570. package/node_modules/@swc/helpers/_/_ts_param/package.json +0 -4
  1571. package/node_modules/@swc/helpers/_/_ts_values/package.json +0 -4
  1572. package/node_modules/@swc/helpers/_/_type_of/package.json +0 -4
  1573. package/node_modules/@swc/helpers/_/_unsupported_iterable_to_array/package.json +0 -4
  1574. package/node_modules/@swc/helpers/_/_update/package.json +0 -4
  1575. package/node_modules/@swc/helpers/_/_using/package.json +0 -4
  1576. package/node_modules/@swc/helpers/_/_using_ctx/package.json +0 -4
  1577. package/node_modules/@swc/helpers/_/_wrap_async_generator/package.json +0 -4
  1578. package/node_modules/@swc/helpers/_/_wrap_native_super/package.json +0 -4
  1579. package/node_modules/@swc/helpers/_/_write_only_error/package.json +0 -4
  1580. package/node_modules/@swc/helpers/_/index/package.json +0 -4
  1581. package/node_modules/@swc/helpers/cjs/_apply_decorated_descriptor.cjs +0 -35
  1582. package/node_modules/@swc/helpers/cjs/_apply_decs_2203_r.cjs +0 -550
  1583. package/node_modules/@swc/helpers/cjs/_array_like_to_array.cjs +0 -10
  1584. package/node_modules/@swc/helpers/cjs/_array_with_holes.cjs +0 -6
  1585. package/node_modules/@swc/helpers/cjs/_array_without_holes.cjs +0 -8
  1586. package/node_modules/@swc/helpers/cjs/_assert_this_initialized.cjs +0 -8
  1587. package/node_modules/@swc/helpers/cjs/_async_generator.cjs +0 -76
  1588. package/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs +0 -53
  1589. package/node_modules/@swc/helpers/cjs/_async_iterator.cjs +0 -46
  1590. package/node_modules/@swc/helpers/cjs/_async_to_generator.cjs +0 -33
  1591. package/node_modules/@swc/helpers/cjs/_await_async_generator.cjs +0 -8
  1592. package/node_modules/@swc/helpers/cjs/_await_value.cjs +0 -6
  1593. package/node_modules/@swc/helpers/cjs/_call_super.cjs +0 -19
  1594. package/node_modules/@swc/helpers/cjs/_check_private_redeclaration.cjs +0 -8
  1595. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_destructure.cjs +0 -25
  1596. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_get.cjs +0 -8
  1597. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_set.cjs +0 -15
  1598. package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_update.cjs +0 -30
  1599. package/node_modules/@swc/helpers/cjs/_class_call_check.cjs +0 -6
  1600. package/node_modules/@swc/helpers/cjs/_class_check_private_static_access.cjs +0 -6
  1601. package/node_modules/@swc/helpers/cjs/_class_check_private_static_field_descriptor.cjs +0 -8
  1602. package/node_modules/@swc/helpers/cjs/_class_extract_field_descriptor.cjs +0 -8
  1603. package/node_modules/@swc/helpers/cjs/_class_name_tdz_error.cjs +0 -6
  1604. package/node_modules/@swc/helpers/cjs/_class_private_field_destructure.cjs +0 -10
  1605. package/node_modules/@swc/helpers/cjs/_class_private_field_get.cjs +0 -10
  1606. package/node_modules/@swc/helpers/cjs/_class_private_field_init.cjs +0 -9
  1607. package/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs +0 -10
  1608. package/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs +0 -8
  1609. package/node_modules/@swc/helpers/cjs/_class_private_field_set.cjs +0 -11
  1610. package/node_modules/@swc/helpers/cjs/_class_private_field_update.cjs +0 -10
  1611. package/node_modules/@swc/helpers/cjs/_class_private_method_get.cjs +0 -8
  1612. package/node_modules/@swc/helpers/cjs/_class_private_method_init.cjs +0 -9
  1613. package/node_modules/@swc/helpers/cjs/_class_private_method_set.cjs +0 -6
  1614. package/node_modules/@swc/helpers/cjs/_class_static_private_field_destructure.cjs +0 -13
  1615. package/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_get.cjs +0 -13
  1616. package/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_set.cjs +0 -14
  1617. package/node_modules/@swc/helpers/cjs/_class_static_private_field_update.cjs +0 -13
  1618. package/node_modules/@swc/helpers/cjs/_class_static_private_method_get.cjs +0 -10
  1619. package/node_modules/@swc/helpers/cjs/_construct.cjs +0 -22
  1620. package/node_modules/@swc/helpers/cjs/_create_class.cjs +0 -20
  1621. package/node_modules/@swc/helpers/cjs/_create_for_of_iterator_helper_loose.cjs +0 -24
  1622. package/node_modules/@swc/helpers/cjs/_create_super.cjs +0 -23
  1623. package/node_modules/@swc/helpers/cjs/_decorate.cjs +0 -270
  1624. package/node_modules/@swc/helpers/cjs/_defaults.cjs +0 -15
  1625. package/node_modules/@swc/helpers/cjs/_define_enumerable_properties.cjs +0 -26
  1626. package/node_modules/@swc/helpers/cjs/_define_property.cjs +0 -10
  1627. package/node_modules/@swc/helpers/cjs/_dispose.cjs +0 -43
  1628. package/node_modules/@swc/helpers/cjs/_export_star.cjs +0 -17
  1629. package/node_modules/@swc/helpers/cjs/_extends.cjs +0 -15
  1630. package/node_modules/@swc/helpers/cjs/_get.cjs +0 -23
  1631. package/node_modules/@swc/helpers/cjs/_get_prototype_of.cjs +0 -10
  1632. package/node_modules/@swc/helpers/cjs/_identity.cjs +0 -7
  1633. package/node_modules/@swc/helpers/cjs/_inherits.cjs +0 -14
  1634. package/node_modules/@swc/helpers/cjs/_inherits_loose.cjs +0 -8
  1635. package/node_modules/@swc/helpers/cjs/_initializer_define_property.cjs +0 -13
  1636. package/node_modules/@swc/helpers/cjs/_initializer_warning_helper.cjs +0 -11
  1637. package/node_modules/@swc/helpers/cjs/_instanceof.cjs +0 -8
  1638. package/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +0 -6
  1639. package/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +0 -38
  1640. package/node_modules/@swc/helpers/cjs/_is_native_function.cjs +0 -6
  1641. package/node_modules/@swc/helpers/cjs/_is_native_reflect_construct.cjs +0 -18
  1642. package/node_modules/@swc/helpers/cjs/_iterable_to_array.cjs +0 -8
  1643. package/node_modules/@swc/helpers/cjs/_iterable_to_array_limit.cjs +0 -31
  1644. package/node_modules/@swc/helpers/cjs/_iterable_to_array_limit_loose.cjs +0 -17
  1645. package/node_modules/@swc/helpers/cjs/_jsx.cjs +0 -28
  1646. package/node_modules/@swc/helpers/cjs/_new_arrow_check.cjs +0 -6
  1647. package/node_modules/@swc/helpers/cjs/_non_iterable_rest.cjs +0 -6
  1648. package/node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs +0 -6
  1649. package/node_modules/@swc/helpers/cjs/_object_destructuring_empty.cjs +0 -8
  1650. package/node_modules/@swc/helpers/cjs/_object_spread.cjs +0 -25
  1651. package/node_modules/@swc/helpers/cjs/_object_spread_props.cjs +0 -30
  1652. package/node_modules/@swc/helpers/cjs/_object_without_properties.cjs +0 -23
  1653. package/node_modules/@swc/helpers/cjs/_object_without_properties_loose.cjs +0 -18
  1654. package/node_modules/@swc/helpers/cjs/_overload_yield.cjs +0 -8
  1655. package/node_modules/@swc/helpers/cjs/_possible_constructor_return.cjs +0 -11
  1656. package/node_modules/@swc/helpers/cjs/_read_only_error.cjs +0 -6
  1657. package/node_modules/@swc/helpers/cjs/_set.cjs +0 -44
  1658. package/node_modules/@swc/helpers/cjs/_set_prototype_of.cjs +0 -12
  1659. package/node_modules/@swc/helpers/cjs/_skip_first_generator_next.cjs +0 -11
  1660. package/node_modules/@swc/helpers/cjs/_sliced_to_array.cjs +0 -11
  1661. package/node_modules/@swc/helpers/cjs/_sliced_to_array_loose.cjs +0 -11
  1662. package/node_modules/@swc/helpers/cjs/_super_prop_base.cjs +0 -13
  1663. package/node_modules/@swc/helpers/cjs/_tagged_template_literal.cjs +0 -8
  1664. package/node_modules/@swc/helpers/cjs/_tagged_template_literal_loose.cjs +0 -10
  1665. package/node_modules/@swc/helpers/cjs/_throw.cjs +0 -6
  1666. package/node_modules/@swc/helpers/cjs/_to_array.cjs +0 -11
  1667. package/node_modules/@swc/helpers/cjs/_to_consumable_array.cjs +0 -11
  1668. package/node_modules/@swc/helpers/cjs/_to_primitive.cjs +0 -18
  1669. package/node_modules/@swc/helpers/cjs/_to_property_key.cjs +0 -11
  1670. package/node_modules/@swc/helpers/cjs/_ts_add_disposable_resource.cjs +0 -3
  1671. package/node_modules/@swc/helpers/cjs/_ts_decorate.cjs +0 -3
  1672. package/node_modules/@swc/helpers/cjs/_ts_dispose_resources.cjs +0 -3
  1673. package/node_modules/@swc/helpers/cjs/_ts_generator.cjs +0 -3
  1674. package/node_modules/@swc/helpers/cjs/_ts_metadata.cjs +0 -3
  1675. package/node_modules/@swc/helpers/cjs/_ts_param.cjs +0 -3
  1676. package/node_modules/@swc/helpers/cjs/_ts_values.cjs +0 -3
  1677. package/node_modules/@swc/helpers/cjs/_type_of.cjs +0 -8
  1678. package/node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs +0 -15
  1679. package/node_modules/@swc/helpers/cjs/_update.cjs +0 -16
  1680. package/node_modules/@swc/helpers/cjs/_using.cjs +0 -24
  1681. package/node_modules/@swc/helpers/cjs/_using_ctx.cjs +0 -75
  1682. package/node_modules/@swc/helpers/cjs/_wrap_async_generator.cjs +0 -10
  1683. package/node_modules/@swc/helpers/cjs/_wrap_native_super.cjs +0 -28
  1684. package/node_modules/@swc/helpers/cjs/_write_only_error.cjs +0 -6
  1685. package/node_modules/@swc/helpers/cjs/index.cjs +0 -427
  1686. package/node_modules/@swc/helpers/esm/_apply_decorated_descriptor.js +0 -33
  1687. package/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js +0 -548
  1688. package/node_modules/@swc/helpers/esm/_array_like_to_array.js +0 -8
  1689. package/node_modules/@swc/helpers/esm/_array_with_holes.js +0 -4
  1690. package/node_modules/@swc/helpers/esm/_array_without_holes.js +0 -6
  1691. package/node_modules/@swc/helpers/esm/_assert_this_initialized.js +0 -6
  1692. package/node_modules/@swc/helpers/esm/_async_generator.js +0 -74
  1693. package/node_modules/@swc/helpers/esm/_async_generator_delegate.js +0 -51
  1694. package/node_modules/@swc/helpers/esm/_async_iterator.js +0 -44
  1695. package/node_modules/@swc/helpers/esm/_async_to_generator.js +0 -31
  1696. package/node_modules/@swc/helpers/esm/_await_async_generator.js +0 -6
  1697. package/node_modules/@swc/helpers/esm/_await_value.js +0 -4
  1698. package/node_modules/@swc/helpers/esm/_call_super.js +0 -17
  1699. package/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +0 -6
  1700. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_destructure.js +0 -23
  1701. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +0 -6
  1702. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +0 -13
  1703. package/node_modules/@swc/helpers/esm/_class_apply_descriptor_update.js +0 -28
  1704. package/node_modules/@swc/helpers/esm/_class_call_check.js +0 -4
  1705. package/node_modules/@swc/helpers/esm/_class_check_private_static_access.js +0 -4
  1706. package/node_modules/@swc/helpers/esm/_class_check_private_static_field_descriptor.js +0 -6
  1707. package/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +0 -6
  1708. package/node_modules/@swc/helpers/esm/_class_name_tdz_error.js +0 -4
  1709. package/node_modules/@swc/helpers/esm/_class_private_field_destructure.js +0 -8
  1710. package/node_modules/@swc/helpers/esm/_class_private_field_get.js +0 -8
  1711. package/node_modules/@swc/helpers/esm/_class_private_field_init.js +0 -7
  1712. package/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js +0 -8
  1713. package/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js +0 -6
  1714. package/node_modules/@swc/helpers/esm/_class_private_field_set.js +0 -9
  1715. package/node_modules/@swc/helpers/esm/_class_private_field_update.js +0 -8
  1716. package/node_modules/@swc/helpers/esm/_class_private_method_get.js +0 -6
  1717. package/node_modules/@swc/helpers/esm/_class_private_method_init.js +0 -7
  1718. package/node_modules/@swc/helpers/esm/_class_private_method_set.js +0 -4
  1719. package/node_modules/@swc/helpers/esm/_class_static_private_field_destructure.js +0 -11
  1720. package/node_modules/@swc/helpers/esm/_class_static_private_field_spec_get.js +0 -11
  1721. package/node_modules/@swc/helpers/esm/_class_static_private_field_spec_set.js +0 -12
  1722. package/node_modules/@swc/helpers/esm/_class_static_private_field_update.js +0 -11
  1723. package/node_modules/@swc/helpers/esm/_class_static_private_method_get.js +0 -8
  1724. package/node_modules/@swc/helpers/esm/_construct.js +0 -20
  1725. package/node_modules/@swc/helpers/esm/_create_class.js +0 -18
  1726. package/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js +0 -22
  1727. package/node_modules/@swc/helpers/esm/_create_super.js +0 -21
  1728. package/node_modules/@swc/helpers/esm/_decorate.js +0 -268
  1729. package/node_modules/@swc/helpers/esm/_defaults.js +0 -13
  1730. package/node_modules/@swc/helpers/esm/_define_enumerable_properties.js +0 -24
  1731. package/node_modules/@swc/helpers/esm/_define_property.js +0 -8
  1732. package/node_modules/@swc/helpers/esm/_dispose.js +0 -41
  1733. package/node_modules/@swc/helpers/esm/_export_star.js +0 -15
  1734. package/node_modules/@swc/helpers/esm/_extends.js +0 -13
  1735. package/node_modules/@swc/helpers/esm/_get.js +0 -21
  1736. package/node_modules/@swc/helpers/esm/_get_prototype_of.js +0 -8
  1737. package/node_modules/@swc/helpers/esm/_identity.js +0 -5
  1738. package/node_modules/@swc/helpers/esm/_inherits.js +0 -12
  1739. package/node_modules/@swc/helpers/esm/_inherits_loose.js +0 -6
  1740. package/node_modules/@swc/helpers/esm/_initializer_define_property.js +0 -11
  1741. package/node_modules/@swc/helpers/esm/_initializer_warning_helper.js +0 -9
  1742. package/node_modules/@swc/helpers/esm/_instanceof.js +0 -6
  1743. package/node_modules/@swc/helpers/esm/_interop_require_default.js +0 -4
  1744. package/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +0 -36
  1745. package/node_modules/@swc/helpers/esm/_is_native_function.js +0 -4
  1746. package/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js +0 -16
  1747. package/node_modules/@swc/helpers/esm/_iterable_to_array.js +0 -6
  1748. package/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js +0 -29
  1749. package/node_modules/@swc/helpers/esm/_iterable_to_array_limit_loose.js +0 -15
  1750. package/node_modules/@swc/helpers/esm/_jsx.js +0 -26
  1751. package/node_modules/@swc/helpers/esm/_new_arrow_check.js +0 -4
  1752. package/node_modules/@swc/helpers/esm/_non_iterable_rest.js +0 -4
  1753. package/node_modules/@swc/helpers/esm/_non_iterable_spread.js +0 -4
  1754. package/node_modules/@swc/helpers/esm/_object_destructuring_empty.js +0 -6
  1755. package/node_modules/@swc/helpers/esm/_object_spread.js +0 -23
  1756. package/node_modules/@swc/helpers/esm/_object_spread_props.js +0 -28
  1757. package/node_modules/@swc/helpers/esm/_object_without_properties.js +0 -21
  1758. package/node_modules/@swc/helpers/esm/_object_without_properties_loose.js +0 -16
  1759. package/node_modules/@swc/helpers/esm/_overload_yield.js +0 -6
  1760. package/node_modules/@swc/helpers/esm/_possible_constructor_return.js +0 -9
  1761. package/node_modules/@swc/helpers/esm/_read_only_error.js +0 -4
  1762. package/node_modules/@swc/helpers/esm/_set.js +0 -42
  1763. package/node_modules/@swc/helpers/esm/_set_prototype_of.js +0 -10
  1764. package/node_modules/@swc/helpers/esm/_skip_first_generator_next.js +0 -9
  1765. package/node_modules/@swc/helpers/esm/_sliced_to_array.js +0 -9
  1766. package/node_modules/@swc/helpers/esm/_sliced_to_array_loose.js +0 -9
  1767. package/node_modules/@swc/helpers/esm/_super_prop_base.js +0 -11
  1768. package/node_modules/@swc/helpers/esm/_tagged_template_literal.js +0 -6
  1769. package/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js +0 -8
  1770. package/node_modules/@swc/helpers/esm/_throw.js +0 -4
  1771. package/node_modules/@swc/helpers/esm/_to_array.js +0 -9
  1772. package/node_modules/@swc/helpers/esm/_to_consumable_array.js +0 -9
  1773. package/node_modules/@swc/helpers/esm/_to_primitive.js +0 -16
  1774. package/node_modules/@swc/helpers/esm/_to_property_key.js +0 -9
  1775. package/node_modules/@swc/helpers/esm/_ts_add_disposable_resource.js +0 -1
  1776. package/node_modules/@swc/helpers/esm/_ts_decorate.js +0 -1
  1777. package/node_modules/@swc/helpers/esm/_ts_dispose_resources.js +0 -1
  1778. package/node_modules/@swc/helpers/esm/_ts_generator.js +0 -1
  1779. package/node_modules/@swc/helpers/esm/_ts_metadata.js +0 -1
  1780. package/node_modules/@swc/helpers/esm/_ts_param.js +0 -1
  1781. package/node_modules/@swc/helpers/esm/_ts_values.js +0 -1
  1782. package/node_modules/@swc/helpers/esm/_type_of.js +0 -6
  1783. package/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js +0 -13
  1784. package/node_modules/@swc/helpers/esm/_update.js +0 -14
  1785. package/node_modules/@swc/helpers/esm/_using.js +0 -22
  1786. package/node_modules/@swc/helpers/esm/_using_ctx.js +0 -73
  1787. package/node_modules/@swc/helpers/esm/_wrap_async_generator.js +0 -8
  1788. package/node_modules/@swc/helpers/esm/_wrap_native_super.js +0 -26
  1789. package/node_modules/@swc/helpers/esm/_write_only_error.js +0 -4
  1790. package/node_modules/@swc/helpers/esm/index.js +0 -107
  1791. package/node_modules/@swc/helpers/package.json +0 -689
  1792. package/node_modules/@swc/helpers/scripts/ast_grep.js +0 -229
  1793. package/node_modules/@swc/helpers/scripts/build.js +0 -133
  1794. package/node_modules/@swc/helpers/scripts/errors.js +0 -1
  1795. package/node_modules/@swc/helpers/scripts/utils.js +0 -3
  1796. package/node_modules/@swc/helpers/src/_apply_decorated_descriptor.mjs +0 -1
  1797. package/node_modules/@swc/helpers/src/_apply_decs_2203_r.mjs +0 -1
  1798. package/node_modules/@swc/helpers/src/_array_like_to_array.mjs +0 -1
  1799. package/node_modules/@swc/helpers/src/_array_with_holes.mjs +0 -1
  1800. package/node_modules/@swc/helpers/src/_array_without_holes.mjs +0 -1
  1801. package/node_modules/@swc/helpers/src/_assert_this_initialized.mjs +0 -1
  1802. package/node_modules/@swc/helpers/src/_async_generator.mjs +0 -1
  1803. package/node_modules/@swc/helpers/src/_async_generator_delegate.mjs +0 -1
  1804. package/node_modules/@swc/helpers/src/_async_iterator.mjs +0 -1
  1805. package/node_modules/@swc/helpers/src/_async_to_generator.mjs +0 -1
  1806. package/node_modules/@swc/helpers/src/_await_async_generator.mjs +0 -1
  1807. package/node_modules/@swc/helpers/src/_await_value.mjs +0 -1
  1808. package/node_modules/@swc/helpers/src/_call_super.mjs +0 -1
  1809. package/node_modules/@swc/helpers/src/_check_private_redeclaration.mjs +0 -1
  1810. package/node_modules/@swc/helpers/src/_class_apply_descriptor_destructure.mjs +0 -1
  1811. package/node_modules/@swc/helpers/src/_class_apply_descriptor_get.mjs +0 -1
  1812. package/node_modules/@swc/helpers/src/_class_apply_descriptor_set.mjs +0 -1
  1813. package/node_modules/@swc/helpers/src/_class_apply_descriptor_update.mjs +0 -1
  1814. package/node_modules/@swc/helpers/src/_class_call_check.mjs +0 -1
  1815. package/node_modules/@swc/helpers/src/_class_check_private_static_access.mjs +0 -1
  1816. package/node_modules/@swc/helpers/src/_class_check_private_static_field_descriptor.mjs +0 -1
  1817. package/node_modules/@swc/helpers/src/_class_extract_field_descriptor.mjs +0 -1
  1818. package/node_modules/@swc/helpers/src/_class_name_tdz_error.mjs +0 -1
  1819. package/node_modules/@swc/helpers/src/_class_private_field_destructure.mjs +0 -1
  1820. package/node_modules/@swc/helpers/src/_class_private_field_get.mjs +0 -1
  1821. package/node_modules/@swc/helpers/src/_class_private_field_init.mjs +0 -1
  1822. package/node_modules/@swc/helpers/src/_class_private_field_loose_base.mjs +0 -1
  1823. package/node_modules/@swc/helpers/src/_class_private_field_loose_key.mjs +0 -1
  1824. package/node_modules/@swc/helpers/src/_class_private_field_set.mjs +0 -1
  1825. package/node_modules/@swc/helpers/src/_class_private_field_update.mjs +0 -1
  1826. package/node_modules/@swc/helpers/src/_class_private_method_get.mjs +0 -1
  1827. package/node_modules/@swc/helpers/src/_class_private_method_init.mjs +0 -1
  1828. package/node_modules/@swc/helpers/src/_class_private_method_set.mjs +0 -1
  1829. package/node_modules/@swc/helpers/src/_class_static_private_field_destructure.mjs +0 -1
  1830. package/node_modules/@swc/helpers/src/_class_static_private_field_spec_get.mjs +0 -1
  1831. package/node_modules/@swc/helpers/src/_class_static_private_field_spec_set.mjs +0 -1
  1832. package/node_modules/@swc/helpers/src/_class_static_private_field_update.mjs +0 -1
  1833. package/node_modules/@swc/helpers/src/_class_static_private_method_get.mjs +0 -1
  1834. package/node_modules/@swc/helpers/src/_construct.mjs +0 -1
  1835. package/node_modules/@swc/helpers/src/_create_class.mjs +0 -1
  1836. package/node_modules/@swc/helpers/src/_create_for_of_iterator_helper_loose.mjs +0 -1
  1837. package/node_modules/@swc/helpers/src/_create_super.mjs +0 -1
  1838. package/node_modules/@swc/helpers/src/_decorate.mjs +0 -1
  1839. package/node_modules/@swc/helpers/src/_defaults.mjs +0 -1
  1840. package/node_modules/@swc/helpers/src/_define_enumerable_properties.mjs +0 -1
  1841. package/node_modules/@swc/helpers/src/_define_property.mjs +0 -1
  1842. package/node_modules/@swc/helpers/src/_dispose.mjs +0 -1
  1843. package/node_modules/@swc/helpers/src/_export_star.mjs +0 -1
  1844. package/node_modules/@swc/helpers/src/_extends.mjs +0 -1
  1845. package/node_modules/@swc/helpers/src/_get.mjs +0 -1
  1846. package/node_modules/@swc/helpers/src/_get_prototype_of.mjs +0 -1
  1847. package/node_modules/@swc/helpers/src/_identity.mjs +0 -1
  1848. package/node_modules/@swc/helpers/src/_inherits.mjs +0 -1
  1849. package/node_modules/@swc/helpers/src/_inherits_loose.mjs +0 -1
  1850. package/node_modules/@swc/helpers/src/_initializer_define_property.mjs +0 -1
  1851. package/node_modules/@swc/helpers/src/_initializer_warning_helper.mjs +0 -1
  1852. package/node_modules/@swc/helpers/src/_instanceof.mjs +0 -1
  1853. package/node_modules/@swc/helpers/src/_interop_require_default.mjs +0 -1
  1854. package/node_modules/@swc/helpers/src/_interop_require_wildcard.mjs +0 -1
  1855. package/node_modules/@swc/helpers/src/_is_native_function.mjs +0 -1
  1856. package/node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs +0 -1
  1857. package/node_modules/@swc/helpers/src/_iterable_to_array.mjs +0 -1
  1858. package/node_modules/@swc/helpers/src/_iterable_to_array_limit.mjs +0 -1
  1859. package/node_modules/@swc/helpers/src/_iterable_to_array_limit_loose.mjs +0 -1
  1860. package/node_modules/@swc/helpers/src/_jsx.mjs +0 -1
  1861. package/node_modules/@swc/helpers/src/_new_arrow_check.mjs +0 -1
  1862. package/node_modules/@swc/helpers/src/_non_iterable_rest.mjs +0 -1
  1863. package/node_modules/@swc/helpers/src/_non_iterable_spread.mjs +0 -1
  1864. package/node_modules/@swc/helpers/src/_object_destructuring_empty.mjs +0 -1
  1865. package/node_modules/@swc/helpers/src/_object_spread.mjs +0 -1
  1866. package/node_modules/@swc/helpers/src/_object_spread_props.mjs +0 -1
  1867. package/node_modules/@swc/helpers/src/_object_without_properties.mjs +0 -1
  1868. package/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs +0 -1
  1869. package/node_modules/@swc/helpers/src/_overload_yield.mjs +0 -1
  1870. package/node_modules/@swc/helpers/src/_possible_constructor_return.mjs +0 -1
  1871. package/node_modules/@swc/helpers/src/_read_only_error.mjs +0 -1
  1872. package/node_modules/@swc/helpers/src/_set.mjs +0 -1
  1873. package/node_modules/@swc/helpers/src/_set_prototype_of.mjs +0 -1
  1874. package/node_modules/@swc/helpers/src/_skip_first_generator_next.mjs +0 -1
  1875. package/node_modules/@swc/helpers/src/_sliced_to_array.mjs +0 -1
  1876. package/node_modules/@swc/helpers/src/_sliced_to_array_loose.mjs +0 -1
  1877. package/node_modules/@swc/helpers/src/_super_prop_base.mjs +0 -1
  1878. package/node_modules/@swc/helpers/src/_tagged_template_literal.mjs +0 -1
  1879. package/node_modules/@swc/helpers/src/_tagged_template_literal_loose.mjs +0 -1
  1880. package/node_modules/@swc/helpers/src/_throw.mjs +0 -1
  1881. package/node_modules/@swc/helpers/src/_to_array.mjs +0 -1
  1882. package/node_modules/@swc/helpers/src/_to_consumable_array.mjs +0 -1
  1883. package/node_modules/@swc/helpers/src/_to_primitive.mjs +0 -1
  1884. package/node_modules/@swc/helpers/src/_to_property_key.mjs +0 -1
  1885. package/node_modules/@swc/helpers/src/_ts_add_disposable_resource.mjs +0 -1
  1886. package/node_modules/@swc/helpers/src/_ts_decorate.mjs +0 -1
  1887. package/node_modules/@swc/helpers/src/_ts_dispose_resources.mjs +0 -1
  1888. package/node_modules/@swc/helpers/src/_ts_generator.mjs +0 -1
  1889. package/node_modules/@swc/helpers/src/_ts_metadata.mjs +0 -1
  1890. package/node_modules/@swc/helpers/src/_ts_param.mjs +0 -1
  1891. package/node_modules/@swc/helpers/src/_ts_values.mjs +0 -1
  1892. package/node_modules/@swc/helpers/src/_type_of.mjs +0 -1
  1893. package/node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs +0 -1
  1894. package/node_modules/@swc/helpers/src/_update.mjs +0 -1
  1895. package/node_modules/@swc/helpers/src/_using.mjs +0 -1
  1896. package/node_modules/@swc/helpers/src/_using_ctx.mjs +0 -1
  1897. package/node_modules/@swc/helpers/src/_wrap_async_generator.mjs +0 -1
  1898. package/node_modules/@swc/helpers/src/_wrap_native_super.mjs +0 -1
  1899. package/node_modules/@swc/helpers/src/_write_only_error.mjs +0 -1
  1900. package/node_modules/@swc/helpers/src/index.mjs +0 -1
  1901. package/node_modules/@types/connect/LICENSE +0 -21
  1902. package/node_modules/@types/connect/README.md +0 -15
  1903. package/node_modules/@types/connect/index.d.ts +0 -91
  1904. package/node_modules/@types/connect/package.json +0 -32
  1905. package/node_modules/@types/node/LICENSE +0 -21
  1906. package/node_modules/@types/node/README.md +0 -15
  1907. package/node_modules/@types/node/assert/strict.d.ts +0 -8
  1908. package/node_modules/@types/node/assert.d.ts +0 -1054
  1909. package/node_modules/@types/node/async_hooks.d.ts +0 -603
  1910. package/node_modules/@types/node/buffer.buffer.d.ts +0 -463
  1911. package/node_modules/@types/node/buffer.d.ts +0 -1926
  1912. package/node_modules/@types/node/child_process.d.ts +0 -1549
  1913. package/node_modules/@types/node/cluster.d.ts +0 -579
  1914. package/node_modules/@types/node/compatibility/disposable.d.ts +0 -16
  1915. package/node_modules/@types/node/compatibility/index.d.ts +0 -9
  1916. package/node_modules/@types/node/compatibility/indexable.d.ts +0 -23
  1917. package/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  1918. package/node_modules/@types/node/console.d.ts +0 -452
  1919. package/node_modules/@types/node/constants.d.ts +0 -21
  1920. package/node_modules/@types/node/crypto.d.ts +0 -4509
  1921. package/node_modules/@types/node/dgram.d.ts +0 -599
  1922. package/node_modules/@types/node/diagnostics_channel.d.ts +0 -573
  1923. package/node_modules/@types/node/dns/promises.d.ts +0 -476
  1924. package/node_modules/@types/node/dns.d.ts +0 -865
  1925. package/node_modules/@types/node/dom-events.d.ts +0 -124
  1926. package/node_modules/@types/node/domain.d.ts +0 -170
  1927. package/node_modules/@types/node/events.d.ts +0 -931
  1928. package/node_modules/@types/node/fs/promises.d.ts +0 -1272
  1929. package/node_modules/@types/node/fs.d.ts +0 -4437
  1930. package/node_modules/@types/node/globals.d.ts +0 -371
  1931. package/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  1932. package/node_modules/@types/node/http.d.ts +0 -1980
  1933. package/node_modules/@types/node/http2.d.ts +0 -2557
  1934. package/node_modules/@types/node/https.d.ts +0 -545
  1935. package/node_modules/@types/node/index.d.ts +0 -92
  1936. package/node_modules/@types/node/inspector.d.ts +0 -4002
  1937. package/node_modules/@types/node/module.d.ts +0 -772
  1938. package/node_modules/@types/node/net.d.ts +0 -1035
  1939. package/node_modules/@types/node/os.d.ts +0 -495
  1940. package/node_modules/@types/node/package.json +0 -225
  1941. package/node_modules/@types/node/path.d.ts +0 -200
  1942. package/node_modules/@types/node/perf_hooks.d.ts +0 -970
  1943. package/node_modules/@types/node/process.d.ts +0 -2063
  1944. package/node_modules/@types/node/punycode.d.ts +0 -117
  1945. package/node_modules/@types/node/querystring.d.ts +0 -152
  1946. package/node_modules/@types/node/readline/promises.d.ts +0 -162
  1947. package/node_modules/@types/node/readline.d.ts +0 -594
  1948. package/node_modules/@types/node/repl.d.ts +0 -430
  1949. package/node_modules/@types/node/sea.d.ts +0 -153
  1950. package/node_modules/@types/node/sqlite.d.ts +0 -508
  1951. package/node_modules/@types/node/stream/consumers.d.ts +0 -38
  1952. package/node_modules/@types/node/stream/promises.d.ts +0 -90
  1953. package/node_modules/@types/node/stream/web.d.ts +0 -614
  1954. package/node_modules/@types/node/stream.d.ts +0 -1662
  1955. package/node_modules/@types/node/string_decoder.d.ts +0 -67
  1956. package/node_modules/@types/node/test.d.ts +0 -2280
  1957. package/node_modules/@types/node/timers/promises.d.ts +0 -108
  1958. package/node_modules/@types/node/timers.d.ts +0 -287
  1959. package/node_modules/@types/node/tls.d.ts +0 -1259
  1960. package/node_modules/@types/node/trace_events.d.ts +0 -197
  1961. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -460
  1962. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  1963. package/node_modules/@types/node/ts5.6/index.d.ts +0 -92
  1964. package/node_modules/@types/node/tty.d.ts +0 -208
  1965. package/node_modules/@types/node/url.d.ts +0 -972
  1966. package/node_modules/@types/node/util.d.ts +0 -2584
  1967. package/node_modules/@types/node/v8.d.ts +0 -889
  1968. package/node_modules/@types/node/vm.d.ts +0 -991
  1969. package/node_modules/@types/node/wasi.d.ts +0 -181
  1970. package/node_modules/@types/node/worker_threads.d.ts +0 -746
  1971. package/node_modules/@types/node/zlib.d.ts +0 -670
  1972. package/node_modules/@types/uuid/LICENSE +0 -21
  1973. package/node_modules/@types/uuid/README.md +0 -16
  1974. package/node_modules/@types/uuid/index.d.mts +0 -10
  1975. package/node_modules/@types/uuid/index.d.ts +0 -80
  1976. package/node_modules/@types/uuid/package.json +0 -54
  1977. package/node_modules/@types/ws/LICENSE +0 -21
  1978. package/node_modules/@types/ws/README.md +0 -16
  1979. package/node_modules/@types/ws/index.d.ts +0 -353
  1980. package/node_modules/@types/ws/package.json +0 -57
  1981. package/node_modules/agentkeepalive/LICENSE +0 -23
  1982. package/node_modules/agentkeepalive/README.md +0 -256
  1983. package/node_modules/agentkeepalive/browser.js +0 -5
  1984. package/node_modules/agentkeepalive/index.d.ts +0 -69
  1985. package/node_modules/agentkeepalive/index.js +0 -7
  1986. package/node_modules/agentkeepalive/lib/agent.js +0 -402
  1987. package/node_modules/agentkeepalive/lib/constants.js +0 -14
  1988. package/node_modules/agentkeepalive/lib/https_agent.js +0 -51
  1989. package/node_modules/agentkeepalive/package.json +0 -56
  1990. package/node_modules/base-x/LICENSE.md +0 -22
  1991. package/node_modules/base-x/README.md +0 -67
  1992. package/node_modules/base-x/package.json +0 -49
  1993. package/node_modules/base-x/src/index.d.ts +0 -10
  1994. package/node_modules/base-x/src/index.js +0 -123
  1995. package/node_modules/base64-js/LICENSE +0 -21
  1996. package/node_modules/base64-js/README.md +0 -34
  1997. package/node_modules/base64-js/base64js.min.js +0 -1
  1998. package/node_modules/base64-js/index.d.ts +0 -3
  1999. package/node_modules/base64-js/index.js +0 -150
  2000. package/node_modules/base64-js/package.json +0 -47
  2001. package/node_modules/bn.js/LICENSE +0 -19
  2002. package/node_modules/bn.js/README.md +0 -214
  2003. package/node_modules/bn.js/lib/bn.js +0 -3548
  2004. package/node_modules/bn.js/package.json +0 -39
  2005. package/node_modules/borsh/LICENSE-APACHE +0 -201
  2006. package/node_modules/borsh/LICENSE-MIT.txt +0 -23
  2007. package/node_modules/borsh/README.md +0 -83
  2008. package/node_modules/borsh/lib/index.d.ts +0 -52
  2009. package/node_modules/borsh/lib/index.js +0 -440
  2010. package/node_modules/borsh/package.json +0 -61
  2011. package/node_modules/bs58/README.md +0 -71
  2012. package/node_modules/bs58/index.js +0 -4
  2013. package/node_modules/bs58/package.json +0 -37
  2014. package/node_modules/buffer/AUTHORS.md +0 -73
  2015. package/node_modules/buffer/LICENSE +0 -21
  2016. package/node_modules/buffer/README.md +0 -410
  2017. package/node_modules/buffer/index.d.ts +0 -194
  2018. package/node_modules/buffer/index.js +0 -2106
  2019. package/node_modules/buffer/package.json +0 -93
  2020. package/node_modules/buffer-layout/.eslintrc.js +0 -45
  2021. package/node_modules/buffer-layout/.travis.yml +0 -9
  2022. package/node_modules/buffer-layout/CHANGELOG.md +0 -222
  2023. package/node_modules/buffer-layout/LICENSE +0 -21
  2024. package/node_modules/buffer-layout/README.md +0 -397
  2025. package/node_modules/buffer-layout/jsdoc/conf.json +0 -10
  2026. package/node_modules/buffer-layout/jsdoc/custom/local.js +0 -75
  2027. package/node_modules/buffer-layout/lib/Layout.js +0 -2712
  2028. package/node_modules/buffer-layout/package.json +0 -40
  2029. package/node_modules/buffer-layout/test/LayoutTest.js +0 -2162
  2030. package/node_modules/buffer-layout/test/examples.c +0 -112
  2031. package/node_modules/buffer-layout/test/examples.js +0 -259
  2032. package/node_modules/buffer-layout/test/n64.c +0 -71
  2033. package/node_modules/buffer-layout/x.js +0 -36
  2034. package/node_modules/bufferutil/LICENSE +0 -20
  2035. package/node_modules/bufferutil/README.md +0 -79
  2036. package/node_modules/bufferutil/binding.gyp +0 -32
  2037. package/node_modules/bufferutil/fallback.js +0 -34
  2038. package/node_modules/bufferutil/index.js +0 -7
  2039. package/node_modules/bufferutil/package.json +0 -36
  2040. package/node_modules/bufferutil/prebuilds/darwin-x64+arm64/bufferutil.node +0 -0
  2041. package/node_modules/bufferutil/prebuilds/linux-x64/bufferutil.node +0 -0
  2042. package/node_modules/bufferutil/prebuilds/win32-ia32/bufferutil.node +0 -0
  2043. package/node_modules/bufferutil/prebuilds/win32-x64/bufferutil.node +0 -0
  2044. package/node_modules/bufferutil/src/bufferutil.c +0 -171
  2045. package/node_modules/camelcase/index.d.ts +0 -103
  2046. package/node_modules/camelcase/index.js +0 -113
  2047. package/node_modules/camelcase/license +0 -9
  2048. package/node_modules/camelcase/package.json +0 -44
  2049. package/node_modules/camelcase/readme.md +0 -144
  2050. package/node_modules/commander/LICENSE +0 -22
  2051. package/node_modules/commander/Readme.md +0 -428
  2052. package/node_modules/commander/index.js +0 -1224
  2053. package/node_modules/commander/package.json +0 -38
  2054. package/node_modules/commander/typings/index.d.ts +0 -310
  2055. package/node_modules/cross-fetch/LICENSE +0 -21
  2056. package/node_modules/cross-fetch/README.md +0 -169
  2057. package/node_modules/cross-fetch/dist/browser-polyfill.js +0 -658
  2058. package/node_modules/cross-fetch/dist/browser-ponyfill.js +0 -686
  2059. package/node_modules/cross-fetch/dist/cross-fetch.js +0 -2
  2060. package/node_modules/cross-fetch/dist/cross-fetch.js.map +0 -1
  2061. package/node_modules/cross-fetch/dist/node-polyfill.js +0 -11
  2062. package/node_modules/cross-fetch/dist/node-ponyfill.js +0 -22
  2063. package/node_modules/cross-fetch/dist/react-native-polyfill.js +0 -12
  2064. package/node_modules/cross-fetch/dist/react-native-ponyfill.js +0 -6
  2065. package/node_modules/cross-fetch/index.d.ts +0 -14
  2066. package/node_modules/cross-fetch/package.json +0 -127
  2067. package/node_modules/cross-fetch/polyfill/package.json +0 -8
  2068. package/node_modules/delay/index.d.ts +0 -107
  2069. package/node_modules/delay/index.js +0 -72
  2070. package/node_modules/delay/license +0 -9
  2071. package/node_modules/delay/package.json +0 -54
  2072. package/node_modules/delay/readme.md +0 -173
  2073. package/node_modules/es6-promise/LICENSE +0 -19
  2074. package/node_modules/es6-promise/README.md +0 -97
  2075. package/node_modules/es6-promise/auto.js +0 -4
  2076. package/node_modules/es6-promise/dist/es6-promise.auto.js +0 -1176
  2077. package/node_modules/es6-promise/dist/es6-promise.auto.map +0 -1
  2078. package/node_modules/es6-promise/dist/es6-promise.auto.min.js +0 -1
  2079. package/node_modules/es6-promise/dist/es6-promise.auto.min.map +0 -1
  2080. package/node_modules/es6-promise/dist/es6-promise.js +0 -1174
  2081. package/node_modules/es6-promise/dist/es6-promise.map +0 -1
  2082. package/node_modules/es6-promise/dist/es6-promise.min.js +0 -1
  2083. package/node_modules/es6-promise/dist/es6-promise.min.map +0 -1
  2084. package/node_modules/es6-promise/es6-promise.d.ts +0 -85
  2085. package/node_modules/es6-promise/lib/es6-promise/-internal.js +0 -243
  2086. package/node_modules/es6-promise/lib/es6-promise/asap.js +0 -119
  2087. package/node_modules/es6-promise/lib/es6-promise/enumerator.js +0 -124
  2088. package/node_modules/es6-promise/lib/es6-promise/polyfill.js +0 -35
  2089. package/node_modules/es6-promise/lib/es6-promise/promise/all.js +0 -52
  2090. package/node_modules/es6-promise/lib/es6-promise/promise/race.js +0 -84
  2091. package/node_modules/es6-promise/lib/es6-promise/promise/reject.js +0 -46
  2092. package/node_modules/es6-promise/lib/es6-promise/promise/resolve.js +0 -48
  2093. package/node_modules/es6-promise/lib/es6-promise/promise.js +0 -431
  2094. package/node_modules/es6-promise/lib/es6-promise/then.js +0 -32
  2095. package/node_modules/es6-promise/lib/es6-promise/utils.js +0 -21
  2096. package/node_modules/es6-promise/lib/es6-promise.auto.js +0 -3
  2097. package/node_modules/es6-promise/lib/es6-promise.js +0 -7
  2098. package/node_modules/es6-promise/package.json +0 -78
  2099. package/node_modules/es6-promisify/README.md +0 -89
  2100. package/node_modules/es6-promisify/dist/promise.js +0 -73
  2101. package/node_modules/es6-promisify/dist/promisify.js +0 -85
  2102. package/node_modules/es6-promisify/package.json +0 -41
  2103. package/node_modules/eventemitter3/LICENSE +0 -21
  2104. package/node_modules/eventemitter3/README.md +0 -94
  2105. package/node_modules/eventemitter3/index.d.ts +0 -134
  2106. package/node_modules/eventemitter3/index.js +0 -336
  2107. package/node_modules/eventemitter3/package.json +0 -56
  2108. package/node_modules/eventemitter3/umd/eventemitter3.js +0 -340
  2109. package/node_modules/eventemitter3/umd/eventemitter3.min.js +0 -1
  2110. package/node_modules/eventemitter3/umd/eventemitter3.min.js.map +0 -1
  2111. package/node_modules/eyes/LICENSE +0 -20
  2112. package/node_modules/eyes/Makefile +0 -4
  2113. package/node_modules/eyes/README.md +0 -73
  2114. package/node_modules/eyes/lib/eyes.js +0 -236
  2115. package/node_modules/eyes/package.json +0 -14
  2116. package/node_modules/eyes/test/eyes-test.js +0 -56
  2117. package/node_modules/fast-stable-stringify/.npmignore +0 -4
  2118. package/node_modules/fast-stable-stringify/.travis.yml +0 -10
  2119. package/node_modules/fast-stable-stringify/LICENSE +0 -21
  2120. package/node_modules/fast-stable-stringify/README.md +0 -81
  2121. package/node_modules/fast-stable-stringify/cli/files-to-comparison-results.js +0 -67
  2122. package/node_modules/fast-stable-stringify/cli/format-table.js +0 -70
  2123. package/node_modules/fast-stable-stringify/cli/index.js +0 -19
  2124. package/node_modules/fast-stable-stringify/fixtures/index.js +0 -5
  2125. package/node_modules/fast-stable-stringify/fixtures/input-data-types.js +0 -191
  2126. package/node_modules/fast-stable-stringify/fixtures/log-result.json +0 -22
  2127. package/node_modules/fast-stable-stringify/fixtures/log.txt +0 -24
  2128. package/node_modules/fast-stable-stringify/index.js +0 -73
  2129. package/node_modules/fast-stable-stringify/karma.conf.js +0 -124
  2130. package/node_modules/fast-stable-stringify/karma.conf.travis.js +0 -95
  2131. package/node_modules/fast-stable-stringify/package.json +0 -47
  2132. package/node_modules/fast-stable-stringify/results/escape-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  2133. package/node_modules/fast-stable-stringify/results/escape-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  2134. package/node_modules/fast-stable-stringify/results/escape-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  2135. package/node_modules/fast-stable-stringify/results/escape-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  2136. package/node_modules/fast-stable-stringify/results/escape-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  2137. package/node_modules/fast-stable-stringify/results/escape-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  2138. package/node_modules/fast-stable-stringify/results/escape-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  2139. package/node_modules/fast-stable-stringify/results/escape-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  2140. package/node_modules/fast-stable-stringify/results/escape-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  2141. package/node_modules/fast-stable-stringify/results/escape-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  2142. package/node_modules/fast-stable-stringify/results/escape-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  2143. package/node_modules/fast-stable-stringify/results/escape-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  2144. package/node_modules/fast-stable-stringify/results/escape-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  2145. package/node_modules/fast-stable-stringify/results/escape-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  2146. package/node_modules/fast-stable-stringify/results/escape-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  2147. package/node_modules/fast-stable-stringify/results/escape-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  2148. package/node_modules/fast-stable-stringify/results/escape-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  2149. package/node_modules/fast-stable-stringify/results/escape-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  2150. package/node_modules/fast-stable-stringify/results/escape.md +0 -20
  2151. package/node_modules/fast-stable-stringify/results/itar-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  2152. package/node_modules/fast-stable-stringify/results/itar-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  2153. package/node_modules/fast-stable-stringify/results/itar-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  2154. package/node_modules/fast-stable-stringify/results/itar-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  2155. package/node_modules/fast-stable-stringify/results/itar-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  2156. package/node_modules/fast-stable-stringify/results/itar-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  2157. package/node_modules/fast-stable-stringify/results/itar-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  2158. package/node_modules/fast-stable-stringify/results/itar-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  2159. package/node_modules/fast-stable-stringify/results/itar-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  2160. package/node_modules/fast-stable-stringify/results/itar-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  2161. package/node_modules/fast-stable-stringify/results/itar-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  2162. package/node_modules/fast-stable-stringify/results/itar-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  2163. package/node_modules/fast-stable-stringify/results/itar-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  2164. package/node_modules/fast-stable-stringify/results/itar-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  2165. package/node_modules/fast-stable-stringify/results/itar-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  2166. package/node_modules/fast-stable-stringify/results/itar-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  2167. package/node_modules/fast-stable-stringify/results/itar-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  2168. package/node_modules/fast-stable-stringify/results/itar-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  2169. package/node_modules/fast-stable-stringify/results/itar.md +0 -20
  2170. package/node_modules/fast-stable-stringify/results/iter/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  2171. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 39.0.0 (Android 5.1.1).json +0 -35
  2172. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  2173. package/node_modules/fast-stable-stringify/results/iter/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  2174. package/node_modules/fast-stable-stringify/results/iter/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  2175. package/node_modules/fast-stable-stringify/results/iter/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  2176. package/node_modules/fast-stable-stringify/results/iter/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  2177. package/node_modules/fast-stable-stringify/results/iter/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  2178. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  2179. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 9.0.0 (iOS 9.2.0).json +0 -35
  2180. package/node_modules/fast-stable-stringify/results/iter/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  2181. package/node_modules/fast-stable-stringify/results/iter/Safari 9.1.2 (Mac OS X 10.11.6).json +0 -35
  2182. package/node_modules/fast-stable-stringify/results/iter.md +0 -14
  2183. package/node_modules/fast-stable-stringify/results/libs/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -46
  2184. package/node_modules/fast-stable-stringify/results/libs/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -46
  2185. package/node_modules/fast-stable-stringify/results/libs/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -46
  2186. package/node_modules/fast-stable-stringify/results/libs/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -46
  2187. package/node_modules/fast-stable-stringify/results/libs/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  2188. package/node_modules/fast-stable-stringify/results/libs/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  2189. package/node_modules/fast-stable-stringify/results/libs/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  2190. package/node_modules/fast-stable-stringify/results/libs/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -46
  2191. package/node_modules/fast-stable-stringify/results/libs/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -46
  2192. package/node_modules/fast-stable-stringify/results/libs.md +0 -15
  2193. package/node_modules/fast-stable-stringify/test/escape-long.js +0 -147
  2194. package/node_modules/fast-stable-stringify/test/escape-short.js +0 -147
  2195. package/node_modules/fast-stable-stringify/test/index.js +0 -6
  2196. package/node_modules/fast-stable-stringify/test/itar-long.js +0 -52
  2197. package/node_modules/fast-stable-stringify/test/itar-short.js +0 -52
  2198. package/node_modules/fast-stable-stringify/test/iter.js +0 -84
  2199. package/node_modules/fast-stable-stringify/test/libs.js +0 -57
  2200. package/node_modules/fast-stable-stringify/test/travis.js +0 -43
  2201. package/node_modules/fast-stable-stringify/test/validate.js +0 -24
  2202. package/node_modules/fast-stable-stringify/util/eachRecursive.js +0 -9
  2203. package/node_modules/fast-stable-stringify/util/get-git-hash-sync.js +0 -21
  2204. package/node_modules/fast-stable-stringify/util/get-lib-info.js +0 -22
  2205. package/node_modules/fast-stable-stringify/util/object-path.js +0 -47
  2206. package/node_modules/fast-stable-stringify/v8-profile/bench.js +0 -8
  2207. package/node_modules/fast-stable-stringify/v8-profile/run.sh +0 -2
  2208. package/node_modules/fast-stable-stringify/zuul-local.sh +0 -2
  2209. package/node_modules/humanize-ms/LICENSE +0 -17
  2210. package/node_modules/humanize-ms/README.md +0 -40
  2211. package/node_modules/humanize-ms/index.js +0 -24
  2212. package/node_modules/humanize-ms/package.json +0 -37
  2213. package/node_modules/ieee754/LICENSE +0 -11
  2214. package/node_modules/ieee754/README.md +0 -51
  2215. package/node_modules/ieee754/index.d.ts +0 -10
  2216. package/node_modules/ieee754/index.js +0 -85
  2217. package/node_modules/ieee754/package.json +0 -52
  2218. package/node_modules/isomorphic-ws/LICENSE +0 -21
  2219. package/node_modules/isomorphic-ws/README.md +0 -58
  2220. package/node_modules/isomorphic-ws/browser.js +0 -17
  2221. package/node_modules/isomorphic-ws/index.d.ts +0 -8
  2222. package/node_modules/isomorphic-ws/node.js +0 -3
  2223. package/node_modules/isomorphic-ws/package.json +0 -34
  2224. package/node_modules/jayson/.gitignore +0 -8
  2225. package/node_modules/jayson/LICENSE +0 -22
  2226. package/node_modules/jayson/README.md +0 -1387
  2227. package/node_modules/jayson/bin/jayson.js +0 -111
  2228. package/node_modules/jayson/index.d.ts +0 -370
  2229. package/node_modules/jayson/index.js +0 -1
  2230. package/node_modules/jayson/lib/client/browser/index.d.ts +0 -14
  2231. package/node_modules/jayson/lib/client/browser/index.js +0 -163
  2232. package/node_modules/jayson/lib/client/http.js +0 -116
  2233. package/node_modules/jayson/lib/client/https.js +0 -34
  2234. package/node_modules/jayson/lib/client/index.js +0 -220
  2235. package/node_modules/jayson/lib/client/tcp.js +0 -90
  2236. package/node_modules/jayson/lib/client/tls.js +0 -89
  2237. package/node_modules/jayson/lib/client/websocket.js +0 -135
  2238. package/node_modules/jayson/lib/generateRequest.js +0 -63
  2239. package/node_modules/jayson/lib/index.js +0 -31
  2240. package/node_modules/jayson/lib/method.js +0 -120
  2241. package/node_modules/jayson/lib/server/http.js +0 -26
  2242. package/node_modules/jayson/lib/server/https.js +0 -26
  2243. package/node_modules/jayson/lib/server/index.js +0 -475
  2244. package/node_modules/jayson/lib/server/middleware.js +0 -75
  2245. package/node_modules/jayson/lib/server/tcp.js +0 -72
  2246. package/node_modules/jayson/lib/server/tls.js +0 -72
  2247. package/node_modules/jayson/lib/server/websocket.js +0 -62
  2248. package/node_modules/jayson/lib/utils.js +0 -514
  2249. package/node_modules/jayson/node_modules/@types/node/LICENSE +0 -21
  2250. package/node_modules/jayson/node_modules/@types/node/README.md +0 -16
  2251. package/node_modules/jayson/node_modules/@types/node/assert.d.ts +0 -117
  2252. package/node_modules/jayson/node_modules/@types/node/async_hooks.d.ts +0 -246
  2253. package/node_modules/jayson/node_modules/@types/node/buffer.d.ts +0 -22
  2254. package/node_modules/jayson/node_modules/@types/node/child_process.d.ts +0 -507
  2255. package/node_modules/jayson/node_modules/@types/node/cluster.d.ts +0 -260
  2256. package/node_modules/jayson/node_modules/@types/node/console.d.ts +0 -3
  2257. package/node_modules/jayson/node_modules/@types/node/constants.d.ts +0 -448
  2258. package/node_modules/jayson/node_modules/@types/node/crypto.d.ts +0 -1183
  2259. package/node_modules/jayson/node_modules/@types/node/dgram.d.ts +0 -118
  2260. package/node_modules/jayson/node_modules/@types/node/dns.d.ts +0 -372
  2261. package/node_modules/jayson/node_modules/@types/node/domain.d.ts +0 -16
  2262. package/node_modules/jayson/node_modules/@types/node/events.d.ts +0 -47
  2263. package/node_modules/jayson/node_modules/@types/node/fs.d.ts +0 -2567
  2264. package/node_modules/jayson/node_modules/@types/node/globals.d.ts +0 -1351
  2265. package/node_modules/jayson/node_modules/@types/node/globals.global.d.ts +0 -1
  2266. package/node_modules/jayson/node_modules/@types/node/http.d.ts +0 -456
  2267. package/node_modules/jayson/node_modules/@types/node/http2.d.ts +0 -952
  2268. package/node_modules/jayson/node_modules/@types/node/https.d.ts +0 -156
  2269. package/node_modules/jayson/node_modules/@types/node/index.d.ts +0 -91
  2270. package/node_modules/jayson/node_modules/@types/node/inspector.d.ts +0 -3040
  2271. package/node_modules/jayson/node_modules/@types/node/module.d.ts +0 -3
  2272. package/node_modules/jayson/node_modules/@types/node/net.d.ts +0 -290
  2273. package/node_modules/jayson/node_modules/@types/node/os.d.ts +0 -263
  2274. package/node_modules/jayson/node_modules/@types/node/package.json +0 -195
  2275. package/node_modules/jayson/node_modules/@types/node/path.d.ts +0 -159
  2276. package/node_modules/jayson/node_modules/@types/node/perf_hooks.d.ts +0 -259
  2277. package/node_modules/jayson/node_modules/@types/node/process.d.ts +0 -15
  2278. package/node_modules/jayson/node_modules/@types/node/punycode.d.ts +0 -75
  2279. package/node_modules/jayson/node_modules/@types/node/querystring.d.ts +0 -29
  2280. package/node_modules/jayson/node_modules/@types/node/readline.d.ts +0 -158
  2281. package/node_modules/jayson/node_modules/@types/node/repl.d.ts +0 -390
  2282. package/node_modules/jayson/node_modules/@types/node/stream.d.ts +0 -334
  2283. package/node_modules/jayson/node_modules/@types/node/string_decoder.d.ts +0 -7
  2284. package/node_modules/jayson/node_modules/@types/node/timers.d.ts +0 -16
  2285. package/node_modules/jayson/node_modules/@types/node/tls.d.ts +0 -713
  2286. package/node_modules/jayson/node_modules/@types/node/trace_events.d.ts +0 -61
  2287. package/node_modules/jayson/node_modules/@types/node/tty.d.ts +0 -66
  2288. package/node_modules/jayson/node_modules/@types/node/url.d.ts +0 -147
  2289. package/node_modules/jayson/node_modules/@types/node/util.d.ts +0 -200
  2290. package/node_modules/jayson/node_modules/@types/node/v8.d.ts +0 -197
  2291. package/node_modules/jayson/node_modules/@types/node/vm.d.ts +0 -112
  2292. package/node_modules/jayson/node_modules/@types/node/wasi.d.ts +0 -55
  2293. package/node_modules/jayson/node_modules/@types/node/worker_threads.d.ts +0 -207
  2294. package/node_modules/jayson/node_modules/@types/node/zlib.d.ts +0 -356
  2295. package/node_modules/jayson/package.json +0 -89
  2296. package/node_modules/jayson/promise/index.d.ts +0 -367
  2297. package/node_modules/jayson/promise/index.js +0 -3
  2298. package/node_modules/jayson/promise/lib/client/browser/index.d.ts +0 -12
  2299. package/node_modules/jayson/promise/lib/client/browser/index.js +0 -28
  2300. package/node_modules/jayson/promise/lib/client/http.js +0 -23
  2301. package/node_modules/jayson/promise/lib/client/https.js +0 -24
  2302. package/node_modules/jayson/promise/lib/client/index.js +0 -53
  2303. package/node_modules/jayson/promise/lib/client/tcp.js +0 -23
  2304. package/node_modules/jayson/promise/lib/client/tls.js +0 -23
  2305. package/node_modules/jayson/promise/lib/client/websocket.js +0 -23
  2306. package/node_modules/jayson/promise/lib/index.js +0 -33
  2307. package/node_modules/jayson/promise/lib/method.js +0 -54
  2308. package/node_modules/jayson/promise/lib/server.js +0 -23
  2309. package/node_modules/jayson/promise/lib/utils.js +0 -23
  2310. package/node_modules/json-stringify-safe/.npmignore +0 -1
  2311. package/node_modules/json-stringify-safe/CHANGELOG.md +0 -14
  2312. package/node_modules/json-stringify-safe/LICENSE +0 -15
  2313. package/node_modules/json-stringify-safe/Makefile +0 -35
  2314. package/node_modules/json-stringify-safe/README.md +0 -52
  2315. package/node_modules/json-stringify-safe/package.json +0 -31
  2316. package/node_modules/json-stringify-safe/stringify.js +0 -27
  2317. package/node_modules/json-stringify-safe/test/mocha.opts +0 -2
  2318. package/node_modules/json-stringify-safe/test/stringify_test.js +0 -246
  2319. package/node_modules/ms/index.js +0 -162
  2320. package/node_modules/ms/license.md +0 -21
  2321. package/node_modules/ms/package.json +0 -38
  2322. package/node_modules/ms/readme.md +0 -59
  2323. package/node_modules/node-fetch/LICENSE.md +0 -22
  2324. package/node_modules/node-fetch/README.md +0 -634
  2325. package/node_modules/node-fetch/browser.js +0 -25
  2326. package/node_modules/node-fetch/lib/index.es.js +0 -1777
  2327. package/node_modules/node-fetch/lib/index.js +0 -1787
  2328. package/node_modules/node-fetch/lib/index.mjs +0 -1775
  2329. package/node_modules/node-fetch/package.json +0 -89
  2330. package/node_modules/node-gyp-build/LICENSE +0 -21
  2331. package/node_modules/node-gyp-build/README.md +0 -58
  2332. package/node_modules/node-gyp-build/SECURITY.md +0 -5
  2333. package/node_modules/node-gyp-build/bin.js +0 -84
  2334. package/node_modules/node-gyp-build/build-test.js +0 -19
  2335. package/node_modules/node-gyp-build/index.js +0 -6
  2336. package/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  2337. package/node_modules/node-gyp-build/optional.js +0 -7
  2338. package/node_modules/node-gyp-build/package.json +0 -43
  2339. package/node_modules/pako/LICENSE +0 -21
  2340. package/node_modules/pako/README.md +0 -177
  2341. package/node_modules/pako/dist/pako.es5.js +0 -6688
  2342. package/node_modules/pako/dist/pako.es5.min.js +0 -2
  2343. package/node_modules/pako/dist/pako.esm.mjs +0 -6877
  2344. package/node_modules/pako/dist/pako.js +0 -6896
  2345. package/node_modules/pako/dist/pako.min.js +0 -2
  2346. package/node_modules/pako/dist/pako_deflate.es5.js +0 -3924
  2347. package/node_modules/pako/dist/pako_deflate.es5.min.js +0 -2
  2348. package/node_modules/pako/dist/pako_deflate.js +0 -4126
  2349. package/node_modules/pako/dist/pako_deflate.min.js +0 -2
  2350. package/node_modules/pako/dist/pako_inflate.es5.js +0 -3229
  2351. package/node_modules/pako/dist/pako_inflate.es5.min.js +0 -2
  2352. package/node_modules/pako/dist/pako_inflate.js +0 -3239
  2353. package/node_modules/pako/dist/pako_inflate.min.js +0 -2
  2354. package/node_modules/pako/index.js +0 -18
  2355. package/node_modules/pako/lib/deflate.js +0 -380
  2356. package/node_modules/pako/lib/inflate.js +0 -419
  2357. package/node_modules/pako/lib/utils/common.js +0 -48
  2358. package/node_modules/pako/lib/utils/strings.js +0 -174
  2359. package/node_modules/pako/lib/zlib/README +0 -59
  2360. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  2361. package/node_modules/pako/lib/zlib/constants.js +0 -68
  2362. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  2363. package/node_modules/pako/lib/zlib/deflate.js +0 -2048
  2364. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  2365. package/node_modules/pako/lib/zlib/inffast.js +0 -344
  2366. package/node_modules/pako/lib/zlib/inflate.js +0 -1572
  2367. package/node_modules/pako/lib/zlib/inftrees.js +0 -340
  2368. package/node_modules/pako/lib/zlib/messages.js +0 -32
  2369. package/node_modules/pako/lib/zlib/trees.js +0 -1179
  2370. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  2371. package/node_modules/pako/package.json +0 -64
  2372. package/node_modules/rpc-websockets/LICENSE +0 -10
  2373. package/node_modules/rpc-websockets/README.md +0 -156
  2374. package/node_modules/rpc-websockets/dist/index.browser-bundle.js +0 -14
  2375. package/node_modules/rpc-websockets/dist/index.browser.cjs +0 -389
  2376. package/node_modules/rpc-websockets/dist/index.browser.cjs.map +0 -1
  2377. package/node_modules/rpc-websockets/dist/index.browser.d.mts +0 -225
  2378. package/node_modules/rpc-websockets/dist/index.browser.d.ts +0 -225
  2379. package/node_modules/rpc-websockets/dist/index.browser.mjs +0 -384
  2380. package/node_modules/rpc-websockets/dist/index.browser.mjs.map +0 -1
  2381. package/node_modules/rpc-websockets/dist/index.cjs +0 -898
  2382. package/node_modules/rpc-websockets/dist/index.cjs.map +0 -1
  2383. package/node_modules/rpc-websockets/dist/index.d.mts +0 -415
  2384. package/node_modules/rpc-websockets/dist/index.d.ts +0 -415
  2385. package/node_modules/rpc-websockets/dist/index.mjs +0 -886
  2386. package/node_modules/rpc-websockets/dist/index.mjs.map +0 -1
  2387. package/node_modules/rpc-websockets/node_modules/@types/ws/LICENSE +0 -21
  2388. package/node_modules/rpc-websockets/node_modules/@types/ws/README.md +0 -15
  2389. package/node_modules/rpc-websockets/node_modules/@types/ws/index.d.mts +0 -451
  2390. package/node_modules/rpc-websockets/node_modules/@types/ws/index.d.ts +0 -445
  2391. package/node_modules/rpc-websockets/node_modules/@types/ws/package.json +0 -72
  2392. package/node_modules/rpc-websockets/node_modules/eventemitter3/LICENSE +0 -21
  2393. package/node_modules/rpc-websockets/node_modules/eventemitter3/README.md +0 -94
  2394. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.esm.js +0 -347
  2395. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.esm.min.js +0 -1
  2396. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.esm.min.js.map +0 -1
  2397. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.umd.js +0 -355
  2398. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.umd.min.js +0 -1
  2399. package/node_modules/rpc-websockets/node_modules/eventemitter3/dist/eventemitter3.umd.min.js.map +0 -1
  2400. package/node_modules/rpc-websockets/node_modules/eventemitter3/index.d.ts +0 -135
  2401. package/node_modules/rpc-websockets/node_modules/eventemitter3/index.js +0 -336
  2402. package/node_modules/rpc-websockets/node_modules/eventemitter3/index.mjs +0 -4
  2403. package/node_modules/rpc-websockets/node_modules/eventemitter3/package.json +0 -67
  2404. package/node_modules/rpc-websockets/node_modules/ws/LICENSE +0 -20
  2405. package/node_modules/rpc-websockets/node_modules/ws/README.md +0 -548
  2406. package/node_modules/rpc-websockets/node_modules/ws/browser.js +0 -8
  2407. package/node_modules/rpc-websockets/node_modules/ws/index.js +0 -13
  2408. package/node_modules/rpc-websockets/node_modules/ws/lib/buffer-util.js +0 -131
  2409. package/node_modules/rpc-websockets/node_modules/ws/lib/constants.js +0 -18
  2410. package/node_modules/rpc-websockets/node_modules/ws/lib/event-target.js +0 -292
  2411. package/node_modules/rpc-websockets/node_modules/ws/lib/extension.js +0 -203
  2412. package/node_modules/rpc-websockets/node_modules/ws/lib/limiter.js +0 -55
  2413. package/node_modules/rpc-websockets/node_modules/ws/lib/permessage-deflate.js +0 -528
  2414. package/node_modules/rpc-websockets/node_modules/ws/lib/receiver.js +0 -706
  2415. package/node_modules/rpc-websockets/node_modules/ws/lib/sender.js +0 -602
  2416. package/node_modules/rpc-websockets/node_modules/ws/lib/stream.js +0 -161
  2417. package/node_modules/rpc-websockets/node_modules/ws/lib/subprotocol.js +0 -62
  2418. package/node_modules/rpc-websockets/node_modules/ws/lib/validation.js +0 -152
  2419. package/node_modules/rpc-websockets/node_modules/ws/lib/websocket-server.js +0 -540
  2420. package/node_modules/rpc-websockets/node_modules/ws/lib/websocket.js +0 -1388
  2421. package/node_modules/rpc-websockets/node_modules/ws/package.json +0 -69
  2422. package/node_modules/rpc-websockets/node_modules/ws/wrapper.mjs +0 -8
  2423. package/node_modules/rpc-websockets/package.json +0 -90
  2424. package/node_modules/safe-buffer/LICENSE +0 -21
  2425. package/node_modules/safe-buffer/README.md +0 -584
  2426. package/node_modules/safe-buffer/index.d.ts +0 -187
  2427. package/node_modules/safe-buffer/index.js +0 -65
  2428. package/node_modules/safe-buffer/package.json +0 -51
  2429. package/node_modules/stream-chain/LICENSE +0 -11
  2430. package/node_modules/stream-chain/README.md +0 -334
  2431. package/node_modules/stream-chain/defs.js +0 -22
  2432. package/node_modules/stream-chain/index.js +0 -203
  2433. package/node_modules/stream-chain/package.json +0 -31
  2434. package/node_modules/stream-chain/utils/FromIterable.js +0 -94
  2435. package/node_modules/stream-chain/utils/Reduce.js +0 -40
  2436. package/node_modules/stream-chain/utils/asFun.js +0 -85
  2437. package/node_modules/stream-chain/utils/asGen.js +0 -77
  2438. package/node_modules/stream-chain/utils/comp.js +0 -20
  2439. package/node_modules/stream-chain/utils/fold.js +0 -43
  2440. package/node_modules/stream-chain/utils/gen.js +0 -24
  2441. package/node_modules/stream-chain/utils/scan.js +0 -41
  2442. package/node_modules/stream-chain/utils/skip.js +0 -32
  2443. package/node_modules/stream-chain/utils/skipWhile.js +0 -46
  2444. package/node_modules/stream-chain/utils/take.js +0 -39
  2445. package/node_modules/stream-chain/utils/takeWhile.js +0 -47
  2446. package/node_modules/stream-json/Assembler.js +0 -154
  2447. package/node_modules/stream-json/Disassembler.js +0 -209
  2448. package/node_modules/stream-json/Emitter.js +0 -22
  2449. package/node_modules/stream-json/LICENSE +0 -34
  2450. package/node_modules/stream-json/Parser.js +0 -545
  2451. package/node_modules/stream-json/README.md +0 -128
  2452. package/node_modules/stream-json/Stringer.js +0 -153
  2453. package/node_modules/stream-json/filters/Filter.js +0 -130
  2454. package/node_modules/stream-json/filters/FilterBase.js +0 -201
  2455. package/node_modules/stream-json/filters/Ignore.js +0 -24
  2456. package/node_modules/stream-json/filters/Pick.js +0 -58
  2457. package/node_modules/stream-json/filters/Replace.js +0 -115
  2458. package/node_modules/stream-json/index.js +0 -11
  2459. package/node_modules/stream-json/jsonl/Parser.js +0 -131
  2460. package/node_modules/stream-json/jsonl/Stringer.js +0 -29
  2461. package/node_modules/stream-json/package.json +0 -45
  2462. package/node_modules/stream-json/streamers/StreamArray.js +0 -44
  2463. package/node_modules/stream-json/streamers/StreamBase.js +0 -101
  2464. package/node_modules/stream-json/streamers/StreamObject.js +0 -43
  2465. package/node_modules/stream-json/streamers/StreamValues.js +0 -33
  2466. package/node_modules/stream-json/utils/Batch.js +0 -44
  2467. package/node_modules/stream-json/utils/Utf8Stream.js +0 -53
  2468. package/node_modules/stream-json/utils/Verifier.js +0 -485
  2469. package/node_modules/stream-json/utils/emit.js +0 -5
  2470. package/node_modules/stream-json/utils/withParser.js +0 -10
  2471. package/node_modules/superstruct/License.md +0 -9
  2472. package/node_modules/superstruct/Readme.md +0 -228
  2473. package/node_modules/superstruct/lib/coercions.d.ts +0 -19
  2474. package/node_modules/superstruct/lib/coercions.d.ts.map +0 -1
  2475. package/node_modules/superstruct/lib/error.d.ts +0 -32
  2476. package/node_modules/superstruct/lib/error.d.ts.map +0 -1
  2477. package/node_modules/superstruct/lib/index.cjs +0 -1257
  2478. package/node_modules/superstruct/lib/index.cjs.d.ts +0 -579
  2479. package/node_modules/superstruct/lib/index.cjs.map +0 -1
  2480. package/node_modules/superstruct/lib/index.d.cts +0 -579
  2481. package/node_modules/superstruct/lib/index.d.ts +0 -7
  2482. package/node_modules/superstruct/lib/index.d.ts.map +0 -1
  2483. package/node_modules/superstruct/lib/index.es.d.ts +0 -579
  2484. package/node_modules/superstruct/lib/index.es.js +0 -1203
  2485. package/node_modules/superstruct/lib/index.es.js.map +0 -1
  2486. package/node_modules/superstruct/lib/refinements.d.ts +0 -19
  2487. package/node_modules/superstruct/lib/refinements.d.ts.map +0 -1
  2488. package/node_modules/superstruct/lib/struct.d.ts +0 -110
  2489. package/node_modules/superstruct/lib/struct.d.ts.map +0 -1
  2490. package/node_modules/superstruct/lib/structs/coercions.d.ts +0 -29
  2491. package/node_modules/superstruct/lib/structs/coercions.d.ts.map +0 -1
  2492. package/node_modules/superstruct/lib/structs/refinements.d.ts +0 -38
  2493. package/node_modules/superstruct/lib/structs/refinements.d.ts.map +0 -1
  2494. package/node_modules/superstruct/lib/structs/types.d.ts +0 -142
  2495. package/node_modules/superstruct/lib/structs/types.d.ts.map +0 -1
  2496. package/node_modules/superstruct/lib/structs/utilities.d.ts +0 -66
  2497. package/node_modules/superstruct/lib/structs/utilities.d.ts.map +0 -1
  2498. package/node_modules/superstruct/lib/types.d.ts +0 -200
  2499. package/node_modules/superstruct/lib/types.d.ts.map +0 -1
  2500. package/node_modules/superstruct/lib/typings.d.ts +0 -36
  2501. package/node_modules/superstruct/lib/typings.d.ts.map +0 -1
  2502. package/node_modules/superstruct/lib/utilities.d.ts +0 -56
  2503. package/node_modules/superstruct/lib/utilities.d.ts.map +0 -1
  2504. package/node_modules/superstruct/lib/utils.d.ts +0 -139
  2505. package/node_modules/superstruct/lib/utils.d.ts.map +0 -1
  2506. package/node_modules/superstruct/lib/xtras.d.ts +0 -56
  2507. package/node_modules/superstruct/lib/xtras.d.ts.map +0 -1
  2508. package/node_modules/superstruct/package.json +0 -110
  2509. package/node_modules/superstruct/umd/coercions.d.ts +0 -18
  2510. package/node_modules/superstruct/umd/index.d.ts +0 -4
  2511. package/node_modules/superstruct/umd/refinements.d.ts +0 -14
  2512. package/node_modules/superstruct/umd/struct.d.ts +0 -80
  2513. package/node_modules/superstruct/umd/superstruct.d.ts +0 -579
  2514. package/node_modules/superstruct/umd/superstruct.js +0 -1262
  2515. package/node_modules/superstruct/umd/superstruct.min.d.ts +0 -579
  2516. package/node_modules/superstruct/umd/superstruct.min.js +0 -1
  2517. package/node_modules/superstruct/umd/types.d.ts +0 -127
  2518. package/node_modules/superstruct/umd/utils.d.ts +0 -9
  2519. package/node_modules/text-encoding-utf-8/LICENSE.md +0 -29
  2520. package/node_modules/text-encoding-utf-8/README.md +0 -63
  2521. package/node_modules/text-encoding-utf-8/lib/encoding.js +0 -655
  2522. package/node_modules/text-encoding-utf-8/lib/encoding.lib.js +0 -642
  2523. package/node_modules/text-encoding-utf-8/lib/encoding.lib.mjs +0 -665
  2524. package/node_modules/text-encoding-utf-8/package.json +0 -26
  2525. package/node_modules/text-encoding-utf-8/src/encoding.js +0 -665
  2526. package/node_modules/text-encoding-utf-8/src/polyfill.js +0 -21
  2527. package/node_modules/toml/.jshintrc +0 -18
  2528. package/node_modules/toml/.travis.yml +0 -7
  2529. package/node_modules/toml/CHANGELOG.md +0 -116
  2530. package/node_modules/toml/LICENSE +0 -22
  2531. package/node_modules/toml/README.md +0 -93
  2532. package/node_modules/toml/benchmark.js +0 -12
  2533. package/node_modules/toml/index.d.ts +0 -3
  2534. package/node_modules/toml/index.js +0 -9
  2535. package/node_modules/toml/lib/compiler.js +0 -195
  2536. package/node_modules/toml/lib/parser.js +0 -3841
  2537. package/node_modules/toml/package.json +0 -24
  2538. package/node_modules/toml/src/toml.pegjs +0 -231
  2539. package/node_modules/toml/test/bad.toml +0 -5
  2540. package/node_modules/toml/test/example.toml +0 -32
  2541. package/node_modules/toml/test/hard_example.toml +0 -33
  2542. package/node_modules/toml/test/inline_tables.toml +0 -10
  2543. package/node_modules/toml/test/literal_strings.toml +0 -5
  2544. package/node_modules/toml/test/multiline_eat_whitespace.toml +0 -15
  2545. package/node_modules/toml/test/multiline_literal_strings.toml +0 -7
  2546. package/node_modules/toml/test/multiline_strings.toml +0 -6
  2547. package/node_modules/toml/test/smoke.js +0 -22
  2548. package/node_modules/toml/test/table_arrays_easy.toml +0 -10
  2549. package/node_modules/toml/test/table_arrays_hard.toml +0 -31
  2550. package/node_modules/toml/test/test_toml.js +0 -596
  2551. package/node_modules/tslib/CopyrightNotice.txt +0 -15
  2552. package/node_modules/tslib/LICENSE.txt +0 -12
  2553. package/node_modules/tslib/README.md +0 -164
  2554. package/node_modules/tslib/SECURITY.md +0 -41
  2555. package/node_modules/tslib/modules/index.d.ts +0 -38
  2556. package/node_modules/tslib/modules/index.js +0 -70
  2557. package/node_modules/tslib/modules/package.json +0 -3
  2558. package/node_modules/tslib/package.json +0 -47
  2559. package/node_modules/tslib/tslib.d.ts +0 -460
  2560. package/node_modules/tslib/tslib.es6.html +0 -1
  2561. package/node_modules/tslib/tslib.es6.js +0 -402
  2562. package/node_modules/tslib/tslib.es6.mjs +0 -401
  2563. package/node_modules/tslib/tslib.html +0 -1
  2564. package/node_modules/tslib/tslib.js +0 -484
  2565. package/node_modules/undici-types/LICENSE +0 -21
  2566. package/node_modules/undici-types/README.md +0 -6
  2567. package/node_modules/undici-types/agent.d.ts +0 -31
  2568. package/node_modules/undici-types/api.d.ts +0 -43
  2569. package/node_modules/undici-types/balanced-pool.d.ts +0 -29
  2570. package/node_modules/undici-types/cache.d.ts +0 -36
  2571. package/node_modules/undici-types/client.d.ts +0 -108
  2572. package/node_modules/undici-types/connector.d.ts +0 -34
  2573. package/node_modules/undici-types/content-type.d.ts +0 -21
  2574. package/node_modules/undici-types/cookies.d.ts +0 -28
  2575. package/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
  2576. package/node_modules/undici-types/dispatcher.d.ts +0 -256
  2577. package/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
  2578. package/node_modules/undici-types/errors.d.ts +0 -149
  2579. package/node_modules/undici-types/eventsource.d.ts +0 -61
  2580. package/node_modules/undici-types/fetch.d.ts +0 -209
  2581. package/node_modules/undici-types/file.d.ts +0 -39
  2582. package/node_modules/undici-types/filereader.d.ts +0 -54
  2583. package/node_modules/undici-types/formdata.d.ts +0 -108
  2584. package/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  2585. package/node_modules/undici-types/global-origin.d.ts +0 -7
  2586. package/node_modules/undici-types/handlers.d.ts +0 -15
  2587. package/node_modules/undici-types/header.d.ts +0 -4
  2588. package/node_modules/undici-types/index.d.ts +0 -71
  2589. package/node_modules/undici-types/interceptors.d.ts +0 -17
  2590. package/node_modules/undici-types/mock-agent.d.ts +0 -50
  2591. package/node_modules/undici-types/mock-client.d.ts +0 -25
  2592. package/node_modules/undici-types/mock-errors.d.ts +0 -12
  2593. package/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  2594. package/node_modules/undici-types/mock-pool.d.ts +0 -25
  2595. package/node_modules/undici-types/package.json +0 -55
  2596. package/node_modules/undici-types/patch.d.ts +0 -33
  2597. package/node_modules/undici-types/pool-stats.d.ts +0 -19
  2598. package/node_modules/undici-types/pool.d.ts +0 -39
  2599. package/node_modules/undici-types/proxy-agent.d.ts +0 -28
  2600. package/node_modules/undici-types/readable.d.ts +0 -65
  2601. package/node_modules/undici-types/retry-agent.d.ts +0 -8
  2602. package/node_modules/undici-types/retry-handler.d.ts +0 -116
  2603. package/node_modules/undici-types/util.d.ts +0 -18
  2604. package/node_modules/undici-types/webidl.d.ts +0 -228
  2605. package/node_modules/undici-types/websocket.d.ts +0 -150
  2606. package/node_modules/utf-8-validate/LICENSE +0 -30
  2607. package/node_modules/utf-8-validate/README.md +0 -50
  2608. package/node_modules/utf-8-validate/binding.gyp +0 -18
  2609. package/node_modules/utf-8-validate/fallback.js +0 -62
  2610. package/node_modules/utf-8-validate/index.js +0 -7
  2611. package/node_modules/utf-8-validate/package.json +0 -36
  2612. package/node_modules/utf-8-validate/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
  2613. package/node_modules/utf-8-validate/prebuilds/linux-x64/node.napi.node +0 -0
  2614. package/node_modules/utf-8-validate/prebuilds/win32-ia32/node.napi.node +0 -0
  2615. package/node_modules/utf-8-validate/prebuilds/win32-x64/node.napi.node +0 -0
  2616. package/node_modules/utf-8-validate/src/validation.c +0 -109
  2617. package/node_modules/uuid/CHANGELOG.md +0 -229
  2618. package/node_modules/uuid/CONTRIBUTING.md +0 -18
  2619. package/node_modules/uuid/LICENSE.md +0 -9
  2620. package/node_modules/uuid/README.md +0 -505
  2621. package/node_modules/uuid/dist/bin/uuid +0 -2
  2622. package/node_modules/uuid/dist/esm-browser/index.js +0 -9
  2623. package/node_modules/uuid/dist/esm-browser/md5.js +0 -215
  2624. package/node_modules/uuid/dist/esm-browser/nil.js +0 -1
  2625. package/node_modules/uuid/dist/esm-browser/parse.js +0 -35
  2626. package/node_modules/uuid/dist/esm-browser/regex.js +0 -1
  2627. package/node_modules/uuid/dist/esm-browser/rng.js +0 -19
  2628. package/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
  2629. package/node_modules/uuid/dist/esm-browser/stringify.js +0 -30
  2630. package/node_modules/uuid/dist/esm-browser/v1.js +0 -95
  2631. package/node_modules/uuid/dist/esm-browser/v3.js +0 -4
  2632. package/node_modules/uuid/dist/esm-browser/v35.js +0 -64
  2633. package/node_modules/uuid/dist/esm-browser/v4.js +0 -24
  2634. package/node_modules/uuid/dist/esm-browser/v5.js +0 -4
  2635. package/node_modules/uuid/dist/esm-browser/validate.js +0 -7
  2636. package/node_modules/uuid/dist/esm-browser/version.js +0 -11
  2637. package/node_modules/uuid/dist/esm-node/index.js +0 -9
  2638. package/node_modules/uuid/dist/esm-node/md5.js +0 -13
  2639. package/node_modules/uuid/dist/esm-node/nil.js +0 -1
  2640. package/node_modules/uuid/dist/esm-node/parse.js +0 -35
  2641. package/node_modules/uuid/dist/esm-node/regex.js +0 -1
  2642. package/node_modules/uuid/dist/esm-node/rng.js +0 -12
  2643. package/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  2644. package/node_modules/uuid/dist/esm-node/stringify.js +0 -29
  2645. package/node_modules/uuid/dist/esm-node/v1.js +0 -95
  2646. package/node_modules/uuid/dist/esm-node/v3.js +0 -4
  2647. package/node_modules/uuid/dist/esm-node/v35.js +0 -64
  2648. package/node_modules/uuid/dist/esm-node/v4.js +0 -24
  2649. package/node_modules/uuid/dist/esm-node/v5.js +0 -4
  2650. package/node_modules/uuid/dist/esm-node/validate.js +0 -7
  2651. package/node_modules/uuid/dist/esm-node/version.js +0 -11
  2652. package/node_modules/uuid/dist/index.js +0 -79
  2653. package/node_modules/uuid/dist/md5-browser.js +0 -223
  2654. package/node_modules/uuid/dist/md5.js +0 -23
  2655. package/node_modules/uuid/dist/nil.js +0 -8
  2656. package/node_modules/uuid/dist/parse.js +0 -45
  2657. package/node_modules/uuid/dist/regex.js +0 -8
  2658. package/node_modules/uuid/dist/rng-browser.js +0 -26
  2659. package/node_modules/uuid/dist/rng.js +0 -24
  2660. package/node_modules/uuid/dist/sha1-browser.js +0 -104
  2661. package/node_modules/uuid/dist/sha1.js +0 -23
  2662. package/node_modules/uuid/dist/stringify.js +0 -39
  2663. package/node_modules/uuid/dist/umd/uuid.min.js +0 -1
  2664. package/node_modules/uuid/dist/umd/uuidNIL.min.js +0 -1
  2665. package/node_modules/uuid/dist/umd/uuidParse.min.js +0 -1
  2666. package/node_modules/uuid/dist/umd/uuidStringify.min.js +0 -1
  2667. package/node_modules/uuid/dist/umd/uuidValidate.min.js +0 -1
  2668. package/node_modules/uuid/dist/umd/uuidVersion.min.js +0 -1
  2669. package/node_modules/uuid/dist/umd/uuidv1.min.js +0 -1
  2670. package/node_modules/uuid/dist/umd/uuidv3.min.js +0 -1
  2671. package/node_modules/uuid/dist/umd/uuidv4.min.js +0 -1
  2672. package/node_modules/uuid/dist/umd/uuidv5.min.js +0 -1
  2673. package/node_modules/uuid/dist/uuid-bin.js +0 -85
  2674. package/node_modules/uuid/dist/v1.js +0 -107
  2675. package/node_modules/uuid/dist/v3.js +0 -16
  2676. package/node_modules/uuid/dist/v35.js +0 -78
  2677. package/node_modules/uuid/dist/v4.js +0 -37
  2678. package/node_modules/uuid/dist/v5.js +0 -16
  2679. package/node_modules/uuid/dist/validate.js +0 -17
  2680. package/node_modules/uuid/dist/version.js +0 -21
  2681. package/node_modules/uuid/package.json +0 -135
  2682. package/node_modules/uuid/wrapper.mjs +0 -10
  2683. package/node_modules/webidl-conversions/LICENSE.md +0 -12
  2684. package/node_modules/webidl-conversions/README.md +0 -53
  2685. package/node_modules/webidl-conversions/lib/index.js +0 -189
  2686. package/node_modules/webidl-conversions/package.json +0 -23
  2687. package/node_modules/whatwg-url/LICENSE.txt +0 -21
  2688. package/node_modules/whatwg-url/README.md +0 -67
  2689. package/node_modules/whatwg-url/lib/URL-impl.js +0 -200
  2690. package/node_modules/whatwg-url/lib/URL.js +0 -196
  2691. package/node_modules/whatwg-url/lib/public-api.js +0 -11
  2692. package/node_modules/whatwg-url/lib/url-state-machine.js +0 -1297
  2693. package/node_modules/whatwg-url/lib/utils.js +0 -20
  2694. package/node_modules/whatwg-url/node_modules/tr46/.npmignore +0 -4
  2695. package/node_modules/whatwg-url/node_modules/tr46/index.js +0 -193
  2696. package/node_modules/whatwg-url/node_modules/tr46/lib/.gitkeep +0 -0
  2697. package/node_modules/whatwg-url/node_modules/tr46/lib/mappingTable.json +0 -1
  2698. package/node_modules/whatwg-url/node_modules/tr46/package.json +0 -31
  2699. package/node_modules/whatwg-url/package.json +0 -32
  2700. package/node_modules/ws/LICENSE +0 -21
  2701. package/node_modules/ws/README.md +0 -495
  2702. package/node_modules/ws/browser.js +0 -8
  2703. package/node_modules/ws/index.js +0 -10
  2704. package/node_modules/ws/lib/buffer-util.js +0 -129
  2705. package/node_modules/ws/lib/constants.js +0 -10
  2706. package/node_modules/ws/lib/event-target.js +0 -184
  2707. package/node_modules/ws/lib/extension.js +0 -223
  2708. package/node_modules/ws/lib/limiter.js +0 -55
  2709. package/node_modules/ws/lib/permessage-deflate.js +0 -518
  2710. package/node_modules/ws/lib/receiver.js +0 -607
  2711. package/node_modules/ws/lib/sender.js +0 -409
  2712. package/node_modules/ws/lib/stream.js +0 -180
  2713. package/node_modules/ws/lib/validation.js +0 -104
  2714. package/node_modules/ws/lib/websocket-server.js +0 -449
  2715. package/node_modules/ws/lib/websocket.js +0 -1197
  2716. package/node_modules/ws/package.json +0 -56
@@ -1 +1 @@
1
- {"version":3,"sources":["../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"],"sourcesContent":["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"],"mappings":"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O;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MAC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","names":["BN","NATIVE_MINT","TOKEN_2022_PROGRAM_ID","SystemProgram","Rounding","ActivationPoint","FeeSchedulerMode","CollectFeeMode","TradeDirection","ActivationType","PublicKey","PublicKey","BN","BN","BN","BN","BN","BN","BN","Decimal","BN","PublicKey","PublicKey","BN","Decimal","BN","Decimal","BN","Decimal","BN","BN","min","TOKEN_2022_PROGRAM_ID","SystemProgram","NATIVE_MINT","min","BN"]}
1
+ {"version":3,"sources":["../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"],"sourcesContent":["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 owner,\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 let tokenAOwner = owner;\n let tokenBOwner = owner;\n if (receiver) {\n tokenAOwner = tokenAIsSOL ? tempWSolAccount : receiver;\n tokenBOwner = tokenBIsSOL ? tempWSolAccount : receiver;\n }\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 ?? owner,\n receiver ?? owner\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 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 const tokenAVault = deriveTokenVaultAddress(tokenAMint, pool);\n const tokenBVault = deriveTokenVaultAddress(tokenBMint, pool);\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 owner: partner,\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 owner,\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 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 owner: 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 (\n Number(periodFrequency) == 0 ||\n new BN(currentPoint).lt(activationPoint)\n ) {\n return cliffFeeNumerator;\n }\n const period = 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"],"mappings":"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O;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,KAAO;AAAA,IACT;AAAA,IACA;AAAA,MAC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","names":["BN","NATIVE_MINT","TOKEN_2022_PROGRAM_ID","SystemProgram","Rounding","ActivationPoint","FeeSchedulerMode","CollectFeeMode","TradeDirection","ActivationType","PublicKey","PublicKey","BN","BN","BN","BN","BN","BN","BN","Decimal","BN","PublicKey","PublicKey","BN","Decimal","BN","Decimal","BN","Decimal","BN","BN","min","TOKEN_2022_PROGRAM_ID","SystemProgram","NATIVE_MINT","min","BN"]}