@nadohq/client 0.11.0 → 0.13.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.
@@ -108,7 +108,9 @@ var MarketExecuteAPI = class extends import_base.BaseNadoAPI {
108
108
  productId,
109
109
  spotLeverage,
110
110
  nonce
111
- }
111
+ },
112
+ requiredUnfilledAmount: params.requiredUnfilledAmount,
113
+ placeRequiresUnfilled: params.placeRequiresUnfilled
112
114
  });
113
115
  }
114
116
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/apis/market/MarketExecuteAPI.ts"],"sourcesContent":["import { EngineServerExecuteSuccessResult } from '@nadohq/engine-client';\nimport { getOrderVerifyingAddress } from '@nadohq/shared';\nimport { BaseNadoAPI } from '../base';\nimport {\n CancelAndPlaceOrderParams,\n CancelOrdersParams,\n CancelProductOrdersParams,\n CancelTriggerOrdersParams,\n CancelTriggerProductOrdersParams,\n PlaceOrderParams,\n PlaceOrdersParams,\n PlaceTriggerOrderParams,\n PlaceTriggerOrdersParams,\n} from './types';\n\nexport class MarketExecuteAPI extends BaseNadoAPI {\n /**\n * Places an order through the engine\n * @param params\n */\n async placeOrder(params: PlaceOrderParams) {\n const { id: orderId, productId, order, nonce } = params;\n\n return this.context.engineClient.placeOrder({\n id: orderId,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n productId,\n spotLeverage: params.spotLeverage,\n nonce,\n });\n }\n\n /**\n * Places multiple orders through the engine\n * @param params\n */\n async placeOrders(\n params: PlaceOrdersParams,\n ): Promise<EngineServerExecuteSuccessResult<'place_orders'>> {\n return this.context.engineClient.placeOrders({\n orders: params.orders.map((orderParams) => {\n const { id, productId, order, nonce, spotLeverage } = orderParams;\n return {\n id,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n productId,\n spotLeverage,\n nonce,\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels orders through the engine\n * @param params\n */\n async cancelOrders(params: CancelOrdersParams) {\n return this.context.engineClient.cancelOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels orders through the engine and places a new one\n * @param params\n */\n async cancelAndPlace(params: CancelAndPlaceOrderParams) {\n const { productId, order, nonce, spotLeverage } = params.placeOrder;\n const subaccountOwner = this.getSubaccountOwnerIfNeeded(\n params.cancelOrders,\n );\n const chainId = this.getWalletClientChainIdIfNeeded(params.cancelOrders);\n\n return this.context.engineClient.cancelAndPlace({\n cancelOrders: {\n ...params.cancelOrders,\n subaccountOwner,\n verifyingAddr:\n params.cancelOrders.verifyingAddr ?? this.getEndpointAddress(),\n chainId,\n },\n placeOrder: {\n order: {\n ...order,\n subaccountOwner,\n },\n verifyingAddr: getOrderVerifyingAddress(productId),\n chainId,\n productId,\n spotLeverage,\n nonce,\n },\n });\n }\n\n /**\n * Cancels all orders for provided products through the engine.\n * @param params\n */\n async cancelProductOrders(params: CancelProductOrdersParams) {\n return this.context.engineClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Places a trigger order through the trigger service\n * @param params\n */\n async placeTriggerOrder(params: PlaceTriggerOrderParams) {\n return this.context.triggerClient.placeTriggerOrder({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n ...params.order,\n },\n });\n }\n\n /**\n * Places multiple trigger orders through the trigger service\n * @param params\n */\n async placeTriggerOrders(params: PlaceTriggerOrdersParams) {\n return this.context.triggerClient.placeTriggerOrders({\n orders: params.orders.map((orderParams) => {\n const { productId, order } = orderParams;\n return {\n ...orderParams,\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n ...order,\n },\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels all trigger orders for provided digests through the trigger service.\n * @param params\n */\n async cancelTriggerOrders(params: CancelTriggerOrdersParams) {\n return this.context.triggerClient.cancelTriggerOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels all trigger orders for provided products through the trigger service.\n * @param params\n */\n async cancelTriggerProductOrders(params: CancelTriggerProductOrdersParams) {\n return this.context.triggerClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/apis/market/MarketExecuteAPI.ts"],"sourcesContent":["import { EngineServerExecuteSuccessResult } from '@nadohq/engine-client';\nimport { getOrderVerifyingAddress } from '@nadohq/shared';\nimport { BaseNadoAPI } from '../base';\nimport {\n CancelAndPlaceOrderParams,\n CancelOrdersParams,\n CancelProductOrdersParams,\n CancelTriggerOrdersParams,\n CancelTriggerProductOrdersParams,\n PlaceOrderParams,\n PlaceOrdersParams,\n PlaceTriggerOrderParams,\n PlaceTriggerOrdersParams,\n} from './types';\n\nexport class MarketExecuteAPI extends BaseNadoAPI {\n /**\n * Places an order through the engine\n * @param params\n */\n async placeOrder(params: PlaceOrderParams) {\n const { id: orderId, productId, order, nonce } = params;\n\n return this.context.engineClient.placeOrder({\n id: orderId,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n productId,\n spotLeverage: params.spotLeverage,\n nonce,\n });\n }\n\n /**\n * Places multiple orders through the engine\n * @param params\n */\n async placeOrders(\n params: PlaceOrdersParams,\n ): Promise<EngineServerExecuteSuccessResult<'place_orders'>> {\n return this.context.engineClient.placeOrders({\n orders: params.orders.map((orderParams) => {\n const { id, productId, order, nonce, spotLeverage } = orderParams;\n return {\n id,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n productId,\n spotLeverage,\n nonce,\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels orders through the engine\n * @param params\n */\n async cancelOrders(params: CancelOrdersParams) {\n return this.context.engineClient.cancelOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels orders through the engine and places a new one\n * @param params\n */\n async cancelAndPlace(params: CancelAndPlaceOrderParams) {\n const { productId, order, nonce, spotLeverage } = params.placeOrder;\n const subaccountOwner = this.getSubaccountOwnerIfNeeded(\n params.cancelOrders,\n );\n const chainId = this.getWalletClientChainIdIfNeeded(params.cancelOrders);\n\n return this.context.engineClient.cancelAndPlace({\n cancelOrders: {\n ...params.cancelOrders,\n subaccountOwner,\n verifyingAddr:\n params.cancelOrders.verifyingAddr ?? this.getEndpointAddress(),\n chainId,\n },\n placeOrder: {\n order: {\n ...order,\n subaccountOwner,\n },\n verifyingAddr: getOrderVerifyingAddress(productId),\n chainId,\n productId,\n spotLeverage,\n nonce,\n },\n requiredUnfilledAmount: params.requiredUnfilledAmount,\n placeRequiresUnfilled: params.placeRequiresUnfilled,\n });\n }\n\n /**\n * Cancels all orders for provided products through the engine.\n * @param params\n */\n async cancelProductOrders(params: CancelProductOrdersParams) {\n return this.context.engineClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Places a trigger order through the trigger service\n * @param params\n */\n async placeTriggerOrder(params: PlaceTriggerOrderParams) {\n return this.context.triggerClient.placeTriggerOrder({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n ...params.order,\n },\n });\n }\n\n /**\n * Places multiple trigger orders through the trigger service\n * @param params\n */\n async placeTriggerOrders(params: PlaceTriggerOrdersParams) {\n return this.context.triggerClient.placeTriggerOrders({\n orders: params.orders.map((orderParams) => {\n const { productId, order } = orderParams;\n return {\n ...orderParams,\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n ...order,\n },\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels all trigger orders for provided digests through the trigger service.\n * @param params\n */\n async cancelTriggerOrders(params: CancelTriggerOrdersParams) {\n return this.context.triggerClient.cancelTriggerOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels all trigger orders for provided products through the trigger service.\n * @param params\n */\n async cancelTriggerProductOrders(params: CancelTriggerProductOrdersParams) {\n return this.context.triggerClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAyC;AACzC,kBAA4B;AAarB,IAAM,mBAAN,cAA+B,wBAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhD,MAAM,WAAW,QAA0B;AACzC,UAAM,EAAE,IAAI,SAAS,WAAW,OAAO,MAAM,IAAI;AAEjD,WAAO,KAAK,QAAQ,aAAa,WAAW;AAAA,MAC1C,IAAI;AAAA,MACJ,OAAO;AAAA,QACL,GAAG;AAAA,QACH,iBAAiB,KAAK,2BAA2B,OAAO,KAAK;AAAA,MAC/D;AAAA,MACA,SAAS,KAAK,+BAA+B,MAAM;AAAA,MACnD,mBAAe,wCAAyB,OAAO,SAAS;AAAA,MACxD;AAAA,MACA,cAAc,OAAO;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YACJ,QAC2D;AAC3D,WAAO,KAAK,QAAQ,aAAa,YAAY;AAAA,MAC3C,QAAQ,OAAO,OAAO,IAAI,CAAC,gBAAgB;AACzC,cAAM,EAAE,IAAI,WAAW,OAAO,OAAO,aAAa,IAAI;AACtD,eAAO;AAAA,UACL;AAAA,UACA,OAAO;AAAA,YACL,GAAG;AAAA,YACH,iBAAiB,KAAK,2BAA2B,KAAK;AAAA,UACxD;AAAA,UACA,SAAS,KAAK,+BAA+B,WAAW;AAAA,UACxD,mBAAe,wCAAyB,SAAS;AAAA,UACjD;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD,eAAe,OAAO;AAAA,IACxB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,QAA4B;AAC7C,WAAO,KAAK,QAAQ,aAAa,aAAa;AAAA,MAC5C,GAAG;AAAA,MACH,SAAS,KAAK,+BAA+B,MAAM;AAAA,MACnD,iBAAiB,KAAK,2BAA2B,MAAM;AAAA,MACvD,eAAe,KAAK,mBAAmB;AAAA,IACzC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eAAe,QAAmC;AACtD,UAAM,EAAE,WAAW,OAAO,OAAO,aAAa,IAAI,OAAO;AACzD,UAAM,kBAAkB,KAAK;AAAA,MAC3B,OAAO;AAAA,IACT;AACA,UAAM,UAAU,KAAK,+BAA+B,OAAO,YAAY;AAEvE,WAAO,KAAK,QAAQ,aAAa,eAAe;AAAA,MAC9C,cAAc;AAAA,QACZ,GAAG,OAAO;AAAA,QACV;AAAA,QACA,eACE,OAAO,aAAa,iBAAiB,KAAK,mBAAmB;AAAA,QAC/D;AAAA,MACF;AAAA,MACA,YAAY;AAAA,QACV,OAAO;AAAA,UACL,GAAG;AAAA,UACH;AAAA,QACF;AAAA,QACA,mBAAe,wCAAyB,SAAS;AAAA,QACjD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,wBAAwB,OAAO;AAAA,MAC/B,uBAAuB,OAAO;AAAA,IAChC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBAAoB,QAAmC;AAC3D,WAAO,KAAK,QAAQ,aAAa,oBAAoB;AAAA,MACnD,GAAG;AAAA,MACH,SAAS,KAAK,+BAA+B,MAAM;AAAA,MACnD,iBAAiB,KAAK,2BAA2B,MAAM;AAAA,MACvD,eAAe,KAAK,mBAAmB;AAAA,IACzC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kBAAkB,QAAiC;AACvD,WAAO,KAAK,QAAQ,cAAc,kBAAkB;AAAA,MAClD,GAAG;AAAA,MACH,SAAS,KAAK,+BAA+B,MAAM;AAAA,MACnD,mBAAe,wCAAyB,OAAO,SAAS;AAAA,MACxD,OAAO;AAAA,QACL,iBAAiB,KAAK,2BAA2B,OAAO,KAAK;AAAA,QAC7D,GAAG,OAAO;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,mBAAmB,QAAkC;AACzD,WAAO,KAAK,QAAQ,cAAc,mBAAmB;AAAA,MACnD,QAAQ,OAAO,OAAO,IAAI,CAAC,gBAAgB;AACzC,cAAM,EAAE,WAAW,MAAM,IAAI;AAC7B,eAAO;AAAA,UACL,GAAG;AAAA,UACH,SAAS,KAAK,+BAA+B,WAAW;AAAA,UACxD,mBAAe,wCAAyB,SAAS;AAAA,UACjD,OAAO;AAAA,YACL,iBAAiB,KAAK,2BAA2B,KAAK;AAAA,YACtD,GAAG;AAAA,UACL;AAAA,QACF;AAAA,MACF,CAAC;AAAA,MACD,eAAe,OAAO;AAAA,IACxB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBAAoB,QAAmC;AAC3D,WAAO,KAAK,QAAQ,cAAc,oBAAoB;AAAA,MACpD,GAAG;AAAA,MACH,SAAS,KAAK,+BAA+B,MAAM;AAAA,MACnD,iBAAiB,KAAK,2BAA2B,MAAM;AAAA,MACvD,eAAe,OAAO,iBAAiB,KAAK,mBAAmB;AAAA,IACjE,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,2BAA2B,QAA0C;AACzE,WAAO,KAAK,QAAQ,cAAc,oBAAoB;AAAA,MACpD,GAAG;AAAA,MACH,SAAS,KAAK,+BAA+B,MAAM;AAAA,MACnD,iBAAiB,KAAK,2BAA2B,MAAM;AAAA,MACvD,eAAe,OAAO,iBAAiB,KAAK,mBAAmB;AAAA,IACjE,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -7,6 +7,7 @@ import '@nadohq/shared';
7
7
  import '../../context.cjs';
8
8
  import '@nadohq/indexer-client';
9
9
  import 'viem';
10
+ import 'bignumber.js';
10
11
  import '../types.cjs';
11
12
 
12
13
  declare class MarketExecuteAPI extends BaseNadoAPI {
@@ -7,6 +7,7 @@ import '@nadohq/shared';
7
7
  import '../../context.js';
8
8
  import '@nadohq/indexer-client';
9
9
  import 'viem';
10
+ import 'bignumber.js';
10
11
  import '../types.js';
11
12
 
12
13
  declare class MarketExecuteAPI extends BaseNadoAPI {
@@ -84,7 +84,9 @@ var MarketExecuteAPI = class extends BaseNadoAPI {
84
84
  productId,
85
85
  spotLeverage,
86
86
  nonce
87
- }
87
+ },
88
+ requiredUnfilledAmount: params.requiredUnfilledAmount,
89
+ placeRequiresUnfilled: params.placeRequiresUnfilled
88
90
  });
89
91
  }
90
92
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/apis/market/MarketExecuteAPI.ts"],"sourcesContent":["import { EngineServerExecuteSuccessResult } from '@nadohq/engine-client';\nimport { getOrderVerifyingAddress } from '@nadohq/shared';\nimport { BaseNadoAPI } from '../base';\nimport {\n CancelAndPlaceOrderParams,\n CancelOrdersParams,\n CancelProductOrdersParams,\n CancelTriggerOrdersParams,\n CancelTriggerProductOrdersParams,\n PlaceOrderParams,\n PlaceOrdersParams,\n PlaceTriggerOrderParams,\n PlaceTriggerOrdersParams,\n} from './types';\n\nexport class MarketExecuteAPI extends BaseNadoAPI {\n /**\n * Places an order through the engine\n * @param params\n */\n async placeOrder(params: PlaceOrderParams) {\n const { id: orderId, productId, order, nonce } = params;\n\n return this.context.engineClient.placeOrder({\n id: orderId,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n productId,\n spotLeverage: params.spotLeverage,\n nonce,\n });\n }\n\n /**\n * Places multiple orders through the engine\n * @param params\n */\n async placeOrders(\n params: PlaceOrdersParams,\n ): Promise<EngineServerExecuteSuccessResult<'place_orders'>> {\n return this.context.engineClient.placeOrders({\n orders: params.orders.map((orderParams) => {\n const { id, productId, order, nonce, spotLeverage } = orderParams;\n return {\n id,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n productId,\n spotLeverage,\n nonce,\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels orders through the engine\n * @param params\n */\n async cancelOrders(params: CancelOrdersParams) {\n return this.context.engineClient.cancelOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels orders through the engine and places a new one\n * @param params\n */\n async cancelAndPlace(params: CancelAndPlaceOrderParams) {\n const { productId, order, nonce, spotLeverage } = params.placeOrder;\n const subaccountOwner = this.getSubaccountOwnerIfNeeded(\n params.cancelOrders,\n );\n const chainId = this.getWalletClientChainIdIfNeeded(params.cancelOrders);\n\n return this.context.engineClient.cancelAndPlace({\n cancelOrders: {\n ...params.cancelOrders,\n subaccountOwner,\n verifyingAddr:\n params.cancelOrders.verifyingAddr ?? this.getEndpointAddress(),\n chainId,\n },\n placeOrder: {\n order: {\n ...order,\n subaccountOwner,\n },\n verifyingAddr: getOrderVerifyingAddress(productId),\n chainId,\n productId,\n spotLeverage,\n nonce,\n },\n });\n }\n\n /**\n * Cancels all orders for provided products through the engine.\n * @param params\n */\n async cancelProductOrders(params: CancelProductOrdersParams) {\n return this.context.engineClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Places a trigger order through the trigger service\n * @param params\n */\n async placeTriggerOrder(params: PlaceTriggerOrderParams) {\n return this.context.triggerClient.placeTriggerOrder({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n ...params.order,\n },\n });\n }\n\n /**\n * Places multiple trigger orders through the trigger service\n * @param params\n */\n async placeTriggerOrders(params: PlaceTriggerOrdersParams) {\n return this.context.triggerClient.placeTriggerOrders({\n orders: params.orders.map((orderParams) => {\n const { productId, order } = orderParams;\n return {\n ...orderParams,\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n ...order,\n },\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels all trigger orders for provided digests through the trigger service.\n * @param params\n */\n async cancelTriggerOrders(params: CancelTriggerOrdersParams) {\n return this.context.triggerClient.cancelTriggerOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels all trigger orders for provided products through the trigger service.\n * @param params\n */\n async cancelTriggerProductOrders(params: CancelTriggerProductOrdersParams) {\n return this.context.triggerClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/apis/market/MarketExecuteAPI.ts"],"sourcesContent":["import { EngineServerExecuteSuccessResult } from '@nadohq/engine-client';\nimport { getOrderVerifyingAddress } from '@nadohq/shared';\nimport { BaseNadoAPI } from '../base';\nimport {\n CancelAndPlaceOrderParams,\n CancelOrdersParams,\n CancelProductOrdersParams,\n CancelTriggerOrdersParams,\n CancelTriggerProductOrdersParams,\n PlaceOrderParams,\n PlaceOrdersParams,\n PlaceTriggerOrderParams,\n PlaceTriggerOrdersParams,\n} from './types';\n\nexport class MarketExecuteAPI extends BaseNadoAPI {\n /**\n * Places an order through the engine\n * @param params\n */\n async placeOrder(params: PlaceOrderParams) {\n const { id: orderId, productId, order, nonce } = params;\n\n return this.context.engineClient.placeOrder({\n id: orderId,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n productId,\n spotLeverage: params.spotLeverage,\n nonce,\n });\n }\n\n /**\n * Places multiple orders through the engine\n * @param params\n */\n async placeOrders(\n params: PlaceOrdersParams,\n ): Promise<EngineServerExecuteSuccessResult<'place_orders'>> {\n return this.context.engineClient.placeOrders({\n orders: params.orders.map((orderParams) => {\n const { id, productId, order, nonce, spotLeverage } = orderParams;\n return {\n id,\n order: {\n ...order,\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n },\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n productId,\n spotLeverage,\n nonce,\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels orders through the engine\n * @param params\n */\n async cancelOrders(params: CancelOrdersParams) {\n return this.context.engineClient.cancelOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels orders through the engine and places a new one\n * @param params\n */\n async cancelAndPlace(params: CancelAndPlaceOrderParams) {\n const { productId, order, nonce, spotLeverage } = params.placeOrder;\n const subaccountOwner = this.getSubaccountOwnerIfNeeded(\n params.cancelOrders,\n );\n const chainId = this.getWalletClientChainIdIfNeeded(params.cancelOrders);\n\n return this.context.engineClient.cancelAndPlace({\n cancelOrders: {\n ...params.cancelOrders,\n subaccountOwner,\n verifyingAddr:\n params.cancelOrders.verifyingAddr ?? this.getEndpointAddress(),\n chainId,\n },\n placeOrder: {\n order: {\n ...order,\n subaccountOwner,\n },\n verifyingAddr: getOrderVerifyingAddress(productId),\n chainId,\n productId,\n spotLeverage,\n nonce,\n },\n requiredUnfilledAmount: params.requiredUnfilledAmount,\n placeRequiresUnfilled: params.placeRequiresUnfilled,\n });\n }\n\n /**\n * Cancels all orders for provided products through the engine.\n * @param params\n */\n async cancelProductOrders(params: CancelProductOrdersParams) {\n return this.context.engineClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: this.getEndpointAddress(),\n });\n }\n\n /**\n * Places a trigger order through the trigger service\n * @param params\n */\n async placeTriggerOrder(params: PlaceTriggerOrderParams) {\n return this.context.triggerClient.placeTriggerOrder({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n verifyingAddr: getOrderVerifyingAddress(params.productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params.order),\n ...params.order,\n },\n });\n }\n\n /**\n * Places multiple trigger orders through the trigger service\n * @param params\n */\n async placeTriggerOrders(params: PlaceTriggerOrdersParams) {\n return this.context.triggerClient.placeTriggerOrders({\n orders: params.orders.map((orderParams) => {\n const { productId, order } = orderParams;\n return {\n ...orderParams,\n chainId: this.getWalletClientChainIdIfNeeded(orderParams),\n verifyingAddr: getOrderVerifyingAddress(productId),\n order: {\n subaccountOwner: this.getSubaccountOwnerIfNeeded(order),\n ...order,\n },\n };\n }),\n stopOnFailure: params.stopOnFailure,\n });\n }\n\n /**\n * Cancels all trigger orders for provided digests through the trigger service.\n * @param params\n */\n async cancelTriggerOrders(params: CancelTriggerOrdersParams) {\n return this.context.triggerClient.cancelTriggerOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n\n /**\n * Cancels all trigger orders for provided products through the trigger service.\n * @param params\n */\n async cancelTriggerProductOrders(params: CancelTriggerProductOrdersParams) {\n return this.context.triggerClient.cancelProductOrders({\n ...params,\n chainId: this.getWalletClientChainIdIfNeeded(params),\n subaccountOwner: this.getSubaccountOwnerIfNeeded(params),\n verifyingAddr: params.verifyingAddr ?? this.getEndpointAddress(),\n });\n }\n}\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/apis/market/types.ts"],"sourcesContent":["import {\n EngineCancelOrdersParams,\n EngineCancelProductOrdersParams,\n EngineOrderParams,\n EnginePlaceOrderParams,\n} from '@nadohq/engine-client';\nimport {\n TriggerCancelOrdersParams,\n TriggerCancelProductOrdersParams,\n TriggerListOrdersParams,\n TriggerPlaceOrderParams,\n} from '@nadohq/trigger-client';\nimport { OptionalSignatureParams, OptionalSubaccountOwner } from '../types';\n\ntype ClientOrderParams<T extends { order: EngineOrderParams }> = Omit<\n OptionalSignatureParams<T>,\n // Order is overridden to make subaccount owner optional\n | 'order'\n // Verifying address can be derived from product ID\n | 'verifyingAddr'\n> & {\n order: OptionalSubaccountOwner<EngineOrderParams>;\n};\n\nexport type PlaceOrderParams = ClientOrderParams<EnginePlaceOrderParams>;\n\nexport type PlaceOrdersParams = {\n orders: PlaceOrderParams[];\n stopOnFailure?: boolean;\n};\n\nexport type CancelOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<EngineCancelOrdersParams>\n>;\n\nexport type CancelProductOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<EngineCancelProductOrdersParams>\n>;\n\nexport interface CancelAndPlaceOrderParams {\n placeOrder: PlaceOrderParams;\n cancelOrders: CancelOrdersParams;\n}\n\nexport type PlaceTriggerOrderParams =\n ClientOrderParams<TriggerPlaceOrderParams>;\n\nexport interface PlaceTriggerOrdersParams {\n orders: PlaceTriggerOrderParams[];\n stopOnFailure?: boolean;\n}\n\nexport type CancelTriggerOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<TriggerCancelOrdersParams>\n>;\n\nexport type CancelTriggerProductOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<TriggerCancelProductOrdersParams>\n>;\n\nexport type GetTriggerOrdersParams =\n OptionalSignatureParams<TriggerListOrdersParams>;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/apis/market/types.ts"],"sourcesContent":["import {\n EngineCancelOrdersParams,\n EngineCancelProductOrdersParams,\n EngineOrderParams,\n EnginePlaceOrderParams,\n} from '@nadohq/engine-client';\nimport {\n TriggerCancelOrdersParams,\n TriggerCancelProductOrdersParams,\n TriggerListOrdersParams,\n TriggerPlaceOrderParams,\n} from '@nadohq/trigger-client';\nimport BigNumber from 'bignumber.js';\nimport { OptionalSignatureParams, OptionalSubaccountOwner } from '../types';\n\ntype ClientOrderParams<T extends { order: EngineOrderParams }> = Omit<\n OptionalSignatureParams<T>,\n // Order is overridden to make subaccount owner optional\n | 'order'\n // Verifying address can be derived from product ID\n | 'verifyingAddr'\n> & {\n order: OptionalSubaccountOwner<EngineOrderParams>;\n};\n\nexport type PlaceOrderParams = ClientOrderParams<EnginePlaceOrderParams>;\n\nexport type PlaceOrdersParams = {\n orders: PlaceOrderParams[];\n stopOnFailure?: boolean;\n};\n\nexport type CancelOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<EngineCancelOrdersParams>\n>;\n\nexport type CancelProductOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<EngineCancelProductOrdersParams>\n>;\n\nexport interface CancelAndPlaceOrderParams {\n placeOrder: PlaceOrderParams;\n cancelOrders: CancelOrdersParams;\n /**\n * The current unfilled amount of the order being cancelled. If provided, the cancel will\n * fail if the order's unfilled amount does not match this value.\n */\n requiredUnfilledAmount?: BigNumber;\n /**\n * If `true`, the cancel_and_place operation will fail if the order being cancelled has been\n * partially filled.\n */\n placeRequiresUnfilled?: boolean;\n}\n\nexport type PlaceTriggerOrderParams =\n ClientOrderParams<TriggerPlaceOrderParams>;\n\nexport interface PlaceTriggerOrdersParams {\n orders: PlaceTriggerOrderParams[];\n stopOnFailure?: boolean;\n}\n\nexport type CancelTriggerOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<TriggerCancelOrdersParams>\n>;\n\nexport type CancelTriggerProductOrdersParams = OptionalSignatureParams<\n OptionalSubaccountOwner<TriggerCancelProductOrdersParams>\n>;\n\nexport type GetTriggerOrdersParams =\n OptionalSignatureParams<TriggerListOrdersParams>;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import { EngineOrderParams, EnginePlaceOrderParams, EngineCancelOrdersParams, EngineCancelProductOrdersParams } from '@nadohq/engine-client';
2
2
  import { TriggerPlaceOrderParams, TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams } from '@nadohq/trigger-client';
3
+ import BigNumber__default from 'bignumber.js';
3
4
  import { OptionalSignatureParams, OptionalSubaccountOwner } from '../types.cjs';
4
5
 
5
6
  type ClientOrderParams<T extends {
@@ -17,6 +18,16 @@ type CancelProductOrdersParams = OptionalSignatureParams<OptionalSubaccountOwner
17
18
  interface CancelAndPlaceOrderParams {
18
19
  placeOrder: PlaceOrderParams;
19
20
  cancelOrders: CancelOrdersParams;
21
+ /**
22
+ * The current unfilled amount of the order being cancelled. If provided, the cancel will
23
+ * fail if the order's unfilled amount does not match this value.
24
+ */
25
+ requiredUnfilledAmount?: BigNumber__default;
26
+ /**
27
+ * If `true`, the cancel_and_place operation will fail if the order being cancelled has been
28
+ * partially filled.
29
+ */
30
+ placeRequiresUnfilled?: boolean;
20
31
  }
21
32
  type PlaceTriggerOrderParams = ClientOrderParams<TriggerPlaceOrderParams>;
22
33
  interface PlaceTriggerOrdersParams {
@@ -1,5 +1,6 @@
1
1
  import { EngineOrderParams, EnginePlaceOrderParams, EngineCancelOrdersParams, EngineCancelProductOrdersParams } from '@nadohq/engine-client';
2
2
  import { TriggerPlaceOrderParams, TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams } from '@nadohq/trigger-client';
3
+ import BigNumber__default from 'bignumber.js';
3
4
  import { OptionalSignatureParams, OptionalSubaccountOwner } from '../types.js';
4
5
 
5
6
  type ClientOrderParams<T extends {
@@ -17,6 +18,16 @@ type CancelProductOrdersParams = OptionalSignatureParams<OptionalSubaccountOwner
17
18
  interface CancelAndPlaceOrderParams {
18
19
  placeOrder: PlaceOrderParams;
19
20
  cancelOrders: CancelOrdersParams;
21
+ /**
22
+ * The current unfilled amount of the order being cancelled. If provided, the cancel will
23
+ * fail if the order's unfilled amount does not match this value.
24
+ */
25
+ requiredUnfilledAmount?: BigNumber__default;
26
+ /**
27
+ * If `true`, the cancel_and_place operation will fail if the order being cancelled has been
28
+ * partially filled.
29
+ */
30
+ placeRequiresUnfilled?: boolean;
20
31
  }
21
32
  type PlaceTriggerOrderParams = ClientOrderParams<TriggerPlaceOrderParams>;
22
33
  interface PlaceTriggerOrdersParams {
package/dist/client.cjs CHANGED
@@ -40,6 +40,7 @@ var NadoClient = class {
40
40
  setLinkedSigner(linkedSignerWalletClient) {
41
41
  this.context.linkedSignerWalletClient = linkedSignerWalletClient ?? void 0;
42
42
  this.context.engineClient.setLinkedSigner(linkedSignerWalletClient);
43
+ this.context.indexerClient.setLinkedSigner(linkedSignerWalletClient);
43
44
  this.context.triggerClient.setLinkedSigner(linkedSignerWalletClient);
44
45
  }
45
46
  /**
@@ -1 +1 @@
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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0B;AAC1B,kBAAwB;AACxB,kBAAwB;AACxB,wBAA8B;AAC9B,gBAA6B;AAC7B,qBAAuD;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,iBAAa;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,wBAAU,OAAO;AACnC,SAAK,aAAa,IAAI,gCAAc,OAAO;AAC3C,SAAK,OAAO,IAAI,oBAAQ,OAAO;AAC/B,SAAK,OAAO,IAAI,oBAAQ,OAAO;AAC/B,SAAK,KAAK,IAAI,uBAAa,OAAO;AAAA,EACpC;AACF;","names":[]}
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.indexerClient.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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA0B;AAC1B,kBAAwB;AACxB,kBAAwB;AACxB,wBAA8B;AAC9B,gBAA6B;AAC7B,qBAAuD;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;AACnE,SAAK,QAAQ,cAAc,gBAAgB,wBAAwB;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB,cAAiD;AAC/D,UAAM,iBAAa;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,wBAAU,OAAO;AACnC,SAAK,aAAa,IAAI,gCAAc,OAAO;AAC3C,SAAK,OAAO,IAAI,oBAAQ,OAAO;AAC/B,SAAK,OAAO,IAAI,oBAAQ,OAAO;AAC/B,SAAK,KAAK,IAAI,uBAAa,OAAO;AAAA,EACpC;AACF;","names":[]}
package/dist/client.d.cts CHANGED
@@ -11,10 +11,10 @@ import '@nadohq/trigger-client';
11
11
  import '@nadohq/engine-client';
12
12
  import './apis/base.cjs';
13
13
  import './apis/market/types.cjs';
14
+ import 'bignumber.js';
14
15
  import './apis/types.cjs';
15
16
  import './apis/market/MarketQueryAPI.cjs';
16
17
  import '@nadohq/indexer-client';
17
- import 'bignumber.js';
18
18
  import './apis/perp/PerpExecuteAPI.cjs';
19
19
  import './apis/perp/PerpQueryAPI.cjs';
20
20
  import './apis/spot/SpotExecuteAPI.cjs';
package/dist/client.d.ts CHANGED
@@ -11,10 +11,10 @@ import '@nadohq/trigger-client';
11
11
  import '@nadohq/engine-client';
12
12
  import './apis/base.js';
13
13
  import './apis/market/types.js';
14
+ import 'bignumber.js';
14
15
  import './apis/types.js';
15
16
  import './apis/market/MarketQueryAPI.js';
16
17
  import '@nadohq/indexer-client';
17
- import 'bignumber.js';
18
18
  import './apis/perp/PerpExecuteAPI.js';
19
19
  import './apis/perp/PerpQueryAPI.js';
20
20
  import './apis/spot/SpotExecuteAPI.js';
package/dist/client.js CHANGED
@@ -16,6 +16,7 @@ var NadoClient = class {
16
16
  setLinkedSigner(linkedSignerWalletClient) {
17
17
  this.context.linkedSignerWalletClient = linkedSignerWalletClient ?? void 0;
18
18
  this.context.engineClient.setLinkedSigner(linkedSignerWalletClient);
19
+ this.context.indexerClient.setLinkedSigner(linkedSignerWalletClient);
19
20
  this.context.triggerClient.setLinkedSigner(linkedSignerWalletClient);
20
21
  }
21
22
  /**
@@ -1 +1 @@
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":[]}
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.indexerClient.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;AACnE,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
@@ -97,7 +97,8 @@ function createClientContext(opts, accountOpts) {
97
97
  }),
98
98
  indexerClient: new import_indexer_client.IndexerClient({
99
99
  url: indexerEndpoint,
100
- walletClient
100
+ walletClient,
101
+ linkedSignerWalletClient
101
102
  }),
102
103
  triggerClient: new import_trigger_client.TriggerClient({
103
104
  url: triggerEndpoint,
@@ -1 +1 @@
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":[]}
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 linkedSignerWalletClient,\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,MACA;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.js CHANGED
@@ -82,7 +82,8 @@ function createClientContext(opts, accountOpts) {
82
82
  }),
83
83
  indexerClient: new IndexerClient({
84
84
  url: indexerEndpoint,
85
- walletClient
85
+ walletClient,
86
+ linkedSignerWalletClient
86
87
  }),
87
88
  triggerClient: new TriggerClient({
88
89
  url: triggerEndpoint,
@@ -1 +1 @@
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":[]}
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 linkedSignerWalletClient,\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,MACA;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":[]}
@@ -19,9 +19,9 @@ import './apis/ws/WebSocketQueryAPI.cjs';
19
19
  import './apis/ws/WebSocketSubscriptionAPI.cjs';
20
20
  import 'ts-mixer/dist/types/types';
21
21
  import './apis/market/MarketExecuteAPI.cjs';
22
+ import 'bignumber.js';
22
23
  import './apis/types.cjs';
23
24
  import './apis/market/MarketQueryAPI.cjs';
24
- import 'bignumber.js';
25
25
  import './apis/perp/PerpExecuteAPI.cjs';
26
26
  import './apis/perp/PerpQueryAPI.cjs';
27
27
  import './apis/spot/SpotExecuteAPI.cjs';
@@ -19,9 +19,9 @@ import './apis/ws/WebSocketQueryAPI.js';
19
19
  import './apis/ws/WebSocketSubscriptionAPI.js';
20
20
  import 'ts-mixer/dist/types/types';
21
21
  import './apis/market/MarketExecuteAPI.js';
22
+ import 'bignumber.js';
22
23
  import './apis/types.js';
23
24
  import './apis/market/MarketQueryAPI.js';
24
- import 'bignumber.js';
25
25
  import './apis/perp/PerpExecuteAPI.js';
26
26
  import './apis/perp/PerpQueryAPI.js';
27
27
  import './apis/spot/SpotExecuteAPI.js';
package/dist/index.d.cts CHANGED
@@ -20,9 +20,9 @@ import './apis/ws/WebSocketQueryAPI.cjs';
20
20
  import './apis/ws/WebSocketSubscriptionAPI.cjs';
21
21
  import 'ts-mixer/dist/types/types';
22
22
  import './apis/market/MarketExecuteAPI.cjs';
23
+ import 'bignumber.js';
23
24
  import './apis/types.cjs';
24
25
  import './apis/market/MarketQueryAPI.cjs';
25
- import 'bignumber.js';
26
26
  import './apis/perp/PerpExecuteAPI.cjs';
27
27
  import './apis/perp/PerpQueryAPI.cjs';
28
28
  import './apis/spot/SpotExecuteAPI.cjs';
package/dist/index.d.ts CHANGED
@@ -20,9 +20,9 @@ import './apis/ws/WebSocketQueryAPI.js';
20
20
  import './apis/ws/WebSocketSubscriptionAPI.js';
21
21
  import 'ts-mixer/dist/types/types';
22
22
  import './apis/market/MarketExecuteAPI.js';
23
+ import 'bignumber.js';
23
24
  import './apis/types.js';
24
25
  import './apis/market/MarketQueryAPI.js';
25
- import 'bignumber.js';
26
26
  import './apis/perp/PerpExecuteAPI.js';
27
27
  import './apis/perp/PerpQueryAPI.js';
28
28
  import './apis/spot/SpotExecuteAPI.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadohq/client",
3
- "version": "0.11.0",
3
+ "version": "0.13.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,10 +41,10 @@
41
41
  "module": "./dist/index.js",
42
42
  "types": "./dist/index.d.ts",
43
43
  "dependencies": {
44
- "@nadohq/engine-client": "^0.11.0",
45
- "@nadohq/indexer-client": "^0.11.0",
46
- "@nadohq/shared": "^0.11.0",
47
- "@nadohq/trigger-client": "^0.11.0",
44
+ "@nadohq/engine-client": "^0.13.0",
45
+ "@nadohq/indexer-client": "^0.13.0",
46
+ "@nadohq/shared": "^0.13.0",
47
+ "@nadohq/trigger-client": "^0.13.0",
48
48
  "ts-mixer": "6.0.4"
49
49
  },
50
50
  "peerDependencies": {
@@ -55,5 +55,5 @@
55
55
  "bignumber.js": "10.0.2",
56
56
  "viem": "2.45.3"
57
57
  },
58
- "gitHead": "67e111a1c7b4c989a686784a564f3b246b6b1caf"
58
+ "gitHead": "e1ee8f9301cf6bd6b0775d505e7606a80eed1458"
59
59
  }
@@ -105,6 +105,8 @@ export class MarketExecuteAPI extends BaseNadoAPI {
105
105
  spotLeverage,
106
106
  nonce,
107
107
  },
108
+ requiredUnfilledAmount: params.requiredUnfilledAmount,
109
+ placeRequiresUnfilled: params.placeRequiresUnfilled,
108
110
  });
109
111
  }
110
112
 
@@ -10,6 +10,7 @@ import {
10
10
  TriggerListOrdersParams,
11
11
  TriggerPlaceOrderParams,
12
12
  } from '@nadohq/trigger-client';
13
+ import BigNumber from 'bignumber.js';
13
14
  import { OptionalSignatureParams, OptionalSubaccountOwner } from '../types';
14
15
 
15
16
  type ClientOrderParams<T extends { order: EngineOrderParams }> = Omit<
@@ -40,6 +41,16 @@ export type CancelProductOrdersParams = OptionalSignatureParams<
40
41
  export interface CancelAndPlaceOrderParams {
41
42
  placeOrder: PlaceOrderParams;
42
43
  cancelOrders: CancelOrdersParams;
44
+ /**
45
+ * The current unfilled amount of the order being cancelled. If provided, the cancel will
46
+ * fail if the order's unfilled amount does not match this value.
47
+ */
48
+ requiredUnfilledAmount?: BigNumber;
49
+ /**
50
+ * If `true`, the cancel_and_place operation will fail if the order being cancelled has been
51
+ * partially filled.
52
+ */
53
+ placeRequiresUnfilled?: boolean;
43
54
  }
44
55
 
45
56
  export type PlaceTriggerOrderParams =
package/src/client.ts CHANGED
@@ -31,6 +31,7 @@ export class NadoClient {
31
31
  this.context.linkedSignerWalletClient =
32
32
  linkedSignerWalletClient ?? undefined;
33
33
  this.context.engineClient.setLinkedSigner(linkedSignerWalletClient);
34
+ this.context.indexerClient.setLinkedSigner(linkedSignerWalletClient);
34
35
  this.context.triggerClient.setLinkedSigner(linkedSignerWalletClient);
35
36
  }
36
37
 
package/src/context.ts CHANGED
@@ -135,6 +135,7 @@ export function createClientContext(
135
135
  indexerClient: new IndexerClient({
136
136
  url: indexerEndpoint,
137
137
  walletClient,
138
+ linkedSignerWalletClient,
138
139
  }),
139
140
  triggerClient: new TriggerClient({
140
141
  url: triggerEndpoint,