@velora-dex/sdk 9.3.6 → 9.4.1-dev.1

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.
Files changed (147) hide show
  1. package/README.md +2 -0
  2. package/dist/examples/externalDelta.d.ts +2 -0
  3. package/dist/examples/externalDelta.d.ts.map +1 -0
  4. package/dist/examples/helpers/delta.d.ts +2 -2
  5. package/dist/examples/helpers/delta.d.ts.map +1 -1
  6. package/dist/index.d.ts +17 -6
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/methods/delta/buildDeltaOrder.d.ts +4 -10
  9. package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
  10. package/dist/methods/delta/buildExternalDeltaOrder.d.ts +46 -0
  11. package/dist/methods/delta/buildExternalDeltaOrder.d.ts.map +1 -0
  12. package/dist/methods/delta/buildTWAPDeltaOrder.d.ts +65 -0
  13. package/dist/methods/delta/buildTWAPDeltaOrder.d.ts.map +1 -0
  14. package/dist/methods/delta/getDeltaOrders.d.ts +14 -6
  15. package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
  16. package/dist/methods/delta/helpers/abi.d.ts +16 -0
  17. package/dist/methods/delta/helpers/abi.d.ts.map +1 -0
  18. package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts +0 -1
  19. package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts.map +1 -1
  20. package/dist/methods/delta/helpers/buildExternalOrderData.d.ts +34 -0
  21. package/dist/methods/delta/helpers/buildExternalOrderData.d.ts.map +1 -0
  22. package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts +74 -0
  23. package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts.map +1 -0
  24. package/dist/methods/delta/helpers/misc.d.ts +51 -0
  25. package/dist/methods/delta/helpers/misc.d.ts.map +1 -1
  26. package/dist/methods/delta/helpers/types.d.ts +116 -4
  27. package/dist/methods/delta/helpers/types.d.ts.map +1 -1
  28. package/dist/methods/delta/index.d.ts +34 -3
  29. package/dist/methods/delta/index.d.ts.map +1 -1
  30. package/dist/methods/delta/postDeltaOrder.d.ts +4 -9
  31. package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
  32. package/dist/methods/delta/postExternalDeltaOrder.d.ts +11 -0
  33. package/dist/methods/delta/postExternalDeltaOrder.d.ts.map +1 -0
  34. package/dist/methods/delta/postTWAPDeltaOrder.d.ts +16 -0
  35. package/dist/methods/delta/postTWAPDeltaOrder.d.ts.map +1 -0
  36. package/dist/methods/delta/preSignDeltaOrder.d.ts.map +1 -1
  37. package/dist/methods/delta/preSignExternalDeltaOrder.d.ts +17 -0
  38. package/dist/methods/delta/preSignExternalDeltaOrder.d.ts.map +1 -0
  39. package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts +20 -0
  40. package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts.map +1 -0
  41. package/dist/methods/delta/signExternalDeltaOrder.d.ts +9 -0
  42. package/dist/methods/delta/signExternalDeltaOrder.d.ts.map +1 -0
  43. package/dist/methods/delta/signTWAPDeltaOrder.d.ts +9 -0
  44. package/dist/methods/delta/signTWAPDeltaOrder.d.ts.map +1 -0
  45. package/dist/methods/limitOrders/approveForOrder.d.ts +2 -0
  46. package/dist/methods/limitOrders/approveForOrder.d.ts.map +1 -1
  47. package/dist/methods/limitOrders/buildOrder.d.ts +3 -0
  48. package/dist/methods/limitOrders/buildOrder.d.ts.map +1 -1
  49. package/dist/methods/limitOrders/cancelOrder.d.ts +2 -0
  50. package/dist/methods/limitOrders/cancelOrder.d.ts.map +1 -1
  51. package/dist/methods/limitOrders/fillOrderDirectly.d.ts +2 -0
  52. package/dist/methods/limitOrders/fillOrderDirectly.d.ts.map +1 -1
  53. package/dist/methods/limitOrders/getOrders.d.ts +2 -0
  54. package/dist/methods/limitOrders/getOrders.d.ts.map +1 -1
  55. package/dist/methods/limitOrders/getOrdersContract.d.ts +2 -0
  56. package/dist/methods/limitOrders/getOrdersContract.d.ts.map +1 -1
  57. package/dist/methods/limitOrders/index.d.ts +7 -1
  58. package/dist/methods/limitOrders/index.d.ts.map +1 -1
  59. package/dist/methods/limitOrders/postOrder.d.ts +2 -0
  60. package/dist/methods/limitOrders/postOrder.d.ts.map +1 -1
  61. package/dist/methods/limitOrders/signOrder.d.ts +2 -0
  62. package/dist/methods/limitOrders/signOrder.d.ts.map +1 -1
  63. package/dist/methods/limitOrders/transaction.d.ts +2 -0
  64. package/dist/methods/limitOrders/transaction.d.ts.map +1 -1
  65. package/dist/methods/nftOrders/approveForOrder.d.ts +2 -0
  66. package/dist/methods/nftOrders/approveForOrder.d.ts.map +1 -1
  67. package/dist/methods/nftOrders/buildOrder.d.ts +3 -0
  68. package/dist/methods/nftOrders/buildOrder.d.ts.map +1 -1
  69. package/dist/methods/nftOrders/cancelOrder.d.ts +2 -0
  70. package/dist/methods/nftOrders/cancelOrder.d.ts.map +1 -1
  71. package/dist/methods/nftOrders/getOrders.d.ts +2 -0
  72. package/dist/methods/nftOrders/getOrders.d.ts.map +1 -1
  73. package/dist/methods/nftOrders/getOrdersContract.d.ts +2 -0
  74. package/dist/methods/nftOrders/getOrdersContract.d.ts.map +1 -1
  75. package/dist/methods/nftOrders/helpers/misc.d.ts +1 -0
  76. package/dist/methods/nftOrders/helpers/misc.d.ts.map +1 -1
  77. package/dist/methods/nftOrders/index.d.ts +7 -1
  78. package/dist/methods/nftOrders/index.d.ts.map +1 -1
  79. package/dist/methods/nftOrders/postOrder.d.ts +2 -0
  80. package/dist/methods/nftOrders/postOrder.d.ts.map +1 -1
  81. package/dist/methods/nftOrders/signOrder.d.ts +2 -0
  82. package/dist/methods/nftOrders/signOrder.d.ts.map +1 -1
  83. package/dist/methods/nftOrders/transaction.d.ts +2 -0
  84. package/dist/methods/nftOrders/transaction.d.ts.map +1 -1
  85. package/dist/sdk/full.d.ts +2 -0
  86. package/dist/sdk/full.d.ts.map +1 -1
  87. package/dist/sdk/partial.d.ts +5 -1
  88. package/dist/sdk/partial.d.ts.map +1 -1
  89. package/dist/sdk/simple.d.ts +6 -0
  90. package/dist/sdk/simple.d.ts.map +1 -1
  91. package/dist/sdk.cjs.development.js +1357 -210
  92. package/dist/sdk.cjs.development.js.map +1 -1
  93. package/dist/sdk.cjs.production.min.js +1 -1
  94. package/dist/sdk.cjs.production.min.js.map +1 -1
  95. package/dist/sdk.esm.js +1348 -211
  96. package/dist/sdk.esm.js.map +1 -1
  97. package/package.json +1 -1
  98. package/src/constants.js +3 -0
  99. package/src/examples/delta.ts +9 -20
  100. package/src/examples/externalDelta.ts +162 -0
  101. package/src/examples/helpers/delta.ts +8 -4
  102. package/src/gas.js +1 -0
  103. package/src/index.js +85 -0
  104. package/src/index.ts +103 -3
  105. package/src/methods/delta/buildDeltaOrder.ts +13 -61
  106. package/src/methods/delta/buildExternalDeltaOrder.ts +124 -0
  107. package/src/methods/delta/buildTWAPDeltaOrder.ts +181 -0
  108. package/src/methods/delta/getDeltaOrders.ts +31 -13
  109. package/src/methods/delta/helpers/abi.ts +20 -0
  110. package/src/methods/delta/helpers/buildDeltaOrderData.ts +3 -35
  111. package/src/methods/delta/helpers/buildExternalOrderData.ts +129 -0
  112. package/src/methods/delta/helpers/buildTWAPOrderData.ts +227 -0
  113. package/src/methods/delta/helpers/misc.ts +244 -0
  114. package/src/methods/delta/helpers/types.ts +138 -9
  115. package/src/methods/delta/index.ts +159 -3
  116. package/src/methods/delta/postDeltaOrder.ts +9 -11
  117. package/src/methods/delta/postExternalDeltaOrder.ts +45 -0
  118. package/src/methods/delta/postTWAPDeltaOrder.ts +57 -0
  119. package/src/methods/delta/preSignDeltaOrder.ts +1 -21
  120. package/src/methods/delta/preSignExternalDeltaOrder.ts +141 -0
  121. package/src/methods/delta/preSignTWAPDeltaOrder.ts +168 -0
  122. package/src/methods/delta/signExternalDeltaOrder.ts +35 -0
  123. package/src/methods/delta/signTWAPDeltaOrder.ts +32 -0
  124. package/src/methods/limitOrders/approveForOrder.ts +2 -0
  125. package/src/methods/limitOrders/buildOrder.ts +3 -0
  126. package/src/methods/limitOrders/cancelOrder.ts +2 -0
  127. package/src/methods/limitOrders/fillOrderDirectly.ts +2 -0
  128. package/src/methods/limitOrders/getOrders.ts +2 -0
  129. package/src/methods/limitOrders/getOrdersContract.ts +2 -0
  130. package/src/methods/limitOrders/index.ts +7 -1
  131. package/src/methods/limitOrders/postOrder.ts +2 -0
  132. package/src/methods/limitOrders/signOrder.ts +2 -0
  133. package/src/methods/limitOrders/transaction.ts +2 -0
  134. package/src/methods/nftOrders/approveForOrder.ts +2 -0
  135. package/src/methods/nftOrders/buildOrder.ts +3 -0
  136. package/src/methods/nftOrders/cancelOrder.ts +2 -0
  137. package/src/methods/nftOrders/getOrders.ts +2 -0
  138. package/src/methods/nftOrders/getOrdersContract.ts +2 -0
  139. package/src/methods/nftOrders/helpers/misc.ts +1 -0
  140. package/src/methods/nftOrders/index.ts +7 -1
  141. package/src/methods/nftOrders/postOrder.ts +2 -0
  142. package/src/methods/nftOrders/signOrder.ts +2 -0
  143. package/src/methods/nftOrders/transaction.ts +2 -0
  144. package/src/sdk/full.ts +2 -0
  145. package/src/sdk/partial.ts +5 -1
  146. package/src/sdk/simple.ts +6 -0
  147. package/src/types.js +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velora-dex/sdk",
3
- "version": "9.3.6",
3
+ "version": "9.4.1-dev.1",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/sdk.esm.js",
6
6
  "typings": "dist/index.d.ts",
@@ -0,0 +1,3 @@
1
+ export { SwapSide, ContractMethod, ContractMethodV5, ContractMethodV6, } from '@paraswap/core';
2
+ export const API_URL = 'https://api.paraswap.io';
3
+ export const DEFAULT_VERSION = '6.2';
@@ -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
- ethersProviderOrSigner: provider,
19
- EthersContract: ethers.Contract,
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
- destAmount: destAmountAfterSlippage, // minimum acceptable destAmount
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
- destAmount: destAmountAfterSlippage, // minimum acceptable destAmount
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, DeltaOrderFromAPI } from '../..';
1
+ import { DeltaAuction } from '../..';
2
2
 
3
3
  function isExecutedDeltaAuction(
4
- auction: Omit<DeltaAuction, 'signature'>,
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 (waitForCrosschain && auction.order.bridge.destinationChainId !== 0) {
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<DeltaOrderFromAPI>;
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,85 @@
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 { constructEthersContractCaller, constructEthersV5ContractCaller, constructEthersV6ContractCaller, constructWeb3ContractCaller, constructViemContractCaller, txParamsToViemTxParams, constructAxiosFetcher, constructFetchFetcher, isFetcherError, constructToken, } from './helpers';
27
+ import { constructBuildDeltaOrder, } from './methods/delta/buildDeltaOrder';
28
+ import { constructPostDeltaOrder, } from './methods/delta/postDeltaOrder';
29
+ import { constructSignDeltaOrder, } from './methods/delta/signDeltaOrder';
30
+ import { constructPreSignDeltaOrder, } from './methods/delta/preSignDeltaOrder';
31
+ import { constructGetDeltaContract, } from './methods/delta/getDeltaContract';
32
+ import { constructGetDeltaPrice, } from './methods/delta/getDeltaPrice';
33
+ import { constructGetDeltaOrders, } from './methods/delta/getDeltaOrders';
34
+ import { constructApproveTokenForDelta, } from './methods/delta/approveForDelta';
35
+ import { constructGetPartnerFee, } from './methods/delta/getPartnerFee';
36
+ import { constructGetBridgeInfo, } from './methods/delta/getBridgeInfo';
37
+ import { constructIsTokenSupportedInDelta, } from './methods/delta/isTokenSupportedInDelta';
38
+ import { constructBuildExternalDeltaOrder, } from './methods/delta/buildExternalDeltaOrder';
39
+ import { constructSignExternalDeltaOrder, } from './methods/delta/signExternalDeltaOrder';
40
+ import { constructPostExternalDeltaOrder, } from './methods/delta/postExternalDeltaOrder';
41
+ import { constructPreSignExternalDeltaOrder, } from './methods/delta/preSignExternalDeltaOrder';
42
+ import { constructBuildTWAPDeltaOrder, } from './methods/delta/buildTWAPDeltaOrder';
43
+ import { constructSignTWAPDeltaOrder, } from './methods/delta/signTWAPDeltaOrder';
44
+ import { constructPostTWAPDeltaOrder, } from './methods/delta/postTWAPDeltaOrder';
45
+ import { constructPreSignTWAPDeltaOrder, } from './methods/delta/preSignTWAPDeltaOrder';
46
+ import { constructGetQuote, } from './methods/quote/getQuote';
47
+ import { constructCancelDeltaOrder, } from './methods/delta/cancelDeltaOrder';
48
+ import { constructDeltaTokenModule, } from './methods/delta/deltaTokenModule';
49
+ export { constructSwapSDK } from './methods/swap';
50
+ export { constructAllLimitOrdersHandlers, constructSubmitLimitOrder, } from './methods/limitOrders';
51
+ export { constructAllDeltaOrdersHandlers, constructSubmitDeltaOrder, constructSubmitExternalDeltaOrder, constructSubmitTWAPDeltaOrder, } from './methods/delta';
52
+ export * from './constants';
53
+ // can import these individually
54
+ // and use in constructPartialSDK only what you need
55
+ // unused should tree-shake
56
+ export {
57
+ // swap methods:
58
+ constructApproveToken, constructGetBalances, // getAllowances is inside
59
+ constructGetSpender, // this was getTokenTransferProxy
60
+ constructGetTokens, constructBuildTx, constructGetAdapters, constructGetRate, constructSwapTx,
61
+ // limitOrders methods:
62
+ constructBuildLimitOrder, constructSignLimitOrder, constructCancelLimitOrder, constructFillOrderDirectly, constructGetLimitOrders, constructPostLimitOrder, constructApproveTokenForLimitOrder, constructGetLimitOrdersContract, constructBuildLimitOrderTx,
63
+ // nftOrders methods
64
+ constructBuildNFTOrder, constructSignNFTOrder, constructCancelNFTOrder, constructGetNFTOrders, constructPostNFTOrder, constructApproveTokenForNFTOrder, constructGetNFTOrdersContract, constructBuildNFTOrderTx,
65
+ // Delta methods
66
+ constructBuildDeltaOrder, constructPostDeltaOrder, constructSignDeltaOrder, constructPreSignDeltaOrder, constructGetDeltaContract, constructGetDeltaPrice, constructGetDeltaOrders, constructCancelDeltaOrder, constructDeltaTokenModule, constructApproveTokenForDelta,
67
+ // External Delta methods
68
+ constructBuildExternalDeltaOrder, constructSignExternalDeltaOrder, constructPostExternalDeltaOrder, constructPreSignExternalDeltaOrder,
69
+ // TWAP Delta methods
70
+ constructBuildTWAPDeltaOrder, constructSignTWAPDeltaOrder, constructPostTWAPDeltaOrder, constructPreSignTWAPDeltaOrder,
71
+ // Quote methods
72
+ constructGetQuote,
73
+ // different helpers
74
+ constructGetPartnerFee, constructGetBridgeInfo, constructIsTokenSupportedInDelta, constructEthersContractCaller, // same as constructEthersV5ContractCaller for backwards compatibility
75
+ constructEthersV5ContractCaller, constructEthersV6ContractCaller, constructWeb3ContractCaller, constructViemContractCaller, txParamsToViemTxParams, constructAxiosFetcher, constructFetchFetcher, isFetcherError, isAllowance, constructToken, };
76
+ export { constructPartialSDK } from './sdk/partial';
77
+ export { constructFullSDK } from './sdk/full';
78
+ export { constructSimpleSDK, } from './sdk/simple';
79
+ // bundled methods for limitOrders
80
+ export * from './methods/limitOrders';
81
+ export * from './methods/limitOrders/helpers/types';
82
+ // bundled methods for nftOrders
83
+ export * from './methods/nftOrders';
84
+ export * from './methods/nftOrders/helpers/types';
85
+ export { AssetType } from './methods/nftOrders/helpers/misc';
package/src/index.ts CHANGED
@@ -141,20 +141,30 @@ import type {
141
141
  DeltaAuctionOrder,
142
142
  DeltaAuction,
143
143
  DeltaAuctionStatus,
144
+ DeltaAuctionTransaction,
144
145
  BridgeMetadata,
145
146
  BridgeStatus,
146
147
  Bridge,
148
+ ExternalDeltaOrder,
149
+ TWAPDeltaOrder,
150
+ TWAPBuyDeltaOrder,
151
+ TWAPOnChainOrderType,
152
+ OnChainOrderType,
153
+ SwapSideUnion,
154
+ AmountsWithSlippage,
155
+ AmountsSellSlippage,
156
+ AmountsBuySlippage,
157
+ AmountsExplicit,
147
158
  } from './methods/delta/helpers/types';
148
159
  import {
149
160
  BuildDeltaOrderDataParams,
150
161
  BuildDeltaOrderFunctions,
151
162
  constructBuildDeltaOrder,
152
163
  SignableDeltaOrderData,
153
- SwapSideUnion,
154
164
  } from './methods/delta/buildDeltaOrder';
155
165
  import {
156
166
  constructPostDeltaOrder,
157
- DeltaOrderApiResponse,
167
+ DeltaOrderToPost,
158
168
  PostDeltaOrderFunctions,
159
169
  PostDeltaOrderParams,
160
170
  } from './methods/delta/postDeltaOrder';
@@ -203,6 +213,48 @@ import {
203
213
  IsTokenSupportedInDeltaFunctions,
204
214
  } from './methods/delta/isTokenSupportedInDelta';
205
215
 
216
+ import {
217
+ constructBuildExternalDeltaOrder,
218
+ BuildExternalDeltaOrderFunctions,
219
+ BuildExternalDeltaOrderParams,
220
+ } from './methods/delta/buildExternalDeltaOrder';
221
+ import type { SignableExternalOrderData } from './methods/delta/helpers/buildExternalOrderData';
222
+ import {
223
+ constructSignExternalDeltaOrder,
224
+ SignExternalDeltaOrderFunctions,
225
+ } from './methods/delta/signExternalDeltaOrder';
226
+ import {
227
+ constructPostExternalDeltaOrder,
228
+ PostExternalDeltaOrderFunctions,
229
+ PostExternalDeltaOrderParams,
230
+ } from './methods/delta/postExternalDeltaOrder';
231
+ import {
232
+ constructPreSignExternalDeltaOrder,
233
+ PreSignExternalDeltaOrderFunctions,
234
+ } from './methods/delta/preSignExternalDeltaOrder';
235
+
236
+ import {
237
+ BuildTWAPDeltaOrderParams,
238
+ BuildTWAPSellOrderParams,
239
+ BuildTWAPBuyOrderParams,
240
+ BuildTWAPDeltaOrderFunctions,
241
+ constructBuildTWAPDeltaOrder,
242
+ } from './methods/delta/buildTWAPDeltaOrder';
243
+ import type { SignableTWAPOrderData } from './methods/delta/helpers/buildTWAPOrderData';
244
+ import {
245
+ constructSignTWAPDeltaOrder,
246
+ SignTWAPDeltaOrderFunctions,
247
+ } from './methods/delta/signTWAPDeltaOrder';
248
+ import {
249
+ constructPostTWAPDeltaOrder,
250
+ PostTWAPDeltaOrderFunctions,
251
+ PostTWAPDeltaOrderParams,
252
+ } from './methods/delta/postTWAPDeltaOrder';
253
+ import {
254
+ constructPreSignTWAPDeltaOrder,
255
+ PreSignTWAPDeltaOrderFunctions,
256
+ } from './methods/delta/preSignTWAPDeltaOrder';
257
+
206
258
  import {
207
259
  constructGetQuote,
208
260
  GetQuoteFunctions,
@@ -223,6 +275,10 @@ import {
223
275
  DepositNativeAndPreSignParams,
224
276
  DepositNativeAndPreSignDeltaOrderParams,
225
277
  } from './methods/delta/deltaTokenModule';
278
+ import {
279
+ CancelDeltaOrderData,
280
+ SignableCancelDeltaOrderData,
281
+ } from './methods/delta/helpers/buildCancelDeltaOrderData';
226
282
 
227
283
  export { constructSwapSDK, SwapSDKMethods } from './methods/swap';
228
284
 
@@ -235,8 +291,12 @@ export {
235
291
  export {
236
292
  constructAllDeltaOrdersHandlers,
237
293
  constructSubmitDeltaOrder,
294
+ constructSubmitExternalDeltaOrder,
295
+ constructSubmitTWAPDeltaOrder,
238
296
  DeltaOrderHandlers,
239
297
  SubmitDeltaOrderParams,
298
+ SubmitExternalDeltaOrderParams,
299
+ SubmitTWAPDeltaOrderParams,
240
300
  } from './methods/delta';
241
301
 
242
302
  export type {
@@ -309,6 +369,16 @@ export {
309
369
  constructCancelDeltaOrder,
310
370
  constructDeltaTokenModule,
311
371
  constructApproveTokenForDelta,
372
+ // External Delta methods
373
+ constructBuildExternalDeltaOrder,
374
+ constructSignExternalDeltaOrder,
375
+ constructPostExternalDeltaOrder,
376
+ constructPreSignExternalDeltaOrder,
377
+ // TWAP Delta methods
378
+ constructBuildTWAPDeltaOrder,
379
+ constructSignTWAPDeltaOrder,
380
+ constructPostTWAPDeltaOrder,
381
+ constructPreSignTWAPDeltaOrder,
312
382
  // Quote methods
313
383
  constructGetQuote,
314
384
  // different helpers
@@ -381,9 +451,11 @@ export type {
381
451
  DeltaAuctionOrder,
382
452
  DeltaAuction,
383
453
  DeltaAuctionStatus,
454
+ DeltaAuctionTransaction,
384
455
  DeltaOrderFilterByStatus,
385
- DeltaOrderApiResponse,
386
456
  DeltaOrderFromAPI,
457
+ CancelDeltaOrderData,
458
+ SignableCancelDeltaOrderData,
387
459
  // bridge part of DeltaOrder
388
460
  BridgeMetadata,
389
461
  BridgeStatus,
@@ -394,6 +466,7 @@ export type {
394
466
  BuildDeltaOrderDataParams,
395
467
  BuildDeltaOrderFunctions,
396
468
  SignableDeltaOrderData,
469
+ DeltaOrderToPost,
397
470
  PostDeltaOrderFunctions,
398
471
  PostDeltaOrderParams,
399
472
  SignDeltaOrderFunctions,
@@ -407,6 +480,33 @@ export type {
407
480
  CancelAndWithdrawDeltaOrderParams,
408
481
  DepositNativeAndPreSignParams,
409
482
  DepositNativeAndPreSignDeltaOrderParams,
483
+ // External Delta types
484
+ ExternalDeltaOrder,
485
+ TWAPDeltaOrder,
486
+ TWAPBuyDeltaOrder,
487
+ TWAPOnChainOrderType,
488
+ OnChainOrderType,
489
+ AmountsWithSlippage,
490
+ AmountsSellSlippage,
491
+ AmountsBuySlippage,
492
+ AmountsExplicit,
493
+ SignableExternalOrderData,
494
+ BuildExternalDeltaOrderParams,
495
+ BuildExternalDeltaOrderFunctions,
496
+ SignExternalDeltaOrderFunctions,
497
+ PostExternalDeltaOrderFunctions,
498
+ PostExternalDeltaOrderParams,
499
+ PreSignExternalDeltaOrderFunctions,
500
+ // TWAP Delta types
501
+ BuildTWAPDeltaOrderParams,
502
+ BuildTWAPSellOrderParams,
503
+ BuildTWAPBuyOrderParams,
504
+ BuildTWAPDeltaOrderFunctions,
505
+ SignableTWAPOrderData,
506
+ SignTWAPDeltaOrderFunctions,
507
+ PostTWAPDeltaOrderFunctions,
508
+ PostTWAPDeltaOrderParams,
509
+ PreSignTWAPDeltaOrderFunctions,
410
510
  // types for Quote methods
411
511
  GetQuoteFunctions,
412
512
  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 { SwapSide } from '../../constants';
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
- export type SwapSideUnion = EnumerateLiteral<typeof SwapSide>;
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
- ////// Partner logic //////
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
- swapSide === SwapSide.SELL
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: options.srcAmount,
156
- destAmount: options.destAmount,
107
+ srcAmount,
108
+ destAmount,
157
109
  expectedAmount,
158
110
  deadline: options.deadline,
159
111
  nonce: options.nonce?.toString(10),