@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
package/package.json
CHANGED
package/src/constants.js
ADDED
package/src/examples/delta.ts
CHANGED
|
@@ -14,10 +14,13 @@ const fetcher = constructAxiosFetcher(axios);
|
|
|
14
14
|
const provider = ethers.getDefaultProvider(1);
|
|
15
15
|
const signer = Wallet.createRandom().connect(provider);
|
|
16
16
|
const account = signer.address;
|
|
17
|
-
const contractCaller = constructEthersContractCaller(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const contractCaller = constructEthersContractCaller(
|
|
18
|
+
{
|
|
19
|
+
ethersProviderOrSigner: provider,
|
|
20
|
+
EthersContract: ethers.Contract,
|
|
21
|
+
},
|
|
22
|
+
account
|
|
23
|
+
);
|
|
21
24
|
|
|
22
25
|
// type AdaptersFunctions & ApproveTokenFunctions<ethers.ContractTransaction>
|
|
23
26
|
const deltaSDK = constructPartialSDK(
|
|
@@ -51,14 +54,6 @@ async function simpleDeltaFlow() {
|
|
|
51
54
|
const tx = await deltaSDK.approveTokenForDelta(amount, DAI_TOKEN);
|
|
52
55
|
await tx.wait();
|
|
53
56
|
|
|
54
|
-
const slippagePercent = 0.5;
|
|
55
|
-
const destAmountAfterSlippage = BigInt(
|
|
56
|
-
// get rid of exponential notation
|
|
57
|
-
|
|
58
|
-
+(+deltaPrice.destAmount * (1 - slippagePercent / 100)).toFixed(0)
|
|
59
|
-
// get rid of decimals
|
|
60
|
-
).toString(10);
|
|
61
|
-
|
|
62
57
|
const deltaAuction = await deltaSDK.submitDeltaOrder({
|
|
63
58
|
deltaPrice,
|
|
64
59
|
owner: account,
|
|
@@ -67,7 +62,7 @@ async function simpleDeltaFlow() {
|
|
|
67
62
|
srcToken: DAI_TOKEN,
|
|
68
63
|
destToken: USDC_TOKEN,
|
|
69
64
|
srcAmount: amount,
|
|
70
|
-
|
|
65
|
+
slippage: 50, // 50 bps = 0.5% slippage, destAmount auto-computed from deltaPrice
|
|
71
66
|
});
|
|
72
67
|
|
|
73
68
|
// poll if necessary
|
|
@@ -92,12 +87,6 @@ async function manualDeltaFlow() {
|
|
|
92
87
|
const tx = await deltaSDK.approveTokenForDelta(amount, DAI_TOKEN);
|
|
93
88
|
await tx.wait();
|
|
94
89
|
|
|
95
|
-
const slippagePercent = 0.5;
|
|
96
|
-
const destAmountAfterSlippage = (
|
|
97
|
-
+deltaPrice.destAmount *
|
|
98
|
-
(1 - slippagePercent / 100)
|
|
99
|
-
).toString(10);
|
|
100
|
-
|
|
101
90
|
const signableOrderData = await deltaSDK.buildDeltaOrder({
|
|
102
91
|
deltaPrice,
|
|
103
92
|
owner: account,
|
|
@@ -106,7 +95,7 @@ async function manualDeltaFlow() {
|
|
|
106
95
|
srcToken: DAI_TOKEN,
|
|
107
96
|
destToken: USDC_TOKEN,
|
|
108
97
|
srcAmount: amount,
|
|
109
|
-
|
|
98
|
+
slippage: 50, // 50 bps = 0.5% slippage, destAmount auto-computed from deltaPrice
|
|
110
99
|
});
|
|
111
100
|
|
|
112
101
|
const signature = await deltaSDK.signDeltaOrder(signableOrderData);
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
import { ethers, Wallet } from 'ethersV5';
|
|
4
|
+
import {
|
|
5
|
+
constructPartialSDK,
|
|
6
|
+
constructEthersContractCaller,
|
|
7
|
+
constructAxiosFetcher,
|
|
8
|
+
constructAllDeltaOrdersHandlers,
|
|
9
|
+
SwapSide,
|
|
10
|
+
} from '..';
|
|
11
|
+
import { startStatusCheck } from './helpers/delta';
|
|
12
|
+
|
|
13
|
+
const fetcher = constructAxiosFetcher(axios);
|
|
14
|
+
|
|
15
|
+
const provider = ethers.getDefaultProvider(1); // Ethereum
|
|
16
|
+
const signer = Wallet.createRandom().connect(provider);
|
|
17
|
+
const account = signer.address;
|
|
18
|
+
const contractCaller = constructEthersContractCaller(
|
|
19
|
+
{
|
|
20
|
+
ethersProviderOrSigner: signer,
|
|
21
|
+
EthersContract: ethers.Contract,
|
|
22
|
+
},
|
|
23
|
+
account
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
const deltaSDK = constructPartialSDK(
|
|
27
|
+
{
|
|
28
|
+
chainId: 1, // Ethereum
|
|
29
|
+
fetcher,
|
|
30
|
+
contractCaller,
|
|
31
|
+
},
|
|
32
|
+
constructAllDeltaOrdersHandlers
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Ethereum tokens
|
|
36
|
+
const USDC = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
|
|
37
|
+
const WETH = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
|
|
38
|
+
|
|
39
|
+
// Aave external handler on Ethereum (https://etherscan.io/address/0xb4a2c36668cf8b19fe08f263e3685a5e16e82912#code)
|
|
40
|
+
// The handler contract is provided by the integrator and must implement IExternalProtocolHandler.
|
|
41
|
+
// Different handlers serve different purposes and may have different prerequisites
|
|
42
|
+
// (e.g. token approvals, credit delegation, position setup).
|
|
43
|
+
const AAVE_HANDLER = '0xb4a2c36668cf8b19fe08f263e3685a5e16e82912';
|
|
44
|
+
|
|
45
|
+
// Aave-specific order types passed as `data` field.
|
|
46
|
+
// The `data` encoding is handler-specific — each handler defines its own format.
|
|
47
|
+
const AaveOrderTypes = {
|
|
48
|
+
COLLATERAL_SWAP:
|
|
49
|
+
'0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
50
|
+
DEBT_SWAP:
|
|
51
|
+
'0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
52
|
+
REPAY_WITH_COLLATERAL:
|
|
53
|
+
'0x0000000000000000000000000000000000000000000000000000000000000002',
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Aave Collateral Swap: swap one collateral asset for another (SELL side)
|
|
57
|
+
// Prerequisites: user must approve the source aToken to the handler
|
|
58
|
+
async function collateralSwapFlow() {
|
|
59
|
+
const amount = ethers.utils.parseUnits('1', 6).toString(); // 1 USDC
|
|
60
|
+
|
|
61
|
+
const deltaPrice = await deltaSDK.getDeltaPrice({
|
|
62
|
+
srcToken: USDC,
|
|
63
|
+
destToken: WETH,
|
|
64
|
+
amount,
|
|
65
|
+
userAddress: account,
|
|
66
|
+
srcDecimals: 6,
|
|
67
|
+
destDecimals: 18,
|
|
68
|
+
side: SwapSide.SELL,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
const signableOrderData = await deltaSDK.buildExternalDeltaOrder({
|
|
72
|
+
deltaPrice,
|
|
73
|
+
owner: account,
|
|
74
|
+
handler: AAVE_HANDLER,
|
|
75
|
+
data: AaveOrderTypes.COLLATERAL_SWAP,
|
|
76
|
+
srcToken: USDC,
|
|
77
|
+
destToken: WETH,
|
|
78
|
+
srcAmount: amount,
|
|
79
|
+
slippage: 50, // 0.5% slippage in bps
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
const signature = await deltaSDK.signExternalDeltaOrder(signableOrderData);
|
|
83
|
+
|
|
84
|
+
const deltaAuction = await deltaSDK.postExternalDeltaOrder({
|
|
85
|
+
order: signableOrderData.data,
|
|
86
|
+
signature,
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
startStatusCheck(() => deltaSDK.getDeltaOrderById(deltaAuction.id));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Aave Debt Swap: swap one debt for another (BUY side)
|
|
93
|
+
// Prerequisites: user must grant borrowAllowance on the source variable debt token to the handler
|
|
94
|
+
async function debtSwapFlow() {
|
|
95
|
+
const debtAmount = ethers.utils.parseUnits('1', 6).toString(); // amount of debt to swap
|
|
96
|
+
|
|
97
|
+
const deltaPrice = await deltaSDK.getDeltaPrice({
|
|
98
|
+
srcToken: USDC,
|
|
99
|
+
destToken: WETH,
|
|
100
|
+
amount: debtAmount,
|
|
101
|
+
userAddress: account,
|
|
102
|
+
srcDecimals: 6,
|
|
103
|
+
destDecimals: 18,
|
|
104
|
+
side: SwapSide.BUY,
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const signableOrderData = await deltaSDK.buildExternalDeltaOrder({
|
|
108
|
+
deltaPrice,
|
|
109
|
+
owner: account,
|
|
110
|
+
handler: AAVE_HANDLER,
|
|
111
|
+
data: AaveOrderTypes.DEBT_SWAP,
|
|
112
|
+
srcToken: USDC,
|
|
113
|
+
destToken: WETH,
|
|
114
|
+
destAmount: debtAmount,
|
|
115
|
+
slippage: 50, // 0.5% slippage in bps
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const signature = await deltaSDK.signExternalDeltaOrder(signableOrderData);
|
|
119
|
+
|
|
120
|
+
const deltaAuction = await deltaSDK.postExternalDeltaOrder({
|
|
121
|
+
order: signableOrderData.data,
|
|
122
|
+
signature,
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
startStatusCheck(() => deltaSDK.getDeltaOrderById(deltaAuction.id));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Aave Repay with Collateral: use collateral to repay debt (BUY side)
|
|
129
|
+
// Prerequisites: user must approve the source aToken to the handler
|
|
130
|
+
async function repayWithCollateralFlow() {
|
|
131
|
+
const collateralAmount = ethers.utils.parseUnits('1', 6).toString();
|
|
132
|
+
|
|
133
|
+
const deltaPrice = await deltaSDK.getDeltaPrice({
|
|
134
|
+
srcToken: USDC,
|
|
135
|
+
destToken: WETH,
|
|
136
|
+
amount: collateralAmount,
|
|
137
|
+
userAddress: account,
|
|
138
|
+
srcDecimals: 6,
|
|
139
|
+
destDecimals: 18,
|
|
140
|
+
side: SwapSide.BUY,
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const signableOrderData = await deltaSDK.buildExternalDeltaOrder({
|
|
144
|
+
deltaPrice,
|
|
145
|
+
owner: account,
|
|
146
|
+
handler: AAVE_HANDLER,
|
|
147
|
+
data: AaveOrderTypes.REPAY_WITH_COLLATERAL,
|
|
148
|
+
srcToken: USDC,
|
|
149
|
+
destToken: WETH,
|
|
150
|
+
destAmount: collateralAmount,
|
|
151
|
+
slippage: 50, // 0.5% slippage in bps
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
const signature = await deltaSDK.signExternalDeltaOrder(signableOrderData);
|
|
155
|
+
|
|
156
|
+
const deltaAuction = await deltaSDK.postExternalDeltaOrder({
|
|
157
|
+
order: signableOrderData.data,
|
|
158
|
+
signature,
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
startStatusCheck(() => deltaSDK.getDeltaOrderById(deltaAuction.id));
|
|
162
|
+
}
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { DeltaAuction
|
|
1
|
+
import { DeltaAuction } from '../..';
|
|
2
2
|
|
|
3
3
|
function isExecutedDeltaAuction(
|
|
4
|
-
auction:
|
|
4
|
+
auction: DeltaAuction,
|
|
5
5
|
waitForCrosschain = true // only consider executed when destChain work is done
|
|
6
6
|
) {
|
|
7
7
|
if (auction.status !== 'EXECUTED') return false;
|
|
8
8
|
|
|
9
9
|
// crosschain Order is executed on destChain if bridgeStatus is filled
|
|
10
|
-
if (
|
|
10
|
+
if (
|
|
11
|
+
waitForCrosschain &&
|
|
12
|
+
auction.onChainOrderType === 'Order' &&
|
|
13
|
+
auction.order.bridge.destinationChainId !== 0
|
|
14
|
+
) {
|
|
11
15
|
return auction.bridgeStatus === 'filled';
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
return true;
|
|
15
19
|
}
|
|
16
20
|
|
|
17
|
-
type GetDeltaOrderFn = () => Promise<
|
|
21
|
+
type GetDeltaOrderFn = () => Promise<DeltaAuction>;
|
|
18
22
|
|
|
19
23
|
function fetchOrderPeriodically(getDeltaOrder: GetDeltaOrderFn) {
|
|
20
24
|
const intervalId = setInterval(async () => {
|
package/src/gas.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/src/index.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { constructApproveToken } from './methods/swap/approve';
|
|
2
|
+
import { constructGetBalances, isAllowance } from './methods/swap/balance';
|
|
3
|
+
import { constructGetSpender } from './methods/swap/spender';
|
|
4
|
+
import { constructGetAdapters } from './methods/swap/adapters';
|
|
5
|
+
import { constructGetRate } from './methods/swap/rates';
|
|
6
|
+
import { constructSwapTx } from './methods/swap/swapTx';
|
|
7
|
+
import { constructGetTokens } from './methods/swap/token';
|
|
8
|
+
import { constructBuildTx } from './methods/swap/transaction';
|
|
9
|
+
import { constructBuildLimitOrder } from './methods/limitOrders/buildOrder';
|
|
10
|
+
import { constructSignLimitOrder } from './methods/limitOrders/signOrder';
|
|
11
|
+
import { constructCancelLimitOrder } from './methods/limitOrders/cancelOrder';
|
|
12
|
+
import { constructFillOrderDirectly } from './methods/limitOrders/fillOrderDirectly';
|
|
13
|
+
import { constructGetLimitOrders } from './methods/limitOrders/getOrders';
|
|
14
|
+
import { constructPostLimitOrder } from './methods/limitOrders/postOrder';
|
|
15
|
+
import { constructApproveTokenForLimitOrder } from './methods/limitOrders/approveForOrder';
|
|
16
|
+
import { constructGetLimitOrdersContract } from './methods/limitOrders/getOrdersContract';
|
|
17
|
+
import { constructBuildLimitOrderTx } from './methods/limitOrders/transaction';
|
|
18
|
+
import { constructBuildNFTOrder } from './methods/nftOrders/buildOrder';
|
|
19
|
+
import { constructSignNFTOrder } from './methods/nftOrders/signOrder';
|
|
20
|
+
import { constructCancelNFTOrder } from './methods/nftOrders/cancelOrder';
|
|
21
|
+
import { constructGetNFTOrders } from './methods/nftOrders/getOrders';
|
|
22
|
+
import { constructPostNFTOrder } from './methods/nftOrders/postOrder';
|
|
23
|
+
import { constructApproveTokenForNFTOrder } from './methods/nftOrders/approveForOrder';
|
|
24
|
+
import { constructGetNFTOrdersContract } from './methods/nftOrders/getOrdersContract';
|
|
25
|
+
import { constructBuildNFTOrderTx } from './methods/nftOrders/transaction';
|
|
26
|
+
import {
|
|
27
|
+
constructEthersContractCaller,
|
|
28
|
+
constructEthersV5ContractCaller,
|
|
29
|
+
constructEthersV6ContractCaller,
|
|
30
|
+
constructWeb3ContractCaller,
|
|
31
|
+
constructViemContractCaller,
|
|
32
|
+
txParamsToViemTxParams,
|
|
33
|
+
constructAxiosFetcher,
|
|
34
|
+
constructFetchFetcher,
|
|
35
|
+
isFetcherError,
|
|
36
|
+
constructToken,
|
|
37
|
+
} from './helpers';
|
|
38
|
+
import { constructBuildDeltaOrder } from './methods/delta/buildDeltaOrder';
|
|
39
|
+
import { constructPostDeltaOrder } from './methods/delta/postDeltaOrder';
|
|
40
|
+
import { constructSignDeltaOrder } from './methods/delta/signDeltaOrder';
|
|
41
|
+
import { constructPreSignDeltaOrder } from './methods/delta/preSignDeltaOrder';
|
|
42
|
+
import { constructGetDeltaContract } from './methods/delta/getDeltaContract';
|
|
43
|
+
import { constructGetDeltaPrice } from './methods/delta/getDeltaPrice';
|
|
44
|
+
import { constructGetDeltaOrders } from './methods/delta/getDeltaOrders';
|
|
45
|
+
import { constructApproveTokenForDelta } from './methods/delta/approveForDelta';
|
|
46
|
+
import { constructGetPartnerFee } from './methods/delta/getPartnerFee';
|
|
47
|
+
import { constructGetBridgeInfo } from './methods/delta/getBridgeInfo';
|
|
48
|
+
import { constructIsTokenSupportedInDelta } from './methods/delta/isTokenSupportedInDelta';
|
|
49
|
+
import { constructBuildExternalDeltaOrder } from './methods/delta/buildExternalDeltaOrder';
|
|
50
|
+
import { constructSignExternalDeltaOrder } from './methods/delta/signExternalDeltaOrder';
|
|
51
|
+
import { constructPostExternalDeltaOrder } from './methods/delta/postExternalDeltaOrder';
|
|
52
|
+
import { constructPreSignExternalDeltaOrder } from './methods/delta/preSignExternalDeltaOrder';
|
|
53
|
+
import { constructGetQuote } from './methods/quote/getQuote';
|
|
54
|
+
import { constructCancelDeltaOrder } from './methods/delta/cancelDeltaOrder';
|
|
55
|
+
import { constructDeltaTokenModule } from './methods/delta/deltaTokenModule';
|
|
56
|
+
export { constructSwapSDK } from './methods/swap';
|
|
57
|
+
export {
|
|
58
|
+
constructAllLimitOrdersHandlers,
|
|
59
|
+
constructSubmitLimitOrder,
|
|
60
|
+
} from './methods/limitOrders';
|
|
61
|
+
export {
|
|
62
|
+
constructAllDeltaOrdersHandlers,
|
|
63
|
+
constructSubmitDeltaOrder,
|
|
64
|
+
constructSubmitExternalDeltaOrder,
|
|
65
|
+
} from './methods/delta';
|
|
66
|
+
export * from './constants';
|
|
67
|
+
// can import these individually
|
|
68
|
+
// and use in constructPartialSDK only what you need
|
|
69
|
+
// unused should tree-shake
|
|
70
|
+
export {
|
|
71
|
+
// swap methods:
|
|
72
|
+
constructApproveToken,
|
|
73
|
+
constructGetBalances, // getAllowances is inside
|
|
74
|
+
constructGetSpender, // this was getTokenTransferProxy
|
|
75
|
+
constructGetTokens,
|
|
76
|
+
constructBuildTx,
|
|
77
|
+
constructGetAdapters,
|
|
78
|
+
constructGetRate,
|
|
79
|
+
constructSwapTx,
|
|
80
|
+
// limitOrders methods:
|
|
81
|
+
constructBuildLimitOrder,
|
|
82
|
+
constructSignLimitOrder,
|
|
83
|
+
constructCancelLimitOrder,
|
|
84
|
+
constructFillOrderDirectly,
|
|
85
|
+
constructGetLimitOrders,
|
|
86
|
+
constructPostLimitOrder,
|
|
87
|
+
constructApproveTokenForLimitOrder,
|
|
88
|
+
constructGetLimitOrdersContract,
|
|
89
|
+
constructBuildLimitOrderTx,
|
|
90
|
+
// nftOrders methods
|
|
91
|
+
constructBuildNFTOrder,
|
|
92
|
+
constructSignNFTOrder,
|
|
93
|
+
constructCancelNFTOrder,
|
|
94
|
+
constructGetNFTOrders,
|
|
95
|
+
constructPostNFTOrder,
|
|
96
|
+
constructApproveTokenForNFTOrder,
|
|
97
|
+
constructGetNFTOrdersContract,
|
|
98
|
+
constructBuildNFTOrderTx,
|
|
99
|
+
// Delta methods
|
|
100
|
+
constructBuildDeltaOrder,
|
|
101
|
+
constructPostDeltaOrder,
|
|
102
|
+
constructSignDeltaOrder,
|
|
103
|
+
constructPreSignDeltaOrder,
|
|
104
|
+
constructGetDeltaContract,
|
|
105
|
+
constructGetDeltaPrice,
|
|
106
|
+
constructGetDeltaOrders,
|
|
107
|
+
constructCancelDeltaOrder,
|
|
108
|
+
constructDeltaTokenModule,
|
|
109
|
+
constructApproveTokenForDelta,
|
|
110
|
+
// External Delta methods
|
|
111
|
+
constructBuildExternalDeltaOrder,
|
|
112
|
+
constructSignExternalDeltaOrder,
|
|
113
|
+
constructPostExternalDeltaOrder,
|
|
114
|
+
constructPreSignExternalDeltaOrder,
|
|
115
|
+
// Quote methods
|
|
116
|
+
constructGetQuote,
|
|
117
|
+
// different helpers
|
|
118
|
+
constructGetPartnerFee,
|
|
119
|
+
constructGetBridgeInfo,
|
|
120
|
+
constructIsTokenSupportedInDelta,
|
|
121
|
+
constructEthersContractCaller, // same as constructEthersV5ContractCaller for backwards compatibility
|
|
122
|
+
constructEthersV5ContractCaller,
|
|
123
|
+
constructEthersV6ContractCaller,
|
|
124
|
+
constructWeb3ContractCaller,
|
|
125
|
+
constructViemContractCaller,
|
|
126
|
+
txParamsToViemTxParams,
|
|
127
|
+
constructAxiosFetcher,
|
|
128
|
+
constructFetchFetcher,
|
|
129
|
+
isFetcherError,
|
|
130
|
+
isAllowance,
|
|
131
|
+
constructToken,
|
|
132
|
+
};
|
|
133
|
+
export { constructPartialSDK } from './sdk/partial';
|
|
134
|
+
export { constructFullSDK } from './sdk/full';
|
|
135
|
+
export { constructSimpleSDK } from './sdk/simple';
|
|
136
|
+
// bundled methods for limitOrders
|
|
137
|
+
export * from './methods/limitOrders';
|
|
138
|
+
export * from './methods/limitOrders/helpers/types';
|
|
139
|
+
// bundled methods for nftOrders
|
|
140
|
+
export * from './methods/nftOrders';
|
|
141
|
+
export * from './methods/nftOrders/helpers/types';
|
|
142
|
+
export { AssetType } from './methods/nftOrders/helpers/misc';
|
package/src/index.ts
CHANGED
|
@@ -144,17 +144,18 @@ import type {
|
|
|
144
144
|
BridgeMetadata,
|
|
145
145
|
BridgeStatus,
|
|
146
146
|
Bridge,
|
|
147
|
+
ExternalDeltaOrder,
|
|
148
|
+
OnChainOrderType,
|
|
149
|
+
SwapSideUnion,
|
|
147
150
|
} from './methods/delta/helpers/types';
|
|
148
151
|
import {
|
|
149
152
|
BuildDeltaOrderDataParams,
|
|
150
153
|
BuildDeltaOrderFunctions,
|
|
151
154
|
constructBuildDeltaOrder,
|
|
152
155
|
SignableDeltaOrderData,
|
|
153
|
-
SwapSideUnion,
|
|
154
156
|
} from './methods/delta/buildDeltaOrder';
|
|
155
157
|
import {
|
|
156
158
|
constructPostDeltaOrder,
|
|
157
|
-
DeltaOrderApiResponse,
|
|
158
159
|
PostDeltaOrderFunctions,
|
|
159
160
|
PostDeltaOrderParams,
|
|
160
161
|
} from './methods/delta/postDeltaOrder';
|
|
@@ -203,6 +204,26 @@ import {
|
|
|
203
204
|
IsTokenSupportedInDeltaFunctions,
|
|
204
205
|
} from './methods/delta/isTokenSupportedInDelta';
|
|
205
206
|
|
|
207
|
+
import {
|
|
208
|
+
constructBuildExternalDeltaOrder,
|
|
209
|
+
BuildExternalDeltaOrderFunctions,
|
|
210
|
+
BuildExternalDeltaOrderParams,
|
|
211
|
+
} from './methods/delta/buildExternalDeltaOrder';
|
|
212
|
+
import type { SignableExternalOrderData } from './methods/delta/helpers/buildExternalOrderData';
|
|
213
|
+
import {
|
|
214
|
+
constructSignExternalDeltaOrder,
|
|
215
|
+
SignExternalDeltaOrderFunctions,
|
|
216
|
+
} from './methods/delta/signExternalDeltaOrder';
|
|
217
|
+
import {
|
|
218
|
+
constructPostExternalDeltaOrder,
|
|
219
|
+
PostExternalDeltaOrderFunctions,
|
|
220
|
+
PostExternalDeltaOrderParams,
|
|
221
|
+
} from './methods/delta/postExternalDeltaOrder';
|
|
222
|
+
import {
|
|
223
|
+
constructPreSignExternalDeltaOrder,
|
|
224
|
+
PreSignExternalDeltaOrderFunctions,
|
|
225
|
+
} from './methods/delta/preSignExternalDeltaOrder';
|
|
226
|
+
|
|
206
227
|
import {
|
|
207
228
|
constructGetQuote,
|
|
208
229
|
GetQuoteFunctions,
|
|
@@ -235,8 +256,10 @@ export {
|
|
|
235
256
|
export {
|
|
236
257
|
constructAllDeltaOrdersHandlers,
|
|
237
258
|
constructSubmitDeltaOrder,
|
|
259
|
+
constructSubmitExternalDeltaOrder,
|
|
238
260
|
DeltaOrderHandlers,
|
|
239
261
|
SubmitDeltaOrderParams,
|
|
262
|
+
SubmitExternalDeltaOrderParams,
|
|
240
263
|
} from './methods/delta';
|
|
241
264
|
|
|
242
265
|
export type {
|
|
@@ -309,6 +332,11 @@ export {
|
|
|
309
332
|
constructCancelDeltaOrder,
|
|
310
333
|
constructDeltaTokenModule,
|
|
311
334
|
constructApproveTokenForDelta,
|
|
335
|
+
// External Delta methods
|
|
336
|
+
constructBuildExternalDeltaOrder,
|
|
337
|
+
constructSignExternalDeltaOrder,
|
|
338
|
+
constructPostExternalDeltaOrder,
|
|
339
|
+
constructPreSignExternalDeltaOrder,
|
|
312
340
|
// Quote methods
|
|
313
341
|
constructGetQuote,
|
|
314
342
|
// different helpers
|
|
@@ -382,7 +410,6 @@ export type {
|
|
|
382
410
|
DeltaAuction,
|
|
383
411
|
DeltaAuctionStatus,
|
|
384
412
|
DeltaOrderFilterByStatus,
|
|
385
|
-
DeltaOrderApiResponse,
|
|
386
413
|
DeltaOrderFromAPI,
|
|
387
414
|
// bridge part of DeltaOrder
|
|
388
415
|
BridgeMetadata,
|
|
@@ -407,6 +434,16 @@ export type {
|
|
|
407
434
|
CancelAndWithdrawDeltaOrderParams,
|
|
408
435
|
DepositNativeAndPreSignParams,
|
|
409
436
|
DepositNativeAndPreSignDeltaOrderParams,
|
|
437
|
+
// External Delta types
|
|
438
|
+
ExternalDeltaOrder,
|
|
439
|
+
OnChainOrderType,
|
|
440
|
+
SignableExternalOrderData,
|
|
441
|
+
BuildExternalDeltaOrderParams,
|
|
442
|
+
BuildExternalDeltaOrderFunctions,
|
|
443
|
+
SignExternalDeltaOrderFunctions,
|
|
444
|
+
PostExternalDeltaOrderFunctions,
|
|
445
|
+
PostExternalDeltaOrderParams,
|
|
446
|
+
PreSignExternalDeltaOrderFunctions,
|
|
410
447
|
// types for Quote methods
|
|
411
448
|
GetQuoteFunctions,
|
|
412
449
|
QuoteParams,
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
ConstructFetchInput,
|
|
3
|
-
EnumerateLiteral,
|
|
4
|
-
RequestParameters,
|
|
5
|
-
} from '../../types';
|
|
1
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
6
2
|
import { constructGetDeltaContract } from './getDeltaContract';
|
|
7
3
|
import type { BridgePrice } from './getDeltaPrice';
|
|
8
4
|
import { constructGetPartnerFee } from './getPartnerFee';
|
|
@@ -11,15 +7,13 @@ import {
|
|
|
11
7
|
type BuildDeltaOrderDataInput,
|
|
12
8
|
type SignableDeltaOrderData,
|
|
13
9
|
} from './helpers/buildDeltaOrderData';
|
|
10
|
+
import type { AmountsWithSlippage } from './helpers/types';
|
|
14
11
|
import { SwapSideToOrderKind } from './helpers/types';
|
|
15
|
-
import {
|
|
12
|
+
import { resolvePartnerFee, resolveAmounts } from './helpers/misc';
|
|
16
13
|
import type { MarkOptional } from 'ts-essentials';
|
|
17
|
-
import { ZERO_ADDRESS } from '../common/orders/buildOrderData';
|
|
18
14
|
export type { SignableDeltaOrderData } from './helpers/buildDeltaOrderData';
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export type BuildDeltaOrderDataParams = {
|
|
16
|
+
type BuildDeltaOrderDataParamsBase = {
|
|
23
17
|
/** @description The address of the order owner */
|
|
24
18
|
owner: string;
|
|
25
19
|
/** @description The address of the order beneficiary */
|
|
@@ -28,10 +22,6 @@ export type BuildDeltaOrderDataParams = {
|
|
|
28
22
|
srcToken: string; // lowercase
|
|
29
23
|
/** @description The address of the dest token. For Crosschain Order - destination token on the destination chain */
|
|
30
24
|
destToken: string; // lowercase
|
|
31
|
-
/** @description The amount of src token to swap */
|
|
32
|
-
srcAmount: string; // wei
|
|
33
|
-
/** @description The minimum amount of dest token to receive */
|
|
34
|
-
destAmount: string; // wei, deltaPrice.destAmount - slippage
|
|
35
25
|
/** @description The deadline for the order */
|
|
36
26
|
deadline?: number; // seconds
|
|
37
27
|
/** @description The nonce of the order */
|
|
@@ -68,12 +58,13 @@ export type BuildDeltaOrderDataParams = {
|
|
|
68
58
|
/** @description A boolean indicating whether the surplus should be capped. True by default */
|
|
69
59
|
capSurplus?: boolean;
|
|
70
60
|
|
|
71
|
-
/** @description The side of the order. Default is SELL */
|
|
72
|
-
side?: SwapSideUnion;
|
|
73
61
|
/** @description Metadata for the order, hex string */
|
|
74
62
|
metadata?: string;
|
|
75
63
|
};
|
|
76
64
|
|
|
65
|
+
export type BuildDeltaOrderDataParams = BuildDeltaOrderDataParamsBase &
|
|
66
|
+
AmountsWithSlippage;
|
|
67
|
+
|
|
77
68
|
type BuildDeltaOrder = (
|
|
78
69
|
buildOrderParams: BuildDeltaOrderDataParams,
|
|
79
70
|
requestParams?: RequestParameters
|
|
@@ -100,50 +91,11 @@ export const constructBuildDeltaOrder = (
|
|
|
100
91
|
throw new Error(`Delta is not available on chain ${chainId}`);
|
|
101
92
|
}
|
|
102
93
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// externally supplied partner fee data takes precedence
|
|
106
|
-
let partnerAddress = options.partnerAddress;
|
|
107
|
-
let partnerFeeBps =
|
|
108
|
-
options.partnerFeeBps ??
|
|
109
|
-
(options.deltaPrice.partnerFee
|
|
110
|
-
? options.deltaPrice.partnerFee * 100
|
|
111
|
-
: undefined);
|
|
112
|
-
let partnerTakesSurplus = options.partnerTakesSurplus;
|
|
113
|
-
|
|
114
|
-
// if fee given, takeSurplus is ignored
|
|
115
|
-
const feeOrTakeSurplusSupplied =
|
|
116
|
-
partnerFeeBps !== undefined || partnerTakesSurplus !== undefined;
|
|
117
|
-
|
|
118
|
-
if (partnerAddress === undefined || feeOrTakeSurplusSupplied) {
|
|
119
|
-
const partner = options.partner || options.deltaPrice.partner;
|
|
120
|
-
if (!partner) {
|
|
121
|
-
// if no partner given in options or deltaPrice, default partnerAddress to zero,
|
|
122
|
-
// unless supplied explicitly
|
|
123
|
-
partnerAddress = partnerAddress ?? ZERO_ADDRESS;
|
|
124
|
-
} else {
|
|
125
|
-
const partnerFeeResponse = await getPartnerFee(
|
|
126
|
-
{ partner },
|
|
127
|
-
requestParams
|
|
128
|
-
);
|
|
129
|
-
|
|
130
|
-
partnerAddress = partnerAddress ?? partnerFeeResponse.partnerAddress;
|
|
131
|
-
// deltaPrice.partnerFee and partnerFeeResponse.partnerFee should be the same, but give priority to externally provided
|
|
132
|
-
partnerFeeBps = partnerFeeBps ?? partnerFeeResponse.partnerFee;
|
|
133
|
-
partnerTakesSurplus =
|
|
134
|
-
partnerTakesSurplus ?? partnerFeeResponse.takeSurplus;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
partnerFeeBps = partnerFeeBps ?? 0;
|
|
139
|
-
partnerTakesSurplus = partnerTakesSurplus ?? false;
|
|
140
|
-
|
|
141
|
-
const swapSide = options.side ?? SwapSide.SELL;
|
|
94
|
+
const { partnerAddress, partnerFeeBps, partnerTakesSurplus } =
|
|
95
|
+
await resolvePartnerFee(options, getPartnerFee, requestParams);
|
|
142
96
|
|
|
143
|
-
const expectedAmount =
|
|
144
|
-
|
|
145
|
-
? options.deltaPrice.destAmount
|
|
146
|
-
: options.deltaPrice.srcAmount;
|
|
97
|
+
const { srcAmount, destAmount, expectedAmount, swapSide } =
|
|
98
|
+
resolveAmounts(options);
|
|
147
99
|
|
|
148
100
|
const input: BuildDeltaOrderDataInput = {
|
|
149
101
|
owner: options.owner,
|
|
@@ -152,8 +104,8 @@ export const constructBuildDeltaOrder = (
|
|
|
152
104
|
// for some cases of WETH->ETH crosschain swaps, the destToken is changed to WETH or ETH,
|
|
153
105
|
// this is already reflected in deltaPrice
|
|
154
106
|
destToken: options.deltaPrice.destToken,
|
|
155
|
-
srcAmount
|
|
156
|
-
destAmount
|
|
107
|
+
srcAmount,
|
|
108
|
+
destAmount,
|
|
157
109
|
expectedAmount,
|
|
158
110
|
deadline: options.deadline,
|
|
159
111
|
nonce: options.nonce?.toString(10),
|