feat/add MeshSwap on Polygon [TKR-374] (#491)
* Added MeshSwap on Polygon * Updated changelog
This commit is contained in:
parent
7f4080e0a2
commit
1f41fe6a20
@ -9,6 +9,10 @@
|
|||||||
{
|
{
|
||||||
"note": "Offboard/clean up Oasis, CoFix, and legacy Kyber",
|
"note": "Offboard/clean up Oasis, CoFix, and legacy Kyber",
|
||||||
"pr": 482
|
"pr": 482
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "Add MeshSwap on Polygon",
|
||||||
|
"pr": 491
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -29,6 +29,7 @@ import {
|
|||||||
JETSWAP_ROUTER_BY_CHAIN_ID,
|
JETSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
JULSWAP_ROUTER_BY_CHAIN_ID,
|
JULSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
MAX_DODOV2_POOLS_QUERIED,
|
MAX_DODOV2_POOLS_QUERIED,
|
||||||
|
MESHSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
MOBIUSMONEY_CELO_INFOS,
|
MOBIUSMONEY_CELO_INFOS,
|
||||||
MORPHEUSSWAP_ROUTER_BY_CHAIN_ID,
|
MORPHEUSSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
MSTABLE_POOLS_BY_CHAIN_ID,
|
MSTABLE_POOLS_BY_CHAIN_ID,
|
||||||
@ -543,7 +544,8 @@ export function uniswapV2LikeRouterAddress(
|
|||||||
| ERC20BridgeSource.SpookySwap
|
| ERC20BridgeSource.SpookySwap
|
||||||
| ERC20BridgeSource.SpiritSwap
|
| ERC20BridgeSource.SpiritSwap
|
||||||
| ERC20BridgeSource.BiSwap
|
| ERC20BridgeSource.BiSwap
|
||||||
| ERC20BridgeSource.Yoshi,
|
| ERC20BridgeSource.Yoshi
|
||||||
|
| ERC20BridgeSource.MeshSwap,
|
||||||
): string {
|
): string {
|
||||||
switch (source) {
|
switch (source) {
|
||||||
case ERC20BridgeSource.UniswapV2:
|
case ERC20BridgeSource.UniswapV2:
|
||||||
@ -596,6 +598,8 @@ export function uniswapV2LikeRouterAddress(
|
|||||||
return BISWAP_ROUTER_BY_CHAIN_ID[chainId];
|
return BISWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
case ERC20BridgeSource.Yoshi:
|
case ERC20BridgeSource.Yoshi:
|
||||||
return YOSHI_ROUTER_BY_CHAIN_ID[chainId];
|
return YOSHI_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
|
case ERC20BridgeSource.MeshSwap:
|
||||||
|
return MESHSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unknown UniswapV2 like source ${source}`);
|
throw new Error(`Unknown UniswapV2 like source ${source}`);
|
||||||
}
|
}
|
||||||
|
@ -170,6 +170,7 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
|||||||
ERC20BridgeSource.AaveV2,
|
ERC20BridgeSource.AaveV2,
|
||||||
ERC20BridgeSource.UniswapV3,
|
ERC20BridgeSource.UniswapV3,
|
||||||
ERC20BridgeSource.Synapse,
|
ERC20BridgeSource.Synapse,
|
||||||
|
ERC20BridgeSource.MeshSwap,
|
||||||
]),
|
]),
|
||||||
[ChainId.Avalanche]: new SourceFilters([
|
[ChainId.Avalanche]: new SourceFilters([
|
||||||
ERC20BridgeSource.MultiHop,
|
ERC20BridgeSource.MultiHop,
|
||||||
@ -314,6 +315,7 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
|||||||
ERC20BridgeSource.AaveV2,
|
ERC20BridgeSource.AaveV2,
|
||||||
ERC20BridgeSource.UniswapV3,
|
ERC20BridgeSource.UniswapV3,
|
||||||
ERC20BridgeSource.Synapse,
|
ERC20BridgeSource.Synapse,
|
||||||
|
ERC20BridgeSource.MeshSwap,
|
||||||
]),
|
]),
|
||||||
[ChainId.Avalanche]: new SourceFilters([
|
[ChainId.Avalanche]: new SourceFilters([
|
||||||
ERC20BridgeSource.MultiHop,
|
ERC20BridgeSource.MultiHop,
|
||||||
@ -2294,6 +2296,13 @@ export const POLYDEX_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
|||||||
NULL_ADDRESS,
|
NULL_ADDRESS,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const MESHSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
||||||
|
{
|
||||||
|
[ChainId.Polygon]: '0x10f4a785f458bc144e3706575924889954946639',
|
||||||
|
},
|
||||||
|
NULL_ADDRESS,
|
||||||
|
);
|
||||||
|
|
||||||
export const JETSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
export const JETSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
||||||
{
|
{
|
||||||
[ChainId.BSC]: '0xbe65b8f75b9f20f4c522e0067a3887fada714800',
|
[ChainId.BSC]: '0xbe65b8f75b9f20f4c522e0067a3887fada714800',
|
||||||
@ -2585,6 +2594,7 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
|
|||||||
[ERC20BridgeSource.Dfyn]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.Dfyn]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.Polydex]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.Polydex]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.JetSwap]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.JetSwap]: uniswapV2CloneGasSchedule,
|
||||||
|
[ERC20BridgeSource.MeshSwap]: uniswapV2CloneGasSchedule,
|
||||||
|
|
||||||
//
|
//
|
||||||
// Avalanche
|
// Avalanche
|
||||||
|
@ -206,6 +206,8 @@ export function getErc20BridgeSourceToBridgeSource(source: ERC20BridgeSource): s
|
|||||||
return encodeBridgeSourceId(BridgeProtocol.GMX, 'GMX');
|
return encodeBridgeSourceId(BridgeProtocol.GMX, 'GMX');
|
||||||
case ERC20BridgeSource.Platypus:
|
case ERC20BridgeSource.Platypus:
|
||||||
return encodeBridgeSourceId(BridgeProtocol.Platypus, 'Platypus');
|
return encodeBridgeSourceId(BridgeProtocol.Platypus, 'Platypus');
|
||||||
|
case ERC20BridgeSource.MeshSwap:
|
||||||
|
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'MeshSwap');
|
||||||
default:
|
default:
|
||||||
throw new Error(AggregationError.NoBridgeForSource);
|
throw new Error(AggregationError.NoBridgeForSource);
|
||||||
}
|
}
|
||||||
@ -297,6 +299,7 @@ export function createBridgeDataForBridgeOrder(order: OptimizedMarketBridgeOrder
|
|||||||
case ERC20BridgeSource.MorpheusSwap:
|
case ERC20BridgeSource.MorpheusSwap:
|
||||||
case ERC20BridgeSource.BiSwap:
|
case ERC20BridgeSource.BiSwap:
|
||||||
case ERC20BridgeSource.Yoshi:
|
case ERC20BridgeSource.Yoshi:
|
||||||
|
case ERC20BridgeSource.MeshSwap:
|
||||||
const uniswapV2FillData = (order as OptimizedMarketBridgeOrder<UniswapV2FillData>).fillData;
|
const uniswapV2FillData = (order as OptimizedMarketBridgeOrder<UniswapV2FillData>).fillData;
|
||||||
bridgeData = encoder.encode([uniswapV2FillData.router, uniswapV2FillData.tokenAddressPath]);
|
bridgeData = encoder.encode([uniswapV2FillData.router, uniswapV2FillData.tokenAddressPath]);
|
||||||
break;
|
break;
|
||||||
@ -517,6 +520,7 @@ export const BRIDGE_ENCODERS: {
|
|||||||
[ERC20BridgeSource.MorpheusSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.MorpheusSwap]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.BiSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.BiSwap]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.Yoshi]: routerAddressPathEncoder,
|
[ERC20BridgeSource.Yoshi]: routerAddressPathEncoder,
|
||||||
|
[ERC20BridgeSource.MeshSwap]: routerAddressPathEncoder,
|
||||||
// Avalanche
|
// Avalanche
|
||||||
[ERC20BridgeSource.GMX]: gmxAddressPathEncoder,
|
[ERC20BridgeSource.GMX]: gmxAddressPathEncoder,
|
||||||
[ERC20BridgeSource.Platypus]: platypusAddressPathEncoder,
|
[ERC20BridgeSource.Platypus]: platypusAddressPathEncoder,
|
||||||
|
@ -1415,6 +1415,7 @@ export class SamplerOperations {
|
|||||||
case ERC20BridgeSource.Yoshi:
|
case ERC20BridgeSource.Yoshi:
|
||||||
case ERC20BridgeSource.MorpheusSwap:
|
case ERC20BridgeSource.MorpheusSwap:
|
||||||
case ERC20BridgeSource.BiSwap:
|
case ERC20BridgeSource.BiSwap:
|
||||||
|
case ERC20BridgeSource.MeshSwap:
|
||||||
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
||||||
if (!isValidAddress(uniLikeRouter)) {
|
if (!isValidAddress(uniLikeRouter)) {
|
||||||
return [];
|
return [];
|
||||||
@ -1748,6 +1749,7 @@ export class SamplerOperations {
|
|||||||
case ERC20BridgeSource.Yoshi:
|
case ERC20BridgeSource.Yoshi:
|
||||||
case ERC20BridgeSource.MorpheusSwap:
|
case ERC20BridgeSource.MorpheusSwap:
|
||||||
case ERC20BridgeSource.BiSwap:
|
case ERC20BridgeSource.BiSwap:
|
||||||
|
case ERC20BridgeSource.MeshSwap:
|
||||||
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
||||||
if (!isValidAddress(uniLikeRouter)) {
|
if (!isValidAddress(uniLikeRouter)) {
|
||||||
return [];
|
return [];
|
||||||
|
@ -88,6 +88,7 @@ export enum ERC20BridgeSource {
|
|||||||
FirebirdOneSwap = 'FirebirdOneSwap',
|
FirebirdOneSwap = 'FirebirdOneSwap',
|
||||||
JetSwap = 'JetSwap',
|
JetSwap = 'JetSwap',
|
||||||
IronSwap = 'IronSwap',
|
IronSwap = 'IronSwap',
|
||||||
|
MeshSwap = 'MeshSwap',
|
||||||
// Avalanche
|
// Avalanche
|
||||||
Pangolin = 'Pangolin',
|
Pangolin = 'Pangolin',
|
||||||
TraderJoe = 'TraderJoe',
|
TraderJoe = 'TraderJoe',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user