Add BiSwap (as UniV2 clone) on BSC (#471)
* Add BiSwap (as UniV2 clone) on BSC * changelog PR number * add BSW * remove BiSwap from transformer_utils * Do not initialize BalancerV2SwapInfoCache on unsupported chains [TKR-365] (#472) * Do not initialize BalancerV2SwapInfoCache on unsupported chains * Update CHANGELOG.json * Updated CHANGELOGS & MD docs * Publish - @0x/asset-swapper@16.57.3 * chore: Decomission SnowSwap [TKR-356] (#468) * Decomission SnowSwap * SnowSwap doesn't have much liquidity anymore (the largest pool has ~$50k) * Update CHANGELOG.json * Update CHANGELOG.json * chore: Offboard Swerve Finance and LinkSwap [TKR-356] (#469) * Offboard swerve * Update CHANGELOG.json * Offboard LinkSwap * Remove unused import * Fix CHANGELOG.json * chore: Offboard Eth2Dai [TKR-356] (#470) * Offboard Eth2Dai * Update CHANGELOG.json * feat: add IRfqClient (#467) * add message to changelog for #467 (#474) * Update saddle mainnet pools (#450) * Add saddle v2 pools * remove outdated pools * add two saddle meta pools * forgot changelog * remove saddle metapools * changelog update * Fix a lint issue (#475) * Updated CHANGELOGS & MD docs * Publish - @0x/asset-swapper@16.59.0 * Add BiSwap (as UniV2 clone) on BSC * rebase new changes for balv2, up changelog, quotes working * remove Biswap from transformer_utils once again Co-authored-by: Kyu <kyuhyun217@gmail.com> Co-authored-by: Github Actions <github-actions@github.com> Co-authored-by: phil-ociraptor <phil@0x.org> Co-authored-by: Cece Z <me@cecez.xyz> Co-authored-by: Noah Khamliche <noah@0xproject.com>
This commit is contained in:
parent
6b2856424a
commit
f55eaa867b
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "16.60.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Add BiSwap on BSC",
|
||||||
|
"pr": 467
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "16.59.0",
|
"version": "16.59.0",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -6,6 +6,7 @@ import {
|
|||||||
APESWAP_ROUTER_BY_CHAIN_ID,
|
APESWAP_ROUTER_BY_CHAIN_ID,
|
||||||
BAKERYSWAP_ROUTER_BY_CHAIN_ID,
|
BAKERYSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
BELT_BSC_INFOS,
|
BELT_BSC_INFOS,
|
||||||
|
BISWAP_ROUTER_BY_CHAIN_ID,
|
||||||
CAFESWAP_ROUTER_BY_CHAIN_ID,
|
CAFESWAP_ROUTER_BY_CHAIN_ID,
|
||||||
CHEESESWAP_ROUTER_BY_CHAIN_ID,
|
CHEESESWAP_ROUTER_BY_CHAIN_ID,
|
||||||
COMETHSWAP_ROUTER_BY_CHAIN_ID,
|
COMETHSWAP_ROUTER_BY_CHAIN_ID,
|
||||||
@ -553,7 +554,8 @@ export function uniswapV2LikeRouterAddress(
|
|||||||
| ERC20BridgeSource.UbeSwap
|
| ERC20BridgeSource.UbeSwap
|
||||||
| ERC20BridgeSource.MorpheusSwap
|
| ERC20BridgeSource.MorpheusSwap
|
||||||
| ERC20BridgeSource.SpookySwap
|
| ERC20BridgeSource.SpookySwap
|
||||||
| ERC20BridgeSource.SpiritSwap,
|
| ERC20BridgeSource.SpiritSwap
|
||||||
|
| ERC20BridgeSource.BiSwap,
|
||||||
): string {
|
): string {
|
||||||
switch (source) {
|
switch (source) {
|
||||||
case ERC20BridgeSource.UniswapV2:
|
case ERC20BridgeSource.UniswapV2:
|
||||||
@ -602,6 +604,8 @@ export function uniswapV2LikeRouterAddress(
|
|||||||
return SPOOKYSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
return SPOOKYSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
case ERC20BridgeSource.SpiritSwap:
|
case ERC20BridgeSource.SpiritSwap:
|
||||||
return SPIRITSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
return SPIRITSWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
|
case ERC20BridgeSource.BiSwap:
|
||||||
|
return BISWAP_ROUTER_BY_CHAIN_ID[chainId];
|
||||||
default:
|
default:
|
||||||
throw new Error(`Unknown UniswapV2 like source ${source}`);
|
throw new Error(`Unknown UniswapV2 like source ${source}`);
|
||||||
}
|
}
|
||||||
|
@ -146,6 +146,7 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
|||||||
ERC20BridgeSource.JetSwap,
|
ERC20BridgeSource.JetSwap,
|
||||||
ERC20BridgeSource.ACryptos,
|
ERC20BridgeSource.ACryptos,
|
||||||
ERC20BridgeSource.KyberDmm,
|
ERC20BridgeSource.KyberDmm,
|
||||||
|
ERC20BridgeSource.BiSwap,
|
||||||
]),
|
]),
|
||||||
[ChainId.Polygon]: new SourceFilters([
|
[ChainId.Polygon]: new SourceFilters([
|
||||||
ERC20BridgeSource.SushiSwap,
|
ERC20BridgeSource.SushiSwap,
|
||||||
@ -289,6 +290,7 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
|||||||
ERC20BridgeSource.ACryptos,
|
ERC20BridgeSource.ACryptos,
|
||||||
ERC20BridgeSource.KyberDmm,
|
ERC20BridgeSource.KyberDmm,
|
||||||
ERC20BridgeSource.Synapse,
|
ERC20BridgeSource.Synapse,
|
||||||
|
ERC20BridgeSource.BiSwap,
|
||||||
]),
|
]),
|
||||||
[ChainId.Polygon]: new SourceFilters([
|
[ChainId.Polygon]: new SourceFilters([
|
||||||
ERC20BridgeSource.SushiSwap,
|
ERC20BridgeSource.SushiSwap,
|
||||||
@ -518,6 +520,7 @@ export const BSC_TOKENS = {
|
|||||||
renBTC: '0xfce146bf3146100cfe5db4129cf6c82b0ef4ad8c',
|
renBTC: '0xfce146bf3146100cfe5db4129cf6c82b0ef4ad8c',
|
||||||
pBTC: '0xed28a457a5a76596ac48d87c0f577020f6ea1c4c',
|
pBTC: '0xed28a457a5a76596ac48d87c0f577020f6ea1c4c',
|
||||||
nUSD: '0x23b891e5c62e0955ae2bd185990103928ab817b3',
|
nUSD: '0x23b891e5c62e0955ae2bd185990103928ab817b3',
|
||||||
|
BSW: '0x965F527D9159dCe6288a2219DB51fc6Eef120dD1',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const POLYGON_TOKENS = {
|
export const POLYGON_TOKENS = {
|
||||||
@ -1940,6 +1943,13 @@ export const KYBER_DMM_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
|||||||
NULL_ADDRESS,
|
NULL_ADDRESS,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const BISWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
||||||
|
{
|
||||||
|
[ChainId.BSC]: '0x3a6d8ca21d1cf76f653a67577fa0d27453350dd8',
|
||||||
|
},
|
||||||
|
NULL_ADDRESS,
|
||||||
|
);
|
||||||
|
|
||||||
export const MOONISWAP_REGISTRIES_BY_CHAIN_ID = valueByChainId(
|
export const MOONISWAP_REGISTRIES_BY_CHAIN_ID = valueByChainId(
|
||||||
{
|
{
|
||||||
[ChainId.Mainnet]: ['0xbaf9a5d4b0052359326a6cdab54babaa3a3a9643'],
|
[ChainId.Mainnet]: ['0xbaf9a5d4b0052359326a6cdab54babaa3a3a9643'],
|
||||||
@ -2389,6 +2399,7 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
|
|||||||
[ERC20BridgeSource.SushiSwap]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.SushiSwap]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.CryptoCom]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.CryptoCom]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.ShibaSwap]: uniswapV2CloneGasSchedule,
|
[ERC20BridgeSource.ShibaSwap]: uniswapV2CloneGasSchedule,
|
||||||
|
[ERC20BridgeSource.BiSwap]: uniswapV2CloneGasSchedule,
|
||||||
[ERC20BridgeSource.Balancer]: () => 120e3,
|
[ERC20BridgeSource.Balancer]: () => 120e3,
|
||||||
[ERC20BridgeSource.BalancerV2]: (fillData?: FillData) => {
|
[ERC20BridgeSource.BalancerV2]: (fillData?: FillData) => {
|
||||||
return 100e3 + ((fillData as BalancerV2BatchSwapFillData).swapSteps.length - 1) * 50e3;
|
return 100e3 + ((fillData as BalancerV2BatchSwapFillData).swapSteps.length - 1) * 50e3;
|
||||||
|
@ -201,6 +201,8 @@ export function getErc20BridgeSourceToBridgeSource(source: ERC20BridgeSource): s
|
|||||||
return encodeBridgeSourceId(BridgeProtocol.AaveV2, 'Geist');
|
return encodeBridgeSourceId(BridgeProtocol.AaveV2, 'Geist');
|
||||||
case ERC20BridgeSource.MobiusMoney:
|
case ERC20BridgeSource.MobiusMoney:
|
||||||
return encodeBridgeSourceId(BridgeProtocol.Nerve, 'MobiusMoney');
|
return encodeBridgeSourceId(BridgeProtocol.Nerve, 'MobiusMoney');
|
||||||
|
case ERC20BridgeSource.BiSwap:
|
||||||
|
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'BiSwap');
|
||||||
default:
|
default:
|
||||||
throw new Error(AggregationError.NoBridgeForSource);
|
throw new Error(AggregationError.NoBridgeForSource);
|
||||||
}
|
}
|
||||||
@ -290,6 +292,7 @@ export function createBridgeDataForBridgeOrder(order: OptimizedMarketBridgeOrder
|
|||||||
case ERC20BridgeSource.SpiritSwap:
|
case ERC20BridgeSource.SpiritSwap:
|
||||||
case ERC20BridgeSource.SpookySwap:
|
case ERC20BridgeSource.SpookySwap:
|
||||||
case ERC20BridgeSource.MorpheusSwap:
|
case ERC20BridgeSource.MorpheusSwap:
|
||||||
|
case ERC20BridgeSource.BiSwap:
|
||||||
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;
|
||||||
@ -497,6 +500,7 @@ export const BRIDGE_ENCODERS: {
|
|||||||
[ERC20BridgeSource.SpiritSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.SpiritSwap]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.SpookySwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.SpookySwap]: routerAddressPathEncoder,
|
||||||
[ERC20BridgeSource.MorpheusSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.MorpheusSwap]: routerAddressPathEncoder,
|
||||||
|
[ERC20BridgeSource.BiSwap]: routerAddressPathEncoder,
|
||||||
// Celo
|
// Celo
|
||||||
[ERC20BridgeSource.UbeSwap]: routerAddressPathEncoder,
|
[ERC20BridgeSource.UbeSwap]: routerAddressPathEncoder,
|
||||||
// BSC
|
// BSC
|
||||||
|
@ -1395,6 +1395,7 @@ export class SamplerOperations {
|
|||||||
case ERC20BridgeSource.SpiritSwap:
|
case ERC20BridgeSource.SpiritSwap:
|
||||||
case ERC20BridgeSource.SpookySwap:
|
case ERC20BridgeSource.SpookySwap:
|
||||||
case ERC20BridgeSource.MorpheusSwap:
|
case ERC20BridgeSource.MorpheusSwap:
|
||||||
|
case ERC20BridgeSource.BiSwap:
|
||||||
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
||||||
if (!isValidAddress(uniLikeRouter)) {
|
if (!isValidAddress(uniLikeRouter)) {
|
||||||
return [];
|
return [];
|
||||||
@ -1701,6 +1702,7 @@ export class SamplerOperations {
|
|||||||
case ERC20BridgeSource.SpiritSwap:
|
case ERC20BridgeSource.SpiritSwap:
|
||||||
case ERC20BridgeSource.SpookySwap:
|
case ERC20BridgeSource.SpookySwap:
|
||||||
case ERC20BridgeSource.MorpheusSwap:
|
case ERC20BridgeSource.MorpheusSwap:
|
||||||
|
case ERC20BridgeSource.BiSwap:
|
||||||
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
|
||||||
if (!isValidAddress(uniLikeRouter)) {
|
if (!isValidAddress(uniLikeRouter)) {
|
||||||
return [];
|
return [];
|
||||||
|
@ -70,6 +70,7 @@ export enum ERC20BridgeSource {
|
|||||||
// BSC only
|
// BSC only
|
||||||
PancakeSwap = 'PancakeSwap',
|
PancakeSwap = 'PancakeSwap',
|
||||||
PancakeSwapV2 = 'PancakeSwap_V2',
|
PancakeSwapV2 = 'PancakeSwap_V2',
|
||||||
|
BiSwap = 'BiSwap',
|
||||||
BakerySwap = 'BakerySwap',
|
BakerySwap = 'BakerySwap',
|
||||||
Nerve = 'Nerve',
|
Nerve = 'Nerve',
|
||||||
Belt = 'Belt',
|
Belt = 'Belt',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user