sablier 2.0.4 → 3.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +1 -4
  3. package/abi/airdrops/v3.0/SablierFactoryMerkleExecute.json +1056 -0
  4. package/abi/airdrops/v3.0/SablierFactoryMerkleInstant.json +1128 -0
  5. package/abi/airdrops/v3.0/SablierFactoryMerkleLL.json +1354 -0
  6. package/abi/airdrops/v3.0/SablierFactoryMerkleLT.json +1438 -0
  7. package/abi/airdrops/v3.0/SablierFactoryMerkleVCA.json +1181 -0
  8. package/abi/airdrops/v3.0/SablierMerkleExecute.json +1304 -0
  9. package/abi/airdrops/v3.0/SablierMerkleInstant.json +1632 -0
  10. package/abi/airdrops/v3.0/SablierMerkleLL.json +2131 -0
  11. package/abi/airdrops/v3.0/SablierMerkleLT.json +2068 -0
  12. package/abi/airdrops/v3.0/SablierMerkleVCA.json +1979 -0
  13. package/abi/bob/v1.0/SablierBob.json +1090 -0
  14. package/abi/bob/v1.0/SablierEscrow.json +877 -0
  15. package/abi/bob/v1.0/SablierLidoAdapter.json +985 -0
  16. package/abi/comptroller/v1.0/ERC1967Proxy.json +31 -0
  17. package/abi/comptroller/v2.0/ERC1967Proxy.json +67 -0
  18. package/abi/comptroller/v2.0/SablierComptroller.json +1089 -0
  19. package/abi/flow/v3.0/SablierFlow.json +2248 -0
  20. package/abi/lockup/v4.0/SablierBatchLockup.json +675 -0
  21. package/abi/lockup/v4.0/SablierLockup.json +2858 -0
  22. package/dist/cjs/evm/chains/builder.js +1 -0
  23. package/dist/cjs/evm/chains/builder.js.map +1 -1
  24. package/dist/cjs/evm/chains/chains.js +3 -3
  25. package/dist/cjs/evm/chains/chains.js.map +1 -1
  26. package/dist/cjs/evm/chains/custom.js +1 -26
  27. package/dist/cjs/evm/chains/custom.js.map +1 -1
  28. package/dist/cjs/evm/chains/specs.js +74 -85
  29. package/dist/cjs/evm/chains/specs.js.map +1 -1
  30. package/dist/cjs/evm/compatibility.js +1 -0
  31. package/dist/cjs/evm/compatibility.js.map +1 -1
  32. package/dist/cjs/evm/comptroller/deployments.js +1 -4
  33. package/dist/cjs/evm/comptroller/deployments.js.map +1 -1
  34. package/dist/cjs/evm/comptroller/index.js +6 -7
  35. package/dist/cjs/evm/comptroller/index.js.map +1 -1
  36. package/dist/cjs/evm/comptroller/v1.0/abi/ERC1967Proxy.js +33 -0
  37. package/dist/cjs/evm/comptroller/v1.0/abi/ERC1967Proxy.js.map +1 -0
  38. package/dist/cjs/evm/comptroller/v1.0/abi/SablierComptroller.js +436 -0
  39. package/dist/cjs/evm/comptroller/v1.0/abi/SablierComptroller.js.map +1 -0
  40. package/dist/cjs/evm/comptroller/v1.0/abi.js.map +1 -0
  41. package/dist/cjs/evm/comptroller/v1.0/index.js +10 -0
  42. package/dist/cjs/evm/comptroller/v1.0/index.js.map +1 -0
  43. package/dist/cjs/evm/comptroller/v1.0/manifest.js.map +1 -0
  44. package/dist/cjs/evm/comptroller/v2.0/abi/ERC1967Proxy.js +33 -0
  45. package/dist/cjs/evm/comptroller/v2.0/abi/ERC1967Proxy.js.map +1 -0
  46. package/dist/cjs/evm/comptroller/v2.0/abi/SablierComptroller.js +510 -0
  47. package/dist/cjs/evm/comptroller/v2.0/abi/SablierComptroller.js.map +1 -0
  48. package/dist/cjs/evm/comptroller/v2.0/abi.js +14 -0
  49. package/dist/cjs/evm/comptroller/v2.0/abi.js.map +1 -0
  50. package/dist/cjs/evm/comptroller/v2.0/index.js +10 -0
  51. package/dist/cjs/evm/comptroller/v2.0/index.js.map +1 -0
  52. package/dist/cjs/evm/comptroller/v2.0/manifest.js +8 -0
  53. package/dist/cjs/evm/comptroller/v2.0/manifest.js.map +1 -0
  54. package/dist/cjs/evm/contracts/alias-catalog.js +1 -0
  55. package/dist/cjs/evm/contracts/alias-catalog.js.map +1 -1
  56. package/dist/cjs/evm/contracts/catalog.js +1 -0
  57. package/dist/cjs/evm/contracts/catalog.js.map +1 -1
  58. package/dist/cjs/evm/contracts/names.js +27 -17
  59. package/dist/cjs/evm/contracts/names.js.map +1 -1
  60. package/dist/cjs/evm/enums.js +8 -0
  61. package/dist/cjs/evm/enums.js.map +1 -1
  62. package/dist/cjs/evm/helpers.js +1 -0
  63. package/dist/cjs/evm/helpers.js.map +1 -1
  64. package/dist/cjs/evm/releases/airdrops/index.js +2 -0
  65. package/dist/cjs/evm/releases/airdrops/index.js.map +1 -1
  66. package/dist/cjs/evm/releases/airdrops/v1.3/deployments.js +0 -12
  67. package/dist/cjs/evm/releases/airdrops/v1.3/deployments.js.map +1 -1
  68. package/dist/cjs/evm/releases/airdrops/v2.0/deployments.js +0 -18
  69. package/dist/cjs/evm/releases/airdrops/v2.0/deployments.js.map +1 -1
  70. package/dist/cjs/evm/releases/airdrops/v2.0/index.js +1 -1
  71. package/dist/cjs/evm/releases/airdrops/v2.0/index.js.map +1 -1
  72. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleExecute.js +205 -0
  73. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleExecute.js.map +1 -0
  74. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js +197 -0
  75. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js.map +1 -0
  76. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js +225 -0
  77. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js.map +1 -0
  78. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js +260 -0
  79. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js.map +1 -0
  80. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js +232 -0
  81. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js.map +1 -0
  82. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleExecute.js +310 -0
  83. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleExecute.js.map +1 -0
  84. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js +395 -0
  85. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js.map +1 -0
  86. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js +508 -0
  87. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js.map +1 -0
  88. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js +494 -0
  89. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js.map +1 -0
  90. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js +528 -0
  91. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js.map +1 -0
  92. package/dist/cjs/evm/releases/airdrops/v3.0/abi.js +30 -0
  93. package/dist/cjs/evm/releases/airdrops/v3.0/abi.js.map +1 -0
  94. package/dist/cjs/evm/releases/airdrops/v3.0/aliases.js +15 -0
  95. package/dist/cjs/evm/releases/airdrops/v3.0/aliases.js.map +1 -0
  96. package/dist/cjs/evm/releases/airdrops/v3.0/deployments.js +619 -0
  97. package/dist/cjs/evm/releases/airdrops/v3.0/deployments.js.map +1 -0
  98. package/dist/cjs/evm/releases/airdrops/v3.0/index.js +26 -0
  99. package/dist/cjs/evm/releases/airdrops/v3.0/index.js.map +1 -0
  100. package/dist/cjs/evm/releases/airdrops/v3.0/manifest.js +19 -0
  101. package/dist/cjs/evm/releases/airdrops/v3.0/manifest.js.map +1 -0
  102. package/dist/cjs/evm/releases/bob/index.js +8 -0
  103. package/dist/cjs/evm/releases/bob/index.js.map +1 -0
  104. package/dist/cjs/evm/releases/bob/v1.0/abi/SablierBob.js +516 -0
  105. package/dist/cjs/evm/releases/bob/v1.0/abi/SablierBob.js.map +1 -0
  106. package/dist/cjs/evm/releases/bob/v1.0/abi/SablierEscrow.js +392 -0
  107. package/dist/cjs/evm/releases/bob/v1.0/abi/SablierEscrow.js.map +1 -0
  108. package/dist/cjs/evm/releases/bob/v1.0/abi/SablierLidoAdapter.js +466 -0
  109. package/dist/cjs/evm/releases/bob/v1.0/abi/SablierLidoAdapter.js.map +1 -0
  110. package/dist/cjs/evm/releases/bob/v1.0/abi.js +16 -0
  111. package/dist/cjs/evm/releases/bob/v1.0/abi.js.map +1 -0
  112. package/dist/cjs/evm/releases/bob/v1.0/aliases.js +13 -0
  113. package/dist/cjs/evm/releases/bob/v1.0/aliases.js.map +1 -0
  114. package/dist/cjs/evm/releases/bob/v1.0/deployments.js +35 -0
  115. package/dist/cjs/evm/releases/bob/v1.0/deployments.js.map +1 -0
  116. package/dist/cjs/evm/releases/bob/v1.0/index.js +26 -0
  117. package/dist/cjs/evm/releases/bob/v1.0/index.js.map +1 -0
  118. package/dist/cjs/evm/releases/bob/v1.0/manifest.js +9 -0
  119. package/dist/cjs/evm/releases/bob/v1.0/manifest.js.map +1 -0
  120. package/dist/cjs/evm/releases/data.js +8 -6
  121. package/dist/cjs/evm/releases/data.js.map +1 -1
  122. package/dist/cjs/evm/releases/flow/index.js +2 -0
  123. package/dist/cjs/evm/releases/flow/index.js.map +1 -1
  124. package/dist/cjs/evm/releases/flow/v1.0/deployments.js +0 -16
  125. package/dist/cjs/evm/releases/flow/v1.0/deployments.js.map +1 -1
  126. package/dist/cjs/evm/releases/flow/v1.1/deployments.js +0 -20
  127. package/dist/cjs/evm/releases/flow/v1.1/deployments.js.map +1 -1
  128. package/dist/cjs/evm/releases/flow/v2.0/deployments.js +0 -4
  129. package/dist/cjs/evm/releases/flow/v2.0/deployments.js.map +1 -1
  130. package/dist/cjs/evm/releases/flow/v2.0/index.js +1 -1
  131. package/dist/cjs/evm/releases/flow/v2.0/index.js.map +1 -1
  132. package/dist/cjs/evm/releases/flow/v3.0/abi/SablierFlow.js +989 -0
  133. package/dist/cjs/evm/releases/flow/v3.0/abi/SablierFlow.js.map +1 -0
  134. package/dist/cjs/evm/releases/flow/v3.0/abi.js +12 -0
  135. package/dist/cjs/evm/releases/flow/v3.0/abi.js.map +1 -0
  136. package/dist/cjs/evm/releases/flow/v3.0/aliases.js +11 -0
  137. package/dist/cjs/evm/releases/flow/v3.0/aliases.js.map +1 -0
  138. package/dist/cjs/evm/releases/flow/v3.0/deployments.js +133 -0
  139. package/dist/cjs/evm/releases/flow/v3.0/deployments.js.map +1 -0
  140. package/dist/cjs/evm/releases/flow/v3.0/index.js +26 -0
  141. package/dist/cjs/evm/releases/flow/v3.0/index.js.map +1 -0
  142. package/dist/cjs/evm/releases/flow/v3.0/manifest.js +8 -0
  143. package/dist/cjs/evm/releases/flow/v3.0/manifest.js.map +1 -0
  144. package/dist/cjs/evm/releases/lockup/index.js +2 -0
  145. package/dist/cjs/evm/releases/lockup/index.js.map +1 -1
  146. package/dist/cjs/evm/releases/lockup/v1.1/deployments.js +0 -42
  147. package/dist/cjs/evm/releases/lockup/v1.1/deployments.js.map +1 -1
  148. package/dist/cjs/evm/releases/lockup/v1.2/deployments.js +0 -120
  149. package/dist/cjs/evm/releases/lockup/v1.2/deployments.js.map +1 -1
  150. package/dist/cjs/evm/releases/lockup/v2.0/deployments.js +0 -35
  151. package/dist/cjs/evm/releases/lockup/v2.0/deployments.js.map +1 -1
  152. package/dist/cjs/evm/releases/lockup/v3.0/deployments.js +0 -7
  153. package/dist/cjs/evm/releases/lockup/v3.0/deployments.js.map +1 -1
  154. package/dist/cjs/evm/releases/lockup/v3.0/index.js +1 -1
  155. package/dist/cjs/evm/releases/lockup/v3.0/index.js.map +1 -1
  156. package/dist/cjs/evm/releases/lockup/v4.0/abi/SablierBatchLockup.js +280 -0
  157. package/dist/cjs/evm/releases/lockup/v4.0/abi/SablierBatchLockup.js.map +1 -0
  158. package/dist/cjs/evm/releases/lockup/v4.0/abi/SablierLockup.js +1287 -0
  159. package/dist/cjs/evm/releases/lockup/v4.0/abi/SablierLockup.js.map +1 -0
  160. package/dist/cjs/evm/releases/lockup/v4.0/abi.js +14 -0
  161. package/dist/cjs/evm/releases/lockup/v4.0/abi.js.map +1 -0
  162. package/dist/cjs/evm/releases/lockup/v4.0/aliases.js +11 -0
  163. package/dist/cjs/evm/releases/lockup/v4.0/aliases.js.map +1 -0
  164. package/dist/cjs/evm/releases/lockup/v4.0/deployments.js +214 -0
  165. package/dist/cjs/evm/releases/lockup/v4.0/deployments.js.map +1 -0
  166. package/dist/cjs/evm/releases/lockup/v4.0/index.js +23 -0
  167. package/dist/cjs/evm/releases/lockup/v4.0/index.js.map +1 -0
  168. package/dist/cjs/evm/releases/lockup/v4.0/manifest.js +11 -0
  169. package/dist/cjs/evm/releases/lockup/v4.0/manifest.js.map +1 -0
  170. package/dist/cjs/evm/types.js.map +1 -1
  171. package/dist/cjs/helpers.js +2 -2
  172. package/dist/cjs/helpers.js.map +1 -1
  173. package/dist/cjs/internal/factories/queries.js.map +1 -1
  174. package/dist/cjs/sablier.js.map +1 -1
  175. package/dist/cjs/shapes/airdrops.js +7 -0
  176. package/dist/cjs/shapes/airdrops.js.map +1 -1
  177. package/dist/cjs/shapes/constants.js +42 -1
  178. package/dist/cjs/shapes/constants.js.map +1 -1
  179. package/dist/cjs/shapes/enums.js +1 -0
  180. package/dist/cjs/shapes/enums.js.map +1 -1
  181. package/dist/cjs/shared/types.js.map +1 -1
  182. package/dist/cjs/solana/chains/chains.js +1 -0
  183. package/dist/cjs/solana/chains/chains.js.map +1 -1
  184. package/dist/esm/evm/chains/builder.js +1 -0
  185. package/dist/esm/evm/chains/builder.js.map +1 -1
  186. package/dist/esm/evm/chains/chains.js +2 -2
  187. package/dist/esm/evm/chains/chains.js.map +1 -1
  188. package/dist/esm/evm/chains/custom.js +0 -25
  189. package/dist/esm/evm/chains/custom.js.map +1 -1
  190. package/dist/esm/evm/chains/specs.js +76 -87
  191. package/dist/esm/evm/chains/specs.js.map +1 -1
  192. package/dist/esm/evm/compatibility.js +1 -0
  193. package/dist/esm/evm/compatibility.js.map +1 -1
  194. package/dist/esm/evm/comptroller/deployments.js +1 -4
  195. package/dist/esm/evm/comptroller/deployments.js.map +1 -1
  196. package/dist/esm/evm/comptroller/index.js +6 -4
  197. package/dist/esm/evm/comptroller/index.js.map +1 -1
  198. package/dist/esm/evm/comptroller/v1.0/abi/ERC1967Proxy.js +30 -0
  199. package/dist/esm/evm/comptroller/v1.0/abi/ERC1967Proxy.js.map +1 -0
  200. package/dist/esm/evm/comptroller/v1.0/abi/SablierComptroller.js +433 -0
  201. package/dist/esm/evm/comptroller/v1.0/abi/SablierComptroller.js.map +1 -0
  202. package/dist/esm/evm/comptroller/v1.0/abi.js.map +1 -0
  203. package/dist/esm/evm/comptroller/v1.0/index.js +4 -0
  204. package/dist/esm/evm/comptroller/v1.0/index.js.map +1 -0
  205. package/dist/esm/evm/comptroller/v1.0/manifest.js.map +1 -0
  206. package/dist/esm/evm/comptroller/v2.0/abi/ERC1967Proxy.js +30 -0
  207. package/dist/esm/evm/comptroller/v2.0/abi/ERC1967Proxy.js.map +1 -0
  208. package/dist/esm/evm/comptroller/v2.0/abi/SablierComptroller.js +507 -0
  209. package/dist/esm/evm/comptroller/v2.0/abi/SablierComptroller.js.map +1 -0
  210. package/dist/esm/evm/comptroller/v2.0/abi.js +8 -0
  211. package/dist/esm/evm/comptroller/v2.0/abi.js.map +1 -0
  212. package/dist/esm/evm/comptroller/v2.0/index.js +4 -0
  213. package/dist/esm/evm/comptroller/v2.0/index.js.map +1 -0
  214. package/dist/esm/evm/comptroller/v2.0/manifest.js +6 -0
  215. package/dist/esm/evm/comptroller/v2.0/manifest.js.map +1 -0
  216. package/dist/esm/evm/contracts/alias-catalog.js +1 -0
  217. package/dist/esm/evm/contracts/alias-catalog.js.map +1 -1
  218. package/dist/esm/evm/contracts/catalog.js +1 -0
  219. package/dist/esm/evm/contracts/catalog.js.map +1 -1
  220. package/dist/esm/evm/contracts/names.js +12 -2
  221. package/dist/esm/evm/contracts/names.js.map +1 -1
  222. package/dist/esm/evm/enums.js +8 -0
  223. package/dist/esm/evm/enums.js.map +1 -1
  224. package/dist/esm/evm/helpers.js +1 -0
  225. package/dist/esm/evm/helpers.js.map +1 -1
  226. package/dist/esm/evm/releases/airdrops/index.js +2 -0
  227. package/dist/esm/evm/releases/airdrops/index.js.map +1 -1
  228. package/dist/esm/evm/releases/airdrops/v1.3/deployments.js +0 -12
  229. package/dist/esm/evm/releases/airdrops/v1.3/deployments.js.map +1 -1
  230. package/dist/esm/evm/releases/airdrops/v2.0/deployments.js +0 -18
  231. package/dist/esm/evm/releases/airdrops/v2.0/deployments.js.map +1 -1
  232. package/dist/esm/evm/releases/airdrops/v2.0/index.js +1 -1
  233. package/dist/esm/evm/releases/airdrops/v2.0/index.js.map +1 -1
  234. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleExecute.js +202 -0
  235. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleExecute.js.map +1 -0
  236. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js +194 -0
  237. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js.map +1 -0
  238. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js +222 -0
  239. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js.map +1 -0
  240. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js +257 -0
  241. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js.map +1 -0
  242. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js +229 -0
  243. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js.map +1 -0
  244. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleExecute.js +307 -0
  245. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleExecute.js.map +1 -0
  246. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js +392 -0
  247. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js.map +1 -0
  248. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js +505 -0
  249. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js.map +1 -0
  250. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js +491 -0
  251. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js.map +1 -0
  252. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js +525 -0
  253. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js.map +1 -0
  254. package/dist/esm/evm/releases/airdrops/v3.0/abi.js +24 -0
  255. package/dist/esm/evm/releases/airdrops/v3.0/abi.js.map +1 -0
  256. package/dist/esm/evm/releases/airdrops/v3.0/aliases.js +10 -0
  257. package/dist/esm/evm/releases/airdrops/v3.0/aliases.js.map +1 -0
  258. package/dist/esm/evm/releases/airdrops/v3.0/deployments.js +613 -0
  259. package/dist/esm/evm/releases/airdrops/v3.0/deployments.js.map +1 -0
  260. package/dist/esm/evm/releases/airdrops/v3.0/index.js +20 -0
  261. package/dist/esm/evm/releases/airdrops/v3.0/index.js.map +1 -0
  262. package/dist/esm/evm/releases/airdrops/v3.0/manifest.js +17 -0
  263. package/dist/esm/evm/releases/airdrops/v3.0/manifest.js.map +1 -0
  264. package/dist/esm/evm/releases/bob/index.js +5 -0
  265. package/dist/esm/evm/releases/bob/index.js.map +1 -0
  266. package/dist/esm/evm/releases/bob/v1.0/abi/SablierBob.js +513 -0
  267. package/dist/esm/evm/releases/bob/v1.0/abi/SablierBob.js.map +1 -0
  268. package/dist/esm/evm/releases/bob/v1.0/abi/SablierEscrow.js +389 -0
  269. package/dist/esm/evm/releases/bob/v1.0/abi/SablierEscrow.js.map +1 -0
  270. package/dist/esm/evm/releases/bob/v1.0/abi/SablierLidoAdapter.js +463 -0
  271. package/dist/esm/evm/releases/bob/v1.0/abi/SablierLidoAdapter.js.map +1 -0
  272. package/dist/esm/evm/releases/bob/v1.0/abi.js +10 -0
  273. package/dist/esm/evm/releases/bob/v1.0/abi.js.map +1 -0
  274. package/dist/esm/evm/releases/bob/v1.0/aliases.js +8 -0
  275. package/dist/esm/evm/releases/bob/v1.0/aliases.js.map +1 -0
  276. package/dist/esm/evm/releases/bob/v1.0/deployments.js +29 -0
  277. package/dist/esm/evm/releases/bob/v1.0/deployments.js.map +1 -0
  278. package/dist/esm/evm/releases/bob/v1.0/index.js +20 -0
  279. package/dist/esm/evm/releases/bob/v1.0/index.js.map +1 -0
  280. package/dist/esm/evm/releases/bob/v1.0/manifest.js +7 -0
  281. package/dist/esm/evm/releases/bob/v1.0/manifest.js.map +1 -0
  282. package/dist/esm/evm/releases/data.js +2 -0
  283. package/dist/esm/evm/releases/data.js.map +1 -1
  284. package/dist/esm/evm/releases/flow/index.js +2 -0
  285. package/dist/esm/evm/releases/flow/index.js.map +1 -1
  286. package/dist/esm/evm/releases/flow/v1.0/deployments.js +0 -16
  287. package/dist/esm/evm/releases/flow/v1.0/deployments.js.map +1 -1
  288. package/dist/esm/evm/releases/flow/v1.1/deployments.js +0 -20
  289. package/dist/esm/evm/releases/flow/v1.1/deployments.js.map +1 -1
  290. package/dist/esm/evm/releases/flow/v2.0/deployments.js +0 -4
  291. package/dist/esm/evm/releases/flow/v2.0/deployments.js.map +1 -1
  292. package/dist/esm/evm/releases/flow/v2.0/index.js +1 -1
  293. package/dist/esm/evm/releases/flow/v2.0/index.js.map +1 -1
  294. package/dist/esm/evm/releases/flow/v3.0/abi/SablierFlow.js +986 -0
  295. package/dist/esm/evm/releases/flow/v3.0/abi/SablierFlow.js.map +1 -0
  296. package/dist/esm/evm/releases/flow/v3.0/abi.js +6 -0
  297. package/dist/esm/evm/releases/flow/v3.0/abi.js.map +1 -0
  298. package/dist/esm/evm/releases/flow/v3.0/aliases.js +6 -0
  299. package/dist/esm/evm/releases/flow/v3.0/aliases.js.map +1 -0
  300. package/dist/esm/evm/releases/flow/v3.0/deployments.js +127 -0
  301. package/dist/esm/evm/releases/flow/v3.0/deployments.js.map +1 -0
  302. package/dist/esm/evm/releases/flow/v3.0/index.js +20 -0
  303. package/dist/esm/evm/releases/flow/v3.0/index.js.map +1 -0
  304. package/dist/esm/evm/releases/flow/v3.0/manifest.js +6 -0
  305. package/dist/esm/evm/releases/flow/v3.0/manifest.js.map +1 -0
  306. package/dist/esm/evm/releases/lockup/index.js +2 -0
  307. package/dist/esm/evm/releases/lockup/index.js.map +1 -1
  308. package/dist/esm/evm/releases/lockup/v1.1/deployments.js +0 -42
  309. package/dist/esm/evm/releases/lockup/v1.1/deployments.js.map +1 -1
  310. package/dist/esm/evm/releases/lockup/v1.2/deployments.js +0 -120
  311. package/dist/esm/evm/releases/lockup/v1.2/deployments.js.map +1 -1
  312. package/dist/esm/evm/releases/lockup/v2.0/deployments.js +0 -35
  313. package/dist/esm/evm/releases/lockup/v2.0/deployments.js.map +1 -1
  314. package/dist/esm/evm/releases/lockup/v3.0/deployments.js +0 -7
  315. package/dist/esm/evm/releases/lockup/v3.0/deployments.js.map +1 -1
  316. package/dist/esm/evm/releases/lockup/v3.0/index.js +1 -1
  317. package/dist/esm/evm/releases/lockup/v3.0/index.js.map +1 -1
  318. package/dist/esm/evm/releases/lockup/v4.0/abi/SablierBatchLockup.js +277 -0
  319. package/dist/esm/evm/releases/lockup/v4.0/abi/SablierBatchLockup.js.map +1 -0
  320. package/dist/esm/evm/releases/lockup/v4.0/abi/SablierLockup.js +1284 -0
  321. package/dist/esm/evm/releases/lockup/v4.0/abi/SablierLockup.js.map +1 -0
  322. package/dist/esm/evm/releases/lockup/v4.0/abi.js +8 -0
  323. package/dist/esm/evm/releases/lockup/v4.0/abi.js.map +1 -0
  324. package/dist/esm/evm/releases/lockup/v4.0/aliases.js +6 -0
  325. package/dist/esm/evm/releases/lockup/v4.0/aliases.js.map +1 -0
  326. package/dist/esm/evm/releases/lockup/v4.0/deployments.js +208 -0
  327. package/dist/esm/evm/releases/lockup/v4.0/deployments.js.map +1 -0
  328. package/dist/esm/evm/releases/lockup/v4.0/index.js +17 -0
  329. package/dist/esm/evm/releases/lockup/v4.0/index.js.map +1 -0
  330. package/dist/esm/evm/releases/lockup/v4.0/manifest.js +9 -0
  331. package/dist/esm/evm/releases/lockup/v4.0/manifest.js.map +1 -0
  332. package/dist/esm/evm/types.js.map +1 -1
  333. package/dist/esm/helpers.js +2 -2
  334. package/dist/esm/helpers.js.map +1 -1
  335. package/dist/esm/internal/factories/queries.js.map +1 -1
  336. package/dist/esm/sablier.js.map +1 -1
  337. package/dist/esm/shapes/airdrops.js +8 -1
  338. package/dist/esm/shapes/airdrops.js.map +1 -1
  339. package/dist/esm/shapes/constants.js +41 -0
  340. package/dist/esm/shapes/constants.js.map +1 -1
  341. package/dist/esm/shapes/enums.js +1 -0
  342. package/dist/esm/shapes/enums.js.map +1 -1
  343. package/dist/esm/shared/types.js.map +1 -1
  344. package/dist/esm/solana/chains/chains.js +1 -0
  345. package/dist/esm/solana/chains/chains.js.map +1 -1
  346. package/dist/types/evm/chains/builder.d.ts +1 -0
  347. package/dist/types/evm/chains/builder.d.ts.map +1 -1
  348. package/dist/types/evm/chains/chains.d.ts +2 -2
  349. package/dist/types/evm/chains/chains.d.ts.map +1 -1
  350. package/dist/types/evm/chains/custom.d.ts +0 -44
  351. package/dist/types/evm/chains/custom.d.ts.map +1 -1
  352. package/dist/types/evm/chains/specs.d.ts +227 -798
  353. package/dist/types/evm/chains/specs.d.ts.map +1 -1
  354. package/dist/types/evm/compatibility.d.ts.map +1 -1
  355. package/dist/types/evm/comptroller/deployments.d.ts.map +1 -1
  356. package/dist/types/evm/comptroller/index.d.ts +1676 -774
  357. package/dist/types/evm/comptroller/index.d.ts.map +1 -1
  358. package/dist/types/evm/comptroller/v1.0/abi/ERC1967Proxy.d.ts +51 -0
  359. package/dist/types/evm/comptroller/v1.0/abi/ERC1967Proxy.d.ts.map +1 -0
  360. package/dist/types/evm/comptroller/v1.0/abi/SablierComptroller.d.ts +720 -0
  361. package/dist/types/evm/comptroller/v1.0/abi/SablierComptroller.d.ts.map +1 -0
  362. package/dist/types/evm/comptroller/{abi.d.ts.map → v1.0/abi.d.ts.map} +1 -1
  363. package/dist/types/evm/comptroller/v1.0/index.d.ts +778 -0
  364. package/dist/types/evm/comptroller/v1.0/index.d.ts.map +1 -0
  365. package/dist/types/evm/comptroller/v1.0/manifest.d.ts.map +1 -0
  366. package/dist/types/evm/comptroller/v2.0/abi/ERC1967Proxy.d.ts +51 -0
  367. package/dist/types/evm/comptroller/v2.0/abi/ERC1967Proxy.d.ts.map +1 -0
  368. package/dist/types/evm/comptroller/v2.0/abi/SablierComptroller.d.ts +841 -0
  369. package/dist/types/evm/comptroller/v2.0/abi/SablierComptroller.d.ts.map +1 -0
  370. package/dist/types/evm/comptroller/v2.0/abi.d.ts +893 -0
  371. package/dist/types/evm/comptroller/v2.0/abi.d.ts.map +1 -0
  372. package/dist/types/evm/comptroller/v2.0/index.d.ts +899 -0
  373. package/dist/types/evm/comptroller/v2.0/index.d.ts.map +1 -0
  374. package/dist/types/evm/comptroller/v2.0/manifest.d.ts +6 -0
  375. package/dist/types/evm/comptroller/v2.0/manifest.d.ts.map +1 -0
  376. package/dist/types/evm/contracts/alias-catalog.d.ts.map +1 -1
  377. package/dist/types/evm/contracts/catalog.d.ts.map +1 -1
  378. package/dist/types/evm/contracts/index.d.ts +3 -0
  379. package/dist/types/evm/contracts/index.d.ts.map +1 -1
  380. package/dist/types/evm/contracts/names.d.ts +7 -3
  381. package/dist/types/evm/contracts/names.d.ts.map +1 -1
  382. package/dist/types/evm/enums.d.ts +10 -3
  383. package/dist/types/evm/enums.d.ts.map +1 -1
  384. package/dist/types/evm/helpers.d.ts.map +1 -1
  385. package/dist/types/evm/releases/airdrops/index.d.ts +5753 -0
  386. package/dist/types/evm/releases/airdrops/index.d.ts.map +1 -1
  387. package/dist/types/evm/releases/airdrops/v1.3/deployments.d.ts.map +1 -1
  388. package/dist/types/evm/releases/airdrops/v2.0/deployments.d.ts.map +1 -1
  389. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleExecute.d.ts +343 -0
  390. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleExecute.d.ts.map +1 -0
  391. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.d.ts +323 -0
  392. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.d.ts.map +1 -0
  393. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.d.ts +443 -0
  394. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.d.ts.map +1 -0
  395. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.d.ts +458 -0
  396. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.d.ts.map +1 -0
  397. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.d.ts +418 -0
  398. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.d.ts.map +1 -0
  399. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleExecute.d.ts +501 -0
  400. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleExecute.d.ts.map +1 -0
  401. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.d.ts +666 -0
  402. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.d.ts.map +1 -0
  403. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.d.ts +875 -0
  404. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.d.ts.map +1 -0
  405. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.d.ts +837 -0
  406. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.d.ts.map +1 -0
  407. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.d.ts +897 -0
  408. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.d.ts.map +1 -0
  409. package/dist/types/evm/releases/airdrops/v3.0/abi.d.ts +5754 -0
  410. package/dist/types/evm/releases/airdrops/v3.0/abi.d.ts.map +1 -0
  411. package/dist/types/evm/releases/airdrops/v3.0/aliases.d.ts +9 -0
  412. package/dist/types/evm/releases/airdrops/v3.0/aliases.d.ts.map +1 -0
  413. package/dist/types/evm/releases/airdrops/v3.0/deployments.d.ts +4 -0
  414. package/dist/types/evm/releases/airdrops/v3.0/deployments.d.ts.map +1 -0
  415. package/dist/types/evm/releases/airdrops/v3.0/index.d.ts +5755 -0
  416. package/dist/types/evm/releases/airdrops/v3.0/index.d.ts.map +1 -0
  417. package/dist/types/evm/releases/airdrops/v3.0/manifest.d.ts +17 -0
  418. package/dist/types/evm/releases/airdrops/v3.0/manifest.d.ts.map +1 -0
  419. package/dist/types/evm/releases/bob/index.d.ts +2263 -0
  420. package/dist/types/evm/releases/bob/index.d.ts.map +1 -0
  421. package/dist/types/evm/releases/bob/v1.0/abi/SablierBob.d.ts +831 -0
  422. package/dist/types/evm/releases/bob/v1.0/abi/SablierBob.d.ts.map +1 -0
  423. package/dist/types/evm/releases/bob/v1.0/abi/SablierEscrow.d.ts +672 -0
  424. package/dist/types/evm/releases/bob/v1.0/abi/SablierEscrow.d.ts.map +1 -0
  425. package/dist/types/evm/releases/bob/v1.0/abi/SablierLidoAdapter.d.ts +757 -0
  426. package/dist/types/evm/releases/bob/v1.0/abi/SablierLidoAdapter.d.ts.map +1 -0
  427. package/dist/types/evm/releases/bob/v1.0/abi.d.ts +2260 -0
  428. package/dist/types/evm/releases/bob/v1.0/abi.d.ts.map +1 -0
  429. package/dist/types/evm/releases/bob/v1.0/aliases.d.ts +7 -0
  430. package/dist/types/evm/releases/bob/v1.0/aliases.d.ts.map +1 -0
  431. package/dist/types/evm/releases/bob/v1.0/deployments.d.ts +4 -0
  432. package/dist/types/evm/releases/bob/v1.0/deployments.d.ts.map +1 -0
  433. package/dist/types/evm/releases/bob/v1.0/index.d.ts +2261 -0
  434. package/dist/types/evm/releases/bob/v1.0/index.d.ts.map +1 -0
  435. package/dist/types/evm/releases/bob/v1.0/manifest.d.ts +7 -0
  436. package/dist/types/evm/releases/bob/v1.0/manifest.d.ts.map +1 -0
  437. package/dist/types/evm/releases/data.d.ts +1 -35673
  438. package/dist/types/evm/releases/data.d.ts.map +1 -1
  439. package/dist/types/evm/releases/flow/index.d.ts +1720 -0
  440. package/dist/types/evm/releases/flow/index.d.ts.map +1 -1
  441. package/dist/types/evm/releases/flow/v1.0/deployments.d.ts.map +1 -1
  442. package/dist/types/evm/releases/flow/v1.1/deployments.d.ts.map +1 -1
  443. package/dist/types/evm/releases/flow/v2.0/deployments.d.ts.map +1 -1
  444. package/dist/types/evm/releases/flow/v3.0/abi/SablierFlow.d.ts +1719 -0
  445. package/dist/types/evm/releases/flow/v3.0/abi/SablierFlow.d.ts.map +1 -0
  446. package/dist/types/evm/releases/flow/v3.0/abi.d.ts +1721 -0
  447. package/dist/types/evm/releases/flow/v3.0/abi.d.ts.map +1 -0
  448. package/dist/types/evm/releases/flow/v3.0/aliases.d.ts +5 -0
  449. package/dist/types/evm/releases/flow/v3.0/aliases.d.ts.map +1 -0
  450. package/dist/types/evm/releases/flow/v3.0/deployments.d.ts +4 -0
  451. package/dist/types/evm/releases/flow/v3.0/deployments.d.ts.map +1 -0
  452. package/dist/types/evm/releases/flow/v3.0/index.d.ts +1722 -0
  453. package/dist/types/evm/releases/flow/v3.0/index.d.ts.map +1 -0
  454. package/dist/types/evm/releases/flow/v3.0/manifest.d.ts +6 -0
  455. package/dist/types/evm/releases/flow/v3.0/manifest.d.ts.map +1 -0
  456. package/dist/types/evm/releases/lockup/index.d.ts +2699 -0
  457. package/dist/types/evm/releases/lockup/index.d.ts.map +1 -1
  458. package/dist/types/evm/releases/lockup/v1.1/deployments.d.ts.map +1 -1
  459. package/dist/types/evm/releases/lockup/v1.2/deployments.d.ts.map +1 -1
  460. package/dist/types/evm/releases/lockup/v2.0/deployments.d.ts.map +1 -1
  461. package/dist/types/evm/releases/lockup/v3.0/deployments.d.ts.map +1 -1
  462. package/dist/types/evm/releases/lockup/v4.0/abi/SablierBatchLockup.d.ts +521 -0
  463. package/dist/types/evm/releases/lockup/v4.0/abi/SablierBatchLockup.d.ts.map +1 -0
  464. package/dist/types/evm/releases/lockup/v4.0/abi/SablierLockup.d.ts +2178 -0
  465. package/dist/types/evm/releases/lockup/v4.0/abi/SablierLockup.d.ts.map +1 -0
  466. package/dist/types/evm/releases/lockup/v4.0/abi.d.ts +2700 -0
  467. package/dist/types/evm/releases/lockup/v4.0/abi.d.ts.map +1 -0
  468. package/dist/types/evm/releases/lockup/v4.0/aliases.d.ts +5 -0
  469. package/dist/types/evm/releases/lockup/v4.0/aliases.d.ts.map +1 -0
  470. package/dist/types/evm/releases/lockup/v4.0/deployments.d.ts +4 -0
  471. package/dist/types/evm/releases/lockup/v4.0/deployments.d.ts.map +1 -0
  472. package/dist/types/evm/releases/lockup/v4.0/index.d.ts +2701 -0
  473. package/dist/types/evm/releases/lockup/v4.0/index.d.ts.map +1 -0
  474. package/dist/types/evm/releases/lockup/v4.0/manifest.d.ts +9 -0
  475. package/dist/types/evm/releases/lockup/v4.0/manifest.d.ts.map +1 -0
  476. package/dist/types/evm/types.d.ts +2 -1
  477. package/dist/types/evm/types.d.ts.map +1 -1
  478. package/dist/types/helpers.d.ts.map +1 -1
  479. package/dist/types/sablier.d.ts.map +1 -1
  480. package/dist/types/shapes/airdrops.d.ts +1 -0
  481. package/dist/types/shapes/airdrops.d.ts.map +1 -1
  482. package/dist/types/shapes/constants.d.ts +45 -0
  483. package/dist/types/shapes/constants.d.ts.map +1 -1
  484. package/dist/types/shapes/enums.d.ts +2 -1
  485. package/dist/types/shapes/enums.d.ts.map +1 -1
  486. package/dist/types/shapes/index.d.ts +1 -0
  487. package/dist/types/shapes/index.d.ts.map +1 -1
  488. package/dist/types/shared/types.d.ts +1 -0
  489. package/dist/types/shared/types.d.ts.map +1 -1
  490. package/dist/types/solana/chains/chains.d.ts.map +1 -1
  491. package/package.json +4 -3
  492. package/dist/cjs/evm/comptroller/abi.js.map +0 -1
  493. package/dist/cjs/evm/comptroller/manifest.js.map +0 -1
  494. package/dist/esm/evm/comptroller/abi.js.map +0 -1
  495. package/dist/esm/evm/comptroller/manifest.js.map +0 -1
  496. package/dist/types/evm/comptroller/manifest.d.ts.map +0 -1
  497. /package/abi/comptroller/{SablierComptroller.json → v1.0/SablierComptroller.json} +0 -0
  498. /package/dist/cjs/evm/comptroller/{abi.js → v1.0/abi.js} +0 -0
  499. /package/dist/cjs/evm/comptroller/{manifest.js → v1.0/manifest.js} +0 -0
  500. /package/dist/esm/evm/comptroller/{abi.js → v1.0/abi.js} +0 -0
  501. /package/dist/esm/evm/comptroller/{manifest.js → v1.0/manifest.js} +0 -0
  502. /package/dist/types/evm/comptroller/{abi.d.ts → v1.0/abi.d.ts} +0 -0
  503. /package/dist/types/evm/comptroller/{manifest.d.ts → v1.0/manifest.d.ts} +0 -0
@@ -2,9 +2,9 @@ import { Protocol as EvmProtocol } from "./evm/enums.js";
2
2
  import { isEvmReleasePayable, resolveEvmStreamId, truncateEvmAddress } from "./evm/helpers.js";
3
3
  import { SOLANA_CHAIN_IDS } from "./solana/chains/chains.js";
4
4
  import { resolveSolanaStreamId, truncateSolanaAddress } from "./solana/helpers.js";
5
- const EVM_ONLY_PROTOCOLS = new Set([EvmProtocol.Flow, EvmProtocol.Legacy]);
6
5
  export * from "./evm/helpers.js";
7
6
  export * from "./solana/helpers.js";
7
+ const MULTI_ECOSYSTEM_PROTOCOLS = new Set([EvmProtocol.Airdrops, EvmProtocol.Lockup]);
8
8
  export function compareVersions(a, b) {
9
9
  const [aMajor, aMinor] = a.slice(1).split(".").map(Number);
10
10
  const [bMajor, bMinor] = b.slice(1).split(".").map(Number);
@@ -31,7 +31,7 @@ export const truncate = truncateAddress;
31
31
  export function resolveStreamId(opts) {
32
32
  const { alias, chainId, tokenId, protocol } = opts;
33
33
  const isSolanaChain = SOLANA_CHAIN_IDS.has(chainId);
34
- if (protocol && isSolanaChain && EVM_ONLY_PROTOCOLS.has(protocol)) {
34
+ if (protocol && isSolanaChain && !MULTI_ECOSYSTEM_PROTOCOLS.has(protocol)) {
35
35
  throw new Error(`Sablier SDK: Protocol "${protocol}" is EVM-only and not valid for Solana chain ${chainId}`);
36
36
  }
37
37
  if (isSolanaChain) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAInF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAG3E,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAkBpC,MAAM,UAAU,eAAe,CAAC,CAAU,EAAE,CAAU;IACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,GAAG,MAAM,CAAC;AACzB,CAAC;AAWD,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,MAAe;IAC/D,OAAO,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAWD,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,KAAc;IAC7D,OAAO,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAoBD,MAAM,UAAU,gBAAgB,CAC9B,QAA4B,EAC5B,OAA4B;IAE5B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAeD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAgC;IAC/E,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,kBAAkB,CAAC,OAA8B,EAAE,OAAO,CAAC;QAC7D,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAMD,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAuBxC,MAAM,UAAU,eAAe,CAAC,IAK/B;IACC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAGpD,IAAI,QAAQ,IAAI,aAAa,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAuB,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,gDAAgD,OAAO,EAAE,CAC5F,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,qBAAqB,CAAC;YAC3B,KAAK;YACL,OAAO;YACP,QAAQ,EAAE,QAAmC;YAC7C,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,QAAgC;QAC1C,OAAO;KACR,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Protocol as EvmProtocol } from \"./evm/enums.js\";\nimport type { PayableEvmProtocol } from \"./evm/helpers.js\";\nimport { isEvmReleasePayable, resolveEvmStreamId, truncateEvmAddress } from \"./evm/helpers.js\";\nimport { SOLANA_CHAIN_IDS } from \"./solana/chains/chains.js\";\nimport { resolveSolanaStreamId, truncateSolanaAddress } from \"./solana/helpers.js\";\nimport type { Sablier, TruncateAddressOptions } from \"./types.js\";\n\n/** EVM-only protocols that don't exist on Solana */\nconst EVM_ONLY_PROTOCOLS = new Set([EvmProtocol.Flow, EvmProtocol.Legacy]);\n\n// Re-export platform-specific helpers\nexport * from \"./evm/helpers.js\";\nexport * from \"./solana/helpers.js\";\n\n// Re-export shared types\nexport type { TruncateAddressOptions } from \"./types.js\";\n\n/** Version type supporting both EVM and Solana protocols */\ntype Version = Sablier.EVM.Version | Sablier.Solana.Version;\n\n/**\n * Compare two semantic version strings.\n * @param a - First version string (e.g., \"v1.0\", \"v2.1\")\n * @param b - Second version string (e.g., \"v1.0\", \"v2.1\")\n * @returns -1 if a < b, 0 if a === b, 1 if a > b\n * @example\n * compareVersions(\"v1.0\", \"v2.0\") // -1\n * compareVersions(\"v2.0\", \"v1.0\") // 1\n * compareVersions(\"v1.1\", \"v1.1\") // 0\n */\nexport function compareVersions(a: Version, b: Version): number {\n const [aMajor, aMinor] = a.slice(1).split(\".\").map(Number);\n const [bMajor, bMinor] = b.slice(1).split(\".\").map(Number);\n\n if (aMajor !== bMajor) {\n return aMajor - bMajor;\n }\n return aMinor - bMinor;\n}\n\n/**\n * Check if a version comes before another chronologically.\n * @param version - The version to check\n * @param before - The reference version to compare against\n * @returns true if version comes before the reference version\n * @example\n * isVersionBefore(\"v1.0\", \"v2.0\") // true\n * isVersionBefore(\"v2.0\", \"v1.0\") // false\n */\nexport function isVersionBefore(version: Version, before: Version): boolean {\n return compareVersions(version, before) < 0;\n}\n\n/**\n * Check if a version comes after another chronologically.\n * @param version - The version to check\n * @param after - The reference version to compare against\n * @returns true if version comes after the reference version\n * @example\n * isVersionAfter(\"v2.0\", \"v1.0\") // true\n * isVersionAfter(\"v1.0\", \"v2.0\") // false\n */\nexport function isVersionAfter(version: Version, after: Version): boolean {\n return compareVersions(version, after) > 0;\n}\n\n/**\n * Check if a protocol release charges ETH fees on withdraw/claim operations.\n *\n * Starting from specific versions, Sablier contracts charge a small ETH fee when\n * recipients withdraw or claim tokens from streams and airdrops.\n *\n * @param protocol - The protocol name (\"airdrops\", \"flow\", or \"lockup\")\n * @param version - The version to check\n * @returns true if the release charges fees\n * @see {@link https://docs.sablier.com/concepts/fees} for fee details\n * @example\n * isReleasePayable(\"airdrops\", \"v1.2\") // false\n * isReleasePayable(\"airdrops\", \"v1.3\") // true\n * isReleasePayable(\"lockup\", \"v1.2\") // false\n * isReleasePayable(\"lockup\", \"v2.0\") // true\n * isReleasePayable(\"flow\", \"v1.0\") // false\n * isReleasePayable(\"flow\", \"v1.1\") // true\n */\nexport function isReleasePayable(\n protocol: PayableEvmProtocol,\n version: Sablier.EVM.Version\n): boolean {\n return isEvmReleasePayable(protocol, version);\n}\n\n/**\n * Truncate an Ethereum or Solana address for display purposes.\n * Automatically routes to the appropriate typed function based on address format.\n *\n * @param address - The address to truncate (Ethereum 0x-prefixed or Solana base58)\n * @param options - Optional truncation options with start and end character counts (default: 4 each)\n * @returns Truncated address in format \"0xcafe...beef\" or \"DYw8...NSKK\" or original if too short\n * @example\n * truncateAddress(\"0x1234567890abcdef1234567890abcdef12345678\") // \"0x1234...5678\"\n * truncateAddress(\"0x1234567890abcdef1234567890abcdef12345678\", { start: 6, end: 6 }) // \"0x123456...345678\"\n * truncateAddress(\"DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK\") // \"DYw8...NSKK\"\n * truncateAddress(\"0x123\") // \"0x123\" (too short, returns original)\n */\nexport function truncateAddress(address: string, options?: TruncateAddressOptions): string {\n return address.startsWith(\"0x\")\n ? truncateEvmAddress(address as Sablier.EVM.Address, options)\n : truncateSolanaAddress(address, options);\n}\n\n/**\n * Convenience alias for {@link truncateAddress}.\n * Also suitable for truncating arbitrary hex strings, not just addresses.\n */\nexport const truncate = truncateAddress;\n\n/**\n * Resolves a stream/airdrop entity ID for use with Sablier indexers.\n * Automatically routes to EVM or Solana based on chain ID.\n *\n * Format: `{contractAddress}-{chainId}-{tokenId}`\n *\n * @param opts - Configuration object\n * @param opts.alias - Contract/program alias (e.g., \"LL2\", \"LK2\", \"FL2\" for EVM; \"LL\" for Solana)\n * @param opts.chainId - Chain ID (EVM chains or Solana chains: 900000010, 900000020)\n * @param opts.tokenId - Stream/airdrop token ID\n * @param opts.protocol - Optional protocol to disambiguate aliases\n * @returns Stream ID in format \"0xabc...-1-123\" (EVM) or \"DYw8jC...-900000010-123\" (Solana)\n * @example\n * // EVM\n * resolveStreamId({ alias: \"LL2\", chainId: 1, tokenId: 123n })\n * // => \"0xabc...-1-123\"\n *\n * // Solana\n * resolveStreamId({ alias: \"LL\", chainId: 900000010, tokenId: 456n })\n * // => \"DYw8jC...-900000010-456\"\n */\nexport function resolveStreamId(opts: {\n alias: string;\n chainId: number;\n tokenId: bigint | string | number;\n protocol?: Sablier.EVM.Protocol | Sablier.Solana.Protocol;\n}): string {\n const { alias, chainId, tokenId, protocol } = opts;\n const isSolanaChain = SOLANA_CHAIN_IDS.has(chainId);\n\n // Validate protocol/chain compatibility\n if (protocol && isSolanaChain && EVM_ONLY_PROTOCOLS.has(protocol as EvmProtocol)) {\n throw new Error(\n `Sablier SDK: Protocol \"${protocol}\" is EVM-only and not valid for Solana chain ${chainId}`\n );\n }\n\n if (isSolanaChain) {\n return resolveSolanaStreamId({\n alias,\n chainId,\n protocol: protocol as Sablier.Solana.Protocol,\n tokenId,\n });\n }\n\n return resolveEvmStreamId({\n alias,\n chainId,\n protocol: protocol as Sablier.EVM.Protocol,\n tokenId,\n });\n}\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAInF,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AASpC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAYtF,MAAM,UAAU,eAAe,CAAC,CAAU,EAAE,CAAU;IACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,GAAG,MAAM,CAAC;AACzB,CAAC;AAWD,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,MAAe;IAC/D,OAAO,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAWD,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,KAAc;IAC7D,OAAO,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAoBD,MAAM,UAAU,gBAAgB,CAC9B,QAA4B,EAC5B,OAA4B;IAE5B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAeD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAgC;IAC/E,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,kBAAkB,CAAC,OAA8B,EAAE,OAAO,CAAC;QAC7D,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAMD,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;AAuBxC,MAAM,UAAU,eAAe,CAAC,IAK/B;IACC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAGpD,IAAI,QAAQ,IAAI,aAAa,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAuB,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,gDAAgD,OAAO,EAAE,CAC5F,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,qBAAqB,CAAC;YAC3B,KAAK;YACL,OAAO;YACP,QAAQ,EAAE,QAAmC;YAC7C,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;QACxB,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,QAAgC;QAC1C,OAAO;KACR,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Protocol as EvmProtocol } from \"./evm/enums.js\";\nimport type { PayableEvmProtocol } from \"./evm/helpers.js\";\nimport { isEvmReleasePayable, resolveEvmStreamId, truncateEvmAddress } from \"./evm/helpers.js\";\nimport { SOLANA_CHAIN_IDS } from \"./solana/chains/chains.js\";\nimport { resolveSolanaStreamId, truncateSolanaAddress } from \"./solana/helpers.js\";\nimport type { Sablier, TruncateAddressOptions } from \"./types.js\";\n\n// Re-export platform-specific helpers\nexport * from \"./evm/helpers.js\";\nexport * from \"./solana/helpers.js\";\n\n// Re-export shared types\nexport type { TruncateAddressOptions } from \"./types.js\";\n\n/** Version type supporting both EVM and Solana protocols */\ntype Version = Sablier.EVM.Version | Sablier.Solana.Version;\n\n/** Protocols that exist on both EVM and Solana ecosystems */\nconst MULTI_ECOSYSTEM_PROTOCOLS = new Set([EvmProtocol.Airdrops, EvmProtocol.Lockup]);\n\n/**\n * Compare two semantic version strings.\n * @param a - First version string (e.g., \"v1.0\")\n * @param b - Second version string (e.g., \"v1.0\")\n * @returns -1 if a < b, 0 if a === b, 1 if a > b\n * @example\n * compareVersions(\"v1.0\", \"v2.0\") // -1\n * compareVersions(\"v2.0\", \"v1.0\") // 1\n * compareVersions(\"v1.1\", \"v1.1\") // 0\n */\nexport function compareVersions(a: Version, b: Version): number {\n const [aMajor, aMinor] = a.slice(1).split(\".\").map(Number);\n const [bMajor, bMinor] = b.slice(1).split(\".\").map(Number);\n\n if (aMajor !== bMajor) {\n return aMajor - bMajor;\n }\n return aMinor - bMinor;\n}\n\n/**\n * Check if a version comes before another chronologically.\n * @param version - The version to check\n * @param before - The reference version to compare against\n * @returns true if version comes before the reference version\n * @example\n * isVersionBefore(\"v1.0\", \"v2.0\") // true\n * isVersionBefore(\"v2.0\", \"v1.0\") // false\n */\nexport function isVersionBefore(version: Version, before: Version): boolean {\n return compareVersions(version, before) < 0;\n}\n\n/**\n * Check if a version comes after another chronologically.\n * @param version - The version to check\n * @param after - The reference version to compare against\n * @returns true if version comes after the reference version\n * @example\n * isVersionAfter(\"v2.0\", \"v1.0\") // true\n * isVersionAfter(\"v1.0\", \"v2.0\") // false\n */\nexport function isVersionAfter(version: Version, after: Version): boolean {\n return compareVersions(version, after) > 0;\n}\n\n/**\n * Check if a protocol release charges ETH fees on withdraw/claim operations.\n *\n * Starting from specific versions, Sablier contracts charge a small ETH fee when\n * recipients withdraw or claim tokens from streams and airdrops.\n *\n * @param protocol - The protocol name (\"airdrops\", \"flow\", or \"lockup\")\n * @param version - The version to check\n * @returns true if the release charges fees\n * @see {@link https://docs.sablier.com/concepts/fees} for fee details\n * @example\n * isReleasePayable(\"airdrops\", \"v1.2\") // false\n * isReleasePayable(\"airdrops\", \"v1.3\") // true\n * isReleasePayable(\"lockup\", \"v1.2\") // false\n * isReleasePayable(\"lockup\", \"v2.0\") // true\n * isReleasePayable(\"flow\", \"v1.0\") // false\n * isReleasePayable(\"flow\", \"v1.1\") // true\n */\nexport function isReleasePayable(\n protocol: PayableEvmProtocol,\n version: Sablier.EVM.Version\n): boolean {\n return isEvmReleasePayable(protocol, version);\n}\n\n/**\n * Truncate an Ethereum or Solana address for display purposes.\n * Automatically routes to the appropriate typed function based on address format.\n *\n * @param address - The address to truncate (Ethereum 0x-prefixed or Solana base58)\n * @param options - Optional truncation options with start and end character counts (default: 4 each)\n * @returns Truncated address in format \"0xcafe...beef\" or \"DYw8...NSKK\" or original if too short\n * @example\n * truncateAddress(\"0x1234567890abcdef1234567890abcdef12345678\") // \"0x1234...5678\"\n * truncateAddress(\"0x1234567890abcdef1234567890abcdef12345678\", { start: 6, end: 6 }) // \"0x123456...345678\"\n * truncateAddress(\"DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK\") // \"DYw8...NSKK\"\n * truncateAddress(\"0x123\") // \"0x123\" (too short, returns original)\n */\nexport function truncateAddress(address: string, options?: TruncateAddressOptions): string {\n return address.startsWith(\"0x\")\n ? truncateEvmAddress(address as Sablier.EVM.Address, options)\n : truncateSolanaAddress(address, options);\n}\n\n/**\n * Convenience alias for {@link truncateAddress}.\n * Also suitable for truncating arbitrary hex strings, not just addresses.\n */\nexport const truncate = truncateAddress;\n\n/**\n * Resolves a stream/airdrop entity ID for use with Sablier indexers.\n * Automatically routes to EVM or Solana based on chain ID.\n *\n * Format: `{contractAddress}-{chainId}-{tokenId}`\n *\n * @param opts - Configuration object\n * @param opts.alias - Contract/program alias (e.g., \"LL2\", \"LK2\", \"FL2\" for EVM; \"LL\" for Solana)\n * @param opts.chainId - Chain ID (EVM chains or Solana chains: 900000010, 900000020)\n * @param opts.tokenId - Stream/airdrop token ID\n * @param opts.protocol - Optional protocol to disambiguate aliases\n * @returns Stream ID in format \"0xabc...-1-123\" (EVM) or \"DYw8jC...-900000010-123\" (Solana)\n * @example\n * // EVM\n * resolveStreamId({ alias: \"LL2\", chainId: 1, tokenId: 123n })\n * // => \"0xabc...-1-123\"\n *\n * // Solana\n * resolveStreamId({ alias: \"LL\", chainId: 900000010, tokenId: 456n })\n * // => \"DYw8jC...-900000010-456\"\n */\nexport function resolveStreamId(opts: {\n alias: string;\n chainId: number;\n tokenId: bigint | string | number;\n protocol?: Sablier.EVM.Protocol | Sablier.Solana.Protocol;\n}): string {\n const { alias, chainId, tokenId, protocol } = opts;\n const isSolanaChain = SOLANA_CHAIN_IDS.has(chainId);\n\n // Validate protocol/chain compatibility\n if (protocol && isSolanaChain && !MULTI_ECOSYSTEM_PROTOCOLS.has(protocol as EvmProtocol)) {\n throw new Error(\n `Sablier SDK: Protocol \"${protocol}\" is EVM-only and not valid for Solana chain ${chainId}`\n );\n }\n\n if (isSolanaChain) {\n return resolveSolanaStreamId({\n alias,\n chainId,\n protocol: protocol as Sablier.Solana.Protocol,\n tokenId,\n });\n }\n\n return resolveEvmStreamId({\n alias,\n chainId,\n protocol: protocol as Sablier.EVM.Protocol,\n tokenId,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/internal/factories/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPath } from \"@/src/internal/utils/object-path.js\";\n\n/**\n * Factory function to create releases queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n */\nexport function createReleasesQueries<\n TProtocol extends string,\n TVersion extends string,\n TRelease extends {\n version: TVersion;\n deployments: Array<{ chainId: number }>;\n isLatest?: boolean;\n },\n>(config: {\n releases: Record<TProtocol, Record<string, TRelease>>;\n ProtocolEnum: Record<string, TProtocol>;\n}) {\n const { releases, ProtocolEnum } = config;\n\n return {\n get: (opts: { protocol: TProtocol; version: TVersion }): TRelease | undefined => {\n const { protocol, version } = opts;\n return getPath<TRelease>(releases, [protocol, version]);\n },\n /**\n * Get all releases for a protocol.\n * - {} ⇒ all releases for all protocols\n * - {protocol} ⇒ all releases for that protocol\n */\n getAll: (opts?: { protocol?: TProtocol }): TRelease[] => {\n const { protocol } = opts || {};\n if (protocol) {\n return Object.values(releases[protocol]) as TRelease[];\n }\n // Recursively get all releases from all protocols in the enum\n return Object.values(ProtocolEnum).flatMap((protocolName) =>\n Object.values(releases[protocolName])\n ) as TRelease[];\n },\n /**\n * Get the first release:\n * - {protocol} ⇒ first overall\n * - {protocol,chainId} ⇒ first on that chain\n */\n getFirst: (opts: { protocol: TProtocol; chainId?: number }): TRelease | undefined => {\n const { protocol, chainId } = opts;\n const list = Object.values(releases[protocol]) as TRelease[];\n\n if (chainId) {\n return list.find((r) => r.deployments.some((d) => d.chainId === chainId));\n }\n\n return list[0];\n },\n /**\n * Get the latest release for a protocol.\n * - {protocol}\n */\n getLatest: (opts: { protocol: TProtocol }): TRelease => {\n const list = Object.values(releases[opts.protocol]) as TRelease[];\n const latest = list.at(-1);\n if (!latest || !latest.isLatest) {\n throw new Error(\n `Sablier SDK: No latest release found for Sablier ${opts.protocol}. Please report on GitHub.`\n );\n }\n return latest;\n },\n };\n}\n\n/**\n * Factory function to create contract queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n *\n * @template TProtocol - The protocol type\n * @template TContract - The contract/program type with name and address fields\n * @template TDeployment - The deployment type containing contracts or programs\n * @template TRelease - The release type\n * @template TCatalog - The catalog type for reverse lookups\n * @template TAliasCatalog - The alias catalog type for alias-based lookups\n */\nexport function createContractsQueries<\n TProtocol extends string,\n TContract extends { name: string; address: string; alias?: string },\n TDeployment extends { chainId: number; contracts?: TContract[]; programs?: TContract[] },\n TRelease extends { version: string; deployments: TDeployment[] },\n TCatalog,\n TAliasCatalog = undefined,\n>(config: {\n getAliasCatalog?: () => TAliasCatalog;\n catalog: TCatalog;\n releasesQueries: {\n getAll: (opts?: { protocol?: TProtocol }) => TRelease[];\n getLatest: (opts: { protocol: TProtocol }) => TRelease;\n };\n protocols: TProtocol[];\n normalizeAddress: (address: string) => string;\n /** Field name for contracts (e.g., 'contracts' for EVM, 'programs' for Solana) */\n contractsField: \"contracts\" | \"programs\";\n}) {\n const { getAliasCatalog, catalog, releasesQueries, protocols, normalizeAddress, contractsField } =\n config;\n\n // Helper to safely get contracts/programs from deployment\n const getItems = (deployment: TDeployment | undefined): TContract[] => {\n if (!deployment) {\n return [];\n }\n return (deployment[contractsField] as TContract[]) || [];\n };\n\n // Helper to find deployment by chainId and get its contracts\n const getDeploymentItems = (release: TRelease, chainId: number): TContract[] => {\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n return getItems(dep);\n };\n\n // Helper to find contract by name in a release\n const findByName = (release: TRelease, chainId: number, name: string): TContract | undefined => {\n return getDeploymentItems(release, chainId).find((c) => c.name === name);\n };\n\n // Helper to find contract by address in a release\n const findByAddress = (\n release: TRelease,\n chainId: number,\n address: string\n ): TContract | undefined => {\n return getDeploymentItems(release, chainId).find(\n (c) => normalizeAddress(c.address) === address\n );\n };\n\n // Helper to check if release contains address on chain\n const releaseHasAddress = (release: TRelease, chainId: number, address: string): boolean => {\n return getDeploymentItems(release, chainId).some(\n (c) => normalizeAddress(c.address) === address\n );\n };\n\n // Helper to search catalog across all protocols\n const searchCatalog = (chainId: number, address: string): TContract | undefined => {\n for (const p of protocols) {\n const contract = getPath<TContract>(catalog, [p, chainId, address]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n };\n\n // Helper to find contract by address scoped to protocol (with duplicate check)\n const findByAddressInProtocol = (\n protocol: TProtocol,\n chainId: number,\n address: string,\n originalAddress: string\n ): TContract | undefined => {\n const releases = releasesQueries.getAll({ protocol });\n const matches = releases.filter((rel) => releaseHasAddress(rel, chainId, address));\n\n if (matches.length > 1) {\n const versions = matches.map((r) => r.version).join(\", \");\n throw new Error(\n `Sablier SDK: Contract ${originalAddress} exists in multiple releases (${versions}) for \"${protocol}\". ` +\n \"Specify release: { chainId, contractAddress, release }\"\n );\n }\n\n return getPath<TContract>(catalog, [protocol, chainId, address]);\n };\n\n // Helper to filter deployments by chainId and extract contracts\n const filterDeploymentsAndGetItems = (\n deployments: TDeployment[],\n chainId?: number\n ): TContract[] | undefined => {\n const filtered = chainId ? deployments.filter((d) => d.chainId === chainId) : deployments;\n if (chainId && filtered.length === 0) {\n return undefined;\n }\n return filtered.flatMap(getItems);\n };\n\n return {\n /**\n * Get a single contract using the following options:\n *\n * - { chainId, contractName, release }\n * - { chainId, contractAddress, protocol }\n * - { chainId, contractAddress, release }\n * - { chainId, contractAddress, protocol, release }\n *\n * Note: If a contract address exists in multiple releases for the same protocol, you must specify the release.\n */\n get: (opts: {\n chainId: number;\n contractAddress?: string;\n contractName?: string;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract | undefined => {\n const { chainId, contractAddress, contractName, protocol, release } = opts;\n\n // Validation\n if (contractAddress && contractName) {\n throw new Error(\"Sablier SDK: Cannot specify both contractAddress and contractName\");\n }\n\n // Query by name requires release\n if (contractName) {\n if (!release) {\n throw new Error(\"Sablier SDK: contractName requires release to be specified\");\n }\n return findByName(release, chainId, contractName);\n }\n\n // Query by address\n if (!contractAddress) {\n return undefined;\n }\n\n const address = normalizeAddress(contractAddress);\n\n // Scoped to specific release\n if (release) {\n return findByAddress(release, chainId, address);\n }\n\n // Scoped to protocol - check for duplicates across releases\n if (protocol) {\n return findByAddressInProtocol(protocol, chainId, address, contractAddress);\n }\n\n // Fallback: search all protocols\n return searchCatalog(chainId, address);\n },\n\n /**\n * Get many contracts.\n * - no options ⇒ all\n * - { chainId } ⇒ all for that chain\n * - { protocol } ⇒ all for that protocol\n * - { protocol, chainId } ⇒ all for that protocol and chain\n * - { release } ⇒ all deployments of that release\n * - { release, chainId } ⇒ all for that release and chain\n */\n getAll: (opts?: {\n chainId?: number;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract[] | undefined => {\n const { protocol, chainId, release } = opts || {};\n\n if (protocol && release) {\n throw new Error(\"Sablier SDK: Cannot specify both protocol and release as query options\");\n }\n\n // by protocol\n if (protocol) {\n const releases = releasesQueries.getAll({ protocol });\n const deployments = releases.flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n }\n\n // by explicit release\n if (release) {\n return filterDeploymentsAndGetItems(release.deployments, chainId);\n }\n\n // by chain id or no filters\n const deployments = releasesQueries.getAll().flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n },\n\n /**\n * Get a contract by its alias.\n * Aliases are version-specific (e.g., LK = Lockup v2.0, LK2 = Lockup v3.0).\n *\n * @example\n * contractsQueries.getByAlias({ alias: \"LK2\", chainId: 1 })\n * contractsQueries.getByAlias({ alias: \"FL3\", chainId: 137, protocol: \"flow\" })\n */\n getByAlias: (opts: {\n alias: string;\n chainId: number;\n protocol?: TProtocol;\n }): TContract | undefined => {\n const { alias, chainId, protocol } = opts;\n\n if (!getAliasCatalog) {\n return undefined;\n }\n\n const aliasCatalog = getAliasCatalog();\n if (!aliasCatalog) {\n return undefined;\n }\n\n if (protocol) {\n return getPath<TContract>(aliasCatalog, [protocol, chainId, alias]);\n }\n\n // Search all protocols\n for (const p of protocols) {\n const contract = getPath<TContract>(aliasCatalog, [p, chainId, alias]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n },\n\n /**\n * Get the latest contract by name for a protocol.\n * - { chainId, contractName, protocol }\n */\n getLatestByName: (opts: {\n chainId: number;\n contractName: string;\n protocol: TProtocol;\n }): TContract | undefined => {\n const { chainId, contractName, protocol } = opts;\n const release = releasesQueries.getLatest({ protocol });\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n const items = getItems(dep);\n return items.find((c) => c.name === contractName);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/internal/factories/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPath } from \"@/src/internal/utils/object-path.js\";\n\n/**\n * Factory function to create releases queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n */\nexport function createReleasesQueries<\n TProtocol extends string,\n TVersion extends string,\n TRelease extends {\n version: TVersion;\n deployments: Array<{ chainId: number }>;\n isLatest?: boolean;\n },\n>(config: {\n releases: Record<TProtocol, Record<string, TRelease>>;\n ProtocolEnum: Record<string, TProtocol>;\n}) {\n const { releases, ProtocolEnum } = config;\n\n return {\n get: (opts: { protocol: TProtocol; version: TVersion }): TRelease | undefined => {\n const { protocol, version } = opts;\n return getPath<TRelease>(releases, [protocol, version]);\n },\n /**\n * Get all releases for a protocol.\n * - {} ⇒ all releases for all protocols\n * - {protocol} ⇒ all releases for that protocol\n */\n getAll: (opts?: { protocol?: TProtocol }): TRelease[] => {\n const { protocol } = opts || {};\n if (protocol) {\n return Object.values(releases[protocol]) as TRelease[];\n }\n // Recursively get all releases from all protocols in the enum\n return Object.values(ProtocolEnum).flatMap((protocolName) =>\n Object.values(releases[protocolName])\n ) as TRelease[];\n },\n /**\n * Get the first release:\n * - {protocol} ⇒ first overall\n * - {protocol,chainId} ⇒ first on that chain\n */\n getFirst: (opts: { protocol: TProtocol; chainId?: number }): TRelease | undefined => {\n const { protocol, chainId } = opts;\n const list = Object.values(releases[protocol]) as TRelease[];\n\n if (chainId) {\n return list.find((r) => r.deployments.some((d) => d.chainId === chainId));\n }\n\n return list[0];\n },\n /**\n * Get the latest release for a protocol.\n * - {protocol}\n */\n getLatest: (opts: { protocol: TProtocol }): TRelease => {\n const list = Object.values(releases[opts.protocol]) as TRelease[];\n const latest = list.at(-1);\n if (!latest || !latest.isLatest) {\n throw new Error(\n `Sablier SDK: No latest release found for Sablier ${opts.protocol}. Please report on GitHub.`\n );\n }\n return latest;\n },\n };\n}\n\n/**\n * Factory function to create contract queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n *\n * @template TProtocol - The protocol type\n * @template TContract - The contract/program type with name and address fields\n * @template TDeployment - The deployment type containing contracts or programs\n * @template TRelease - The release type\n * @template TCatalog - The catalog type for reverse lookups\n * @template TAliasCatalog - The alias catalog type for alias-based lookups\n */\nexport function createContractsQueries<\n TProtocol extends string,\n TContract extends { name: string; address: string; alias?: string },\n TDeployment extends { chainId: number; contracts?: TContract[]; programs?: TContract[] },\n TRelease extends { version: string; deployments: TDeployment[] },\n TCatalog,\n TAliasCatalog = undefined,\n>(config: {\n getAliasCatalog?: () => TAliasCatalog;\n catalog: TCatalog;\n releasesQueries: {\n getAll: (opts?: { protocol?: TProtocol }) => TRelease[];\n getLatest: (opts: { protocol: TProtocol }) => TRelease;\n };\n protocols: TProtocol[];\n normalizeAddress: (address: string) => string;\n /** Field name for contracts (e.g., 'contracts' for EVM, 'programs' for Solana) */\n contractsField: \"contracts\" | \"programs\";\n}) {\n const { getAliasCatalog, catalog, releasesQueries, protocols, normalizeAddress, contractsField } =\n config;\n\n // Helper to safely get contracts/programs from deployment\n const getItems = (deployment: TDeployment | undefined): TContract[] => {\n if (!deployment) {\n return [];\n }\n return (deployment[contractsField] as TContract[]) || [];\n };\n\n // Helper to find deployment by chainId and get its contracts\n const getDeploymentItems = (release: TRelease, chainId: number): TContract[] => {\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n return getItems(dep);\n };\n\n // Helper to find contract by name in a release\n const findByName = (release: TRelease, chainId: number, name: string): TContract | undefined => {\n return getDeploymentItems(release, chainId).find((c) => c.name === name);\n };\n\n // Helper to find contract by address in a release\n const findByAddress = (\n release: TRelease,\n chainId: number,\n address: string\n ): TContract | undefined => {\n return getDeploymentItems(release, chainId).find(\n (c) => normalizeAddress(c.address) === address\n );\n };\n\n // Helper to check if release contains address on chain\n const releaseHasAddress = (release: TRelease, chainId: number, address: string): boolean => {\n return getDeploymentItems(release, chainId).some(\n (c) => normalizeAddress(c.address) === address\n );\n };\n\n // Helper to search catalog across all protocols\n const searchCatalog = (chainId: number, address: string): TContract | undefined => {\n for (const p of protocols) {\n const contract = getPath<TContract>(catalog, [p, chainId, address]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n };\n\n // Helper to find contract by address scoped to protocol (with duplicate check)\n const findByAddressInProtocol = (\n protocol: TProtocol,\n chainId: number,\n address: string,\n originalAddress: string\n ): TContract | undefined => {\n const releases = releasesQueries.getAll({ protocol });\n const matches = releases.filter((rel) => releaseHasAddress(rel, chainId, address));\n\n if (matches.length > 1) {\n const versions = matches.map((r) => r.version).join(\", \");\n throw new Error(\n `Sablier SDK: Contract ${originalAddress} exists in multiple releases (${versions}) for \"${protocol}\". ` +\n \"Specify release: { chainId, contractAddress, release }\"\n );\n }\n\n return getPath<TContract>(catalog, [protocol, chainId, address]);\n };\n\n // Helper to filter deployments by chainId and extract contracts\n const filterDeploymentsAndGetItems = (\n deployments: TDeployment[],\n chainId?: number\n ): TContract[] | undefined => {\n const filtered = chainId ? deployments.filter((d) => d.chainId === chainId) : deployments;\n if (chainId && filtered.length === 0) {\n return undefined;\n }\n return filtered.flatMap(getItems);\n };\n\n return {\n /**\n * Get a single contract using the following options:\n *\n * - { chainId, contractName, release }\n * - { chainId, contractAddress, protocol }\n * - { chainId, contractAddress, release }\n * - { chainId, contractAddress, protocol, release }\n *\n * Note: If a contract address exists in multiple releases for the same protocol, you must specify the release.\n */\n get: (opts: {\n chainId: number;\n contractAddress?: string;\n contractName?: string;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract | undefined => {\n const { chainId, contractAddress, contractName, protocol, release } = opts;\n\n // Validation\n if (contractAddress && contractName) {\n throw new Error(\"Sablier SDK: Cannot specify both contractAddress and contractName\");\n }\n\n // Query by name requires release\n if (contractName) {\n if (!release) {\n throw new Error(\"Sablier SDK: contractName requires release to be specified\");\n }\n return findByName(release, chainId, contractName);\n }\n\n // Query by address\n if (!contractAddress) {\n return undefined;\n }\n\n const address = normalizeAddress(contractAddress);\n\n // Scoped to specific release\n if (release) {\n return findByAddress(release, chainId, address);\n }\n\n // Scoped to protocol - check for duplicates across releases\n if (protocol) {\n return findByAddressInProtocol(protocol, chainId, address, contractAddress);\n }\n\n // Fallback: search all protocols\n return searchCatalog(chainId, address);\n },\n\n /**\n * Get many contracts.\n * - no options ⇒ all\n * - { chainId } ⇒ all for that chain\n * - { protocol } ⇒ all for that protocol\n * - { protocol, chainId } ⇒ all for that protocol and chain\n * - { release } ⇒ all deployments of that release\n * - { release, chainId } ⇒ all for that release and chain\n */\n getAll: (opts?: {\n chainId?: number;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract[] | undefined => {\n const { protocol, chainId, release } = opts || {};\n\n if (protocol && release) {\n throw new Error(\"Sablier SDK: Cannot specify both protocol and release as query options\");\n }\n\n // by protocol\n if (protocol) {\n const releases = releasesQueries.getAll({ protocol });\n const deployments = releases.flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n }\n\n // by explicit release\n if (release) {\n return filterDeploymentsAndGetItems(release.deployments, chainId);\n }\n\n // by chain id or no filters\n const deployments = releasesQueries.getAll().flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n },\n\n /**\n * Get a contract by its alias.\n * Aliases are version-specific (e.g., LK = Lockup v2.0, LK2 = Lockup v3.0, LK3 = Lockup v4.0).\n *\n * @example\n * contractsQueries.getByAlias({ alias: \"LK2\", chainId: 1 })\n * contractsQueries.getByAlias({ alias: \"FL3\", chainId: 137, protocol: \"flow\" })\n */\n getByAlias: (opts: {\n alias: string;\n chainId: number;\n protocol?: TProtocol;\n }): TContract | undefined => {\n const { alias, chainId, protocol } = opts;\n\n if (!getAliasCatalog) {\n return undefined;\n }\n\n const aliasCatalog = getAliasCatalog();\n if (!aliasCatalog) {\n return undefined;\n }\n\n if (protocol) {\n return getPath<TContract>(aliasCatalog, [protocol, chainId, alias]);\n }\n\n // Search all protocols\n for (const p of protocols) {\n const contract = getPath<TContract>(aliasCatalog, [p, chainId, alias]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n },\n\n /**\n * Get the latest contract by name for a protocol.\n * - { chainId, contractName, protocol }\n */\n getLatestByName: (opts: {\n chainId: number;\n contractName: string;\n protocol: TProtocol;\n }): TContract | undefined => {\n const { chainId, contractName, protocol } = opts;\n const release = releasesQueries.getLatest({ protocol });\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n const items = getItems(dep);\n return items.find((c) => c.name === contractName);\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sablier.js","sourceRoot":"","sources":["../../src/sablier.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAMxF,MAAM,qBAAqB,GAAG;IAM5B,GAAG,EAAE,CAAC,IAGL,EAAsC,EAAE;QACvC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,GAA6B,EAAE;QACrC,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAM/B,GAAG,EAAE,CAAC,IAGL,EAAyC,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,GAAgC,EAAE;QACxC,OAAO,qBAAqB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;CACF,CAAC;AAEF,MAAM,GAAG,GAAG;IACV,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,qBAAqB;IAClC,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,mBAAmB;IAC3B,WAAW,EAAE,wBAAwB;IACrC,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,qBAAqB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,GAAG;IACN,GAAG;IACH,MAAM;CACP,CAAC","sourcesContent":["/**\n * @file This file exports the Sablier object, singleton that contains the queries for the\n * chains, contracts, and releases for both evm and solana compatible chains.\n *\n * @example\n * ```typescript\n * import { sablier } from \"sablier\";\n *\n * // EVM\n * let lockupContract = sablier.evm.contracts.get({\n * chainId: mainnet.id,\n * contractName: \"SablierLockup\",\n * release: releases.lockup[\"v2.0\"],\n * });\n *\n * // Can also be accessed like this:\n * lockupContract = sablier.contracts.get({\n * chainId: mainnet.id,\n * contractName: \"SablierLockup\",\n * release: releases.lockup[\"v2.0\"],\n * });\n * const { address } = lockupContract;\n * ```\n */\n\nimport { chainsQueries as evmChainsQueries } from \"./evm/chains/queries.js\";\nimport { comptrollerQueries } from \"./evm/comptroller/queries.js\";\nimport { contractsQueries as evmContractsQueries } from \"./evm/contracts/queries.js\";\nimport { releasesQueries as evmReleasesQueries } from \"./evm/releases/queries.js\";\nimport { chainsQueries as solanaChainsQueries } from \"./solana/chains/queries.js\";\nimport { programsQueries as solanaProgramsQueries } from \"./solana/programs/queries.js\";\nimport { releasesQueries as solanaReleasesQueries } from \"./solana/releases/queries.js\";\nimport type { Sablier } from \"./types.js\";\n\n/**\n * Has to be defined here to avoid circular dependencies.\n */\nconst evmDeploymentsQueries = {\n /**\n * Get many deployments.\n * - default ⇒ all across all releases\n * - release ⇒ that release's deployments\n */\n get: (opts: {\n chainId: number;\n release: Sablier.EVM.Release;\n }): Sablier.EVM.Deployment | undefined => {\n const { release, chainId } = opts || {};\n return release.deployments.find((d) => d.chainId === chainId);\n },\n getAll: (): Sablier.EVM.Deployment[] => {\n return evmReleasesQueries.getAll().flatMap((r) => r.deployments);\n },\n};\n\nconst solanaDeploymentsQueries = {\n /**\n * Get many deployments.\n * - default ⇒ all across all releases\n * - release ⇒ that release's deployments\n */\n get: (opts: {\n chainId: number;\n release: Sablier.Solana.Release;\n }): Sablier.Solana.Deployment | undefined => {\n const { release, chainId } = opts || {};\n return release.deployments.find((d) => d.chainId === chainId);\n },\n getAll: (): Sablier.Solana.Deployment[] => {\n return solanaReleasesQueries.getAll().flatMap((r) => r.deployments);\n },\n};\n\nconst evm = {\n chains: evmChainsQueries,\n comptroller: comptrollerQueries,\n contracts: evmContractsQueries,\n deployments: evmDeploymentsQueries,\n releases: evmReleasesQueries,\n};\n\nconst solana = {\n chains: solanaChainsQueries,\n deployments: solanaDeploymentsQueries,\n programs: solanaProgramsQueries,\n releases: solanaReleasesQueries,\n};\n\nexport const sablier = {\n ...evm, // re-exporting for pre-v1.7 backward compatibility\n evm,\n solana,\n};\n"]}
1
+ {"version":3,"file":"sablier.js","sourceRoot":"","sources":["../../src/sablier.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAMxF,MAAM,qBAAqB,GAAG;IAM5B,GAAG,EAAE,CAAC,IAGL,EAAsC,EAAE;QACvC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,GAA6B,EAAE;QACrC,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAM/B,GAAG,EAAE,CAAC,IAGL,EAAyC,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,GAAgC,EAAE;QACxC,OAAO,qBAAqB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;CACF,CAAC;AAEF,MAAM,GAAG,GAAG;IACV,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,qBAAqB;IAClC,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,mBAAmB;IAC3B,WAAW,EAAE,wBAAwB;IACrC,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,qBAAqB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,GAAG;IACN,GAAG;IACH,MAAM;CACP,CAAC","sourcesContent":["/**\n * @file This file exports the Sablier object, singleton that contains the queries for the\n * chains, contracts, and releases for both evm and solana compatible chains.\n *\n * @example\n * ```typescript\n * import { sablier } from \"sablier\";\n *\n * // EVM\n * const lockupRelease = sablier.evm.releases.getLatest({ protocol: \"lockup\" });\n * let lockupContract = sablier.evm.contracts.get({\n * chainId: mainnet.id,\n * contractName: \"SablierLockup\",\n * release: lockupRelease,\n * });\n *\n * // Can also be accessed like this:\n * lockupContract = sablier.contracts.get({\n * chainId: mainnet.id,\n * contractName: \"SablierLockup\",\n * release: lockupRelease,\n * });\n * const { address } = lockupContract;\n * ```\n */\n\nimport { chainsQueries as evmChainsQueries } from \"./evm/chains/queries.js\";\nimport { comptrollerQueries } from \"./evm/comptroller/queries.js\";\nimport { contractsQueries as evmContractsQueries } from \"./evm/contracts/queries.js\";\nimport { releasesQueries as evmReleasesQueries } from \"./evm/releases/queries.js\";\nimport { chainsQueries as solanaChainsQueries } from \"./solana/chains/queries.js\";\nimport { programsQueries as solanaProgramsQueries } from \"./solana/programs/queries.js\";\nimport { releasesQueries as solanaReleasesQueries } from \"./solana/releases/queries.js\";\nimport type { Sablier } from \"./types.js\";\n\n/**\n * Has to be defined here to avoid circular dependencies.\n */\nconst evmDeploymentsQueries = {\n /**\n * Get many deployments.\n * - default ⇒ all across all releases\n * - release ⇒ that release's deployments\n */\n get: (opts: {\n chainId: number;\n release: Sablier.EVM.Release;\n }): Sablier.EVM.Deployment | undefined => {\n const { release, chainId } = opts || {};\n return release.deployments.find((d) => d.chainId === chainId);\n },\n getAll: (): Sablier.EVM.Deployment[] => {\n return evmReleasesQueries.getAll().flatMap((r) => r.deployments);\n },\n};\n\nconst solanaDeploymentsQueries = {\n /**\n * Get many deployments.\n * - default ⇒ all across all releases\n * - release ⇒ that release's deployments\n */\n get: (opts: {\n chainId: number;\n release: Sablier.Solana.Release;\n }): Sablier.Solana.Deployment | undefined => {\n const { release, chainId } = opts || {};\n return release.deployments.find((d) => d.chainId === chainId);\n },\n getAll: (): Sablier.Solana.Deployment[] => {\n return solanaReleasesQueries.getAll().flatMap((r) => r.deployments);\n },\n};\n\nconst evm = {\n chains: evmChainsQueries,\n comptroller: comptrollerQueries,\n contracts: evmContractsQueries,\n deployments: evmDeploymentsQueries,\n releases: evmReleasesQueries,\n};\n\nconst solana = {\n chains: solanaChainsQueries,\n deployments: solanaDeploymentsQueries,\n programs: solanaProgramsQueries,\n releases: solanaReleasesQueries,\n};\n\nexport const sablier = {\n ...evm, // re-exporting for pre-v1.7 backward compatibility\n evm,\n solana,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { AIRDROP_EVM_INSTANT, AIRDROP_EVM_LL, AIRDROP_EVM_LL_V2, AIRDROP_EVM_LT, AIRDROP_SOLANA_INSTANT, } from "./constants.js";
1
+ import { AIRDROP_EVM_INSTANT, AIRDROP_EVM_LL, AIRDROP_EVM_LL_V2, AIRDROP_EVM_LT, AIRDROP_EVM_VCA, AIRDROP_SOLANA_INSTANT, } from "./constants.js";
2
2
  import { Shape } from "./enums.js";
3
3
  import { defineAirdropShape } from "./types.js";
4
4
  const instant = defineAirdropShape(Shape.Airdrops.Instant, {
@@ -38,6 +38,12 @@ const tranchedStepper = defineAirdropShape(Shape.Airdrops.TranchedStepper, {
38
38
  isDeprecated: false,
39
39
  name: "Tranched Stepper",
40
40
  });
41
+ const variableClaimAmount = defineAirdropShape(Shape.Airdrops.VariableClaimAmount, {
42
+ evm: AIRDROP_EVM_VCA,
43
+ hasPredictableGas: true,
44
+ isDeprecated: false,
45
+ name: "Variable Claim Amount",
46
+ });
41
47
  export const airdropShapes = {
42
48
  [Shape.Airdrops.Cliff]: cliff,
43
49
  [Shape.Airdrops.Instant]: instant,
@@ -45,5 +51,6 @@ export const airdropShapes = {
45
51
  [Shape.Airdrops.LinearUnlockCliff]: linearUnlockCliff,
46
52
  [Shape.Airdrops.LinearUnlockLinear]: linearUnlockLinear,
47
53
  [Shape.Airdrops.TranchedStepper]: tranchedStepper,
54
+ [Shape.Airdrops.VariableClaimAmount]: variableClaimAmount,
48
55
  };
49
56
  //# sourceMappingURL=airdrops.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"airdrops.js","sourceRoot":"","sources":["../../../src/shapes/airdrops.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;IACzD,GAAG,EAAE,mBAAmB;IACxB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,sBAAsB;CAC/B,CAAC,CAAC;AAMH,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;IACvD,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC;AAMH,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;IACrD,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,OAAO;CACd,CAAC,CAAC;AAMH,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE;IAC/E,GAAG,EAAE,iBAAiB;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC;AAMH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE;IAC7E,GAAG,EAAE,iBAAiB;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAMH,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE;IACzE,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK;IAC7B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO;IACjC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAC/B,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IACrD,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;IACvD,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe;CACpB,CAAC","sourcesContent":["/**\n * Airdrop shapes.\n *\n * Merkle-based token distribution with various vesting patterns.\n */\n\nimport {\n AIRDROP_EVM_INSTANT,\n AIRDROP_EVM_LL,\n AIRDROP_EVM_LL_V2,\n AIRDROP_EVM_LT,\n AIRDROP_SOLANA_INSTANT,\n} from \"./constants.js\";\nimport { Shape } from \"./enums.js\";\nimport type { AirdropShapesRecord } from \"./types.js\";\nimport { defineAirdropShape } from \"./types.js\";\n\n/**\n * Instant airdrop.\n * Tokens are claimable immediately with no vesting.\n */\nconst instant = defineAirdropShape(Shape.Airdrops.Instant, {\n evm: AIRDROP_EVM_INSTANT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Instant\",\n solana: AIRDROP_SOLANA_INSTANT,\n});\n\n/**\n * Linear airdrop.\n * Claimed tokens vest linearly from start to end.\n */\nconst linear = defineAirdropShape(Shape.Airdrops.Linear, {\n evm: AIRDROP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear\",\n});\n\n/**\n * Cliff airdrop.\n * Claimed tokens vest with a cliff period followed by linear vesting.\n */\nconst cliff = defineAirdropShape(Shape.Airdrops.Cliff, {\n evm: AIRDROP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Cliff\",\n});\n\n/**\n * Linear with initial unlock, then linear vesting.\n * A percentage is immediately available, remainder vests linearly.\n */\nconst linearUnlockLinear = defineAirdropShape(Shape.Airdrops.LinearUnlockLinear, {\n evm: AIRDROP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Linear\",\n});\n\n/**\n * Linear with initial unlock, then cliff.\n * A percentage is immediately available, remainder vests after cliff.\n */\nconst linearUnlockCliff = defineAirdropShape(Shape.Airdrops.LinearUnlockCliff, {\n evm: AIRDROP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Cliff\",\n});\n\n/**\n * Step-based airdrop via tranches.\n * Claimed tokens unlock in discrete steps.\n */\nconst tranchedStepper = defineAirdropShape(Shape.Airdrops.TranchedStepper, {\n evm: AIRDROP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Stepper\",\n});\n\n/**\n * All airdrop shapes indexed by shape ID.\n * Keys are alphabetically ordered for consistency.\n */\nexport const airdropShapes = {\n [Shape.Airdrops.Cliff]: cliff,\n [Shape.Airdrops.Instant]: instant,\n [Shape.Airdrops.Linear]: linear,\n [Shape.Airdrops.LinearUnlockCliff]: linearUnlockCliff,\n [Shape.Airdrops.LinearUnlockLinear]: linearUnlockLinear,\n [Shape.Airdrops.TranchedStepper]: tranchedStepper,\n} satisfies AirdropShapesRecord;\n"]}
1
+ {"version":3,"file":"airdrops.js","sourceRoot":"","sources":["../../../src/shapes/airdrops.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;IACzD,GAAG,EAAE,mBAAmB;IACxB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,sBAAsB;CAC/B,CAAC,CAAC;AAMH,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;IACvD,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC;AAMH,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;IACrD,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,OAAO;CACd,CAAC,CAAC;AAMH,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE;IAC/E,GAAG,EAAE,iBAAiB;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC;AAMH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE;IAC7E,GAAG,EAAE,iBAAiB;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAMH,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE;IACzE,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE;IACjF,GAAG,EAAE,eAAe;IACpB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK;IAC7B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO;IACjC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAC/B,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IACrD,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;IACvD,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe;IACjD,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB;CAC5B,CAAC","sourcesContent":["/**\n * Airdrop shapes.\n *\n * Merkle-based token distribution with various vesting patterns.\n */\n\nimport {\n AIRDROP_EVM_INSTANT,\n AIRDROP_EVM_LL,\n AIRDROP_EVM_LL_V2,\n AIRDROP_EVM_LT,\n AIRDROP_EVM_VCA,\n AIRDROP_SOLANA_INSTANT,\n} from \"./constants.js\";\nimport { Shape } from \"./enums.js\";\nimport type { AirdropShapesRecord } from \"./types.js\";\nimport { defineAirdropShape } from \"./types.js\";\n\n/**\n * Instant airdrop.\n * Tokens are claimable immediately with no vesting.\n */\nconst instant = defineAirdropShape(Shape.Airdrops.Instant, {\n evm: AIRDROP_EVM_INSTANT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Instant\",\n solana: AIRDROP_SOLANA_INSTANT,\n});\n\n/**\n * Linear airdrop.\n * Claimed tokens vest linearly from start to end.\n */\nconst linear = defineAirdropShape(Shape.Airdrops.Linear, {\n evm: AIRDROP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear\",\n});\n\n/**\n * Cliff airdrop.\n * Claimed tokens vest with a cliff period followed by linear vesting.\n */\nconst cliff = defineAirdropShape(Shape.Airdrops.Cliff, {\n evm: AIRDROP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Cliff\",\n});\n\n/**\n * Linear with initial unlock, then linear vesting.\n * A percentage is immediately available, remainder vests linearly.\n */\nconst linearUnlockLinear = defineAirdropShape(Shape.Airdrops.LinearUnlockLinear, {\n evm: AIRDROP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Linear\",\n});\n\n/**\n * Linear with initial unlock, then cliff.\n * A percentage is immediately available, remainder vests after cliff.\n */\nconst linearUnlockCliff = defineAirdropShape(Shape.Airdrops.LinearUnlockCliff, {\n evm: AIRDROP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Cliff\",\n});\n\n/**\n * Step-based airdrop via tranches.\n * Claimed tokens unlock in discrete steps.\n */\nconst tranchedStepper = defineAirdropShape(Shape.Airdrops.TranchedStepper, {\n evm: AIRDROP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Variable claim amount airdrop.\n * Each recipient can claim a different amount based on Merkle proof data.\n */\nconst variableClaimAmount = defineAirdropShape(Shape.Airdrops.VariableClaimAmount, {\n evm: AIRDROP_EVM_VCA,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Variable Claim Amount\",\n});\n\n/**\n * All airdrop shapes indexed by shape ID.\n * Keys are alphabetically ordered for consistency.\n */\nexport const airdropShapes = {\n [Shape.Airdrops.Cliff]: cliff,\n [Shape.Airdrops.Instant]: instant,\n [Shape.Airdrops.Linear]: linear,\n [Shape.Airdrops.LinearUnlockCliff]: linearUnlockCliff,\n [Shape.Airdrops.LinearUnlockLinear]: linearUnlockLinear,\n [Shape.Airdrops.TranchedStepper]: tranchedStepper,\n [Shape.Airdrops.VariableClaimAmount]: variableClaimAmount,\n} satisfies AirdropShapesRecord;\n"]}
@@ -2,6 +2,7 @@ import { Version } from "../evm/enums.js";
2
2
  const LL_METHODS = ["createWithDurationsLL", "createWithTimestampsLL"];
3
3
  const LL_V1_METHODS = ["createWithDurations", "createWithTimestamps"];
4
4
  export const LOCKUP_EVM_LL = [
5
+ { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },
5
6
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },
6
7
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },
7
8
  { contract: "SablierV2LockupLinear", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_2 },
@@ -9,6 +10,7 @@ export const LOCKUP_EVM_LL = [
9
10
  { contract: "SablierV2LockupLinear", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_0 },
10
11
  ];
11
12
  export const LOCKUP_EVM_LL_V2 = [
13
+ { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },
12
14
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },
13
15
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },
14
16
  ];
@@ -22,6 +24,7 @@ export const LOCKUP_SOLANA_LL = [
22
24
  const LD_METHODS = ["createWithDurationsLD", "createWithTimestampsLD"];
23
25
  const LD_V1_METHODS = ["createWithDurations", "createWithTimestamps"];
24
26
  export const LOCKUP_EVM_LD = [
27
+ { contract: "SablierLockup", createMethods: LD_METHODS, version: Version.Lockup.V4_0 },
25
28
  { contract: "SablierLockup", createMethods: LD_METHODS, version: Version.Lockup.V3_0 },
26
29
  { contract: "SablierLockup", createMethods: LD_METHODS, version: Version.Lockup.V2_0 },
27
30
  {
@@ -43,6 +46,7 @@ export const LOCKUP_EVM_LD = [
43
46
  const LT_METHODS = ["createWithDurationsLT", "createWithTimestampsLT"];
44
47
  const LT_V1_METHODS = ["createWithDurations", "createWithTimestamps"];
45
48
  export const LOCKUP_EVM_LT = [
49
+ { contract: "SablierLockup", createMethods: LT_METHODS, version: Version.Lockup.V4_0 },
46
50
  { contract: "SablierLockup", createMethods: LT_METHODS, version: Version.Lockup.V3_0 },
47
51
  { contract: "SablierLockup", createMethods: LT_METHODS, version: Version.Lockup.V2_0 },
48
52
  {
@@ -52,6 +56,11 @@ export const LOCKUP_EVM_LT = [
52
56
  },
53
57
  ];
54
58
  export const FLOW_EVM = [
59
+ {
60
+ contract: "SablierFlow",
61
+ createMethods: ["create", "createAndDeposit"],
62
+ version: Version.Flow.V3_0,
63
+ },
55
64
  {
56
65
  contract: "SablierFlow",
57
66
  createMethods: ["create", "createAndDeposit"],
@@ -69,6 +78,11 @@ export const FLOW_EVM = [
69
78
  },
70
79
  ];
71
80
  export const AIRDROP_EVM_INSTANT = [
81
+ {
82
+ contract: "SablierFactoryMerkleInstant",
83
+ createMethods: ["createMerkleInstant"],
84
+ version: Version.Airdrops.V3_0,
85
+ },
72
86
  {
73
87
  contract: "SablierFactoryMerkleInstant",
74
88
  createMethods: ["createMerkleInstant"],
@@ -88,6 +102,11 @@ export const AIRDROP_SOLANA_INSTANT = [
88
102
  },
89
103
  ];
90
104
  export const AIRDROP_EVM_LL = [
105
+ {
106
+ contract: "SablierFactoryMerkleLL",
107
+ createMethods: ["createMerkleLL"],
108
+ version: Version.Airdrops.V3_0,
109
+ },
91
110
  {
92
111
  contract: "SablierFactoryMerkleLL",
93
112
  createMethods: ["createMerkleLL"],
@@ -110,13 +129,35 @@ export const AIRDROP_EVM_LL = [
110
129
  },
111
130
  ];
112
131
  export const AIRDROP_EVM_LL_V2 = [
132
+ {
133
+ contract: "SablierFactoryMerkleLL",
134
+ createMethods: ["createMerkleLL"],
135
+ version: Version.Airdrops.V3_0,
136
+ },
113
137
  {
114
138
  contract: "SablierFactoryMerkleLL",
115
139
  createMethods: ["createMerkleLL"],
116
140
  version: Version.Airdrops.V2_0,
117
141
  },
118
142
  ];
143
+ export const AIRDROP_EVM_VCA = [
144
+ {
145
+ contract: "SablierFactoryMerkleVCA",
146
+ createMethods: ["createMerkleVCA"],
147
+ version: Version.Airdrops.V3_0,
148
+ },
149
+ {
150
+ contract: "SablierFactoryMerkleVCA",
151
+ createMethods: ["createMerkleVCA"],
152
+ version: Version.Airdrops.V2_0,
153
+ },
154
+ ];
119
155
  export const AIRDROP_EVM_LT = [
156
+ {
157
+ contract: "SablierFactoryMerkleLT",
158
+ createMethods: ["createMerkleLT"],
159
+ version: Version.Airdrops.V3_0,
160
+ },
120
161
  {
121
162
  contract: "SablierFactoryMerkleLT",
122
163
  createMethods: ["createMerkleLT"],
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/shapes/constants.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared EVM and Solana contract configurations for shape definitions.\n *\n * These constants eliminate code duplication across shape files by providing\n * reusable contract/method mappings organized by lockup type (LL, LD, LT).\n *\n * @remarks\n * Arrays are marked `as const` for type safety. Consumers should treat them\n * as read-only - do not mutate `shape.evm` or `createMethods` arrays.\n */\n\nimport { Version } from \"@/src/evm/enums.js\";\nimport type { ContractMethod, ProgramMethod } from \"./types.js\";\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP LINEAR (LL) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LL_METHODS = [\"createWithDurationsLL\", \"createWithTimestampsLL\"] as const;\nconst LL_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Linear contracts - full version history (v1.0 through v3.0) */\nexport const LOCKUP_EVM_LL = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_2 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_1 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Lockup Linear contracts - v2.0+ only (for shapes added in v2.0) */\nexport const LOCKUP_EVM_LL_V2 = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Solana Lockup Linear program */\nexport const LOCKUP_SOLANA_LL = [\n {\n createMethods: [\"create_with_durations_ll\", \"create_with_timestamps_ll\"],\n program: \"SablierLockupLinear\",\n version: \"v0.1\",\n },\n] as const satisfies readonly ProgramMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP DYNAMIC (LD) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LD_METHODS = [\"createWithDurationsLD\", \"createWithTimestampsLD\"] as const;\nconst LD_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Dynamic contracts - full version history (v1.0 through v3.0) */\nexport const LOCKUP_EVM_LD = [\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V2_0 },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_2,\n },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_1,\n },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP TRANCHED (LT) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LT_METHODS = [\"createWithDurationsLT\", \"createWithTimestampsLT\"] as const;\nconst LT_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Tranched contracts - v1.2+ only (LT introduced in v1.2) */\nexport const LOCKUP_EVM_LT = [\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V2_0 },\n {\n contract: \"SablierV2LockupTranched\",\n createMethods: LT_V1_METHODS,\n version: Version.Lockup.V1_2,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* FLOW CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\n/** Flow contracts - v1.0 through v2.0 */\nexport const FLOW_EVM = [\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V2_0,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V1_1,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V1_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* AIRDROP CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\n/** Airdrop Instant factory contracts - v1.3+ */\nexport const AIRDROP_EVM_INSTANT = [\n {\n contract: \"SablierFactoryMerkleInstant\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V1_3,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Solana Airdrop Instant program */\nexport const AIRDROP_SOLANA_INSTANT = [\n {\n createMethods: [\"create_campaign\"],\n program: \"SablierMerkleInstant\",\n version: \"v0.1\",\n },\n] as const satisfies readonly ProgramMethod[];\n\n/** Airdrop Linear (LL) factory contracts - full history */\nexport const AIRDROP_EVM_LL = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V1_3,\n },\n {\n contract: \"SablierV2MerkleLockupFactory\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V1_2,\n },\n {\n contract: \"SablierV2MerkleStreamerFactory\",\n createMethods: [\"createMerkleStreamerLL\"],\n version: Version.Airdrops.V1_1,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrop Linear (LL) factory contracts - v2.0+ only */\nexport const AIRDROP_EVM_LL_V2 = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V2_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrop Tranched (LT) factory contracts - v1.2+ */\nexport const AIRDROP_EVM_LT = [\n {\n contract: \"SablierFactoryMerkleLT\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V1_3,\n },\n {\n contract: \"SablierV2MerkleLockupFactory\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V1_2,\n },\n] as const satisfies readonly ContractMethod[];\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/shapes/constants.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared EVM and Solana contract configurations for shape definitions.\n *\n * These constants eliminate code duplication across shape files by providing\n * reusable contract/method mappings organized by lockup type (LL, LD, LT).\n *\n * @remarks\n * Arrays are marked `as const` for type safety. Consumers should treat them\n * as read-only - do not mutate `shape.evm` or `createMethods` arrays.\n */\n\nimport { Version } from \"@/src/evm/enums.js\";\nimport type { ContractMethod, ProgramMethod } from \"./types.js\";\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP LINEAR (LL) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LL_METHODS = [\"createWithDurationsLL\", \"createWithTimestampsLL\"] as const;\nconst LL_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Linear contracts - full version history */\nexport const LOCKUP_EVM_LL = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_2 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_1 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Lockup Linear contracts - v2.0+ only */\nexport const LOCKUP_EVM_LL_V2 = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Solana Lockup Linear program */\nexport const LOCKUP_SOLANA_LL = [\n {\n createMethods: [\"create_with_durations_ll\", \"create_with_timestamps_ll\"],\n program: \"SablierLockupLinear\",\n version: \"v0.1\",\n },\n] as const satisfies readonly ProgramMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP DYNAMIC (LD) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LD_METHODS = [\"createWithDurationsLD\", \"createWithTimestampsLD\"] as const;\nconst LD_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Dynamic contracts - full version history */\nexport const LOCKUP_EVM_LD = [\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V2_0 },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_2,\n },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_1,\n },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP TRANCHED (LT) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LT_METHODS = [\"createWithDurationsLT\", \"createWithTimestampsLT\"] as const;\nconst LT_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Tranched contracts - v1.2+ only (LT introduced in v1.2) */\nexport const LOCKUP_EVM_LT = [\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V2_0 },\n {\n contract: \"SablierV2LockupTranched\",\n createMethods: LT_V1_METHODS,\n version: Version.Lockup.V1_2,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* FLOW CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\n/** Flow contracts - v1.0 through v3.0 */\nexport const FLOW_EVM = [\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V3_0,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V2_0,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V1_1,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V1_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* AIRDROP CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\n/** Airdrop Instant factory contracts - v1.3+ */\nexport const AIRDROP_EVM_INSTANT = [\n {\n contract: \"SablierFactoryMerkleInstant\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleInstant\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V1_3,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Solana Airdrop Instant program */\nexport const AIRDROP_SOLANA_INSTANT = [\n {\n createMethods: [\"create_campaign\"],\n program: \"SablierMerkleInstant\",\n version: \"v0.1\",\n },\n] as const satisfies readonly ProgramMethod[];\n\n/** Airdrop Linear (LL) factory contracts - full history */\nexport const AIRDROP_EVM_LL = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V1_3,\n },\n {\n contract: \"SablierV2MerkleLockupFactory\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V1_2,\n },\n {\n contract: \"SablierV2MerkleStreamerFactory\",\n createMethods: [\"createMerkleStreamerLL\"],\n version: Version.Airdrops.V1_1,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrop Linear (LL) factory contracts - v2.0+ only */\nexport const AIRDROP_EVM_LL_V2 = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V2_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrop VCA factory contracts - v2.0+ */\nexport const AIRDROP_EVM_VCA = [\n {\n contract: \"SablierFactoryMerkleVCA\",\n createMethods: [\"createMerkleVCA\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleVCA\",\n createMethods: [\"createMerkleVCA\"],\n version: Version.Airdrops.V2_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrop Tranched (LT) factory contracts - v1.2+ */\nexport const AIRDROP_EVM_LT = [\n {\n contract: \"SablierFactoryMerkleLT\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleLT\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V1_3,\n },\n {\n contract: \"SablierV2MerkleLockupFactory\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V1_2,\n },\n] as const satisfies readonly ContractMethod[];\n"]}
@@ -32,6 +32,7 @@ export var Shape;
32
32
  Airdrops["LinearUnlockLinear"] = "linearUnlockLinear";
33
33
  Airdrops["LinearUnlockCliff"] = "linearUnlockCliff";
34
34
  Airdrops["TranchedStepper"] = "tranchedStepper";
35
+ Airdrops["VariableClaimAmount"] = "variableClaimAmount";
35
36
  })(Airdrops = Shape.Airdrops || (Shape.Airdrops = {}));
36
37
  })(Shape || (Shape = {}));
37
38
  //# sourceMappingURL=enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/shapes/enums.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,KAAK,CAiCrB;AAjCD,WAAiB,KAAK;IACpB,IAAY,MAkBX;IAlBD,WAAY,MAAM;QAChB,2BAAiB,CAAA;QACjB,yBAAe,CAAA;QACf,6DAAmD,CAAA;QACnD,mDAAyC,CAAA;QACzC,uDAA6C,CAAA;QAC7C,6CAAmC,CAAA;QACnC,6CAAmC,CAAA;QACnC,+CAAqC,CAAA;QACrC,mDAAyC,CAAA;QACzC,iDAAuC,CAAA;QACvC,2CAAiC,CAAA;QACjC,6CAAmC,CAAA;QACnC,2CAAiC,CAAA;QACjC,2CAAiC,CAAA;QACjC,mDAAyC,CAAA;QACzC,qDAA2C,CAAA;QAC3C,qDAA2C,CAAA;IAC7C,CAAC,EAlBW,MAAM,GAAN,YAAM,KAAN,YAAM,QAkBjB;IAED,IAAY,IAEX;IAFD,WAAY,IAAI;QACd,qBAAa,CAAA;IACf,CAAC,EAFW,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAEf;IAED,IAAY,QAOX;IAPD,WAAY,QAAQ;QAClB,+BAAmB,CAAA;QACnB,6BAAiB,CAAA;QACjB,2BAAe,CAAA;QACf,qDAAyC,CAAA;QACzC,mDAAuC,CAAA;QACvC,+CAAmC,CAAA;IACrC,CAAC,EAPW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAOnB;AACH,CAAC,EAjCgB,KAAK,KAAL,KAAK,QAiCrB","sourcesContent":["export namespace Shape {\n export enum Lockup {\n Linear = \"linear\",\n Cliff = \"cliff\",\n DynamicCliffExponential = \"dynamicCliffExponential\",\n DynamicExponential = \"dynamicExponential\",\n TranchedBackweighted = \"tranchedBackweighted\",\n TranchedStepper = \"tranchedStepper\",\n TranchedMonthly = \"tranchedMonthly\",\n TranchedTimelock = \"tranchedTimelock\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n LinearTimelock = \"linearTimelock\",\n DynamicTimelock = \"dynamicTimelock\",\n DynamicMonthly = \"dynamicMonthly\",\n DynamicStepper = \"dynamicStepper\",\n DynamicUnlockCliff = \"dynamicUnlockCliff\",\n DynamicUnlockLinear = \"dynamicUnlockLinear\",\n DynamicDoubleUnlock = \"dynamicDoubleUnlock\",\n }\n\n export enum Flow {\n Flow = \"flow\",\n }\n\n export enum Airdrops {\n Instant = \"instant\",\n Linear = \"linear\",\n Cliff = \"cliff\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n TranchedStepper = \"tranchedStepper\",\n }\n}\n"]}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/shapes/enums.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,KAAK,CAkCrB;AAlCD,WAAiB,KAAK;IACpB,IAAY,MAkBX;IAlBD,WAAY,MAAM;QAChB,2BAAiB,CAAA;QACjB,yBAAe,CAAA;QACf,6DAAmD,CAAA;QACnD,mDAAyC,CAAA;QACzC,uDAA6C,CAAA;QAC7C,6CAAmC,CAAA;QACnC,6CAAmC,CAAA;QACnC,+CAAqC,CAAA;QACrC,mDAAyC,CAAA;QACzC,iDAAuC,CAAA;QACvC,2CAAiC,CAAA;QACjC,6CAAmC,CAAA;QACnC,2CAAiC,CAAA;QACjC,2CAAiC,CAAA;QACjC,mDAAyC,CAAA;QACzC,qDAA2C,CAAA;QAC3C,qDAA2C,CAAA;IAC7C,CAAC,EAlBW,MAAM,GAAN,YAAM,KAAN,YAAM,QAkBjB;IAED,IAAY,IAEX;IAFD,WAAY,IAAI;QACd,qBAAa,CAAA;IACf,CAAC,EAFW,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAEf;IAED,IAAY,QAQX;IARD,WAAY,QAAQ;QAClB,+BAAmB,CAAA;QACnB,6BAAiB,CAAA;QACjB,2BAAe,CAAA;QACf,qDAAyC,CAAA;QACzC,mDAAuC,CAAA;QACvC,+CAAmC,CAAA;QACnC,uDAA2C,CAAA;IAC7C,CAAC,EARW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAQnB;AACH,CAAC,EAlCgB,KAAK,KAAL,KAAK,QAkCrB","sourcesContent":["export namespace Shape {\n export enum Lockup {\n Linear = \"linear\",\n Cliff = \"cliff\",\n DynamicCliffExponential = \"dynamicCliffExponential\",\n DynamicExponential = \"dynamicExponential\",\n TranchedBackweighted = \"tranchedBackweighted\",\n TranchedStepper = \"tranchedStepper\",\n TranchedMonthly = \"tranchedMonthly\",\n TranchedTimelock = \"tranchedTimelock\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n LinearTimelock = \"linearTimelock\",\n DynamicTimelock = \"dynamicTimelock\",\n DynamicMonthly = \"dynamicMonthly\",\n DynamicStepper = \"dynamicStepper\",\n DynamicUnlockCliff = \"dynamicUnlockCliff\",\n DynamicUnlockLinear = \"dynamicUnlockLinear\",\n DynamicDoubleUnlock = \"dynamicDoubleUnlock\",\n }\n\n export enum Flow {\n Flow = \"flow\",\n }\n\n export enum Airdrops {\n Instant = \"instant\",\n Linear = \"linear\",\n Cliff = \"cliff\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n TranchedStepper = \"tranchedStepper\",\n VariableClaimAmount = \"variableClaimAmount\",\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Chain as ViemChain } from \"viem\";\n\n/**\n * @see https://github.com/wevm/viem/discussions/3678\n */\ntype ChainBlockExplorer = {\n name: string;\n url: string;\n apiUrl?: string | undefined;\n};\n\n/**\n * Repository metadata for Sablier protocol contracts.\n */\nexport type Repository = {\n commit: string;\n url: `https://github.com/sablier-labs/${string}`;\n};\n\n/**\n * Map of contract names to their aliases.\n * Used in the Sablier Interface and indexers.\n */\nexport type AliasMap = {\n [contractName: string]: string;\n};\n\nexport namespace Shared {\n /**\n * Common properties shared by EVM and Solana chains.\n * This type represents the minimal interface required for chain queries and operations.\n */\n export type Chain = ViemChain & {\n blockExplorers: {\n [key: string]: ChainBlockExplorer;\n default: ChainBlockExplorer;\n };\n /** Whether this chain is supported by the Sablier Interface at https://app.sablier.com. */\n isSupportedByUI: boolean;\n /** Whether this is a testnet network. */\n isTestnet: boolean;\n nativeCurrency: ViemChain[\"nativeCurrency\"] & {\n coinGeckoId: string;\n /** Address of the ERC-20 contract that wraps the native currency. */\n wrapperContract?: string;\n };\n rpc: {\n /** Default RPC URL. */\n defaults: string[];\n [key: string]: unknown;\n };\n /** Used in deployment files to identify the chain, e.g., arbitrum-sepolia. */\n slug: string;\n };\n\n /**\n * Generic contract mapping that supports both simple addresses and address-with-block tuples.\n * @internal\n */\n export type ContractMap<TAddress extends string> = {\n [contractName: string]: TAddress | [TAddress, number];\n };\n\n /**\n * Base manifest structure for contract names in a protocol version.\n */\n export type Manifest = {\n [contractKey: string]: string;\n };\n\n /**\n * Generic contract type shared across all platforms (EVM, Solana, etc.).\n * This provides a consistent interface for contract metadata regardless of the underlying blockchain.\n *\n * @template TAddress - The address type for the platform (e.g., `0x${string}` for EVM, `string` for Solana)\n * @template TProtocol - The protocol enum/type for the platform\n * @template TVersion - The version enum/type for the platform\n */\n export type Contract<TAddress extends string, TProtocol, TVersion> = {\n /** The address of the contract. */\n address: TAddress;\n /** Optional alias for the contract, used in the Sablier Interface and the indexers. */\n alias?: string;\n /** The block number at which the contract was deployed. */\n block?: number;\n /** The ID of the chain the contract is deployed on. */\n chainId: number;\n /** URL to the explorer page for the contract. */\n explorerURL?: string;\n /** The name of the contract. */\n name: string;\n /** The protocol the contract is part of (optional). */\n protocol: TProtocol | undefined;\n /** The release version the contract is part of (optional). */\n version: TVersion | undefined;\n };\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Chain as ViemChain } from \"viem\";\n\n/**\n * @see https://github.com/wevm/viem/discussions/3678\n */\ntype ChainBlockExplorer = {\n name: string;\n url: string;\n apiUrl?: string | undefined;\n};\n\n/**\n * Repository metadata for Sablier protocol contracts.\n */\nexport type Repository = {\n commit: string;\n url: `https://github.com/sablier-labs/${string}`;\n};\n\n/**\n * Map of contract names to their aliases.\n * Used in the Sablier Interface and indexers.\n */\nexport type AliasMap = {\n [contractName: string]: string;\n};\n\nexport namespace Shared {\n /**\n * Common properties shared by EVM and Solana chains.\n * This type represents the minimal interface required for chain queries and operations.\n */\n export type Chain = ViemChain & {\n blockExplorers: {\n [key: string]: ChainBlockExplorer;\n default: ChainBlockExplorer;\n };\n /** CoinGecko asset platform ID for token price lookups via /simple/token_price/{platform}. */\n coinGeckoPlatformId?: string;\n /** Whether this chain is supported by the Sablier Interface at https://app.sablier.com. */\n isSupportedByUI: boolean;\n /** Whether this is a testnet network. */\n isTestnet: boolean;\n nativeCurrency: ViemChain[\"nativeCurrency\"] & {\n coinGeckoId: string;\n /** Address of the ERC-20 contract that wraps the native currency. */\n wrapperContract?: string;\n };\n rpc: {\n /** Default RPC URL. */\n defaults: string[];\n [key: string]: unknown;\n };\n /** Used in deployment files to identify the chain, e.g., arbitrum-sepolia. */\n slug: string;\n };\n\n /**\n * Generic contract mapping that supports both simple addresses and address-with-block tuples.\n * @internal\n */\n export type ContractMap<TAddress extends string> = {\n [contractName: string]: TAddress | [TAddress, number];\n };\n\n /**\n * Base manifest structure for contract names in a protocol version.\n */\n export type Manifest = {\n [contractKey: string]: string;\n };\n\n /**\n * Generic contract type shared across all platforms (EVM, Solana, etc.).\n * This provides a consistent interface for contract metadata regardless of the underlying blockchain.\n *\n * @template TAddress - The address type for the platform (e.g., `0x${string}` for EVM, `string` for Solana)\n * @template TProtocol - The protocol enum/type for the platform\n * @template TVersion - The version enum/type for the platform\n */\n export type Contract<TAddress extends string, TProtocol, TVersion> = {\n /** The address of the contract. */\n address: TAddress;\n /** Optional alias for the contract, used in the Sablier Interface and the indexers. */\n alias?: string;\n /** The block number at which the contract was deployed. */\n block?: number;\n /** The ID of the chain the contract is deployed on. */\n chainId: number;\n /** URL to the explorer page for the contract. */\n explorerURL?: string;\n /** The name of the contract. */\n name: string;\n /** The protocol the contract is part of (optional). */\n protocol: TProtocol | undefined;\n /** The release version the contract is part of (optional). */\n version: TVersion | undefined;\n };\n}\n"]}
@@ -48,6 +48,7 @@ export const solanaMainnetBeta = {
48
48
  feed: "99B2bTijsU6f1GCT73HmdR7HCFFjGMBcPZY6jZ96ynrR",
49
49
  program: "HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny",
50
50
  },
51
+ coinGeckoPlatformId: "solana",
51
52
  contracts: {},
52
53
  definition: {
53
54
  chainCode: "SOL",
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../src/solana/chains/chains.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,YAAY,GAAyB;IAChD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,uCAAuC,EAAE;QACtE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,wCAAwC,EAAE;QAC9E,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mCAAmC,EAAE;KACvE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,8CAA8C;KACxD;IACD,SAAS,EAAE,EAAE;IACb,UAAU,EAAE;QACV,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,QAAQ;KAClB;IACD,EAAE,EAAE,sBAAsB;IAC1B,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE;QACd,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;KACd;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,qCAAqC,CAAC;QACjD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,0CAA0C,GAAG,EAAE;KACjE;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,qCAAqC,CAAC;SAC9C;KACF;IACD,IAAI,EAAE,eAAe;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAyB;IACrD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,wBAAwB,EAAE;QACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE;QACzD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oBAAoB,EAAE;KACxD;IACD,SAAS,EAAE;QACT,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,8CAA8C;KACxD;IACD,SAAS,EAAE,EAAE;IACb,UAAU,EAAE;QACV,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,cAAc;KACxB;IACD,EAAE,EAAE,4BAA4B;IAChC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE;QACd,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;KACd;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,sCAAsC,CAAC;QAClD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,2CAA2C,GAAG,EAAE;KAClE;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,sCAAsC,CAAC;SAC/C;KACF;IACD,IAAI,EAAE,qBAAqB;CACnB,CAAC","sourcesContent":["import type { Sablier } from \"@/src/types.js\";\n\n/**\n * Solana does not have chain IDs. These are made-up numbers so that we can use the same type for EVM and Solana chains.\n */\nexport const CHAIN_ID_SOLANA_MAINNET_BETA = 900_000_010;\nexport const CHAIN_ID_SOLANA_DEVNET = 900_000_020;\n\nexport const SOLANA_CHAIN_IDS = new Set([CHAIN_ID_SOLANA_MAINNET_BETA, CHAIN_ID_SOLANA_DEVNET]);\n\nexport const solanaDevnet: Sablier.Solana.Chain = {\n blockExplorers: {\n default: { name: \"Orb\", url: \"https://orb.helius.dev?cluster=devnet\" },\n solanaFm: { name: \"Solana FM\", url: \"https://solana.fm?cluster=devnet-alpha\" },\n solscan: { name: \"Solscan\", url: \"https://solscan.io?cluster=devnet\" },\n },\n chainlink: {\n feed: \"99B2bTijsU6f1GCT73HmdR7HCFFjGMBcPZY6jZ96ynrR\",\n program: \"HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny\",\n },\n contracts: {},\n definition: {\n chainCode: \"SOLDEV\",\n chainId: CHAIN_ID_SOLANA_DEVNET,\n cluster: \"devnet\",\n },\n id: CHAIN_ID_SOLANA_DEVNET,\n isSupportedByUI: true,\n isTestnet: true,\n name: \"Devnet\",\n nativeCurrency: {\n coinGeckoId: \"solana\",\n decimals: 9,\n name: \"Solana\",\n symbol: \"SOL\",\n },\n rpc: {\n defaults: [\"https://api.devnet-beta.solana.com/\"],\n helius: (key) => `https://devnet.helius-rpc.com/?api-key=${key}`,\n },\n rpcUrls: {\n default: {\n http: [\"https://api.devnet-beta.solana.com/\"],\n },\n },\n slug: \"solana-devnet\",\n} as const;\n\nexport const solanaMainnetBeta: Sablier.Solana.Chain = {\n blockExplorers: {\n default: { name: \"Orb\", url: \"https://orb.helius.dev\" },\n solanaFm: { name: \"Solana FM\", url: \"https://solana.fm\" },\n solscan: { name: \"Solscan\", url: \"https://solscan.io\" },\n },\n chainlink: {\n feed: \"99B2bTijsU6f1GCT73HmdR7HCFFjGMBcPZY6jZ96ynrR\",\n program: \"HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny\",\n },\n contracts: {},\n definition: {\n chainCode: \"SOL\",\n chainId: CHAIN_ID_SOLANA_MAINNET_BETA,\n cluster: \"mainnet-beta\",\n },\n id: CHAIN_ID_SOLANA_MAINNET_BETA,\n isSupportedByUI: true,\n isTestnet: false,\n name: \"Solana\",\n nativeCurrency: {\n coinGeckoId: \"solana\",\n decimals: 9,\n name: \"Solana\",\n symbol: \"SOL\",\n },\n rpc: {\n defaults: [\"https://api.mainnet-beta.solana.com/\"],\n helius: (key) => `https://mainnet.helius-rpc.com/?api-key=${key}`,\n },\n rpcUrls: {\n default: {\n http: [\"https://api.mainnet-beta.solana.com/\"],\n },\n },\n slug: \"solana-mainnet-beta\",\n} as const;\n"]}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../src/solana/chains/chains.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,YAAY,GAAyB;IAChD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,uCAAuC,EAAE;QACtE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,wCAAwC,EAAE;QAC9E,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mCAAmC,EAAE;KACvE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,8CAA8C;KACxD;IACD,SAAS,EAAE,EAAE;IACb,UAAU,EAAE;QACV,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,QAAQ;KAClB;IACD,EAAE,EAAE,sBAAsB;IAC1B,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE;QACd,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;KACd;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,qCAAqC,CAAC;QACjD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,0CAA0C,GAAG,EAAE;KACjE;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,qCAAqC,CAAC;SAC9C;KACF;IACD,IAAI,EAAE,eAAe;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAyB;IACrD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,wBAAwB,EAAE;QACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE;QACzD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oBAAoB,EAAE;KACxD;IACD,SAAS,EAAE;QACT,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,8CAA8C;KACxD;IACD,mBAAmB,EAAE,QAAQ;IAC7B,SAAS,EAAE,EAAE;IACb,UAAU,EAAE;QACV,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,cAAc;KACxB;IACD,EAAE,EAAE,4BAA4B;IAChC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE;QACd,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;KACd;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,sCAAsC,CAAC;QAClD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,2CAA2C,GAAG,EAAE;KAClE;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,sCAAsC,CAAC;SAC/C;KACF;IACD,IAAI,EAAE,qBAAqB;CACnB,CAAC","sourcesContent":["import type { Sablier } from \"@/src/types.js\";\n\n/**\n * Solana does not have chain IDs. These are made-up numbers so that we can use the same type for EVM and Solana chains.\n */\nexport const CHAIN_ID_SOLANA_MAINNET_BETA = 900_000_010;\nexport const CHAIN_ID_SOLANA_DEVNET = 900_000_020;\n\nexport const SOLANA_CHAIN_IDS = new Set([CHAIN_ID_SOLANA_MAINNET_BETA, CHAIN_ID_SOLANA_DEVNET]);\n\nexport const solanaDevnet: Sablier.Solana.Chain = {\n blockExplorers: {\n default: { name: \"Orb\", url: \"https://orb.helius.dev?cluster=devnet\" },\n solanaFm: { name: \"Solana FM\", url: \"https://solana.fm?cluster=devnet-alpha\" },\n solscan: { name: \"Solscan\", url: \"https://solscan.io?cluster=devnet\" },\n },\n chainlink: {\n feed: \"99B2bTijsU6f1GCT73HmdR7HCFFjGMBcPZY6jZ96ynrR\",\n program: \"HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny\",\n },\n contracts: {},\n definition: {\n chainCode: \"SOLDEV\",\n chainId: CHAIN_ID_SOLANA_DEVNET,\n cluster: \"devnet\",\n },\n id: CHAIN_ID_SOLANA_DEVNET,\n isSupportedByUI: true,\n isTestnet: true,\n name: \"Devnet\",\n nativeCurrency: {\n coinGeckoId: \"solana\",\n decimals: 9,\n name: \"Solana\",\n symbol: \"SOL\",\n },\n rpc: {\n defaults: [\"https://api.devnet-beta.solana.com/\"],\n helius: (key) => `https://devnet.helius-rpc.com/?api-key=${key}`,\n },\n rpcUrls: {\n default: {\n http: [\"https://api.devnet-beta.solana.com/\"],\n },\n },\n slug: \"solana-devnet\",\n} as const;\n\nexport const solanaMainnetBeta: Sablier.Solana.Chain = {\n blockExplorers: {\n default: { name: \"Orb\", url: \"https://orb.helius.dev\" },\n solanaFm: { name: \"Solana FM\", url: \"https://solana.fm\" },\n solscan: { name: \"Solscan\", url: \"https://solscan.io\" },\n },\n chainlink: {\n feed: \"99B2bTijsU6f1GCT73HmdR7HCFFjGMBcPZY6jZ96ynrR\",\n program: \"HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny\",\n },\n coinGeckoPlatformId: \"solana\",\n contracts: {},\n definition: {\n chainCode: \"SOL\",\n chainId: CHAIN_ID_SOLANA_MAINNET_BETA,\n cluster: \"mainnet-beta\",\n },\n id: CHAIN_ID_SOLANA_MAINNET_BETA,\n isSupportedByUI: true,\n isTestnet: false,\n name: \"Solana\",\n nativeCurrency: {\n coinGeckoId: \"solana\",\n decimals: 9,\n name: \"Solana\",\n symbol: \"SOL\",\n },\n rpc: {\n defaults: [\"https://api.mainnet-beta.solana.com/\"],\n helius: (key) => `https://mainnet.helius-rpc.com/?api-key=${key}`,\n },\n rpcUrls: {\n default: {\n http: [\"https://api.mainnet-beta.solana.com/\"],\n },\n },\n slug: \"solana-mainnet-beta\",\n} as const;\n"]}
@@ -3,6 +3,7 @@ import type { Sablier } from "../../types.js";
3
3
  export type ChainSpec = {
4
4
  base: ViemChain;
5
5
  meta: {
6
+ coinGeckoPlatformId?: string;
6
7
  name?: string;
7
8
  isZk?: boolean;
8
9
  ui?: "SUPPORTED" | "NOT_SUPPORTED";
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/evm/chains/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QAEJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,EAAE;QAEd,WAAW,EAAE,MAAM,CAAC;QAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAChC,CAAC;AA0FF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC7D,OAAO,CAAC,KACP,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAIrC,CAAC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/evm/chains/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QAEJ,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,EAAE;QAEd,WAAW,EAAE,MAAM,CAAC;QAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAChC,CAAC;AA2FF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC7D,OAAO,CAAC,KACP,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAIrC,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const abstract: import("../types.js").EVM.Chain, arbitrum: import("../types.js").EVM.Chain, arbitrumSepolia: import("../types.js").EVM.Chain, avalanche: import("../types.js").EVM.Chain, base: import("../types.js").EVM.Chain, baseSepolia: import("../types.js").EVM.Chain, berachain: import("../types.js").EVM.Chain, blast: import("../types.js").EVM.Chain, blastSepolia: import("../types.js").EVM.Chain, bsc: import("../types.js").EVM.Chain, coreDao: import("../types.js").EVM.Chain, form: import("../types.js").EVM.Chain, gnosis: import("../types.js").EVM.Chain, iotex: import("../types.js").EVM.Chain, lightlink: import("../types.js").EVM.Chain, linea: import("../types.js").EVM.Chain, lineaSepolia: import("../types.js").EVM.Chain, mainnet: import("../types.js").EVM.Chain, meld: import("../types.js").EVM.Chain, mode: import("../types.js").EVM.Chain, modeTestnet: import("../types.js").EVM.Chain, morph: import("../types.js").EVM.Chain, optimism: import("../types.js").EVM.Chain, optimismSepolia: import("../types.js").EVM.Chain, polygon: import("../types.js").EVM.Chain, ronin: import("../types.js").EVM.Chain, scroll: import("../types.js").EVM.Chain, sepolia: import("../types.js").EVM.Chain, sonic: import("../types.js").EVM.Chain, superseed: import("../types.js").EVM.Chain, superseedSepolia: import("../types.js").EVM.Chain, taiko: import("../types.js").EVM.Chain, unichain: import("../types.js").EVM.Chain, xdc: import("../types.js").EVM.Chain;
2
- export declare const chiliz: import("../types.js").EVM.Chain, denergy: import("../types.js").EVM.Chain, hyperevm: import("../types.js").EVM.Chain, monad: import("../types.js").EVM.Chain, sei: import("../types.js").EVM.Chain, sophon: import("../types.js").EVM.Chain, taikoHekla: import("../types.js").EVM.Chain, tangle: import("../types.js").EVM.Chain, zksync: import("../types.js").EVM.Chain, zksyncSepolia: import("../types.js").EVM.Chain;
1
+ export declare const abstract: import("../types.js").EVM.Chain, arbitrum: import("../types.js").EVM.Chain, arbitrumSepolia: import("../types.js").EVM.Chain, avalanche: import("../types.js").EVM.Chain, base: import("../types.js").EVM.Chain, baseSepolia: import("../types.js").EVM.Chain, berachain: import("../types.js").EVM.Chain, blast: import("../types.js").EVM.Chain, bsc: import("../types.js").EVM.Chain, coreDao: import("../types.js").EVM.Chain, gnosis: import("../types.js").EVM.Chain, hyperevm: import("../types.js").EVM.Chain, lightlink: import("../types.js").EVM.Chain, linea: import("../types.js").EVM.Chain, lineaSepolia: import("../types.js").EVM.Chain, mainnet: import("../types.js").EVM.Chain, mode: import("../types.js").EVM.Chain, morph: import("../types.js").EVM.Chain, optimism: import("../types.js").EVM.Chain, optimismSepolia: import("../types.js").EVM.Chain, polygon: import("../types.js").EVM.Chain, ronin: import("../types.js").EVM.Chain, scroll: import("../types.js").EVM.Chain, sepolia: import("../types.js").EVM.Chain, sonic: import("../types.js").EVM.Chain, superseed: import("../types.js").EVM.Chain, superseedSepolia: import("../types.js").EVM.Chain, taiko: import("../types.js").EVM.Chain, unichain: import("../types.js").EVM.Chain, xdc: import("../types.js").EVM.Chain;
2
+ export declare const chiliz: import("../types.js").EVM.Chain, denergy: import("../types.js").EVM.Chain, monad: import("../types.js").EVM.Chain, sei: import("../types.js").EVM.Chain, sophon: import("../types.js").EVM.Chain, tangle: import("../types.js").EVM.Chain, zksync: import("../types.js").EVM.Chain, zksyncSepolia: import("../types.js").EVM.Chain;
3
3
  //# sourceMappingURL=chains.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../src/evm/chains/chains.ts"],"names":[],"mappings":"AASA,eAAO,MACL,QAAQ,mCACR,QAAQ,mCACR,eAAe,mCACf,SAAS,mCACT,IAAI,mCACJ,WAAW,mCACX,SAAS,mCACT,KAAK,mCACL,YAAY,mCACZ,GAAG,mCACH,OAAO,mCACP,IAAI,mCACJ,MAAM,mCACN,KAAK,mCACL,SAAS,mCACT,KAAK,mCACL,YAAY,mCACZ,OAAO,mCACP,IAAI,mCACJ,IAAI,mCACJ,WAAW,mCACX,KAAK,mCACL,QAAQ,mCACR,eAAe,mCACf,OAAO,mCACP,KAAK,mCACL,MAAM,mCACN,OAAO,mCACP,KAAK,mCACL,SAAS,mCACT,gBAAgB,mCAChB,KAAK,mCACL,QAAQ,mCACR,GAAG,iCACK,CAAC;AAMX,eAAO,MACL,MAAM,mCACN,OAAO,mCACP,QAAQ,mCACR,KAAK,mCACL,GAAG,mCACH,MAAM,mCACN,UAAU,mCACV,MAAM,mCACN,MAAM,mCACN,aAAa,iCACL,CAAC"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../src/evm/chains/chains.ts"],"names":[],"mappings":"AASA,eAAO,MACL,QAAQ,mCACR,QAAQ,mCACR,eAAe,mCACf,SAAS,mCACT,IAAI,mCACJ,WAAW,mCACX,SAAS,mCACT,KAAK,mCAEL,GAAG,mCACH,OAAO,mCACP,MAAM,mCACN,QAAQ,mCACR,SAAS,mCACT,KAAK,mCACL,YAAY,mCACZ,OAAO,mCACP,IAAI,mCAEJ,KAAK,mCACL,QAAQ,mCACR,eAAe,mCACf,OAAO,mCACP,KAAK,mCACL,MAAM,mCACN,OAAO,mCACP,KAAK,mCACL,SAAS,mCACT,gBAAgB,mCAChB,KAAK,mCACL,QAAQ,mCACR,GAAG,iCACK,CAAC;AAMX,eAAO,MAAQ,MAAM,mCAAE,OAAO,mCAAE,KAAK,mCAAE,GAAG,mCAAE,MAAM,mCAAE,MAAM,mCAAE,MAAM,mCAAE,aAAa,iCAAW,CAAC"}
@@ -45,50 +45,6 @@ export declare const denergy: {
45
45
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
46
46
  verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
47
47
  };
48
- export declare const hyperevm: {
49
- blockExplorers: {
50
- readonly default: {
51
- readonly name: "Explorer";
52
- readonly url: "https://hyperevmscan.io";
53
- };
54
- };
55
- blockTime?: number | undefined | undefined;
56
- contracts: {
57
- readonly multicall3: {
58
- readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
59
- readonly blockCreated: 13051;
60
- };
61
- };
62
- ensTlds?: readonly string[] | undefined;
63
- id: 999;
64
- name: "HyperEVM";
65
- nativeCurrency: {
66
- readonly decimals: 18;
67
- readonly name: "Hyperliquid";
68
- readonly symbol: "HYPE";
69
- };
70
- experimental_preconfirmationTime?: number | undefined | undefined;
71
- rpcUrls: {
72
- readonly default: {
73
- readonly http: readonly ["https://rpc.hyperliquid.xyz/evm"];
74
- };
75
- };
76
- sourceId?: number | undefined | undefined;
77
- testnet: false;
78
- custom?: Record<string, unknown> | undefined;
79
- extendSchema?: Record<string, unknown> | undefined;
80
- fees?: import("viem").ChainFees<undefined> | undefined;
81
- formatters?: undefined;
82
- prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
83
- phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
84
- }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
85
- phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
86
- }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
87
- runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
88
- }] | undefined;
89
- serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
90
- verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
91
- };
92
48
  export declare const tangle: {
93
49
  blockExplorers: {
94
50
  readonly default: {
@@ -1 +1 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../src/evm/chains/custom.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBlB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBnB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBjB,CAAC"}
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../src/evm/chains/custom.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBlB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBjB,CAAC"}