@nadohq/client 0.1.0-alpha.1

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 (184) hide show
  1. package/README.md +3 -0
  2. package/dist/apis/base.cjs +66 -0
  3. package/dist/apis/base.cjs.map +1 -0
  4. package/dist/apis/base.d.cts +23 -0
  5. package/dist/apis/base.d.ts +23 -0
  6. package/dist/apis/base.js +41 -0
  7. package/dist/apis/base.js.map +1 -0
  8. package/dist/apis/market/MarketExecuteAPI.cjs +169 -0
  9. package/dist/apis/market/MarketExecuteAPI.cjs.map +1 -0
  10. package/dist/apis/market/MarketExecuteAPI.d.cts +57 -0
  11. package/dist/apis/market/MarketExecuteAPI.d.ts +57 -0
  12. package/dist/apis/market/MarketExecuteAPI.js +144 -0
  13. package/dist/apis/market/MarketExecuteAPI.js.map +1 -0
  14. package/dist/apis/market/MarketQueryAPI.cjs +191 -0
  15. package/dist/apis/market/MarketQueryAPI.cjs.map +1 -0
  16. package/dist/apis/market/MarketQueryAPI.d.cts +127 -0
  17. package/dist/apis/market/MarketQueryAPI.d.ts +127 -0
  18. package/dist/apis/market/MarketQueryAPI.js +166 -0
  19. package/dist/apis/market/MarketQueryAPI.js.map +1 -0
  20. package/dist/apis/market/index.cjs +38 -0
  21. package/dist/apis/market/index.cjs.map +1 -0
  22. package/dist/apis/market/index.d.cts +18 -0
  23. package/dist/apis/market/index.d.ts +18 -0
  24. package/dist/apis/market/index.js +11 -0
  25. package/dist/apis/market/index.js.map +1 -0
  26. package/dist/apis/market/types.cjs +19 -0
  27. package/dist/apis/market/types.cjs.map +1 -0
  28. package/dist/apis/market/types.d.cts +26 -0
  29. package/dist/apis/market/types.d.ts +26 -0
  30. package/dist/apis/market/types.js +1 -0
  31. package/dist/apis/market/types.js.map +1 -0
  32. package/dist/apis/perp/PerpExecuteAPI.cjs +36 -0
  33. package/dist/apis/perp/PerpExecuteAPI.cjs.map +1 -0
  34. package/dist/apis/perp/PerpExecuteAPI.d.cts +13 -0
  35. package/dist/apis/perp/PerpExecuteAPI.d.ts +13 -0
  36. package/dist/apis/perp/PerpExecuteAPI.js +11 -0
  37. package/dist/apis/perp/PerpExecuteAPI.js.map +1 -0
  38. package/dist/apis/perp/PerpQueryAPI.cjs +47 -0
  39. package/dist/apis/perp/PerpQueryAPI.cjs.map +1 -0
  40. package/dist/apis/perp/PerpQueryAPI.d.cts +23 -0
  41. package/dist/apis/perp/PerpQueryAPI.d.ts +23 -0
  42. package/dist/apis/perp/PerpQueryAPI.js +22 -0
  43. package/dist/apis/perp/PerpQueryAPI.js.map +1 -0
  44. package/dist/apis/perp/index.cjs +35 -0
  45. package/dist/apis/perp/index.cjs.map +1 -0
  46. package/dist/apis/perp/index.d.cts +16 -0
  47. package/dist/apis/perp/index.d.ts +16 -0
  48. package/dist/apis/perp/index.js +10 -0
  49. package/dist/apis/perp/index.js.map +1 -0
  50. package/dist/apis/spot/BaseSpotAPI.cjs +55 -0
  51. package/dist/apis/spot/BaseSpotAPI.cjs.map +1 -0
  52. package/dist/apis/spot/BaseSpotAPI.d.cts +19 -0
  53. package/dist/apis/spot/BaseSpotAPI.d.ts +19 -0
  54. package/dist/apis/spot/BaseSpotAPI.js +30 -0
  55. package/dist/apis/spot/BaseSpotAPI.js.map +1 -0
  56. package/dist/apis/spot/SpotExecuteAPI.cjs +108 -0
  57. package/dist/apis/spot/SpotExecuteAPI.cjs.map +1 -0
  58. package/dist/apis/spot/SpotExecuteAPI.d.cts +28 -0
  59. package/dist/apis/spot/SpotExecuteAPI.d.ts +28 -0
  60. package/dist/apis/spot/SpotExecuteAPI.js +88 -0
  61. package/dist/apis/spot/SpotExecuteAPI.js.map +1 -0
  62. package/dist/apis/spot/SpotQueryAPI.cjs +74 -0
  63. package/dist/apis/spot/SpotQueryAPI.cjs.map +1 -0
  64. package/dist/apis/spot/SpotQueryAPI.d.cts +35 -0
  65. package/dist/apis/spot/SpotQueryAPI.d.ts +35 -0
  66. package/dist/apis/spot/SpotQueryAPI.js +49 -0
  67. package/dist/apis/spot/SpotQueryAPI.js.map +1 -0
  68. package/dist/apis/spot/index.cjs +38 -0
  69. package/dist/apis/spot/index.cjs.map +1 -0
  70. package/dist/apis/spot/index.d.cts +23 -0
  71. package/dist/apis/spot/index.d.ts +23 -0
  72. package/dist/apis/spot/index.js +11 -0
  73. package/dist/apis/spot/index.js.map +1 -0
  74. package/dist/apis/spot/types.cjs +19 -0
  75. package/dist/apis/spot/types.cjs.map +1 -0
  76. package/dist/apis/spot/types.d.cts +23 -0
  77. package/dist/apis/spot/types.d.ts +23 -0
  78. package/dist/apis/spot/types.js +1 -0
  79. package/dist/apis/spot/types.js.map +1 -0
  80. package/dist/apis/subaccount/SubaccountExecuteAPI.cjs +59 -0
  81. package/dist/apis/subaccount/SubaccountExecuteAPI.cjs.map +1 -0
  82. package/dist/apis/subaccount/SubaccountExecuteAPI.d.cts +26 -0
  83. package/dist/apis/subaccount/SubaccountExecuteAPI.d.ts +26 -0
  84. package/dist/apis/subaccount/SubaccountExecuteAPI.js +34 -0
  85. package/dist/apis/subaccount/SubaccountExecuteAPI.js.map +1 -0
  86. package/dist/apis/subaccount/SubaccountQueryAPI.cjs +84 -0
  87. package/dist/apis/subaccount/SubaccountQueryAPI.cjs.map +1 -0
  88. package/dist/apis/subaccount/SubaccountQueryAPI.d.cts +51 -0
  89. package/dist/apis/subaccount/SubaccountQueryAPI.d.ts +51 -0
  90. package/dist/apis/subaccount/SubaccountQueryAPI.js +61 -0
  91. package/dist/apis/subaccount/SubaccountQueryAPI.js.map +1 -0
  92. package/dist/apis/subaccount/index.cjs +68 -0
  93. package/dist/apis/subaccount/index.cjs.map +1 -0
  94. package/dist/apis/subaccount/index.d.cts +27 -0
  95. package/dist/apis/subaccount/index.d.ts +27 -0
  96. package/dist/apis/subaccount/index.js +41 -0
  97. package/dist/apis/subaccount/index.js.map +1 -0
  98. package/dist/apis/subaccount/types.cjs +19 -0
  99. package/dist/apis/subaccount/types.cjs.map +1 -0
  100. package/dist/apis/subaccount/types.d.cts +9 -0
  101. package/dist/apis/subaccount/types.d.ts +9 -0
  102. package/dist/apis/subaccount/types.js +1 -0
  103. package/dist/apis/subaccount/types.js.map +1 -0
  104. package/dist/apis/types.cjs +19 -0
  105. package/dist/apis/types.cjs.map +1 -0
  106. package/dist/apis/types.d.cts +9 -0
  107. package/dist/apis/types.d.ts +9 -0
  108. package/dist/apis/types.js +1 -0
  109. package/dist/apis/types.js.map +1 -0
  110. package/dist/apis/ws/WebSocketExecuteAPI.cjs +73 -0
  111. package/dist/apis/ws/WebSocketExecuteAPI.cjs.map +1 -0
  112. package/dist/apis/ws/WebSocketExecuteAPI.d.cts +48 -0
  113. package/dist/apis/ws/WebSocketExecuteAPI.d.ts +48 -0
  114. package/dist/apis/ws/WebSocketExecuteAPI.js +48 -0
  115. package/dist/apis/ws/WebSocketExecuteAPI.js.map +1 -0
  116. package/dist/apis/ws/WebSocketQueryAPI.cjs +42 -0
  117. package/dist/apis/ws/WebSocketQueryAPI.cjs.map +1 -0
  118. package/dist/apis/ws/WebSocketQueryAPI.d.cts +23 -0
  119. package/dist/apis/ws/WebSocketQueryAPI.d.ts +23 -0
  120. package/dist/apis/ws/WebSocketQueryAPI.js +17 -0
  121. package/dist/apis/ws/WebSocketQueryAPI.js.map +1 -0
  122. package/dist/apis/ws/WebSocketSubscriptionAPI.cjs +61 -0
  123. package/dist/apis/ws/WebSocketSubscriptionAPI.cjs.map +1 -0
  124. package/dist/apis/ws/WebSocketSubscriptionAPI.d.cts +37 -0
  125. package/dist/apis/ws/WebSocketSubscriptionAPI.d.ts +37 -0
  126. package/dist/apis/ws/WebSocketSubscriptionAPI.js +36 -0
  127. package/dist/apis/ws/WebSocketSubscriptionAPI.js.map +1 -0
  128. package/dist/apis/ws/index.cjs +42 -0
  129. package/dist/apis/ws/index.cjs.map +1 -0
  130. package/dist/apis/ws/index.d.cts +22 -0
  131. package/dist/apis/ws/index.d.ts +22 -0
  132. package/dist/apis/ws/index.js +17 -0
  133. package/dist/apis/ws/index.js.map +1 -0
  134. package/dist/client.cjs +79 -0
  135. package/dist/client.cjs.map +1 -0
  136. package/dist/client.d.cts +57 -0
  137. package/dist/client.d.ts +57 -0
  138. package/dist/client.js +54 -0
  139. package/dist/client.js.map +1 -0
  140. package/dist/context.cjs +125 -0
  141. package/dist/context.cjs.map +1 -0
  142. package/dist/context.d.cts +42 -0
  143. package/dist/context.d.ts +42 -0
  144. package/dist/context.js +109 -0
  145. package/dist/context.js.map +1 -0
  146. package/dist/createNadoClient.cjs +35 -0
  147. package/dist/createNadoClient.cjs.map +1 -0
  148. package/dist/createNadoClient.d.cts +42 -0
  149. package/dist/createNadoClient.d.ts +42 -0
  150. package/dist/createNadoClient.js +12 -0
  151. package/dist/createNadoClient.js.map +1 -0
  152. package/dist/index.cjs +47 -0
  153. package/dist/index.cjs.map +1 -0
  154. package/dist/index.d.cts +32 -0
  155. package/dist/index.d.ts +32 -0
  156. package/dist/index.js +14 -0
  157. package/dist/index.js.map +1 -0
  158. package/package.json +54 -0
  159. package/src/apis/base.ts +52 -0
  160. package/src/apis/market/MarketExecuteAPI.ts +169 -0
  161. package/src/apis/market/MarketQueryAPI.ts +214 -0
  162. package/src/apis/market/index.ts +7 -0
  163. package/src/apis/market/types.ts +58 -0
  164. package/src/apis/perp/PerpExecuteAPI.ts +8 -0
  165. package/src/apis/perp/PerpQueryAPI.ts +25 -0
  166. package/src/apis/perp/index.ts +5 -0
  167. package/src/apis/spot/BaseSpotAPI.ts +30 -0
  168. package/src/apis/spot/SpotExecuteAPI.ts +102 -0
  169. package/src/apis/spot/SpotQueryAPI.ts +53 -0
  170. package/src/apis/spot/index.ts +10 -0
  171. package/src/apis/spot/types.ts +44 -0
  172. package/src/apis/subaccount/SubaccountExecuteAPI.ts +32 -0
  173. package/src/apis/subaccount/SubaccountQueryAPI.ts +78 -0
  174. package/src/apis/subaccount/index.ts +44 -0
  175. package/src/apis/subaccount/types.ts +16 -0
  176. package/src/apis/types.ts +11 -0
  177. package/src/apis/ws/WebSocketExecuteAPI.ts +70 -0
  178. package/src/apis/ws/WebSocketQueryAPI.ts +25 -0
  179. package/src/apis/ws/WebSocketSubscriptionAPI.ts +62 -0
  180. package/src/apis/ws/index.ts +21 -0
  181. package/src/client.ts +67 -0
  182. package/src/context.ts +165 -0
  183. package/src/createNadoClient.ts +20 -0
  184. package/src/index.ts +15 -0
@@ -0,0 +1,109 @@
1
+ // src/context.ts
2
+ import {
3
+ NADO_ABIS,
4
+ NADO_DEPLOYMENTS
5
+ } from "@nadohq/contracts";
6
+ import { ENGINE_CLIENT_ENDPOINTS, EngineClient } from "@nadohq/engine-client";
7
+ import {
8
+ INDEXER_CLIENT_ENDPOINTS,
9
+ IndexerClient
10
+ } from "@nadohq/indexer-client";
11
+ import {
12
+ TRIGGER_CLIENT_ENDPOINTS,
13
+ TriggerClient
14
+ } from "@nadohq/trigger-client";
15
+ import { getContract } from "viem";
16
+ function createClientContext(opts, accountOpts) {
17
+ const {
18
+ contractAddresses,
19
+ engineEndpoint,
20
+ indexerEndpoint,
21
+ triggerEndpoint
22
+ } = (() => {
23
+ if (typeof opts === "object") {
24
+ return opts;
25
+ }
26
+ const chainEnv = opts;
27
+ return {
28
+ contractAddresses: NADO_DEPLOYMENTS[chainEnv],
29
+ engineEndpoint: ENGINE_CLIENT_ENDPOINTS[chainEnv],
30
+ indexerEndpoint: INDEXER_CLIENT_ENDPOINTS[chainEnv],
31
+ triggerEndpoint: TRIGGER_CLIENT_ENDPOINTS[chainEnv]
32
+ };
33
+ })();
34
+ const { publicClient, walletClient, linkedSignerWalletClient } = accountOpts;
35
+ return {
36
+ walletClient,
37
+ linkedSignerWalletClient,
38
+ publicClient,
39
+ contracts: {
40
+ querier: getNadoContract({
41
+ contractAddresses,
42
+ contractName: "querier",
43
+ walletClient,
44
+ publicClient
45
+ }),
46
+ clearinghouse: getNadoContract({
47
+ contractAddresses,
48
+ contractName: "clearinghouse",
49
+ walletClient,
50
+ publicClient
51
+ }),
52
+ endpoint: getNadoContract({
53
+ contractAddresses,
54
+ contractName: "endpoint",
55
+ walletClient,
56
+ publicClient
57
+ }),
58
+ spotEngine: getNadoContract({
59
+ contractAddresses,
60
+ contractName: "spotEngine",
61
+ walletClient,
62
+ publicClient
63
+ }),
64
+ perpEngine: getNadoContract({
65
+ contractAddresses,
66
+ contractName: "perpEngine",
67
+ walletClient,
68
+ publicClient
69
+ }),
70
+ withdrawPool: getNadoContract({
71
+ contractAddresses,
72
+ contractName: "withdrawPool",
73
+ walletClient,
74
+ publicClient
75
+ })
76
+ },
77
+ contractAddresses,
78
+ engineClient: new EngineClient({
79
+ url: engineEndpoint,
80
+ walletClient,
81
+ linkedSignerWalletClient
82
+ }),
83
+ indexerClient: new IndexerClient({
84
+ url: indexerEndpoint,
85
+ walletClient
86
+ }),
87
+ triggerClient: new TriggerClient({
88
+ url: triggerEndpoint,
89
+ walletClient,
90
+ linkedSignerWalletClient
91
+ })
92
+ };
93
+ }
94
+ function getNadoContract({
95
+ contractAddresses,
96
+ contractName,
97
+ walletClient,
98
+ publicClient
99
+ }) {
100
+ return getContract({
101
+ address: contractAddresses[contractName],
102
+ abi: NADO_ABIS[contractName],
103
+ client: walletClient ?? publicClient
104
+ });
105
+ }
106
+ export {
107
+ createClientContext
108
+ };
109
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/context.ts"],"sourcesContent":["import {\n ChainEnv,\n NADO_ABIS,\n NADO_DEPLOYMENTS,\n NadoContractName,\n NadoContracts,\n NadoDeploymentAddresses,\n WalletClientWithAccount,\n} from '@nadohq/contracts';\nimport { ENGINE_CLIENT_ENDPOINTS, EngineClient } from '@nadohq/engine-client';\nimport {\n INDEXER_CLIENT_ENDPOINTS,\n IndexerClient,\n} from '@nadohq/indexer-client';\nimport {\n TRIGGER_CLIENT_ENDPOINTS,\n TriggerClient,\n} from '@nadohq/trigger-client';\nimport { getContract, PublicClient } from 'viem';\n\n/**\n * Context required to use the Nado client.\n */\nexport interface NadoClientContext {\n publicClient: PublicClient;\n walletClient?: WalletClientWithAccount;\n // If provided, this is used to sign engine transactions instead of the account associated with walletClient\n linkedSignerWalletClient?: WalletClientWithAccount;\n contracts: NadoContracts;\n contractAddresses: NadoDeploymentAddresses;\n engineClient: EngineClient;\n indexerClient: IndexerClient;\n triggerClient: TriggerClient;\n}\n\n/**\n * Args for creating a context\n */\ninterface NadoClientContextOpts {\n contractAddresses: NadoDeploymentAddresses;\n engineEndpoint: string;\n indexerEndpoint: string;\n triggerEndpoint: string;\n}\n\n/**\n * Args for signing configuration for creating a context\n */\nexport type CreateNadoClientContextAccountOpts = Pick<\n NadoClientContext,\n 'walletClient' | 'linkedSignerWalletClient' | 'publicClient'\n>;\n\nexport type CreateNadoClientContextOpts = NadoClientContextOpts | ChainEnv;\n\n/**\n * Utility function to create client context from options\n *\n * @param opts\n * @param accountOpts\n */\nexport function createClientContext(\n opts: CreateNadoClientContextOpts,\n accountOpts: CreateNadoClientContextAccountOpts,\n): NadoClientContext {\n const {\n contractAddresses,\n engineEndpoint,\n indexerEndpoint,\n triggerEndpoint,\n } = ((): NadoClientContextOpts => {\n // Custom options\n if (typeof opts === 'object') {\n return opts;\n }\n\n const chainEnv = opts;\n return {\n contractAddresses: NADO_DEPLOYMENTS[chainEnv],\n engineEndpoint: ENGINE_CLIENT_ENDPOINTS[chainEnv],\n indexerEndpoint: INDEXER_CLIENT_ENDPOINTS[chainEnv],\n triggerEndpoint: TRIGGER_CLIENT_ENDPOINTS[chainEnv],\n };\n })();\n const { publicClient, walletClient, linkedSignerWalletClient } = accountOpts;\n\n return {\n walletClient,\n linkedSignerWalletClient,\n publicClient,\n contracts: {\n querier: getNadoContract({\n contractAddresses,\n contractName: 'querier',\n walletClient,\n publicClient,\n }),\n clearinghouse: getNadoContract({\n contractAddresses,\n contractName: 'clearinghouse',\n walletClient,\n publicClient,\n }),\n endpoint: getNadoContract({\n contractAddresses,\n contractName: 'endpoint',\n walletClient,\n publicClient,\n }),\n spotEngine: getNadoContract({\n contractAddresses,\n contractName: 'spotEngine',\n walletClient,\n publicClient,\n }),\n perpEngine: getNadoContract({\n contractAddresses,\n contractName: 'perpEngine',\n walletClient,\n publicClient,\n }),\n withdrawPool: getNadoContract({\n contractAddresses,\n contractName: 'withdrawPool',\n walletClient,\n publicClient,\n }),\n },\n contractAddresses,\n engineClient: new EngineClient({\n url: engineEndpoint,\n walletClient,\n linkedSignerWalletClient,\n }),\n indexerClient: new IndexerClient({\n url: indexerEndpoint,\n walletClient,\n }),\n triggerClient: new TriggerClient({\n url: triggerEndpoint,\n walletClient,\n linkedSignerWalletClient,\n }),\n };\n}\n\ninterface GetNadoContractParams<T extends NadoContractName> {\n contractAddresses: NadoDeploymentAddresses;\n contractName: T;\n walletClient?: WalletClientWithAccount;\n publicClient: PublicClient;\n}\n\nfunction getNadoContract<T extends NadoContractName>({\n contractAddresses,\n contractName,\n walletClient,\n publicClient,\n}: GetNadoContractParams<T>): NadoContracts[T] {\n return getContract({\n address: contractAddresses[contractName],\n abi: NADO_ABIS[contractName],\n client: walletClient ?? publicClient,\n }) as NadoContracts[T];\n}\n"],"mappings":";AAAA;AAAA,EAEE;AAAA,EACA;AAAA,OAKK;AACP,SAAS,yBAAyB,oBAAoB;AACtD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAiC;AA2CnC,SAAS,oBACd,MACA,aACmB;AACnB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,KAAK,MAA6B;AAEhC,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO;AAAA,IACT;AAEA,UAAM,WAAW;AACjB,WAAO;AAAA,MACL,mBAAmB,iBAAiB,QAAQ;AAAA,MAC5C,gBAAgB,wBAAwB,QAAQ;AAAA,MAChD,iBAAiB,yBAAyB,QAAQ;AAAA,MAClD,iBAAiB,yBAAyB,QAAQ;AAAA,IACpD;AAAA,EACF,GAAG;AACH,QAAM,EAAE,cAAc,cAAc,yBAAyB,IAAI;AAEjE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT,SAAS,gBAAgB;AAAA,QACvB;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD,eAAe,gBAAgB;AAAA,QAC7B;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD,UAAU,gBAAgB;AAAA,QACxB;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD,YAAY,gBAAgB;AAAA,QAC1B;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD,YAAY,gBAAgB;AAAA,QAC1B;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD,cAAc,gBAAgB;AAAA,QAC5B;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,IACA,cAAc,IAAI,aAAa;AAAA,MAC7B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,eAAe,IAAI,cAAc;AAAA,MAC/B,KAAK;AAAA,MACL;AAAA,IACF,CAAC;AAAA,IACD,eAAe,IAAI,cAAc;AAAA,MAC/B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;AASA,SAAS,gBAA4C;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA+C;AAC7C,SAAO,YAAY;AAAA,IACjB,SAAS,kBAAkB,YAAY;AAAA,IACvC,KAAK,UAAU,YAAY;AAAA,IAC3B,QAAQ,gBAAgB;AAAA,EAC1B,CAAC;AACH;","names":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/createNadoClient.ts
21
+ var createNadoClient_exports = {};
22
+ __export(createNadoClient_exports, {
23
+ createNadoClient: () => createNadoClient
24
+ });
25
+ module.exports = __toCommonJS(createNadoClient_exports);
26
+ var import_client = require("./client.cjs");
27
+ var import_context = require("./context.cjs");
28
+ function createNadoClient(opts, accountOpts) {
29
+ return new import_client.NadoClient((0, import_context.createClientContext)(opts, accountOpts));
30
+ }
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ createNadoClient
34
+ });
35
+ //# sourceMappingURL=createNadoClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/createNadoClient.ts"],"sourcesContent":["import { NadoClient } from './client';\nimport {\n createClientContext,\n CreateNadoClientContextAccountOpts,\n CreateNadoClientContextOpts,\n} from './context';\n\n/**\n * Creates a Nado client from given options.\n * {@label CLIENT}\n *\n * @param opts\n * @param accountOpts\n */\nexport function createNadoClient(\n opts: CreateNadoClientContextOpts,\n accountOpts: CreateNadoClientContextAccountOpts,\n): NadoClient {\n return new NadoClient(createClientContext(opts, accountOpts));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,qBAIO;AASA,SAAS,iBACd,MACA,aACY;AACZ,SAAO,IAAI,6BAAW,oCAAoB,MAAM,WAAW,CAAC;AAC9D;","names":[]}
@@ -0,0 +1,42 @@
1
+ import { NadoClient } from './client.cjs';
2
+ import { CreateNadoClientContextOpts, CreateNadoClientContextAccountOpts } from './context.cjs';
3
+ import './apis/market/index.cjs';
4
+ import './apis/perp/index.cjs';
5
+ import './apis/spot/index.cjs';
6
+ import './apis/subaccount/index.cjs';
7
+ import '@nadohq/utils';
8
+ import '@nadohq/contracts';
9
+ import '@nadohq/engine-client';
10
+ import '@nadohq/indexer-client';
11
+ import '@nadohq/trigger-client';
12
+ import './apis/market/types.cjs';
13
+ import './apis/spot/types.cjs';
14
+ import './apis/subaccount/types.cjs';
15
+ import './apis/ws/index.cjs';
16
+ import './apis/base.cjs';
17
+ import 'viem';
18
+ import './apis/ws/WebSocketExecuteAPI.cjs';
19
+ import './apis/ws/WebSocketQueryAPI.cjs';
20
+ import './apis/ws/WebSocketSubscriptionAPI.cjs';
21
+ import 'ts-mixer/dist/types/types';
22
+ import './apis/market/MarketExecuteAPI.cjs';
23
+ import './apis/types.cjs';
24
+ import './apis/market/MarketQueryAPI.cjs';
25
+ import './apis/perp/PerpExecuteAPI.cjs';
26
+ import './apis/perp/PerpQueryAPI.cjs';
27
+ import './apis/spot/SpotExecuteAPI.cjs';
28
+ import './apis/spot/BaseSpotAPI.cjs';
29
+ import './apis/spot/SpotQueryAPI.cjs';
30
+ import './apis/subaccount/SubaccountExecuteAPI.cjs';
31
+ import './apis/subaccount/SubaccountQueryAPI.cjs';
32
+
33
+ /**
34
+ * Creates a Nado client from given options.
35
+ * {@label CLIENT}
36
+ *
37
+ * @param opts
38
+ * @param accountOpts
39
+ */
40
+ declare function createNadoClient(opts: CreateNadoClientContextOpts, accountOpts: CreateNadoClientContextAccountOpts): NadoClient;
41
+
42
+ export { createNadoClient };
@@ -0,0 +1,42 @@
1
+ import { NadoClient } from './client.js';
2
+ import { CreateNadoClientContextOpts, CreateNadoClientContextAccountOpts } from './context.js';
3
+ import './apis/market/index.js';
4
+ import './apis/perp/index.js';
5
+ import './apis/spot/index.js';
6
+ import './apis/subaccount/index.js';
7
+ import '@nadohq/utils';
8
+ import '@nadohq/contracts';
9
+ import '@nadohq/engine-client';
10
+ import '@nadohq/indexer-client';
11
+ import '@nadohq/trigger-client';
12
+ import './apis/market/types.js';
13
+ import './apis/spot/types.js';
14
+ import './apis/subaccount/types.js';
15
+ import './apis/ws/index.js';
16
+ import './apis/base.js';
17
+ import 'viem';
18
+ import './apis/ws/WebSocketExecuteAPI.js';
19
+ import './apis/ws/WebSocketQueryAPI.js';
20
+ import './apis/ws/WebSocketSubscriptionAPI.js';
21
+ import 'ts-mixer/dist/types/types';
22
+ import './apis/market/MarketExecuteAPI.js';
23
+ import './apis/types.js';
24
+ import './apis/market/MarketQueryAPI.js';
25
+ import './apis/perp/PerpExecuteAPI.js';
26
+ import './apis/perp/PerpQueryAPI.js';
27
+ import './apis/spot/SpotExecuteAPI.js';
28
+ import './apis/spot/BaseSpotAPI.js';
29
+ import './apis/spot/SpotQueryAPI.js';
30
+ import './apis/subaccount/SubaccountExecuteAPI.js';
31
+ import './apis/subaccount/SubaccountQueryAPI.js';
32
+
33
+ /**
34
+ * Creates a Nado client from given options.
35
+ * {@label CLIENT}
36
+ *
37
+ * @param opts
38
+ * @param accountOpts
39
+ */
40
+ declare function createNadoClient(opts: CreateNadoClientContextOpts, accountOpts: CreateNadoClientContextAccountOpts): NadoClient;
41
+
42
+ export { createNadoClient };
@@ -0,0 +1,12 @@
1
+ // src/createNadoClient.ts
2
+ import { NadoClient } from "./client.js";
3
+ import {
4
+ createClientContext
5
+ } from "./context.js";
6
+ function createNadoClient(opts, accountOpts) {
7
+ return new NadoClient(createClientContext(opts, accountOpts));
8
+ }
9
+ export {
10
+ createNadoClient
11
+ };
12
+ //# sourceMappingURL=createNadoClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/createNadoClient.ts"],"sourcesContent":["import { NadoClient } from './client';\nimport {\n createClientContext,\n CreateNadoClientContextAccountOpts,\n CreateNadoClientContextOpts,\n} from './context';\n\n/**\n * Creates a Nado client from given options.\n * {@label CLIENT}\n *\n * @param opts\n * @param accountOpts\n */\nexport function createNadoClient(\n opts: CreateNadoClientContextOpts,\n accountOpts: CreateNadoClientContextAccountOpts,\n): NadoClient {\n return new NadoClient(createClientContext(opts, accountOpts));\n}\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,OAGK;AASA,SAAS,iBACd,MACA,aACY;AACZ,SAAO,IAAI,WAAW,oBAAoB,MAAM,WAAW,CAAC;AAC9D;","names":[]}
package/dist/index.cjs ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+
17
+ // src/index.ts
18
+ var index_exports = {};
19
+ module.exports = __toCommonJS(index_exports);
20
+ __reExport(index_exports, require("./createNadoClient.cjs"), module.exports);
21
+ __reExport(index_exports, require("./client.cjs"), module.exports);
22
+ __reExport(index_exports, require("./context.cjs"), module.exports);
23
+ __reExport(index_exports, require("./apis/market/index.cjs"), module.exports);
24
+ __reExport(index_exports, require("./apis/perp/index.cjs"), module.exports);
25
+ __reExport(index_exports, require("./apis/spot/index.cjs"), module.exports);
26
+ __reExport(index_exports, require("./apis/subaccount/index.cjs"), module.exports);
27
+ __reExport(index_exports, require("@nadohq/utils"), module.exports);
28
+ __reExport(index_exports, require("@nadohq/contracts"), module.exports);
29
+ __reExport(index_exports, require("@nadohq/engine-client"), module.exports);
30
+ __reExport(index_exports, require("@nadohq/indexer-client"), module.exports);
31
+ __reExport(index_exports, require("@nadohq/trigger-client"), module.exports);
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ ...require("./createNadoClient.cjs"),
35
+ ...require("./client.cjs"),
36
+ ...require("./context.cjs"),
37
+ ...require("./apis/market/index.cjs"),
38
+ ...require("./apis/perp/index.cjs"),
39
+ ...require("./apis/spot/index.cjs"),
40
+ ...require("./apis/subaccount/index.cjs"),
41
+ ...require("@nadohq/utils"),
42
+ ...require("@nadohq/contracts"),
43
+ ...require("@nadohq/engine-client"),
44
+ ...require("@nadohq/indexer-client"),
45
+ ...require("@nadohq/trigger-client")
46
+ });
47
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './createNadoClient';\nexport * from './client';\nexport * from './context';\n\nexport * from './apis/market';\nexport * from './apis/perp';\nexport * from './apis/spot';\nexport * from './apis/subaccount';\n\n// Subpackage exports\nexport * from '@nadohq/utils';\nexport * from '@nadohq/contracts';\nexport * from '@nadohq/engine-client';\nexport * from '@nadohq/indexer-client';\nexport * from '@nadohq/trigger-client';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,mCAAd;AACA,0BAAc,yBADd;AAEA,0BAAc,0BAFd;AAIA,0BAAc,oCAJd;AAKA,0BAAc,kCALd;AAMA,0BAAc,kCANd;AAOA,0BAAc,wCAPd;AAUA,0BAAc,0BAVd;AAWA,0BAAc,8BAXd;AAYA,0BAAc,kCAZd;AAaA,0BAAc,mCAbd;AAcA,0BAAc,mCAdd;","names":[]}
@@ -0,0 +1,32 @@
1
+ export { createNadoClient } from './createNadoClient.cjs';
2
+ export { NadoClient } from './client.cjs';
3
+ export { CreateNadoClientContextAccountOpts, CreateNadoClientContextOpts, NadoClientContext, createClientContext } from './context.cjs';
4
+ export { MarketAPI } from './apis/market/index.cjs';
5
+ export { PerpAPI } from './apis/perp/index.cjs';
6
+ export { SpotAPI } from './apis/spot/index.cjs';
7
+ export { SubaccountAPI } from './apis/subaccount/index.cjs';
8
+ export * from '@nadohq/utils';
9
+ export * from '@nadohq/contracts';
10
+ export * from '@nadohq/engine-client';
11
+ export * from '@nadohq/indexer-client';
12
+ export * from '@nadohq/trigger-client';
13
+ export { CancelAndPlaceOrderParams, CancelOrdersParams, CancelProductOrdersParams, CancelTriggerOrdersParams, CancelTriggerProductOrdersParams, GetTriggerOrdersParams, PlaceIsolatedOrderParams, PlaceOrderParams, PlaceTriggerOrderParams } from './apis/market/types.cjs';
14
+ export { ApproveAllowanceParams, BurnVlpParams, GetTokenAllowanceParams, GetTokenWalletBalanceParams, MintVlpParams, ProductIdOrTokenAddress, TransferQuoteParams, WithdrawCollateralParams } from './apis/spot/types.cjs';
15
+ export { CreateStandardLinkedSignerResult, LinkSignerParams, LiquidateSubaccountParams } from './apis/subaccount/types.cjs';
16
+ import './apis/ws/index.cjs';
17
+ import './apis/base.cjs';
18
+ import 'viem';
19
+ import './apis/ws/WebSocketExecuteAPI.cjs';
20
+ import './apis/ws/WebSocketQueryAPI.cjs';
21
+ import './apis/ws/WebSocketSubscriptionAPI.cjs';
22
+ import 'ts-mixer/dist/types/types';
23
+ import './apis/market/MarketExecuteAPI.cjs';
24
+ import './apis/types.cjs';
25
+ import './apis/market/MarketQueryAPI.cjs';
26
+ import './apis/perp/PerpExecuteAPI.cjs';
27
+ import './apis/perp/PerpQueryAPI.cjs';
28
+ import './apis/spot/SpotExecuteAPI.cjs';
29
+ import './apis/spot/BaseSpotAPI.cjs';
30
+ import './apis/spot/SpotQueryAPI.cjs';
31
+ import './apis/subaccount/SubaccountExecuteAPI.cjs';
32
+ import './apis/subaccount/SubaccountQueryAPI.cjs';
@@ -0,0 +1,32 @@
1
+ export { createNadoClient } from './createNadoClient.js';
2
+ export { NadoClient } from './client.js';
3
+ export { CreateNadoClientContextAccountOpts, CreateNadoClientContextOpts, NadoClientContext, createClientContext } from './context.js';
4
+ export { MarketAPI } from './apis/market/index.js';
5
+ export { PerpAPI } from './apis/perp/index.js';
6
+ export { SpotAPI } from './apis/spot/index.js';
7
+ export { SubaccountAPI } from './apis/subaccount/index.js';
8
+ export * from '@nadohq/utils';
9
+ export * from '@nadohq/contracts';
10
+ export * from '@nadohq/engine-client';
11
+ export * from '@nadohq/indexer-client';
12
+ export * from '@nadohq/trigger-client';
13
+ export { CancelAndPlaceOrderParams, CancelOrdersParams, CancelProductOrdersParams, CancelTriggerOrdersParams, CancelTriggerProductOrdersParams, GetTriggerOrdersParams, PlaceIsolatedOrderParams, PlaceOrderParams, PlaceTriggerOrderParams } from './apis/market/types.js';
14
+ export { ApproveAllowanceParams, BurnVlpParams, GetTokenAllowanceParams, GetTokenWalletBalanceParams, MintVlpParams, ProductIdOrTokenAddress, TransferQuoteParams, WithdrawCollateralParams } from './apis/spot/types.js';
15
+ export { CreateStandardLinkedSignerResult, LinkSignerParams, LiquidateSubaccountParams } from './apis/subaccount/types.js';
16
+ import './apis/ws/index.js';
17
+ import './apis/base.js';
18
+ import 'viem';
19
+ import './apis/ws/WebSocketExecuteAPI.js';
20
+ import './apis/ws/WebSocketQueryAPI.js';
21
+ import './apis/ws/WebSocketSubscriptionAPI.js';
22
+ import 'ts-mixer/dist/types/types';
23
+ import './apis/market/MarketExecuteAPI.js';
24
+ import './apis/types.js';
25
+ import './apis/market/MarketQueryAPI.js';
26
+ import './apis/perp/PerpExecuteAPI.js';
27
+ import './apis/perp/PerpQueryAPI.js';
28
+ import './apis/spot/SpotExecuteAPI.js';
29
+ import './apis/spot/BaseSpotAPI.js';
30
+ import './apis/spot/SpotQueryAPI.js';
31
+ import './apis/subaccount/SubaccountExecuteAPI.js';
32
+ import './apis/subaccount/SubaccountQueryAPI.js';
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ // src/index.ts
2
+ export * from "./createNadoClient.js";
3
+ export * from "./client.js";
4
+ export * from "./context.js";
5
+ export * from "./apis/market/index.js";
6
+ export * from "./apis/perp/index.js";
7
+ export * from "./apis/spot/index.js";
8
+ export * from "./apis/subaccount/index.js";
9
+ export * from "@nadohq/utils";
10
+ export * from "@nadohq/contracts";
11
+ export * from "@nadohq/engine-client";
12
+ export * from "@nadohq/indexer-client";
13
+ export * from "@nadohq/trigger-client";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './createNadoClient';\nexport * from './client';\nexport * from './context';\n\nexport * from './apis/market';\nexport * from './apis/perp';\nexport * from './apis/spot';\nexport * from './apis/subaccount';\n\n// Subpackage exports\nexport * from '@nadohq/utils';\nexport * from '@nadohq/contracts';\nexport * from '@nadohq/engine-client';\nexport * from '@nadohq/indexer-client';\nexport * from '@nadohq/trigger-client';\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@nadohq/client",
3
+ "version": "0.1.0-alpha.1",
4
+ "type": "module",
5
+ "sideEffects": false,
6
+ "description": "> TODO: description",
7
+ "author": "Frank Jia <frank@inkfnd.com>",
8
+ "homepage": "",
9
+ "license": "ISC",
10
+ "source": "./src/index.ts",
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "repository": "https://github.com/nadohq/nado-typescript-sdk",
15
+ "scripts": {
16
+ "clean": "rm -rf dist && rm -f tsconfig.tsbuildinfo",
17
+ "build": "tsup",
18
+ "dev": "tsc -w",
19
+ "lint": "eslint --cache './**/*.{ts,tsx}'",
20
+ "lint:fix": "eslint --cache --fix './**/*.{ts,tsx}'",
21
+ "typecheck": "tsc --noEmit"
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "src"
26
+ ],
27
+ "exports": {
28
+ ".": {
29
+ "import": {
30
+ "types": "./dist/index.d.ts",
31
+ "import": "./dist/index.js"
32
+ },
33
+ "require": {
34
+ "types": "./dist/index.d.cts",
35
+ "default": "./dist/index.cjs"
36
+ }
37
+ }
38
+ },
39
+ "dependencies": {
40
+ "@nadohq/contracts": "^0.1.0-alpha.1",
41
+ "@nadohq/engine-client": "^0.1.0-alpha.1",
42
+ "@nadohq/indexer-client": "^0.1.0-alpha.1",
43
+ "@nadohq/trigger-client": "^0.1.0-alpha.1",
44
+ "@nadohq/utils": "^0.1.0-alpha.1",
45
+ "ts-mixer": "*"
46
+ },
47
+ "peerDependencies": {
48
+ "viem": "*"
49
+ },
50
+ "devDependencies": {
51
+ "viem": "*"
52
+ },
53
+ "gitHead": "80100d38c43806d1bb57c9139d9577329467d5db"
54
+ }
@@ -0,0 +1,52 @@
1
+ import { WithContracts } from '@nadohq/contracts';
2
+ import { WalletNotProvidedError } from '@nadohq/utils';
3
+
4
+ import { NadoClientContext } from '../context';
5
+
6
+ export class BaseNadoAPI {
7
+ readonly context: NadoClientContext;
8
+
9
+ constructor(context: NadoClientContext) {
10
+ this.context = context;
11
+ }
12
+
13
+ protected getWalletClientAddress() {
14
+ if (!this.context.walletClient) {
15
+ throw new WalletNotProvidedError();
16
+ }
17
+ return this.context.walletClient.account.address;
18
+ }
19
+
20
+ protected getWalletClientChainIdIfNeeded(params: {
21
+ chainId?: number;
22
+ }): number {
23
+ if (params.chainId) {
24
+ return params.chainId;
25
+ }
26
+ if (!this.context.walletClient) {
27
+ throw new WalletNotProvidedError();
28
+ }
29
+ return this.context.walletClient.chain.id;
30
+ }
31
+
32
+ protected getEndpointAddress() {
33
+ return this.context.contractAddresses.endpoint;
34
+ }
35
+
36
+ protected async getOrderbookAddress(productId: number) {
37
+ return this.context.engineClient.getOrderbookAddress(productId);
38
+ }
39
+
40
+ protected getSubaccountOwnerIfNeeded(params: {
41
+ subaccountOwner?: string;
42
+ }): string {
43
+ return params.subaccountOwner ?? this.getWalletClientAddress();
44
+ }
45
+
46
+ protected paramsWithContracts<T>(params: T): WithContracts<T> {
47
+ return {
48
+ ...params,
49
+ ...this.context.contracts,
50
+ };
51
+ }
52
+ }