@paraswap/dex-lib 3.8.34-inception → 3.8.34-inception.2
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/build/dex/inception/inception.js +9 -1
- package/build/dex/inception/inception.js.map +1 -1
- package/build/dex/inception/utils.d.ts +0 -1
- package/build/dex/inception/utils.js +1 -22
- package/build/dex/inception/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/inception/inception-e2e.test.ts +13 -0
- package/src/dex/inception/inception.ts +9 -1
- package/src/dex/inception/utils.ts +0 -27
|
@@ -40,6 +40,7 @@ const tokens_1 = require("./tokens");
|
|
|
40
40
|
const utils_2 = require("./utils");
|
|
41
41
|
const inception_event_pool_1 = require("./inception-event-pool");
|
|
42
42
|
const token_transfer_fee_1 = require("../../lib/token-transfer-fee");
|
|
43
|
+
const constants_2 = require("../../executor/constants");
|
|
43
44
|
const DECIMALS = BigInt(1e18);
|
|
44
45
|
class Inception extends simple_exchange_1.SimpleExchange {
|
|
45
46
|
constructor(network, dexKey, dexHelper, config = config_1.InceptionConfig[dexKey][network]) {
|
|
@@ -101,6 +102,11 @@ class Inception extends simple_exchange_1.SimpleExchange {
|
|
|
101
102
|
if (!src || !dest || src !== dest) {
|
|
102
103
|
return null;
|
|
103
104
|
}
|
|
105
|
+
// TODO: Implement in both directions
|
|
106
|
+
// only baseToken -> inception token swaps are supported
|
|
107
|
+
if (src.baseToken.toLowerCase() !== srcToken.address.toLowerCase()) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
104
110
|
const poolState = await this.getPoolState(this.eventPool, blockNumber);
|
|
105
111
|
if (!poolState)
|
|
106
112
|
return null;
|
|
@@ -144,6 +150,7 @@ class Inception extends simple_exchange_1.SimpleExchange {
|
|
|
144
150
|
let swapData;
|
|
145
151
|
let dexFuncHasRecipient;
|
|
146
152
|
let swappedAmountNotPresentInExchangeData;
|
|
153
|
+
let returnAmountPos = undefined;
|
|
147
154
|
if (isNative) {
|
|
148
155
|
swapData = this.poolInterface.encodeFunctionData('stake()', []);
|
|
149
156
|
dexFuncHasRecipient = false;
|
|
@@ -156,6 +163,7 @@ class Inception extends simple_exchange_1.SimpleExchange {
|
|
|
156
163
|
]);
|
|
157
164
|
dexFuncHasRecipient = true;
|
|
158
165
|
swappedAmountNotPresentInExchangeData = false;
|
|
166
|
+
returnAmountPos = constants_2.RETURN_AMOUNT_POS_0;
|
|
159
167
|
}
|
|
160
168
|
return {
|
|
161
169
|
needWrapNative: false,
|
|
@@ -163,7 +171,7 @@ class Inception extends simple_exchange_1.SimpleExchange {
|
|
|
163
171
|
exchangeData: swapData,
|
|
164
172
|
targetExchange: dexParams.vault,
|
|
165
173
|
swappedAmountNotPresentInExchangeData,
|
|
166
|
-
returnAmountPos
|
|
174
|
+
returnAmountPos,
|
|
167
175
|
};
|
|
168
176
|
}
|
|
169
177
|
async updatePoolState() { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inception.js","sourceRoot":"","sources":["../../../src/dex/inception/inception.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6D;AAE7D,yCAA0D;AAY1D,oGAAqE;AACrE,8GAA+E;AAC/E,+CAKyB;AACzB,2EAA6D;AAC7D,uCAAoD;AAIpD,wDAAoD;AACpD,qCAAqE;AACrE,qCAAmE;AACnE,mCAAwD;AACxD,iEAA4D;AAC5D,qEAAgE;
|
|
1
|
+
{"version":3,"file":"inception.js","sourceRoot":"","sources":["../../../src/dex/inception/inception.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,5 @@ import { Contract } from 'web3-eth-contract';
|
|
|
2
2
|
import { DexParams, PoolState } from './types';
|
|
3
3
|
import { Interface } from '@ethersproject/abi';
|
|
4
4
|
import { Network } from '../../constants';
|
|
5
|
-
export declare function getOnChainRatio(multiContract: Contract, poolInterface: Interface, network: Network, p: DexParams, blockNumber: number | 'latest'): Promise<bigint>;
|
|
6
5
|
export declare function getOnChainState(multiContract: Contract, poolInterface: Interface, network: Network, blockNumber: number | 'latest'): Promise<PoolState>;
|
|
7
6
|
export declare const getTokenList: (network: Network) => Promise<DexParams[]>;
|
|
@@ -1,30 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTokenList = exports.getOnChainState =
|
|
3
|
+
exports.getTokenList = exports.getOnChainState = void 0;
|
|
4
4
|
const abi_1 = require("@ethersproject/abi");
|
|
5
5
|
const config_1 = require("./config");
|
|
6
6
|
const coder = new abi_1.AbiCoder();
|
|
7
|
-
async function getOnChainRatio(multiContract, poolInterface, network, p, blockNumber) {
|
|
8
|
-
let addr;
|
|
9
|
-
if (p.baseTokenSlug === 'ETH') {
|
|
10
|
-
addr = p.token;
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
addr = p.vault;
|
|
14
|
-
}
|
|
15
|
-
const data = await multiContract.methods
|
|
16
|
-
.aggregate([
|
|
17
|
-
{
|
|
18
|
-
target: addr,
|
|
19
|
-
callData: poolInterface.encodeFunctionData('ratio', []),
|
|
20
|
-
},
|
|
21
|
-
])
|
|
22
|
-
.call({}, blockNumber);
|
|
23
|
-
const decodedData = coder.decode(['uint256'], data.returnData[0]);
|
|
24
|
-
const ratio = BigInt(decodedData[0].toString());
|
|
25
|
-
return ratio;
|
|
26
|
-
}
|
|
27
|
-
exports.getOnChainRatio = getOnChainRatio;
|
|
28
7
|
async function getOnChainState(multiContract, poolInterface, network, blockNumber) {
|
|
29
8
|
let tokenList = await (0, exports.getTokenList)(network);
|
|
30
9
|
const state = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/inception/utils.ts"],"names":[],"mappings":";;;AAEA,4CAAyD;AACzD,qCAA2C;AAG3C,MAAM,KAAK,GAAG,IAAI,cAAQ,EAAE,CAAC;AAEtB,KAAK,UAAU,eAAe,CACnC,aAAuB,EACvB,aAAwB,EACxB,OAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/inception/utils.ts"],"names":[],"mappings":";;;AAEA,4CAAyD;AACzD,qCAA2C;AAG3C,MAAM,KAAK,GAAG,IAAI,cAAQ,EAAE,CAAC;AAEtB,KAAK,UAAU,eAAe,CACnC,aAAuB,EACvB,aAAwB,EACxB,OAAgB,EAChB,WAA8B;IAE9B,IAAI,SAAS,GAAG,MAAM,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;QACzB,IAAI,IAAI,CAAC;QACT,IAAI,CAAC,CAAC,aAAa,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;SAChB;aAAM;YACL,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;SAChB;QAED,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO;aACrC,SAAS,CAAC;YACT;gBACE,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;aACxD;SACF,CAAC;aACD,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEzB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;KAC3C;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA/BD,0CA+BC;AAEM,MAAM,YAAY,GAAG,KAAK,EAAE,OAAgB,EAAwB,EAAE;IAC3E,OAAO,wBAAe,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB"}
|
package/package.json
CHANGED
|
@@ -48,6 +48,19 @@ function testForNetwork(
|
|
|
48
48
|
provider,
|
|
49
49
|
);
|
|
50
50
|
});
|
|
51
|
+
it(`${inceptionSlug} -> ${baseSlug}`, async () => {
|
|
52
|
+
await testE2E(
|
|
53
|
+
tokens[inceptionSlug],
|
|
54
|
+
tokens[baseSlug],
|
|
55
|
+
holders[inceptionSlug],
|
|
56
|
+
'100000000',
|
|
57
|
+
side,
|
|
58
|
+
inceptionName,
|
|
59
|
+
contractMethod,
|
|
60
|
+
network,
|
|
61
|
+
provider,
|
|
62
|
+
);
|
|
63
|
+
});
|
|
51
64
|
});
|
|
52
65
|
});
|
|
53
66
|
}),
|
|
@@ -148,6 +148,12 @@ export class Inception
|
|
|
148
148
|
return null;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// TODO: Implement in both directions
|
|
152
|
+
// only baseToken -> inception token swaps are supported
|
|
153
|
+
if (src.baseToken.toLowerCase() !== srcToken.address.toLowerCase()) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
|
|
151
157
|
const poolState = await this.getPoolState(this.eventPool, blockNumber);
|
|
152
158
|
if (!poolState) return null;
|
|
153
159
|
|
|
@@ -213,6 +219,7 @@ export class Inception
|
|
|
213
219
|
let swapData;
|
|
214
220
|
let dexFuncHasRecipient;
|
|
215
221
|
let swappedAmountNotPresentInExchangeData;
|
|
222
|
+
let returnAmountPos = undefined;
|
|
216
223
|
if (isNative) {
|
|
217
224
|
swapData = this.poolInterface.encodeFunctionData('stake()', []);
|
|
218
225
|
dexFuncHasRecipient = false;
|
|
@@ -224,6 +231,7 @@ export class Inception
|
|
|
224
231
|
]);
|
|
225
232
|
dexFuncHasRecipient = true;
|
|
226
233
|
swappedAmountNotPresentInExchangeData = false;
|
|
234
|
+
returnAmountPos = RETURN_AMOUNT_POS_0;
|
|
227
235
|
}
|
|
228
236
|
|
|
229
237
|
return {
|
|
@@ -232,7 +240,7 @@ export class Inception
|
|
|
232
240
|
exchangeData: swapData,
|
|
233
241
|
targetExchange: dexParams.vault,
|
|
234
242
|
swappedAmountNotPresentInExchangeData,
|
|
235
|
-
returnAmountPos
|
|
243
|
+
returnAmountPos,
|
|
236
244
|
};
|
|
237
245
|
}
|
|
238
246
|
|
|
@@ -6,33 +6,6 @@ import { Network } from '../../constants';
|
|
|
6
6
|
|
|
7
7
|
const coder = new AbiCoder();
|
|
8
8
|
|
|
9
|
-
export async function getOnChainRatio(
|
|
10
|
-
multiContract: Contract,
|
|
11
|
-
poolInterface: Interface,
|
|
12
|
-
network: Network,
|
|
13
|
-
p: DexParams,
|
|
14
|
-
blockNumber: number | 'latest',
|
|
15
|
-
): Promise<bigint> {
|
|
16
|
-
let addr;
|
|
17
|
-
if (p.baseTokenSlug === 'ETH') {
|
|
18
|
-
addr = p.token;
|
|
19
|
-
} else {
|
|
20
|
-
addr = p.vault;
|
|
21
|
-
}
|
|
22
|
-
const data: { returnData: any[] } = await multiContract.methods
|
|
23
|
-
.aggregate([
|
|
24
|
-
{
|
|
25
|
-
target: addr,
|
|
26
|
-
callData: poolInterface.encodeFunctionData('ratio', []),
|
|
27
|
-
},
|
|
28
|
-
])
|
|
29
|
-
.call({}, blockNumber);
|
|
30
|
-
|
|
31
|
-
const decodedData = coder.decode(['uint256'], data.returnData[0]);
|
|
32
|
-
const ratio = BigInt(decodedData[0].toString());
|
|
33
|
-
return ratio;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
9
|
export async function getOnChainState(
|
|
37
10
|
multiContract: Contract,
|
|
38
11
|
poolInterface: Interface,
|