Skip to content

Commit

Permalink
Merge pull request paraswap#428 from paraswap/aburkut/back-1176-swaap…
Browse files Browse the repository at this point in the history
…-v2-on-mainnet

BACK-1176: Integrate SwaapV2 on Mainnet
  • Loading branch information
aburkut authored Jul 25, 2023
2 parents a335d54 + adb1e8d commit d8f44bb
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 6 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@paraswap/dex-lib",
"version": "2.26.1",
"version": "2.26.2",
"main": "build/index.js",
"types": "build/index.d.ts",
"repository": "https://github.com/paraswap/paraswap-dex-lib",
Expand Down
5 changes: 3 additions & 2 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,14 @@ const baseConfigs: { [network: number]: BaseConfig } = {
Adapter01: '0x9bE264469eF954c139Da4A45Cf76CbCC5e3A6A73',
Adapter02: '0xFC2Ba6E830a04C25e207B8214b26d8C713F6881F',
Adapter03: '0x7c7f62e5ba00783f57b39df0530e32c195696a57',
Adapter04: '0x21ab8aeb35bfc0b3fd84ca810b0aa85938357be2',
BuyAdapter: '0xb2634b3cbc1e401ab3c2743db44d459c5c9aa662',
Adapter04: '0x30F6B9b6485ff0B67E881f5ac80D3F1c70A4B23d',
BuyAdapter: '0xDCf4EE5B700e2a5Fec458e06B763A4a3E3004494',
},
uniswapV2ExchangeRouterAddress:
'0xF9234CB08edb93c0d4a4d4c70cC3FfD070e78e07',
rpcPollingMaxAllowedStateDelayInBlocks: 0,
rpcPollingBlocksBackToTriggerUpdate: 0,
swaapV2AuthToken: process.env.API_KEY_SWAAP_V2_AUTH_TOKEN || '',
hashFlowAuthToken: process.env.API_KEY_HASHFLOW_AUTH_TOKEN || '',
hashFlowDisabledMMs:
process.env[`HASHFLOW_DISABLED_MMS_1`]?.split(',') || [],
Expand Down
10 changes: 7 additions & 3 deletions src/dex/swaap-v2/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,18 @@ import { Network, SwapSide } from '../../constants';

export const SwaapV2Config: DexConfigMap<DexParams> = {
SwaapV2: {
// Mainnet and Arbitrum will be supported later
// [Network.MAINNET]: {},
// [Network.ARBITRUM]: {},
[Network.MAINNET]: {},
[Network.POLYGON]: {},
// Arbitrum will be supported later
// [Network.ARBITRUM]: {},
},
};

export const Adapters: Record<number, AdapterMappings> = {
[Network.MAINNET]: {
[SwapSide.SELL]: [{ name: 'Adapter04', index: 3 }],
[SwapSide.BUY]: [{ name: 'BuyAdapter', index: 10 }],
},
[Network.POLYGON]: {
[SwapSide.SELL]: [{ name: 'PolygonAdapter02', index: 8 }],
[SwapSide.BUY]: [{ name: 'PolygonBuyAdapter', index: 7 }],
Expand Down
100 changes: 100 additions & 0 deletions src/dex/swaap-v2/swaap-v2-e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,106 @@ describe('SwaapV2 E2E', () => {
[SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
]);

describe('Mainnet', () => {
const network = Network.MAINNET;
const provider = new StaticJsonRpcProvider(
generateConfig(network).privateHttpProvider,
network,
);
const tokens = Tokens[network];
const holders = Holders[network];

const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
[
{
name: 'USDC',
sellAmount: '45410357',
buyAmount: '1000000000000000000',
},
{
name: 'WETH',
sellAmount: '1000000000000000000',
buyAmount: '100000000',
},
],
[
{
name: 'USDC',
sellAmount: '45410357',
buyAmount: '1000000000000000000',
},
{
name: 'ETH',
sellAmount: '1000000000000000000',
buyAmount: '100000000',
},
],
[
{
name: 'USDT',
sellAmount: '45410357',
buyAmount: '100000000',
},
{
name: 'USDC',
sellAmount: '100000000',
buyAmount: '100000000',
},
],
];

sideToContractMethods.forEach((contractMethods, side) =>
describe(`${side}`, () => {
contractMethods.forEach((contractMethod: ContractMethod) => {
pairs.forEach(pair => {
describe(`${contractMethod}`, () => {
it(`${pair[0].name} -> ${pair[1].name}`, async () => {
await testE2E(
tokens[pair[0].name],
tokens[pair[1].name],
holders[pair[0].name],
side === SwapSide.SELL
? pair[0].sellAmount
: pair[0].buyAmount,
side,
dexKey,
contractMethod,
network,
provider,
undefined,
undefined,
undefined,
undefined,
sleepMs,
);
});
it(`${pair[1].name} -> ${pair[0].name}`, async () => {
await testE2E(
tokens[pair[1].name],
tokens[pair[0].name],
holders[pair[1].name],
side === SwapSide.SELL
? pair[1].sellAmount
: pair[1].buyAmount,
side,
dexKey,
contractMethod,
network,
provider,
undefined,
undefined,
undefined,
undefined,
sleepMs,
);
});
});
});
});
}),
);
});

describe('Polygon', () => {
const network = Network.POLYGON;
const provider = new StaticJsonRpcProvider(
Expand Down

0 comments on commit d8f44bb

Please sign in to comment.