diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 75cf442b..00000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-version: 2
-jobs:
- build:
- docker:
- - image: cimg/node:14.16.1
- working_directory: ~/balancer
- steps:
- - checkout
- - restore_cache:
- keys:
- - dependency-cache-{{ checksum "package.json" }}
- - run:
- name: Install Dependencies
- command: yarn install --quiet
- - save_cache:
- key: dependency-cache-{{ checksum "package.json" }}
- paths:
- - node_modules
- - save_cache:
- key: balancer-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/balancer
- - run:
- name: Run Lint
- command: yarn lint
- - run:
- name: Run build
- command: yarn build
- - run:
- name: Run tests
- command: yarn test
- - run:
- name: Coveralls coverage
- command: yarn coverage
diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml
new file mode 100644
index 00000000..34ed53ec
--- /dev/null
+++ b/.github/workflows/checks.yaml
@@ -0,0 +1,70 @@
+name: Checks
+
+on:
+ - pull_request
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 14.16.1
+ - name: Cache
+ uses: actions/cache@v2
+ id: cache
+ with:
+ path: '**/node_modules'
+ key: yarn-v1-${{ hashFiles('**/yarn.lock') }}
+ - name: Install
+ run: yarn --immutable
+ if: steps.cache.outputs.cache-hit != 'true'
+ - name: Lint
+ run: yarn lint
+
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 14.16.1
+ - name: Cache
+ uses: actions/cache@v2
+ id: cache
+ with:
+ path: '**/node_modules'
+ key: yarn-v1-${{ hashFiles('**/yarn.lock') }}
+ - name: Install
+ run: yarn --immutable
+ if: steps.cache.outputs.cache-hit != 'true'
+ - name: Build
+ run: yarn build
+
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 14.16.1
+ - name: Cache
+ uses: actions/cache@v2
+ id: cache
+ with:
+ path: '**/node_modules'
+ key: yarn-v1-${{ hashFiles('**/yarn.lock') }}
+ - name: Install
+ run: yarn --immutable
+ if: steps.cache.outputs.cache-hit != 'true'
+ - name: Compile
+ run: yarn build
+ - name: Test
+ run: yarn test
+env:
+ CI: true
+ INFURA: ${{ secrets.INFURA }}
diff --git a/README.md b/README.md
index f39088f1..05e63a83 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,4 @@
-
-
-
-
-
-
diff --git a/package.json b/package.json
index 98fde988..7177535e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@balancer-labs/sor",
- "version": "4.0.1-beta.18",
+ "version": "4.1.0-beta.0",
"license": "GPL-3.0-only",
"main": "dist/index.js",
"module": "dist/index.esm.js",
@@ -9,7 +9,6 @@
"build": "rollup -c",
"prepack": "yarn build",
"test": "TS_NODE_PROJECT='tsconfig.testing.json' nyc mocha -r ts-node/register test/*.spec.ts --timeout 20000",
- "coverage": "nyc report --reporter=text-lcov | coveralls",
"lint": "eslint ./src ./test --ext .ts --max-warnings 0",
"node": "npx hardhat node --tsconfig tsconfig.testing.json --fork $(grep ALCHEMY_URL .env | cut -d '=' -f2) --fork-block-number 14828550"
},
@@ -48,7 +47,6 @@
"@typescript-eslint/parser": "^4.29.2",
"bignumber.js": "^9.0.1",
"chai": "^4.2.0",
- "coveralls": "^3.0.9",
"dotenv": "^8.2.0",
"eslint": "^7.32.0",
"eslint-plugin-mocha-no-only": "^1.1.1",
diff --git a/src/routeProposal/filtering.ts b/src/routeProposal/filtering.ts
index 3702f2df..da507f71 100644
--- a/src/routeProposal/filtering.ts
+++ b/src/routeProposal/filtering.ts
@@ -17,6 +17,16 @@ import { Zero } from '@ethersproject/constants';
const BOOSTED_PATHS_MAX_LENGTH = 7;
+interface edgeDict {
+ [node: string]: [string, string, string][];
+}
+
+interface treeEdge {
+ edge: [string, string, string];
+ parentIndices: [number, number];
+ visitedNodes: string[];
+}
+
export const filterPoolsByType = (
pools: SubgraphPoolBase[],
poolTypeFilter: PoolFilter
@@ -166,17 +176,20 @@ export function producePaths(
// We build this tree by adding at each step all the possible continuations for
// each branch. When a branch reaches tokenOut, we write down the corresponding path.
// We only allow paths up to length BOOSTED_PATHS_MAX_LENGTH = 7
-
export function getBoostedGraph(
tokenIn: string,
tokenOut: string,
poolsAllDict: PoolDictionary,
config: SorConfig
): edgeDict {
- const wethAddress: string = config.weth.toLowerCase();
const graphPoolsSet: Set = new Set();
const linearPools: PoolBase[] = [];
const phantomPools: PoolBase[] = [];
+ const connectingTokens = config.connectingTokens
+ ? config.connectingTokens.map(
+ (connectingToken) => connectingToken.address
+ )
+ : [];
// Here we add all linear pools, take note of phantom pools,
// add LBP pools with tokenIn or tokenOut and their corresponding
// highest liquidity WETH connections
@@ -194,73 +207,34 @@ export function getBoostedGraph(
if (tokensList.includes(pool.address)) {
phantomPools.push(pool);
}
- if (config.lbpRaisingTokens) {
- const raisingTokens = config.lbpRaisingTokens.map((address) =>
- address.toLowerCase()
+ if (config.lbpRaisingTokens && pool.isLBP) {
+ handleLBPCase(
+ graphPoolsSet,
+ config.lbpRaisingTokens,
+ pool,
+ tokenIn,
+ tokenOut,
+ connectingTokens,
+ poolsAllDict
);
- if (pool.isLBP) {
- const raisingTokenIn: string | undefined = getRaisingToken(
- pool,
- raisingTokens,
- tokenIn
- );
- if (raisingTokenIn) {
- graphPoolsSet.add(pool);
- if (raisingTokenIn !== wethAddress) {
- const bestRaisingTokenInToWeth =
- getHighestLiquidityPool(
- raisingTokenIn,
- wethAddress,
- poolsAllDict
- );
- if (bestRaisingTokenInToWeth) {
- graphPoolsSet.add(
- poolsAllDict[bestRaisingTokenInToWeth]
- );
- }
- }
- }
- const raisingTokenOut: string | undefined = getRaisingToken(
- pool,
- raisingTokens,
- tokenOut
- );
- if (raisingTokenOut) {
- graphPoolsSet.add(pool);
- if (raisingTokenOut !== wethAddress) {
- const bestWethToRaisingTokenOut =
- getHighestLiquidityPool(
- wethAddress,
- raisingTokenOut,
- poolsAllDict
- );
- if (bestWethToRaisingTokenOut) {
- graphPoolsSet.add(
- poolsAllDict[bestWethToRaisingTokenOut]
- );
- }
- }
- }
- }
}
}
}
- // add highest liquidity pools with tokenIn and weth or tokenOut and weth
- const bestTokenInToWeth = getHighestLiquidityPool(
- tokenIn,
- wethAddress,
- poolsAllDict
- );
- if (bestTokenInToWeth) {
- graphPoolsSet.add(poolsAllDict[bestTokenInToWeth]);
- }
- const bestWethToTokenOut = getHighestLiquidityPool(
- wethAddress,
- tokenOut,
- poolsAllDict
- );
- if (bestWethToTokenOut) {
- graphPoolsSet.add(poolsAllDict[bestWethToTokenOut]);
+ // add best pools tokenIn -> connectingToken and connectingToken -> tokenOut
+ // these can be part of a longer path so do not rely on being directly connected
+ for (const connectingToken of connectingTokens) {
+ addMostLiquidPoolToSet(
+ tokenIn,
+ connectingToken,
+ poolsAllDict,
+ graphPoolsSet
+ );
+ addMostLiquidPoolToSet(
+ connectingToken,
+ tokenOut,
+ poolsAllDict,
+ graphPoolsSet
+ );
}
if (linearPools.length == 0) return {};
const linearPoolsAddresses = linearPools.map((pool) => pool.address);
@@ -294,10 +268,6 @@ export function getBoostedGraph(
return edgeDict;
}
-interface edgeDict {
- [node: string]: [string, string, string][];
-}
-
function getNodesAndEdges(pools: PoolBase[]): edgeDict {
const edgesFromNode: edgeDict = {};
for (const pool of pools) {
@@ -319,12 +289,6 @@ function getNodesAndEdges(pools: PoolBase[]): edgeDict {
return edgesFromNode;
}
-interface treeEdge {
- edge: [string, string, string];
- parentIndices: [number, number];
- visitedNodes: string[];
-}
-
export function getBoostedPaths(
tokenIn: string,
tokenOut: string,
@@ -645,3 +609,68 @@ function getRaisingToken(
}
return theOtherToken;
}
+
+function handleLBPCase(
+ graphPoolsSet: Set,
+ lbpRaisingTokens: string[],
+ poolLbp: PoolBase,
+ tokenIn: string,
+ tokenOut: string,
+ connectingTokens: string[],
+ poolsAllDict: PoolDictionary
+) {
+ // Tokens that will be used as LBP Base Token, e.g. USDC/DAI/WETH
+ const raisingTokens = lbpRaisingTokens.map((address) =>
+ address.toLowerCase()
+ );
+
+ if (raisingTokens.length === 0) return;
+
+ // Assuming tokenIn is the lbpToken find the corresponding base token if it exists
+ const raisingTokenIn: string | undefined = getRaisingToken(
+ poolLbp,
+ raisingTokens,
+ tokenIn
+ );
+ const raisingTokenOut: string | undefined = getRaisingToken(
+ poolLbp,
+ raisingTokens,
+ tokenOut
+ );
+ if (!raisingTokenIn && !raisingTokenOut) return;
+
+ // Add the LBP pool to the graph
+ graphPoolsSet.add(poolLbp);
+
+ // For each connecting token add most liquid pools with raisingToken and raisingTokenOut
+ for (const connectingToken of connectingTokens) {
+ if (raisingTokenIn && raisingTokenIn !== connectingToken) {
+ // raisingToken>[Pool]>connectingToken
+ addMostLiquidPoolToSet(
+ raisingTokenIn,
+ connectingToken,
+ poolsAllDict,
+ graphPoolsSet
+ );
+ }
+ if (raisingTokenOut && raisingTokenOut !== connectingToken) {
+ // connectingToken>[Pool]>raisingToken
+ addMostLiquidPoolToSet(
+ connectingToken,
+ raisingTokenOut,
+ poolsAllDict,
+ graphPoolsSet
+ );
+ }
+ }
+}
+
+function addMostLiquidPoolToSet(
+ tokenIn: string,
+ tokenOut: string,
+ pools: PoolDictionary,
+ graphPools: Set
+): void {
+ const pool = getHighestLiquidityPool(tokenIn, tokenOut, pools);
+ if (pool) graphPools.add(pools[pool]);
+}
diff --git a/src/types.ts b/src/types.ts
index c79a85f2..71564943 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -5,6 +5,7 @@ export interface SorConfig {
chainId: number;
vault: string;
weth: string;
+ connectingTokens?: { symbol: string; address: string }[];
staBal3Pool?: { id: string; address: string };
usdcConnectingPool?: { id: string; usdc: string };
wETHwstETH?: { id: string; address: string };
diff --git a/test/boostedPaths.spec.ts b/test/boostedPaths.spec.ts
index 60623f9e..7eeab324 100644
--- a/test/boostedPaths.spec.ts
+++ b/test/boostedPaths.spec.ts
@@ -441,6 +441,32 @@ describe('generic boosted pools, path creation test', () => {
assert.equal(paths.length, 4);
});
});
+ context('using an alternative connecting token', () => {
+ const USDC = '0xe22da380ee6b445bb8273c81944adeb6e8450422'; // USDC
+ const GOLD = '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbb';
+ it('USDC to GOLD', () => {
+ const [, , boostedPaths] = getPaths(
+ USDC,
+ GOLD,
+ SwapTypes.SwapExactIn,
+ genericBoostedPools.pools,
+ maxPools,
+ sorConfigTest
+ );
+ assert.equal(boostedPaths.length, 2);
+ });
+ it('GOLD to USDC', () => {
+ const [, , boostedPaths] = getPaths(
+ GOLD,
+ USDC,
+ SwapTypes.SwapExactIn,
+ genericBoostedPools.pools,
+ maxPools,
+ sorConfigTest
+ );
+ assert.equal(boostedPaths.length, 2);
+ });
+ });
});
describe('generic boosted pools with wstETH, path creation test', () => {
diff --git a/test/candidatePaths.spec.ts b/test/candidatePaths.spec.ts
index 4e82a8e8..d49fee68 100644
--- a/test/candidatePaths.spec.ts
+++ b/test/candidatePaths.spec.ts
@@ -298,6 +298,12 @@ describe('Tests pools filtering and path processing', () => {
chainId: 1,
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+ ],
bbausd: {
id: '0x7b50775383d3d6f0215a8f290f2c9e2eebbeceb20000000000000000000000fe',
address: '0x7b50775383d3d6f0215a8f290f2c9e2eebbeceb2',
diff --git a/test/composableStablePool.spec.ts b/test/composableStablePool.spec.ts
index 8f575005..52b5818a 100644
--- a/test/composableStablePool.spec.ts
+++ b/test/composableStablePool.spec.ts
@@ -19,8 +19,8 @@ describe('composable stable pool', () => {
// parsePoolPairData contains pool's allBalances and allBalancesScaled
// both already multiplied by the price rates.
const poolPairData = composableStablePool.parsePoolPairData(
- ADDRESSES[Network.MAINNET].bbausdt2.address,
- ADDRESSES[Network.MAINNET].bbausd2.address
+ ADDRESSES[Network.MAINNET].bbausdt.address,
+ ADDRESSES[Network.MAINNET].bbausd.address
);
it('token -> BPT spot price with no rate', () => {
// spot prices
diff --git a/test/lib/constants.ts b/test/lib/constants.ts
index f02f68bb..cc958ff0 100644
--- a/test/lib/constants.ts
+++ b/test/lib/constants.ts
@@ -11,6 +11,16 @@ export const sorConfigTest: SorConfig = {
chainId: 99,
weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
vault: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+ {
+ symbol: 'conn',
+ address: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
+ },
+ ],
wETHwstETH: {
id: 'wETH-wstETH',
address: '0x0000000000000000000000000000000000222222',
@@ -25,6 +35,12 @@ export const sorConfigTestStaBal = {
chainId: 99,
weth: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
vault: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
+ },
+ ],
usdcConnectingPool: {
id: 'usdcConnecting',
usdc: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
@@ -38,18 +54,40 @@ export const sorConfigTestStaBal = {
export const sorConfigEth: SorConfig = {
chainId: 1,
weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ connectingTokens: [
+ {
+ symbol: 'wstEth',
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+ {
+ symbol: 'wEth',
+ address: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',
+ },
+ ],
vault: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
};
export const sorConfigKovan: SorConfig = {
chainId: 42,
weth: '0xdFCeA9088c8A88A76FF74892C1457C17dfeef9C1',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xdFCeA9088c8A88A76FF74892C1457C17dfeef9C1',
+ },
+ ],
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
};
export const sorConfigFullKovan: SorConfig = {
chainId: 42,
weth: '0xdFCeA9088c8A88A76FF74892C1457C17dfeef9C1',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xdFCeA9088c8A88A76FF74892C1457C17dfeef9C1',
+ },
+ ],
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
lbpRaisingTokens: [
'0xdfcea9088c8a88a76ff74892c1457c17dfeef9c1',
diff --git a/test/linear.spec.ts b/test/linear.spec.ts
index 5b5e8b4b..04b3af1d 100644
--- a/test/linear.spec.ts
+++ b/test/linear.spec.ts
@@ -198,6 +198,12 @@ describe('linear pool tests', () => {
const config = {
chainId: 99,
weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+ ],
vault: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
};
it('getPathsUsingLinearPool return empty paths', () => {
diff --git a/test/testData/boostedPools/genericBoosted.json b/test/testData/boostedPools/genericBoosted.json
index fa3c39cb..59391e40 100644
--- a/test/testData/boostedPools/genericBoosted.json
+++ b/test/testData/boostedPools/genericBoosted.json
@@ -709,6 +709,70 @@
"totalShares": "14473.092928301396719020",
"totalWeight": "0",
"wrappedIndex": 0
+ },
+ {
+ "address": "0x000000000000000000000000000000000000aaaa",
+ "id": "weightedConn-BBausd",
+ "poolType": "Weighted",
+ "publicSwap": true,
+ "swapFee": "0.01",
+ "swapEnabled": true,
+ "tokens": [
+ {
+ "address": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "balance": "100000.000000",
+ "decimals": 18,
+ "weight": "50",
+ "symbol": "CONN",
+ "priceRate": "1"
+ },
+ {
+ "address": "0x8fd162f338b770f7e879030830cde9173367f301",
+ "balance": "20000000.78213445",
+ "decimals": 18,
+ "weight": "50",
+ "symbol": "bbaUSD",
+ "priceRate": "1"
+ }
+ ],
+ "tokensList": [
+ "0x8fd162f338b770f7e879030830cde9173367f301",
+ "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ ],
+ "totalWeight": "100",
+ "totalShares": "10000"
+ },
+ {
+ "address": "0x000000000000000000000000000000000000aaaa",
+ "id": "weightedConn-GOLD",
+ "poolType": "Weighted",
+ "publicSwap": true,
+ "swapFee": "0.01",
+ "swapEnabled": true,
+ "tokens": [
+ {
+ "address": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "balance": "100000.000000",
+ "decimals": 18,
+ "weight": "50",
+ "symbol": "CONN",
+ "priceRate": "1"
+ },
+ {
+ "address": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbb",
+ "balance": "20000000.78213445",
+ "decimals": 18,
+ "weight": "50",
+ "symbol": "GOLD",
+ "priceRate": "1"
+ }
+ ],
+ "tokensList": [
+ "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbb",
+ "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ ],
+ "totalWeight": "100",
+ "totalShares": "10000"
}
]
}
diff --git a/test/testScripts/constants.ts b/test/testScripts/constants.ts
index fdb59f0f..6345a3fe 100644
--- a/test/testScripts/constants.ts
+++ b/test/testScripts/constants.ts
@@ -14,6 +14,16 @@ export const SOR_CONFIG: Record = {
chainId: Network.MAINNET, //1
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+ {
+ symbol: 'DOLA',
+ address: '0x865377367054516e17014CcdED1e7d814EDC9ce4',
+ },
+ ],
wETHwstETH: {
id: '0x32296969ef14eb0c6d29669c550d4a0449130230000200000000000000000080',
address: '0x32296969ef14eb0c6d29669c550d4a0449130230',
@@ -23,6 +33,12 @@ export const SOR_CONFIG: Record = {
chainId: Network.KOVAN, //42
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
weth: '0xdFCeA9088c8A88A76FF74892C1457C17dfeef9C1',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0xdFCeA9088c8A88A76FF74892C1457C17dfeef9C1',
+ },
+ ],
staBal3Pool: {
id: '0x8fd162f338b770f7e879030830cde9173367f3010000000000000000000004d8',
address: '0x8fd162f338b770f7e879030830cde9173367f301',
@@ -32,16 +48,38 @@ export const SOR_CONFIG: Record = {
chainId: Network.GOERLI, //5
vault: '0x65748E8287Ce4B9E6D83EE853431958851550311',
weth: '0x9A1000D492d40bfccbc03f413A48F5B6516Ec0Fd',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0x9A1000D492d40bfccbc03f413A48F5B6516Ec0Fd',
+ },
+ ],
},
[Network.POLYGON]: {
chainId: Network.POLYGON, //137
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
weth: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
+ },
+ {
+ symbol: 'bbrz2',
+ address: '0xe22483774bd8611be2ad2f4194078dac9159f4ba',
+ }, // Joins Stables<>BRZ via https://app.balancer.fi/#/polygon/pool/0x4a0b73f0d13ff6d43e304a174697e3d5cfd310a400020000000000000000091c
+ ],
},
[Network.ARBITRUM]: {
chainId: Network.ARBITRUM, //42161
vault: '0xBA12222222228d8Ba445958a75a0704d566BF2C8',
weth: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
+ connectingTokens: [
+ {
+ symbol: 'weth',
+ address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
+ },
+ ],
},
};
@@ -124,16 +162,21 @@ export const ADDRESSES = {
decimals: 18,
symbol: 'wSTETH',
},
- bbausd: {
+ bbausdOld: {
address: '0x7b50775383d3d6f0215a8f290f2c9e2eebbeceb2',
decimals: 18,
symbol: 'bbausd',
},
- bbausdc: {
+ bbausdcOld: {
address: '0x9210F1204b5a24742Eba12f710636D76240dF3d0',
decimals: 18,
symbol: 'bbausdc',
},
+ bbausdc: {
+ address: '0x82698aecc9e28e9bb27608bd52cf57f704bd1b83',
+ decimals: 18,
+ symbol: 'bbausdc',
+ },
bbadai: {
address: '0x804cdb9116a10bb78768d3252355a1b18067bf8f',
decimals: 18,
@@ -149,20 +192,20 @@ export const ADDRESSES = {
decimals: 6,
symbol: 'waUSDC',
},
- bbausd2: {
+ bbausd: {
address: '0xA13a9247ea42D743238089903570127DdA72fE44',
decimals: 18,
- symbol: 'bbausd2',
+ symbol: 'bbausd',
},
bbadai2: {
address: '0xae37d54ae477268b9997d4161b96b8200755935c',
decimals: 18,
symbol: 'bb-a-dai2',
},
- bbausdt2: {
+ bbausdt: {
address: '0x2F4eb100552ef93840d5aDC30560E5513DFfFACb',
decimals: 18,
- symbol: 'bb-a-usdt2',
+ symbol: 'bb-a-usdt',
},
RPL: {
address: '0xD33526068D116cE69F19A9ee46F0bd304F21A51f',
@@ -189,11 +232,16 @@ export const ADDRESSES = {
decimals: 6,
symbol: 'USDT',
},
- bbausdt: {
+ bbausdtOld: {
address: '0x2f4eb100552ef93840d5adc30560e5513dfffacb',
decimals: 18,
symbol: 'bbaUSDT',
},
+ DBR: {
+ address: '0xAD038Eb671c44b853887A7E32528FaB35dC5D710',
+ decimals: 18,
+ symbol: 'DBR',
+ },
},
[Network.KOVAN]: {
// Visit https://balancer-faucet.on.fleek.co/#/faucet for test tokens
@@ -372,6 +420,11 @@ export const ADDRESSES = {
decimals: 18,
symbol: 'bb-am-usd',
},
+ brz: {
+ address: '0x491a4eb4f1fc3bff8e1d2fc856a6a46663ad556f',
+ decimals: 4,
+ symbol: 'BRZ',
+ },
},
[Network.ARBITRUM]: {
WETH: {
diff --git a/test/testScripts/swapExample.ts b/test/testScripts/swapExample.ts
index a95f81b7..7a3b0c40 100644
--- a/test/testScripts/swapExample.ts
+++ b/test/testScripts/swapExample.ts
@@ -58,17 +58,17 @@ function setUp(networkId: Network, provider: JsonRpcProvider): SOR {
}
export async function swap(): Promise {
- const networkId = Network.MAINNET;
+ const networkId = Network.POLYGON;
const provider = new JsonRpcProvider(PROVIDER_URLS[networkId]);
// gasPrice is used by SOR as a factor to determine how many pools to swap against.
// i.e. higher cost means more costly to trade against lots of different pools.
const gasPrice = BigNumber.from('14000000000');
// This determines the max no of pools the SOR will use to swap.
const maxPools = 4;
- const tokenIn = ADDRESSES[networkId].USDT;
- const tokenOut = ADDRESSES[networkId].bbausdt;
+ const tokenIn = ADDRESSES[networkId].USDC;
+ const tokenOut = ADDRESSES[networkId].brz;
const swapType: SwapTypes = SwapTypes.SwapExactIn;
- const swapAmount = parseFixed('10', 6);
+ const swapAmount = parseFixed('200', 6);
const sor = setUp(networkId, provider);
diff --git a/yarn.lock b/yarn.lock
index c6ffc6c8..98fd9b0d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1591,16 +1591,6 @@ ajv@^6.10.0, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^6.5.5:
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7"
- integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
ajv@^8.0.1:
version "8.6.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571"
@@ -1710,18 +1700,6 @@ arrify@^2.0.1:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
-asn1@~0.2.3:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
- integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
- dependencies:
- safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
- integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-
assertion-error@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
@@ -1751,16 +1729,6 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
- integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-
-aws4@^1.8.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
- integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
-
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -1778,13 +1746,6 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-bcrypt-pbkdf@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
- integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
- dependencies:
- tweetnacl "^0.14.3"
-
bech32@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
@@ -1936,11 +1897,6 @@ camelcase@^6.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
- integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-
chai@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5"
@@ -2082,7 +2038,7 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
+combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -2131,11 +2087,6 @@ core-js-pure@^3.0.1:
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.23.3.tgz#bcd02d3d8ec68ad871ef50d5ccbb248ddb54f401"
integrity sha512-XpoouuqIj4P+GWtdyV8ZO3/u4KftkeDVMfvp+308eGMhCrA3lVDSmAxO0c6GGOcmgVlaKDrgWVMo49h2ab/TDA==
-core-util-is@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-
cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
@@ -2147,17 +2098,6 @@ cosmiconfig@^6.0.0:
path-type "^4.0.0"
yaml "^1.7.2"
-coveralls@^3.0.9:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.9.tgz#8cfc5a5525f84884e2948a0bf0f1c0e90aac0420"
- integrity sha512-nNBg3B1+4iDox5A5zqHKzUTiwl2ey4k2o0NEcVZYvl+GOSJdKBj4AJGKLv6h3SvWch7tABHePAQOSZWM9E2hMg==
- dependencies:
- js-yaml "^3.13.1"
- lcov-parse "^1.0.0"
- log-driver "^1.2.7"
- minimist "^1.2.0"
- request "^2.88.0"
-
crc-32@^1.2.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
@@ -2216,13 +2156,6 @@ cross-spawn@^7.0.2:
shebang-command "^2.0.0"
which "^2.0.1"
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
- dependencies:
- assert-plus "^1.0.0"
-
debug@4, debug@^4.3.3:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -2339,14 +2272,6 @@ dotenv@^8.2.0:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
-ecc-jsbn@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
- integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
- dependencies:
- jsbn "~0.1.0"
- safer-buffer "^2.1.0"
-
elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
@@ -2710,26 +2635,11 @@ execa@^2.1.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
-extend@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
- integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
extract-files@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a"
integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==
-extsprintf@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
- integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-
-extsprintf@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
- integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-
fast-deep-equal@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
@@ -2864,11 +2774,6 @@ foreground-child@^2.0.0:
cross-spawn "^7.0.0"
signal-exit "^3.0.2"
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
- integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-
form-data@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
@@ -2878,15 +2783,6 @@ form-data@^3.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
-form-data@~2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
- integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.6"
- mime-types "^2.1.12"
-
fp-ts@1.19.3:
version "1.19.3"
resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.3.tgz#261a60d1088fbff01f91256f91d21d0caaaaa96f"
@@ -2983,13 +2879,6 @@ get-stream@^5.0.0:
dependencies:
pump "^3.0.0"
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
- dependencies:
- assert-plus "^1.0.0"
-
glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
@@ -3074,19 +2963,6 @@ growl@1.10.5:
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
- integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
- integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
- dependencies:
- ajv "^6.5.5"
- har-schema "^2.0.0"
-
hardhat@^2.9.9:
version "2.9.9"
resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.9.9.tgz#05c1015eb73e0230309534b00deeb080724aace0"
@@ -3218,15 +3094,6 @@ http-errors@2.0.0:
statuses "2.0.1"
toidentifier "1.0.1"
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
https-proxy-agent@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
@@ -3412,7 +3279,7 @@ is-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+is-typedarray@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
@@ -3440,11 +3307,6 @@ isomorphic-fetch@^2.2.1:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
- integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-
istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1:
version "3.0.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
@@ -3547,11 +3409,6 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
- integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -3572,21 +3429,11 @@ json-schema-traverse@^1.0.0:
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
- integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
-json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
- integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-
json5@^2.1.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
@@ -3606,16 +3453,6 @@ jsonfile@^4.0.0:
optionalDependencies:
graceful-fs "^4.1.6"
-jsprim@^1.2.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
- integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.2.3"
- verror "1.10.0"
-
keccak@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0"
@@ -3632,11 +3469,6 @@ klaw@^1.0.0:
optionalDependencies:
graceful-fs "^4.1.9"
-lcov-parse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0"
- integrity sha1-6w1GtUER68VhrLTECO+TY73I9+A=
-
level-codec@^9.0.0:
version "9.0.2"
resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc"
@@ -3786,11 +3618,6 @@ lodash@^4.17.13:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
-log-driver@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8"
- integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==
-
log-symbols@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
@@ -3918,11 +3745,6 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-mime-db@1.43.0:
- version "1.43.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
- integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
-
mime-db@1.50.0:
version "1.50.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f"
@@ -3935,13 +3757,6 @@ mime-types@^2.1.12:
dependencies:
mime-db "1.50.0"
-mime-types@~2.1.19:
- version "2.1.26"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
- integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
- dependencies:
- mime-db "1.43.0"
-
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -3971,11 +3786,6 @@ minimatch@4.2.1:
dependencies:
brace-expansion "^1.1.7"
-minimist@^1.2.0:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
- integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
-
mnemonist@^0.38.0:
version "0.38.5"
resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade"
@@ -4160,11 +3970,6 @@ nyc@^15.0.0:
test-exclude "^6.0.0"
yargs "^15.0.2"
-oauth-sign@~0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
- integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
object-inspect@^1.9.0:
version "1.12.2"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
@@ -4374,11 +4179,6 @@ perf_hooks@^0.0.1:
resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c"
integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw==
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
picomatch@^2.0.4:
version "2.2.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
@@ -4449,11 +4249,6 @@ prr@~1.0.1:
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
-psl@^1.1.28:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c"
- integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==
-
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -4462,7 +4257,7 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
-punycode@^2.1.0, punycode@^2.1.1:
+punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
@@ -4474,11 +4269,6 @@ qs@^6.7.0:
dependencies:
side-channel "^1.0.4"
-qs@~6.5.2:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
- integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
-
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -4541,32 +4331,6 @@ release-zalgo@^1.0.0:
dependencies:
es6-error "^4.0.1"
-request@^2.88.0:
- version "2.88.2"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
- integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.8.0"
- caseless "~0.12.0"
- combined-stream "~1.0.6"
- extend "~3.0.2"
- forever-agent "~0.6.1"
- form-data "~2.3.2"
- har-validator "~5.1.3"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.19"
- oauth-sign "~0.9.0"
- performance-now "^2.1.0"
- qs "~6.5.2"
- safe-buffer "^5.1.2"
- tough-cookie "~2.5.0"
- tunnel-agent "^0.6.0"
- uuid "^3.3.2"
-
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -4696,7 +4460,7 @@ safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3":
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -4887,21 +4651,6 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-sshpk@^1.7.0:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
- integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- bcrypt-pbkdf "^1.0.0"
- dashdash "^1.12.0"
- ecc-jsbn "~0.1.1"
- getpass "^0.1.1"
- jsbn "~0.1.0"
- safer-buffer "^2.0.2"
- tweetnacl "~0.14.0"
-
stacktrace-parser@^0.1.10:
version "0.1.10"
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
@@ -5068,14 +4817,6 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-tough-cookie@~2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
- integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
- dependencies:
- psl "^1.1.28"
- punycode "^2.1.1"
-
"true-case-path@^2.2.1":
version "2.2.1"
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf"
@@ -5114,23 +4855,11 @@ tsutils@^3.21.0:
dependencies:
tslib "^1.8.1"
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
- dependencies:
- safe-buffer "^5.0.1"
-
tweetnacl-util@^0.15.1:
version "0.15.1"
resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b"
integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
- integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-
tweetnacl@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
@@ -5207,7 +4936,7 @@ util-deprecate@^1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-uuid@^3.3.2, uuid@^3.3.3:
+uuid@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
@@ -5222,15 +4951,6 @@ v8-compile-cache@^2.0.3:
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
- dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
-
whatwg-fetch@>=0.10.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"