@paraswap/dex-lib 3.8.35 → 3.8.36
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/abi/lite-psm/usdsPsm.json +163 -0
- package/build/dex/lite-psm/config.js +5 -1
- package/build/dex/lite-psm/config.js.map +1 -1
- package/build/dex/lite-psm/lite-psm.d.ts +4 -2
- package/build/dex/lite-psm/lite-psm.js +39 -26
- package/build/dex/lite-psm/lite-psm.js.map +1 -1
- package/build/dex/lite-psm/types.d.ts +2 -2
- package/package.json +1 -1
- package/src/abi/lite-psm/usdsPsm.json +163 -0
- package/src/dex/lite-psm/config.ts +5 -1
- package/src/dex/lite-psm/lite-psm-e2e.test.ts +68 -1
- package/src/dex/lite-psm/lite-psm.ts +52 -31
- package/src/dex/lite-psm/types.ts +3 -2
- package/tests/constants-e2e.ts +1 -1
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"inputs": [
|
|
4
|
+
{ "internalType": "address", "name": "psm_", "type": "address" },
|
|
5
|
+
{ "internalType": "address", "name": "usdsJoin_", "type": "address" }
|
|
6
|
+
],
|
|
7
|
+
"stateMutability": "nonpayable",
|
|
8
|
+
"type": "constructor"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"inputs": [],
|
|
12
|
+
"name": "HALTED",
|
|
13
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
14
|
+
"stateMutability": "view",
|
|
15
|
+
"type": "function"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"inputs": [],
|
|
19
|
+
"name": "buf",
|
|
20
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
21
|
+
"stateMutability": "view",
|
|
22
|
+
"type": "function"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"inputs": [
|
|
26
|
+
{ "internalType": "address", "name": "usr", "type": "address" },
|
|
27
|
+
{ "internalType": "uint256", "name": "gemAmt", "type": "uint256" }
|
|
28
|
+
],
|
|
29
|
+
"name": "buyGem",
|
|
30
|
+
"outputs": [
|
|
31
|
+
{ "internalType": "uint256", "name": "usdsInWad", "type": "uint256" }
|
|
32
|
+
],
|
|
33
|
+
"stateMutability": "nonpayable",
|
|
34
|
+
"type": "function"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"inputs": [],
|
|
38
|
+
"name": "dai",
|
|
39
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
40
|
+
"stateMutability": "view",
|
|
41
|
+
"type": "function"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"inputs": [],
|
|
45
|
+
"name": "dec",
|
|
46
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
47
|
+
"stateMutability": "view",
|
|
48
|
+
"type": "function"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"inputs": [],
|
|
52
|
+
"name": "gem",
|
|
53
|
+
"outputs": [
|
|
54
|
+
{ "internalType": "contract GemLike", "name": "", "type": "address" }
|
|
55
|
+
],
|
|
56
|
+
"stateMutability": "view",
|
|
57
|
+
"type": "function"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"inputs": [],
|
|
61
|
+
"name": "gemJoin",
|
|
62
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
63
|
+
"stateMutability": "view",
|
|
64
|
+
"type": "function"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"inputs": [],
|
|
68
|
+
"name": "ilk",
|
|
69
|
+
"outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
|
|
70
|
+
"stateMutability": "view",
|
|
71
|
+
"type": "function"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"inputs": [],
|
|
75
|
+
"name": "live",
|
|
76
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
77
|
+
"stateMutability": "view",
|
|
78
|
+
"type": "function"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"inputs": [],
|
|
82
|
+
"name": "pocket",
|
|
83
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
84
|
+
"stateMutability": "view",
|
|
85
|
+
"type": "function"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"inputs": [],
|
|
89
|
+
"name": "psm",
|
|
90
|
+
"outputs": [
|
|
91
|
+
{ "internalType": "contract PsmLike", "name": "", "type": "address" }
|
|
92
|
+
],
|
|
93
|
+
"stateMutability": "view",
|
|
94
|
+
"type": "function"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"inputs": [
|
|
98
|
+
{ "internalType": "address", "name": "usr", "type": "address" },
|
|
99
|
+
{ "internalType": "uint256", "name": "gemAmt", "type": "uint256" }
|
|
100
|
+
],
|
|
101
|
+
"name": "sellGem",
|
|
102
|
+
"outputs": [
|
|
103
|
+
{ "internalType": "uint256", "name": "usdsOutWad", "type": "uint256" }
|
|
104
|
+
],
|
|
105
|
+
"stateMutability": "nonpayable",
|
|
106
|
+
"type": "function"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"inputs": [],
|
|
110
|
+
"name": "tin",
|
|
111
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
112
|
+
"stateMutability": "view",
|
|
113
|
+
"type": "function"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"inputs": [],
|
|
117
|
+
"name": "to18ConversionFactor",
|
|
118
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
119
|
+
"stateMutability": "view",
|
|
120
|
+
"type": "function"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"inputs": [],
|
|
124
|
+
"name": "tout",
|
|
125
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
126
|
+
"stateMutability": "view",
|
|
127
|
+
"type": "function"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"inputs": [],
|
|
131
|
+
"name": "usds",
|
|
132
|
+
"outputs": [
|
|
133
|
+
{ "internalType": "contract GemLike", "name": "", "type": "address" }
|
|
134
|
+
],
|
|
135
|
+
"stateMutability": "view",
|
|
136
|
+
"type": "function"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"inputs": [],
|
|
140
|
+
"name": "usdsJoin",
|
|
141
|
+
"outputs": [
|
|
142
|
+
{ "internalType": "contract UsdsJoinLike", "name": "", "type": "address" }
|
|
143
|
+
],
|
|
144
|
+
"stateMutability": "view",
|
|
145
|
+
"type": "function"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"inputs": [],
|
|
149
|
+
"name": "vat",
|
|
150
|
+
"outputs": [
|
|
151
|
+
{ "internalType": "contract VatLike", "name": "", "type": "address" }
|
|
152
|
+
],
|
|
153
|
+
"stateMutability": "view",
|
|
154
|
+
"type": "function"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"inputs": [],
|
|
158
|
+
"name": "vow",
|
|
159
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
160
|
+
"stateMutability": "view",
|
|
161
|
+
"type": "function"
|
|
162
|
+
}
|
|
163
|
+
]
|
|
@@ -10,6 +10,11 @@ exports.LitePsmConfig = {
|
|
|
10
10
|
address: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
11
11
|
decimals: 18,
|
|
12
12
|
},
|
|
13
|
+
usds: {
|
|
14
|
+
address: '0xdc035d45d973e3ec169d2276ddab16f1e407384f',
|
|
15
|
+
decimals: 18,
|
|
16
|
+
},
|
|
17
|
+
usdsPsmAddress: '0xA188EEC8F81263234dA3622A406892F3D630f98c',
|
|
13
18
|
vatAddress: '0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b',
|
|
14
19
|
pools: [
|
|
15
20
|
{
|
|
@@ -17,7 +22,6 @@ exports.LitePsmConfig = {
|
|
|
17
22
|
address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
18
23
|
decimals: 6,
|
|
19
24
|
},
|
|
20
|
-
gemJoinAddress: '0xf6e72db5454dd049d0788e411b06cfaf16853042',
|
|
21
25
|
pocketAddress: '0x37305b1cd40574e4c5ce33f8e8306be057fd7341',
|
|
22
26
|
psmAddress: '0xf6e72db5454dd049d0788e411b06cfaf16853042',
|
|
23
27
|
identifier: '0x4c4954452d50534d2d555344432d410000000000000000000000000000000000', // bytes32("LITE-PSM-USDC-A")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/lite-psm/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE1C,0CAA0C;AAC7B,QAAA,aAAa,GAA4B;IACpD,OAAO,EAAE;QACP,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,GAAG,EAAE;gBACH,OAAO,EAAE,4CAA4C;gBACrD,QAAQ,EAAE,EAAE;aACb;YACD,UAAU,EAAE,4CAA4C;YACxD,KAAK,EAAE;gBACL;oBACE,GAAG,EAAE;wBACH,OAAO,EAAE,4CAA4C;wBACrD,QAAQ,EAAE,CAAC;qBACZ;oBACD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/lite-psm/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE1C,0CAA0C;AAC7B,QAAA,aAAa,GAA4B;IACpD,OAAO,EAAE;QACP,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,GAAG,EAAE;gBACH,OAAO,EAAE,4CAA4C;gBACrD,QAAQ,EAAE,EAAE;aACb;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,4CAA4C;gBACrD,QAAQ,EAAE,EAAE;aACb;YACD,cAAc,EAAE,4CAA4C;YAC5D,UAAU,EAAE,4CAA4C;YACxD,KAAK,EAAE;gBACL;oBACE,GAAG,EAAE;wBACH,OAAO,EAAE,4CAA4C;wBACrD,QAAQ,EAAE,CAAC;qBACZ;oBACD,aAAa,EAAE,4CAA4C;oBAC3D,UAAU,EAAE,4CAA4C;oBACxD,UAAU,EACR,oEAAoE,EAAE,6BAA6B;iBACtG;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -10,6 +10,8 @@ export declare class LitePsm extends SimpleExchange implements IDex<LitePsmData,
|
|
|
10
10
|
protected network: Network;
|
|
11
11
|
protected dexHelper: IDexHelper;
|
|
12
12
|
protected dai: Token;
|
|
13
|
+
protected usds: Token;
|
|
14
|
+
protected usdsPsm: Address;
|
|
13
15
|
protected vatAddress: Address;
|
|
14
16
|
protected poolConfigs: PoolConfig[];
|
|
15
17
|
protected eventPools: {
|
|
@@ -22,7 +24,7 @@ export declare class LitePsm extends SimpleExchange implements IDex<LitePsmData,
|
|
|
22
24
|
networks: Network[];
|
|
23
25
|
}[];
|
|
24
26
|
logger: Logger;
|
|
25
|
-
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, dai?: Token, vatAddress?: Address, poolConfigs?: PoolConfig[]);
|
|
27
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, dai?: Token, usds?: Token, usdsPsm?: Address, vatAddress?: Address, poolConfigs?: PoolConfig[]);
|
|
26
28
|
static getDirectFunctionNameV6(): string[];
|
|
27
29
|
initializePricing(blockNumber: number): Promise<void>;
|
|
28
30
|
getAdapters(side: SwapSide): {
|
|
@@ -32,7 +34,7 @@ export declare class LitePsm extends SimpleExchange implements IDex<LitePsmData,
|
|
|
32
34
|
getEventPool(srcToken: Token, destToken: Token): LitePsmEventPool | null;
|
|
33
35
|
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
34
36
|
getPoolState(pool: LitePsmEventPool, blockNumber: number): Promise<PoolState>;
|
|
35
|
-
computePrices(
|
|
37
|
+
computePrices(isDestGem: boolean, to18ConversionFactor: bigint, side: SwapSide, amounts: bigint[], poolState: PoolState): bigint[];
|
|
36
38
|
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<LitePsmData>>;
|
|
37
39
|
getCalldataGasCost(poolPrices: PoolPrices<LitePsmData>): number | number[];
|
|
38
40
|
getPsmParams(srcToken: string, srcAmount: string, destAmount: string, data: LitePsmData, side: SwapSide): {
|
|
@@ -34,6 +34,7 @@ const utils_1 = require("../../utils");
|
|
|
34
34
|
const simple_exchange_1 = require("../simple-exchange");
|
|
35
35
|
const config_1 = require("./config");
|
|
36
36
|
const psm_json_1 = __importDefault(require("../../abi/lite-psm/psm.json"));
|
|
37
|
+
const usdsPsm_json_1 = __importDefault(require("../../abi/lite-psm/usdsPsm.json"));
|
|
37
38
|
const bigint_constants_1 = require("../../bigint-constants");
|
|
38
39
|
const types_1 = require("../../executor/types");
|
|
39
40
|
const bytes_1 = require("@ethersproject/bytes");
|
|
@@ -41,15 +42,18 @@ const core_1 = require("@paraswap/core");
|
|
|
41
42
|
const ethers_1 = require("ethers");
|
|
42
43
|
const lite_psm_event_pool_1 = require("./lite-psm-event-pool");
|
|
43
44
|
const utils_2 = require("../../executor/utils");
|
|
44
|
-
const
|
|
45
|
+
const daiPsmInterface = new abi_1.Interface(psm_json_1.default);
|
|
46
|
+
const usdsPsmInterface = new abi_1.Interface(usdsPsm_json_1.default);
|
|
45
47
|
const WAD = bigint_constants_1.BI_POWS[18];
|
|
46
48
|
const ceilDiv = (a, b) => (a + b - 1n) / b;
|
|
47
49
|
class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
48
|
-
constructor(network, dexKey, dexHelper, dai = config_1.LitePsmConfig[dexKey][network].dai, vatAddress = config_1.LitePsmConfig[dexKey][network].vatAddress, poolConfigs = config_1.LitePsmConfig[dexKey][network].pools) {
|
|
50
|
+
constructor(network, dexKey, dexHelper, dai = config_1.LitePsmConfig[dexKey][network].dai, usds = config_1.LitePsmConfig[dexKey][network].usds, usdsPsm = config_1.LitePsmConfig[dexKey][network].usdsPsmAddress, vatAddress = config_1.LitePsmConfig[dexKey][network].vatAddress, poolConfigs = config_1.LitePsmConfig[dexKey][network].pools) {
|
|
49
51
|
super(dexHelper, dexKey);
|
|
50
52
|
this.network = network;
|
|
51
53
|
this.dexHelper = dexHelper;
|
|
52
54
|
this.dai = dai;
|
|
55
|
+
this.usds = usds;
|
|
56
|
+
this.usdsPsm = usdsPsm;
|
|
53
57
|
this.vatAddress = vatAddress;
|
|
54
58
|
this.poolConfigs = poolConfigs;
|
|
55
59
|
// warning: There is limit on swap
|
|
@@ -81,6 +85,8 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
81
85
|
const destAddress = destToken.address.toLowerCase();
|
|
82
86
|
return ((srcAddress === this.dai.address && this.eventPools[destAddress]) ||
|
|
83
87
|
(destAddress === this.dai.address && this.eventPools[srcAddress]) ||
|
|
88
|
+
(srcAddress === this.usds.address && this.eventPools[destAddress]) ||
|
|
89
|
+
(destAddress === this.usds.address && this.eventPools[srcAddress]) ||
|
|
84
90
|
null);
|
|
85
91
|
}
|
|
86
92
|
// Returns list of pool identifiers that can be used
|
|
@@ -100,7 +106,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
100
106
|
pool.setState(onChainState, blockNumber);
|
|
101
107
|
return onChainState;
|
|
102
108
|
}
|
|
103
|
-
computePrices(
|
|
109
|
+
computePrices(isDestGem, to18ConversionFactor, side, amounts, poolState) {
|
|
104
110
|
const sellGemCheck = (dart) => {
|
|
105
111
|
return dart <= poolState.daiBalance;
|
|
106
112
|
};
|
|
@@ -109,7 +115,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
109
115
|
};
|
|
110
116
|
return amounts.map(a => {
|
|
111
117
|
if (side === constants_1.SwapSide.SELL) {
|
|
112
|
-
if (
|
|
118
|
+
if (isDestGem) {
|
|
113
119
|
const gemAmt18 = (a * WAD) / (WAD + poolState.tout);
|
|
114
120
|
if (buyGemCheck(gemAmt18))
|
|
115
121
|
return gemAmt18 / to18ConversionFactor;
|
|
@@ -121,7 +127,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
else {
|
|
124
|
-
if (
|
|
130
|
+
if (isDestGem) {
|
|
125
131
|
const gemAmt18 = to18ConversionFactor * a;
|
|
126
132
|
if (buyGemCheck(gemAmt18))
|
|
127
133
|
return gemAmt18 + (gemAmt18 * poolState.tout) / WAD;
|
|
@@ -148,24 +154,27 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
148
154
|
return null;
|
|
149
155
|
const poolState = await this.getPoolState(eventPool, blockNumber);
|
|
150
156
|
const unitVolume = (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? srcToken : destToken).decimals);
|
|
151
|
-
const
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
-
|
|
157
|
+
const srcLower = srcToken.address.toLowerCase();
|
|
158
|
+
const isSrcDai = srcLower === this.dai.address;
|
|
159
|
+
const isDaiSwap = isSrcDai || destToken.address.toLowerCase() === this.dai.address;
|
|
160
|
+
const isDestGem = isSrcDai || srcLower === this.usds.address;
|
|
161
|
+
const gem = isDestGem ? destToken : srcToken;
|
|
162
|
+
const toll = (side === constants_1.SwapSide.SELL && isDestGem) ||
|
|
163
|
+
(side === constants_1.SwapSide.BUY && !isDestGem)
|
|
155
164
|
? poolState.tout
|
|
156
165
|
: poolState.tin;
|
|
157
|
-
const [unit, ...prices] = this.computePrices(
|
|
166
|
+
const [unit, ...prices] = this.computePrices(isDestGem, eventPool.to18ConversionFactor, side, [unitVolume, ...amounts], poolState);
|
|
167
|
+
const psm = isDaiSwap ? eventPool.poolConfig.psmAddress : this.usdsPsm;
|
|
158
168
|
return [
|
|
159
169
|
{
|
|
160
170
|
prices,
|
|
161
171
|
unit,
|
|
162
172
|
data: {
|
|
163
173
|
toll: toll.toString(),
|
|
164
|
-
psmAddress:
|
|
165
|
-
gemJoinAddress: eventPool.poolConfig.gemJoinAddress,
|
|
174
|
+
psmAddress: psm,
|
|
166
175
|
gemDecimals: gem.decimals,
|
|
167
176
|
},
|
|
168
|
-
poolAddresses: [
|
|
177
|
+
poolAddresses: [psm],
|
|
169
178
|
exchange: this.dexKey,
|
|
170
179
|
gasCost: 50000,
|
|
171
180
|
poolIdentifier,
|
|
@@ -183,10 +192,11 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
183
192
|
CALLDATA_GAS_COST.wordNonZeroBytes(poolPrices.data.gemDecimals === 6 ? 4 : 1));
|
|
184
193
|
}
|
|
185
194
|
getPsmParams(srcToken, srcAmount, destAmount, data, side) {
|
|
186
|
-
const
|
|
195
|
+
const isDestGem = srcToken.toLowerCase() === this.dai.address ||
|
|
196
|
+
srcToken.toLowerCase() === this.usds.address;
|
|
187
197
|
const to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - data.gemDecimals);
|
|
188
198
|
if (side === constants_1.SwapSide.SELL) {
|
|
189
|
-
if (
|
|
199
|
+
if (isDestGem) {
|
|
190
200
|
const gemAmt18 = (BigInt(srcAmount) * WAD) / (WAD + BigInt(data.toll));
|
|
191
201
|
return {
|
|
192
202
|
isGemSell: false,
|
|
@@ -198,7 +208,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
198
208
|
}
|
|
199
209
|
}
|
|
200
210
|
else {
|
|
201
|
-
if (
|
|
211
|
+
if (isDestGem) {
|
|
202
212
|
return { isGemSell: false, gemAmount: destAmount };
|
|
203
213
|
}
|
|
204
214
|
else {
|
|
@@ -228,9 +238,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
228
238
|
// isApproved is only used in direct method and available only for v6, then no need to check approve for v5
|
|
229
239
|
// because it's either done in getSimpleParam or approve call in the adapter smart contract
|
|
230
240
|
if (options.version === core_1.ParaSwapVersion.V6 && options.isDirectMethod) {
|
|
231
|
-
isApproved = await this.dexHelper.augustusApprovals.hasApproval(options.executionContractAddress, srcToken.address,
|
|
232
|
-
? optimalSwapExchange.data.psmAddress
|
|
233
|
-
: optimalSwapExchange.data.gemJoinAddress);
|
|
241
|
+
isApproved = await this.dexHelper.augustusApprovals.hasApproval(options.executionContractAddress, srcToken.address, optimalSwapExchange.data.psmAddress);
|
|
234
242
|
}
|
|
235
243
|
return [
|
|
236
244
|
{
|
|
@@ -242,7 +250,12 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
242
250
|
}
|
|
243
251
|
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
|
|
244
252
|
const { isGemSell, gemAmount } = this.getPsmParams(srcToken, srcAmount, destAmount, data, side);
|
|
245
|
-
|
|
253
|
+
const isDaiSwap = destToken.toLowerCase() === this.dai.address ||
|
|
254
|
+
srcToken.toLowerCase() === this.dai.address;
|
|
255
|
+
let exchangeData = (isDaiSwap ? daiPsmInterface : usdsPsmInterface).encodeFunctionData(isGemSell ? 'sellGem' : 'buyGem', [
|
|
256
|
+
recipient,
|
|
257
|
+
gemAmount,
|
|
258
|
+
]);
|
|
246
259
|
// append toll and to18ConversionFactor & set specialDexFlag = SWAP_ON_MAKER_PSM to
|
|
247
260
|
// - `buyGem` on Ex1 & Ex2
|
|
248
261
|
// - `sellGem` on Ex3
|
|
@@ -262,9 +275,9 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
262
275
|
exchangeData,
|
|
263
276
|
targetExchange: data.psmAddress,
|
|
264
277
|
specialDexFlag,
|
|
265
|
-
spender:
|
|
278
|
+
spender: data.psmAddress,
|
|
266
279
|
returnAmountPos: side === constants_1.SwapSide.SELL && isGemSell
|
|
267
|
-
? (0, utils_2.extractReturnAmountPosition)(
|
|
280
|
+
? (0, utils_2.extractReturnAmountPosition)(isDaiSwap ? daiPsmInterface : usdsPsmInterface, 'sellGem', isDaiSwap ? 'daiOutWad' : 'usdsOutWad')
|
|
268
281
|
: undefined,
|
|
269
282
|
};
|
|
270
283
|
}
|
|
@@ -296,7 +309,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
296
309
|
data.toll,
|
|
297
310
|
to18ConversionFactor.toString(),
|
|
298
311
|
data.psmAddress,
|
|
299
|
-
data.
|
|
312
|
+
data.psmAddress,
|
|
300
313
|
metadata,
|
|
301
314
|
beneficiaryDirectionApproveFlag.toString(),
|
|
302
315
|
];
|
|
@@ -318,8 +331,8 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
318
331
|
return (2 *
|
|
319
332
|
parseInt(((buyLimit > sellLimit ? sellLimit : buyLimit) / bigint_constants_1.BI_POWS[18]).toString()));
|
|
320
333
|
};
|
|
321
|
-
const
|
|
322
|
-
const validPoolConfigs =
|
|
334
|
+
const isDaiOrUsds = _tokenAddress === this.dai.address || _tokenAddress === this.usds.address;
|
|
335
|
+
const validPoolConfigs = isDaiOrUsds
|
|
323
336
|
? this.poolConfigs
|
|
324
337
|
: this.eventPools[_tokenAddress]
|
|
325
338
|
? [this.eventPools[_tokenAddress].poolConfig]
|
|
@@ -331,7 +344,7 @@ class LitePsm extends simple_exchange_1.SimpleExchange {
|
|
|
331
344
|
exchange: this.dexKey,
|
|
332
345
|
address: p.psmAddress,
|
|
333
346
|
liquidityUSD: minLiq(poolStates[i], p.gem.decimals),
|
|
334
|
-
connectorTokens:
|
|
347
|
+
connectorTokens: isDaiOrUsds ? [p.gem] : [this.dai, this.usds],
|
|
335
348
|
}));
|
|
336
349
|
}
|
|
337
350
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lite-psm.js","sourceRoot":"","sources":["../../../src/dex/lite-psm/lite-psm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA+C;AAgB/C,+CAAkE;AAClE,2EAA6D;AAC7D,uCAIqB;AAUrB,wDAAoD;AACpD,qCAAyC;AACzC,2EAAiD;AACjD,6DAAiD;AACjD,gDAAkD;AAClD,gDAAsE;AACtE,yCAIwB;AACxB,mCAAmC;AACnC,+DAA0E;AAC1E,gDAAmE;AAEnE,MAAM,YAAY,GAAG,IAAI,eAAS,CAAC,kBAAM,CAAC,CAAC;AAC3C,MAAM,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAE3D,MAAa,OACX,SAAQ,gCAAc;IActB,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB,EACrB,MAAa,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAC/C,aAAsB,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAC/D,cAA4B,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK;QAE1E,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAPf,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QACrB,QAAG,GAAH,GAAG,CAA4C;QAC/C,eAAU,GAAV,UAAU,CAAqD;QAC/D,gBAAW,GAAX,WAAW,CAAqD;QAf5E,kCAAkC;QACzB,iCAA4B,GAAG,IAAI,CAAC;QACpC,6BAAwB,GAAG,KAAK,CAAC;QAgBxC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,WAAW,CAAC,OAAO,CACjB,CAAC,CAAC,EAAE,CACF,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,sCAAgB,CAClE,MAAM,EACN,OAAO,EACP,SAAS,EACT,IAAI,CAAC,MAAM,EACX,CAAC,EACD,IAAI,CAAC,UAAU,CAChB,CAAC,CACL,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,OAAO,CAAC,uBAAgB,CAAC,8BAA8B,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAe,EACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,WAAW,EACX,sBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CACrD,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/D,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE;gBACtC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,wDAAwD;IACxD,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,QAAe,EAAE,SAAgB;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACpD,OAAO,CACL,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACjE,CAAC,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjE,IAAI,CACL,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IACnD,gBAAgB;IAChB,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAsB,EACtB,WAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACzC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,aAAa,CACX,QAAiB,EACjB,oBAA4B,EAC5B,IAAc,EACd,OAAiB,EACjB,SAAoB;QAEpB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;YACpC,OAAO,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;YACnC,OAAO,IAAI,IAAI,SAAS,CAAC,UAAU,GAAG,oBAAoB,CAAC;QAC7D,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,EAAE;gBAC1B,IAAI,QAAQ,EAAE;oBACZ,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,WAAW,CAAC,QAAQ,CAAC;wBAAE,OAAO,QAAQ,GAAG,oBAAoB,CAAC;iBACnE;qBAAM;oBACL,MAAM,QAAQ,GAAG,oBAAoB,GAAG,CAAC,CAAC;oBAC1C,IAAI,YAAY,CAAC,QAAQ,CAAC;wBACxB,OAAO,QAAQ,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;iBACtD;aACF;iBAAM;gBACL,IAAI,QAAQ,EAAE;oBACZ,MAAM,QAAQ,GAAG,oBAAoB,GAAG,CAAC,CAAC;oBAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC;wBACvB,OAAO,QAAQ,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;iBACvD;qBAAM;oBACL,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnD,IAAI,YAAY,CAAC,QAAQ,CAAC;wBAAE,OAAO,QAAQ,GAAG,oBAAoB,CAAC;iBACpE;aACF;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,oDAAoD;IACpD,kDAAkD;IAClD,yBAAyB;IACzB,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,IAAA,oBAAY,EAC7B,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CACzD,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5C,MAAM,IAAI,GACR,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;YACpC,CAAC,IAAI,KAAK,oBAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC,IAAI;YAChB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;QAEpB,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAC1C,QAAQ,EACR,SAAS,CAAC,oBAAoB,EAC9B,IAAI,EACJ,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,EACxB,SAAS,CACV,CAAC;QAEF,OAAO;YACL;gBACE,MAAM;gBACN,IAAI;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACrB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,UAAU;oBAC3C,cAAc,EAAE,SAAS,CAAC,UAAU,CAAC,cAAc;oBACnD,WAAW,EAAE,GAAG,CAAC,QAAQ;iBAC1B;gBACD,aAAa,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;gBAChD,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,KAAK;gBACd,cAAc;aACf;SACF,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAAC,UAAmC;QACpD,OAAO,CACL,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,OAAO;YACzB,yDAAyD;YACzD,iBAAiB,CAAC,IAAI;YACtB,6DAA6D;YAC7D,iBAAiB,CAAC,gBAAgB,CAChC,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1C,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CACV,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7D,MAAM,oBAAoB,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,EAAE;YAC1B,IAAI,QAAQ,EAAE;gBACZ,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvE,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,CAAC,QAAQ,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE;iBACxD,CAAC;aACH;iBAAM;gBACL,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;aAClD;SACF;aAAM;YACL,IAAI,QAAQ,EAAE;gBACZ,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;aACpD;iBAAM;gBACL,MAAM,MAAM,GAAG,OAAO,CACpB,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,EACxB,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,oBAAoB,CACjD,CAAC;gBACF,OAAO;oBACL,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE;iBAC7B,CAAC;aACH;SACF;IACH,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAgB;QAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,mBAAqD,EACrD,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,OAAqC;QAErC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,MAAM,gDAAgD,CACrE,CAAC;SACH;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,2GAA2G;QAC3G,2FAA2F;QAC3F,IAAI,OAAO,CAAC,OAAO,KAAK,sBAAe,CAAC,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE;YACpE,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAC7D,OAAO,CAAC,wBAAwB,EAChC,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC/D,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU;gBACrC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAC5C,CAAC;SACH;QAED,OAAO;YACL;gBACE,GAAG,mBAAmB;gBACtB,IAAI,EAAE,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE;aAClD;YACD,EAAE;SACH,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,CAChD,QAAQ,EACR,SAAS,EACT,UAAU,EACV,IAAI,EACJ,IAAI,CACL,CAAC;QAEF,IAAI,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAChD,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAChC,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAC;QAEF,mFAAmF;QACnF,0BAA0B;QAC1B,qBAAqB;QACrB,IAAI,cAAc,GAAG,kBAAU,CAAC,OAAO,CAAC;QACxC,IACE,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;YACtC,CAAC,IAAI,KAAK,oBAAQ,CAAC,GAAG,IAAI,SAAS,CAAC,EACpC;YACA,YAAY,GAAG,IAAA,iBAAS,EAAC;gBACvB,YAAY;gBACZ,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,IAAA,oBAAY,EAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC;aAC7D,CAAC,CAAC;YACH,cAAc,GAAG,kBAAU,CAAC,iBAAiB,CAAC;SAC/C;QAED,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY;YACZ,cAAc,EAAE,IAAI,CAAC,UAAU;YAC/B,cAAc;YACd,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;YAC1D,eAAe,EACb,IAAI,KAAK,oBAAQ,CAAC,IAAI,IAAI,SAAS;gBACjC,CAAC,CAAC,IAAA,mCAA2B,EAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;gBACnE,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,gBAAgB,CACd,QAAiB,EACjB,SAAkB,EAClB,UAA0B,EAC1B,QAAwB,EACxB,YAA4B,EAC5B,IAAiB,EACjB,IAAc,EACd,MAAc,EACd,IAAY,EACZ,aAAqB,EACrB,WAAmB,EACnB,WAAmB,EACnB,cAAsB;QAEtB,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,cAAe,CAAC,EAAE;YAChE,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;SAC9D;QAED,MAAM,gBAAgB,GAAG,kBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5B,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,cAAc,GAClB,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1E,MAAM,+BAA+B,GAAG,gBAAgB;aACrD,EAAE,CAAC,cAAc,CAAC;aAClB,EAAE,CAAC,YAAY,CAAC,CAAC;QAEpB,MAAM,oBAAoB,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjE,MAAM,QAAQ,GAAG,IAAA,iBAAS,EAAC;YACzB,IAAA,kBAAU,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACnC,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,WAAW,CAAC,EAAE,EAAE,CAAC;SACrC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAkB;YAC5B,QAAQ;YACR,mDAAmD;YACnD,SAAS;YACT,UAAU;YACV,QAAQ;YACR,IAAI,CAAC,IAAI;YACT,oBAAoB,CAAC,QAAQ,EAAE;YAC/B,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,cAAc;YACnB,QAAQ;YACR,+BAA+B,CAAC,QAAQ,EAAE;SAC3C,CAAC;QAEF,MAAM,OAAO,GAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAyC,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,uBAAgB,CAAC,8BAA8B,EAC/C,CAAC,GAAG,MAAM,CAAC,CACZ,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACvD,CAAC;IAED,oDAAoD;IACpD,yCAAyC;IACzC,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACjD,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,MAAM,GAAG,CAAC,SAAoB,EAAE,QAAgB,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;YACvC,OAAO,CACL,CAAC;gBACD,QAAQ,CACN,CACE,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,0BAAO,CAAC,EAAE,CAAC,CAC5D,CAAC,QAAQ,EAAE,CACb,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAEjD,MAAM,gBAAgB,GAAG,KAAK;YAC5B,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;gBAC7C,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAe,EACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,gBAAgB,EAChB,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,sBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CACrD,CAAC;QAEF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,OAAO,EAAE,CAAC,CAAC,UAAU;YACrB,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnD,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC5C,CAAC,CAAC,CAAC;IACN,CAAC;;AAjdH,0BAkdC;AAxce,0BAAkB,GAC9B,IAAA,6BAAqB,EAAC,sBAAa,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"lite-psm.js","sourceRoot":"","sources":["../../../src/dex/lite-psm/lite-psm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA+C;AAc/C,+CAAkE;AAClE,2EAA6D;AAC7D,uCAIqB;AAUrB,wDAAoD;AACpD,qCAAyC;AACzC,2EAAoD;AACpD,mFAAyD;AACzD,6DAAiD;AACjD,gDAAkD;AAClD,gDAAsE;AACtE,yCAIwB;AACxB,mCAAmC;AACnC,+DAA0E;AAC1E,gDAAmE;AAEnE,MAAM,eAAe,GAAG,IAAI,eAAS,CAAC,kBAAS,CAAC,CAAC;AACjD,MAAM,gBAAgB,GAAG,IAAI,eAAS,CAAC,sBAAU,CAAC,CAAC;AACnD,MAAM,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAE3D,MAAa,OACX,SAAQ,gCAAc;IActB,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB,EACrB,MAAa,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAC/C,OAAc,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EACjD,UAAmB,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAChE,aAAsB,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAC/D,cAA4B,sBAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK;QAE1E,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QATf,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QACrB,QAAG,GAAH,GAAG,CAA4C;QAC/C,SAAI,GAAJ,IAAI,CAA6C;QACjD,YAAO,GAAP,OAAO,CAAyD;QAChE,eAAU,GAAV,UAAU,CAAqD;QAC/D,gBAAW,GAAX,WAAW,CAAqD;QAjB5E,kCAAkC;QACzB,iCAA4B,GAAG,IAAI,CAAC;QACpC,6BAAwB,GAAG,KAAK,CAAC;QAkBxC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,WAAW,CAAC,OAAO,CACjB,CAAC,CAAC,EAAE,CACF,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,sCAAgB,CAClE,MAAM,EACN,OAAO,EACP,SAAS,EACT,IAAI,CAAC,MAAM,EACX,CAAC,EACD,IAAI,CAAC,UAAU,CAChB,CAAC,CACL,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,OAAO,CAAC,uBAAgB,CAAC,8BAA8B,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAe,EACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,WAAW,EACX,sBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CACrD,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/D,MAAM,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE;gBACtC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,wDAAwD;IACxD,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,QAAe,EAAE,SAAgB;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACpD,OAAO,CACL,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACjE,CAAC,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjE,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAClE,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAClE,IAAI,CACL,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IACnD,gBAAgB;IAChB,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAsB,EACtB,WAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACzC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,aAAa,CACX,SAAkB,EAClB,oBAA4B,EAC5B,IAAc,EACd,OAAiB,EACjB,SAAoB;QAEpB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;YACpC,OAAO,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;YACnC,OAAO,IAAI,IAAI,SAAS,CAAC,UAAU,GAAG,oBAAoB,CAAC;QAC7D,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,EAAE;gBAC1B,IAAI,SAAS,EAAE;oBACb,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,WAAW,CAAC,QAAQ,CAAC;wBAAE,OAAO,QAAQ,GAAG,oBAAoB,CAAC;iBACnE;qBAAM;oBACL,MAAM,QAAQ,GAAG,oBAAoB,GAAG,CAAC,CAAC;oBAC1C,IAAI,YAAY,CAAC,QAAQ,CAAC;wBACxB,OAAO,QAAQ,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;iBACtD;aACF;iBAAM;gBACL,IAAI,SAAS,EAAE;oBACb,MAAM,QAAQ,GAAG,oBAAoB,GAAG,CAAC,CAAC;oBAC1C,IAAI,WAAW,CAAC,QAAQ,CAAC;wBACvB,OAAO,QAAQ,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;iBACvD;qBAAM;oBACL,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnD,IAAI,YAAY,CAAC,QAAQ,CAAC;wBAAE,OAAO,QAAQ,GAAG,oBAAoB,CAAC;iBACpE;aACF;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,oDAAoD;IACpD,kDAAkD;IAClD,yBAAyB;IACzB,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,IAAA,oBAAY,EAC7B,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CACzD,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/C,MAAM,SAAS,GACb,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAEnE,MAAM,SAAS,GAAG,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAE7D,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7C,MAAM,IAAI,GACR,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,IAAI,SAAS,CAAC;YACrC,CAAC,IAAI,KAAK,oBAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,CAAC,CAAC,SAAS,CAAC,IAAI;YAChB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;QAEpB,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAC1C,SAAS,EACT,SAAS,CAAC,oBAAoB,EAC9B,IAAI,EACJ,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,EACxB,SAAS,CACV,CAAC;QAEF,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACvE,OAAO;YACL;gBACE,MAAM;gBACN,IAAI;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;oBACrB,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,GAAG,CAAC,QAAQ;iBAC1B;gBACD,aAAa,EAAE,CAAC,GAAG,CAAC;gBACpB,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,KAAK;gBACd,cAAc;aACf;SACF,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAAC,UAAmC;QACpD,OAAO,CACL,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,OAAO;YACzB,yDAAyD;YACzD,iBAAiB,CAAC,IAAI;YACtB,6DAA6D;YAC7D,iBAAiB,CAAC,gBAAgB,CAChC,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1C,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CACV,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,SAAS,GACb,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO;YAC3C,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/C,MAAM,oBAAoB,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,EAAE;YAC1B,IAAI,SAAS,EAAE;gBACb,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvE,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,CAAC,QAAQ,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE;iBACxD,CAAC;aACH;iBAAM;gBACL,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;aAClD;SACF;aAAM;YACL,IAAI,SAAS,EAAE;gBACb,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;aACpD;iBAAM;gBACL,MAAM,MAAM,GAAG,OAAO,CACpB,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,EACxB,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,oBAAoB,CACjD,CAAC;gBACF,OAAO;oBACL,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE;iBAC7B,CAAC;aACH;SACF;IACH,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAgB;QAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,mBAAqD,EACrD,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,OAAqC;QAErC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,MAAM,gDAAgD,CACrE,CAAC;SACH;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,2GAA2G;QAC3G,2FAA2F;QAC3F,IAAI,OAAO,CAAC,OAAO,KAAK,sBAAe,CAAC,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE;YACpE,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAC7D,OAAO,CAAC,wBAAwB,EAChC,QAAQ,CAAC,OAAO,EAChB,mBAAmB,CAAC,IAAI,CAAC,UAAU,CACpC,CAAC;SACH;QAED,OAAO;YACL;gBACE,GAAG,mBAAmB;gBACtB,IAAI,EAAE,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE;aAClD;YACD,EAAE;SACH,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAiB,EACjB,IAAc;QAEd,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,CAChD,QAAQ,EACR,SAAS,EACT,UAAU,EACV,IAAI,EACJ,IAAI,CACL,CAAC;QAEF,MAAM,SAAS,GACb,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO;YAC5C,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAE9C,IAAI,YAAY,GAAG,CACjB,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAC/C,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;YACrD,SAAS;YACT,SAAS;SACV,CAAC,CAAC;QAEH,mFAAmF;QACnF,0BAA0B;QAC1B,qBAAqB;QACrB,IAAI,cAAc,GAAG,kBAAU,CAAC,OAAO,CAAC;QACxC,IACE,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;YACtC,CAAC,IAAI,KAAK,oBAAQ,CAAC,GAAG,IAAI,SAAS,CAAC,EACpC;YACA,YAAY,GAAG,IAAA,iBAAS,EAAC;gBACvB,YAAY;gBACZ,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,IAAA,oBAAY,EAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC;aAC7D,CAAC,CAAC;YACH,cAAc,GAAG,kBAAU,CAAC,iBAAiB,CAAC;SAC/C;QAED,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY;YACZ,cAAc,EAAE,IAAI,CAAC,UAAU;YAC/B,cAAc;YACd,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,eAAe,EACb,IAAI,KAAK,oBAAQ,CAAC,IAAI,IAAI,SAAS;gBACjC,CAAC,CAAC,IAAA,mCAA2B,EACzB,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,EAC9C,SAAS,EACT,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CACvC;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,gBAAgB,CACd,QAAiB,EACjB,SAAkB,EAClB,UAA0B,EAC1B,QAAwB,EACxB,YAA4B,EAC5B,IAAiB,EACjB,IAAc,EACd,MAAc,EACd,IAAY,EACZ,aAAqB,EACrB,WAAmB,EACnB,WAAmB,EACnB,cAAsB;QAEtB,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,cAAe,CAAC,EAAE;YAChE,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;SAC9D;QAED,MAAM,gBAAgB,GAAG,kBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5B,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,cAAc,GAClB,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1E,MAAM,+BAA+B,GAAG,gBAAgB;aACrD,EAAE,CAAC,cAAc,CAAC;aAClB,EAAE,CAAC,YAAY,CAAC,CAAC;QAEpB,MAAM,oBAAoB,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjE,MAAM,QAAQ,GAAG,IAAA,iBAAS,EAAC;YACzB,IAAA,kBAAU,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACnC,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,WAAW,CAAC,EAAE,EAAE,CAAC;SACrC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAkB;YAC5B,QAAQ;YACR,mDAAmD;YACnD,SAAS;YACT,UAAU;YACV,QAAQ;YACR,IAAI,CAAC,IAAI;YACT,oBAAoB,CAAC,QAAQ,EAAE;YAC/B,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU;YACf,QAAQ;YACR,+BAA+B,CAAC,QAAQ,EAAE;SAC3C,CAAC;QAEF,MAAM,OAAO,GAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAyC,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,uBAAgB,CAAC,8BAA8B,EAC/C,CAAC,GAAG,MAAM,CAAC,CACZ,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACvD,CAAC;IAED,oDAAoD;IACpD,yCAAyC;IACzC,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACjD,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,MAAM,GAAG,CAAC,SAAoB,EAAE,QAAgB,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;YACvC,OAAO,CACL,CAAC;gBACD,QAAQ,CACN,CACE,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,0BAAO,CAAC,EAAE,CAAC,CAC5D,CAAC,QAAQ,EAAE,CACb,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,WAAW,GACf,aAAa,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAE5E,MAAM,gBAAgB,GAAG,WAAW;YAClC,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;gBAC7C,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAe,EACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,gBAAgB,EAChB,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,sBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CACrD,CAAC;QAEF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,OAAO,EAAE,CAAC,CAAC,UAAU;YACrB,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnD,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;SAC/D,CAAC,CAAC,CAAC;IACN,CAAC;;AAteH,0BAueC;AA7de,0BAAkB,GAC9B,IAAA,6BAAqB,EAAC,sBAAa,CAAC,CAAC"}
|
|
@@ -8,20 +8,20 @@ export declare type PoolState = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare type LitePsmData = {
|
|
10
10
|
psmAddress: Address;
|
|
11
|
-
gemJoinAddress: Address;
|
|
12
11
|
gemDecimals: number;
|
|
13
12
|
toll: string;
|
|
14
13
|
isApproved?: boolean;
|
|
15
14
|
};
|
|
16
15
|
export declare type PoolConfig = {
|
|
17
16
|
gem: Token;
|
|
18
|
-
gemJoinAddress: Address;
|
|
19
17
|
pocketAddress: Address;
|
|
20
18
|
psmAddress: Address;
|
|
21
19
|
identifier: string;
|
|
22
20
|
};
|
|
23
21
|
export declare type DexParams = {
|
|
24
22
|
dai: Token;
|
|
23
|
+
usds: Token;
|
|
24
|
+
usdsPsmAddress: Address;
|
|
25
25
|
vatAddress: Address;
|
|
26
26
|
pools: PoolConfig[];
|
|
27
27
|
};
|
package/package.json
CHANGED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"inputs": [
|
|
4
|
+
{ "internalType": "address", "name": "psm_", "type": "address" },
|
|
5
|
+
{ "internalType": "address", "name": "usdsJoin_", "type": "address" }
|
|
6
|
+
],
|
|
7
|
+
"stateMutability": "nonpayable",
|
|
8
|
+
"type": "constructor"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"inputs": [],
|
|
12
|
+
"name": "HALTED",
|
|
13
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
14
|
+
"stateMutability": "view",
|
|
15
|
+
"type": "function"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"inputs": [],
|
|
19
|
+
"name": "buf",
|
|
20
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
21
|
+
"stateMutability": "view",
|
|
22
|
+
"type": "function"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"inputs": [
|
|
26
|
+
{ "internalType": "address", "name": "usr", "type": "address" },
|
|
27
|
+
{ "internalType": "uint256", "name": "gemAmt", "type": "uint256" }
|
|
28
|
+
],
|
|
29
|
+
"name": "buyGem",
|
|
30
|
+
"outputs": [
|
|
31
|
+
{ "internalType": "uint256", "name": "usdsInWad", "type": "uint256" }
|
|
32
|
+
],
|
|
33
|
+
"stateMutability": "nonpayable",
|
|
34
|
+
"type": "function"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"inputs": [],
|
|
38
|
+
"name": "dai",
|
|
39
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
40
|
+
"stateMutability": "view",
|
|
41
|
+
"type": "function"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"inputs": [],
|
|
45
|
+
"name": "dec",
|
|
46
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
47
|
+
"stateMutability": "view",
|
|
48
|
+
"type": "function"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"inputs": [],
|
|
52
|
+
"name": "gem",
|
|
53
|
+
"outputs": [
|
|
54
|
+
{ "internalType": "contract GemLike", "name": "", "type": "address" }
|
|
55
|
+
],
|
|
56
|
+
"stateMutability": "view",
|
|
57
|
+
"type": "function"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"inputs": [],
|
|
61
|
+
"name": "gemJoin",
|
|
62
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
63
|
+
"stateMutability": "view",
|
|
64
|
+
"type": "function"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"inputs": [],
|
|
68
|
+
"name": "ilk",
|
|
69
|
+
"outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
|
|
70
|
+
"stateMutability": "view",
|
|
71
|
+
"type": "function"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"inputs": [],
|
|
75
|
+
"name": "live",
|
|
76
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
77
|
+
"stateMutability": "view",
|
|
78
|
+
"type": "function"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"inputs": [],
|
|
82
|
+
"name": "pocket",
|
|
83
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
84
|
+
"stateMutability": "view",
|
|
85
|
+
"type": "function"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"inputs": [],
|
|
89
|
+
"name": "psm",
|
|
90
|
+
"outputs": [
|
|
91
|
+
{ "internalType": "contract PsmLike", "name": "", "type": "address" }
|
|
92
|
+
],
|
|
93
|
+
"stateMutability": "view",
|
|
94
|
+
"type": "function"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"inputs": [
|
|
98
|
+
{ "internalType": "address", "name": "usr", "type": "address" },
|
|
99
|
+
{ "internalType": "uint256", "name": "gemAmt", "type": "uint256" }
|
|
100
|
+
],
|
|
101
|
+
"name": "sellGem",
|
|
102
|
+
"outputs": [
|
|
103
|
+
{ "internalType": "uint256", "name": "usdsOutWad", "type": "uint256" }
|
|
104
|
+
],
|
|
105
|
+
"stateMutability": "nonpayable",
|
|
106
|
+
"type": "function"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"inputs": [],
|
|
110
|
+
"name": "tin",
|
|
111
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
112
|
+
"stateMutability": "view",
|
|
113
|
+
"type": "function"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"inputs": [],
|
|
117
|
+
"name": "to18ConversionFactor",
|
|
118
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
119
|
+
"stateMutability": "view",
|
|
120
|
+
"type": "function"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"inputs": [],
|
|
124
|
+
"name": "tout",
|
|
125
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
126
|
+
"stateMutability": "view",
|
|
127
|
+
"type": "function"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"inputs": [],
|
|
131
|
+
"name": "usds",
|
|
132
|
+
"outputs": [
|
|
133
|
+
{ "internalType": "contract GemLike", "name": "", "type": "address" }
|
|
134
|
+
],
|
|
135
|
+
"stateMutability": "view",
|
|
136
|
+
"type": "function"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"inputs": [],
|
|
140
|
+
"name": "usdsJoin",
|
|
141
|
+
"outputs": [
|
|
142
|
+
{ "internalType": "contract UsdsJoinLike", "name": "", "type": "address" }
|
|
143
|
+
],
|
|
144
|
+
"stateMutability": "view",
|
|
145
|
+
"type": "function"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"inputs": [],
|
|
149
|
+
"name": "vat",
|
|
150
|
+
"outputs": [
|
|
151
|
+
{ "internalType": "contract VatLike", "name": "", "type": "address" }
|
|
152
|
+
],
|
|
153
|
+
"stateMutability": "view",
|
|
154
|
+
"type": "function"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"inputs": [],
|
|
158
|
+
"name": "vow",
|
|
159
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
160
|
+
"stateMutability": "view",
|
|
161
|
+
"type": "function"
|
|
162
|
+
}
|
|
163
|
+
]
|
|
@@ -10,6 +10,11 @@ export const LitePsmConfig: DexConfigMap<DexParams> = {
|
|
|
10
10
|
address: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
11
11
|
decimals: 18,
|
|
12
12
|
},
|
|
13
|
+
usds: {
|
|
14
|
+
address: '0xdc035d45d973e3ec169d2276ddab16f1e407384f',
|
|
15
|
+
decimals: 18,
|
|
16
|
+
},
|
|
17
|
+
usdsPsmAddress: '0xA188EEC8F81263234dA3622A406892F3D630f98c',
|
|
13
18
|
vatAddress: '0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b',
|
|
14
19
|
pools: [
|
|
15
20
|
{
|
|
@@ -17,7 +22,6 @@ export const LitePsmConfig: DexConfigMap<DexParams> = {
|
|
|
17
22
|
address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
18
23
|
decimals: 6,
|
|
19
24
|
},
|
|
20
|
-
gemJoinAddress: '0xf6e72db5454dd049d0788e411b06cfaf16853042', // Same as psmAddress. LitePsm does not have an external gem join.
|
|
21
25
|
pocketAddress: '0x37305b1cd40574e4c5ce33f8e8306be057fd7341',
|
|
22
26
|
psmAddress: '0xf6e72db5454dd049d0788e411b06cfaf16853042',
|
|
23
27
|
identifier:
|
|
@@ -10,7 +10,7 @@ import { generateConfig } from '../../config';
|
|
|
10
10
|
describe('LitePsm E2E', () => {
|
|
11
11
|
const dexKey = 'LitePsm';
|
|
12
12
|
|
|
13
|
-
describe('LitePsm
|
|
13
|
+
describe('LitePsm DAI', () => {
|
|
14
14
|
const network = Network.MAINNET;
|
|
15
15
|
const tokens = Tokens[network];
|
|
16
16
|
const holders = Holders[network];
|
|
@@ -76,4 +76,71 @@ describe('LitePsm E2E', () => {
|
|
|
76
76
|
}),
|
|
77
77
|
);
|
|
78
78
|
});
|
|
79
|
+
|
|
80
|
+
describe('LitePsm USDS', () => {
|
|
81
|
+
const network = Network.MAINNET;
|
|
82
|
+
const tokens = Tokens[network];
|
|
83
|
+
const holders = Holders[network];
|
|
84
|
+
const provider = new StaticJsonRpcProvider(
|
|
85
|
+
generateConfig(network).privateHttpProvider,
|
|
86
|
+
network,
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
const tokenASymbol: string = 'USDC';
|
|
90
|
+
const tokenBSymbol: string = 'USDS';
|
|
91
|
+
|
|
92
|
+
const tokenAAmount: string = '10000000';
|
|
93
|
+
const tokenBAmount: string = '10000000000000000';
|
|
94
|
+
|
|
95
|
+
const sideToContractMethods = new Map([
|
|
96
|
+
[
|
|
97
|
+
SwapSide.SELL,
|
|
98
|
+
[
|
|
99
|
+
ContractMethod.swapExactAmountIn,
|
|
100
|
+
ContractMethod.swapExactAmountInOutOnMakerPSM,
|
|
101
|
+
],
|
|
102
|
+
],
|
|
103
|
+
[
|
|
104
|
+
SwapSide.BUY,
|
|
105
|
+
[
|
|
106
|
+
ContractMethod.swapExactAmountOut,
|
|
107
|
+
ContractMethod.swapExactAmountInOutOnMakerPSM,
|
|
108
|
+
],
|
|
109
|
+
],
|
|
110
|
+
]);
|
|
111
|
+
|
|
112
|
+
sideToContractMethods.forEach((contractMethods, side) =>
|
|
113
|
+
contractMethods.forEach((contractMethod: ContractMethod) => {
|
|
114
|
+
describe(`${contractMethod}`, () => {
|
|
115
|
+
it(`${side}:${tokenASymbol} -> ${tokenBSymbol}`, async () => {
|
|
116
|
+
await testE2E(
|
|
117
|
+
tokens[tokenASymbol],
|
|
118
|
+
tokens[tokenBSymbol],
|
|
119
|
+
holders[tokenASymbol],
|
|
120
|
+
side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
|
|
121
|
+
side,
|
|
122
|
+
dexKey,
|
|
123
|
+
contractMethod,
|
|
124
|
+
network,
|
|
125
|
+
provider,
|
|
126
|
+
);
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
it(`${side}:${tokenBSymbol} -> ${tokenASymbol}`, async () => {
|
|
130
|
+
await testE2E(
|
|
131
|
+
tokens[tokenBSymbol],
|
|
132
|
+
tokens[tokenASymbol],
|
|
133
|
+
holders[tokenBSymbol],
|
|
134
|
+
side === SwapSide.SELL ? tokenBAmount : tokenAAmount,
|
|
135
|
+
side,
|
|
136
|
+
dexKey,
|
|
137
|
+
contractMethod,
|
|
138
|
+
network,
|
|
139
|
+
provider,
|
|
140
|
+
);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
}),
|
|
144
|
+
);
|
|
145
|
+
});
|
|
79
146
|
});
|
|
@@ -4,9 +4,7 @@ import {
|
|
|
4
4
|
Address,
|
|
5
5
|
ExchangePrices,
|
|
6
6
|
PoolPrices,
|
|
7
|
-
Log,
|
|
8
7
|
AdapterExchangeParam,
|
|
9
|
-
SimpleExchangeParam,
|
|
10
8
|
PoolLiquidity,
|
|
11
9
|
Logger,
|
|
12
10
|
NumberAsString,
|
|
@@ -32,7 +30,8 @@ import {
|
|
|
32
30
|
} from './types';
|
|
33
31
|
import { SimpleExchange } from '../simple-exchange';
|
|
34
32
|
import { LitePsmConfig } from './config';
|
|
35
|
-
import
|
|
33
|
+
import DaiPsmABI from '../../abi/lite-psm/psm.json';
|
|
34
|
+
import UsdsPsmABI from '../../abi/lite-psm/usdsPsm.json';
|
|
36
35
|
import { BI_POWS } from '../../bigint-constants';
|
|
37
36
|
import { SpecialDex } from '../../executor/types';
|
|
38
37
|
import { hexConcat, hexZeroPad, hexlify } from '@ethersproject/bytes';
|
|
@@ -45,7 +44,8 @@ import { BigNumber } from 'ethers';
|
|
|
45
44
|
import { LitePsmEventPool, getOnChainState } from './lite-psm-event-pool';
|
|
46
45
|
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
47
46
|
|
|
48
|
-
const
|
|
47
|
+
const daiPsmInterface = new Interface(DaiPsmABI);
|
|
48
|
+
const usdsPsmInterface = new Interface(UsdsPsmABI);
|
|
49
49
|
const WAD = BI_POWS[18];
|
|
50
50
|
|
|
51
51
|
const ceilDiv = (a: bigint, b: bigint) => (a + b - 1n) / b;
|
|
@@ -70,6 +70,8 @@ export class LitePsm
|
|
|
70
70
|
dexKey: string,
|
|
71
71
|
protected dexHelper: IDexHelper,
|
|
72
72
|
protected dai: Token = LitePsmConfig[dexKey][network].dai,
|
|
73
|
+
protected usds: Token = LitePsmConfig[dexKey][network].usds,
|
|
74
|
+
protected usdsPsm: Address = LitePsmConfig[dexKey][network].usdsPsmAddress,
|
|
73
75
|
protected vatAddress: Address = LitePsmConfig[dexKey][network].vatAddress,
|
|
74
76
|
protected poolConfigs: PoolConfig[] = LitePsmConfig[dexKey][network].pools,
|
|
75
77
|
) {
|
|
@@ -123,6 +125,8 @@ export class LitePsm
|
|
|
123
125
|
return (
|
|
124
126
|
(srcAddress === this.dai.address && this.eventPools[destAddress]) ||
|
|
125
127
|
(destAddress === this.dai.address && this.eventPools[srcAddress]) ||
|
|
128
|
+
(srcAddress === this.usds.address && this.eventPools[destAddress]) ||
|
|
129
|
+
(destAddress === this.usds.address && this.eventPools[srcAddress]) ||
|
|
126
130
|
null
|
|
127
131
|
);
|
|
128
132
|
}
|
|
@@ -153,7 +157,7 @@ export class LitePsm
|
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
computePrices(
|
|
156
|
-
|
|
160
|
+
isDestGem: boolean,
|
|
157
161
|
to18ConversionFactor: bigint,
|
|
158
162
|
side: SwapSide,
|
|
159
163
|
amounts: bigint[],
|
|
@@ -168,7 +172,7 @@ export class LitePsm
|
|
|
168
172
|
|
|
169
173
|
return amounts.map(a => {
|
|
170
174
|
if (side === SwapSide.SELL) {
|
|
171
|
-
if (
|
|
175
|
+
if (isDestGem) {
|
|
172
176
|
const gemAmt18 = (a * WAD) / (WAD + poolState.tout);
|
|
173
177
|
if (buyGemCheck(gemAmt18)) return gemAmt18 / to18ConversionFactor;
|
|
174
178
|
} else {
|
|
@@ -177,7 +181,7 @@ export class LitePsm
|
|
|
177
181
|
return gemAmt18 - (gemAmt18 * poolState.tin) / WAD;
|
|
178
182
|
}
|
|
179
183
|
} else {
|
|
180
|
-
if (
|
|
184
|
+
if (isDestGem) {
|
|
181
185
|
const gemAmt18 = to18ConversionFactor * a;
|
|
182
186
|
if (buyGemCheck(gemAmt18))
|
|
183
187
|
return gemAmt18 + (gemAmt18 * poolState.tout) / WAD;
|
|
@@ -214,33 +218,39 @@ export class LitePsm
|
|
|
214
218
|
(side === SwapSide.SELL ? srcToken : destToken).decimals,
|
|
215
219
|
);
|
|
216
220
|
|
|
217
|
-
const
|
|
218
|
-
const
|
|
221
|
+
const srcLower = srcToken.address.toLowerCase();
|
|
222
|
+
const isSrcDai = srcLower === this.dai.address;
|
|
223
|
+
const isDaiSwap =
|
|
224
|
+
isSrcDai || destToken.address.toLowerCase() === this.dai.address;
|
|
225
|
+
|
|
226
|
+
const isDestGem = isSrcDai || srcLower === this.usds.address;
|
|
227
|
+
|
|
228
|
+
const gem = isDestGem ? destToken : srcToken;
|
|
219
229
|
const toll =
|
|
220
|
-
(side === SwapSide.SELL &&
|
|
221
|
-
(side === SwapSide.BUY && !
|
|
230
|
+
(side === SwapSide.SELL && isDestGem) ||
|
|
231
|
+
(side === SwapSide.BUY && !isDestGem)
|
|
222
232
|
? poolState.tout
|
|
223
233
|
: poolState.tin;
|
|
224
234
|
|
|
225
235
|
const [unit, ...prices] = this.computePrices(
|
|
226
|
-
|
|
236
|
+
isDestGem,
|
|
227
237
|
eventPool.to18ConversionFactor,
|
|
228
238
|
side,
|
|
229
239
|
[unitVolume, ...amounts],
|
|
230
240
|
poolState,
|
|
231
241
|
);
|
|
232
242
|
|
|
243
|
+
const psm = isDaiSwap ? eventPool.poolConfig.psmAddress : this.usdsPsm;
|
|
233
244
|
return [
|
|
234
245
|
{
|
|
235
246
|
prices,
|
|
236
247
|
unit,
|
|
237
248
|
data: {
|
|
238
249
|
toll: toll.toString(),
|
|
239
|
-
psmAddress:
|
|
240
|
-
gemJoinAddress: eventPool.poolConfig.gemJoinAddress,
|
|
250
|
+
psmAddress: psm,
|
|
241
251
|
gemDecimals: gem.decimals,
|
|
242
252
|
},
|
|
243
|
-
poolAddresses: [
|
|
253
|
+
poolAddresses: [psm],
|
|
244
254
|
exchange: this.dexKey,
|
|
245
255
|
gasCost: 50000,
|
|
246
256
|
poolIdentifier,
|
|
@@ -270,10 +280,12 @@ export class LitePsm
|
|
|
270
280
|
data: LitePsmData,
|
|
271
281
|
side: SwapSide,
|
|
272
282
|
): { isGemSell: boolean; gemAmount: string } {
|
|
273
|
-
const
|
|
283
|
+
const isDestGem =
|
|
284
|
+
srcToken.toLowerCase() === this.dai.address ||
|
|
285
|
+
srcToken.toLowerCase() === this.usds.address;
|
|
274
286
|
const to18ConversionFactor = getBigIntPow(18 - data.gemDecimals);
|
|
275
287
|
if (side === SwapSide.SELL) {
|
|
276
|
-
if (
|
|
288
|
+
if (isDestGem) {
|
|
277
289
|
const gemAmt18 = (BigInt(srcAmount) * WAD) / (WAD + BigInt(data.toll));
|
|
278
290
|
return {
|
|
279
291
|
isGemSell: false,
|
|
@@ -283,7 +295,7 @@ export class LitePsm
|
|
|
283
295
|
return { isGemSell: true, gemAmount: srcAmount };
|
|
284
296
|
}
|
|
285
297
|
} else {
|
|
286
|
-
if (
|
|
298
|
+
if (isDestGem) {
|
|
287
299
|
return { isGemSell: false, gemAmount: destAmount };
|
|
288
300
|
} else {
|
|
289
301
|
const gemAmt = ceilDiv(
|
|
@@ -338,9 +350,7 @@ export class LitePsm
|
|
|
338
350
|
isApproved = await this.dexHelper.augustusApprovals.hasApproval(
|
|
339
351
|
options.executionContractAddress,
|
|
340
352
|
srcToken.address,
|
|
341
|
-
|
|
342
|
-
? optimalSwapExchange.data.psmAddress
|
|
343
|
-
: optimalSwapExchange.data.gemJoinAddress,
|
|
353
|
+
optimalSwapExchange.data.psmAddress,
|
|
344
354
|
);
|
|
345
355
|
}
|
|
346
356
|
|
|
@@ -370,10 +380,16 @@ export class LitePsm
|
|
|
370
380
|
side,
|
|
371
381
|
);
|
|
372
382
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
383
|
+
const isDaiSwap =
|
|
384
|
+
destToken.toLowerCase() === this.dai.address ||
|
|
385
|
+
srcToken.toLowerCase() === this.dai.address;
|
|
386
|
+
|
|
387
|
+
let exchangeData = (
|
|
388
|
+
isDaiSwap ? daiPsmInterface : usdsPsmInterface
|
|
389
|
+
).encodeFunctionData(isGemSell ? 'sellGem' : 'buyGem', [
|
|
390
|
+
recipient,
|
|
391
|
+
gemAmount,
|
|
392
|
+
]);
|
|
377
393
|
|
|
378
394
|
// append toll and to18ConversionFactor & set specialDexFlag = SWAP_ON_MAKER_PSM to
|
|
379
395
|
// - `buyGem` on Ex1 & Ex2
|
|
@@ -397,10 +413,14 @@ export class LitePsm
|
|
|
397
413
|
exchangeData,
|
|
398
414
|
targetExchange: data.psmAddress,
|
|
399
415
|
specialDexFlag,
|
|
400
|
-
spender:
|
|
416
|
+
spender: data.psmAddress, // psm is the join for both dai and usds
|
|
401
417
|
returnAmountPos:
|
|
402
418
|
side === SwapSide.SELL && isGemSell
|
|
403
|
-
? extractReturnAmountPosition(
|
|
419
|
+
? extractReturnAmountPosition(
|
|
420
|
+
isDaiSwap ? daiPsmInterface : usdsPsmInterface,
|
|
421
|
+
'sellGem',
|
|
422
|
+
isDaiSwap ? 'daiOutWad' : 'usdsOutWad',
|
|
423
|
+
)
|
|
404
424
|
: undefined,
|
|
405
425
|
};
|
|
406
426
|
}
|
|
@@ -453,7 +473,7 @@ export class LitePsm
|
|
|
453
473
|
data.toll,
|
|
454
474
|
to18ConversionFactor.toString(),
|
|
455
475
|
data.psmAddress,
|
|
456
|
-
data.
|
|
476
|
+
data.psmAddress,
|
|
457
477
|
metadata,
|
|
458
478
|
beneficiaryDirectionApproveFlag.toString(),
|
|
459
479
|
];
|
|
@@ -492,9 +512,10 @@ export class LitePsm
|
|
|
492
512
|
);
|
|
493
513
|
};
|
|
494
514
|
|
|
495
|
-
const
|
|
515
|
+
const isDaiOrUsds =
|
|
516
|
+
_tokenAddress === this.dai.address || _tokenAddress === this.usds.address;
|
|
496
517
|
|
|
497
|
-
const validPoolConfigs =
|
|
518
|
+
const validPoolConfigs = isDaiOrUsds
|
|
498
519
|
? this.poolConfigs
|
|
499
520
|
: this.eventPools[_tokenAddress]
|
|
500
521
|
? [this.eventPools[_tokenAddress].poolConfig]
|
|
@@ -513,7 +534,7 @@ export class LitePsm
|
|
|
513
534
|
exchange: this.dexKey,
|
|
514
535
|
address: p.psmAddress,
|
|
515
536
|
liquidityUSD: minLiq(poolStates[i], p.gem.decimals),
|
|
516
|
-
connectorTokens:
|
|
537
|
+
connectorTokens: isDaiOrUsds ? [p.gem] : [this.dai, this.usds],
|
|
517
538
|
}));
|
|
518
539
|
}
|
|
519
540
|
}
|
|
@@ -10,7 +10,6 @@ export type PoolState = {
|
|
|
10
10
|
|
|
11
11
|
export type LitePsmData = {
|
|
12
12
|
psmAddress: Address;
|
|
13
|
-
gemJoinAddress: Address;
|
|
14
13
|
gemDecimals: number;
|
|
15
14
|
toll: string;
|
|
16
15
|
isApproved?: boolean;
|
|
@@ -18,7 +17,6 @@ export type LitePsmData = {
|
|
|
18
17
|
|
|
19
18
|
export type PoolConfig = {
|
|
20
19
|
gem: Token;
|
|
21
|
-
gemJoinAddress: Address; // dai liquidity
|
|
22
20
|
pocketAddress: Address; // gem liquidity
|
|
23
21
|
psmAddress: Address;
|
|
24
22
|
identifier: string; // bytes32 of pool identifier (Eg. bytes32("PSM-USDC-A"))
|
|
@@ -26,6 +24,8 @@ export type PoolConfig = {
|
|
|
26
24
|
|
|
27
25
|
export type DexParams = {
|
|
28
26
|
dai: Token;
|
|
27
|
+
usds: Token;
|
|
28
|
+
usdsPsmAddress: Address;
|
|
29
29
|
vatAddress: Address;
|
|
30
30
|
pools: PoolConfig[];
|
|
31
31
|
};
|
|
@@ -38,6 +38,7 @@ export type LitePsmParams = [
|
|
|
38
38
|
toll: NumberAsString,
|
|
39
39
|
to18ConversionFactor: NumberAsString,
|
|
40
40
|
exchange: Address,
|
|
41
|
+
// psm (exchange) is the join for both dai and usds
|
|
41
42
|
gemJoinAddress: Address,
|
|
42
43
|
metadata: string,
|
|
43
44
|
beneficiaryDirectionApproveFlag: NumberAsString,
|
package/tests/constants-e2e.ts
CHANGED
|
@@ -1500,7 +1500,7 @@ export const Holders: {
|
|
|
1500
1500
|
[network: number]: { [tokenAddress: string]: Address };
|
|
1501
1501
|
} = {
|
|
1502
1502
|
[Network.MAINNET]: {
|
|
1503
|
-
USDS: '
|
|
1503
|
+
USDS: '0xB1796E8f1eEcF23027c1E3C00fE303629A189d10',
|
|
1504
1504
|
SKY: '0x0ddda327A6614130CCb20bc0097313A282176A01',
|
|
1505
1505
|
MKR: '0xe9aAA7A9DDc0877626C1779AbC29993aD89A6c1f',
|
|
1506
1506
|
// Idle tokens
|