@nadohq/client 0.33.0 → 0.35.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 (224) hide show
  1. package/README.md +8 -5
  2. package/dist/BaseRewardsAPI-DHZt4Obo.d.cts +17 -0
  3. package/dist/BaseRewardsAPI-DHZt4Obo.d.cts.map +1 -0
  4. package/dist/BaseRewardsAPI-K3MVXh2R.d.ts +17 -0
  5. package/dist/BaseRewardsAPI-K3MVXh2R.d.ts.map +1 -0
  6. package/dist/{BaseSpotAPI-DCR0Ukso.d.cts → BaseSpotAPI-CTa--WXe.d.cts} +3 -3
  7. package/dist/{BaseSpotAPI-DCR0Ukso.d.cts.map → BaseSpotAPI-CTa--WXe.d.cts.map} +1 -1
  8. package/dist/{BaseSpotAPI-Dn7FqHTu.d.ts → BaseSpotAPI-CyGq3M8G.d.ts} +3 -3
  9. package/dist/{BaseSpotAPI-Dn7FqHTu.d.ts.map → BaseSpotAPI-CyGq3M8G.d.ts.map} +1 -1
  10. package/dist/{MarketExecuteAPI-DKgGu_7b.d.ts → MarketExecuteAPI-CYN3iQp-.d.ts} +2 -2
  11. package/dist/{MarketExecuteAPI-DKgGu_7b.d.ts.map → MarketExecuteAPI-CYN3iQp-.d.ts.map} +1 -1
  12. package/dist/{MarketExecuteAPI-QPuMa3CL.d.cts → MarketExecuteAPI-qiAe3jh_.d.cts} +2 -2
  13. package/dist/{MarketExecuteAPI-QPuMa3CL.d.cts.map → MarketExecuteAPI-qiAe3jh_.d.cts.map} +1 -1
  14. package/dist/{MarketQueryAPI-DDzBbxEu.d.cts → MarketQueryAPI-BcfSSPpI.d.cts} +2 -2
  15. package/dist/{MarketQueryAPI-DDzBbxEu.d.cts.map → MarketQueryAPI-BcfSSPpI.d.cts.map} +1 -1
  16. package/dist/{MarketQueryAPI-CWfcwc-Z.d.ts → MarketQueryAPI-D4jlc7XA.d.ts} +2 -2
  17. package/dist/{MarketQueryAPI-CWfcwc-Z.d.ts.map → MarketQueryAPI-D4jlc7XA.d.ts.map} +1 -1
  18. package/dist/{PerpExecuteAPI-bgOnDMQR.d.cts → PerpExecuteAPI-X8z_Qdew.d.cts} +2 -2
  19. package/dist/PerpExecuteAPI-X8z_Qdew.d.cts.map +1 -0
  20. package/dist/{PerpExecuteAPI-DcAur1dM.d.ts → PerpExecuteAPI-mwp3kbFh.d.ts} +2 -2
  21. package/dist/PerpExecuteAPI-mwp3kbFh.d.ts.map +1 -0
  22. package/dist/{PerpQueryAPI-hGNe5bbX.d.cts → PerpQueryAPI-BEGfs6t1.d.cts} +2 -2
  23. package/dist/{PerpQueryAPI-hGNe5bbX.d.cts.map → PerpQueryAPI-BEGfs6t1.d.cts.map} +1 -1
  24. package/dist/{PerpQueryAPI-BXvHXkQA.d.ts → PerpQueryAPI-DWh31jSN.d.ts} +2 -2
  25. package/dist/{PerpQueryAPI-BXvHXkQA.d.ts.map → PerpQueryAPI-DWh31jSN.d.ts.map} +1 -1
  26. package/dist/RewardsExecuteAPI-CBRW9_5y.d.ts +25 -0
  27. package/dist/RewardsExecuteAPI-CBRW9_5y.d.ts.map +1 -0
  28. package/dist/RewardsExecuteAPI-D9_BcurO.d.cts +25 -0
  29. package/dist/RewardsExecuteAPI-D9_BcurO.d.cts.map +1 -0
  30. package/dist/RewardsQueryAPI-BFZcv2Yx.d.cts +33 -0
  31. package/dist/RewardsQueryAPI-BFZcv2Yx.d.cts.map +1 -0
  32. package/dist/RewardsQueryAPI-CsanOO14.d.ts +33 -0
  33. package/dist/RewardsQueryAPI-CsanOO14.d.ts.map +1 -0
  34. package/dist/{SpotExecuteAPI-8dJfQcjP.d.ts → SpotExecuteAPI-0owA_GY7.d.ts} +3 -3
  35. package/dist/{SpotExecuteAPI-8dJfQcjP.d.ts.map → SpotExecuteAPI-0owA_GY7.d.ts.map} +1 -1
  36. package/dist/{SpotExecuteAPI-C1E_L4Ov.d.cts → SpotExecuteAPI-Nht5qkkS.d.cts} +3 -3
  37. package/dist/{SpotExecuteAPI-C1E_L4Ov.d.cts.map → SpotExecuteAPI-Nht5qkkS.d.cts.map} +1 -1
  38. package/dist/{SpotQueryAPI-By-EKjdC.d.ts → SpotQueryAPI-BhGDIXhJ.d.ts} +3 -3
  39. package/dist/{SpotQueryAPI-By-EKjdC.d.ts.map → SpotQueryAPI-BhGDIXhJ.d.ts.map} +1 -1
  40. package/dist/{SpotQueryAPI-C-646O43.d.cts → SpotQueryAPI-C2e-37Rm.d.cts} +3 -3
  41. package/dist/{SpotQueryAPI-C-646O43.d.cts.map → SpotQueryAPI-C2e-37Rm.d.cts.map} +1 -1
  42. package/dist/{SubaccountExecuteAPI-IV4EuQiO.d.ts → SubaccountExecuteAPI-DNK46aPe.d.ts} +3 -3
  43. package/dist/{SubaccountExecuteAPI-IV4EuQiO.d.ts.map → SubaccountExecuteAPI-DNK46aPe.d.ts.map} +1 -1
  44. package/dist/{SubaccountExecuteAPI-BXUYFvqZ.d.cts → SubaccountExecuteAPI-GI1arKKC.d.cts} +3 -3
  45. package/dist/{SubaccountExecuteAPI-BXUYFvqZ.d.cts.map → SubaccountExecuteAPI-GI1arKKC.d.cts.map} +1 -1
  46. package/dist/{SubaccountQueryAPI-De_FQ-Qa.d.ts → SubaccountQueryAPI-CyWEORoJ.d.ts} +2 -2
  47. package/dist/{SubaccountQueryAPI-De_FQ-Qa.d.ts.map → SubaccountQueryAPI-CyWEORoJ.d.ts.map} +1 -1
  48. package/dist/{SubaccountQueryAPI-DuPZIksw.d.cts → SubaccountQueryAPI-DrcZ3_zN.d.cts} +2 -2
  49. package/dist/{SubaccountQueryAPI-DuPZIksw.d.cts.map → SubaccountQueryAPI-DrcZ3_zN.d.cts.map} +1 -1
  50. package/dist/{WebSocketExecuteAPI-BbCjkskC.d.ts → WebSocketExecuteAPI-CqIeMsUC.d.ts} +2 -2
  51. package/dist/{WebSocketExecuteAPI-BbCjkskC.d.ts.map → WebSocketExecuteAPI-CqIeMsUC.d.ts.map} +1 -1
  52. package/dist/{WebSocketExecuteAPI-DZ_Xauk2.d.cts → WebSocketExecuteAPI-Xna5N32F.d.cts} +2 -2
  53. package/dist/{WebSocketExecuteAPI-DZ_Xauk2.d.cts.map → WebSocketExecuteAPI-Xna5N32F.d.cts.map} +1 -1
  54. package/dist/{WebSocketQueryAPI-D1i9ToSh.d.cts → WebSocketQueryAPI-CNmb61qG.d.cts} +2 -2
  55. package/dist/{WebSocketQueryAPI-D1i9ToSh.d.cts.map → WebSocketQueryAPI-CNmb61qG.d.cts.map} +1 -1
  56. package/dist/{WebSocketQueryAPI-hOXDojO7.d.ts → WebSocketQueryAPI-DcnsC5EM.d.ts} +2 -2
  57. package/dist/{WebSocketQueryAPI-hOXDojO7.d.ts.map → WebSocketQueryAPI-DcnsC5EM.d.ts.map} +1 -1
  58. package/dist/{WebSocketSubscriptionAPI-B9YYloIc.d.ts → WebSocketSubscriptionAPI-DFYlMuBv.d.ts} +2 -2
  59. package/dist/{WebSocketSubscriptionAPI-B9YYloIc.d.ts.map → WebSocketSubscriptionAPI-DFYlMuBv.d.ts.map} +1 -1
  60. package/dist/{WebSocketSubscriptionAPI-DgIMxfz5.d.cts → WebSocketSubscriptionAPI-DS0tO4MO.d.cts} +2 -2
  61. package/dist/{WebSocketSubscriptionAPI-DgIMxfz5.d.cts.map → WebSocketSubscriptionAPI-DS0tO4MO.d.cts.map} +1 -1
  62. package/dist/apis/base.d.cts +1 -1
  63. package/dist/apis/base.d.ts +1 -1
  64. package/dist/apis/market/MarketExecuteAPI.d.cts +1 -1
  65. package/dist/apis/market/MarketExecuteAPI.d.ts +1 -1
  66. package/dist/apis/market/MarketQueryAPI.d.cts +1 -1
  67. package/dist/apis/market/MarketQueryAPI.d.ts +1 -1
  68. package/dist/apis/market/index.d.cts +1 -1
  69. package/dist/apis/market/index.d.ts +1 -1
  70. package/dist/apis/perp/PerpExecuteAPI.d.cts +1 -1
  71. package/dist/apis/perp/PerpExecuteAPI.d.ts +1 -1
  72. package/dist/apis/perp/PerpQueryAPI.d.cts +1 -1
  73. package/dist/apis/perp/PerpQueryAPI.d.ts +1 -1
  74. package/dist/apis/perp/index.d.cts +1 -1
  75. package/dist/apis/perp/index.d.ts +1 -1
  76. package/dist/apis/rewards/BaseRewardsAPI.cjs +22 -0
  77. package/dist/apis/rewards/BaseRewardsAPI.cjs.map +1 -0
  78. package/dist/apis/rewards/BaseRewardsAPI.d.cts +2 -0
  79. package/dist/apis/rewards/BaseRewardsAPI.d.ts +2 -0
  80. package/dist/apis/rewards/BaseRewardsAPI.js +21 -0
  81. package/dist/apis/rewards/BaseRewardsAPI.js.map +1 -0
  82. package/dist/apis/rewards/RewardsExecuteAPI.cjs +49 -0
  83. package/dist/apis/rewards/RewardsExecuteAPI.cjs.map +1 -0
  84. package/dist/apis/rewards/RewardsExecuteAPI.d.cts +2 -0
  85. package/dist/apis/rewards/RewardsExecuteAPI.d.ts +2 -0
  86. package/dist/apis/rewards/RewardsExecuteAPI.js +48 -0
  87. package/dist/apis/rewards/RewardsExecuteAPI.js.map +1 -0
  88. package/dist/apis/rewards/RewardsQueryAPI.cjs +33 -0
  89. package/dist/apis/rewards/RewardsQueryAPI.cjs.map +1 -0
  90. package/dist/apis/rewards/RewardsQueryAPI.d.cts +2 -0
  91. package/dist/apis/rewards/RewardsQueryAPI.d.ts +2 -0
  92. package/dist/apis/rewards/RewardsQueryAPI.js +32 -0
  93. package/dist/apis/rewards/RewardsQueryAPI.js.map +1 -0
  94. package/dist/apis/rewards/index.cjs +14 -0
  95. package/dist/apis/rewards/index.cjs.map +1 -0
  96. package/dist/apis/rewards/index.d.cts +3 -0
  97. package/dist/apis/rewards/index.d.ts +3 -0
  98. package/dist/apis/rewards/index.js +13 -0
  99. package/dist/apis/rewards/index.js.map +1 -0
  100. package/dist/apis/rewards/types.cjs +0 -0
  101. package/dist/apis/rewards/types.d.cts +2 -0
  102. package/dist/apis/rewards/types.d.ts +2 -0
  103. package/dist/apis/rewards/types.js +1 -0
  104. package/dist/apis/spot/BaseSpotAPI.d.cts +1 -1
  105. package/dist/apis/spot/BaseSpotAPI.d.ts +1 -1
  106. package/dist/apis/spot/SpotExecuteAPI.cjs +1 -0
  107. package/dist/apis/spot/SpotExecuteAPI.cjs.map +1 -1
  108. package/dist/apis/spot/SpotExecuteAPI.d.cts +1 -1
  109. package/dist/apis/spot/SpotExecuteAPI.d.ts +1 -1
  110. package/dist/apis/spot/SpotExecuteAPI.js +1 -0
  111. package/dist/apis/spot/SpotExecuteAPI.js.map +1 -1
  112. package/dist/apis/spot/SpotQueryAPI.d.cts +1 -1
  113. package/dist/apis/spot/SpotQueryAPI.d.ts +1 -1
  114. package/dist/apis/spot/index.d.cts +2 -2
  115. package/dist/apis/spot/index.d.ts +2 -2
  116. package/dist/apis/spot/types.d.cts +1 -1
  117. package/dist/apis/spot/types.d.ts +1 -1
  118. package/dist/apis/subaccount/SubaccountExecuteAPI.d.cts +1 -1
  119. package/dist/apis/subaccount/SubaccountExecuteAPI.d.ts +1 -1
  120. package/dist/apis/subaccount/SubaccountQueryAPI.d.cts +1 -1
  121. package/dist/apis/subaccount/SubaccountQueryAPI.d.ts +1 -1
  122. package/dist/apis/subaccount/index.d.cts +2 -2
  123. package/dist/apis/subaccount/index.d.ts +2 -2
  124. package/dist/apis/subaccount/types.d.cts +1 -1
  125. package/dist/apis/subaccount/types.d.ts +1 -1
  126. package/dist/apis/ws/WebSocketExecuteAPI.d.cts +1 -1
  127. package/dist/apis/ws/WebSocketExecuteAPI.d.ts +1 -1
  128. package/dist/apis/ws/WebSocketQueryAPI.d.cts +1 -1
  129. package/dist/apis/ws/WebSocketQueryAPI.d.ts +1 -1
  130. package/dist/apis/ws/WebSocketSubscriptionAPI.d.cts +1 -1
  131. package/dist/apis/ws/WebSocketSubscriptionAPI.d.ts +1 -1
  132. package/dist/apis/ws/index.d.cts +1 -1
  133. package/dist/apis/ws/index.d.ts +1 -1
  134. package/dist/{base-GN5mZk1G.d.cts → base-B5KgBVY-.d.cts} +2 -2
  135. package/dist/{base-GN5mZk1G.d.cts.map → base-B5KgBVY-.d.cts.map} +1 -1
  136. package/dist/{base-D11I3QiM.d.ts → base-CBv_F_59.d.ts} +2 -2
  137. package/dist/{base-D11I3QiM.d.ts.map → base-CBv_F_59.d.ts.map} +1 -1
  138. package/dist/client.cjs +4 -1
  139. package/dist/client.cjs.map +1 -1
  140. package/dist/client.d.cts +8 -6
  141. package/dist/client.d.cts.map +1 -1
  142. package/dist/client.d.ts +8 -6
  143. package/dist/client.d.ts.map +1 -1
  144. package/dist/client.js +4 -1
  145. package/dist/client.js.map +1 -1
  146. package/dist/{context-D1xmE2Rd.d.ts → context-CwXLME4I.d.cts} +16 -4
  147. package/dist/context-CwXLME4I.d.cts.map +1 -0
  148. package/dist/{context-CHBPiOx6.d.cts → context-Do0Aff5O.d.ts} +16 -4
  149. package/dist/context-Do0Aff5O.d.ts.map +1 -0
  150. package/dist/context.cjs +14 -8
  151. package/dist/context.cjs.map +1 -1
  152. package/dist/context.d.cts +1 -1
  153. package/dist/context.d.ts +1 -1
  154. package/dist/context.js +14 -8
  155. package/dist/context.js.map +1 -1
  156. package/dist/createNadoClient.cjs +7 -1
  157. package/dist/createNadoClient.cjs.map +1 -1
  158. package/dist/createNadoClient.d.cts +8 -2
  159. package/dist/createNadoClient.d.cts.map +1 -1
  160. package/dist/createNadoClient.d.ts +8 -2
  161. package/dist/createNadoClient.d.ts.map +1 -1
  162. package/dist/createNadoClient.js +7 -1
  163. package/dist/createNadoClient.js.map +1 -1
  164. package/dist/{index-CEwXS1Ek.d.ts → index-9zlswY-z.d.ts} +6 -6
  165. package/dist/{index-CEwXS1Ek.d.ts.map → index-9zlswY-z.d.ts.map} +1 -1
  166. package/dist/{index-DqQ5-VOh.d.cts → index-BhBnzyp5.d.cts} +3 -3
  167. package/dist/index-BhBnzyp5.d.cts.map +1 -0
  168. package/dist/{index-B1Dxe-TH.d.ts → index-BlphgBQ_.d.ts} +4 -4
  169. package/dist/{index-B1Dxe-TH.d.ts.map → index-BlphgBQ_.d.ts.map} +1 -1
  170. package/dist/{index-DPNd9PR1.d.ts → index-C0Z4SRqh.d.ts} +3 -3
  171. package/dist/index-C0Z4SRqh.d.ts.map +1 -0
  172. package/dist/index-CII3sBHl.d.ts +13 -0
  173. package/dist/index-CII3sBHl.d.ts.map +1 -0
  174. package/dist/{index-Bx-PsDsb.d.cts → index-CPbV1asH.d.cts} +3 -3
  175. package/dist/index-CPbV1asH.d.cts.map +1 -0
  176. package/dist/{index-Dj9Ub1PG.d.cts → index-CapkNob_.d.cts} +4 -4
  177. package/dist/{index-Dj9Ub1PG.d.cts.map → index-CapkNob_.d.cts.map} +1 -1
  178. package/dist/{index-B3HYm75y.d.cts → index-CgExXhBQ.d.cts} +6 -6
  179. package/dist/{index-B3HYm75y.d.cts.map → index-CgExXhBQ.d.cts.map} +1 -1
  180. package/dist/{index-D2pKqx7b.d.cts → index-CrZGbtpl.d.cts} +3 -3
  181. package/dist/index-CrZGbtpl.d.cts.map +1 -0
  182. package/dist/{index-IIzvROYs.d.ts → index-DmoR6iDR.d.ts} +3 -3
  183. package/dist/index-DmoR6iDR.d.ts.map +1 -0
  184. package/dist/index-IVpfl5AG.d.cts +13 -0
  185. package/dist/index-IVpfl5AG.d.cts.map +1 -0
  186. package/dist/{index-DIlwbefm.d.ts → index-MFkQd1G3.d.ts} +3 -3
  187. package/dist/index-MFkQd1G3.d.ts.map +1 -0
  188. package/dist/index.cjs +2 -0
  189. package/dist/index.d.cts +10 -8
  190. package/dist/index.d.ts +10 -8
  191. package/dist/index.js +2 -1
  192. package/dist/{types-B6oFoDTo.d.ts → types-BDVasYAf.d.ts} +1 -1
  193. package/dist/{types-B6oFoDTo.d.ts.map → types-BDVasYAf.d.ts.map} +1 -1
  194. package/dist/types-BFMFRstW.d.cts +18 -0
  195. package/dist/types-BFMFRstW.d.cts.map +1 -0
  196. package/dist/{types-BWRdhQd_.d.cts → types-C0Wevcia.d.cts} +1 -1
  197. package/dist/{types-BWRdhQd_.d.cts.map → types-C0Wevcia.d.cts.map} +1 -1
  198. package/dist/{types-pRheTrJ1.d.cts → types-C3rE8vyS.d.cts} +1 -1
  199. package/dist/{types-pRheTrJ1.d.cts.map → types-C3rE8vyS.d.cts.map} +1 -1
  200. package/dist/types-CFgxXCy2.d.ts +18 -0
  201. package/dist/types-CFgxXCy2.d.ts.map +1 -0
  202. package/dist/{types-DnBjJCnd.d.ts → types-OZlzeknc.d.ts} +1 -1
  203. package/dist/{types-DnBjJCnd.d.ts.map → types-OZlzeknc.d.ts.map} +1 -1
  204. package/package.json +7 -7
  205. package/src/apis/rewards/BaseRewardsAPI.ts +20 -0
  206. package/src/apis/rewards/RewardsExecuteAPI.ts +77 -0
  207. package/src/apis/rewards/RewardsQueryAPI.ts +35 -0
  208. package/src/apis/rewards/index.ts +11 -0
  209. package/src/apis/rewards/types.ts +15 -0
  210. package/src/apis/spot/SpotExecuteAPI.ts +4 -0
  211. package/src/client.ts +4 -0
  212. package/src/context.ts +28 -5
  213. package/src/createNadoClient.ts +7 -1
  214. package/src/index.ts +1 -0
  215. package/dist/PerpExecuteAPI-DcAur1dM.d.ts.map +0 -1
  216. package/dist/PerpExecuteAPI-bgOnDMQR.d.cts.map +0 -1
  217. package/dist/context-CHBPiOx6.d.cts.map +0 -1
  218. package/dist/context-D1xmE2Rd.d.ts.map +0 -1
  219. package/dist/index-Bx-PsDsb.d.cts.map +0 -1
  220. package/dist/index-D2pKqx7b.d.cts.map +0 -1
  221. package/dist/index-DIlwbefm.d.ts.map +0 -1
  222. package/dist/index-DPNd9PR1.d.ts.map +0 -1
  223. package/dist/index-DqQ5-VOh.d.cts.map +0 -1
  224. package/dist/index-IIzvROYs.d.ts.map +0 -1
@@ -0,0 +1,18 @@
1
+ import { Address } from "viem";
2
+
3
+ //#region src/apis/rewards/types.d.ts
4
+ /**
5
+ * Identifies an Airdrop contract to read from or write to. The address is returned by the indexer
6
+ * as `wallet.claim.airdropAddress` of a cash incentives event.
7
+ */
8
+ interface AirdropAddressParams {
9
+ /** Airdrop contract holding the reward. */
10
+ airdropAddress: Address;
11
+ }
12
+ interface GetClaimedAirdropAmountsParams extends AirdropAddressParams {
13
+ /** Wallet to look up the claimed amounts for. */
14
+ address: Address;
15
+ }
16
+ //#endregion
17
+ export { GetClaimedAirdropAmountsParams as n, AirdropAddressParams as t };
18
+ //# sourceMappingURL=types-CFgxXCy2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-CFgxXCy2.d.ts","names":[],"sources":["../src/apis/rewards/src/apis/rewards/types.ts"],"mappings":";;;;;AAMA;;UAAiB,oBAAA;EAEf;EAAA,cAAA,EAAgB,OAAO;AAAA;AAAA,UAGR,8BAAA,SAAuC,oBAAoB;;EAE1E,OAAA,EAAS,OAAA;AAAA"}
@@ -27,4 +27,4 @@ interface MintMockERC20Params {
27
27
  }
28
28
  //#endregion
29
29
  export { MintMockERC20Params as a, TransferQuoteParams as c, GetTokenWalletBalanceParams as i, WithdrawCollateralParams as l, BurnNlpParams as n, MintNlpParams as o, GetTokenAllowanceParams as r, ProductIdOrTokenAddress as s, ApproveAllowanceParams as t, WithdrawCollateralV2Params as u };
30
- //# sourceMappingURL=types-DnBjJCnd.d.ts.map
30
+ //# sourceMappingURL=types-OZlzeknc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-DnBjJCnd.d.ts","names":[],"sources":["../src/apis/spot/src/apis/spot/types.ts"],"mappings":";;;;;KAUY,uBAAA;EAEN,SAAA;AAAA;EAGA,YAAY;AAAA;AAAA,KAGb,gBAAA;EACH,OAAA;AAAA,IACE,uBAAuB;AAAA,KAEf,sBAAA,GAAyB,uBAAA;EACnC,MAAA,EAAQ,YAAY;AAAA;AAAA,KAGV,2BAAA,GAA8B,gBAAgB;AAAA,KAE9C,uBAAA,GAA0B,gBAAgB;AAAA,KAE1C,wBAAA,GAA2B,uBAAA,CACrC,uBAAA,CAAwB,8BAAA;AAAA,KAGd,0BAAA,GAA6B,uBAAA,CACvC,uBAAA,CAAwB,gCAAA;AAAA,KAGd,mBAAA,GAAsB,uBAAA,CAChC,uBAAA,CAAwB,yBAAA;AAAA,KAGd,aAAA,GAAgB,uBAAA,CAC1B,uBAAA,CAAwB,mBAAA;AAAA,KAGd,aAAA,GAAgB,uBAAA,CAC1B,uBAAA,CAAwB,mBAAA;AAAA,UAGT,mBAAA;EACf,SAAA;EACA,MAAA,EAAQ,YAAY;AAAA"}
1
+ {"version":3,"file":"types-OZlzeknc.d.ts","names":[],"sources":["../src/apis/spot/src/apis/spot/types.ts"],"mappings":";;;;;KAUY,uBAAA;EAEN,SAAA;AAAA;EAGA,YAAY;AAAA;AAAA,KAGb,gBAAA;EACH,OAAA;AAAA,IACE,uBAAuB;AAAA,KAEf,sBAAA,GAAyB,uBAAA;EACnC,MAAA,EAAQ,YAAY;AAAA;AAAA,KAGV,2BAAA,GAA8B,gBAAgB;AAAA,KAE9C,uBAAA,GAA0B,gBAAgB;AAAA,KAE1C,wBAAA,GAA2B,uBAAA,CACrC,uBAAA,CAAwB,8BAAA;AAAA,KAGd,0BAAA,GAA6B,uBAAA,CACvC,uBAAA,CAAwB,gCAAA;AAAA,KAGd,mBAAA,GAAsB,uBAAA,CAChC,uBAAA,CAAwB,yBAAA;AAAA,KAGd,aAAA,GAAgB,uBAAA,CAC1B,uBAAA,CAAwB,mBAAA;AAAA,KAGd,aAAA,GAAgB,uBAAA,CAC1B,uBAAA,CAAwB,mBAAA;AAAA,UAGT,mBAAA;EACf,SAAA;EACA,MAAA,EAAQ,YAAY;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadohq/client",
3
- "version": "0.33.0",
3
+ "version": "0.35.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Nado SDK client — unified API for trading, market data, and collateral management on Nado",
@@ -41,11 +41,11 @@
41
41
  "module": "./dist/index.js",
42
42
  "types": "./dist/index.d.ts",
43
43
  "dependencies": {
44
- "@nadohq/engine-client": "^0.33.0",
45
- "@nadohq/indexer-client": "^0.33.0",
46
- "@nadohq/mobile-client": "^0.33.0",
47
- "@nadohq/shared": "^0.33.0",
48
- "@nadohq/trigger-client": "^0.33.0",
44
+ "@nadohq/engine-client": "^0.35.0",
45
+ "@nadohq/indexer-client": "^0.35.0",
46
+ "@nadohq/mobile-client": "^0.35.0",
47
+ "@nadohq/shared": "^0.35.0",
48
+ "@nadohq/trigger-client": "^0.35.0",
49
49
  "ts-mixer": "6.0.4"
50
50
  },
51
51
  "peerDependencies": {
@@ -56,5 +56,5 @@
56
56
  "bignumber.js": "11.1.1",
57
57
  "viem": "2.52.0"
58
58
  },
59
- "gitHead": "7743524dd36aa73253da8c01ffba4f4085dcffcb"
59
+ "gitHead": "232349cb0f432b024dab1b1c623e8ad3b74b8f85"
60
60
  }
@@ -0,0 +1,20 @@
1
+ import { AIRDROP_ABI, ContractInstance } from '@nadohq/shared';
2
+ import { getContract } from 'viem';
3
+ import { BaseNadoAPI } from '../base';
4
+ import { AirdropAddressParams } from './types';
5
+
6
+ export class BaseRewardsAPI extends BaseNadoAPI {
7
+ /**
8
+ * Builds a contract instance for an Airdrop contract. Airdrop addresses are not part of the core
9
+ * Nado deployment; they are returned by the indexer alongside a claim proof.
10
+ */
11
+ protected getAirdropContract({
12
+ airdropAddress,
13
+ }: AirdropAddressParams): ContractInstance<typeof AIRDROP_ABI> {
14
+ return getContract({
15
+ abi: AIRDROP_ABI,
16
+ address: airdropAddress,
17
+ client: this.context.walletClient ?? this.context.publicClient,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,77 @@
1
+ import {
2
+ AirdropClaimProof,
3
+ claimAirdropRewards,
4
+ isWriteableContract,
5
+ toBigNumber,
6
+ WalletNotProvidedError,
7
+ } from '@nadohq/shared';
8
+ import { Hash } from 'viem';
9
+ import { BaseRewardsAPI } from './BaseRewardsAPI';
10
+
11
+ export class RewardsExecuteAPI extends BaseRewardsAPI {
12
+ /**
13
+ * Claims every currently claimable cash incentives reward for the connected wallet in a single
14
+ * transaction, fetching the merkle proofs from the indexer itself.
15
+ *
16
+ * The Airdrop contract verifies proofs against `msg.sender`, so this can only ever claim for the
17
+ * connected wallet. Rewards that were already settled onchain are dropped before submitting,
18
+ * since the indexer keeps reporting them as claimable, as are rewards whose week the contract
19
+ * does not know about yet.
20
+ *
21
+ * @returns Hash of the submitted claim transaction.
22
+ * @throws `WalletNotProvidedError` when no wallet client is available to sign with.
23
+ * @throws When the indexer reports nothing claimable, or when no claimable reward is ready to
24
+ * claim onchain because each has either already been claimed or is not yet registered on the
25
+ * airdrop contract.
26
+ */
27
+ async claimCashIncentives(): Promise<Hash> {
28
+ const walletAddress = this.getWalletClientAddress();
29
+ const { events } = await this.context.indexerClient.getCashIncentives({
30
+ address: walletAddress,
31
+ });
32
+
33
+ const claimableRewards = events
34
+ .map((event) => event.wallet.claim)
35
+ .filter((claim) => claim.status === 'claimable');
36
+
37
+ // Every reward currently comes from the same airdrop contract, so they claim in one transaction
38
+ const airdropAddress = claimableRewards[0]?.airdropAddress;
39
+ if (!airdropAddress) {
40
+ throw new Error(
41
+ 'No claimable cash incentives rewards found for this wallet.',
42
+ );
43
+ }
44
+
45
+ const airdropContract = this.getAirdropContract({ airdropAddress });
46
+ if (!isWriteableContract(airdropContract)) {
47
+ throw new WalletNotProvidedError();
48
+ }
49
+
50
+ // Indexed by week, 1-based, with an unused slot 0, so the last valid week is `length - 1`
51
+ const claimed = await airdropContract.read.getClaimed([walletAddress]);
52
+
53
+ const unclaimedProofs: AirdropClaimProof[] = [];
54
+ for (const { week, totalAmount, proof } of claimableRewards) {
55
+ // A reward can be published by the indexer before its merkle root is registered onchain, so
56
+ // skip those weeks rather than failing and blocking the weeks that are ready to claim
57
+ if (week < 1 || week >= claimed.length) {
58
+ continue;
59
+ }
60
+ // Claimed amounts are cumulative, so anything below the entitlement is still claimable
61
+ if (toBigNumber(claimed[week]).lt(toBigNumber(totalAmount))) {
62
+ unclaimedProofs.push({ week, totalAmount, proof });
63
+ }
64
+ }
65
+
66
+ if (unclaimedProofs.length === 0) {
67
+ throw new Error(
68
+ `No cash incentives rewards are ready to claim from the airdrop contract at ${airdropAddress}. Each claimable reward has either already been claimed onchain, or is not yet registered on the contract (it reports ${claimed.length - 1} week(s)).`,
69
+ );
70
+ }
71
+
72
+ return claimAirdropRewards({
73
+ airdropContract,
74
+ claimProofs: unclaimedProofs,
75
+ });
76
+ }
77
+ }
@@ -0,0 +1,35 @@
1
+ import { GetIndexerCashIncentivesParams } from '@nadohq/indexer-client';
2
+ import { BaseRewardsAPI } from './BaseRewardsAPI';
3
+ import { GetClaimedAirdropAmountsParams } from './types';
4
+
5
+ export class RewardsQueryAPI extends BaseRewardsAPI {
6
+ /**
7
+ * Gets cash incentives progress and claim state for a wallet. Each event's `wallet.claim` is
8
+ * tagged on `status`, and carries the merkle proof needed to claim onchain when that status is
9
+ * `claimable`.
10
+ *
11
+ * @param params
12
+ */
13
+ async getCashIncentives(params: GetIndexerCashIncentivesParams) {
14
+ return this.context.indexerClient.getCashIncentives(params);
15
+ }
16
+
17
+ /**
18
+ * Gets the cumulative amounts already claimed by a wallet from an airdrop contract, in raw token
19
+ * units, indexed directly by `week`.
20
+ *
21
+ * Weeks are 1-based, so index 0 is always zero and the array length is one greater than the
22
+ * number of reward events. A week is fully claimed when its entry equals the `totalAmount` of the
23
+ * corresponding claim proof; a smaller value means there is still an amount to claim, since
24
+ * entries are cumulative rather than per-transaction.
25
+ *
26
+ * @param params
27
+ */
28
+ async getClaimedAirdropAmounts({
29
+ address,
30
+ ...rest
31
+ }: GetClaimedAirdropAmountsParams): Promise<readonly bigint[]> {
32
+ const airdrop = this.getAirdropContract(rest);
33
+ return airdrop.read.getClaimed([address]);
34
+ }
35
+ }
@@ -0,0 +1,11 @@
1
+ import { Mixin } from 'ts-mixer';
2
+ import { RewardsExecuteAPI } from './RewardsExecuteAPI';
3
+ import { RewardsQueryAPI } from './RewardsQueryAPI';
4
+
5
+ /**
6
+ * Combined rewards API for querying cash incentives progress and claiming rewards onchain
7
+ * through the Airdrop contract.
8
+ */
9
+ export class RewardsAPI extends Mixin(RewardsExecuteAPI, RewardsQueryAPI) {}
10
+
11
+ export * from './types';
@@ -0,0 +1,15 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * Identifies an Airdrop contract to read from or write to. The address is returned by the indexer
5
+ * as `wallet.claim.airdropAddress` of a cash incentives event.
6
+ */
7
+ export interface AirdropAddressParams {
8
+ /** Airdrop contract holding the reward. */
9
+ airdropAddress: Address;
10
+ }
11
+
12
+ export interface GetClaimedAirdropAmountsParams extends AirdropAddressParams {
13
+ /** Wallet to look up the claimed amounts for. */
14
+ address: Address;
15
+ }
@@ -20,6 +20,10 @@ import {
20
20
 
21
21
  export class SpotExecuteAPI extends BaseSpotAPI {
22
22
  async deposit(params: DepositCollateralParams) {
23
+ if (!isWriteableContract(this.context.contracts.endpoint)) {
24
+ throw new WalletNotProvidedError();
25
+ }
26
+
23
27
  return depositCollateral({
24
28
  endpoint: this.context.contracts.endpoint,
25
29
  subaccountName: params.subaccountName,
package/src/client.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { WalletClientWithAccount } from '@nadohq/shared';
2
2
  import { MarketAPI } from './apis/market';
3
3
  import { PerpAPI } from './apis/perp';
4
+ import { RewardsAPI } from './apis/rewards';
4
5
  import { SpotAPI } from './apis/spot';
5
6
  import { SubaccountAPI } from './apis/subaccount';
6
7
  import { WebsocketAPI } from './apis/ws';
@@ -16,6 +17,7 @@ export class NadoClient {
16
17
  subaccount!: SubaccountAPI;
17
18
  spot!: SpotAPI;
18
19
  perp!: PerpAPI;
20
+ rewards!: RewardsAPI;
19
21
  ws!: WebsocketAPI;
20
22
 
21
23
  constructor(context: NadoClientContext) {
@@ -48,6 +50,7 @@ export class NadoClient {
48
50
  indexerEndpoint: this.context.indexerClient.opts.url,
49
51
  triggerEndpoint: this.context.triggerClient.opts.url,
50
52
  mobileEndpoint: this.context.mobileClient.opts.url,
53
+ clientType: this.context.clientType,
51
54
  },
52
55
  {
53
56
  walletClient,
@@ -65,6 +68,7 @@ export class NadoClient {
65
68
  this.subaccount = new SubaccountAPI(context);
66
69
  this.spot = new SpotAPI(context);
67
70
  this.perp = new PerpAPI(context);
71
+ this.rewards = new RewardsAPI(context);
68
72
  this.ws = new WebsocketAPI(context);
69
73
  }
70
74
  }
package/src/context.ts CHANGED
@@ -33,10 +33,12 @@ export interface NadoClientContext {
33
33
  indexerClient: IndexerClient;
34
34
  triggerClient: TriggerClient;
35
35
  mobileClient: MobileClient;
36
+ // If provided, identifies the calling client, sent as a header with every request made by the service clients above
37
+ clientType?: string;
36
38
  }
37
39
 
38
40
  /**
39
- * Args for creating a context
41
+ * Args for creating a context with custom endpoints
40
42
  */
41
43
  interface NadoClientContextOpts {
42
44
  contractAddresses: NadoDeploymentAddresses;
@@ -44,6 +46,15 @@ interface NadoClientContextOpts {
44
46
  indexerEndpoint: string;
45
47
  triggerEndpoint: string;
46
48
  mobileEndpoint: string;
49
+ clientType?: string;
50
+ }
51
+
52
+ /**
53
+ * Args for creating a context with the default endpoints of a chain env
54
+ */
55
+ interface NadoClientContextChainEnvOpts {
56
+ chainEnv: ChainEnv;
57
+ clientType?: string;
47
58
  }
48
59
 
49
60
  /**
@@ -54,7 +65,12 @@ export type CreateNadoClientContextAccountOpts = Pick<
54
65
  'walletClient' | 'linkedSignerWalletClient' | 'publicClient'
55
66
  >;
56
67
 
57
- export type CreateNadoClientContextOpts = NadoClientContextOpts | ChainEnv;
68
+ /**
69
+ * Args for creating a context, either fully custom endpoints or a chain env with default endpoints.
70
+ */
71
+ export type CreateNadoClientContextOpts =
72
+ | NadoClientContextOpts
73
+ | NadoClientContextChainEnvOpts;
58
74
 
59
75
  /**
60
76
  * Utility function to create client context from options
@@ -72,19 +88,21 @@ export function createClientContext(
72
88
  indexerEndpoint,
73
89
  triggerEndpoint,
74
90
  mobileEndpoint,
91
+ clientType,
75
92
  } = ((): NadoClientContextOpts => {
76
- // Custom options
77
- if (typeof opts === 'object') {
93
+ // Custom endpoint options
94
+ if (!('chainEnv' in opts)) {
78
95
  return opts;
79
96
  }
80
97
 
81
- const chainEnv = opts;
98
+ const { chainEnv, clientType } = opts;
82
99
  return {
83
100
  contractAddresses: NADO_DEPLOYMENTS[chainEnv],
84
101
  engineEndpoint: ENGINE_CLIENT_ENDPOINTS[chainEnv],
85
102
  indexerEndpoint: INDEXER_CLIENT_ENDPOINTS[chainEnv],
86
103
  triggerEndpoint: TRIGGER_CLIENT_ENDPOINTS[chainEnv],
87
104
  mobileEndpoint: MOBILE_CLIENT_ENDPOINTS[chainEnv],
105
+ clientType,
88
106
  };
89
107
  })();
90
108
  const { publicClient, walletClient, linkedSignerWalletClient } = accountOpts;
@@ -132,25 +150,30 @@ export function createClientContext(
132
150
  }),
133
151
  },
134
152
  contractAddresses,
153
+ clientType,
135
154
  engineClient: new EngineClient({
136
155
  url: engineEndpoint,
137
156
  walletClient,
138
157
  linkedSignerWalletClient,
158
+ clientType,
139
159
  }),
140
160
  indexerClient: new IndexerClient({
141
161
  url: indexerEndpoint,
142
162
  walletClient,
143
163
  linkedSignerWalletClient,
164
+ clientType,
144
165
  }),
145
166
  triggerClient: new TriggerClient({
146
167
  url: triggerEndpoint,
147
168
  walletClient,
148
169
  linkedSignerWalletClient,
170
+ clientType,
149
171
  }),
150
172
  mobileClient: new MobileClient({
151
173
  url: mobileEndpoint,
152
174
  walletClient,
153
175
  linkedSignerWalletClient,
176
+ clientType,
154
177
  }),
155
178
  };
156
179
  }
@@ -9,8 +9,14 @@ import {
9
9
  * Creates a Nado client from given options.
10
10
  * {@label CLIENT}
11
11
  *
12
- * @param opts
12
+ * @param opts - A chain env or custom endpoints.
13
13
  * @param accountOpts
14
+ *
15
+ * @example
16
+ * const nadoClient = createNadoClient(
17
+ * { chainEnv: 'inkMainnet' },
18
+ * { publicClient, walletClient },
19
+ * );
14
20
  */
15
21
  export function createNadoClient(
16
22
  opts: CreateNadoClientContextOpts,
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export * from './createNadoClient';
4
4
 
5
5
  export * from './apis/market';
6
6
  export * from './apis/perp';
7
+ export * from './apis/rewards';
7
8
  export * from './apis/spot';
8
9
  export * from './apis/subaccount';
9
10
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerpExecuteAPI-DcAur1dM.d.ts","names":[],"sources":["../src/apis/perp/src/apis/perp/PerpExecuteAPI.ts"],"mappings":";;;cAEa,cAAA,SAAuB,WAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerpExecuteAPI-bgOnDMQR.d.cts","names":[],"sources":["../src/apis/perp/src/apis/perp/PerpExecuteAPI.ts"],"mappings":";;;cAEa,cAAA,SAAuB,WAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-CHBPiOx6.d.cts","names":[],"sources":["../src/src/context.ts"],"mappings":";;;;;;;;;;AAwBA;UAAiB,iBAAA;EACf,YAAA,EAAc,YAAA;EACd,YAAA,GAAe,uBAAA;EAEf,wBAAA,GAA2B,uBAAA;EAC3B,SAAA,EAAW,aAAA;EACX,iBAAA,EAAmB,uBAAA;EACnB,YAAA,EAAc,YAAA;EACd,aAAA,EAAe,aAAA;EACf,aAAA,EAAe,aAAA;EACf,YAAA,EAAc,YAAA;AAAA;;;;UAMN,qBAAA;EACR,iBAAA,EAAmB,uBAAuB;EAC1C,cAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;AAAA;;;;KAMU,kCAAA,GAAqC,IAAI,CACnD,iBAAA;AAAA,KAIU,2BAAA,GAA8B,qBAAA,GAAwB,QAAQ;;;;;;;iBAQ1D,mBAAA,CACd,IAAA,EAAM,2BAAA,EACN,WAAA,EAAa,kCAAA,GACZ,iBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-D1xmE2Rd.d.ts","names":[],"sources":["../src/src/context.ts"],"mappings":";;;;;;;;;;AAwBA;UAAiB,iBAAA;EACf,YAAA,EAAc,YAAA;EACd,YAAA,GAAe,uBAAA;EAEf,wBAAA,GAA2B,uBAAA;EAC3B,SAAA,EAAW,aAAA;EACX,iBAAA,EAAmB,uBAAA;EACnB,YAAA,EAAc,YAAA;EACd,aAAA,EAAe,aAAA;EACf,aAAA,EAAe,aAAA;EACf,YAAA,EAAc,YAAA;AAAA;;;;UAMN,qBAAA;EACR,iBAAA,EAAmB,uBAAuB;EAC1C,cAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;AAAA;;;;KAMU,kCAAA,GAAqC,IAAI,CACnD,iBAAA;AAAA,KAIU,2BAAA,GAA8B,qBAAA,GAAwB,QAAQ;;;;;;;iBAQ1D,mBAAA,CACd,IAAA,EAAM,2BAAA,EACN,WAAA,EAAa,kCAAA,GACZ,iBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Bx-PsDsb.d.cts","names":[],"sources":["../src/apis/perp/src/apis/perp/index.ts"],"mappings":";;;;cAE8C,YAAA;cAEjC,OAAA,SAAgB,YAAmC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-D2pKqx7b.d.cts","names":[],"sources":["../src/apis/market/src/apis/market/index.ts"],"mappings":";;;;cAIwB,cAAA;cAEX,SAAA,SAAkB,cAAuC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DIlwbefm.d.ts","names":[],"sources":["../src/apis/perp/src/apis/perp/index.ts"],"mappings":";;;;cAE8C,YAAA;cAEjC,OAAA,SAAgB,YAAmC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DPNd9PR1.d.ts","names":[],"sources":["../src/apis/spot/src/apis/spot/index.ts"],"mappings":";;;;cAE8C,YAAA;;;AAAA;cAKjC,OAAA,SAAgB,YAAmC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DqQ5-VOh.d.cts","names":[],"sources":["../src/apis/spot/src/apis/spot/index.ts"],"mappings":";;;;cAE8C,YAAA;;;AAAA;cAKjC,OAAA,SAAgB,YAAmC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-IIzvROYs.d.ts","names":[],"sources":["../src/apis/market/src/apis/market/index.ts"],"mappings":";;;;cAIwB,cAAA;cAEX,SAAA,SAAkB,cAAuC"}