From 2d2aae2bc37e55793e4f110ab5a4ce977c9b3318 Mon Sep 17 00:00:00 2001 From: anassohail99 Date: Fri, 10 May 2024 23:48:12 +0500 Subject: [PATCH 1/4] fix config function --- projects/a51-finance-v3/index.js | 178 +++++++++++++++++++++++-------- 1 file changed, 131 insertions(+), 47 deletions(-) diff --git a/projects/a51-finance-v3/index.js b/projects/a51-finance-v3/index.js index 6d2cfa56337..7ca2381be97 100644 --- a/projects/a51-finance-v3/index.js +++ b/projects/a51-finance-v3/index.js @@ -1,70 +1,154 @@ -const { getLogs } = require("../helper/cache/getLogs") -const { sumTokens2 } = require("../helper/unwrapLPs") +const { getLogs } = require("../helper/cache/getLogs"); +const { sumTokens2 } = require("../helper/unwrapLPs"); const { staking } = require("../helper/staking"); const A51_STAKING_CONTRACT = "0x10a62e0d8491751c40476d432f9e19ba8f699a61"; const A51 = "0xe9e7c09e82328c3107d367f6c617cf9977e63ed0"; +const getStrategiesDetails = + "function strategies(bytes32) view returns ( tuple(address pool, int24 tickLower, int24 tickUpper) key, address owner, bytes actions, bytes actionStatus, bool isCompound, bool isPrivate, uint256 managementFee, uint256 performanceFee, tuple(uint256 fee0, uint256 fee1, uint256 balance0, uint256 balance1, uint256 totalShares, uint128 uniswapLiquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128) account)"; +const getStrategyReserves = + "function getStrategyReserves(address, int24, int24, uint128) returns (uint256 reserves0, uint256 reserves1)"; -const getStrategiesDetails = "function strategies(bytes32) view returns ( tuple(address pool, int24 tickLower, int24 tickUpper) key, address owner, bytes actions, bytes actionStatus, bool isCompound, bool isPrivate, uint256 managementFee, uint256 performanceFee, tuple(uint256 fee0, uint256 fee1, uint256 balance0, uint256 balance1, uint256 totalShares, uint128 uniswapLiquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128) account)" -const getStrategyReserves = "function getStrategyReserves(address, int24, int24, uint128) returns (uint256 reserves0, uint256 reserves1)" - -const DEFAULT_STRATEGY_CREATION_TOPIC = "StrategyCreated(bytes32)" +const DEFAULT_STRATEGY_CREATION_TOPIC = "StrategyCreated(bytes32)"; const config = { - arbitrum: [{ target: "0x3e0aa2e17fe3e5e319f388c794fdbc3c64ef9da6", helper: "0x9d80597d9403bdb35b3d7d9f400377e790b01053", startBlock: 190945156 },], - blast: [{ target: "0x5a8e82c4b3Dbd7579fD198A3276cF75CEA2Df63D", helper: "0xbA13be69628d12963b28de8E7Ba04C3C4c1eaceA", startBlock: 1709947 },], + arbitrum: [ + { + target: "0x3e0aa2e17fe3e5e319f388c794fdbc3c64ef9da6", + helper: "0x9d80597d9403bdb35b3d7d9f400377e790b01053", + startBlock: 190945156, + }, + ], + blast: [ + { + target: "0x5a8e82c4b3Dbd7579fD198A3276cF75CEA2Df63D", + helper: "0xbA13be69628d12963b28de8E7Ba04C3C4c1eaceA", + startBlock: 1709947, + }, + ], base: [ - { target: "0x3e0AA2e17FE3E5e319f388C794FdBC3c64Ef9da6", helper: "0xA1d8180F4482359CEb7Eb7437FCf4a2616830F81", startBlock: 12765695 }, - { target: "0xDFb179526ae303Eea49AC99DD360159C39105828", helper: "0x6e7e838E20ED6657Aaf1166f9B7a845565956F51", startBlock: 13890566 }, + { + target: "0x3e0AA2e17FE3E5e319f388C794FdBC3c64Ef9da6", + helper: "0xA1d8180F4482359CEb7Eb7437FCf4a2616830F81", + startBlock: 12765695, + }, + { + target: "0xDFb179526ae303Eea49AC99DD360159C39105828", + helper: "0x6e7e838E20ED6657Aaf1166f9B7a845565956F51", + startBlock: 13890566, + }, + ], + optimism: [ + { + target: "0x525c80e91efe9222de3eae86af69a480fbced416", + helper: "0x965356eb2c208ce4130e267342ca720042cce7b2", + startBlock: 118360616, + }, + ], + polygon: [ + { + target: "0xD4798F142FDb87738eF4eBE82Bd56Eccde19A88C", + helper: "0x9c225a02426e3229C073A6132E083561e95000b5", + startBlock: 55506149, + }, + ], + bsc: [ + { + target: "0x6F2b186e9392042B1edE2D1D1706a3DC4a4725d8", + helper: "0x9c225a02426e3229C073A6132E083561e95000b5", + startBlock: 37623104, + }, + ], + scroll: [ + { + target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", + helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", + startBlock: 4846051, + }, ], - optimism: [{ target: "0x525c80e91efe9222de3eae86af69a480fbced416", helper: "0x965356eb2c208ce4130e267342ca720042cce7b2", startBlock: 118360616 },], - polygon: [{ target: "0xD4798F142FDb87738eF4eBE82Bd56Eccde19A88C", helper: "0x9c225a02426e3229C073A6132E083561e95000b5", startBlock: 55506149 },], - bsc: [{ target: "0x6F2b186e9392042B1edE2D1D1706a3DC4a4725d8", helper: "0x9c225a02426e3229C073A6132E083561e95000b5", startBlock: 37623104 },], - scroll: [{ target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", startBlock: 4846051 },], - manta: [{ target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", helper: "0xa1d8180f4482359ceb7eb7437fcf4a2616830f81", startBlock: 1834975 },], -} + manta: [ + { + target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", + helper: "0xa1d8180f4482359ceb7eb7437fcf4a2616830f81", + startBlock: 1834975, + }, + ], +}; module.exports = { doublecounted: true, -} +}; -Object.keys(config).forEach(chain => { - const configs = config[chain] +Object.keys(config).forEach((chain) => { + const configs = config[chain]; module.exports[chain] = { tvl: async (api) => { - await Promise.all(configs.map(addConfigTvl)) - - async function addConfigTvl({ target, helper, startBlock, topic = DEFAULT_STRATEGY_CREATION_TOPIC }) { - const strategyLogs = await getLogs({ target, topic, fromBlock: startBlock, api, }) - const strategies = strategyLogs.map(log => log.topics[1]) - - const pools = [] - const reservesCalls = [] - - const strategyDetails = await api.multiCall({ abi: getStrategiesDetails, target, calls: strategies, }) - - strategyDetails.forEach(({ key: { pool, tickLower, tickUpper }, account }) => { - pools.push(pool) + for (const config of configs) { + await addConfigTvl(config); + } - reservesCalls.push({ params: [pool, Number(tickLower), Number(tickUpper), account.uniswapLiquidity,], }) - }) + async function addConfigTvl({ + target, + helper, + startBlock, + topic = DEFAULT_STRATEGY_CREATION_TOPIC, + }) { + const strategyLogs = await getLogs({ + target, + topic, + fromBlock: startBlock, + api, + }); + const strategies = strategyLogs.map((log) => log.topics[1]); + + const pools = []; + const reservesCalls = []; + + const strategyDetails = await api.multiCall({ + abi: getStrategiesDetails, + target, + calls: strategies, + }); + + strategyDetails.forEach( + ({ key: { pool, tickLower, tickUpper }, account }) => { + pools.push(pool); + + reservesCalls.push({ + params: [ + pool, + Number(tickLower), + Number(tickUpper), + account.uniswapLiquidity, + ], + }); + } + ); const [token0s, token1s, reserves] = await Promise.all([ - api.multiCall({ abi: 'address:token0', calls: pools, }), - api.multiCall({ abi: 'address:token1', calls: pools, }), - api.multiCall({ abi: getStrategyReserves, calls: reservesCalls, target: helper, }), - ]) + api.multiCall({ abi: "address:token0", calls: pools }), + api.multiCall({ abi: "address:token1", calls: pools }), + api.multiCall({ + abi: getStrategyReserves, + calls: reservesCalls, + target: helper, + }), + ]); reserves.forEach((reserve, index) => { - api.add(token0s[index], reserve.reserves0) - api.add(token1s[index], reserve.reserves1) - }) - - return sumTokens2({ owner: target, tokens: token0s.concat(token1s), api, }) + api.add(token0s[index], reserve.reserves0); + api.add(token1s[index], reserve.reserves1); + }); + + return sumTokens2({ + owner: target, + tokens: token0s.concat(token1s), + api, + }); } - } - } -}) + }, + }; +}); -module.exports.polygon.staking = staking(A51_STAKING_CONTRACT, A51) \ No newline at end of file +module.exports.polygon.staking = staking(A51_STAKING_CONTRACT, A51); From 5970663383c7cf4df3588255abd777de35bb43b7 Mon Sep 17 00:00:00 2001 From: anassohail99 Date: Fri, 24 May 2024 15:19:14 +0500 Subject: [PATCH 2/4] add support for linea, polygon and polygon zkevm --- projects/a51-finance-v3/index.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/projects/a51-finance-v3/index.js b/projects/a51-finance-v3/index.js index 7ca2381be97..e5615f57b63 100644 --- a/projects/a51-finance-v3/index.js +++ b/projects/a51-finance-v3/index.js @@ -14,6 +14,7 @@ const DEFAULT_STRATEGY_CREATION_TOPIC = "StrategyCreated(bytes32)"; const config = { arbitrum: [ + // uniswap { target: "0x3e0aa2e17fe3e5e319f388c794fdbc3c64ef9da6", helper: "0x9d80597d9403bdb35b3d7d9f400377e790b01053", @@ -21,6 +22,7 @@ const config = { }, ], blast: [ + // uniswap { target: "0x5a8e82c4b3Dbd7579fD198A3276cF75CEA2Df63D", helper: "0xbA13be69628d12963b28de8E7Ba04C3C4c1eaceA", @@ -28,11 +30,13 @@ const config = { }, ], base: [ + // uniswap { target: "0x3e0AA2e17FE3E5e319f388C794FdBC3c64Ef9da6", helper: "0xA1d8180F4482359CEb7Eb7437FCf4a2616830F81", startBlock: 12765695, }, + // baseswap { target: "0xDFb179526ae303Eea49AC99DD360159C39105828", helper: "0x6e7e838E20ED6657Aaf1166f9B7a845565956F51", @@ -40,6 +44,7 @@ const config = { }, ], optimism: [ + // uniswap { target: "0x525c80e91efe9222de3eae86af69a480fbced416", helper: "0x965356eb2c208ce4130e267342ca720042cce7b2", @@ -47,13 +52,29 @@ const config = { }, ], polygon: [ + // uniswap { target: "0xD4798F142FDb87738eF4eBE82Bd56Eccde19A88C", helper: "0x9c225a02426e3229C073A6132E083561e95000b5", startBlock: 55506149, }, + // quickswap + { + target: "0xED19D4A923930F6B0348fE06be694FeC56a70b86", + helper: "0x6c8b11476475FA487e2bfa6fE00244160F80213e", + startBlock: 56237007, + }, + ], + polygon_zkevm: [ + // quickswap + { + target: "0xBd7887e11A9356957680A34955a135cf465e7052", + helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", + startBlock: 11928029, + }, ], bsc: [ + // uniswap { target: "0x6F2b186e9392042B1edE2D1D1706a3DC4a4725d8", helper: "0x9c225a02426e3229C073A6132E083561e95000b5", @@ -61,6 +82,7 @@ const config = { }, ], scroll: [ + // uniswap { target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", @@ -68,12 +90,21 @@ const config = { }, ], manta: [ + // quickswap { target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", helper: "0xa1d8180f4482359ceb7eb7437fcf4a2616830f81", startBlock: 1834975, }, ], + linea: [ + // lynex + { + target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", + helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", + startBlock: 4518443, + }, + ], }; module.exports = { From f6b52d7ab0541983165640c1e1b447e1d96328ec Mon Sep 17 00:00:00 2001 From: anassohail99 Date: Fri, 24 May 2024 15:54:51 +0500 Subject: [PATCH 3/4] fixed formatting --- projects/a51-finance-v3/index.js | 216 +++++++++---------------------- 1 file changed, 59 insertions(+), 157 deletions(-) diff --git a/projects/a51-finance-v3/index.js b/projects/a51-finance-v3/index.js index e5615f57b63..7d3e171b294 100644 --- a/projects/a51-finance-v3/index.js +++ b/projects/a51-finance-v3/index.js @@ -1,185 +1,87 @@ -const { getLogs } = require("../helper/cache/getLogs"); -const { sumTokens2 } = require("../helper/unwrapLPs"); +const { getLogs } = require("../helper/cache/getLogs") +const { sumTokens2 } = require("../helper/unwrapLPs") const { staking } = require("../helper/staking"); const A51_STAKING_CONTRACT = "0x10a62e0d8491751c40476d432f9e19ba8f699a61"; const A51 = "0xe9e7c09e82328c3107d367f6c617cf9977e63ed0"; -const getStrategiesDetails = - "function strategies(bytes32) view returns ( tuple(address pool, int24 tickLower, int24 tickUpper) key, address owner, bytes actions, bytes actionStatus, bool isCompound, bool isPrivate, uint256 managementFee, uint256 performanceFee, tuple(uint256 fee0, uint256 fee1, uint256 balance0, uint256 balance1, uint256 totalShares, uint128 uniswapLiquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128) account)"; -const getStrategyReserves = - "function getStrategyReserves(address, int24, int24, uint128) returns (uint256 reserves0, uint256 reserves1)"; -const DEFAULT_STRATEGY_CREATION_TOPIC = "StrategyCreated(bytes32)"; +const getStrategiesDetails = "function strategies(bytes32) view returns ( tuple(address pool, int24 tickLower, int24 tickUpper) key, address owner, bytes actions, bytes actionStatus, bool isCompound, bool isPrivate, uint256 managementFee, uint256 performanceFee, tuple(uint256 fee0, uint256 fee1, uint256 balance0, uint256 balance1, uint256 totalShares, uint128 uniswapLiquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128) account)" +const getStrategyReserves = "function getStrategyReserves(address, int24, int24, uint128) returns (uint256 reserves0, uint256 reserves1)" + +const DEFAULT_STRATEGY_CREATION_TOPIC = "StrategyCreated(bytes32)" const config = { - arbitrum: [ - // uniswap - { - target: "0x3e0aa2e17fe3e5e319f388c794fdbc3c64ef9da6", - helper: "0x9d80597d9403bdb35b3d7d9f400377e790b01053", - startBlock: 190945156, - }, - ], - blast: [ - // uniswap - { - target: "0x5a8e82c4b3Dbd7579fD198A3276cF75CEA2Df63D", - helper: "0xbA13be69628d12963b28de8E7Ba04C3C4c1eaceA", - startBlock: 1709947, - }, - ], + // uniswap + arbitrum: [{ target: "0x3e0aa2e17fe3e5e319f388c794fdbc3c64ef9da6", helper: "0x9d80597d9403bdb35b3d7d9f400377e790b01053", startBlock: 190945156 },], + // uniswap + blast: [{ target: "0x5a8e82c4b3Dbd7579fD198A3276cF75CEA2Df63D", helper: "0xbA13be69628d12963b28de8E7Ba04C3C4c1eaceA", startBlock: 1709947 },], base: [ // uniswap - { - target: "0x3e0AA2e17FE3E5e319f388C794FdBC3c64Ef9da6", - helper: "0xA1d8180F4482359CEb7Eb7437FCf4a2616830F81", - startBlock: 12765695, - }, - // baseswap - { - target: "0xDFb179526ae303Eea49AC99DD360159C39105828", - helper: "0x6e7e838E20ED6657Aaf1166f9B7a845565956F51", - startBlock: 13890566, - }, - ], - optimism: [ - // uniswap - { - target: "0x525c80e91efe9222de3eae86af69a480fbced416", - helper: "0x965356eb2c208ce4130e267342ca720042cce7b2", - startBlock: 118360616, - }, + { target: "0x3e0AA2e17FE3E5e319f388C794FdBC3c64Ef9da6", helper: "0xA1d8180F4482359CEb7Eb7437FCf4a2616830F81", startBlock: 12765695 }, + // BaseSwap + { target: "0xDFb179526ae303Eea49AC99DD360159C39105828", helper: "0x6e7e838E20ED6657Aaf1166f9B7a845565956F51", startBlock: 13890566 }, ], + // uniswap + optimism: [{ target: "0x525c80e91efe9222de3eae86af69a480fbced416", helper: "0x965356eb2c208ce4130e267342ca720042cce7b2", startBlock: 118360616 },], polygon: [ // uniswap - { - target: "0xD4798F142FDb87738eF4eBE82Bd56Eccde19A88C", - helper: "0x9c225a02426e3229C073A6132E083561e95000b5", - startBlock: 55506149, - }, - // quickswap - { - target: "0xED19D4A923930F6B0348fE06be694FeC56a70b86", - helper: "0x6c8b11476475FA487e2bfa6fE00244160F80213e", - startBlock: 56237007, - }, - ], - polygon_zkevm: [ - // quickswap - { - target: "0xBd7887e11A9356957680A34955a135cf465e7052", - helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", - startBlock: 11928029, - }, - ], - bsc: [ - // uniswap - { - target: "0x6F2b186e9392042B1edE2D1D1706a3DC4a4725d8", - helper: "0x9c225a02426e3229C073A6132E083561e95000b5", - startBlock: 37623104, - }, - ], - scroll: [ - // uniswap - { - target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", - helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", - startBlock: 4846051, - }, - ], - manta: [ + { target: "0xD4798F142FDb87738eF4eBE82Bd56Eccde19A88C", helper: "0x9c225a02426e3229C073A6132E083561e95000b5", startBlock: 55506149 }, // quickswap - { - target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", - helper: "0xa1d8180f4482359ceb7eb7437fcf4a2616830f81", - startBlock: 1834975, - }, - ], - linea: [ - // lynex - { - target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", - helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", - startBlock: 4518443, - }, + { target: "0xED19D4A923930F6B0348fE06be694FeC56a70b86", helper: "0x6c8b11476475FA487e2bfa6fE00244160F80213e", startBlock: 56237007, }, ], -}; + // quickswap + polygon_zkevm: [{target: "0xBd7887e11A9356957680A34955a135cf465e7052",helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2",startBlock: 11928029,},], + // uniswap + bsc: [{ target: "0x6F2b186e9392042B1edE2D1D1706a3DC4a4725d8", helper: "0x9c225a02426e3229C073A6132E083561e95000b5", startBlock: 37623104 },], + // uniswap + scroll: [{ target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576", helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2", startBlock: 4846051 },], + // quickswap + manta: [{ target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", helper: "0xa1d8180f4482359ceb7eb7437fcf4a2616830f81", startBlock: 1834975 },], + // lynex + linea: [{target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576",helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2",startBlock: 4518443,},], +} module.exports = { doublecounted: true, -}; +} -Object.keys(config).forEach((chain) => { - const configs = config[chain]; +Object.keys(config).forEach(chain => { + const configs = config[chain] module.exports[chain] = { tvl: async (api) => { - for (const config of configs) { - await addConfigTvl(config); - } + await Promise.all(configs.map(addConfigTvl)) - async function addConfigTvl({ - target, - helper, - startBlock, - topic = DEFAULT_STRATEGY_CREATION_TOPIC, - }) { - const strategyLogs = await getLogs({ - target, - topic, - fromBlock: startBlock, - api, - }); - const strategies = strategyLogs.map((log) => log.topics[1]); - - const pools = []; - const reservesCalls = []; - - const strategyDetails = await api.multiCall({ - abi: getStrategiesDetails, - target, - calls: strategies, - }); - - strategyDetails.forEach( - ({ key: { pool, tickLower, tickUpper }, account }) => { - pools.push(pool); - - reservesCalls.push({ - params: [ - pool, - Number(tickLower), - Number(tickUpper), - account.uniswapLiquidity, - ], - }); - } - ); + async function addConfigTvl({ target, helper, startBlock, topic = DEFAULT_STRATEGY_CREATION_TOPIC }) { + const strategyLogs = await getLogs({ target, topic, fromBlock: startBlock, api, }) + const strategies = strategyLogs.map(log => log.topics[1]) + + const pools = [] + const reservesCalls = [] + + const strategyDetails = await api.multiCall({ abi: getStrategiesDetails, target, calls: strategies, }) + + strategyDetails.forEach(({ key: { pool, tickLower, tickUpper }, account }) => { + pools.push(pool) + + reservesCalls.push({ params: [pool, Number(tickLower), Number(tickUpper), account.uniswapLiquidity,], }) + }) const [token0s, token1s, reserves] = await Promise.all([ - api.multiCall({ abi: "address:token0", calls: pools }), - api.multiCall({ abi: "address:token1", calls: pools }), - api.multiCall({ - abi: getStrategyReserves, - calls: reservesCalls, - target: helper, - }), - ]); + api.multiCall({ abi: 'address:token0', calls: pools, }), + api.multiCall({ abi: 'address:token1', calls: pools, }), + api.multiCall({ abi: getStrategyReserves, calls: reservesCalls, target: helper, }), + ]) reserves.forEach((reserve, index) => { - api.add(token0s[index], reserve.reserves0); - api.add(token1s[index], reserve.reserves1); - }); - - return sumTokens2({ - owner: target, - tokens: token0s.concat(token1s), - api, - }); + api.add(token0s[index], reserve.reserves0) + api.add(token1s[index], reserve.reserves1) + }) + + return sumTokens2({ owner: target, tokens: token0s.concat(token1s), api, }) } - }, - }; -}); + } + } +}) -module.exports.polygon.staking = staking(A51_STAKING_CONTRACT, A51); +module.exports.polygon.staking = staking(A51_STAKING_CONTRACT, A51) \ No newline at end of file From 64560c4830f56d589974375e099ab1123104246d Mon Sep 17 00:00:00 2001 From: HamzaBhatti125 Date: Tue, 1 Oct 2024 15:21:10 +0500 Subject: [PATCH 4/4] feat: added swapmode dex on mode network --- projects/a51-finance-v3/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/a51-finance-v3/index.js b/projects/a51-finance-v3/index.js index 7d3e171b294..5b18a09575f 100644 --- a/projects/a51-finance-v3/index.js +++ b/projects/a51-finance-v3/index.js @@ -40,6 +40,8 @@ const config = { manta: [{ target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", helper: "0xa1d8180f4482359ceb7eb7437fcf4a2616830f81", startBlock: 1834975 },], // lynex linea: [{target: "0xA8Dc31c8C9F93dB2e42A5472F580689794639576",helper: "0x965356eb2C208Ce4130E267342cA720042Cce7b2",startBlock: 4518443,},], + // swapmode + mode: [{ target: "0x69317029384c3305fC04670c68a2b434e2D8C44C", helper: "0xFFD9acf25F2D930BE88D486D588ecBa7a418DE0B", startBlock: 11042629 },], } module.exports = {