@nadohq/trigger-client 0.1.0-alpha.7 → 0.1.0-alpha.8

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.
@@ -40,8 +40,6 @@ type TriggerCriteria = {
40
40
  };
41
41
  type TriggerCriteriaType = TriggerCriteria['type'];
42
42
  type TriggerOrderStatus = {
43
- type: 'pending';
44
- } | {
45
43
  type: 'cancelled';
46
44
  reason: string;
47
45
  } | {
@@ -50,6 +48,20 @@ type TriggerOrderStatus = {
50
48
  } | {
51
49
  type: 'internal_error';
52
50
  error: string;
51
+ } | {
52
+ type: 'triggering';
53
+ } | {
54
+ type: 'waiting_price';
55
+ } | {
56
+ type: 'waiting_dependency';
57
+ } | {
58
+ type: 'twap_executing';
59
+ currentExecution: number;
60
+ totalExecutions: number;
61
+ } | {
62
+ type: 'twap_completed';
63
+ executed: number;
64
+ total: number;
53
65
  };
54
66
 
55
67
  export type { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus };
@@ -40,8 +40,6 @@ type TriggerCriteria = {
40
40
  };
41
41
  type TriggerCriteriaType = TriggerCriteria['type'];
42
42
  type TriggerOrderStatus = {
43
- type: 'pending';
44
- } | {
45
43
  type: 'cancelled';
46
44
  reason: string;
47
45
  } | {
@@ -50,6 +48,20 @@ type TriggerOrderStatus = {
50
48
  } | {
51
49
  type: 'internal_error';
52
50
  error: string;
51
+ } | {
52
+ type: 'triggering';
53
+ } | {
54
+ type: 'waiting_price';
55
+ } | {
56
+ type: 'waiting_dependency';
57
+ } | {
58
+ type: 'twap_executing';
59
+ currentExecution: number;
60
+ totalExecutions: number;
61
+ } | {
62
+ type: 'twap_completed';
63
+ executed: number;
64
+ total: number;
53
65
  };
54
66
 
55
67
  export type { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/clientTypes.ts"],"sourcesContent":["import {\n EIP712CancelOrdersParams,\n EIP712CancelProductOrdersParams,\n OrderAppendix,\n Subaccount,\n} from '@nadohq/shared';\nimport { EngineOrderParams } from '@nadohq/engine-client';\nimport { BigDecimal } from '@nadohq/shared';\nimport { TriggerCriteria, TriggerOrderStatus } from './clientModelTypes';\nimport {\n TriggerServerOrder,\n TriggerServerTriggerTypeFilter,\n} from './serverQueryTypes';\n\ntype WithOptionalNonce<T> = Omit<T, 'nonce'> & { nonce?: string };\n\ninterface SignatureParams {\n /**\n * Address derived from productId for placement (see getOrderVerifyingAddr)\n * endpoint address for cancellation & listing\n */\n verifyingAddr: string;\n chainId: number;\n}\n\n/**\n * Executes\n */\n\nexport interface TriggerPlaceOrderParams extends SignatureParams {\n id?: number;\n productId: number;\n order: EngineOrderParams;\n triggerCriteria: TriggerCriteria;\n // If not given, engine defaults to true (leverage/borrow enabled)\n spotLeverage?: boolean;\n // For isolated orders, this specifies whether margin can be borrowed (i.e. whether the cross account can have a negative USDC balance)\n borrowMargin?: boolean;\n digest?: string;\n nonce?: string;\n}\n\nexport type TriggerCancelOrdersParams = SignatureParams &\n WithOptionalNonce<EIP712CancelOrdersParams>;\n\nexport type TriggerCancelProductOrdersParams = SignatureParams &\n WithOptionalNonce<EIP712CancelProductOrdersParams>;\n\n/**\n * Queries\n */\n\nexport interface TriggerListOrdersParams extends Subaccount, SignatureParams {\n // In millis, defaults to 90s in the future\n recvTime?: BigDecimal;\n // If not given, defaults to all products\n productId?: number;\n // Pending trigger orders only, ignores cancelled & triggered orders\n pending: boolean;\n // In seconds\n maxUpdateTimeInclusive?: number;\n // When provided, the associated trigger orders are returned regardless of other filters\n digests?: string[];\n limit?: number;\n // Filter by trigger types\n triggerTypes?: TriggerServerTriggerTypeFilter[];\n // Filter by reduce-only orders\n reduceOnly?: boolean;\n}\n\nexport interface TriggerOrder {\n productId: number;\n triggerCriteria: TriggerCriteria;\n price: BigDecimal;\n amount: BigDecimal;\n expiration: number;\n nonce: string;\n digest: string;\n appendix: OrderAppendix;\n}\n\nexport interface TriggerOrderInfo {\n order: TriggerOrder;\n serverOrder: TriggerServerOrder;\n status: TriggerOrderStatus;\n updatedAt: number;\n}\n\nexport interface TriggerListOrdersResponse {\n orders: TriggerOrderInfo[];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/types/clientTypes.ts"],"sourcesContent":["import {\n EIP712CancelOrdersParams,\n EIP712CancelProductOrdersParams,\n OrderAppendix,\n Subaccount,\n} from '@nadohq/shared';\nimport {\n EngineOrderParams,\n EngineServerExecuteResult,\n} from '@nadohq/engine-client';\nimport { BigDecimal } from '@nadohq/shared';\nimport { TriggerCriteria, TriggerOrderStatus } from './clientModelTypes';\nimport {\n TriggerServerOrder,\n TriggerServerTriggerTypeFilter,\n} from './serverQueryTypes';\n\ntype WithOptionalNonce<T> = Omit<T, 'nonce'> & { nonce?: string };\n\ninterface SignatureParams {\n /**\n * Address derived from productId for placement (see getOrderVerifyingAddr)\n * endpoint address for cancellation & listing\n */\n verifyingAddr: string;\n chainId: number;\n}\n\n/**\n * Executes\n */\n\nexport interface TriggerPlaceOrderParams extends SignatureParams {\n id?: number;\n productId: number;\n order: EngineOrderParams;\n triggerCriteria: TriggerCriteria;\n // If not given, engine defaults to true (leverage/borrow enabled)\n spotLeverage?: boolean;\n // For isolated orders, this specifies whether margin can be borrowed (i.e. whether the cross account can have a negative USDC balance)\n borrowMargin?: boolean;\n digest?: string;\n nonce?: string;\n}\n\nexport type TriggerCancelOrdersParams = SignatureParams &\n WithOptionalNonce<EIP712CancelOrdersParams>;\n\nexport type TriggerCancelProductOrdersParams = SignatureParams &\n WithOptionalNonce<EIP712CancelProductOrdersParams>;\n\n/**\n * Queries\n */\n\nexport interface TriggerListOrdersParams extends Subaccount, SignatureParams {\n // In millis, defaults to 90s in the future\n recvTime?: BigDecimal;\n // If not given, defaults to all products\n productId?: number;\n // Pending trigger orders only, ignores cancelled & triggered orders\n pending: boolean;\n // In seconds\n maxUpdateTimeInclusive?: number;\n // When provided, the associated trigger orders are returned regardless of other filters\n digests?: string[];\n limit?: number;\n // Filter by trigger types\n triggerTypes?: TriggerServerTriggerTypeFilter[];\n // Filter by reduce-only orders\n reduceOnly?: boolean;\n}\n\nexport interface TriggerOrder {\n productId: number;\n triggerCriteria: TriggerCriteria;\n price: BigDecimal;\n amount: BigDecimal;\n expiration: number;\n nonce: string;\n digest: string;\n appendix: OrderAppendix;\n}\n\nexport interface TriggerOrderInfo {\n order: TriggerOrder;\n serverOrder: TriggerServerOrder;\n status: TriggerOrderStatus;\n updatedAt: number;\n}\n\nexport interface TriggerListOrdersResponse {\n orders: TriggerOrderInfo[];\n}\n\nexport interface TriggerListTwapExecutionsParams {\n digest: string;\n}\n\nexport type TwapExecutionStatus =\n | {\n type: 'pending';\n }\n | {\n type: 'executed';\n executedTime: number;\n executeResponse: EngineServerExecuteResult;\n }\n | {\n type: 'failed';\n error: string;\n }\n | {\n type: 'cancelled';\n reason: string;\n };\n\nexport interface TwapExecutionInfo {\n executionId: number;\n scheduledTime: number;\n status: TwapExecutionStatus;\n updatedAt: number;\n}\n\nexport interface TriggerListTwapExecutionsResponse {\n executions: TwapExecutionInfo[];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import { EIP712CancelOrdersParams, EIP712CancelProductOrdersParams, Subaccount, BigDecimal, OrderAppendix } from '@nadohq/shared';
2
- import { EngineOrderParams } from '@nadohq/engine-client';
2
+ import { EngineOrderParams, EngineServerExecuteResult } from '@nadohq/engine-client';
3
3
  import { TriggerCriteria, TriggerOrderStatus } from './clientModelTypes.cjs';
4
4
  import { TriggerServerTriggerTypeFilter, TriggerServerOrder } from './serverQueryTypes.cjs';
5
5
  import './serverExecuteTypes.cjs';
@@ -63,5 +63,30 @@ interface TriggerOrderInfo {
63
63
  interface TriggerListOrdersResponse {
64
64
  orders: TriggerOrderInfo[];
65
65
  }
66
+ interface TriggerListTwapExecutionsParams {
67
+ digest: string;
68
+ }
69
+ type TwapExecutionStatus = {
70
+ type: 'pending';
71
+ } | {
72
+ type: 'executed';
73
+ executedTime: number;
74
+ executeResponse: EngineServerExecuteResult;
75
+ } | {
76
+ type: 'failed';
77
+ error: string;
78
+ } | {
79
+ type: 'cancelled';
80
+ reason: string;
81
+ };
82
+ interface TwapExecutionInfo {
83
+ executionId: number;
84
+ scheduledTime: number;
85
+ status: TwapExecutionStatus;
86
+ updatedAt: number;
87
+ }
88
+ interface TriggerListTwapExecutionsResponse {
89
+ executions: TwapExecutionInfo[];
90
+ }
66
91
 
67
- export type { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams };
92
+ export type { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerListTwapExecutionsParams, TriggerListTwapExecutionsResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams, TwapExecutionInfo, TwapExecutionStatus };
@@ -1,5 +1,5 @@
1
1
  import { EIP712CancelOrdersParams, EIP712CancelProductOrdersParams, Subaccount, BigDecimal, OrderAppendix } from '@nadohq/shared';
2
- import { EngineOrderParams } from '@nadohq/engine-client';
2
+ import { EngineOrderParams, EngineServerExecuteResult } from '@nadohq/engine-client';
3
3
  import { TriggerCriteria, TriggerOrderStatus } from './clientModelTypes.js';
4
4
  import { TriggerServerTriggerTypeFilter, TriggerServerOrder } from './serverQueryTypes.js';
5
5
  import './serverExecuteTypes.js';
@@ -63,5 +63,30 @@ interface TriggerOrderInfo {
63
63
  interface TriggerListOrdersResponse {
64
64
  orders: TriggerOrderInfo[];
65
65
  }
66
+ interface TriggerListTwapExecutionsParams {
67
+ digest: string;
68
+ }
69
+ type TwapExecutionStatus = {
70
+ type: 'pending';
71
+ } | {
72
+ type: 'executed';
73
+ executedTime: number;
74
+ executeResponse: EngineServerExecuteResult;
75
+ } | {
76
+ type: 'failed';
77
+ error: string;
78
+ } | {
79
+ type: 'cancelled';
80
+ reason: string;
81
+ };
82
+ interface TwapExecutionInfo {
83
+ executionId: number;
84
+ scheduledTime: number;
85
+ status: TwapExecutionStatus;
86
+ updatedAt: number;
87
+ }
88
+ interface TriggerListTwapExecutionsResponse {
89
+ executions: TwapExecutionInfo[];
90
+ }
66
91
 
67
- export type { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams };
92
+ export type { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerListTwapExecutionsParams, TriggerListTwapExecutionsResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams, TwapExecutionInfo, TwapExecutionStatus };
@@ -1,8 +1,8 @@
1
1
  export { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus } from './clientModelTypes.cjs';
2
- export { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams } from './clientTypes.cjs';
2
+ export { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerListTwapExecutionsParams, TriggerListTwapExecutionsResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams, TwapExecutionInfo, TwapExecutionStatus } from './clientTypes.cjs';
3
3
  export { TriggerServerDependency, TriggerServerPriceRequirement, TriggerServerPriceTriggerCriteria, TriggerServerTimeTriggerCriteria, TriggerServerTriggerCriteria } from './serverModelTypes.cjs';
4
4
  export { TriggerServerCancelOrdersParams, TriggerServerCancelProductOrdersParams, TriggerServerExecuteRequestByType, TriggerServerExecuteRequestType, TriggerServerExecuteResult, TriggerServerExecuteSuccessResult, TriggerServerPlaceOrderParams } from './serverExecuteTypes.cjs';
5
- export { TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter } from './serverQueryTypes.cjs';
5
+ export { TriggerServerCancelReason, TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerListTwapExecutionsParams, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter, TriggerServerTwapExecutionInfo, TriggerServerTwapExecutionStatus, TriggerServerTwapExecutionsResponse } from './serverQueryTypes.cjs';
6
6
  export { TriggerServerFailureError } from './TriggerServerFailureError.cjs';
7
7
  import '@nadohq/engine-client';
8
8
  import '@nadohq/shared';
@@ -1,8 +1,8 @@
1
1
  export { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus } from './clientModelTypes.js';
2
- export { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams } from './clientTypes.js';
2
+ export { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerListTwapExecutionsParams, TriggerListTwapExecutionsResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams, TwapExecutionInfo, TwapExecutionStatus } from './clientTypes.js';
3
3
  export { TriggerServerDependency, TriggerServerPriceRequirement, TriggerServerPriceTriggerCriteria, TriggerServerTimeTriggerCriteria, TriggerServerTriggerCriteria } from './serverModelTypes.js';
4
4
  export { TriggerServerCancelOrdersParams, TriggerServerCancelProductOrdersParams, TriggerServerExecuteRequestByType, TriggerServerExecuteRequestType, TriggerServerExecuteResult, TriggerServerExecuteSuccessResult, TriggerServerPlaceOrderParams } from './serverExecuteTypes.js';
5
- export { TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter } from './serverQueryTypes.js';
5
+ export { TriggerServerCancelReason, TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerListTwapExecutionsParams, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter, TriggerServerTwapExecutionInfo, TriggerServerTwapExecutionStatus, TriggerServerTwapExecutionsResponse } from './serverQueryTypes.js';
6
6
  export { TriggerServerFailureError } from './TriggerServerFailureError.js';
7
7
  import '@nadohq/engine-client';
8
8
  import '@nadohq/shared';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/serverQueryTypes.ts"],"sourcesContent":["import { EIP712ListTriggerOrdersValues, SignedTx } from '@nadohq/shared';\nimport { EngineServerExecuteResult } from '@nadohq/engine-client';\nimport { TriggerServerPlaceOrderParams } from './serverExecuteTypes';\n\nexport type TriggerServerOrderStatus =\n | 'pending'\n | {\n // Result from sending to engine\n triggered: EngineServerExecuteResult;\n }\n | {\n // Reason string\n cancelled: string;\n }\n | {\n // Error message\n internal_error: string;\n };\n\n/**\n * Request types\n */\n\nexport type TriggerServerTriggerTypeFilter = 'price_trigger' | 'twap';\n\nexport interface TriggerServerListTriggerOrdersParams\n extends SignedTx<EIP712ListTriggerOrdersValues> {\n pending: boolean;\n // If not given, defaults to all products\n product_id?: number;\n max_update_time?: number;\n digests?: string[];\n limit?: number;\n trigger_types?: TriggerServerTriggerTypeFilter[];\n reduce_only?: boolean;\n}\n\nexport interface TriggerServerQueryRequestByType {\n list_trigger_orders: TriggerServerListTriggerOrdersParams;\n}\n\nexport type TriggerServerQueryRequestType =\n keyof TriggerServerQueryRequestByType;\n\n/**\n * Response types\n */\n\nexport type TriggerServerOrder = TriggerServerPlaceOrderParams & {\n // Digest is always populated here\n digest: string;\n};\n\nexport interface TriggerServerOrderInfo {\n order: TriggerServerOrder;\n status: TriggerServerOrderStatus;\n updated_at: number;\n}\n\nexport interface TriggerServerListTriggerOrdersResponse {\n orders: TriggerServerOrderInfo[];\n}\n\nexport interface TriggerServerQueryResponseByType {\n list_trigger_orders: TriggerServerListTriggerOrdersResponse;\n}\n\nexport interface TriggerServerQuerySuccessResponse<\n TQueryType extends\n keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType,\n> {\n status: 'success';\n data: TriggerServerQueryResponseByType[TQueryType];\n}\n\nexport interface TriggerServerQueryFailureResponse {\n status: 'failure';\n error: string;\n error_code: number;\n}\n\nexport type TriggerServerQueryResponse<\n TQueryType extends\n keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType,\n> =\n | TriggerServerQuerySuccessResponse<TQueryType>\n | TriggerServerQueryFailureResponse;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/types/serverQueryTypes.ts"],"sourcesContent":["import { EIP712ListTriggerOrdersValues, SignedTx } from '@nadohq/shared';\nimport { EngineServerExecuteResult } from '@nadohq/engine-client';\nimport { TriggerServerPlaceOrderParams } from './serverExecuteTypes';\n\nexport type TriggerServerOrderStatus =\n | {\n cancelled: TriggerServerCancelReason;\n }\n | {\n triggered: EngineServerExecuteResult;\n }\n | {\n internal_error: string;\n }\n | 'triggering'\n | 'waiting_price'\n | 'waiting_dependency'\n | {\n twap_executing: {\n current_execution: number;\n total_executions: number;\n };\n }\n | {\n twap_completed: {\n executed: number;\n total: number;\n };\n };\n\n/**\n * Request types\n */\n\nexport type TriggerServerTriggerTypeFilter = 'price_trigger' | 'time_trigger';\n\nexport interface TriggerServerListTriggerOrdersParams\n extends SignedTx<EIP712ListTriggerOrdersValues> {\n pending: boolean;\n // If not given, defaults to all products\n product_id?: number;\n max_update_time?: number;\n digests?: string[];\n limit?: number;\n trigger_types?: TriggerServerTriggerTypeFilter[];\n reduce_only?: boolean;\n}\n\nexport interface TriggerServerListTwapExecutionsParams {\n digest: string;\n}\n\nexport interface TriggerServerQueryRequestByType {\n list_trigger_orders: TriggerServerListTriggerOrdersParams;\n list_twap_executions: TriggerServerListTwapExecutionsParams;\n}\n\nexport type TriggerServerQueryRequestType =\n keyof TriggerServerQueryRequestByType;\n\n/**\n * Response types\n */\n\nexport type TriggerServerOrder = TriggerServerPlaceOrderParams & {\n // Digest is always populated here\n digest: string;\n};\n\nexport interface TriggerServerOrderInfo {\n order: TriggerServerOrder;\n status: TriggerServerOrderStatus;\n updated_at: number;\n}\n\nexport interface TriggerServerListTriggerOrdersResponse {\n orders: TriggerServerOrderInfo[];\n}\n\nexport type TriggerServerCancelReason =\n | 'user_requested'\n | 'linked_signer_changed'\n | 'expired'\n | 'account_health'\n | 'isolated_subaccount_closed'\n | 'dependent_order_cancelled';\n\nexport type TriggerServerTwapExecutionStatus =\n | 'pending'\n | {\n executed: {\n executed_time: number;\n execute_response: EngineServerExecuteResult;\n };\n }\n | {\n failed: string;\n }\n | {\n cancelled: TriggerServerCancelReason;\n };\n\nexport interface TriggerServerTwapExecutionInfo {\n execution_id: number;\n scheduled_time: number;\n status: TriggerServerTwapExecutionStatus;\n updated_at: number;\n}\n\nexport interface TriggerServerTwapExecutionsResponse {\n executions: TriggerServerTwapExecutionInfo[];\n}\n\nexport interface TriggerServerQueryResponseByType {\n list_trigger_orders: TriggerServerListTriggerOrdersResponse;\n list_twap_executions: TriggerServerTwapExecutionsResponse;\n}\n\nexport interface TriggerServerQuerySuccessResponse<\n TQueryType extends\n keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType,\n> {\n status: 'success';\n data: TriggerServerQueryResponseByType[TQueryType];\n}\n\nexport interface TriggerServerQueryFailureResponse {\n status: 'failure';\n error: string;\n error_code: number;\n}\n\nexport type TriggerServerQueryResponse<\n TQueryType extends\n keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType,\n> =\n | TriggerServerQuerySuccessResponse<TQueryType>\n | TriggerServerQueryFailureResponse;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -3,17 +3,27 @@ import { EngineServerExecuteResult } from '@nadohq/engine-client';
3
3
  import { TriggerServerPlaceOrderParams } from './serverExecuteTypes.cjs';
4
4
  import './serverModelTypes.cjs';
5
5
 
6
- type TriggerServerOrderStatus = 'pending' | {
7
- triggered: EngineServerExecuteResult;
6
+ type TriggerServerOrderStatus = {
7
+ cancelled: TriggerServerCancelReason;
8
8
  } | {
9
- cancelled: string;
9
+ triggered: EngineServerExecuteResult;
10
10
  } | {
11
11
  internal_error: string;
12
+ } | 'triggering' | 'waiting_price' | 'waiting_dependency' | {
13
+ twap_executing: {
14
+ current_execution: number;
15
+ total_executions: number;
16
+ };
17
+ } | {
18
+ twap_completed: {
19
+ executed: number;
20
+ total: number;
21
+ };
12
22
  };
13
23
  /**
14
24
  * Request types
15
25
  */
16
- type TriggerServerTriggerTypeFilter = 'price_trigger' | 'twap';
26
+ type TriggerServerTriggerTypeFilter = 'price_trigger' | 'time_trigger';
17
27
  interface TriggerServerListTriggerOrdersParams extends SignedTx<EIP712ListTriggerOrdersValues> {
18
28
  pending: boolean;
19
29
  product_id?: number;
@@ -23,8 +33,12 @@ interface TriggerServerListTriggerOrdersParams extends SignedTx<EIP712ListTrigge
23
33
  trigger_types?: TriggerServerTriggerTypeFilter[];
24
34
  reduce_only?: boolean;
25
35
  }
36
+ interface TriggerServerListTwapExecutionsParams {
37
+ digest: string;
38
+ }
26
39
  interface TriggerServerQueryRequestByType {
27
40
  list_trigger_orders: TriggerServerListTriggerOrdersParams;
41
+ list_twap_executions: TriggerServerListTwapExecutionsParams;
28
42
  }
29
43
  type TriggerServerQueryRequestType = keyof TriggerServerQueryRequestByType;
30
44
  /**
@@ -41,8 +55,29 @@ interface TriggerServerOrderInfo {
41
55
  interface TriggerServerListTriggerOrdersResponse {
42
56
  orders: TriggerServerOrderInfo[];
43
57
  }
58
+ type TriggerServerCancelReason = 'user_requested' | 'linked_signer_changed' | 'expired' | 'account_health' | 'isolated_subaccount_closed' | 'dependent_order_cancelled';
59
+ type TriggerServerTwapExecutionStatus = 'pending' | {
60
+ executed: {
61
+ executed_time: number;
62
+ execute_response: EngineServerExecuteResult;
63
+ };
64
+ } | {
65
+ failed: string;
66
+ } | {
67
+ cancelled: TriggerServerCancelReason;
68
+ };
69
+ interface TriggerServerTwapExecutionInfo {
70
+ execution_id: number;
71
+ scheduled_time: number;
72
+ status: TriggerServerTwapExecutionStatus;
73
+ updated_at: number;
74
+ }
75
+ interface TriggerServerTwapExecutionsResponse {
76
+ executions: TriggerServerTwapExecutionInfo[];
77
+ }
44
78
  interface TriggerServerQueryResponseByType {
45
79
  list_trigger_orders: TriggerServerListTriggerOrdersResponse;
80
+ list_twap_executions: TriggerServerTwapExecutionsResponse;
46
81
  }
47
82
  interface TriggerServerQuerySuccessResponse<TQueryType extends keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType> {
48
83
  status: 'success';
@@ -55,4 +90,4 @@ interface TriggerServerQueryFailureResponse {
55
90
  }
56
91
  type TriggerServerQueryResponse<TQueryType extends keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType> = TriggerServerQuerySuccessResponse<TQueryType> | TriggerServerQueryFailureResponse;
57
92
 
58
- export type { TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter };
93
+ export type { TriggerServerCancelReason, TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerListTwapExecutionsParams, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter, TriggerServerTwapExecutionInfo, TriggerServerTwapExecutionStatus, TriggerServerTwapExecutionsResponse };
@@ -3,17 +3,27 @@ import { EngineServerExecuteResult } from '@nadohq/engine-client';
3
3
  import { TriggerServerPlaceOrderParams } from './serverExecuteTypes.js';
4
4
  import './serverModelTypes.js';
5
5
 
6
- type TriggerServerOrderStatus = 'pending' | {
7
- triggered: EngineServerExecuteResult;
6
+ type TriggerServerOrderStatus = {
7
+ cancelled: TriggerServerCancelReason;
8
8
  } | {
9
- cancelled: string;
9
+ triggered: EngineServerExecuteResult;
10
10
  } | {
11
11
  internal_error: string;
12
+ } | 'triggering' | 'waiting_price' | 'waiting_dependency' | {
13
+ twap_executing: {
14
+ current_execution: number;
15
+ total_executions: number;
16
+ };
17
+ } | {
18
+ twap_completed: {
19
+ executed: number;
20
+ total: number;
21
+ };
12
22
  };
13
23
  /**
14
24
  * Request types
15
25
  */
16
- type TriggerServerTriggerTypeFilter = 'price_trigger' | 'twap';
26
+ type TriggerServerTriggerTypeFilter = 'price_trigger' | 'time_trigger';
17
27
  interface TriggerServerListTriggerOrdersParams extends SignedTx<EIP712ListTriggerOrdersValues> {
18
28
  pending: boolean;
19
29
  product_id?: number;
@@ -23,8 +33,12 @@ interface TriggerServerListTriggerOrdersParams extends SignedTx<EIP712ListTrigge
23
33
  trigger_types?: TriggerServerTriggerTypeFilter[];
24
34
  reduce_only?: boolean;
25
35
  }
36
+ interface TriggerServerListTwapExecutionsParams {
37
+ digest: string;
38
+ }
26
39
  interface TriggerServerQueryRequestByType {
27
40
  list_trigger_orders: TriggerServerListTriggerOrdersParams;
41
+ list_twap_executions: TriggerServerListTwapExecutionsParams;
28
42
  }
29
43
  type TriggerServerQueryRequestType = keyof TriggerServerQueryRequestByType;
30
44
  /**
@@ -41,8 +55,29 @@ interface TriggerServerOrderInfo {
41
55
  interface TriggerServerListTriggerOrdersResponse {
42
56
  orders: TriggerServerOrderInfo[];
43
57
  }
58
+ type TriggerServerCancelReason = 'user_requested' | 'linked_signer_changed' | 'expired' | 'account_health' | 'isolated_subaccount_closed' | 'dependent_order_cancelled';
59
+ type TriggerServerTwapExecutionStatus = 'pending' | {
60
+ executed: {
61
+ executed_time: number;
62
+ execute_response: EngineServerExecuteResult;
63
+ };
64
+ } | {
65
+ failed: string;
66
+ } | {
67
+ cancelled: TriggerServerCancelReason;
68
+ };
69
+ interface TriggerServerTwapExecutionInfo {
70
+ execution_id: number;
71
+ scheduled_time: number;
72
+ status: TriggerServerTwapExecutionStatus;
73
+ updated_at: number;
74
+ }
75
+ interface TriggerServerTwapExecutionsResponse {
76
+ executions: TriggerServerTwapExecutionInfo[];
77
+ }
44
78
  interface TriggerServerQueryResponseByType {
45
79
  list_trigger_orders: TriggerServerListTriggerOrdersResponse;
80
+ list_twap_executions: TriggerServerTwapExecutionsResponse;
46
81
  }
47
82
  interface TriggerServerQuerySuccessResponse<TQueryType extends keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType> {
48
83
  status: 'success';
@@ -55,4 +90,4 @@ interface TriggerServerQueryFailureResponse {
55
90
  }
56
91
  type TriggerServerQueryResponse<TQueryType extends keyof TriggerServerQueryResponseByType = TriggerServerQueryRequestType> = TriggerServerQuerySuccessResponse<TQueryType> | TriggerServerQueryFailureResponse;
57
92
 
58
- export type { TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter };
93
+ export type { TriggerServerCancelReason, TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerListTwapExecutionsParams, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter, TriggerServerTwapExecutionInfo, TriggerServerTwapExecutionStatus, TriggerServerTwapExecutionsResponse };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadohq/trigger-client",
3
- "version": "0.1.0-alpha.7",
3
+ "version": "0.1.0-alpha.8",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "> TODO: description",
@@ -37,8 +37,8 @@
37
37
  }
38
38
  },
39
39
  "dependencies": {
40
- "@nadohq/engine-client": "^0.1.0-alpha.7",
41
- "@nadohq/shared": "^0.1.0-alpha.7",
40
+ "@nadohq/engine-client": "^0.1.0-alpha.8",
41
+ "@nadohq/shared": "^0.1.0-alpha.8",
42
42
  "axios": "*",
43
43
  "ts-mixer": "*"
44
44
  },
@@ -48,5 +48,5 @@
48
48
  "devDependencies": {
49
49
  "viem": "*"
50
50
  },
51
- "gitHead": "c6f20e82e8d20e2c7a427b54a1728b6ab8adf058"
51
+ "gitHead": "3488a83313ef5c199b2fc9a3cd70f477e80e74db"
52
52
  }
@@ -14,12 +14,18 @@ import {
14
14
  WalletNotProvidedError,
15
15
  } from '@nadohq/shared';
16
16
  import axios, { AxiosInstance, AxiosResponse } from 'axios';
17
- import { mapServerOrderInfo, mapTriggerCriteria } from './dataMappers';
17
+ import {
18
+ mapServerOrderInfo,
19
+ mapTriggerCriteria,
20
+ mapTwapExecutionStatus,
21
+ } from './dataMappers';
18
22
  import {
19
23
  TriggerCancelOrdersParams,
20
24
  TriggerCancelProductOrdersParams,
21
25
  TriggerListOrdersParams,
22
26
  TriggerListOrdersResponse,
27
+ TriggerListTwapExecutionsParams,
28
+ TriggerListTwapExecutionsResponse,
23
29
  TriggerOrderInfo,
24
30
  TriggerPlaceOrderParams,
25
31
  TriggerServerExecuteRequestByType,
@@ -31,6 +37,7 @@ import {
31
37
  TriggerServerQueryResponse,
32
38
  TriggerServerQueryResponseByType,
33
39
  TriggerServerQuerySuccessResponse,
40
+ TwapExecutionInfo,
34
41
  } from './types';
35
42
  import { TriggerServerFailureError } from './types/TriggerServerFailureError';
36
43
 
@@ -198,6 +205,30 @@ export class TriggerClient {
198
205
  };
199
206
  }
200
207
 
208
+ async listTwapExecutions(
209
+ params: TriggerListTwapExecutionsParams,
210
+ ): Promise<TriggerListTwapExecutionsResponse> {
211
+ const queryParams: TriggerServerQueryRequestByType['list_twap_executions'] =
212
+ {
213
+ digest: params.digest,
214
+ };
215
+
216
+ const baseResponse = await this.query('list_twap_executions', queryParams);
217
+
218
+ const executions: TwapExecutionInfo[] = baseResponse.executions.map(
219
+ (execution) => ({
220
+ executionId: execution.execution_id,
221
+ scheduledTime: execution.scheduled_time,
222
+ status: mapTwapExecutionStatus(execution.status),
223
+ updatedAt: execution.updated_at,
224
+ }),
225
+ );
226
+
227
+ return {
228
+ executions,
229
+ };
230
+ }
231
+
201
232
  /*
202
233
  Base Fns
203
234
  */
@@ -19,6 +19,8 @@ import {
19
19
  TriggerServerPriceTriggerCriteria,
20
20
  TriggerServerTimeTriggerCriteria,
21
21
  TriggerServerTriggerCriteria,
22
+ TriggerServerTwapExecutionStatus,
23
+ TwapExecutionStatus,
22
24
  } from './types';
23
25
 
24
26
  /**
@@ -117,24 +119,44 @@ export function mapServerOrderInfo(
117
119
  function mapTriggerServerOrderStatus(
118
120
  status: TriggerServerOrderStatus,
119
121
  ): TriggerOrderStatus {
120
- if (status === 'pending') {
122
+ if (status === 'triggering') {
121
123
  return {
122
- type: 'pending',
124
+ type: 'triggering',
125
+ };
126
+ } else if (status === 'waiting_price') {
127
+ return {
128
+ type: 'waiting_price',
129
+ };
130
+ } else if (status === 'waiting_dependency') {
131
+ return {
132
+ type: 'waiting_dependency',
123
133
  };
124
134
  } else if ('cancelled' in status) {
125
135
  return {
126
136
  type: 'cancelled',
127
137
  reason: status.cancelled,
128
138
  };
139
+ } else if ('triggered' in status) {
140
+ return {
141
+ type: 'triggered',
142
+ result: status.triggered,
143
+ };
129
144
  } else if ('internal_error' in status) {
130
145
  return {
131
146
  type: 'internal_error',
132
147
  error: status.internal_error,
133
148
  };
134
- } else if ('triggered' in status) {
149
+ } else if ('twap_executing' in status) {
135
150
  return {
136
- type: 'triggered',
137
- result: status.triggered,
151
+ type: 'twap_executing',
152
+ currentExecution: status.twap_executing.current_execution,
153
+ totalExecutions: status.twap_executing.total_executions,
154
+ };
155
+ } else if ('twap_completed' in status) {
156
+ return {
157
+ type: 'twap_completed',
158
+ executed: status.twap_completed.executed,
159
+ total: status.twap_completed.total,
138
160
  };
139
161
  }
140
162
  throw Error(`Unknown trigger order status: ${JSON.stringify(status)}`);
@@ -226,3 +248,30 @@ function mapServerTimeTriggerCriteria(
226
248
  ),
227
249
  };
228
250
  }
251
+
252
+ export function mapTwapExecutionStatus(
253
+ status: TriggerServerTwapExecutionStatus,
254
+ ): TwapExecutionStatus {
255
+ if (status === 'pending') {
256
+ return {
257
+ type: 'pending',
258
+ };
259
+ } else if ('executed' in status) {
260
+ return {
261
+ type: 'executed',
262
+ executedTime: status.executed.executed_time,
263
+ executeResponse: status.executed.execute_response,
264
+ };
265
+ } else if ('failed' in status) {
266
+ return {
267
+ type: 'failed',
268
+ error: status.failed,
269
+ };
270
+ } else if ('cancelled' in status) {
271
+ return {
272
+ type: 'cancelled',
273
+ reason: status.cancelled,
274
+ };
275
+ }
276
+ throw Error(`Unknown TWAP execution status: ${JSON.stringify(status)}`);
277
+ }
@@ -62,9 +62,6 @@ export type TriggerCriteria =
62
62
  export type TriggerCriteriaType = TriggerCriteria['type'];
63
63
 
64
64
  export type TriggerOrderStatus =
65
- | {
66
- type: 'pending';
67
- }
68
65
  | {
69
66
  type: 'cancelled';
70
67
  reason: string;
@@ -76,4 +73,23 @@ export type TriggerOrderStatus =
76
73
  | {
77
74
  type: 'internal_error';
78
75
  error: string;
76
+ }
77
+ | {
78
+ type: 'triggering';
79
+ }
80
+ | {
81
+ type: 'waiting_price';
82
+ }
83
+ | {
84
+ type: 'waiting_dependency';
85
+ }
86
+ | {
87
+ type: 'twap_executing';
88
+ currentExecution: number;
89
+ totalExecutions: number;
90
+ }
91
+ | {
92
+ type: 'twap_completed';
93
+ executed: number;
94
+ total: number;
79
95
  };
@@ -4,7 +4,10 @@ import {
4
4
  OrderAppendix,
5
5
  Subaccount,
6
6
  } from '@nadohq/shared';
7
- import { EngineOrderParams } from '@nadohq/engine-client';
7
+ import {
8
+ EngineOrderParams,
9
+ EngineServerExecuteResult,
10
+ } from '@nadohq/engine-client';
8
11
  import { BigDecimal } from '@nadohq/shared';
9
12
  import { TriggerCriteria, TriggerOrderStatus } from './clientModelTypes';
10
13
  import {
@@ -89,3 +92,36 @@ export interface TriggerOrderInfo {
89
92
  export interface TriggerListOrdersResponse {
90
93
  orders: TriggerOrderInfo[];
91
94
  }
95
+
96
+ export interface TriggerListTwapExecutionsParams {
97
+ digest: string;
98
+ }
99
+
100
+ export type TwapExecutionStatus =
101
+ | {
102
+ type: 'pending';
103
+ }
104
+ | {
105
+ type: 'executed';
106
+ executedTime: number;
107
+ executeResponse: EngineServerExecuteResult;
108
+ }
109
+ | {
110
+ type: 'failed';
111
+ error: string;
112
+ }
113
+ | {
114
+ type: 'cancelled';
115
+ reason: string;
116
+ };
117
+
118
+ export interface TwapExecutionInfo {
119
+ executionId: number;
120
+ scheduledTime: number;
121
+ status: TwapExecutionStatus;
122
+ updatedAt: number;
123
+ }
124
+
125
+ export interface TriggerListTwapExecutionsResponse {
126
+ executions: TwapExecutionInfo[];
127
+ }