@velora-dex/sdk 9.3.6 → 9.4.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.
- package/README.md +2 -0
- package/dist/examples/externalDelta.d.ts +2 -0
- package/dist/examples/externalDelta.d.ts.map +1 -0
- package/dist/examples/helpers/delta.d.ts +2 -2
- package/dist/examples/helpers/delta.d.ts.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/methods/delta/buildDeltaOrder.d.ts +4 -10
- package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/buildExternalDeltaOrder.d.ts +46 -0
- package/dist/methods/delta/buildExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/getDeltaOrders.d.ts +14 -6
- package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
- package/dist/methods/delta/helpers/abi.d.ts +16 -0
- package/dist/methods/delta/helpers/abi.d.ts.map +1 -0
- package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts +0 -1
- package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts.map +1 -1
- package/dist/methods/delta/helpers/buildExternalOrderData.d.ts +34 -0
- package/dist/methods/delta/helpers/buildExternalOrderData.d.ts.map +1 -0
- package/dist/methods/delta/helpers/misc.d.ts +43 -0
- package/dist/methods/delta/helpers/misc.d.ts.map +1 -1
- package/dist/methods/delta/helpers/types.d.ts +74 -3
- package/dist/methods/delta/helpers/types.d.ts.map +1 -1
- package/dist/methods/delta/index.d.ts +19 -3
- package/dist/methods/delta/index.d.ts.map +1 -1
- package/dist/methods/delta/postDeltaOrder.d.ts +4 -9
- package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/postExternalDeltaOrder.d.ts +11 -0
- package/dist/methods/delta/postExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/preSignDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/preSignExternalDeltaOrder.d.ts +17 -0
- package/dist/methods/delta/preSignExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/signExternalDeltaOrder.d.ts +9 -0
- package/dist/methods/delta/signExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/limitOrders/approveForOrder.d.ts +2 -0
- package/dist/methods/limitOrders/approveForOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/buildOrder.d.ts +3 -0
- package/dist/methods/limitOrders/buildOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/cancelOrder.d.ts +2 -0
- package/dist/methods/limitOrders/cancelOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/fillOrderDirectly.d.ts +2 -0
- package/dist/methods/limitOrders/fillOrderDirectly.d.ts.map +1 -1
- package/dist/methods/limitOrders/getOrders.d.ts +2 -0
- package/dist/methods/limitOrders/getOrders.d.ts.map +1 -1
- package/dist/methods/limitOrders/getOrdersContract.d.ts +2 -0
- package/dist/methods/limitOrders/getOrdersContract.d.ts.map +1 -1
- package/dist/methods/limitOrders/index.d.ts +7 -1
- package/dist/methods/limitOrders/index.d.ts.map +1 -1
- package/dist/methods/limitOrders/postOrder.d.ts +2 -0
- package/dist/methods/limitOrders/postOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/signOrder.d.ts +2 -0
- package/dist/methods/limitOrders/signOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/transaction.d.ts +2 -0
- package/dist/methods/limitOrders/transaction.d.ts.map +1 -1
- package/dist/methods/nftOrders/approveForOrder.d.ts +2 -0
- package/dist/methods/nftOrders/approveForOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/buildOrder.d.ts +3 -0
- package/dist/methods/nftOrders/buildOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/cancelOrder.d.ts +2 -0
- package/dist/methods/nftOrders/cancelOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/getOrders.d.ts +2 -0
- package/dist/methods/nftOrders/getOrders.d.ts.map +1 -1
- package/dist/methods/nftOrders/getOrdersContract.d.ts +2 -0
- package/dist/methods/nftOrders/getOrdersContract.d.ts.map +1 -1
- package/dist/methods/nftOrders/helpers/misc.d.ts +1 -0
- package/dist/methods/nftOrders/helpers/misc.d.ts.map +1 -1
- package/dist/methods/nftOrders/index.d.ts +7 -1
- package/dist/methods/nftOrders/index.d.ts.map +1 -1
- package/dist/methods/nftOrders/postOrder.d.ts +2 -0
- package/dist/methods/nftOrders/postOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/signOrder.d.ts +2 -0
- package/dist/methods/nftOrders/signOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/transaction.d.ts +2 -0
- package/dist/methods/nftOrders/transaction.d.ts.map +1 -1
- package/dist/sdk/full.d.ts +2 -0
- package/dist/sdk/full.d.ts.map +1 -1
- package/dist/sdk/partial.d.ts +2 -0
- package/dist/sdk/partial.d.ts.map +1 -1
- package/dist/sdk/simple.d.ts +6 -0
- package/dist/sdk/simple.d.ts.map +1 -1
- package/dist/sdk.cjs.development.js +657 -95
- package/dist/sdk.cjs.development.js.map +1 -1
- package/dist/sdk.cjs.production.min.js +1 -1
- package/dist/sdk.cjs.production.min.js.map +1 -1
- package/dist/sdk.esm.js +653 -96
- package/dist/sdk.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.js +8 -0
- package/src/examples/delta.ts +9 -20
- package/src/examples/externalDelta.ts +162 -0
- package/src/examples/helpers/delta.ts +8 -4
- package/src/gas.js +1 -0
- package/src/index.js +142 -0
- package/src/index.ts +40 -3
- package/src/methods/delta/buildDeltaOrder.ts +13 -61
- package/src/methods/delta/buildExternalDeltaOrder.ts +124 -0
- package/src/methods/delta/getDeltaOrders.ts +31 -13
- package/src/methods/delta/helpers/abi.ts +20 -0
- package/src/methods/delta/helpers/buildDeltaOrderData.ts +3 -35
- package/src/methods/delta/helpers/buildExternalOrderData.ts +129 -0
- package/src/methods/delta/helpers/misc.ts +210 -0
- package/src/methods/delta/helpers/types.ts +87 -8
- package/src/methods/delta/index.ts +82 -3
- package/src/methods/delta/postDeltaOrder.ts +9 -11
- package/src/methods/delta/postExternalDeltaOrder.ts +45 -0
- package/src/methods/delta/preSignDeltaOrder.ts +1 -21
- package/src/methods/delta/preSignExternalDeltaOrder.ts +141 -0
- package/src/methods/delta/signExternalDeltaOrder.ts +35 -0
- package/src/methods/limitOrders/approveForOrder.ts +2 -0
- package/src/methods/limitOrders/buildOrder.ts +3 -0
- package/src/methods/limitOrders/cancelOrder.ts +2 -0
- package/src/methods/limitOrders/fillOrderDirectly.ts +2 -0
- package/src/methods/limitOrders/getOrders.ts +2 -0
- package/src/methods/limitOrders/getOrdersContract.ts +2 -0
- package/src/methods/limitOrders/index.ts +7 -1
- package/src/methods/limitOrders/postOrder.ts +2 -0
- package/src/methods/limitOrders/signOrder.ts +2 -0
- package/src/methods/limitOrders/transaction.ts +2 -0
- package/src/methods/nftOrders/approveForOrder.ts +2 -0
- package/src/methods/nftOrders/buildOrder.ts +3 -0
- package/src/methods/nftOrders/cancelOrder.ts +2 -0
- package/src/methods/nftOrders/getOrders.ts +2 -0
- package/src/methods/nftOrders/getOrdersContract.ts +2 -0
- package/src/methods/nftOrders/helpers/misc.ts +1 -0
- package/src/methods/nftOrders/index.ts +7 -1
- package/src/methods/nftOrders/postOrder.ts +2 -0
- package/src/methods/nftOrders/signOrder.ts +2 -0
- package/src/methods/nftOrders/transaction.ts +2 -0
- package/src/sdk/full.ts +2 -0
- package/src/sdk/partial.ts +2 -0
- package/src/sdk/simple.ts +6 -0
- package/src/types.js +1 -0
|
@@ -1,5 +1,44 @@
|
|
|
1
|
+
import type { EnumerateLiteral } from '../../../types';
|
|
1
2
|
import { SwapSide } from '../../../constants';
|
|
2
3
|
|
|
4
|
+
export type SwapSideUnion = EnumerateLiteral<typeof SwapSide>;
|
|
5
|
+
|
|
6
|
+
/** @description SELL with slippage: srcAmount provided, destAmount auto-computed from deltaPrice.destAmount */
|
|
7
|
+
export type AmountsSellSlippage = {
|
|
8
|
+
/** @description Slippage in basis points (bps). 10000 = 100%, 50 = 0.5% */
|
|
9
|
+
slippage: number;
|
|
10
|
+
/** @description The amount of src token to swap */
|
|
11
|
+
srcAmount: string;
|
|
12
|
+
destAmount?: never;
|
|
13
|
+
/** @description The side of the order */
|
|
14
|
+
side?: 'SELL';
|
|
15
|
+
};
|
|
16
|
+
/** @description BUY with slippage: destAmount provided, srcAmount auto-computed from deltaPrice.srcAmount */
|
|
17
|
+
export type AmountsBuySlippage = {
|
|
18
|
+
/** @description Slippage in basis points (bps). 10000 = 100%, 50 = 0.5% */
|
|
19
|
+
slippage: number;
|
|
20
|
+
/** @description The minimum amount of dest token to receive */
|
|
21
|
+
destAmount: string;
|
|
22
|
+
srcAmount?: never;
|
|
23
|
+
/** @description The side of the order */
|
|
24
|
+
side?: 'BUY';
|
|
25
|
+
};
|
|
26
|
+
/** @description Explicit amounts, no slippage (backward-compatible) */
|
|
27
|
+
export type AmountsExplicit = {
|
|
28
|
+
slippage?: never;
|
|
29
|
+
/** @description The amount of src token to swap */
|
|
30
|
+
srcAmount: string;
|
|
31
|
+
/** @description The minimum amount of dest token to receive */
|
|
32
|
+
destAmount: string;
|
|
33
|
+
/** @description The side of the order. Default is SELL */
|
|
34
|
+
side?: SwapSideUnion;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type AmountsWithSlippage =
|
|
38
|
+
| AmountsSellSlippage
|
|
39
|
+
| AmountsBuySlippage
|
|
40
|
+
| AmountsExplicit;
|
|
41
|
+
|
|
3
42
|
enum OrderKind {
|
|
4
43
|
Sell = 0,
|
|
5
44
|
Buy = 1,
|
|
@@ -52,6 +91,37 @@ export type Bridge = {
|
|
|
52
91
|
protocolData: string; // Hex string
|
|
53
92
|
};
|
|
54
93
|
|
|
94
|
+
export type ExternalDeltaOrder = {
|
|
95
|
+
/** @description The address of the order owner */
|
|
96
|
+
owner: string;
|
|
97
|
+
/** @description The address of the external handler contract */
|
|
98
|
+
handler: string;
|
|
99
|
+
/** @description The address of the src token */
|
|
100
|
+
srcToken: string;
|
|
101
|
+
/** @description The address of the dest token */
|
|
102
|
+
destToken: string;
|
|
103
|
+
/** @description The amount of src token to swap */
|
|
104
|
+
srcAmount: string;
|
|
105
|
+
/** @description The minimum amount of dest token to receive */
|
|
106
|
+
destAmount: string;
|
|
107
|
+
/** @description The expected amount of token to receive */
|
|
108
|
+
expectedAmount: string;
|
|
109
|
+
/** @description The kind of the order */
|
|
110
|
+
kind: OrderKind;
|
|
111
|
+
/** @description Metadata for the order, hex string */
|
|
112
|
+
metadata: string;
|
|
113
|
+
/** @description The deadline for the order */
|
|
114
|
+
deadline: number;
|
|
115
|
+
/** @description The nonce of the order */
|
|
116
|
+
nonce: string;
|
|
117
|
+
/** @description Optional permit signature for the src token */
|
|
118
|
+
permit: string;
|
|
119
|
+
/** @description Encoded partner address, fee bps, and flags for the order */
|
|
120
|
+
partnerAndFee: string;
|
|
121
|
+
/** @description Protocol-specific encoded bytes for the external handler */
|
|
122
|
+
data: string;
|
|
123
|
+
};
|
|
124
|
+
|
|
55
125
|
export type DeltaAuctionStatus =
|
|
56
126
|
| 'NOT_STARTED'
|
|
57
127
|
| 'AWAITING_PRE_SIGNATURE'
|
|
@@ -92,13 +162,16 @@ type DeltaAuctionTransaction = {
|
|
|
92
162
|
auctionId: string;
|
|
93
163
|
};
|
|
94
164
|
|
|
95
|
-
export type
|
|
165
|
+
export type OnChainOrderMap = {
|
|
166
|
+
Order: DeltaAuctionOrder;
|
|
167
|
+
ExternalOrder: ExternalDeltaOrder;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
type DeltaAuctionBase = {
|
|
96
171
|
id: string;
|
|
97
172
|
deltaVersion: string; // 1.0 or 2.0 currently
|
|
98
173
|
user: string;
|
|
99
|
-
signature: string;
|
|
100
174
|
status: DeltaAuctionStatus;
|
|
101
|
-
order: DeltaAuctionOrder;
|
|
102
175
|
orderHash: string | null; // not available on old Orders only
|
|
103
176
|
transactions: DeltaAuctionTransaction[];
|
|
104
177
|
chainId: number;
|
|
@@ -115,13 +188,17 @@ export type DeltaAuction = {
|
|
|
115
188
|
bridgeMetadata: BridgeMetadata | null;
|
|
116
189
|
bridgeStatus: BridgeStatus | null;
|
|
117
190
|
|
|
118
|
-
|
|
119
|
-
// orderVersion: string; // "2.0.0"
|
|
120
|
-
// deltaGasOverhead: number;
|
|
121
|
-
|
|
122
|
-
type: 'MARKET' | 'LIMIT'; // @TODO when available in API for individual /order/:hash|:id
|
|
191
|
+
type: 'MARKET' | 'LIMIT';
|
|
123
192
|
};
|
|
124
193
|
|
|
194
|
+
export type DeltaAuction<T extends OnChainOrderType = OnChainOrderType> =
|
|
195
|
+
T extends T
|
|
196
|
+
? DeltaAuctionBase & {
|
|
197
|
+
onChainOrderType: T;
|
|
198
|
+
order: OnChainOrderMap[T];
|
|
199
|
+
}
|
|
200
|
+
: never;
|
|
201
|
+
|
|
125
202
|
export type BridgeMetadata = {
|
|
126
203
|
/** @description The amount that user should expect to get */
|
|
127
204
|
outputAmount: string;
|
|
@@ -138,6 +215,8 @@ export type BridgeMetadata = {
|
|
|
138
215
|
// refunded is basically failed
|
|
139
216
|
export type BridgeStatus = 'pending' | 'filled' | 'expired' | 'refunded';
|
|
140
217
|
|
|
218
|
+
export type OnChainOrderType = 'Order' | 'ExternalOrder';
|
|
219
|
+
|
|
141
220
|
//// available on BridgePrice ////
|
|
142
221
|
|
|
143
222
|
type BridgeQuoteFee = {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ConstructProviderFetchInput } from '../../types';
|
|
2
|
+
import type { DeltaAuction } from './helpers/types';
|
|
2
3
|
import {
|
|
3
4
|
BuildDeltaOrderDataParams,
|
|
4
5
|
BuildDeltaOrderFunctions,
|
|
@@ -6,7 +7,6 @@ import {
|
|
|
6
7
|
} from './buildDeltaOrder';
|
|
7
8
|
import {
|
|
8
9
|
constructPostDeltaOrder,
|
|
9
|
-
DeltaOrderApiResponse,
|
|
10
10
|
DeltaOrderToPost,
|
|
11
11
|
PostDeltaOrderFunctions,
|
|
12
12
|
} from './postDeltaOrder';
|
|
@@ -54,6 +54,23 @@ import {
|
|
|
54
54
|
DeltaTokenModuleFunctions,
|
|
55
55
|
constructDeltaTokenModule,
|
|
56
56
|
} from './deltaTokenModule';
|
|
57
|
+
import {
|
|
58
|
+
BuildExternalDeltaOrderParams,
|
|
59
|
+
BuildExternalDeltaOrderFunctions,
|
|
60
|
+
constructBuildExternalDeltaOrder,
|
|
61
|
+
} from './buildExternalDeltaOrder';
|
|
62
|
+
import {
|
|
63
|
+
constructSignExternalDeltaOrder,
|
|
64
|
+
SignExternalDeltaOrderFunctions,
|
|
65
|
+
} from './signExternalDeltaOrder';
|
|
66
|
+
import {
|
|
67
|
+
constructPostExternalDeltaOrder,
|
|
68
|
+
PostExternalDeltaOrderFunctions,
|
|
69
|
+
} from './postExternalDeltaOrder';
|
|
70
|
+
import {
|
|
71
|
+
constructPreSignExternalDeltaOrder,
|
|
72
|
+
PreSignExternalDeltaOrderFunctions,
|
|
73
|
+
} from './preSignExternalDeltaOrder';
|
|
57
74
|
|
|
58
75
|
export type SubmitDeltaOrderParams = BuildDeltaOrderDataParams & {
|
|
59
76
|
/** @description designates the Order as being able to be partially filled, as opposed to fill-or-kill */
|
|
@@ -65,7 +82,7 @@ export type SubmitDeltaOrderParams = BuildDeltaOrderDataParams & {
|
|
|
65
82
|
|
|
66
83
|
type SubmitDeltaOrder = (
|
|
67
84
|
orderParams: SubmitDeltaOrderParams
|
|
68
|
-
) => Promise<
|
|
85
|
+
) => Promise<DeltaAuction<'Order'>>;
|
|
69
86
|
|
|
70
87
|
export type SubmitDeltaOrderFuncs = {
|
|
71
88
|
submitDeltaOrder: SubmitDeltaOrder;
|
|
@@ -101,6 +118,51 @@ export const constructSubmitDeltaOrder = (
|
|
|
101
118
|
return { submitDeltaOrder };
|
|
102
119
|
};
|
|
103
120
|
|
|
121
|
+
export type SubmitExternalDeltaOrderParams = BuildExternalDeltaOrderParams & {
|
|
122
|
+
/** @description designates the Order as being able to be partially filled, as opposed to fill-or-kill */
|
|
123
|
+
partiallyFillable?: boolean;
|
|
124
|
+
/** @description Referrer address */
|
|
125
|
+
referrerAddress?: string;
|
|
126
|
+
} & Pick<DeltaOrderToPost, 'type' | 'includeAgents' | 'excludeAgents'>;
|
|
127
|
+
|
|
128
|
+
type SubmitExternalDeltaOrder = (
|
|
129
|
+
orderParams: SubmitExternalDeltaOrderParams
|
|
130
|
+
) => Promise<DeltaAuction<'ExternalOrder'>>;
|
|
131
|
+
|
|
132
|
+
export type SubmitExternalDeltaOrderFuncs = {
|
|
133
|
+
submitExternalDeltaOrder: SubmitExternalDeltaOrder;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export const constructSubmitExternalDeltaOrder = (
|
|
137
|
+
options: ConstructProviderFetchInput<any, 'signTypedDataCall'>
|
|
138
|
+
): SubmitExternalDeltaOrderFuncs => {
|
|
139
|
+
const { buildExternalDeltaOrder } = constructBuildExternalDeltaOrder(options);
|
|
140
|
+
const { signExternalDeltaOrder } = constructSignExternalDeltaOrder(options);
|
|
141
|
+
const { postExternalDeltaOrder } = constructPostExternalDeltaOrder(options);
|
|
142
|
+
|
|
143
|
+
const submitExternalDeltaOrder: SubmitExternalDeltaOrder = async (
|
|
144
|
+
orderParams
|
|
145
|
+
) => {
|
|
146
|
+
const orderData = await buildExternalDeltaOrder(orderParams);
|
|
147
|
+
const signature = await signExternalDeltaOrder(orderData);
|
|
148
|
+
|
|
149
|
+
const response = await postExternalDeltaOrder({
|
|
150
|
+
signature,
|
|
151
|
+
partner: orderParams.partner,
|
|
152
|
+
order: orderData.data,
|
|
153
|
+
partiallyFillable: orderParams.partiallyFillable,
|
|
154
|
+
referrerAddress: orderParams.referrerAddress,
|
|
155
|
+
type: orderParams.type,
|
|
156
|
+
includeAgents: orderParams.includeAgents,
|
|
157
|
+
excludeAgents: orderParams.excludeAgents,
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
return response;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
return { submitExternalDeltaOrder };
|
|
164
|
+
};
|
|
165
|
+
|
|
104
166
|
export type DeltaOrderHandlers<T> = SubmitDeltaOrderFuncs &
|
|
105
167
|
ApproveTokenForDeltaFunctions<T> &
|
|
106
168
|
BuildDeltaOrderFunctions &
|
|
@@ -114,7 +176,12 @@ export type DeltaOrderHandlers<T> = SubmitDeltaOrderFuncs &
|
|
|
114
176
|
SignDeltaOrderFunctions &
|
|
115
177
|
PreSignDeltaOrderFunctions<T> &
|
|
116
178
|
CancelDeltaOrderFunctions &
|
|
117
|
-
DeltaTokenModuleFunctions<T
|
|
179
|
+
DeltaTokenModuleFunctions<T> &
|
|
180
|
+
SubmitExternalDeltaOrderFuncs &
|
|
181
|
+
BuildExternalDeltaOrderFunctions &
|
|
182
|
+
SignExternalDeltaOrderFunctions &
|
|
183
|
+
PostExternalDeltaOrderFunctions &
|
|
184
|
+
PreSignExternalDeltaOrderFunctions<T>;
|
|
118
185
|
|
|
119
186
|
/** @description construct SDK with every Delta Order-related method, fetching from API and Order signing */
|
|
120
187
|
export const constructAllDeltaOrdersHandlers = <TxResponse>(
|
|
@@ -144,6 +211,13 @@ export const constructAllDeltaOrdersHandlers = <TxResponse>(
|
|
|
144
211
|
|
|
145
212
|
const deltaTokenModule = constructDeltaTokenModule(options);
|
|
146
213
|
|
|
214
|
+
const externalDeltaOrdersSubmit = constructSubmitExternalDeltaOrder(options);
|
|
215
|
+
const externalDeltaOrdersBuild = constructBuildExternalDeltaOrder(options);
|
|
216
|
+
const externalDeltaOrdersSign = constructSignExternalDeltaOrder(options);
|
|
217
|
+
const externalDeltaOrdersPost = constructPostExternalDeltaOrder(options);
|
|
218
|
+
const externalDeltaOrdersPreSign =
|
|
219
|
+
constructPreSignExternalDeltaOrder(options);
|
|
220
|
+
|
|
147
221
|
return {
|
|
148
222
|
...deltaOrdersGetters,
|
|
149
223
|
...deltaOrdersContractGetter,
|
|
@@ -159,5 +233,10 @@ export const constructAllDeltaOrdersHandlers = <TxResponse>(
|
|
|
159
233
|
...deltaOrdersPost,
|
|
160
234
|
...deltaOrdersCancel,
|
|
161
235
|
...deltaTokenModule,
|
|
236
|
+
...externalDeltaOrdersSubmit,
|
|
237
|
+
...externalDeltaOrdersBuild,
|
|
238
|
+
...externalDeltaOrdersSign,
|
|
239
|
+
...externalDeltaOrdersPost,
|
|
240
|
+
...externalDeltaOrdersPreSign,
|
|
162
241
|
};
|
|
163
242
|
};
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { API_URL } from '../../constants';
|
|
2
2
|
import { constructSearchString } from '../../helpers/misc';
|
|
3
3
|
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
4
|
-
import {
|
|
4
|
+
import type {
|
|
5
|
+
DeltaAuction,
|
|
6
|
+
OnChainOrderMap,
|
|
7
|
+
OnChainOrderType,
|
|
8
|
+
} from './helpers/types';
|
|
5
9
|
|
|
6
|
-
export type DeltaOrderToPost = {
|
|
10
|
+
export type DeltaOrderToPost<T extends OnChainOrderType = 'Order'> = {
|
|
7
11
|
/** @description Partner string */
|
|
8
12
|
partner?: string;
|
|
9
13
|
/** @description Referrer address */
|
|
10
14
|
referrerAddress?: string;
|
|
11
|
-
order:
|
|
15
|
+
order: OnChainOrderMap[T];
|
|
12
16
|
/** @description Signature of the order from order.owner address. EOA signatures must be submitted in ERC-2098 Compact Representation. */
|
|
13
17
|
signature: string;
|
|
14
18
|
chainId: number;
|
|
@@ -26,16 +30,10 @@ export type PostDeltaOrderParams = Omit<DeltaOrderToPost, 'chainId'> & {
|
|
|
26
30
|
degenMode?: boolean;
|
|
27
31
|
};
|
|
28
32
|
|
|
29
|
-
export type DeltaOrderApiResponse = Omit<DeltaAuction, 'transactions'> & {
|
|
30
|
-
orderVersion: string; // "2.0.0"
|
|
31
|
-
deltaGasOverhead: number; // @TODO may be removed
|
|
32
|
-
type: 'MARKET' | 'LIMIT';
|
|
33
|
-
};
|
|
34
|
-
|
|
35
33
|
type PostDeltaOrder = (
|
|
36
34
|
postData: PostDeltaOrderParams,
|
|
37
35
|
requestParams?: RequestParameters
|
|
38
|
-
) => Promise<
|
|
36
|
+
) => Promise<DeltaAuction<'Order'>>;
|
|
39
37
|
|
|
40
38
|
export type PostDeltaOrderFunctions = {
|
|
41
39
|
postDeltaOrder: PostDeltaOrder;
|
|
@@ -57,7 +55,7 @@ export const constructPostDeltaOrder = ({
|
|
|
57
55
|
});
|
|
58
56
|
const fetchURL = `${postOrderUrl}/${search}` as const;
|
|
59
57
|
|
|
60
|
-
return fetcher<
|
|
58
|
+
return fetcher<DeltaAuction<'Order'>>({
|
|
61
59
|
url: fetchURL,
|
|
62
60
|
method: 'POST',
|
|
63
61
|
data: deltaOrderToPost,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
3
|
+
import type { DeltaAuction } from './helpers/types';
|
|
4
|
+
import type { DeltaOrderToPost } from './postDeltaOrder';
|
|
5
|
+
|
|
6
|
+
export type PostExternalDeltaOrderParams = Omit<
|
|
7
|
+
DeltaOrderToPost<'ExternalOrder'>,
|
|
8
|
+
'chainId'
|
|
9
|
+
>;
|
|
10
|
+
|
|
11
|
+
type PostExternalDeltaOrder = (
|
|
12
|
+
postData: PostExternalDeltaOrderParams,
|
|
13
|
+
requestParams?: RequestParameters
|
|
14
|
+
) => Promise<DeltaAuction<'ExternalOrder'>>;
|
|
15
|
+
|
|
16
|
+
export type PostExternalDeltaOrderFunctions = {
|
|
17
|
+
postExternalDeltaOrder: PostExternalDeltaOrder;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const constructPostExternalDeltaOrder = ({
|
|
21
|
+
apiURL = API_URL,
|
|
22
|
+
chainId,
|
|
23
|
+
fetcher,
|
|
24
|
+
}: ConstructFetchInput): PostExternalDeltaOrderFunctions => {
|
|
25
|
+
const postOrderUrl = `${apiURL}/delta/orders` as const;
|
|
26
|
+
|
|
27
|
+
const postExternalDeltaOrder: PostExternalDeltaOrder = (
|
|
28
|
+
postData,
|
|
29
|
+
requestParams
|
|
30
|
+
) => {
|
|
31
|
+
const deltaOrderToPost: DeltaOrderToPost<'ExternalOrder'> = {
|
|
32
|
+
...postData,
|
|
33
|
+
chainId,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return fetcher<DeltaAuction<'ExternalOrder'>>({
|
|
37
|
+
url: postOrderUrl,
|
|
38
|
+
method: 'POST',
|
|
39
|
+
data: deltaOrderToPost,
|
|
40
|
+
requestParams,
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return { postExternalDeltaOrder };
|
|
45
|
+
};
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
SignableDeltaOrderData,
|
|
10
10
|
} from './helpers/buildDeltaOrderData';
|
|
11
11
|
import { sanitizeDeltaOrderData } from './helpers/misc';
|
|
12
|
+
import { PreSignatureModuleAbi } from './helpers/abi';
|
|
12
13
|
import type { ExtractAbiMethodNames } from '../../helpers/misc';
|
|
13
14
|
import { findPrimaryType } from '../../helpers/providers/helpers';
|
|
14
15
|
import { constructGetDeltaContract } from './getDeltaContract';
|
|
@@ -42,27 +43,6 @@ export type PreSignDeltaOrderFunctions<T> = {
|
|
|
42
43
|
preSignDeltaOrder: PreSignDeltaOrder<T>;
|
|
43
44
|
};
|
|
44
45
|
|
|
45
|
-
const PreSignatureModuleAbi = [
|
|
46
|
-
{
|
|
47
|
-
inputs: [
|
|
48
|
-
{
|
|
49
|
-
internalType: 'bytes32',
|
|
50
|
-
name: 'orderHash',
|
|
51
|
-
type: 'bytes32',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
internalType: 'bool',
|
|
55
|
-
name: 'preSigned',
|
|
56
|
-
type: 'bool',
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
name: 'setPreSignature',
|
|
60
|
-
outputs: [],
|
|
61
|
-
stateMutability: 'nonpayable',
|
|
62
|
-
type: 'function',
|
|
63
|
-
},
|
|
64
|
-
] as const;
|
|
65
|
-
|
|
66
46
|
type AvailableMethods = ExtractAbiMethodNames<typeof PreSignatureModuleAbi>;
|
|
67
47
|
|
|
68
48
|
// returns whatever `contractCaller` returns
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { hashTypedData } from 'viem/utils';
|
|
2
|
+
import type {
|
|
3
|
+
ConstructProviderFetchInput,
|
|
4
|
+
RequestParameters,
|
|
5
|
+
TxSendOverrides,
|
|
6
|
+
} from '../../types';
|
|
7
|
+
import {
|
|
8
|
+
produceExternalOrderTypedData,
|
|
9
|
+
SignableExternalOrderData,
|
|
10
|
+
} from './helpers/buildExternalOrderData';
|
|
11
|
+
import { sanitizeExternalOrderData } from './helpers/misc';
|
|
12
|
+
import { PreSignatureModuleAbi } from './helpers/abi';
|
|
13
|
+
import type { ExtractAbiMethodNames } from '../../helpers/misc';
|
|
14
|
+
import { findPrimaryType } from '../../helpers/providers/helpers';
|
|
15
|
+
import { constructGetDeltaContract } from './getDeltaContract';
|
|
16
|
+
import type { ExternalDeltaOrder } from './helpers/types';
|
|
17
|
+
|
|
18
|
+
type HashExternalDeltaOrderTypedData = (
|
|
19
|
+
signableOrderData: SignableExternalOrderData
|
|
20
|
+
) => string;
|
|
21
|
+
|
|
22
|
+
type HashExternalDeltaOrder = (
|
|
23
|
+
orderData: ExternalDeltaOrder,
|
|
24
|
+
requestParams?: RequestParameters
|
|
25
|
+
) => Promise<string>;
|
|
26
|
+
|
|
27
|
+
export type SetExternalDeltaOrderPreSignature<T> = (
|
|
28
|
+
orderHash: string,
|
|
29
|
+
overrides?: TxSendOverrides,
|
|
30
|
+
requestParams?: RequestParameters
|
|
31
|
+
) => Promise<T>;
|
|
32
|
+
|
|
33
|
+
export type PreSignExternalDeltaOrder<T> = (
|
|
34
|
+
signableOrderData: SignableExternalOrderData,
|
|
35
|
+
overrides?: TxSendOverrides,
|
|
36
|
+
requestParams?: RequestParameters
|
|
37
|
+
) => Promise<T>;
|
|
38
|
+
|
|
39
|
+
export type PreSignExternalDeltaOrderFunctions<T> = {
|
|
40
|
+
hashExternalDeltaOrderTypedData: HashExternalDeltaOrderTypedData;
|
|
41
|
+
hashExternalDeltaOrder: HashExternalDeltaOrder;
|
|
42
|
+
setExternalDeltaOrderPreSignature: SetExternalDeltaOrderPreSignature<T>;
|
|
43
|
+
preSignExternalDeltaOrder: PreSignExternalDeltaOrder<T>;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
type AvailableMethods = ExtractAbiMethodNames<typeof PreSignatureModuleAbi>;
|
|
47
|
+
|
|
48
|
+
// returns whatever `contractCaller` returns
|
|
49
|
+
// to allow for better versatility
|
|
50
|
+
export const constructPreSignExternalDeltaOrder = <T>(
|
|
51
|
+
options: ConstructProviderFetchInput<T, 'transactCall'>
|
|
52
|
+
): PreSignExternalDeltaOrderFunctions<T> => {
|
|
53
|
+
const hashExternalDeltaOrderTypedData: HashExternalDeltaOrderTypedData = (
|
|
54
|
+
typedData
|
|
55
|
+
) => {
|
|
56
|
+
// types allow to pass OrderData & extra_stuff, but tx will break like that
|
|
57
|
+
const typedDataOnly: SignableExternalOrderData = {
|
|
58
|
+
...typedData,
|
|
59
|
+
data: sanitizeExternalOrderData(typedData.data),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const orderHash = produceExternalOrderHash(typedDataOnly);
|
|
63
|
+
|
|
64
|
+
return orderHash;
|
|
65
|
+
};
|
|
66
|
+
// cached internally
|
|
67
|
+
const { getDeltaContract } = constructGetDeltaContract(options);
|
|
68
|
+
|
|
69
|
+
const hashExternalDeltaOrder: HashExternalDeltaOrder = async (
|
|
70
|
+
orderData,
|
|
71
|
+
requestParams
|
|
72
|
+
) => {
|
|
73
|
+
const ParaswapDelta = await getDeltaContract(requestParams);
|
|
74
|
+
if (!ParaswapDelta) {
|
|
75
|
+
throw new Error(`Delta is not available on chain ${options.chainId}`);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const typedData = produceExternalOrderTypedData({
|
|
79
|
+
orderInput: orderData,
|
|
80
|
+
chainId: options.chainId,
|
|
81
|
+
paraswapDeltaAddress: ParaswapDelta,
|
|
82
|
+
});
|
|
83
|
+
return hashExternalDeltaOrderTypedData(typedData);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const setExternalDeltaOrderPreSignature: SetExternalDeltaOrderPreSignature<
|
|
87
|
+
T
|
|
88
|
+
> = async (orderHash, overrides = {}, requestParams) => {
|
|
89
|
+
const ParaswapDelta = await getDeltaContract(requestParams);
|
|
90
|
+
if (!ParaswapDelta) {
|
|
91
|
+
throw new Error(`Delta is not available on chain ${options.chainId}`);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const res = await options.contractCaller.transactCall<AvailableMethods>({
|
|
95
|
+
address: ParaswapDelta,
|
|
96
|
+
abi: PreSignatureModuleAbi,
|
|
97
|
+
contractMethod: 'setPreSignature',
|
|
98
|
+
args: [orderHash, true],
|
|
99
|
+
overrides,
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
return res;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const preSignExternalDeltaOrder: PreSignExternalDeltaOrder<T> = async (
|
|
106
|
+
signableOrderData,
|
|
107
|
+
overrides = {},
|
|
108
|
+
requestParams
|
|
109
|
+
) => {
|
|
110
|
+
const orderHash = hashExternalDeltaOrderTypedData(signableOrderData);
|
|
111
|
+
const res = await setExternalDeltaOrderPreSignature(
|
|
112
|
+
orderHash,
|
|
113
|
+
overrides,
|
|
114
|
+
requestParams
|
|
115
|
+
);
|
|
116
|
+
return res;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
return {
|
|
120
|
+
hashExternalDeltaOrderTypedData,
|
|
121
|
+
hashExternalDeltaOrder,
|
|
122
|
+
setExternalDeltaOrderPreSignature,
|
|
123
|
+
preSignExternalDeltaOrder,
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export function produceExternalOrderHash(
|
|
128
|
+
typedData: SignableExternalOrderData
|
|
129
|
+
): string {
|
|
130
|
+
return hashTypedData({
|
|
131
|
+
domain: {
|
|
132
|
+
name: typedData.domain.name,
|
|
133
|
+
version: typedData.domain.version,
|
|
134
|
+
chainId: typedData.domain.chainId,
|
|
135
|
+
verifyingContract: typedData.domain.verifyingContract as `0x${string}`,
|
|
136
|
+
},
|
|
137
|
+
types: typedData.types,
|
|
138
|
+
primaryType: findPrimaryType(typedData.types),
|
|
139
|
+
message: typedData.data,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ConstructProviderFetchInput } from '../../types';
|
|
2
|
+
import { SignableExternalOrderData } from './helpers/buildExternalOrderData';
|
|
3
|
+
import { sanitizeExternalOrderData } from './helpers/misc';
|
|
4
|
+
|
|
5
|
+
type SignExternalDeltaOrder = (
|
|
6
|
+
signableOrderData: SignableExternalOrderData
|
|
7
|
+
) => Promise<string>;
|
|
8
|
+
|
|
9
|
+
export type SignExternalDeltaOrderFunctions = {
|
|
10
|
+
signExternalDeltaOrder: SignExternalDeltaOrder;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// returns whatever `contractCaller` returns
|
|
14
|
+
// to allow for better versatility
|
|
15
|
+
export const constructSignExternalDeltaOrder = (
|
|
16
|
+
options: Pick<
|
|
17
|
+
ConstructProviderFetchInput<any, 'signTypedDataCall'>,
|
|
18
|
+
'contractCaller'
|
|
19
|
+
>
|
|
20
|
+
): SignExternalDeltaOrderFunctions => {
|
|
21
|
+
const signExternalDeltaOrder: SignExternalDeltaOrder = async (typedData) => {
|
|
22
|
+
// types allow to pass OrderData & extra_stuff, but tx will break like that
|
|
23
|
+
const typedDataOnly: SignableExternalOrderData = {
|
|
24
|
+
...typedData,
|
|
25
|
+
data: sanitizeExternalOrderData(typedData.data),
|
|
26
|
+
};
|
|
27
|
+
const signature = await options.contractCaller.signTypedDataCall(
|
|
28
|
+
typedDataOnly
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
return signature;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return { signExternalDeltaOrder };
|
|
35
|
+
};
|
|
@@ -3,6 +3,7 @@ import { ApproveToken, approveTokenMethodFactory } from '../../helpers/approve';
|
|
|
3
3
|
import { constructApproveToken } from '../swap/approve';
|
|
4
4
|
import { constructGetSpender } from '../swap/spender';
|
|
5
5
|
|
|
6
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
6
7
|
export type ApproveTokenForLimitOrderFunctions<T> = {
|
|
7
8
|
/** @description approving AugustusRFQ as spender for makerAsset */
|
|
8
9
|
approveMakerTokenForLimitOrder: ApproveToken<T>;
|
|
@@ -14,6 +15,7 @@ export type ApproveTokenForLimitOrderFunctions<T> = {
|
|
|
14
15
|
|
|
15
16
|
// returns whatever `contractCaller` returns
|
|
16
17
|
// to allow for better versatility
|
|
18
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
17
19
|
export const constructApproveTokenForLimitOrder = <T>(
|
|
18
20
|
options: ConstructProviderFetchInput<T, 'transactCall'>
|
|
19
21
|
): ApproveTokenForLimitOrderFunctions<T> => {
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from './helpers/buildOrderData';
|
|
9
9
|
export * from './helpers/buildOrderData';
|
|
10
10
|
|
|
11
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
11
12
|
export type BuildLimitOrderInput = Omit<
|
|
12
13
|
BuildOrderDataInput,
|
|
13
14
|
'chainId' | 'verifyingContract' | 'AugustusAddress' | 'AppVersion'
|
|
@@ -18,11 +19,13 @@ type BuildLimitOrder = (
|
|
|
18
19
|
requestParams?: RequestParameters
|
|
19
20
|
) => Promise<SignableOrderData>;
|
|
20
21
|
|
|
22
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
21
23
|
export type BuildLimitOrderFunctions = {
|
|
22
24
|
/** @description Build Orders that will be excuted through AugustusSwapper */
|
|
23
25
|
buildLimitOrder: BuildLimitOrder;
|
|
24
26
|
};
|
|
25
27
|
|
|
28
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
26
29
|
export const constructBuildLimitOrder = (
|
|
27
30
|
options: ConstructFetchInput
|
|
28
31
|
): BuildLimitOrderFunctions => {
|
|
@@ -18,6 +18,7 @@ export type CancelOrderBulk<T> = (
|
|
|
18
18
|
requestParams?: RequestParameters
|
|
19
19
|
) => Promise<T>;
|
|
20
20
|
|
|
21
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
21
22
|
export type CancelLimitOrderFunctions<T> = {
|
|
22
23
|
cancelLimitOrder: CancelOrder<T>;
|
|
23
24
|
cancelLimitOrderBulk: CancelOrderBulk<T>;
|
|
@@ -57,6 +58,7 @@ type AvailableMethods = ExtractAbiMethodNames<typeof MinAugustusRFQAbi>;
|
|
|
57
58
|
|
|
58
59
|
// returns whatever `contractCaller` returns
|
|
59
60
|
// to allow for better versatility
|
|
61
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
60
62
|
export const constructCancelLimitOrder = <T>(
|
|
61
63
|
options: ConstructProviderFetchInput<T, 'transactCall'>
|
|
62
64
|
): CancelLimitOrderFunctions<T> => {
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
encodeEIP_2612PermitFunctionInput,
|
|
13
13
|
} from '../common/orders/encoding';
|
|
14
14
|
|
|
15
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
15
16
|
export type FillOrderDirectlyFunctions<T> = {
|
|
16
17
|
fillOrderDirectly: FillOrderDirectly<T>;
|
|
17
18
|
};
|
|
@@ -204,6 +205,7 @@ type FillOrderMethods = ExtractAbiMethodNames<typeof MinAugustusRFQAbi>;
|
|
|
204
205
|
|
|
205
206
|
// returns whatever `contractCaller` returns
|
|
206
207
|
// to allow for better versatility
|
|
208
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
207
209
|
export function constructFillOrderDirectly<T>(
|
|
208
210
|
options: ConstructProviderFetchInput<T, 'transactCall'>
|
|
209
211
|
): FillOrderDirectlyFunctions<T> {
|
|
@@ -52,6 +52,7 @@ type GetRequiredBalance = (
|
|
|
52
52
|
requestParams?: RequestParameters
|
|
53
53
|
) => Promise<Record<string, string>>;
|
|
54
54
|
|
|
55
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
55
56
|
export type GetLimitOrdersFunctions = {
|
|
56
57
|
getLimitOrders: GetLimitOrders;
|
|
57
58
|
getLimitOrderByHash: GetLimitOrderByHash;
|
|
@@ -67,6 +68,7 @@ export type GetLimitOrdersFunctions = {
|
|
|
67
68
|
getRequiredBalance: GetRequiredBalance;
|
|
68
69
|
};
|
|
69
70
|
|
|
71
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
70
72
|
export const constructGetLimitOrders = ({
|
|
71
73
|
apiURL = API_URL,
|
|
72
74
|
chainId,
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { ConstructFetchInput } from '../../types';
|
|
2
2
|
import { constructGetSpender, GetSpender } from '../swap/spender';
|
|
3
3
|
|
|
4
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
4
5
|
export type GetLimitOrdersContractFunctions = {
|
|
5
6
|
getLimitOrdersContract: GetSpender;
|
|
6
7
|
getTokenTransferProxy: GetSpender;
|
|
7
8
|
};
|
|
8
9
|
|
|
10
|
+
/** @deprecated Limit Orders are deprecated and will be removed in a future version. */
|
|
9
11
|
export const constructGetLimitOrdersContract = (
|
|
10
12
|
options: ConstructFetchInput
|
|
11
13
|
): GetLimitOrdersContractFunctions => {
|