@nadohq/client 0.1.0-alpha.2 → 0.1.0-alpha.20
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.
- package/dist/apis/base.cjs +3 -6
- package/dist/apis/base.cjs.map +1 -1
- package/dist/apis/base.d.cts +1 -2
- package/dist/apis/base.d.ts +1 -2
- package/dist/apis/base.js +1 -4
- package/dist/apis/base.js.map +1 -1
- package/dist/apis/market/MarketExecuteAPI.cjs +23 -23
- package/dist/apis/market/MarketExecuteAPI.cjs.map +1 -1
- package/dist/apis/market/MarketExecuteAPI.d.cts +9 -11
- package/dist/apis/market/MarketExecuteAPI.d.ts +9 -11
- package/dist/apis/market/MarketExecuteAPI.js +23 -23
- package/dist/apis/market/MarketExecuteAPI.js.map +1 -1
- package/dist/apis/market/MarketQueryAPI.cjs +2 -9
- package/dist/apis/market/MarketQueryAPI.cjs.map +1 -1
- package/dist/apis/market/MarketQueryAPI.d.cts +4 -8
- package/dist/apis/market/MarketQueryAPI.d.ts +4 -8
- package/dist/apis/market/MarketQueryAPI.js +2 -9
- package/dist/apis/market/MarketQueryAPI.js.map +1 -1
- package/dist/apis/market/index.d.cts +2 -2
- package/dist/apis/market/index.d.ts +2 -2
- package/dist/apis/market/types.cjs.map +1 -1
- package/dist/apis/market/types.d.cts +6 -9
- package/dist/apis/market/types.d.ts +6 -9
- package/dist/apis/perp/PerpExecuteAPI.cjs +0 -3
- package/dist/apis/perp/PerpExecuteAPI.cjs.map +1 -1
- package/dist/apis/perp/PerpExecuteAPI.d.cts +1 -2
- package/dist/apis/perp/PerpExecuteAPI.d.ts +1 -2
- package/dist/apis/perp/PerpExecuteAPI.js +0 -3
- package/dist/apis/perp/PerpExecuteAPI.js.map +1 -1
- package/dist/apis/perp/PerpQueryAPI.d.cts +1 -1
- package/dist/apis/perp/PerpQueryAPI.d.ts +1 -1
- package/dist/apis/perp/index.d.cts +1 -1
- package/dist/apis/perp/index.d.ts +1 -1
- package/dist/apis/spot/BaseSpotAPI.cjs +3 -4
- package/dist/apis/spot/BaseSpotAPI.cjs.map +1 -1
- package/dist/apis/spot/BaseSpotAPI.d.cts +1 -2
- package/dist/apis/spot/BaseSpotAPI.d.ts +1 -2
- package/dist/apis/spot/BaseSpotAPI.js +4 -2
- package/dist/apis/spot/BaseSpotAPI.js.map +1 -1
- package/dist/apis/spot/SpotExecuteAPI.cjs +7 -8
- package/dist/apis/spot/SpotExecuteAPI.cjs.map +1 -1
- package/dist/apis/spot/SpotExecuteAPI.d.cts +2 -3
- package/dist/apis/spot/SpotExecuteAPI.d.ts +2 -3
- package/dist/apis/spot/SpotExecuteAPI.js +4 -3
- package/dist/apis/spot/SpotExecuteAPI.js.map +1 -1
- package/dist/apis/spot/SpotQueryAPI.cjs +4 -4
- package/dist/apis/spot/SpotQueryAPI.cjs.map +1 -1
- package/dist/apis/spot/SpotQueryAPI.d.cts +1 -2
- package/dist/apis/spot/SpotQueryAPI.d.ts +1 -2
- package/dist/apis/spot/SpotQueryAPI.js +1 -1
- package/dist/apis/spot/SpotQueryAPI.js.map +1 -1
- package/dist/apis/spot/index.d.cts +2 -3
- package/dist/apis/spot/index.d.ts +2 -3
- package/dist/apis/spot/types.cjs.map +1 -1
- package/dist/apis/spot/types.d.cts +6 -2
- package/dist/apis/spot/types.d.ts +6 -2
- package/dist/apis/subaccount/SubaccountExecuteAPI.d.cts +1 -1
- package/dist/apis/subaccount/SubaccountExecuteAPI.d.ts +1 -1
- package/dist/apis/subaccount/SubaccountQueryAPI.cjs +1 -10
- package/dist/apis/subaccount/SubaccountQueryAPI.cjs.map +1 -1
- package/dist/apis/subaccount/SubaccountQueryAPI.d.cts +3 -10
- package/dist/apis/subaccount/SubaccountQueryAPI.d.ts +3 -10
- package/dist/apis/subaccount/SubaccountQueryAPI.js +1 -12
- package/dist/apis/subaccount/SubaccountQueryAPI.js.map +1 -1
- package/dist/apis/subaccount/index.cjs +3 -4
- package/dist/apis/subaccount/index.cjs.map +1 -1
- package/dist/apis/subaccount/index.d.cts +1 -1
- package/dist/apis/subaccount/index.d.ts +1 -1
- package/dist/apis/subaccount/index.js +4 -2
- package/dist/apis/subaccount/index.js.map +1 -1
- package/dist/apis/subaccount/types.cjs.map +1 -1
- package/dist/apis/subaccount/types.d.cts +1 -1
- package/dist/apis/subaccount/types.d.ts +1 -1
- package/dist/apis/ws/WebSocketExecuteAPI.cjs.map +1 -1
- package/dist/apis/ws/WebSocketExecuteAPI.d.cts +4 -4
- package/dist/apis/ws/WebSocketExecuteAPI.d.ts +4 -4
- package/dist/apis/ws/WebSocketExecuteAPI.js.map +1 -1
- package/dist/apis/ws/WebSocketQueryAPI.d.cts +1 -1
- package/dist/apis/ws/WebSocketQueryAPI.d.ts +1 -1
- package/dist/apis/ws/WebSocketSubscriptionAPI.d.cts +1 -1
- package/dist/apis/ws/WebSocketSubscriptionAPI.d.ts +1 -1
- package/dist/apis/ws/index.d.cts +1 -1
- package/dist/apis/ws/index.d.ts +1 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +2 -3
- package/dist/client.d.ts +2 -3
- package/dist/client.js.map +1 -1
- package/dist/context.cjs +3 -3
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js +4 -4
- package/dist/context.js.map +1 -1
- package/dist/createNadoClient.d.cts +1 -2
- package/dist/createNadoClient.d.ts +1 -2
- package/dist/index.cjs +4 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -5
- package/dist/index.d.ts +4 -5
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
- package/src/apis/base.ts +1 -6
- package/src/apis/market/MarketExecuteAPI.ts +27 -33
- package/src/apis/market/MarketQueryAPI.ts +4 -11
- package/src/apis/market/types.ts +8 -12
- package/src/apis/perp/PerpExecuteAPI.ts +1 -6
- package/src/apis/spot/BaseSpotAPI.ts +5 -2
- package/src/apis/spot/SpotExecuteAPI.ts +4 -3
- package/src/apis/spot/SpotQueryAPI.ts +1 -1
- package/src/apis/spot/types.ts +6 -1
- package/src/apis/subaccount/SubaccountQueryAPI.ts +1 -14
- package/src/apis/subaccount/index.ts +4 -2
- package/src/apis/subaccount/types.ts +1 -1
- package/src/apis/ws/WebSocketExecuteAPI.ts +1 -1
- package/src/client.ts +1 -1
- package/src/context.ts +6 -6
- package/src/index.ts +2 -3
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["import { WalletClientWithAccount } from '@nadohq/
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["import { WalletClientWithAccount } from '@nadohq/shared';\nimport { MarketAPI } from './apis/market';\nimport { PerpAPI } from './apis/perp';\nimport { SpotAPI } from './apis/spot';\nimport { SubaccountAPI } from './apis/subaccount';\nimport { WebsocketAPI } from './apis/ws';\nimport { createClientContext, NadoClientContext } from './context';\n\n/**\n * Client for querying and executing against Nado Clearinghouse.\n * Usually not instantiated directly. Instead, use {@link createNadoClient:CLIENT}.\n */\nexport class NadoClient {\n context!: NadoClientContext;\n market!: MarketAPI;\n subaccount!: SubaccountAPI;\n spot!: SpotAPI;\n perp!: PerpAPI;\n ws!: WebsocketAPI;\n\n constructor(context: NadoClientContext) {\n this.setupFromContext(context);\n }\n\n /**\n * Sets the linked signer for the client. Set to null to revert to the chain signer.\n * @param linkedSignerWalletClient\n */\n setLinkedSigner(linkedSignerWalletClient: WalletClientWithAccount | null) {\n // This is a bit ugly, but works for now\n this.context.linkedSignerWalletClient =\n linkedSignerWalletClient ?? undefined;\n this.context.engineClient.setLinkedSigner(linkedSignerWalletClient);\n this.context.triggerClient.setLinkedSigner(linkedSignerWalletClient);\n }\n\n /**\n * Sets the WalletClient for the client. Will cause a full reload of the current context.\n * @param walletClient\n */\n setWalletClient(walletClient: NadoClientContext['walletClient']) {\n const newContext = createClientContext(\n {\n contractAddresses: this.context.contractAddresses,\n engineEndpoint: this.context.engineClient.opts.url,\n indexerEndpoint: this.context.indexerClient.opts.url,\n triggerEndpoint: this.context.triggerClient.opts.url,\n },\n {\n walletClient,\n // No need to call setLinkedSigner as this property doesn't change\n linkedSignerWalletClient: this.context.linkedSignerWalletClient,\n publicClient: this.context.publicClient,\n },\n );\n this.setupFromContext(newContext);\n }\n\n private setupFromContext(context: NadoClientContext) {\n this.context = context;\n this.market = new MarketAPI(context);\n this.subaccount = new SubaccountAPI(context);\n this.spot = new SpotAPI(context);\n this.perp = new PerpAPI(context);\n this.ws = new WebsocketAPI(context);\n }\n}\n"],"mappings":";AACA,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,2BAA8C;AAMhD,IAAM,aAAN,MAAiB;AAAA,EAQtB,YAAY,SAA4B;AACtC,SAAK,iBAAiB,OAAO;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB,0BAA0D;AAExE,SAAK,QAAQ,2BACX,4BAA4B;AAC9B,SAAK,QAAQ,aAAa,gBAAgB,wBAAwB;AAClE,SAAK,QAAQ,cAAc,gBAAgB,wBAAwB;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB,cAAiD;AAC/D,UAAM,aAAa;AAAA,MACjB;AAAA,QACE,mBAAmB,KAAK,QAAQ;AAAA,QAChC,gBAAgB,KAAK,QAAQ,aAAa,KAAK;AAAA,QAC/C,iBAAiB,KAAK,QAAQ,cAAc,KAAK;AAAA,QACjD,iBAAiB,KAAK,QAAQ,cAAc,KAAK;AAAA,MACnD;AAAA,MACA;AAAA,QACE;AAAA;AAAA,QAEA,0BAA0B,KAAK,QAAQ;AAAA,QACvC,cAAc,KAAK,QAAQ;AAAA,MAC7B;AAAA,IACF;AACA,SAAK,iBAAiB,UAAU;AAAA,EAClC;AAAA,EAEQ,iBAAiB,SAA4B;AACnD,SAAK,UAAU;AACf,SAAK,SAAS,IAAI,UAAU,OAAO;AACnC,SAAK,aAAa,IAAI,cAAc,OAAO;AAC3C,SAAK,OAAO,IAAI,QAAQ,OAAO;AAC/B,SAAK,OAAO,IAAI,QAAQ,OAAO;AAC/B,SAAK,KAAK,IAAI,aAAa,OAAO;AAAA,EACpC;AACF;","names":[]}
|
package/dist/context.cjs
CHANGED
|
@@ -23,9 +23,9 @@ __export(context_exports, {
|
|
|
23
23
|
createClientContext: () => createClientContext
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(context_exports);
|
|
26
|
-
var import_contracts = require("@nadohq/contracts");
|
|
27
26
|
var import_engine_client = require("@nadohq/engine-client");
|
|
28
27
|
var import_indexer_client = require("@nadohq/indexer-client");
|
|
28
|
+
var import_shared = require("@nadohq/shared");
|
|
29
29
|
var import_trigger_client = require("@nadohq/trigger-client");
|
|
30
30
|
var import_viem = require("viem");
|
|
31
31
|
function createClientContext(opts, accountOpts) {
|
|
@@ -40,7 +40,7 @@ function createClientContext(opts, accountOpts) {
|
|
|
40
40
|
}
|
|
41
41
|
const chainEnv = opts;
|
|
42
42
|
return {
|
|
43
|
-
contractAddresses:
|
|
43
|
+
contractAddresses: import_shared.NADO_DEPLOYMENTS[chainEnv],
|
|
44
44
|
engineEndpoint: import_engine_client.ENGINE_CLIENT_ENDPOINTS[chainEnv],
|
|
45
45
|
indexerEndpoint: import_indexer_client.INDEXER_CLIENT_ENDPOINTS[chainEnv],
|
|
46
46
|
triggerEndpoint: import_trigger_client.TRIGGER_CLIENT_ENDPOINTS[chainEnv]
|
|
@@ -114,7 +114,7 @@ function getNadoContract({
|
|
|
114
114
|
}) {
|
|
115
115
|
return (0, import_viem.getContract)({
|
|
116
116
|
address: contractAddresses[contractName],
|
|
117
|
-
abi:
|
|
117
|
+
abi: import_shared.NADO_ABIS[contractName],
|
|
118
118
|
client: walletClient ?? publicClient
|
|
119
119
|
});
|
|
120
120
|
}
|
package/dist/context.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/context.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../src/context.ts"],"sourcesContent":["import { ENGINE_CLIENT_ENDPOINTS, EngineClient } from '@nadohq/engine-client';\nimport {\n INDEXER_CLIENT_ENDPOINTS,\n IndexerClient,\n} from '@nadohq/indexer-client';\nimport {\n ChainEnv,\n NADO_ABIS,\n NADO_DEPLOYMENTS,\n NadoContractName,\n NadoContracts,\n NadoDeploymentAddresses,\n WalletClientWithAccount,\n} from '@nadohq/shared';\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;AAAA;AAAA;AAAA;AAAA,2BAAsD;AACtD,4BAGO;AACP,oBAQO;AACP,4BAGO;AACP,kBAA0C;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,+BAAiB,QAAQ;AAAA,MAC5C,gBAAgB,6CAAwB,QAAQ;AAAA,MAChD,iBAAiB,+CAAyB,QAAQ;AAAA,MAClD,iBAAiB,+CAAyB,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,kCAAa;AAAA,MAC7B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,eAAe,IAAI,oCAAc;AAAA,MAC/B,KAAK;AAAA,MACL;AAAA,IACF,CAAC;AAAA,IACD,eAAe,IAAI,oCAAc;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,aAAO,yBAAY;AAAA,IACjB,SAAS,kBAAkB,YAAY;AAAA,IACvC,KAAK,wBAAU,YAAY;AAAA,IAC3B,QAAQ,gBAAgB;AAAA,EAC1B,CAAC;AACH;","names":[]}
|
package/dist/context.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WalletClientWithAccount, NadoContracts, NadoDeploymentAddresses, ChainEnv } from '@nadohq/contracts';
|
|
2
1
|
import { EngineClient } from '@nadohq/engine-client';
|
|
3
2
|
import { IndexerClient } from '@nadohq/indexer-client';
|
|
3
|
+
import { WalletClientWithAccount, NadoContracts, NadoDeploymentAddresses, ChainEnv } from '@nadohq/shared';
|
|
4
4
|
import { TriggerClient } from '@nadohq/trigger-client';
|
|
5
5
|
import { PublicClient } from 'viem';
|
|
6
6
|
|
package/dist/context.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WalletClientWithAccount, NadoContracts, NadoDeploymentAddresses, ChainEnv } from '@nadohq/contracts';
|
|
2
1
|
import { EngineClient } from '@nadohq/engine-client';
|
|
3
2
|
import { IndexerClient } from '@nadohq/indexer-client';
|
|
3
|
+
import { WalletClientWithAccount, NadoContracts, NadoDeploymentAddresses, ChainEnv } from '@nadohq/shared';
|
|
4
4
|
import { TriggerClient } from '@nadohq/trigger-client';
|
|
5
5
|
import { PublicClient } from 'viem';
|
|
6
6
|
|
package/dist/context.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// src/context.ts
|
|
2
|
-
import {
|
|
3
|
-
NADO_ABIS,
|
|
4
|
-
NADO_DEPLOYMENTS
|
|
5
|
-
} from "@nadohq/contracts";
|
|
6
2
|
import { ENGINE_CLIENT_ENDPOINTS, EngineClient } from "@nadohq/engine-client";
|
|
7
3
|
import {
|
|
8
4
|
INDEXER_CLIENT_ENDPOINTS,
|
|
9
5
|
IndexerClient
|
|
10
6
|
} from "@nadohq/indexer-client";
|
|
7
|
+
import {
|
|
8
|
+
NADO_ABIS,
|
|
9
|
+
NADO_DEPLOYMENTS
|
|
10
|
+
} from "@nadohq/shared";
|
|
11
11
|
import {
|
|
12
12
|
TRIGGER_CLIENT_ENDPOINTS,
|
|
13
13
|
TriggerClient
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/context.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../src/context.ts"],"sourcesContent":["import { ENGINE_CLIENT_ENDPOINTS, EngineClient } from '@nadohq/engine-client';\nimport {\n INDEXER_CLIENT_ENDPOINTS,\n IndexerClient,\n} from '@nadohq/indexer-client';\nimport {\n ChainEnv,\n NADO_ABIS,\n NADO_DEPLOYMENTS,\n NadoContractName,\n NadoContracts,\n NadoDeploymentAddresses,\n WalletClientWithAccount,\n} from '@nadohq/shared';\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,SAAS,yBAAyB,oBAAoB;AACtD;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OAKK;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":[]}
|
|
@@ -4,10 +4,9 @@ import './apis/market/index.cjs';
|
|
|
4
4
|
import './apis/perp/index.cjs';
|
|
5
5
|
import './apis/spot/index.cjs';
|
|
6
6
|
import './apis/subaccount/index.cjs';
|
|
7
|
-
import '@nadohq/utils';
|
|
8
|
-
import '@nadohq/contracts';
|
|
9
7
|
import '@nadohq/engine-client';
|
|
10
8
|
import '@nadohq/indexer-client';
|
|
9
|
+
import '@nadohq/shared';
|
|
11
10
|
import '@nadohq/trigger-client';
|
|
12
11
|
import './apis/market/types.cjs';
|
|
13
12
|
import './apis/spot/types.cjs';
|
|
@@ -4,10 +4,9 @@ import './apis/market/index.js';
|
|
|
4
4
|
import './apis/perp/index.js';
|
|
5
5
|
import './apis/spot/index.js';
|
|
6
6
|
import './apis/subaccount/index.js';
|
|
7
|
-
import '@nadohq/utils';
|
|
8
|
-
import '@nadohq/contracts';
|
|
9
7
|
import '@nadohq/engine-client';
|
|
10
8
|
import '@nadohq/indexer-client';
|
|
9
|
+
import '@nadohq/shared';
|
|
11
10
|
import '@nadohq/trigger-client';
|
|
12
11
|
import './apis/market/types.js';
|
|
13
12
|
import './apis/spot/types.js';
|
package/dist/index.cjs
CHANGED
|
@@ -17,31 +17,29 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
17
17
|
// src/index.ts
|
|
18
18
|
var index_exports = {};
|
|
19
19
|
module.exports = __toCommonJS(index_exports);
|
|
20
|
-
__reExport(index_exports, require("./createNadoClient.cjs"), module.exports);
|
|
21
20
|
__reExport(index_exports, require("./client.cjs"), module.exports);
|
|
22
21
|
__reExport(index_exports, require("./context.cjs"), module.exports);
|
|
22
|
+
__reExport(index_exports, require("./createNadoClient.cjs"), module.exports);
|
|
23
23
|
__reExport(index_exports, require("./apis/market/index.cjs"), module.exports);
|
|
24
24
|
__reExport(index_exports, require("./apis/perp/index.cjs"), module.exports);
|
|
25
25
|
__reExport(index_exports, require("./apis/spot/index.cjs"), module.exports);
|
|
26
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
27
|
__reExport(index_exports, require("@nadohq/engine-client"), module.exports);
|
|
30
28
|
__reExport(index_exports, require("@nadohq/indexer-client"), module.exports);
|
|
29
|
+
__reExport(index_exports, require("@nadohq/shared"), module.exports);
|
|
31
30
|
__reExport(index_exports, require("@nadohq/trigger-client"), module.exports);
|
|
32
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
33
32
|
0 && (module.exports = {
|
|
34
|
-
...require("./createNadoClient.cjs"),
|
|
35
33
|
...require("./client.cjs"),
|
|
36
34
|
...require("./context.cjs"),
|
|
35
|
+
...require("./createNadoClient.cjs"),
|
|
37
36
|
...require("./apis/market/index.cjs"),
|
|
38
37
|
...require("./apis/perp/index.cjs"),
|
|
39
38
|
...require("./apis/spot/index.cjs"),
|
|
40
39
|
...require("./apis/subaccount/index.cjs"),
|
|
41
|
-
...require("@nadohq/utils"),
|
|
42
|
-
...require("@nadohq/contracts"),
|
|
43
40
|
...require("@nadohq/engine-client"),
|
|
44
41
|
...require("@nadohq/indexer-client"),
|
|
42
|
+
...require("@nadohq/shared"),
|
|
45
43
|
...require("@nadohq/trigger-client")
|
|
46
44
|
});
|
|
47
45
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './client';\nexport * from './context';\nexport * from './createNadoClient';\n\nexport * from './apis/market';\nexport * from './apis/perp';\nexport * from './apis/spot';\nexport * from './apis/subaccount';\n\n// Subpackage exports\nexport * from '@nadohq/engine-client';\nexport * from '@nadohq/indexer-client';\nexport * from '@nadohq/shared';\nexport * from '@nadohq/trigger-client';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,yBAAd;AACA,0BAAc,0BADd;AAEA,0BAAc,mCAFd;AAIA,0BAAc,oCAJd;AAKA,0BAAc,kCALd;AAMA,0BAAc,kCANd;AAOA,0BAAc,wCAPd;AAUA,0BAAc,kCAVd;AAWA,0BAAc,mCAXd;AAYA,0BAAc,2BAZd;AAaA,0BAAc,mCAbd;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
export { createNadoClient } from './createNadoClient.cjs';
|
|
2
1
|
export { NadoClient } from './client.cjs';
|
|
3
2
|
export { CreateNadoClientContextAccountOpts, CreateNadoClientContextOpts, NadoClientContext, createClientContext } from './context.cjs';
|
|
3
|
+
export { createNadoClient } from './createNadoClient.cjs';
|
|
4
4
|
export { MarketAPI } from './apis/market/index.cjs';
|
|
5
5
|
export { PerpAPI } from './apis/perp/index.cjs';
|
|
6
6
|
export { SpotAPI } from './apis/spot/index.cjs';
|
|
7
7
|
export { SubaccountAPI } from './apis/subaccount/index.cjs';
|
|
8
|
-
export * from '@nadohq/utils';
|
|
9
|
-
export * from '@nadohq/contracts';
|
|
10
8
|
export * from '@nadohq/engine-client';
|
|
11
9
|
export * from '@nadohq/indexer-client';
|
|
10
|
+
export * from '@nadohq/shared';
|
|
12
11
|
export * from '@nadohq/trigger-client';
|
|
13
|
-
export { CancelAndPlaceOrderParams, CancelOrdersParams, CancelProductOrdersParams, CancelTriggerOrdersParams, CancelTriggerProductOrdersParams, GetTriggerOrdersParams,
|
|
14
|
-
export { ApproveAllowanceParams, BurnNlpParams, GetTokenAllowanceParams, GetTokenWalletBalanceParams, MintNlpParams, ProductIdOrTokenAddress, TransferQuoteParams, WithdrawCollateralParams } from './apis/spot/types.cjs';
|
|
12
|
+
export { CancelAndPlaceOrderParams, CancelOrdersParams, CancelProductOrdersParams, CancelTriggerOrdersParams, CancelTriggerProductOrdersParams, GetTriggerOrdersParams, PlaceOrderParams, PlaceOrdersParams, PlaceTriggerOrderParams } from './apis/market/types.cjs';
|
|
13
|
+
export { ApproveAllowanceParams, BurnNlpParams, GetTokenAllowanceParams, GetTokenWalletBalanceParams, MintMockERC20Params, MintNlpParams, ProductIdOrTokenAddress, TransferQuoteParams, WithdrawCollateralParams } from './apis/spot/types.cjs';
|
|
15
14
|
export { CreateStandardLinkedSignerResult, LinkSignerParams, LiquidateSubaccountParams } from './apis/subaccount/types.cjs';
|
|
16
15
|
import './apis/ws/index.cjs';
|
|
17
16
|
import './apis/base.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
export { createNadoClient } from './createNadoClient.js';
|
|
2
1
|
export { NadoClient } from './client.js';
|
|
3
2
|
export { CreateNadoClientContextAccountOpts, CreateNadoClientContextOpts, NadoClientContext, createClientContext } from './context.js';
|
|
3
|
+
export { createNadoClient } from './createNadoClient.js';
|
|
4
4
|
export { MarketAPI } from './apis/market/index.js';
|
|
5
5
|
export { PerpAPI } from './apis/perp/index.js';
|
|
6
6
|
export { SpotAPI } from './apis/spot/index.js';
|
|
7
7
|
export { SubaccountAPI } from './apis/subaccount/index.js';
|
|
8
|
-
export * from '@nadohq/utils';
|
|
9
|
-
export * from '@nadohq/contracts';
|
|
10
8
|
export * from '@nadohq/engine-client';
|
|
11
9
|
export * from '@nadohq/indexer-client';
|
|
10
|
+
export * from '@nadohq/shared';
|
|
12
11
|
export * from '@nadohq/trigger-client';
|
|
13
|
-
export { CancelAndPlaceOrderParams, CancelOrdersParams, CancelProductOrdersParams, CancelTriggerOrdersParams, CancelTriggerProductOrdersParams, GetTriggerOrdersParams,
|
|
14
|
-
export { ApproveAllowanceParams, BurnNlpParams, GetTokenAllowanceParams, GetTokenWalletBalanceParams, MintNlpParams, ProductIdOrTokenAddress, TransferQuoteParams, WithdrawCollateralParams } from './apis/spot/types.js';
|
|
12
|
+
export { CancelAndPlaceOrderParams, CancelOrdersParams, CancelProductOrdersParams, CancelTriggerOrdersParams, CancelTriggerProductOrdersParams, GetTriggerOrdersParams, PlaceOrderParams, PlaceOrdersParams, PlaceTriggerOrderParams } from './apis/market/types.js';
|
|
13
|
+
export { ApproveAllowanceParams, BurnNlpParams, GetTokenAllowanceParams, GetTokenWalletBalanceParams, MintMockERC20Params, MintNlpParams, ProductIdOrTokenAddress, TransferQuoteParams, WithdrawCollateralParams } from './apis/spot/types.js';
|
|
15
14
|
export { CreateStandardLinkedSignerResult, LinkSignerParams, LiquidateSubaccountParams } from './apis/subaccount/types.js';
|
|
16
15
|
import './apis/ws/index.js';
|
|
17
16
|
import './apis/base.js';
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
export * from "./createNadoClient.js";
|
|
3
2
|
export * from "./client.js";
|
|
4
3
|
export * from "./context.js";
|
|
4
|
+
export * from "./createNadoClient.js";
|
|
5
5
|
export * from "./apis/market/index.js";
|
|
6
6
|
export * from "./apis/perp/index.js";
|
|
7
7
|
export * from "./apis/spot/index.js";
|
|
8
8
|
export * from "./apis/subaccount/index.js";
|
|
9
|
-
export * from "@nadohq/utils";
|
|
10
|
-
export * from "@nadohq/contracts";
|
|
11
9
|
export * from "@nadohq/engine-client";
|
|
12
10
|
export * from "@nadohq/indexer-client";
|
|
11
|
+
export * from "@nadohq/shared";
|
|
13
12
|
export * from "@nadohq/trigger-client";
|
|
14
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './client';\nexport * from './context';\nexport * from './createNadoClient';\n\nexport * from './apis/market';\nexport * from './apis/perp';\nexport * from './apis/spot';\nexport * from './apis/subaccount';\n\n// Subpackage exports\nexport * from '@nadohq/engine-client';\nexport * from '@nadohq/indexer-client';\nexport * from '@nadohq/shared';\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;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nadohq/client",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.20",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"description": "> TODO: description",
|
|
@@ -37,11 +37,10 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@nadohq/
|
|
41
|
-
"@nadohq/
|
|
42
|
-
"@nadohq/
|
|
43
|
-
"@nadohq/trigger-client": "^0.1.0-alpha.
|
|
44
|
-
"@nadohq/utils": "^0.1.0-alpha.2",
|
|
40
|
+
"@nadohq/engine-client": "^0.1.0-alpha.20",
|
|
41
|
+
"@nadohq/indexer-client": "^0.1.0-alpha.20",
|
|
42
|
+
"@nadohq/shared": "^0.1.0-alpha.20",
|
|
43
|
+
"@nadohq/trigger-client": "^0.1.0-alpha.20",
|
|
45
44
|
"ts-mixer": "*"
|
|
46
45
|
},
|
|
47
46
|
"peerDependencies": {
|
|
@@ -50,5 +49,5 @@
|
|
|
50
49
|
"devDependencies": {
|
|
51
50
|
"viem": "*"
|
|
52
51
|
},
|
|
53
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "59a3e0df21791fd31860080fc9fa920129e4170d"
|
|
54
53
|
}
|
package/src/apis/base.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { WithContracts } from '@nadohq/
|
|
2
|
-
import { WalletNotProvidedError } from '@nadohq/utils';
|
|
1
|
+
import { WalletNotProvidedError, WithContracts } from '@nadohq/shared';
|
|
3
2
|
|
|
4
3
|
import { NadoClientContext } from '../context';
|
|
5
4
|
|
|
@@ -33,10 +32,6 @@ export class BaseNadoAPI {
|
|
|
33
32
|
return this.context.contractAddresses.endpoint;
|
|
34
33
|
}
|
|
35
34
|
|
|
36
|
-
protected async getOrderbookAddress(productId: number) {
|
|
37
|
-
return this.context.engineClient.getOrderbookAddress(productId);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
35
|
protected getSubaccountOwnerIfNeeded(params: {
|
|
41
36
|
subaccountOwner?: string;
|
|
42
37
|
}): string {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { EngineServerExecuteSuccessResult } from '@nadohq/engine-client';
|
|
2
|
+
import { getOrderVerifyingAddress } from '@nadohq/shared';
|
|
1
3
|
import { BaseNadoAPI } from '../base';
|
|
2
|
-
import { OptionalSignatureParams } from '../types';
|
|
3
4
|
import {
|
|
4
5
|
CancelAndPlaceOrderParams,
|
|
5
6
|
CancelOrdersParams,
|
|
6
7
|
CancelProductOrdersParams,
|
|
7
8
|
CancelTriggerOrdersParams,
|
|
8
9
|
CancelTriggerProductOrdersParams,
|
|
9
|
-
PlaceIsolatedOrderParams,
|
|
10
10
|
PlaceOrderParams,
|
|
11
|
+
PlaceOrdersParams,
|
|
11
12
|
PlaceTriggerOrderParams,
|
|
12
13
|
} from './types';
|
|
13
14
|
|
|
@@ -26,7 +27,7 @@ export class MarketExecuteAPI extends BaseNadoAPI {
|
|
|
26
27
|
subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),
|
|
27
28
|
},
|
|
28
29
|
chainId: this.getWalletClientChainIdIfNeeded(params),
|
|
29
|
-
verifyingAddr:
|
|
30
|
+
verifyingAddr: getOrderVerifyingAddress(params.productId),
|
|
30
31
|
productId,
|
|
31
32
|
spotLeverage: params.spotLeverage,
|
|
32
33
|
nonce,
|
|
@@ -34,24 +35,29 @@ export class MarketExecuteAPI extends BaseNadoAPI {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
/**
|
|
37
|
-
* Places
|
|
38
|
+
* Places multiple orders through the engine
|
|
38
39
|
* @param params
|
|
39
40
|
*/
|
|
40
|
-
async
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return this.context.engineClient.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
41
|
+
async placeOrders(
|
|
42
|
+
params: PlaceOrdersParams,
|
|
43
|
+
): Promise<EngineServerExecuteSuccessResult<'place_orders'>> {
|
|
44
|
+
return this.context.engineClient.placeOrders(
|
|
45
|
+
params.map((orderParams) => {
|
|
46
|
+
const { id, productId, order, nonce, spotLeverage } = orderParams;
|
|
47
|
+
return {
|
|
48
|
+
id,
|
|
49
|
+
order: {
|
|
50
|
+
...order,
|
|
51
|
+
subaccountOwner: this.getSubaccountOwnerIfNeeded(order),
|
|
52
|
+
},
|
|
53
|
+
chainId: this.getWalletClientChainIdIfNeeded(orderParams),
|
|
54
|
+
verifyingAddr: getOrderVerifyingAddress(productId),
|
|
55
|
+
productId,
|
|
56
|
+
spotLeverage,
|
|
57
|
+
nonce,
|
|
58
|
+
};
|
|
59
|
+
}),
|
|
60
|
+
);
|
|
55
61
|
}
|
|
56
62
|
|
|
57
63
|
/**
|
|
@@ -91,9 +97,7 @@ export class MarketExecuteAPI extends BaseNadoAPI {
|
|
|
91
97
|
...order,
|
|
92
98
|
subaccountOwner,
|
|
93
99
|
},
|
|
94
|
-
verifyingAddr:
|
|
95
|
-
params.placeOrder,
|
|
96
|
-
),
|
|
100
|
+
verifyingAddr: getOrderVerifyingAddress(productId),
|
|
97
101
|
chainId,
|
|
98
102
|
productId,
|
|
99
103
|
spotLeverage,
|
|
@@ -123,7 +127,7 @@ export class MarketExecuteAPI extends BaseNadoAPI {
|
|
|
123
127
|
return this.context.triggerClient.placeTriggerOrder({
|
|
124
128
|
...params,
|
|
125
129
|
chainId: this.getWalletClientChainIdIfNeeded(params),
|
|
126
|
-
verifyingAddr:
|
|
130
|
+
verifyingAddr: getOrderVerifyingAddress(params.productId),
|
|
127
131
|
order: {
|
|
128
132
|
subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),
|
|
129
133
|
...params.order,
|
|
@@ -156,14 +160,4 @@ export class MarketExecuteAPI extends BaseNadoAPI {
|
|
|
156
160
|
verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),
|
|
157
161
|
});
|
|
158
162
|
}
|
|
159
|
-
|
|
160
|
-
protected async getOrderbookVerifyingAddressIfNeeded(
|
|
161
|
-
params: OptionalSignatureParams<{
|
|
162
|
-
productId: number;
|
|
163
|
-
}>,
|
|
164
|
-
): Promise<string> {
|
|
165
|
-
return (
|
|
166
|
-
params.verifyingAddr ?? (await this.getOrderbookAddress(params.productId))
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
163
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getAllMarkets, GetAllMarketsResponse } from '@nadohq/contracts';
|
|
2
1
|
import {
|
|
2
|
+
GetEngineAllMarketsResponse,
|
|
3
3
|
GetEngineMarketLiquidityParams,
|
|
4
4
|
GetEngineMarketPriceParams,
|
|
5
5
|
GetEngineMarketPricesParams,
|
|
@@ -24,25 +24,18 @@ import { BaseNadoAPI } from '../base';
|
|
|
24
24
|
import { GetTriggerOrdersParams } from './types';
|
|
25
25
|
|
|
26
26
|
export class MarketQueryAPI extends BaseNadoAPI {
|
|
27
|
-
/**
|
|
28
|
-
* Retrieves all market states from the on-chain contracts
|
|
29
|
-
*/
|
|
30
|
-
async getAllMarkets(): Promise<GetAllMarketsResponse> {
|
|
31
|
-
return getAllMarkets(this.context.contracts);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
27
|
/**
|
|
35
28
|
* Retrieves all market states from the offchain engine
|
|
36
29
|
*/
|
|
37
|
-
async
|
|
30
|
+
async getAllMarkets(): Promise<GetEngineAllMarketsResponse> {
|
|
38
31
|
return this.context.engineClient.getAllMarkets();
|
|
39
32
|
}
|
|
40
33
|
|
|
41
34
|
/**
|
|
42
35
|
* Get all edge engine markets
|
|
43
36
|
*/
|
|
44
|
-
async
|
|
45
|
-
Record<number,
|
|
37
|
+
async getEdgeAllMarkets(): Promise<
|
|
38
|
+
Record<number, GetEngineAllMarketsResponse>
|
|
46
39
|
> {
|
|
47
40
|
return this.context.engineClient.getEdgeAllMarkets();
|
|
48
41
|
}
|
package/src/apis/market/types.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EngineCancelOrdersParams,
|
|
3
3
|
EngineCancelProductOrdersParams,
|
|
4
|
-
EngineIsolatedOrderParams,
|
|
5
4
|
EngineOrderParams,
|
|
6
|
-
EnginePlaceIsolatedOrderParams,
|
|
7
5
|
EnginePlaceOrderParams,
|
|
8
6
|
} from '@nadohq/engine-client';
|
|
9
7
|
import {
|
|
@@ -14,21 +12,19 @@ import {
|
|
|
14
12
|
} from '@nadohq/trigger-client';
|
|
15
13
|
import { OptionalSignatureParams, OptionalSubaccountOwner } from '../types';
|
|
16
14
|
|
|
17
|
-
type ClientOrderParams<T
|
|
15
|
+
type ClientOrderParams<T extends { order: EngineOrderParams }> = Omit<
|
|
16
|
+
OptionalSignatureParams<T>,
|
|
17
|
+
// Order is overridden to make subaccount owner optional
|
|
18
|
+
| 'order'
|
|
19
|
+
// Verifying address can be derived from product ID
|
|
20
|
+
| 'verifyingAddr'
|
|
21
|
+
> & {
|
|
18
22
|
order: OptionalSubaccountOwner<EngineOrderParams>;
|
|
19
23
|
};
|
|
20
24
|
|
|
21
25
|
export type PlaceOrderParams = ClientOrderParams<EnginePlaceOrderParams>;
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
* Same as PlaceOrderParams but with isolated fields for isolated margin trading
|
|
25
|
-
*/
|
|
26
|
-
export type PlaceIsolatedOrderParams = Omit<
|
|
27
|
-
OptionalSignatureParams<EnginePlaceIsolatedOrderParams>,
|
|
28
|
-
'order'
|
|
29
|
-
> & {
|
|
30
|
-
order: OptionalSubaccountOwner<EngineIsolatedOrderParams>;
|
|
31
|
-
};
|
|
27
|
+
export type PlaceOrdersParams = PlaceOrderParams[];
|
|
32
28
|
|
|
33
29
|
export type CancelOrdersParams = OptionalSignatureParams<
|
|
34
30
|
OptionalSubaccountOwner<EngineCancelOrdersParams>
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import { SettlePnlParams } from '@nadohq/contracts';
|
|
2
1
|
import { BaseNadoAPI } from '../base';
|
|
3
2
|
|
|
4
|
-
export class PerpExecuteAPI extends BaseNadoAPI {
|
|
5
|
-
settlePnl(_params: SettlePnlParams) {
|
|
6
|
-
throw Error('Not implemented');
|
|
7
|
-
}
|
|
8
|
-
}
|
|
3
|
+
export class PerpExecuteAPI extends BaseNadoAPI {}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
ContractInstance,
|
|
3
|
+
ERC20_ABI,
|
|
4
|
+
getValidatedAddress,
|
|
5
|
+
} from '@nadohq/shared';
|
|
3
6
|
import { getContract } from 'viem';
|
|
4
7
|
import { BaseNadoAPI } from '../base';
|
|
5
8
|
import { ProductIdOrTokenAddress } from './types';
|
|
@@ -3,14 +3,15 @@ import {
|
|
|
3
3
|
depositCollateral,
|
|
4
4
|
DepositCollateralParams,
|
|
5
5
|
isWriteableContract,
|
|
6
|
-
MintMockERC20Params,
|
|
7
6
|
MOCK_ERC20_ABI,
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
toBigInt,
|
|
8
|
+
WalletNotProvidedError,
|
|
9
|
+
} from '@nadohq/shared';
|
|
10
10
|
import { BaseSpotAPI } from './BaseSpotAPI';
|
|
11
11
|
import {
|
|
12
12
|
ApproveAllowanceParams,
|
|
13
13
|
BurnNlpParams,
|
|
14
|
+
MintMockERC20Params,
|
|
14
15
|
MintNlpParams,
|
|
15
16
|
TransferQuoteParams,
|
|
16
17
|
WithdrawCollateralParams,
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
GetEngineMaxMintNlpAmountParams,
|
|
3
3
|
GetEngineMaxWithdrawableParams,
|
|
4
4
|
} from '@nadohq/engine-client';
|
|
5
|
-
import { BigDecimal, getValidatedAddress, toBigDecimal } from '@nadohq/
|
|
5
|
+
import { BigDecimal, getValidatedAddress, toBigDecimal } from '@nadohq/shared';
|
|
6
6
|
import { BaseSpotAPI } from './BaseSpotAPI';
|
|
7
7
|
import { GetTokenAllowanceParams, GetTokenWalletBalanceParams } from './types';
|
|
8
8
|
|
package/src/apis/spot/types.ts
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
EngineTransferQuoteParams,
|
|
5
5
|
EngineWithdrawCollateralParams,
|
|
6
6
|
} from '@nadohq/engine-client';
|
|
7
|
-
import { BigDecimalish } from '@nadohq/
|
|
7
|
+
import { BigDecimalish } from '@nadohq/shared';
|
|
8
8
|
import { OptionalSignatureParams, OptionalSubaccountOwner } from '../types';
|
|
9
9
|
|
|
10
10
|
export type ProductIdOrTokenAddress =
|
|
@@ -42,3 +42,8 @@ export type MintNlpParams = OptionalSignatureParams<
|
|
|
42
42
|
export type BurnNlpParams = OptionalSignatureParams<
|
|
43
43
|
OptionalSubaccountOwner<EngineBurnNlpParams>
|
|
44
44
|
>;
|
|
45
|
+
|
|
46
|
+
export interface MintMockERC20Params {
|
|
47
|
+
productId: number;
|
|
48
|
+
amount: BigDecimalish;
|
|
49
|
+
}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getSubaccountSummary,
|
|
3
|
-
GetSubaccountSummaryParams,
|
|
4
|
-
} from '@nadohq/contracts';
|
|
5
1
|
import {
|
|
6
2
|
GetEngineEstimatedSubaccountSummaryParams,
|
|
7
3
|
GetEngineIsolatedPositionsParams,
|
|
@@ -15,20 +11,11 @@ import {
|
|
|
15
11
|
import { BaseNadoAPI } from '../base';
|
|
16
12
|
|
|
17
13
|
export class SubaccountQueryAPI extends BaseNadoAPI {
|
|
18
|
-
/**
|
|
19
|
-
* Returns a comprehensive summary for a subaaccount, including its balances and health
|
|
20
|
-
*
|
|
21
|
-
* @see {@link getSubaccountSummary:CONTRACTS | getSubaccountSummary}
|
|
22
|
-
*/
|
|
23
|
-
async getSubaccountSummary(params: GetSubaccountSummaryParams) {
|
|
24
|
-
return getSubaccountSummary(this.paramsWithContracts(params));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
14
|
/**
|
|
28
15
|
* Gets the subaccount state according to the offchain engine
|
|
29
16
|
* @param params
|
|
30
17
|
*/
|
|
31
|
-
async
|
|
18
|
+
async getSubaccountSummary(params: GetEngineSubaccountSummaryParams) {
|
|
32
19
|
return this.context.engineClient.getSubaccountSummary(params);
|
|
33
20
|
}
|
|
34
21
|
|