Skip to content

Commit

Permalink
Fix Uniswap V3, Turn off Scroll Bridge (#446)
Browse files Browse the repository at this point in the history
  • Loading branch information
lilchizh authored Sep 4, 2023
2 parents deefcef + 34899b0 commit 711c1cc
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 237 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rubic-sdk",
"version": "4.22.3",
"version": "4.22.4",
"description": "Simplify dApp creation",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { CbridgeCrossChainProvider } from 'src/features/cross-chain/calculation-
import { ChangenowCrossChainProvider } from 'src/features/cross-chain/calculation-manager/providers/changenow-provider/changenow-cross-chain-provider';
import { DebridgeCrossChainProvider } from 'src/features/cross-chain/calculation-manager/providers/debridge-provider/debridge-cross-chain-provider';
import { LifiCrossChainProvider } from 'src/features/cross-chain/calculation-manager/providers/lifi-provider/lifi-cross-chain-provider';
import { ScrollBridgeProvider } from 'src/features/cross-chain/calculation-manager/providers/scroll-bridge/scroll-bridge-provider';
// import { ScrollBridgeProvider } from 'src/features/cross-chain/calculation-manager/providers/scroll-bridge/scroll-bridge-provider';
import { SquidrouterCrossChainProvider } from 'src/features/cross-chain/calculation-manager/providers/squidrouter-provider/squidrouter-cross-chain-provider';
import { SymbiosisCrossChainProvider } from 'src/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider';
import { XyCrossChainProvider } from 'src/features/cross-chain/calculation-manager/providers/xy-provider/xy-cross-chain-provider';
Expand All @@ -24,8 +24,8 @@ const nonProxyProviders = [
DebridgeCrossChainProvider,
BridgersCrossChainProvider,
ChangenowCrossChainProvider,
ArbitrumRbcBridgeProvider,
ScrollBridgeProvider
ArbitrumRbcBridgeProvider
// ScrollBridgeProvider
] as const;

export const CrossChainProviders = [...proxyProviders, ...nonProxyProviders] as const;
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export const scrollBridgeContractAddress: Record<
UniversalContract
> = {
[BLOCKCHAIN_NAME.SCROLL_SEPOLIA]: {
providerGateway: '0xaDcA915971A336EA2f5b567e662F5bd74AEf9582',
providerRouter: '0xaDcA915971A336EA2f5b567e662F5bd74AEf9582',
providerGateway: '0x91e8ADDFe1358aCa5314c644312d38237fC1101C',
providerRouter: '0x91e8ADDFe1358aCa5314c644312d38237fC1101C',
rubicRouter: '0x33798753ec66aEc00ed7E337B41F444f53A63333'
},
[BLOCKCHAIN_NAME.GOERLI]: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ export class ScrollBridgeTrade extends EvmCrossChainTrade {
this.from.stringWeiAmount,
'40000'
];
const fee = Web3Pure.toWei(0.00001);
const fee = Web3Pure.toWei(0.005);

return {
contractAddress: scrollBridgeContractAddress[this.fromBlockchain]!.providerGateway,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ import { UniswapV3AlgebraTradeStructOmitPath } from 'src/features/on-chain/calcu
import { UniswapV3AlgebraAbstractProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/common/uniswap-v3-algebra-abstract/uniswap-v3-algebra-abstract-provider';
import { UNI_SWAP_V3_SCROLL_SEPOLIA_PROVIDER_CONFIGURATION } from 'src/features/on-chain/calculation-manager/providers/dexes/scroll-sepolia/uni-swap-v3-scroll-sepolia/constants/provider-configuration';
import { UNI_SWAP_V3_SCROLL_SEPOLIA_ROUTER_CONFIGURATION } from 'src/features/on-chain/calculation-manager/providers/dexes/scroll-sepolia/uni-swap-v3-scroll-sepolia/constants/router-configuration';
import { SCROLL_UNISWAP_V3_SWAP_ROUTER_CONTRACT_ABI } from 'src/features/on-chain/calculation-manager/providers/dexes/scroll-sepolia/uni-swap-v3-scroll-sepolia/constants/scroll-trade-abi';
import { UniSwapV3ScrollSepoliaTrade } from 'src/features/on-chain/calculation-manager/providers/dexes/scroll-sepolia/uni-swap-v3-scroll-sepolia/uni-swap-v3-scroll-sepolia-trade';

import { UNISWAP_V3_SWAP_ROUTER_CONTRACT_ABI } from '../../common/uniswap-v3-abstract/constants/swap-router-contract-abi';

export class UniSwapV3ScrollSepoliaProvider extends UniswapV3AlgebraAbstractProvider<UniSwapV3ScrollSepoliaTrade> {
public readonly contractAddress = '0x17AFD0263D6909Ba1F9a8EAC697f76532365Fb95';
public readonly contractAddress = '0x59a662Ed724F19AD019307126CbEBdcF4b57d6B1';

protected readonly contractAbi = SCROLL_UNISWAP_V3_SWAP_ROUTER_CONTRACT_ABI;
protected readonly contractAbi = UNISWAP_V3_SWAP_ROUTER_CONTRACT_ABI;

public readonly blockchain = BLOCKCHAIN_NAME.SCROLL_SEPOLIA;

Expand All @@ -34,7 +35,7 @@ export class UniSwapV3ScrollSepoliaProvider extends UniswapV3AlgebraAbstractProv
protected readonly quoterController = new UniswapV3QuoterController(
this.blockchain,
this.routerConfiguration,
'0xd5dd33650Ef1DC6D23069aEDC8EAE87b0D3619B2',
'0x805488DaA81c1b9e7C5cE3f1DCeA28F21448EC6A',
UNISWAP_V3_QUOTER_CONTRACT_ABI,
'0xB856587fe1cbA8600F75F1b1176E44250B11C788'
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,88 +1,5 @@
import { RubicSdkError } from 'src/common/errors';
import { compareAddresses } from 'src/common/utils/blockchain';
import { MethodData } from 'src/core/blockchain/web3-public-service/web3-public/models/method-data';
import {
ON_CHAIN_TRADE_TYPE,
OnChainTradeType
} from 'src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type';
import { UniswapV3Route } from 'src/features/on-chain/calculation-manager/providers/dexes/common/uniswap-v3-abstract/models/uniswap-v3-route';
import { UniswapV3TradeStruct } from 'src/features/on-chain/calculation-manager/providers/dexes/common/uniswap-v3-abstract/models/uniswap-v3-trade-struct';
import { UniswapV3QuoterController } from 'src/features/on-chain/calculation-manager/providers/dexes/common/uniswap-v3-abstract/utils/quoter-controller/uniswap-v3-quoter-controller';
import { UniswapV3AlgebraAbstractTrade } from 'src/features/on-chain/calculation-manager/providers/dexes/common/uniswap-v3-algebra-abstract/uniswap-v3-algebra-abstract-trade';
import { SCROLL_UNISWAP_V3_SWAP_ROUTER_CONTRACT_ABI } from 'src/features/on-chain/calculation-manager/providers/dexes/scroll-sepolia/uni-swap-v3-scroll-sepolia/constants/scroll-trade-abi';
import { UniswapV3AbstractTrade } from '../../common/uniswap-v3-abstract/uniswap-v3-abstract-trade';

export class UniSwapV3ScrollSepoliaTrade extends UniswapV3AlgebraAbstractTrade {
public readonly dexContractAddress = '0x17AFD0263D6909Ba1F9a8EAC697f76532365Fb95';

protected readonly contractAbi = SCROLL_UNISWAP_V3_SWAP_ROUTER_CONTRACT_ABI;

protected readonly unwrapWethMethodName = 'unwrapWETH9';

private readonly route: UniswapV3Route;

public static get type(): OnChainTradeType {
return ON_CHAIN_TRADE_TYPE.UNI_SWAP_V3;
}

constructor(tradeStruct: UniswapV3TradeStruct, providerAddress: string) {
super(tradeStruct, providerAddress);

this.route = tradeStruct.route;
}

/**
* Returns swap `exactInput` method's name and arguments to use in Swap contract.
*/
protected getSwapRouterExactInputMethodData(walletAddress: string): MethodData {
const amountParams = this.getAmountParams();

if (this.route.poolsPath.length === 1) {
const methodName = this.exact === 'input' ? 'exactInputSingle' : 'exactOutputSingle';

const pool = this.route.poolsPath[0];
if (!pool) {
throw new RubicSdkError('Initial pool has to be defined');
}
const toTokenAddress = compareAddresses(
pool.token0.address,
this.route.initialTokenAddress
)
? pool.token1.address
: pool.token0.address;

if (!this.route?.poolsPath?.[0]) {
throw new RubicSdkError('PoolsPath[0] has to be defined');
}

return {
methodName,
methodArguments: [
[
this.route.initialTokenAddress,
toTokenAddress,
this.route.poolsPath[0].fee,
walletAddress,
...amountParams,
0
]
]
};
}

const methodName = this.exact === 'input' ? 'exactInput' : 'exactOutput';

return {
methodName,
methodArguments: [
[
UniswapV3QuoterController.getEncodedPoolsPath(
this.route.poolsPath,
this.route.initialTokenAddress
),
walletAddress,
...amountParams
]
]
};
}
export class UniSwapV3ScrollSepoliaTrade extends UniswapV3AbstractTrade {
public readonly dexContractAddress = '0x59a662Ed724F19AD019307126CbEBdcF4b57d6B1';
}

0 comments on commit 711c1cc

Please sign in to comment.