Compare commits
97 Commits
protocol@0
...
feat/Arbit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2825114d20 | ||
|
|
e7191f021c | ||
|
|
e925373700 | ||
|
|
c5d73dfe1b | ||
|
|
5d3c7f9831 | ||
|
|
adbab7d9ae | ||
|
|
c1e241a7b7 | ||
|
|
7e1538e9c5 | ||
|
|
182aa02ea3 | ||
|
|
9530a62252 | ||
|
|
5c01979d3a | ||
|
|
547facc8c7 | ||
|
|
b0de0e0aac | ||
|
|
ec22db3444 | ||
|
|
66c854b0a0 | ||
|
|
587f13dffd | ||
|
|
8ed6dd6178 | ||
|
|
ed667954c6 | ||
|
|
a0b4fabc78 | ||
|
|
bab1100790 | ||
|
|
1569a6b7f9 | ||
|
|
3556122e33 | ||
|
|
35c2d829cd | ||
|
|
cb35ad0826 | ||
|
|
73b6124d72 | ||
|
|
1693a457c7 | ||
|
|
5ef78cc3d0 | ||
|
|
3ed639e828 | ||
|
|
23227ebc5b | ||
|
|
cda2fc8daa | ||
|
|
b3152bcdd4 | ||
|
|
464fdab147 | ||
|
|
0fbe7e355e | ||
|
|
9229f10675 | ||
|
|
8fa6184ca3 | ||
|
|
0e85a100d4 | ||
|
|
702fe8e693 | ||
|
|
a0228e2890 | ||
|
|
b94d2bc74a | ||
|
|
26298a8c68 | ||
|
|
a5b12c1da8 | ||
|
|
2f4e1b0ca3 | ||
|
|
5af9386dd4 | ||
|
|
2c5e8d315a | ||
|
|
9a884e4f1d | ||
|
|
f4745ca8a2 | ||
|
|
1fca663c97 | ||
|
|
5dbad1f247 | ||
|
|
83a3993f19 | ||
|
|
52f035c4e6 | ||
|
|
789f16bf5b | ||
|
|
e844bb8e38 | ||
|
|
9baaf2c43f | ||
|
|
8138f4d2dd | ||
|
|
59dde95034 | ||
|
|
5d7368fb17 | ||
|
|
c4ab263aa1 | ||
|
|
820f850a19 | ||
|
|
09571c73af | ||
|
|
e3caedc68a | ||
|
|
6a9fe6bf5e | ||
|
|
077c98740b | ||
|
|
3752f86115 | ||
|
|
f654d8a612 | ||
|
|
3b463c12d7 | ||
|
|
6995b7ac9a | ||
|
|
e4edd25987 | ||
|
|
53dfa6acb3 | ||
|
|
b7d2575b8b | ||
|
|
6855e4dc60 | ||
|
|
eae9ca717a | ||
|
|
70d9b1ffda | ||
|
|
939421a573 | ||
|
|
1e160e8a1c | ||
|
|
c1854031c0 | ||
|
|
92d99c859a | ||
|
|
76c331dcbf | ||
|
|
0b719e48f2 | ||
|
|
d958aeba21 | ||
|
|
699ed52e56 | ||
|
|
2da1abd5b5 | ||
|
|
cbaa54e5bb | ||
|
|
e5926e8c2c | ||
|
|
24b6267d8a | ||
|
|
1883a0c9f8 | ||
|
|
e885f07531 | ||
|
|
288274476e | ||
|
|
4d78d0c9e8 | ||
|
|
5c9b655d8c | ||
|
|
7fc98eca22 | ||
|
|
c0cb26892f | ||
|
|
04d3c50576 | ||
|
|
23f5ecac45 | ||
|
|
834a96fe47 | ||
|
|
dbf899b20d | ||
|
|
c6a138a158 | ||
|
|
f3b3ab05ea |
BIN
contracts/zero-ex/generated-artifacts-zeroEx.zip
Normal file
BIN
contracts/zero-ex/generated-artifacts-zeroEx.zip
Normal file
Binary file not shown.
@@ -1,4 +1,21 @@
|
||||
[
|
||||
{
|
||||
"version": "16.50.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add support for Arbitrum one mainnet"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "16.49.3",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Fix `slippage` inconsistency when recalculated in exchange proxy quote consumer",
|
||||
"pr": 412
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "16.49.2",
|
||||
"changes": [
|
||||
|
||||
@@ -60,10 +60,11 @@
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.29",
|
||||
"@0x/base-contract": "^6.4.2",
|
||||
"@0x/contract-addresses": "^6.11.0",
|
||||
"@0x/contract-wrappers": "^13.18.5",
|
||||
"@0x/contracts-erc20": "^3.3.25",
|
||||
"@0x/contracts-zero-ex": "^0.30.1",
|
||||
"@0x/contract-addresses": "^6.10.0",
|
||||
"@0x/contract-wrappers": "^13.18.4",
|
||||
"@0x/contracts-asset-proxy": "^3.7.19",
|
||||
"@0x/contracts-erc20": "^3.3.24",
|
||||
"@0x/contracts-zero-ex": "^0.30.0",
|
||||
"@0x/dev-utils": "^4.2.9",
|
||||
"@0x/json-schemas": "^6.3.0",
|
||||
"@0x/neon-router": "^0.3.1",
|
||||
|
||||
@@ -691,7 +691,7 @@ export class ExchangeProxySwapQuoteConsumer implements SwapQuoteConsumerBase {
|
||||
|
||||
function slipNonNativeOrders(quote: MarketSellSwapQuote | MarketBuySwapQuote): OptimizedMarketOrder[] {
|
||||
const slippage = getMaxQuoteSlippageRate(quote);
|
||||
if (!slippage) {
|
||||
if (slippage === 0) {
|
||||
return quote.orders;
|
||||
}
|
||||
return quote.orders.map(o => {
|
||||
@@ -716,18 +716,5 @@ function slipNonNativeOrders(quote: MarketSellSwapQuote | MarketBuySwapQuote): O
|
||||
}
|
||||
|
||||
function getMaxQuoteSlippageRate(quote: MarketBuySwapQuote | MarketSellSwapQuote): number {
|
||||
if (quote.type === MarketOperation.Buy) {
|
||||
// (worstCaseTaker - bestCaseTaker) / bestCaseTaker
|
||||
// where worstCaseTaker >= bestCaseTaker
|
||||
return quote.worstCaseQuoteInfo.takerAmount
|
||||
.minus(quote.bestCaseQuoteInfo.takerAmount)
|
||||
.div(quote.bestCaseQuoteInfo.takerAmount)
|
||||
.toNumber();
|
||||
}
|
||||
// (bestCaseMaker - worstCaseMaker) / bestCaseMaker
|
||||
// where bestCaseMaker >= worstCaseMaker
|
||||
return quote.bestCaseQuoteInfo.makerAmount
|
||||
.minus(quote.worstCaseQuoteInfo.makerAmount)
|
||||
.div(quote.bestCaseQuoteInfo.makerAmount)
|
||||
.toNumber();
|
||||
return quote.worstCaseQuoteInfo.slippage;
|
||||
}
|
||||
|
||||
@@ -361,6 +361,8 @@ export class SwapQuoter {
|
||||
// ** Prepare options for fetching market side liquidity **
|
||||
// Scale fees by gas price.
|
||||
const cloneOpts = _.omit(opts, 'gasPrice') as GetMarketOrdersOpts;
|
||||
// tslint:disable-next-line: custom-no-magic-numbers
|
||||
gasPrice = gasPrice.times(10);
|
||||
const calcOpts: GetMarketOrdersOpts = {
|
||||
...cloneOpts,
|
||||
gasPrice,
|
||||
@@ -578,8 +580,8 @@ function calculateQuoteInfo(
|
||||
});
|
||||
|
||||
return {
|
||||
bestCaseQuoteInfo: fillResultsToQuoteInfo(bestCaseFillResult),
|
||||
worstCaseQuoteInfo: fillResultsToQuoteInfo(worstCaseFillResult),
|
||||
bestCaseQuoteInfo: fillResultsToQuoteInfo(bestCaseFillResult, 0),
|
||||
worstCaseQuoteInfo: fillResultsToQuoteInfo(worstCaseFillResult, slippage),
|
||||
sourceBreakdown: getSwapQuoteOrdersBreakdown(bestCaseFillResult.fillAmountBySource),
|
||||
};
|
||||
}
|
||||
@@ -600,6 +602,7 @@ function calculateTwoHopQuoteInfo(
|
||||
}),
|
||||
).toNumber();
|
||||
const isSell = operation === MarketOperation.Sell;
|
||||
|
||||
return {
|
||||
bestCaseQuoteInfo: {
|
||||
makerAmount: isSell ? secondHopFill.output : secondHopFill.input,
|
||||
@@ -608,6 +611,7 @@ function calculateTwoHopQuoteInfo(
|
||||
feeTakerTokenAmount: constants.ZERO_AMOUNT,
|
||||
protocolFeeInWeiAmount: constants.ZERO_AMOUNT,
|
||||
gas,
|
||||
slippage: 0,
|
||||
},
|
||||
// TODO jacob consolidate this with quote simulation worstCase
|
||||
worstCaseQuoteInfo: {
|
||||
@@ -616,13 +620,14 @@ function calculateTwoHopQuoteInfo(
|
||||
: secondHopOrder.makerAmount,
|
||||
takerAmount: isSell
|
||||
? firstHopOrder.takerAmount
|
||||
: firstHopOrder.takerAmount.times(1 + slippage).integerValue(),
|
||||
: firstHopOrder.takerAmount.times(1 + slippage).integerValue(BigNumber.ROUND_UP),
|
||||
totalTakerAmount: isSell
|
||||
? firstHopOrder.takerAmount
|
||||
: firstHopOrder.takerAmount.times(1 + slippage).integerValue(),
|
||||
: firstHopOrder.takerAmount.times(1 + slippage).integerValue(BigNumber.ROUND_UP),
|
||||
feeTakerTokenAmount: constants.ZERO_AMOUNT,
|
||||
protocolFeeInWeiAmount: constants.ZERO_AMOUNT,
|
||||
gas,
|
||||
slippage,
|
||||
},
|
||||
sourceBreakdown: {
|
||||
[ERC20BridgeSource.MultiHop]: {
|
||||
@@ -648,7 +653,7 @@ function getSwapQuoteOrdersBreakdown(fillAmountBySource: { [source: string]: Big
|
||||
return breakdown;
|
||||
}
|
||||
|
||||
function fillResultsToQuoteInfo(fr: QuoteFillResult): SwapQuoteInfo {
|
||||
function fillResultsToQuoteInfo(fr: QuoteFillResult, slippage: number): SwapQuoteInfo {
|
||||
return {
|
||||
makerAmount: fr.totalMakerAssetAmount,
|
||||
takerAmount: fr.takerAssetAmount,
|
||||
@@ -656,6 +661,7 @@ function fillResultsToQuoteInfo(fr: QuoteFillResult): SwapQuoteInfo {
|
||||
feeTakerTokenAmount: fr.takerFeeTakerAssetAmount,
|
||||
protocolFeeInWeiAmount: fr.protocolFeeAmount,
|
||||
gas: fr.gas,
|
||||
slippage,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -208,6 +208,7 @@ export type SwapQuote = MarketBuySwapQuote | MarketSellSwapQuote;
|
||||
* makerTokenAmount: The amount of makerAsset that will be acquired through the swap.
|
||||
* protocolFeeInWeiAmount: The amount of ETH to pay (in WEI) as protocol fee to perform the swap for desired asset.
|
||||
* gas: Amount of estimated gas needed to fill the quote.
|
||||
* slippage: Amount of slippage to allow for.
|
||||
*/
|
||||
export interface SwapQuoteInfo {
|
||||
feeTakerTokenAmount: BigNumber;
|
||||
@@ -216,6 +217,7 @@ export interface SwapQuoteInfo {
|
||||
makerAmount: BigNumber;
|
||||
protocolFeeInWeiAmount: BigNumber;
|
||||
gas: number;
|
||||
slippage: number;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,6 +13,7 @@ import {
|
||||
CRYPTO_COM_ROUTER_BY_CHAIN_ID,
|
||||
CURVE_AVALANCHE_INFOS,
|
||||
CURVE_FANTOM_INFOS,
|
||||
CURVE_ARBITRUM_INFOS,
|
||||
CURVE_MAINNET_INFOS,
|
||||
CURVE_OPTIMISM_INFOS,
|
||||
CURVE_POLYGON_INFOS,
|
||||
@@ -61,6 +62,7 @@ import {
|
||||
UNISWAPV2_ROUTER_BY_CHAIN_ID,
|
||||
WAULTSWAP_ROUTER_BY_CHAIN_ID,
|
||||
XSIGMA_MAINNET_INFOS,
|
||||
SYNAPSE_ARBITRUM_INFOS,
|
||||
} from './constants';
|
||||
import { CurveInfo, ERC20BridgeSource } from './types';
|
||||
|
||||
@@ -175,6 +177,15 @@ export function getCurveInfosForPair(chainId: ChainId, takerToken: string, maker
|
||||
[makerToken, takerToken].filter(v => c.metaTokens?.includes(v)).length > 0),
|
||||
),
|
||||
);
|
||||
case ChainId.Arbitrum:
|
||||
return Object.values(CURVE_OPTIMISM_INFOS).filter(c =>
|
||||
[makerToken, takerToken].every(
|
||||
t =>
|
||||
(c.tokens.includes(t) && c.metaTokens === undefined) ||
|
||||
(c.tokens.includes(t) &&
|
||||
[makerToken, takerToken].filter(v => c.metaTokens?.includes(v)).length > 0),
|
||||
),
|
||||
);
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
@@ -219,6 +230,15 @@ export function getCurveV2InfosForPair(chainId: ChainId, takerToken: string, mak
|
||||
[makerToken, takerToken].filter(v => c.metaTokens?.includes(v)).length > 0),
|
||||
),
|
||||
);
|
||||
case ChainId.Arbitrum:
|
||||
return Object.values(CURVE_ARBITRUM_INFOS).filter(c =>
|
||||
[makerToken, takerToken].every(
|
||||
t =>
|
||||
(c.tokens.includes(t) && c.metaTokens === undefined) ||
|
||||
(c.tokens.includes(t) &&
|
||||
[makerToken, takerToken].filter(v => c.metaTokens?.includes(v)).length > 0),
|
||||
),
|
||||
);
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
@@ -319,6 +339,15 @@ export function getSynapseInfosForPair(chainId: ChainId, takerToken: string, mak
|
||||
[makerToken, takerToken].filter(v => c.metaTokens?.includes(v)).length > 0),
|
||||
),
|
||||
);
|
||||
case ChainId.Arbitrum:
|
||||
return Object.values(SYNAPSE_ARBITRUM_INFOS).filter(c =>
|
||||
[makerToken, takerToken].every(
|
||||
t =>
|
||||
(c.tokens.includes(t) && c.metaTokens === undefined) ||
|
||||
(c.tokens.includes(t) &&
|
||||
[makerToken, takerToken].filter(v => c.metaTokens?.includes(v)).length > 0),
|
||||
),
|
||||
);
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -60,8 +60,9 @@ function valueByChainId<T>(rest: Partial<{ [key in ChainId]: T }>, defaultValue:
|
||||
[ChainId.PolygonMumbai]: defaultValue,
|
||||
[ChainId.Avalanche]: defaultValue,
|
||||
[ChainId.Fantom]: defaultValue,
|
||||
[ChainId.Celo]: defaultValue,
|
||||
[ChainId.Optimism]: defaultValue,
|
||||
[ChainId.Arbitrum]: defaultValue,
|
||||
[ChainId.Celo]: defaultValue,
|
||||
...(rest || {}),
|
||||
};
|
||||
}
|
||||
@@ -194,6 +195,15 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
ERC20BridgeSource.Synapse,
|
||||
]),
|
||||
[ChainId.Arbitrum]: new SourceFilters([
|
||||
ERC20BridgeSource.BalancerV2,
|
||||
ERC20BridgeSource.Curve,
|
||||
ERC20BridgeSource.CurveV2,
|
||||
ERC20BridgeSource.Dodo,
|
||||
ERC20BridgeSource.DodoV2,
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
ERC20BridgeSource.UniswapV3,
|
||||
]),
|
||||
[ChainId.Celo]: new SourceFilters([
|
||||
ERC20BridgeSource.UbeSwap,
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
@@ -206,6 +216,12 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
||||
ERC20BridgeSource.CurveV2,
|
||||
ERC20BridgeSource.MultiHop,
|
||||
]),
|
||||
[ChainId.Arbitrum]: new SourceFilters([
|
||||
ERC20BridgeSource.UniswapV3,
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
ERC20BridgeSource.Synapse,
|
||||
ERC20BridgeSource.MultiHop,
|
||||
]),
|
||||
},
|
||||
new SourceFilters([]),
|
||||
);
|
||||
@@ -338,6 +354,15 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
ERC20BridgeSource.Synapse,
|
||||
]),
|
||||
[ChainId.Arbitrum]: new SourceFilters([
|
||||
ERC20BridgeSource.BalancerV2,
|
||||
ERC20BridgeSource.Curve,
|
||||
ERC20BridgeSource.CurveV2,
|
||||
ERC20BridgeSource.Dodo,
|
||||
ERC20BridgeSource.DodoV2,
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
ERC20BridgeSource.UniswapV3,
|
||||
]),
|
||||
[ChainId.Celo]: new SourceFilters([
|
||||
ERC20BridgeSource.UbeSwap,
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
@@ -350,6 +375,12 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
|
||||
ERC20BridgeSource.CurveV2,
|
||||
ERC20BridgeSource.MultiHop,
|
||||
]),
|
||||
[ChainId.Arbitrum]: new SourceFilters([
|
||||
ERC20BridgeSource.UniswapV3,
|
||||
ERC20BridgeSource.SushiSwap,
|
||||
ERC20BridgeSource.Synapse,
|
||||
ERC20BridgeSource.MultiHop,
|
||||
]),
|
||||
},
|
||||
new SourceFilters([]),
|
||||
);
|
||||
@@ -370,8 +401,10 @@ export const FEE_QUOTE_SOURCES_BY_CHAIN_ID = valueByChainId<ERC20BridgeSource[]>
|
||||
[ChainId.Polygon]: [ERC20BridgeSource.QuickSwap, ERC20BridgeSource.SushiSwap, ERC20BridgeSource.UniswapV3],
|
||||
[ChainId.Avalanche]: [ERC20BridgeSource.Pangolin, ERC20BridgeSource.TraderJoe, ERC20BridgeSource.SushiSwap],
|
||||
[ChainId.Fantom]: [ERC20BridgeSource.SpiritSwap, ERC20BridgeSource.SpookySwap, ERC20BridgeSource.SushiSwap],
|
||||
[ChainId.Arbitrum]: [ERC20BridgeSource.SushiSwap],
|
||||
[ChainId.Celo]: [ERC20BridgeSource.UbeSwap, ERC20BridgeSource.SushiSwap],
|
||||
[ChainId.Optimism]: [ERC20BridgeSource.UniswapV3],
|
||||
[ChainId.Arbitrum]: [ERC20BridgeSource.UniswapV3, ERC20BridgeSource.SushiSwap],
|
||||
},
|
||||
[],
|
||||
);
|
||||
@@ -586,6 +619,31 @@ export const FANTOM_TOKENS = {
|
||||
FRAX: '0xdc301622e621166bd8e82f2ca0a26c13ad0be355',
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
export const ARBITRUM_TOKENS = {
|
||||
WETH: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',
|
||||
USDC: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
|
||||
DAI: '0xda10009cbd5d07dd0cecc66161fc93d7c9000da1',
|
||||
USDT: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
|
||||
WBTC: '0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f',
|
||||
renBTC: '0xdbf31df14b66535af65aac99c32e9ea844e14501',
|
||||
};
|
||||
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
export const ARBITRUM_TOKENS = {
|
||||
WETH: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',
|
||||
WBTC: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
|
||||
USDC: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
|
||||
DAI: '0xda10009cbd5d07dd0cecc66161fc93d7c9000da1',
|
||||
};
|
||||
|
||||
>>>>>>> 732b2ba24 (arbitrum setup)
|
||||
>>>>>>> 5eaa4f825 (arbitrum setup)
|
||||
=======
|
||||
>>>>>>> ec4e5bfe5 (rebased dev->arbitrum)
|
||||
export const OPTIMISM_TOKENS = {
|
||||
WETH: '0x4200000000000000000000000000000000000006',
|
||||
USDC: '0x7f5c764cbc14f9669b88837ca1490cca17c31607',
|
||||
@@ -596,6 +654,17 @@ export const OPTIMISM_TOKENS = {
|
||||
sWETH: '0x121ab82b49b2bc4c7901ca46b8277962b4350204',
|
||||
};
|
||||
|
||||
export const ARBITRUM_TOKENS = {
|
||||
WETH: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',
|
||||
WBTC: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
|
||||
USDC: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
|
||||
DAI: '0xda10009cbd5d07dd0cecc66161fc93d7c9000da1',
|
||||
nETH: '0x3ea9b0ab55f34fb188824ee288ceaefc63cf908e',
|
||||
nUSD: '0x2913e812cf0dcca30fb28e6cac3d2dcff4497688',
|
||||
USDT: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
|
||||
MIM: ' 0xfea7a6a0b346362bf88a9e4a88416b77a57d6c2a',
|
||||
};
|
||||
|
||||
export const CURVE_POOLS = {
|
||||
compound: '0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56', // 0.Compound
|
||||
// 1.USDT is dead
|
||||
@@ -690,9 +759,18 @@ export const CURVE_V2_FANTOM_POOLS = {
|
||||
tricrypto: '0x3a1659ddcf2339be3aea159ca010979fb49155ff',
|
||||
};
|
||||
|
||||
export const CURVE_ARBITRUM_POOLS = {
|
||||
twoPool: '0x7f90122bf0700f9e7e1f688fe926940e8839f353',
|
||||
ren: '0x3e01dd8a5e1fb3481f0f589056b428fc308af0fb',
|
||||
};
|
||||
|
||||
export const CURVE_V2_ARBITRUM_POOLS = {
|
||||
tricrypto: '0x960ea3e3c7fb317332d990873d354e18d7645590',
|
||||
};
|
||||
|
||||
export const CURVE_OPTIMISM_POOLS = {
|
||||
tri: '0x1337bedc9d22ecbe766df105c9623922a27963ec',
|
||||
};
|
||||
}
|
||||
|
||||
export const SWERVE_POOLS = {
|
||||
y: '0x329239599afb305da0a2ec69c58f8a6697f9f88d',
|
||||
@@ -755,7 +833,7 @@ export const SYNAPSE_AVALANCHE_POOLS = {
|
||||
};
|
||||
|
||||
export const SYNAPSE_ARBITRUM_POOLS = {
|
||||
nUSDLP: '0x0db3fe3b770c95a0b99d1ed6f2627933466c0dd8',
|
||||
nUSDLP: '0xadeac0343c2ac62dfe5a5f51e896aefff5ab513e',
|
||||
nETHLP: '0xd70a52248e546a3b260849386410c7170c7bd1e9',
|
||||
};
|
||||
|
||||
@@ -837,6 +915,22 @@ export const DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID = valueByChainId<string[]>(
|
||||
FANTOM_TOKENS.nETH,
|
||||
FANTOM_TOKENS.MIM,
|
||||
],
|
||||
<<<<<<< HEAD
|
||||
[ChainId.Fantom]: [FANTOM_TOKENS.WFTM, FANTOM_TOKENS.WETH, FANTOM_TOKENS.DAI, FANTOM_TOKENS.USDC],
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
[ChainId.Arbitrum]: [ARBITRUM_TOKENS.WETH, ARBITRUM_TOKENS.DAI, ARBITRUM_TOKENS.USDC, ARBITRUM_TOKENS.WBTC],
|
||||
=======
|
||||
[ChainId.Celo]: [CELO_TOKENS.mCUSD, CELO_TOKENS.WETH, CELO_TOKENS.WCELO],
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> 4170f970d (Sushi router celo fix (#376))
|
||||
=======
|
||||
=======
|
||||
[ChainId.Celo]: [CELO_TOKENS.WCELO, CELO_TOKENS.mCUSD, CELO_TOKENS.WETH, CELO_TOKENS.amCUSD, CELO_TOKENS.WBTC],
|
||||
>>>>>>> 1993929be (chore: Celo Update certain tokens since Optics v2 (#390))
|
||||
[ChainId.Optimism]: [OPTIMISM_TOKENS.WETH, OPTIMISM_TOKENS.DAI, OPTIMISM_TOKENS.USDC],
|
||||
>>>>>>> a3c912c2a (feat/optimism [TKR-280] (#385))
|
||||
=======
|
||||
[ChainId.Celo]: [CELO_TOKENS.WCELO, CELO_TOKENS.mCUSD, CELO_TOKENS.WETH, CELO_TOKENS.amCUSD, CELO_TOKENS.WBTC],
|
||||
[ChainId.Optimism]: [
|
||||
OPTIMISM_TOKENS.WETH,
|
||||
@@ -846,6 +940,35 @@ export const DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID = valueByChainId<string[]>(
|
||||
OPTIMISM_TOKENS.nETH,
|
||||
OPTIMISM_TOKENS.sWETH,
|
||||
],
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> 9d08fefa1 (Feat/synapse (#400))
|
||||
=======
|
||||
[ChainId.Arbitrum]: [ARBITRUM_TOKENS.WETH, ARBITRUM_TOKENS.WBTC,ARBITRUM_TOKENS.USDC,ARBITRUM_TOKENS.DAI],
|
||||
>>>>>>> ebd39d2b0 (arbitrum asset swapper)
|
||||
=======
|
||||
[ChainId.Arbitrum]: [ARBITRUM_TOKENS.WETH, ARBITRUM_TOKENS.WBTC,ARBITRUM_TOKENS.USDC,ARBITRUM_TOKENS.DAI],
|
||||
=======
|
||||
[ChainId.Arbitrum]: [ARBITRUM_TOKENS.WETH, ARBITRUM_TOKENS.WBTC, ARBITRUM_TOKENS.USDC, ARBITRUM_TOKENS.DAI],
|
||||
[ChainId.Fantom]: [FANTOM_TOKENS.WFTM, FANTOM_TOKENS.WETH, FANTOM_TOKENS.DAI, FANTOM_TOKENS.USDC],
|
||||
[ChainId.Celo]: [CELO_TOKENS.mCUSD, CELO_TOKENS.WETH, CELO_TOKENS.WCELO],
|
||||
[ChainId.Optimism]: [OPTIMISM_TOKENS.WETH, OPTIMISM_TOKENS.DAI, OPTIMISM_TOKENS.USDC],
|
||||
>>>>>>> 732b2ba24 (arbitrum setup)
|
||||
>>>>>>> 5eaa4f825 (arbitrum setup)
|
||||
=======
|
||||
[ChainId.Arbitrum]: [ARBITRUM_TOKENS.WETH, ARBITRUM_TOKENS.WBTC, ARBITRUM_TOKENS.USDC, ARBITRUM_TOKENS.DAI],
|
||||
>>>>>>> ec4e5bfe5 (rebased dev->arbitrum)
|
||||
=======
|
||||
[ChainId.Arbitrum]: [
|
||||
ARBITRUM_TOKENS.WETH,
|
||||
ARBITRUM_TOKENS.WBTC,
|
||||
ARBITRUM_TOKENS.USDC,
|
||||
ARBITRUM_TOKENS.DAI,
|
||||
ARBITRUM_TOKENS.USDT,
|
||||
],
|
||||
>>>>>>> 7f8ee74ff (arbitrum pls work)
|
||||
},
|
||||
[],
|
||||
);
|
||||
@@ -889,12 +1012,20 @@ export const DEFAULT_TOKEN_ADJACENCY_GRAPH_BY_CHAIN_ID = valueByChainId<TokenAdj
|
||||
[ChainId.Fantom]: new TokenAdjacencyGraphBuilder({
|
||||
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.Fantom],
|
||||
}).build(),
|
||||
<<<<<<< HEAD
|
||||
[ChainId.Arbitrum]: new TokenAdjacencyGraphBuilder({
|
||||
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.Arbitrum],
|
||||
=======
|
||||
[ChainId.Celo]: new TokenAdjacencyGraphBuilder({
|
||||
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.Celo],
|
||||
>>>>>>> 602290925 (fix celo rebase)
|
||||
}).build(),
|
||||
[ChainId.Optimism]: new TokenAdjacencyGraphBuilder({
|
||||
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.Optimism],
|
||||
}).build(),
|
||||
[ChainId.Arbitrum]: new TokenAdjacencyGraphBuilder({
|
||||
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.Arbitrum],
|
||||
}).build(),
|
||||
},
|
||||
new TokenAdjacencyGraphBuilder({ default: [] }).build(),
|
||||
);
|
||||
@@ -910,8 +1041,35 @@ export const NATIVE_FEE_TOKEN_BY_CHAIN_ID = valueByChainId<string>(
|
||||
[ChainId.Polygon]: getContractAddressesForChainOrThrow(ChainId.Polygon).etherToken,
|
||||
[ChainId.Avalanche]: getContractAddressesForChainOrThrow(ChainId.Avalanche).etherToken,
|
||||
[ChainId.Fantom]: getContractAddressesForChainOrThrow(ChainId.Fantom).etherToken,
|
||||
<<<<<<< HEAD
|
||||
[ChainId.Arbitrum]: getContractAddressesForChainOrThrow(ChainId.Arbitrum).etherToken,
|
||||
=======
|
||||
[ChainId.Celo]: getContractAddressesForChainOrThrow(ChainId.Celo).etherToken,
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> 602290925 (fix celo rebase)
|
||||
=======
|
||||
=======
|
||||
>>>>>>> 5eaa4f825 (arbitrum setup)
|
||||
=======
|
||||
>>>>>>> ec4e5bfe5 (rebased dev->arbitrum)
|
||||
[ChainId.Optimism]: getContractAddressesForChainOrThrow(ChainId.Optimism).etherToken,
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> a3c912c2a (feat/optimism [TKR-280] (#385))
|
||||
=======
|
||||
[ChainId.Arbitrum]: getContractAddressesForChainOrThrow(ChainId.Arbitrum).etherToken,
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> ebd39d2b0 (arbitrum asset swapper)
|
||||
=======
|
||||
=======
|
||||
[ChainId.Arbitrum]: getContractAddressesForChainOrThrow(ChainId.Arbitrum).etherToken,
|
||||
[ChainId.Optimism]: getContractAddressesForChainOrThrow(ChainId.Optimism).etherToken,
|
||||
>>>>>>> 732b2ba24 (arbitrum setup)
|
||||
>>>>>>> 5eaa4f825 (arbitrum setup)
|
||||
=======
|
||||
>>>>>>> ec4e5bfe5 (rebased dev->arbitrum)
|
||||
},
|
||||
NULL_ADDRESS,
|
||||
);
|
||||
@@ -1393,6 +1551,19 @@ export const CURVE_V2_FANTOM_INFOS: { [name: string]: CurveInfo } = {
|
||||
}),
|
||||
};
|
||||
|
||||
export const CURVE_ARBITRUM_INFOS: { [name: string]: CurveInfo } = {
|
||||
[CURVE_ARBITRUM_POOLS.ren]: createCurveExchangePool({
|
||||
tokens: [ARBITRUM_TOKENS.WBTC, ARBITRUM_TOKENS.renBTC],
|
||||
pool: CURVE_ARBITRUM_POOLS.ren,
|
||||
gasSchedule: 171e3,
|
||||
}),
|
||||
[CURVE_ARBITRUM_POOLS.twoPool]: createCurveExchangePool({
|
||||
tokens: [ARBITRUM_TOKENS.USDC, ARBITRUM_TOKENS.USDT],
|
||||
pool: CURVE_ARBITRUM_POOLS.twoPool,
|
||||
gasSchedule: 176e3,
|
||||
}),
|
||||
};
|
||||
|
||||
export const CURVE_OPTIMISM_INFOS: { [name: string]: CurveInfo } = {
|
||||
[CURVE_OPTIMISM_POOLS.tri]: createCurveExchangePool({
|
||||
tokens: [OPTIMISM_TOKENS.DAI, OPTIMISM_TOKENS.USDC, OPTIMISM_TOKENS.USDT],
|
||||
@@ -1602,6 +1773,27 @@ export const SYNAPSE_OPTIMISM_INFOS: { [name: string]: CurveInfo } = {
|
||||
},
|
||||
};
|
||||
|
||||
export const SYNAPSE_ARBITRUM_INFOS: { [name: string]: CurveInfo } = {
|
||||
[SYNAPSE_ARBITRUM_POOLS.nETHLP]: {
|
||||
exchangeFunctionSelector: CurveFunctionSelectors.swap,
|
||||
sellQuoteFunctionSelector: CurveFunctionSelectors.calculateSwap,
|
||||
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
||||
poolAddress: SYNAPSE_ARBITRUM_POOLS.nETHLP,
|
||||
tokens: [ARBITRUM_TOKENS.nETH, ARBITRUM_TOKENS.WETH],
|
||||
metaTokens: undefined,
|
||||
gasSchedule: 140e3,
|
||||
},
|
||||
[SYNAPSE_ARBITRUM_POOLS.nUSDLP]: {
|
||||
exchangeFunctionSelector: CurveFunctionSelectors.swap,
|
||||
sellQuoteFunctionSelector: CurveFunctionSelectors.calculateSwap,
|
||||
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
||||
poolAddress: SYNAPSE_ARBITRUM_POOLS.nUSDLP,
|
||||
tokens: [ARBITRUM_TOKENS.USDC, ARBITRUM_TOKENS.USDT, ARBITRUM_TOKENS.nUSD],
|
||||
metaTokens: undefined,
|
||||
gasSchedule: 140e3,
|
||||
},
|
||||
};
|
||||
|
||||
export const SYNAPSE_POLYGON_INFOS: { [name: string]: CurveInfo } = {
|
||||
[SYNAPSE_POLYGON_POOLS.nUSDLP]: {
|
||||
exchangeFunctionSelector: CurveFunctionSelectors.swap,
|
||||
@@ -1776,7 +1968,23 @@ export const SUSHISWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
|
||||
[ChainId.Polygon]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
|
||||
[ChainId.Avalanche]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
|
||||
[ChainId.Fantom]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
[ChainId.Arbitrum]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
|
||||
=======
|
||||
[ChainId.Celo]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
|
||||
>>>>>>> 602290925 (fix celo rebase)
|
||||
=======
|
||||
[ChainId.Celo]: '0x1421bDe4B10e8dd459b3BCb598810B1337D56842',
|
||||
>>>>>>> 6ef4d9504 (Updated Sushiswap router on CELO )
|
||||
=======
|
||||
[ChainId.Celo]: '0x1421bde4b10e8dd459b3bcb598810b1337d56842',
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> 82d42eeed (address to lowercase)
|
||||
=======
|
||||
[ChainId.Arbitrum]: '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506',
|
||||
>>>>>>> ebd39d2b0 (arbitrum asset swapper)
|
||||
},
|
||||
NULL_ADDRESS,
|
||||
);
|
||||
@@ -1875,6 +2083,10 @@ export const DODOV1_CONFIG_BY_CHAIN_ID = valueByChainId(
|
||||
helper: '0xdfaf9584f5d229a9dbe5978523317820a8897c5a',
|
||||
registry: '0x357c5e9cfa8b834edcef7c7aabd8f9db09119d11',
|
||||
},
|
||||
[ChainId.Arbitrum]: {
|
||||
helper: '0xa5f36e822540efd11fcd77ec46626b916b217c3e',
|
||||
registry: '0xbcc3401e16c25eaf4d3fed632ce3288503883b1f',
|
||||
},
|
||||
},
|
||||
{ helper: NULL_ADDRESS, registry: NULL_ADDRESS },
|
||||
);
|
||||
@@ -1896,6 +2108,11 @@ export const DODOV2_FACTORIES_BY_CHAIN_ID = valueByChainId<string[]>(
|
||||
'0x79887f65f83bdf15bcc8736b5e5bcdb48fb8fe13', // Vending Machine
|
||||
'0x43c49f8dd240e1545f147211ec9f917376ac1e87', // Stability Pool
|
||||
],
|
||||
[ChainId.Arbitrum]: [
|
||||
'0xa6cf3d163358af376ec5e8b7cc5e102a05fde63d', // Private Pool
|
||||
'0xda4c4411c55b0785e501332354a036c04833b72b', // Vending Machine
|
||||
'0xc8fe2440744dcd733246a4db14093664defd5a53', // Stability Pool
|
||||
],
|
||||
},
|
||||
[] as string[],
|
||||
);
|
||||
@@ -1994,6 +2211,7 @@ export const BALANCER_V2_VAULT_ADDRESS_BY_CHAIN = valueByChainId<string>(
|
||||
{
|
||||
[ChainId.Mainnet]: '0xba12222222228d8ba445958a75a0704d566bf2c8',
|
||||
[ChainId.Polygon]: '0xba12222222228d8ba445958a75a0704d566bf2c8',
|
||||
[ChainId.Arbitrum]: '0xba12222222228d8ba445958a75a0704d566bf2c8',
|
||||
},
|
||||
NULL_ADDRESS,
|
||||
);
|
||||
@@ -2025,6 +2243,7 @@ export const BALANCER_MAX_POOLS_FETCHED = 3;
|
||||
export const BALANCER_V2_SUBGRAPH_URL_BY_CHAIN = valueByChainId<string>(
|
||||
{
|
||||
[ChainId.Polygon]: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-polygon-v2',
|
||||
[ChainId.Arbitrum]: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-arbitrum-v2',
|
||||
},
|
||||
'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-v2',
|
||||
);
|
||||
@@ -2046,7 +2265,23 @@ export const UNISWAPV3_CONFIG_BY_CHAIN_ID = valueByChainId(
|
||||
quoter: '0x2f9e608fd881861b8916257b76613cb22ee0652c',
|
||||
router: '0x03782388516e94fcd4c18666303601a12aa729ea',
|
||||
},
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
[ChainId.Arbitrum]: {
|
||||
=======
|
||||
=======
|
||||
=======
|
||||
[ChainId.Arbitrum]: {
|
||||
quoter: '0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6',
|
||||
router: '0xe592427a0aece92de3edee1f18e0157c05861564',
|
||||
},
|
||||
>>>>>>> 732b2ba24 (arbitrum setup)
|
||||
>>>>>>> 5eaa4f825 (arbitrum setup)
|
||||
=======
|
||||
>>>>>>> ec4e5bfe5 (rebased dev->arbitrum)
|
||||
[ChainId.Polygon]: {
|
||||
>>>>>>> 813d703d1 (feat: UniswapV3 on Polygon (#382))
|
||||
quoter: '0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6',
|
||||
router: '0xe592427a0aece92de3edee1f18e0157c05861564',
|
||||
},
|
||||
@@ -2054,6 +2289,10 @@ export const UNISWAPV3_CONFIG_BY_CHAIN_ID = valueByChainId(
|
||||
quoter: '0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6',
|
||||
router: '0xe592427a0aece92de3edee1f18e0157c05861564',
|
||||
},
|
||||
[ChainId.Arbitrum]: {
|
||||
quoter: '0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6',
|
||||
router: '0xe592427a0aece92de3edee1f18e0157c05861564',
|
||||
},
|
||||
},
|
||||
{ quoter: NULL_ADDRESS, router: NULL_ADDRESS },
|
||||
);
|
||||
@@ -2238,7 +2477,7 @@ export const VIP_ERC20_BRIDGE_SOURCES_BY_CHAIN_ID = valueByChainId<ERC20BridgeSo
|
||||
|
||||
const uniswapV2CloneGasSchedule = (fillData?: FillData) => {
|
||||
// TODO: Different base cost if to/from ETH.
|
||||
let gas = 90e3;
|
||||
let gas = 209e3;
|
||||
const path = (fillData as UniswapV2FillData).tokenAddressPath;
|
||||
if (path.length > 2) {
|
||||
gas += (path.length - 2) * 60e3; // +60k for each hop.
|
||||
@@ -2334,7 +2573,7 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
|
||||
return gas;
|
||||
},
|
||||
[ERC20BridgeSource.UniswapV3]: (fillData?: FillData) => {
|
||||
let gas = 100e3;
|
||||
let gas = 280e3;
|
||||
const path = (fillData as UniswapV3FillData).tokenAddressPath;
|
||||
if (path.length > 2) {
|
||||
gas += (path.length - 2) * 32e3; // +32k for each hop.
|
||||
|
||||
@@ -125,6 +125,7 @@ describe('ExchangeProxySwapQuoteConsumer', () => {
|
||||
gas: Math.floor(Math.random() * 8e6),
|
||||
protocolFeeInWeiAmount: getRandomAmount(),
|
||||
feeTakerTokenAmount: getRandomAmount(),
|
||||
slippage: 0,
|
||||
},
|
||||
worstCaseQuoteInfo: {
|
||||
makerAmount: makerTokenFillAmount,
|
||||
@@ -133,6 +134,7 @@ describe('ExchangeProxySwapQuoteConsumer', () => {
|
||||
gas: Math.floor(Math.random() * 8e6),
|
||||
protocolFeeInWeiAmount: getRandomAmount(),
|
||||
feeTakerTokenAmount: getRandomAmount(),
|
||||
slippage: 0,
|
||||
},
|
||||
makerAmountPerEth: getRandomInteger(1, 1e9),
|
||||
takerAmountPerEth: getRandomInteger(1, 1e9),
|
||||
|
||||
@@ -24,6 +24,7 @@ export async function getFullyFillableSwapQuoteWithNoFeesAsync(
|
||||
totalTakerAmount: takerAmount,
|
||||
protocolFeeInWeiAmount: protocolFeePerOrder.times(orders.length),
|
||||
gas: 200e3,
|
||||
slippage: 0,
|
||||
};
|
||||
|
||||
const breakdown = {
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
[
|
||||
{
|
||||
"version": "6.12.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add Support for Arbitrum One Mainnet"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "6.11.0",
|
||||
"changes": [
|
||||
|
||||
@@ -419,6 +419,48 @@
|
||||
"positiveSlippageFeeTransformer": "0xe87d69b285005cc82b53b844322652c49ed64600"
|
||||
}
|
||||
},
|
||||
"42161": {
|
||||
"erc20Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc721Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"zrxToken": "0x0000000000000000000000000000000000000000",
|
||||
"etherToken": "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83",
|
||||
"exchangeV2": "0x0000000000000000000000000000000000000000",
|
||||
"exchange": "0x0000000000000000000000000000000000000000",
|
||||
"assetProxyOwner": "0x0000000000000000000000000000000000000000",
|
||||
"zeroExGovernor": "0x0000000000000000000000000000000000000000",
|
||||
"forwarder": "0x0000000000000000000000000000000000000000",
|
||||
"coordinatorRegistry": "0x0000000000000000000000000000000000000000",
|
||||
"coordinator": "0x0000000000000000000000000000000000000000",
|
||||
"multiAssetProxy": "0x0000000000000000000000000000000000000000",
|
||||
"staticCallProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc1155Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"devUtils": "0x0000000000000000000000000000000000000000",
|
||||
"zrxVault": "0x0000000000000000000000000000000000000000",
|
||||
"staking": "0x0000000000000000000000000000000000000000",
|
||||
"stakingProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeSampler": "0x0000000000000000000000000000000000000000",
|
||||
"chaiBridge": "0x0000000000000000000000000000000000000000",
|
||||
"dydxBridge": "0x0000000000000000000000000000000000000000",
|
||||
"godsUnchainedValidator": "0x0000000000000000000000000000000000000000",
|
||||
"broker": "0x0000000000000000000000000000000000000000",
|
||||
"chainlinkStopLimit": "0x0000000000000000000000000000000000000000",
|
||||
"maximumGasPrice": "0x0000000000000000000000000000000000000000",
|
||||
"dexForwarderBridge": "0x0000000000000000000000000000000000000000",
|
||||
"exchangeProxyGovernor": "0xf760c5b88d970d6f97e64e264dac5a3767dafd74",
|
||||
"exchangeProxy": "0xdef189deaef76e379df891899eb5a00a94cbc250",
|
||||
"exchangeProxyTransformerDeployer": "0x47f01db18a38261e4cb153bae6db7d3743acb33c",
|
||||
"exchangeProxyFlashWallet": "0xb4d961671cadfed687e040b076eee29840c142e5",
|
||||
"exchangeProxyLiquidityProviderSandbox": "0xca64d4225804f2ae069760cb5ff2f1d8bac1c2f9",
|
||||
"zrxTreasury": "0x0000000000000000000000000000000000000000",
|
||||
"transformers": {
|
||||
"wethTransformer": "0x9b6aa8f26a92108e7d1f66373d757bb955112703",
|
||||
"payTakerTransformer": "0x32df54951d33d7460e15fa59b1fcc262183ce4c2",
|
||||
"affiliateFeeTransformer": "0x67efa679a4b56c38713d478e649c88247f4f8e88",
|
||||
"fillQuoteTransformer": "0x71de60a1b160094a3f6c7e1b883ff9337d639131",
|
||||
"positiveSlippageFeeTransformer": "0xe87d69b285005cc82b53b844322652c49ed64600"
|
||||
}
|
||||
},
|
||||
"42220": {
|
||||
"erc20Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc721Proxy": "0x0000000000000000000000000000000000000000",
|
||||
@@ -502,5 +544,47 @@
|
||||
"fillQuoteTransformer": "0x3543ef833d28b7e983c293856561f21a7f089f1d",
|
||||
"positiveSlippageFeeTransformer": "0xb11e14565dfbeb702dea9bc0cb47f1a8b32f4783"
|
||||
}
|
||||
},
|
||||
"42161": {
|
||||
"erc20Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc721Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"zrxToken": "0x0000000000000000000000000000000000000000",
|
||||
"etherToken": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
||||
"exchangeV2": "0x0000000000000000000000000000000000000000",
|
||||
"exchange": "0x0000000000000000000000000000000000000000",
|
||||
"assetProxyOwner": "0x0000000000000000000000000000000000000000",
|
||||
"zeroExGovernor": "0x0000000000000000000000000000000000000000",
|
||||
"forwarder": "0x0000000000000000000000000000000000000000",
|
||||
"coordinatorRegistry": "0x0000000000000000000000000000000000000000",
|
||||
"coordinator": "0x0000000000000000000000000000000000000000",
|
||||
"multiAssetProxy": "0x0000000000000000000000000000000000000000",
|
||||
"staticCallProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc1155Proxy": "0x0000000000000000000000000000000000000000",
|
||||
"devUtils": "0x0000000000000000000000000000000000000000",
|
||||
"zrxVault": "0x0000000000000000000000000000000000000000",
|
||||
"staking": "0x0000000000000000000000000000000000000000",
|
||||
"stakingProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeSampler": "0x0000000000000000000000000000000000000000",
|
||||
"chaiBridge": "0x0000000000000000000000000000000000000000",
|
||||
"dydxBridge": "0x0000000000000000000000000000000000000000",
|
||||
"godsUnchainedValidator": "0x0000000000000000000000000000000000000000",
|
||||
"broker": "0x0000000000000000000000000000000000000000",
|
||||
"chainlinkStopLimit": "0x0000000000000000000000000000000000000000",
|
||||
"maximumGasPrice": "0x0000000000000000000000000000000000000000",
|
||||
"dexForwarderBridge": "0x0000000000000000000000000000000000000000",
|
||||
"exchangeProxyGovernor": "0x1fe80d5ad9464dba2d60b88e449305f184823f8a",
|
||||
"exchangeProxy": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
|
||||
"exchangeProxyTransformerDeployer": "0x29f80c1f685e19ae1807063eda432f431ac623d0",
|
||||
"exchangeProxyFlashWallet": "0xdb6f1920a889355780af7570773609bd8cb1f498",
|
||||
"exchangeProxyLiquidityProviderSandbox": "0x0000000000000000000000000000000000000000",
|
||||
"zrxTreasury": "0x0000000000000000000000000000000000000000",
|
||||
"transformers": {
|
||||
"wethTransformer": "0x10e968968f49dd66a5efeebbb2edcb9c49c4fc49",
|
||||
"payTakerTransformer": "0xae3e8cf7bf340d7084f312dfae2aa8b01c885b02",
|
||||
"affiliateFeeTransformer": "0x05a24978471869327904ea13da3c4322128e2aaa",
|
||||
"fillQuoteTransformer": "0x5a653323c2a47a8e1b69fb3d0f15858bfc7fe205",
|
||||
"positiveSlippageFeeTransformer": "0xD56B9C014b45ED95e2a048A0C28121Db30265F13"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,8 +54,10 @@ export enum ChainId {
|
||||
PolygonMumbai = 80001,
|
||||
Avalanche = 43114,
|
||||
Fantom = 250,
|
||||
Arbitrum = 42161,
|
||||
Celo = 42220,
|
||||
Optimism = 10,
|
||||
Arbitrum = 42161,
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -738,6 +738,7 @@
|
||||
"@0x/contracts-asset-proxy@^3.7.19":
|
||||
version "3.7.19"
|
||||
resolved "https://registry.yarnpkg.com/@0x/contracts-asset-proxy/-/contracts-asset-proxy-3.7.19.tgz#ee621a233f4d77b439c74c5b8d70db2e1ed001c4"
|
||||
integrity sha512-6lTgz8JdmceaSnqpJrbyKJXUIyAA2HZrXel+ZWpgMtO7qaSSQDRUcWUBwejTE588BcVxhNFQ7tHvOK3/QGnpHw==
|
||||
dependencies:
|
||||
"@0x/base-contract" "^6.4.0"
|
||||
"@0x/contracts-erc1155" "^2.1.37"
|
||||
|
||||
Reference in New Issue
Block a user