feat: ShibaSwap (#276)
This commit is contained in:
parent
4280307a15
commit
a9a81bcafb
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "16.20.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "ShibaSwap",
|
||||||
|
"pr": 276
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "16.19.1",
|
"version": "16.19.1",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -32,6 +32,7 @@ import {
|
|||||||
QUICKSWAP_ROUTER_BY_CHAIN_ID,
|
QUICKSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
SADDLE_MAINNET_INFOS,
|
SADDLE_MAINNET_INFOS,
|
||||||
SHELL_POOLS_BY_CHAIN_ID,
|
SHELL_POOLS_BY_CHAIN_ID,
|
||||||
|
SHIBASWAP_ROUTER_BY_CHAIN_ID,
|
||||||
SMOOTHY_BSC_INFOS,
|
SMOOTHY_BSC_INFOS,
|
||||||
SMOOTHY_MAINNET_INFOS,
|
SMOOTHY_MAINNET_INFOS,
|
||||||
SNOWSWAP_MAINNET_INFOS,
|
SNOWSWAP_MAINNET_INFOS,
|
||||||
@ -399,7 +400,8 @@ export function uniswapV2LikeRouterAddress(
|
|||||||
| ERC20BridgeSource.ComethSwap
|
| ERC20BridgeSource.ComethSwap
|
||||||
| ERC20BridgeSource.Dfyn
|
| ERC20BridgeSource.Dfyn
|
||||||
| ERC20BridgeSource.WaultSwap
|
| ERC20BridgeSource.WaultSwap
|
||||||
| ERC20BridgeSource.Polydex,
|
| ERC20BridgeSource.Polydex
|
||||||
|
| ERC20BridgeSource.ShibaSwap,
|
||||||
): string {
|
): string {
|
||||||
switch (source) {
|
switch (source) {
|
||||||
case ERC20BridgeSource.UniswapV2:
|
case ERC20BridgeSource.UniswapV2:
|
||||||
@ -432,6 +434,8 @@ export function uniswapV2LikeRouterAddress(
|
|||||||
return WAULTSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
return WAULTSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
case ERC20BridgeSource.Polydex:
|
case ERC20BridgeSource.Polydex:
|
||||||
return POLYDEX_ROUTER_BY_CHAIN_ID[chainId];
|
return POLYDEX_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
|
case ERC20BridgeSource.ShibaSwap:
|
||||||
|
return SHIBASWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unknown UniswapV2 like source ${source}`);
|
throw new Error(`Unknown UniswapV2 like source ${source}`);
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,7 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
|||||||
ERC20BridgeSource.XSigma,
|
ERC20BridgeSource.XSigma,
|
||||||
ERC20BridgeSource.UniswapV3,
|
ERC20BridgeSource.UniswapV3,
|
||||||
ERC20BridgeSource.CurveV2,
|
ERC20BridgeSource.CurveV2,
|
||||||
|
ERC20BridgeSource.ShibaSwap,
|
||||||
]),
|
]),
|
||||||
[ChainId.Ropsten]: new SourceFilters([
|
[ChainId.Ropsten]: new SourceFilters([
|
||||||
ERC20BridgeSource.Kyber,
|
ERC20BridgeSource.Kyber,
|
||||||
@ -192,6 +193,7 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
|||||||
ERC20BridgeSource.XSigma,
|
ERC20BridgeSource.XSigma,
|
||||||
ERC20BridgeSource.UniswapV3,
|
ERC20BridgeSource.UniswapV3,
|
||||||
ERC20BridgeSource.CurveV2,
|
ERC20BridgeSource.CurveV2,
|
||||||
|
ERC20BridgeSource.ShibaSwap,
|
||||||
]),
|
]),
|
||||||
[ChainId.Ropsten]: new SourceFilters([
|
[ChainId.Ropsten]: new SourceFilters([
|
||||||
ERC20BridgeSource.Kyber,
|
ERC20BridgeSource.Kyber,
|
||||||
@ -1094,6 +1096,13 @@ export const LINKSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
|||||||
NULL_ADDRESS,
|
NULL_ADDRESS,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const SHIBASWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
||||||
|
{
|
||||||
|
[ChainId.Mainnet]: '0x03f7724180aa6b939894b5ca4314783b0b36b329',
|
||||||
|
},
|
||||||
|
NULL_ADDRESS,
|
||||||
|
);
|
||||||
|
|
||||||
export const MSTABLE_POOLS_BY_CHAIN_ID = valueByChainId(
|
export const MSTABLE_POOLS_BY_CHAIN_ID = valueByChainId(
|
||||||
{
|
{
|
||||||
[ChainId.Mainnet]: {
|
[ChainId.Mainnet]: {
|
||||||
@ -1472,6 +1481,7 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
|
|||||||
[ERC20BridgeSource.SushiSwap]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.SushiSwap]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.CryptoCom]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.CryptoCom]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.Linkswap]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.Linkswap]: uniswapV2CloneGasSchedule,
|
||||||
|
[ERC20BridgeSource.ShibaSwap]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.Balancer]: () => 120e3,
|
[ERC20BridgeSource.Balancer]: () => 120e3,
|
||||||
[ERC20BridgeSource.BalancerV2]: () => 100e3,
|
[ERC20BridgeSource.BalancerV2]: () => 100e3,
|
||||||
[ERC20BridgeSource.Cream]: () => 120e3,
|
[ERC20BridgeSource.Cream]: () => 120e3,
|
||||||
|
@ -172,6 +172,8 @@ export function getErc20BridgeSourceToBridgeSource(source: ERC20BridgeSource): s
|
|||||||
return encodeBridgeSourceId(BridgeProtocol.Nerve, 'FirebirdOneSwap');
|
return encodeBridgeSourceId(BridgeProtocol.Nerve, 'FirebirdOneSwap');
|
||||||
case ERC20BridgeSource.Lido:
|
case ERC20BridgeSource.Lido:
|
||||||
return encodeBridgeSourceId(BridgeProtocol.Lido, 'Lido');
|
return encodeBridgeSourceId(BridgeProtocol.Lido, 'Lido');
|
||||||
|
case ERC20BridgeSource.ShibaSwap:
|
||||||
|
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'ShibaSwap');
|
||||||
default:
|
default:
|
||||||
throw new Error(AggregationError.NoBridgeForSource);
|
throw new Error(AggregationError.NoBridgeForSource);
|
||||||
}
|
}
|
||||||
@ -242,6 +244,7 @@ export function createBridgeDataForBridgeOrder(order: OptimizedMarketBridgeOrder
|
|||||||
case ERC20BridgeSource.Dfyn:
|
case ERC20BridgeSource.Dfyn:
|
||||||
case ERC20BridgeSource.WaultSwap:
|
case ERC20BridgeSource.WaultSwap:
|
||||||
case ERC20BridgeSource.Polydex:
|
case ERC20BridgeSource.Polydex:
|
||||||
|
case ERC20BridgeSource.ShibaSwap:
|
||||||
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;
|
||||||
@ -427,6 +430,7 @@ export const BRIDGE_ENCODERS: {
|
|||||||
[ERC20BridgeSource.SushiSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.SushiSwap]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.CryptoCom]: routerAddressPathEncoder,
|
[ERC20BridgeSource.CryptoCom]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.Linkswap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.Linkswap]: routerAddressPathEncoder,
|
||||||
|
[ERC20BridgeSource.ShibaSwap]: routerAddressPathEncoder,
|
||||||
// BSC
|
// BSC
|
||||||
[ERC20BridgeSource.PancakeSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.PancakeSwap]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.PancakeSwapV2]: routerAddressPathEncoder,
|
[ERC20BridgeSource.PancakeSwapV2]: routerAddressPathEncoder,
|
||||||
|
@ -1229,6 +1229,7 @@ export class SamplerOperations {
|
|||||||
case ERC20BridgeSource.Dfyn:
|
case ERC20BridgeSource.Dfyn:
|
||||||
case ERC20BridgeSource.WaultSwap:
|
case ERC20BridgeSource.WaultSwap:
|
||||||
case ERC20BridgeSource.Polydex:
|
case ERC20BridgeSource.Polydex:
|
||||||
|
case ERC20BridgeSource.ShibaSwap:
|
||||||
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
||||||
if (!isValidAddress(uniLikeRouter)) {
|
if (!isValidAddress(uniLikeRouter)) {
|
||||||
return [];
|
return [];
|
||||||
@ -1499,6 +1500,7 @@ export class SamplerOperations {
|
|||||||
case ERC20BridgeSource.Dfyn:
|
case ERC20BridgeSource.Dfyn:
|
||||||
case ERC20BridgeSource.WaultSwap:
|
case ERC20BridgeSource.WaultSwap:
|
||||||
case ERC20BridgeSource.Polydex:
|
case ERC20BridgeSource.Polydex:
|
||||||
|
case ERC20BridgeSource.ShibaSwap:
|
||||||
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
||||||
if (!isValidAddress(uniLikeRouter)) {
|
if (!isValidAddress(uniLikeRouter)) {
|
||||||
return [];
|
return [];
|
||||||
|
@ -68,6 +68,7 @@ export enum ERC20BridgeSource {
|
|||||||
UniswapV3 = 'Uniswap_V3',
|
UniswapV3 = 'Uniswap_V3',
|
||||||
CurveV2 = 'Curve_V2',
|
CurveV2 = 'Curve_V2',
|
||||||
Lido = 'Lido',
|
Lido = 'Lido',
|
||||||
|
ShibaSwap = 'ShibaSwap',
|
||||||
// BSC only
|
// BSC only
|
||||||
PancakeSwap = 'PancakeSwap',
|
PancakeSwap = 'PancakeSwap',
|
||||||
PancakeSwapV2 = 'PancakeSwap_V2',
|
PancakeSwapV2 = 'PancakeSwap_V2',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user