@paraswap/dex-lib 4.0.9-fluid-dex-arb.0 → 4.0.9

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.
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Rounding = exports.StataFunctions = exports.TokenType = void 0;
4
+ var TokenType;
5
+ (function (TokenType) {
6
+ TokenType[TokenType["UNDERLYING"] = 0] = "UNDERLYING";
7
+ TokenType[TokenType["A_TOKEN"] = 1] = "A_TOKEN";
8
+ TokenType[TokenType["STATA_TOKEN"] = 2] = "STATA_TOKEN";
9
+ TokenType[TokenType["UNKNOWN"] = 3] = "UNKNOWN";
10
+ })(TokenType || (exports.TokenType = TokenType = {}));
11
+ var StataFunctions;
12
+ (function (StataFunctions) {
13
+ StataFunctions["deposit"] = "deposit";
14
+ StataFunctions["depositATokens"] = "depositATokens";
15
+ StataFunctions["redeem"] = "redeem";
16
+ StataFunctions["redeemATokens"] = "redeemATokens";
17
+ StataFunctions["mint"] = "mint";
18
+ StataFunctions["withdraw"] = "withdraw";
19
+ })(StataFunctions || (exports.StataFunctions = StataFunctions = {}));
20
+ var Rounding;
21
+ (function (Rounding) {
22
+ Rounding["UP"] = "UP";
23
+ Rounding["DOWN"] = "DOWN";
24
+ })(Rounding || (exports.Rounding = Rounding = {}));
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/aave-v3-stata-v2/types.ts"],"names":[],"mappings":";;;AAIA,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,qDAAU,CAAA;IACV,+CAAO,CAAA;IACP,uDAAW,CAAA;IACX,+CAAO,CAAA;AACT,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAyCD,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mDAAiC,CAAA;IACjC,mCAAiB,CAAA;IACjB,iDAA+B,CAAA;IAC/B,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,yBAAa,CAAA;AACf,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
@@ -0,0 +1,4 @@
1
+ import Web3 from 'web3';
2
+ import { MultiWrapper } from '../../lib/multi-wrapper';
3
+ import { StataToken } from './types';
4
+ export declare const fetchTokenList: (web3Provider: Web3, factoryAddresses: string[], multiWrapper: MultiWrapper, blockNumber?: number) => Promise<StataToken[]>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchTokenList = void 0;
7
+ // import {
8
+ // IStaticATokenFactory_ABI,
9
+ // IStaticATokenLM_ABI,
10
+ // } from '@bgd-labs/aave-address-book';
11
+ const abi_1 = require("@ethersproject/abi");
12
+ const decoders_1 = require("../../lib/decoders");
13
+ const Factory_json_1 = __importDefault(require("../../abi/aavev3statav2/Factory.json"));
14
+ const Token_json_1 = __importDefault(require("../../abi/aavev3statav2/Token.json"));
15
+ // const stataInterface = new Interface(IStaticATokenLM_ABI);
16
+ const statav2Interface = new abi_1.Interface(Token_json_1.default);
17
+ async function getTokenMetaData(stataTokens, multiWrapper, blockNumber) {
18
+ const calls = stataTokens
19
+ .map(token => {
20
+ return [
21
+ {
22
+ target: token,
23
+ callData: statav2Interface.encodeFunctionData('symbol'),
24
+ decodeFunction: decoders_1.stringDecode,
25
+ },
26
+ {
27
+ target: token,
28
+ callData: statav2Interface.encodeFunctionData('decimals'),
29
+ decodeFunction: decoders_1.uint8ToNumber,
30
+ },
31
+ {
32
+ target: token,
33
+ callData: statav2Interface.encodeFunctionData('asset'),
34
+ decodeFunction: decoders_1.addressDecode,
35
+ },
36
+ {
37
+ target: token,
38
+ callData: statav2Interface.encodeFunctionData('aToken'),
39
+ decodeFunction: decoders_1.addressDecode,
40
+ },
41
+ ];
42
+ })
43
+ .flat();
44
+ const results = await multiWrapper.aggregate(calls, blockNumber);
45
+ let tokenList = [];
46
+ for (let i = 0, x = 0; i < stataTokens.length; ++i, x += 4) {
47
+ tokenList.push({
48
+ address: stataTokens[i].toLowerCase(),
49
+ stataSymbol: results[x],
50
+ decimals: results[x + 1],
51
+ underlying: results[x + 2].toLowerCase(),
52
+ underlyingAToken: results[x + 3].toLowerCase(),
53
+ });
54
+ }
55
+ return tokenList;
56
+ }
57
+ const fetchTokenList = async (web3Provider, factoryAddresses, multiWrapper, blockNumber) => {
58
+ let stataList = (await Promise.all(factoryAddresses.map(async (factoryAddress) => {
59
+ let factoryContract = new web3Provider.eth.Contract(Factory_json_1.default,
60
+ // IStaticATokenFactory_ABI as any,
61
+ factoryAddress);
62
+ return await factoryContract.methods.getStataTokens().call();
63
+ }))).flat();
64
+ return getTokenMetaData(stataList, multiWrapper, blockNumber);
65
+ };
66
+ exports.fetchTokenList = fetchTokenList;
67
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/aave-v3-stata-v2/utils.ts"],"names":[],"mappings":";;;;;;AAAA,WAAW;AACX,8BAA8B;AAC9B,yBAAyB;AACzB,wCAAwC;AACxC,4CAA+C;AAG/C,iDAAgF;AAEhF,wFAA8D;AAC9D,oFAA0D;AAG1D,6DAA6D;AAC7D,MAAM,gBAAgB,GAAG,IAAI,eAAS,CAAC,oBAAQ,CAAC,CAAC;AAEjD,KAAK,UAAU,gBAAgB,CAC7B,WAAqB,EACrB,YAA0B,EAC1B,WAAoB;IAEpB,MAAM,KAAK,GAA2B,WAAW;SAC9C,GAAG,CAAC,KAAK,CAAC,EAAE;QACX,OAAO;YACL;gBACE,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACvD,cAAc,EAAE,uBAAY;aAC7B;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,CAAC;gBACzD,cAAc,EAAE,wBAAa;aAC9B;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACtD,cAAc,EAAE,wBAAa;aAC9B;YACD;gBACE,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACvD,cAAc,EAAE,wBAAa;aAC9B;SACF,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAC1C,KAAK,EACL,WAAW,CACZ,CAAC;IAEF,IAAI,SAAS,GAAiB,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,SAAS,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACrC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAW;YACjC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAW;YAClC,UAAU,EAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAY,CAAC,WAAW,EAAE;YACpD,gBAAgB,EAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAY,CAAC,WAAW,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,MAAM,cAAc,GAAG,KAAK,EACjC,YAAkB,EAClB,gBAA0B,EAC1B,YAA0B,EAC1B,WAAoB,EACG,EAAE;IACzB,IAAI,SAAS,GACX,CAAC,MAAM,OAAO,CAAC,GAAG,CAChB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAC,cAAc,EAAC,EAAE;QAC1C,IAAI,eAAe,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CACjD,sBAAuB;QACvB,mCAAmC;QACnC,cAAc,CACf,CAAC;QAEF,OAAO,MAAM,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/D,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;IAET,OAAO,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.0.9-fluid-dex-arb.0",
3
+ "version": "4.0.9",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -169,6 +169,44 @@ describe('FluidDex E2E', () => {
169
169
  );
170
170
  });
171
171
  });
172
+
173
+ describe('Arbitrum', () => {
174
+ const network = Network.ARBITRUM;
175
+
176
+ describe('ETH -> wstETH', () => {
177
+ const tokenASymbol: string = 'wstETH';
178
+ const tokenBSymbol: string = 'ETH';
179
+
180
+ const tokenAAmount: string = '1000000000000000';
181
+ const tokenBAmount: string = '1000000000000000';
182
+
183
+ testForNetwork(
184
+ network,
185
+ dexKey,
186
+ tokenASymbol,
187
+ tokenBSymbol,
188
+ tokenAAmount,
189
+ tokenBAmount,
190
+ );
191
+ });
192
+
193
+ describe('ETH -> weETH', () => {
194
+ const tokenBSymbol: string = 'ETH';
195
+ const tokenASymbol: string = 'weETH';
196
+
197
+ const tokenAAmount: string = '1000000000000000';
198
+ const tokenBAmount: string = '1000000000000000';
199
+
200
+ testForNetwork(
201
+ network,
202
+ dexKey,
203
+ tokenASymbol,
204
+ tokenBSymbol,
205
+ tokenAAmount,
206
+ tokenBAmount,
207
+ );
208
+ });
209
+ });
172
210
  });
173
211
 
174
212
  function NewColReservesOne(): CollateralReserves {
@@ -1308,6 +1308,10 @@ export const Tokens: {
1308
1308
  address: '0x5979D7b546E38E414F7E9822514be443A4800529',
1309
1309
  decimals: 18,
1310
1310
  },
1311
+ weETH: {
1312
+ address: '0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe',
1313
+ decimals: 18,
1314
+ },
1311
1315
  RDPX: {
1312
1316
  address: '0x32eb7902d4134bf98a28b963d26de779af92a212',
1313
1317
  decimals: 18,
@@ -1957,6 +1961,7 @@ export const Holders: {
1957
1961
  SEN: '0x76d39045d856caf9bfae12ba611ca4a94449a4f1',
1958
1962
  RDPX: '0x115b818593c00da4f9d1d8f5ce7d7f88cce48bee',
1959
1963
  ARB: '0xb65edba80a3d81903ecd499c8eb9cf0e19096bd0',
1964
+ weETH: '0xE957D8386d20D077F511E86672Fc7ee4b83067da',
1960
1965
  ETH: '0xfa0a32e5c33b6123122b6b68099001d9371d14e9',
1961
1966
  DAI: '0x2d070ed1321871841245d8ee5b84bd2712644322',
1962
1967
  WETH: '0x3368e17064c9ba5d6f1f93c4c678bea00cc78555',
@@ -1983,7 +1988,7 @@ export const Holders: {
1983
1988
  LINK: '0x7f1fa204bb700853d36994da19f830b6ad18455c',
1984
1989
  DMT: '0x40414f138eb2ef938e6c3629897ef99d4464d4e8',
1985
1990
  PENDLE: '0x5bdf85216ec1e38d6458c870992a69e38e03f7ef',
1986
- wstETH: '0x3c22ec75ea5D745c78fc84762F7F1E6D82a2c5BF',
1991
+ wstETH: '0xb3843D7BBb8530f95e5bEaBeff451fA5380510a8',
1987
1992
  EURA: '0x6dd7b830896b56812aa667bdd14b71c8b3252f8e',
1988
1993
  stEUR: '0xE588611e7A2392507879E3be80531654b85C16aA',
1989
1994
  USDA: '0xa86ff337db9107b54862d30d1a598f8be847b05e',