From b08374f0ba2d1c163f1c8d75a06f642101e1e15d Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 12 Mar 2018 11:00:08 -0700 Subject: Add scaffolding for sra-report collection unit tests --- packages/sra-report/package.json | 19 +- .../sra_report.postman_collection.json | 910 +++++ .../collections/sra_report.postman_collection.json | 910 ----- packages/sra-report/src/globals.d.ts | 25 +- packages/sra-report/src/index.ts | 5 +- packages/sra-report/src/utils.ts | 4 + .../test/environments/postman_environment.json | 223 ++ .../fixtures/v0/token_pairs/default_request.json | 3698 ++++++++++++++++++++ .../test/fixtures/v0/token_pairs/malformed.json | 30 + .../v0/token_pairs/token_a_and_token_b_params.json | 16 + .../fixtures/v0/token_pairs/token_a_param.json | 1864 ++++++++++ .../fixtures/v0/token_pairs/token_b_param.json | 1864 ++++++++++ .../sra-report/test/postman_collection_v0_test.ts | 76 + packages/sra-report/test/test_runner.ts | 138 + packages/sra-report/tsconfig.json | 3 + 15 files changed, 8868 insertions(+), 917 deletions(-) create mode 100644 packages/sra-report/postman_collections/sra_report.postman_collection.json delete mode 100644 packages/sra-report/postman_configs/collections/sra_report.postman_collection.json create mode 100644 packages/sra-report/test/environments/postman_environment.json create mode 100644 packages/sra-report/test/fixtures/v0/token_pairs/default_request.json create mode 100644 packages/sra-report/test/fixtures/v0/token_pairs/malformed.json create mode 100644 packages/sra-report/test/fixtures/v0/token_pairs/token_a_and_token_b_params.json create mode 100644 packages/sra-report/test/fixtures/v0/token_pairs/token_a_param.json create mode 100644 packages/sra-report/test/fixtures/v0/token_pairs/token_b_param.json create mode 100644 packages/sra-report/test/postman_collection_v0_test.ts create mode 100644 packages/sra-report/test/test_runner.ts (limited to 'packages') diff --git a/packages/sra-report/package.json b/packages/sra-report/package.json index abe305f52..a4a12b875 100644 --- a/packages/sra-report/package.json +++ b/packages/sra-report/package.json @@ -6,9 +6,13 @@ "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", - "lint": "tslint --project . 'src/**/*.ts'", + "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'", "clean": "shx rm -rf lib", - "build": "tsc" + "build": "tsc", + "test": "run-s clean build copy_test_environments copy_test_fixtures run_mocha", + "copy_test_fixtures": "copyfiles -u 2 './test/fixtures/**/*.json' ./lib/test/fixtures", + "copy_test_environments": "copyfiles -u 2 './test/environments/**/*.json' ./lib/test/environments", + "run_mocha": "mocha lib/test/**/*_test.js" }, "bin": { "sra-report": "lib/index.js" @@ -36,8 +40,19 @@ "devDependencies": { "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", + "@types/mocha": "^2.2.48", + "@types/nock": "^9.1.2", "@types/node": "^8.0.53", "@types/yargs": "^10.0.0", + "chai": "^4.0.1", + "chai-as-promised": "^7.1.0", + "chai-as-promised-typescript-typings": "^0.0.10", + "chai-typescript-typings": "^0.0.4", + "copyfiles": "^2.0.0", + "dirty-chai": "^2.0.1", + "mocha": "^4.0.1", + "nock": "^9.2.3", + "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.8.0", "typescript": "2.7.1" diff --git a/packages/sra-report/postman_collections/sra_report.postman_collection.json b/packages/sra-report/postman_collections/sra_report.postman_collection.json new file mode 100644 index 000000000..9a8e8e0fa --- /dev/null +++ b/packages/sra-report/postman_collections/sra_report.postman_collection.json @@ -0,0 +1,910 @@ +{ + "info": { + "name": "sra_report", + "_postman_id": "d5828163-ddb9-46a9-ec39-c2b81417b6c0", + "description": + "[Standard Relayer API](\nhttps://github.com/0xProject/standard-relayer-api)\n\n\n0x Protocol is an open standard. Because of this, we expect many independent applications to be built that will want to use the protocol. In order to make it easier for anyone to source liquidity that conforms to the 0x order format, relayers can opt-in to implementing a set of standard relayer API endpoints. In doing so, they allow clients of the standard relayer API to access the orders on their orderbook.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "GET /token_pairs", + "description": "", + "item": [ + { + "name": "default request", + "event": [ + { + "listen": "test", + "script": { + "id": "42cb5e3f-6013-4a7c-b341-0d10cb3f2c9c", + "type": "text/javascript", + "exec": [""] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/token_pairs", + "host": ["{{url}}"], + "path": ["token_pairs"] + }, + "description": "" + }, + "response": [] + }, + { + "name": "tokenA param", + "event": [ + { + "listen": "test", + "script": { + "id": "0b0712ff-7846-40a3-9253-4bca2551350c", + "type": "text/javascript", + "exec": [ + "const filterTokenEnvKey = 'tokenContractAddress1';", + "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Token pairs are properly filtered', function() {", + " _.forEach(responseJsonData, function(tokenPair) {", + " const tokenAIsFilterToken = _.get(tokenPair, 'tokenA.address') === filterTokenAddress;", + " const tokenBIsFilterToken = _.get(tokenPair, 'tokenB.address') === filterTokenAddress;", + " const condition = tokenAIsFilterToken || tokenBIsFilterToken", + " pm.expect(condition).to.be.true;", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/token_pairs?tokenA={{tokenContractAddress1}}", + "host": ["{{url}}"], + "path": ["token_pairs"], + "query": [ + { + "key": "tokenA", + "value": "{{tokenContractAddress1}}", + "equals": true + } + ] + }, + "description": "" + }, + "response": [] + }, + { + "name": "tokenB param", + "event": [ + { + "listen": "test", + "script": { + "id": "ef0e6be8-06d8-4975-a1c4-2199bc8b5aa6", + "type": "text/javascript", + "exec": [ + "const filterTokenEnvKey = 'tokenContractAddress1';", + "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Token pairs are properly filtered', function() {", + " _.forEach(responseJsonData, function(tokenPair) {", + " const tokenAIsFilterToken = _.get(tokenPair, 'tokenA.address') === filterTokenAddress;", + " const tokenBIsFilterToken = _.get(tokenPair, 'tokenB.address') === filterTokenAddress;", + " const condition = tokenAIsFilterToken || tokenBIsFilterToken", + " pm.expect(condition).to.be.true;", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/token_pairs?tokenB={{tokenContractAddress1}}", + "host": ["{{url}}"], + "path": ["token_pairs"], + "query": [ + { + "key": "tokenB", + "value": "{{tokenContractAddress1}}", + "equals": true + } + ] + }, + "description": "" + }, + "response": [] + }, + { + "name": "tokenA and tokenB params", + "event": [ + { + "listen": "test", + "script": { + "id": "9ca4bed3-b8e0-4a90-96ba-42f0da3a7d68", + "type": "text/javascript", + "exec": [ + "const filterTokenAEnvKey = 'tokenContractAddress1';", + "const filterTokenBEnvKey = 'tokenContractAddress2';", + "const filterTokenAAddress = pm.environment.get(filterTokenAEnvKey);", + "const filterTokenBAddress = pm.environment.get(filterTokenBEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Token pairs are properly filtered', function() {", + " _.forEach(responseJsonData, function(tokenPair) {", + " const tokenAIsFilterTokenA = _.get(tokenPair, 'tokenA.address') === filterTokenAAddress;", + " const tokenAIsFilterTokenB = _.get(tokenPair, 'tokenA.address') === filterTokenBAddress;", + " const tokenBIsFilterTokenA = _.get(tokenPair, 'tokenB.address') === filterTokenAAddress;", + " const tokenBIsFilterTokenB = _.get(tokenPair, 'tokenB.address') === filterTokenBAddress;", + " const condition = (tokenAIsFilterTokenA && tokenBIsFilterTokenB) || (tokenBIsFilterTokenA && tokenAIsFilterTokenB)", + " pm.expect(condition).to.be.true;", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": + "{{url}}/token_pairs?tokenA={{tokenContractAddress1}}&tokenB={{tokenContractAddress2}}", + "host": ["{{url}}"], + "path": ["token_pairs"], + "query": [ + { + "key": "tokenA", + "value": "{{tokenContractAddress1}}", + "equals": true + }, + { + "key": "tokenB", + "value": "{{tokenContractAddress2}}", + "equals": true + } + ] + }, + "description": "" + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "3d032e92-6a17-49f0-8115-bae1c7298b55", + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "id": "25addb38-bd1c-4eb3-a193-5617119dc0d6", + "type": "text/javascript", + "exec": [ + "const schema = tv4.getSchema('/RelayerApiTokenPairsResponse');", + "const responseJsonData = pm.response.json();", + "", + "pm.test('Schema is valid', function() {", + " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", + "});", + "" + ] + } + } + ] + }, + { + "name": "GET /orders", + "description": "", + "item": [ + { + "name": "default request", + "event": [ + { + "listen": "test", + "script": { + "id": "118f47dd-1d93-4288-841f-de88783eff3b", + "type": "text/javascript", + "exec": [""] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders", + "host": ["{{url}}"], + "path": ["orders"] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "exchangeContract param", + "event": [ + { + "listen": "test", + "script": { + "id": "374c4b28-5672-400c-8c23-9cb1a3e63117", + "type": "text/javascript", + "exec": [ + "const exchangeContractEnvKey = 'exchangeContractAddress';", + "const requestedExchangeContractAddress = pm.environment.get(exchangeContractEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const returnedExchangeContractAddress = _.get(order, 'exchangeContractAddress');", + " pm.expect(requestedExchangeContractAddress).to.equal(returnedExchangeContractAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?exchangeContractAddress={{exchangeContractAddress}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "exchangeContractAddress", + "value": "{{exchangeContractAddress}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "tokenAddress param", + "event": [ + { + "listen": "test", + "script": { + "id": "e74a9069-18b9-42d3-b2d0-e18580ad73f2", + "type": "text/javascript", + "exec": [ + "const filterTokenEnvKey = 'tokenContractAddress2';", + "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const makerTokenAddress = _.get(order, 'makerTokenAddress');", + " const takerTokenAddress = _.get(order, 'takerTokenAddress');", + " const makerTokenAddressIsFilterToken = makerTokenAddress === filterTokenAddress;", + " const takerTokenAddressIsFilterToken = takerTokenAddress === filterTokenAddress;", + " const condition = makerTokenAddressIsFilterToken || takerTokenAddressIsFilterToken;", + " pm.expect(condition).to.be.true;", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?tokenAddress={{tokenContractAddress2}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "tokenAddress", + "value": "{{tokenContractAddress2}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "makerTokenAddress param", + "event": [ + { + "listen": "test", + "script": { + "id": "c539f306-aa03-495d-a90a-0179e1b751aa", + "type": "text/javascript", + "exec": [ + "const filterTokenEnvKey = 'tokenContractAddress2';", + "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const makerTokenAddress = _.get(order, 'makerTokenAddress');", + " pm.expect(makerTokenAddress).to.be.equal(filterTokenAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?makerTokenAddress={{tokenContractAddress2}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "makerTokenAddress", + "value": "{{tokenContractAddress2}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "takerTokenAddress param", + "event": [ + { + "listen": "test", + "script": { + "id": "49b2fcaf-5fe2-471f-ae10-e48a440d4c6d", + "type": "text/javascript", + "exec": [ + "const filterTokenEnvKey = 'tokenContractAddress2';", + "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const takerTokenAddress = _.get(order, 'takerTokenAddress');", + " pm.expect(takerTokenAddress).to.be.equal(filterTokenAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?takerTokenAddress={{tokenContractAddress2}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "takerTokenAddress", + "value": "{{tokenContractAddress2}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "maker param", + "event": [ + { + "listen": "test", + "script": { + "id": "1f5960de-117f-44fb-82e0-581626cbf62b", + "type": "text/javascript", + "exec": [ + "const orderMakerEnvKey = 'orderMaker';", + "const referenceOrderMakerAddress = pm.environment.get(orderMakerEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const returnedMakerAddress = _.get(order, 'maker');", + " pm.expect(referenceOrderMakerAddress).to.be.equal(returnedMakerAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?maker={{orderMaker}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "maker", + "value": "{{orderMaker}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "taker param", + "event": [ + { + "listen": "test", + "script": { + "id": "f23de2eb-b444-49d3-93b7-14ae712d6502", + "type": "text/javascript", + "exec": [ + "const orderTakerEnvKey = 'orderTaker';", + "const referenceOrderTakerAddress = pm.environment.get(orderTakerEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const returnedTakerAddress = _.get(order, 'taker');", + " pm.expect(referenceOrderTakerAddress).to.be.equal(returnedTakerAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?taker={{orderTaker}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "taker", + "value": "{{orderTaker}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "trader param", + "event": [ + { + "listen": "test", + "script": { + "id": "9689639a-47ce-4c3b-8180-859fd28437be", + "type": "text/javascript", + "exec": [ + "const orderTraderEnvKey = 'orderMaker';", + "const referenceOrderTraderAddress = pm.environment.get(orderTraderEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const returnedMakerAddress = _.get(order, 'maker');", + " const returnedTakerAddress = _.get(order, 'taker');", + " const condition = (referenceOrderTraderAddress === returnedMakerAddress) || (referenceOrderTraderAddress === returnedTakerAddress);", + " pm.expect(condition).to.be.true;", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?trader={{orderMaker}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "trader", + "value": "{{orderMaker}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + }, + { + "name": "feeRecipient param", + "event": [ + { + "listen": "test", + "script": { + "id": "010c0cf6-8d5b-4fe3-8b92-b2009ea43a3e", + "type": "text/javascript", + "exec": [ + "const orderFeeRecipientEnvKey = 'orderFeeRecipient';", + "const referenceOrderFeeRecipientAddress = pm.environment.get(orderFeeRecipientEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orders are properly filtered', function() {", + " _.forEach(responseJsonData, function(order) {", + " const returnedFeeRecipientAddress = _.get(order, 'feeRecipient');", + " pm.expect(referenceOrderFeeRecipientAddress).to.be.equal(returnedFeeRecipientAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/orders?feeRecipient={{orderFeeRecipient}}", + "host": ["{{url}}"], + "path": ["orders"], + "query": [ + { + "key": "feeRecipient", + "value": "{{orderFeeRecipient}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "4eafcc26-fb01-4182-b963-67a0b418fcbc", + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "id": "d28effd1-4a73-4ee8-82cc-21b1ab06928d", + "type": "text/javascript", + "exec": [ + "const schema = tv4.getSchema('/signedOrdersSchema');", + "const responseJsonData = pm.response.json();", + "", + "pm.test('Schema is valid', function() {", + " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", + "});", + "" + ] + } + } + ] + }, + { + "name": "GET /order", + "description": "", + "item": [ + { + "name": "orderHash param", + "event": [ + { + "listen": "test", + "script": { + "id": "18876df2-384e-43d5-93a1-7e24571e1308", + "type": "text/javascript", + "exec": [ + "const orderEnvKey = 'order';", + "const referenceOrderString = pm.environment.get(orderEnvKey);", + "const referenceOrderJson = JSON.parse(referenceOrderString);", + "const orderPropertyNames = [", + " 'maker',", + " 'taker',", + " 'makerFee',", + " 'takerFee',", + " 'makerTokenAmount',", + " 'takerTokenAmount',", + " 'makerTokenAddress',", + " 'takerTokenAddress',", + " 'salt',", + " 'feeRecipient',", + " 'expirationUnixTimestampSec',", + " 'exchangeContractAddress'", + "];", + "const signaturePropertyNames = [", + " 'v',", + " 'r',", + " 's'", + "];", + "const returnedOrderJson = pm.response.json();", + "pm.test('Order is properly retreived', function() {", + " _.forEach(orderPropertyNames, function(propertyName) {", + " const returnedProperty = _.get(returnedOrderJson, propertyName);", + " const referenceProperty = _.get(referenceOrderJson, propertyName);", + " pm.expect(returnedProperty).to.be.equal(referenceProperty);", + " });", + " const returnedSignature = _.get(returnedOrderJson, 'ecSignature');", + " const referenceSignature = _.get(returnedOrderJson, 'ecSignature');", + " _.forEach(signaturePropertyNames, function(propertyName) {", + " const returnedSignatureProperty = _.get(returnedSignature, propertyName);", + " const referenceSignatureProperty = _.get(referenceSignature, propertyName);", + " pm.expect(returnedSignatureProperty).to.be.equal(referenceSignatureProperty);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{url}}/order/{{orderHash}}", + "host": ["{{url}}"], + "path": ["order", "{{orderHash}}"] + }, + "description": "Retrieves a specific order by orderHash." + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "e356d2ff-d105-42c1-b679-d9d917dcd68d", + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "id": "8d2d4717-6f76-47ab-8e5a-f383192f6ee4", + "type": "text/javascript", + "exec": [ + "const schema = tv4.getSchema('/SignedOrder');", + "const responseJsonData = pm.response.json();", + "", + "pm.test('Schema is valid', function() {", + " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", + "});", + "" + ] + } + } + ] + }, + { + "name": "GET /orderbook", + "description": "", + "item": [ + { + "name": "baseTokenAddress and quoteTokenAddress params", + "event": [ + { + "listen": "test", + "script": { + "id": "9ed05327-1a2f-4e50-b4aa-e21f961dbe78", + "type": "text/javascript", + "exec": [ + "const baseTokenEnvKey = 'tokenContractAddress2';", + "const quoteTokenEnvKey = 'tokenContractAddress1';", + "const baseTokenAddress = pm.environment.get(baseTokenEnvKey);", + "const quoteTokenAddress = pm.environment.get(quoteTokenEnvKey);", + "const responseJsonData = pm.response.json();", + "pm.test('Orderbook is properly filtered', function() {", + " const bids = _.get(responseJsonData, 'bids');", + " const asks = _.get(responseJsonData, 'asks');", + " _.forEach(bids, function(order) {", + " const makerTokenAddress = _.get(order, 'makerTokenAddress');", + " const takerTokenAddress = _.get(order, 'takerTokenAddress');", + " pm.expect(makerTokenAddress).to.be.equal(quoteTokenAddress);", + " pm.expect(takerTokenAddress).to.be.equal(baseTokenAddress);", + " });", + " _.forEach(asks, function(order) {", + " const makerTokenAddress = _.get(order, 'makerTokenAddress');", + " const takerTokenAddress = _.get(order, 'takerTokenAddress');", + " pm.expect(makerTokenAddress).to.be.equal(baseTokenAddress);", + " pm.expect(takerTokenAddress).to.be.equal(quoteTokenAddress);", + " });", + "});", + "" + ] + } + } + ], + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": + "{{url}}/orderbook?baseTokenAddress={{tokenContractAddress2}}"eTokenAddress={{tokenContractAddress1}}", + "host": ["{{url}}"], + "path": ["orderbook"], + "query": [ + { + "key": "baseTokenAddress", + "value": "{{tokenContractAddress2}}", + "equals": true + }, + { + "key": "quoteTokenAddress", + "value": "{{tokenContractAddress1}}", + "equals": true + } + ] + }, + "description": + "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "bdf90dbc-9217-4089-8bc0-351baadddd3e", + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "id": "d5080a34-57c4-4d5d-8e01-5e79599282ec", + "type": "text/javascript", + "exec": [ + "const schema = tv4.getSchema('/RelayerApiOrderBookResponse');", + "const responseJsonData = pm.response.json();", + "", + "pm.test('Schema is valid', function() {", + " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", + "});", + "" + ] + } + } + ] + }, + { + "name": "POST /fees", + "description": "", + "item": [ + { + "name": "default request", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": + "{\n \"exchangeContractAddress\": \"0x12459c951127e0c374ff9105dda097662a027093\",\n \"maker\": \"0x9e56625509c2f60af937f23b7b532600390e8c8b\",\n \"taker\": \"0x0000000000000000000000000000000000000000\",\n \"makerTokenAddress\": \"0x323b5d4c32345ced77393b3530b1eed0f346429d\",\n \"takerTokenAddress\": \"0xef7fff64389b814a946f3e92105513705ca6b990\",\n \"makerTokenAmount\": \"10000000000000000\",\n \"takerTokenAmount\": \"20000000000000000\",\n \"expirationUnixTimestampSec\": \"42\",\n \"salt\": \"67006738228878699843088602623665307406148487219438534730168799356281242528500\"\n}" + }, + "url": { + "raw": "{{url}}/fees", + "host": ["{{url}}"], + "path": ["fees"] + }, + "description": + "Given an unsigned order without the fee-related properties, returns the required feeRecipient, makerFee, and takerFee of that order." + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "75d66506-0fa9-4b0e-982b-ef53bf3310f8", + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "id": "4c5f9f7b-8635-4bdb-9240-a74754a2de4f", + "type": "text/javascript", + "exec": [ + "const schema = tv4.getSchema('/RelayerApiFeesResponse');", + "const responseJsonData = pm.response.json();", + "", + "pm.test('Schema is valid', function() {", + " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", + "});", + "" + ] + } + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "da60f639-df79-4f4d-9861-79219f5fc341", + "type": "text/javascript", + "exec": [ + "const schemaKeysString = pm.environment.get('schemaKeys');", + "const schemaKeys = JSON.parse(schemaKeysString);", + "_.forEach(schemaKeys, function(schemaKey) {", + " const schemaString = pm.environment.get(schemaKey);", + " const schema = JSON.parse(schemaString);", + " tv4.addSchema(schema);", + "});", + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "b4917e72-ac87-421d-b7a5-21b64285ba5b", + "type": "text/javascript", + "exec": [ + "pm.test('Has Content-Type header with value application/json', function () {", + " pm.response.to.have.header('Content-Type');", + " const contentType = postman.getResponseHeader('Content-Type');", + " pm.expect(contentType).to.include('application/json');", + "});", + "" + ] + } + } + ] +} diff --git a/packages/sra-report/postman_configs/collections/sra_report.postman_collection.json b/packages/sra-report/postman_configs/collections/sra_report.postman_collection.json deleted file mode 100644 index 9a8e8e0fa..000000000 --- a/packages/sra-report/postman_configs/collections/sra_report.postman_collection.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "info": { - "name": "sra_report", - "_postman_id": "d5828163-ddb9-46a9-ec39-c2b81417b6c0", - "description": - "[Standard Relayer API](\nhttps://github.com/0xProject/standard-relayer-api)\n\n\n0x Protocol is an open standard. Because of this, we expect many independent applications to be built that will want to use the protocol. In order to make it easier for anyone to source liquidity that conforms to the 0x order format, relayers can opt-in to implementing a set of standard relayer API endpoints. In doing so, they allow clients of the standard relayer API to access the orders on their orderbook.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "GET /token_pairs", - "description": "", - "item": [ - { - "name": "default request", - "event": [ - { - "listen": "test", - "script": { - "id": "42cb5e3f-6013-4a7c-b341-0d10cb3f2c9c", - "type": "text/javascript", - "exec": [""] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/token_pairs", - "host": ["{{url}}"], - "path": ["token_pairs"] - }, - "description": "" - }, - "response": [] - }, - { - "name": "tokenA param", - "event": [ - { - "listen": "test", - "script": { - "id": "0b0712ff-7846-40a3-9253-4bca2551350c", - "type": "text/javascript", - "exec": [ - "const filterTokenEnvKey = 'tokenContractAddress1';", - "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Token pairs are properly filtered', function() {", - " _.forEach(responseJsonData, function(tokenPair) {", - " const tokenAIsFilterToken = _.get(tokenPair, 'tokenA.address') === filterTokenAddress;", - " const tokenBIsFilterToken = _.get(tokenPair, 'tokenB.address') === filterTokenAddress;", - " const condition = tokenAIsFilterToken || tokenBIsFilterToken", - " pm.expect(condition).to.be.true;", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/token_pairs?tokenA={{tokenContractAddress1}}", - "host": ["{{url}}"], - "path": ["token_pairs"], - "query": [ - { - "key": "tokenA", - "value": "{{tokenContractAddress1}}", - "equals": true - } - ] - }, - "description": "" - }, - "response": [] - }, - { - "name": "tokenB param", - "event": [ - { - "listen": "test", - "script": { - "id": "ef0e6be8-06d8-4975-a1c4-2199bc8b5aa6", - "type": "text/javascript", - "exec": [ - "const filterTokenEnvKey = 'tokenContractAddress1';", - "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Token pairs are properly filtered', function() {", - " _.forEach(responseJsonData, function(tokenPair) {", - " const tokenAIsFilterToken = _.get(tokenPair, 'tokenA.address') === filterTokenAddress;", - " const tokenBIsFilterToken = _.get(tokenPair, 'tokenB.address') === filterTokenAddress;", - " const condition = tokenAIsFilterToken || tokenBIsFilterToken", - " pm.expect(condition).to.be.true;", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/token_pairs?tokenB={{tokenContractAddress1}}", - "host": ["{{url}}"], - "path": ["token_pairs"], - "query": [ - { - "key": "tokenB", - "value": "{{tokenContractAddress1}}", - "equals": true - } - ] - }, - "description": "" - }, - "response": [] - }, - { - "name": "tokenA and tokenB params", - "event": [ - { - "listen": "test", - "script": { - "id": "9ca4bed3-b8e0-4a90-96ba-42f0da3a7d68", - "type": "text/javascript", - "exec": [ - "const filterTokenAEnvKey = 'tokenContractAddress1';", - "const filterTokenBEnvKey = 'tokenContractAddress2';", - "const filterTokenAAddress = pm.environment.get(filterTokenAEnvKey);", - "const filterTokenBAddress = pm.environment.get(filterTokenBEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Token pairs are properly filtered', function() {", - " _.forEach(responseJsonData, function(tokenPair) {", - " const tokenAIsFilterTokenA = _.get(tokenPair, 'tokenA.address') === filterTokenAAddress;", - " const tokenAIsFilterTokenB = _.get(tokenPair, 'tokenA.address') === filterTokenBAddress;", - " const tokenBIsFilterTokenA = _.get(tokenPair, 'tokenB.address') === filterTokenAAddress;", - " const tokenBIsFilterTokenB = _.get(tokenPair, 'tokenB.address') === filterTokenBAddress;", - " const condition = (tokenAIsFilterTokenA && tokenBIsFilterTokenB) || (tokenBIsFilterTokenA && tokenAIsFilterTokenB)", - " pm.expect(condition).to.be.true;", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": - "{{url}}/token_pairs?tokenA={{tokenContractAddress1}}&tokenB={{tokenContractAddress2}}", - "host": ["{{url}}"], - "path": ["token_pairs"], - "query": [ - { - "key": "tokenA", - "value": "{{tokenContractAddress1}}", - "equals": true - }, - { - "key": "tokenB", - "value": "{{tokenContractAddress2}}", - "equals": true - } - ] - }, - "description": "" - }, - "response": [] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "3d032e92-6a17-49f0-8115-bae1c7298b55", - "type": "text/javascript", - "exec": [""] - } - }, - { - "listen": "test", - "script": { - "id": "25addb38-bd1c-4eb3-a193-5617119dc0d6", - "type": "text/javascript", - "exec": [ - "const schema = tv4.getSchema('/RelayerApiTokenPairsResponse');", - "const responseJsonData = pm.response.json();", - "", - "pm.test('Schema is valid', function() {", - " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", - "});", - "" - ] - } - } - ] - }, - { - "name": "GET /orders", - "description": "", - "item": [ - { - "name": "default request", - "event": [ - { - "listen": "test", - "script": { - "id": "118f47dd-1d93-4288-841f-de88783eff3b", - "type": "text/javascript", - "exec": [""] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders", - "host": ["{{url}}"], - "path": ["orders"] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "exchangeContract param", - "event": [ - { - "listen": "test", - "script": { - "id": "374c4b28-5672-400c-8c23-9cb1a3e63117", - "type": "text/javascript", - "exec": [ - "const exchangeContractEnvKey = 'exchangeContractAddress';", - "const requestedExchangeContractAddress = pm.environment.get(exchangeContractEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const returnedExchangeContractAddress = _.get(order, 'exchangeContractAddress');", - " pm.expect(requestedExchangeContractAddress).to.equal(returnedExchangeContractAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?exchangeContractAddress={{exchangeContractAddress}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "exchangeContractAddress", - "value": "{{exchangeContractAddress}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "tokenAddress param", - "event": [ - { - "listen": "test", - "script": { - "id": "e74a9069-18b9-42d3-b2d0-e18580ad73f2", - "type": "text/javascript", - "exec": [ - "const filterTokenEnvKey = 'tokenContractAddress2';", - "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const makerTokenAddress = _.get(order, 'makerTokenAddress');", - " const takerTokenAddress = _.get(order, 'takerTokenAddress');", - " const makerTokenAddressIsFilterToken = makerTokenAddress === filterTokenAddress;", - " const takerTokenAddressIsFilterToken = takerTokenAddress === filterTokenAddress;", - " const condition = makerTokenAddressIsFilterToken || takerTokenAddressIsFilterToken;", - " pm.expect(condition).to.be.true;", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?tokenAddress={{tokenContractAddress2}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "tokenAddress", - "value": "{{tokenContractAddress2}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "makerTokenAddress param", - "event": [ - { - "listen": "test", - "script": { - "id": "c539f306-aa03-495d-a90a-0179e1b751aa", - "type": "text/javascript", - "exec": [ - "const filterTokenEnvKey = 'tokenContractAddress2';", - "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const makerTokenAddress = _.get(order, 'makerTokenAddress');", - " pm.expect(makerTokenAddress).to.be.equal(filterTokenAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?makerTokenAddress={{tokenContractAddress2}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "makerTokenAddress", - "value": "{{tokenContractAddress2}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "takerTokenAddress param", - "event": [ - { - "listen": "test", - "script": { - "id": "49b2fcaf-5fe2-471f-ae10-e48a440d4c6d", - "type": "text/javascript", - "exec": [ - "const filterTokenEnvKey = 'tokenContractAddress2';", - "const filterTokenAddress = pm.environment.get(filterTokenEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const takerTokenAddress = _.get(order, 'takerTokenAddress');", - " pm.expect(takerTokenAddress).to.be.equal(filterTokenAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?takerTokenAddress={{tokenContractAddress2}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "takerTokenAddress", - "value": "{{tokenContractAddress2}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "maker param", - "event": [ - { - "listen": "test", - "script": { - "id": "1f5960de-117f-44fb-82e0-581626cbf62b", - "type": "text/javascript", - "exec": [ - "const orderMakerEnvKey = 'orderMaker';", - "const referenceOrderMakerAddress = pm.environment.get(orderMakerEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const returnedMakerAddress = _.get(order, 'maker');", - " pm.expect(referenceOrderMakerAddress).to.be.equal(returnedMakerAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?maker={{orderMaker}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "maker", - "value": "{{orderMaker}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "taker param", - "event": [ - { - "listen": "test", - "script": { - "id": "f23de2eb-b444-49d3-93b7-14ae712d6502", - "type": "text/javascript", - "exec": [ - "const orderTakerEnvKey = 'orderTaker';", - "const referenceOrderTakerAddress = pm.environment.get(orderTakerEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const returnedTakerAddress = _.get(order, 'taker');", - " pm.expect(referenceOrderTakerAddress).to.be.equal(returnedTakerAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?taker={{orderTaker}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "taker", - "value": "{{orderTaker}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "trader param", - "event": [ - { - "listen": "test", - "script": { - "id": "9689639a-47ce-4c3b-8180-859fd28437be", - "type": "text/javascript", - "exec": [ - "const orderTraderEnvKey = 'orderMaker';", - "const referenceOrderTraderAddress = pm.environment.get(orderTraderEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const returnedMakerAddress = _.get(order, 'maker');", - " const returnedTakerAddress = _.get(order, 'taker');", - " const condition = (referenceOrderTraderAddress === returnedMakerAddress) || (referenceOrderTraderAddress === returnedTakerAddress);", - " pm.expect(condition).to.be.true;", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?trader={{orderMaker}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "trader", - "value": "{{orderMaker}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - }, - { - "name": "feeRecipient param", - "event": [ - { - "listen": "test", - "script": { - "id": "010c0cf6-8d5b-4fe3-8b92-b2009ea43a3e", - "type": "text/javascript", - "exec": [ - "const orderFeeRecipientEnvKey = 'orderFeeRecipient';", - "const referenceOrderFeeRecipientAddress = pm.environment.get(orderFeeRecipientEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orders are properly filtered', function() {", - " _.forEach(responseJsonData, function(order) {", - " const returnedFeeRecipientAddress = _.get(order, 'feeRecipient');", - " pm.expect(referenceOrderFeeRecipientAddress).to.be.equal(returnedFeeRecipientAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/orders?feeRecipient={{orderFeeRecipient}}", - "host": ["{{url}}"], - "path": ["orders"], - "query": [ - { - "key": "feeRecipient", - "value": "{{orderFeeRecipient}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4eafcc26-fb01-4182-b963-67a0b418fcbc", - "type": "text/javascript", - "exec": [""] - } - }, - { - "listen": "test", - "script": { - "id": "d28effd1-4a73-4ee8-82cc-21b1ab06928d", - "type": "text/javascript", - "exec": [ - "const schema = tv4.getSchema('/signedOrdersSchema');", - "const responseJsonData = pm.response.json();", - "", - "pm.test('Schema is valid', function() {", - " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", - "});", - "" - ] - } - } - ] - }, - { - "name": "GET /order", - "description": "", - "item": [ - { - "name": "orderHash param", - "event": [ - { - "listen": "test", - "script": { - "id": "18876df2-384e-43d5-93a1-7e24571e1308", - "type": "text/javascript", - "exec": [ - "const orderEnvKey = 'order';", - "const referenceOrderString = pm.environment.get(orderEnvKey);", - "const referenceOrderJson = JSON.parse(referenceOrderString);", - "const orderPropertyNames = [", - " 'maker',", - " 'taker',", - " 'makerFee',", - " 'takerFee',", - " 'makerTokenAmount',", - " 'takerTokenAmount',", - " 'makerTokenAddress',", - " 'takerTokenAddress',", - " 'salt',", - " 'feeRecipient',", - " 'expirationUnixTimestampSec',", - " 'exchangeContractAddress'", - "];", - "const signaturePropertyNames = [", - " 'v',", - " 'r',", - " 's'", - "];", - "const returnedOrderJson = pm.response.json();", - "pm.test('Order is properly retreived', function() {", - " _.forEach(orderPropertyNames, function(propertyName) {", - " const returnedProperty = _.get(returnedOrderJson, propertyName);", - " const referenceProperty = _.get(referenceOrderJson, propertyName);", - " pm.expect(returnedProperty).to.be.equal(referenceProperty);", - " });", - " const returnedSignature = _.get(returnedOrderJson, 'ecSignature');", - " const referenceSignature = _.get(returnedOrderJson, 'ecSignature');", - " _.forEach(signaturePropertyNames, function(propertyName) {", - " const returnedSignatureProperty = _.get(returnedSignature, propertyName);", - " const referenceSignatureProperty = _.get(referenceSignature, propertyName);", - " pm.expect(returnedSignatureProperty).to.be.equal(referenceSignatureProperty);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": "{{url}}/order/{{orderHash}}", - "host": ["{{url}}"], - "path": ["order", "{{orderHash}}"] - }, - "description": "Retrieves a specific order by orderHash." - }, - "response": [] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "e356d2ff-d105-42c1-b679-d9d917dcd68d", - "type": "text/javascript", - "exec": [""] - } - }, - { - "listen": "test", - "script": { - "id": "8d2d4717-6f76-47ab-8e5a-f383192f6ee4", - "type": "text/javascript", - "exec": [ - "const schema = tv4.getSchema('/SignedOrder');", - "const responseJsonData = pm.response.json();", - "", - "pm.test('Schema is valid', function() {", - " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", - "});", - "" - ] - } - } - ] - }, - { - "name": "GET /orderbook", - "description": "", - "item": [ - { - "name": "baseTokenAddress and quoteTokenAddress params", - "event": [ - { - "listen": "test", - "script": { - "id": "9ed05327-1a2f-4e50-b4aa-e21f961dbe78", - "type": "text/javascript", - "exec": [ - "const baseTokenEnvKey = 'tokenContractAddress2';", - "const quoteTokenEnvKey = 'tokenContractAddress1';", - "const baseTokenAddress = pm.environment.get(baseTokenEnvKey);", - "const quoteTokenAddress = pm.environment.get(quoteTokenEnvKey);", - "const responseJsonData = pm.response.json();", - "pm.test('Orderbook is properly filtered', function() {", - " const bids = _.get(responseJsonData, 'bids');", - " const asks = _.get(responseJsonData, 'asks');", - " _.forEach(bids, function(order) {", - " const makerTokenAddress = _.get(order, 'makerTokenAddress');", - " const takerTokenAddress = _.get(order, 'takerTokenAddress');", - " pm.expect(makerTokenAddress).to.be.equal(quoteTokenAddress);", - " pm.expect(takerTokenAddress).to.be.equal(baseTokenAddress);", - " });", - " _.forEach(asks, function(order) {", - " const makerTokenAddress = _.get(order, 'makerTokenAddress');", - " const takerTokenAddress = _.get(order, 'takerTokenAddress');", - " pm.expect(makerTokenAddress).to.be.equal(baseTokenAddress);", - " pm.expect(takerTokenAddress).to.be.equal(quoteTokenAddress);", - " });", - "});", - "" - ] - } - } - ], - "request": { - "method": "GET", - "header": [], - "body": {}, - "url": { - "raw": - "{{url}}/orderbook?baseTokenAddress={{tokenContractAddress2}}"eTokenAddress={{tokenContractAddress1}}", - "host": ["{{url}}"], - "path": ["orderbook"], - "query": [ - { - "key": "baseTokenAddress", - "value": "{{tokenContractAddress2}}", - "equals": true - }, - { - "key": "quoteTokenAddress", - "value": "{{tokenContractAddress1}}", - "equals": true - } - ] - }, - "description": - "Retrieves a list of orders given query parameters. For querying an entire orderbook snapshot, the orderbook endpoint is recommended.\n\nParameters\n * exchangeContractAddress [string]: returns orders created for this exchange address\n * tokenAddress [string]: returns orders where makerTokenAddress or takerTokenAddress is token address\n * makerTokenAddress [string]: returns orders with specified makerTokenAddress\n * takerTokenAddress [string]: returns orders with specified makerTokenAddress\n * maker [string]: returns orders where maker is maker address\n * taker [string]: returns orders where taker is taker address\n * trader [string]: returns orders where maker or taker is trader address\n * feeRecipient [string]: returns orders where feeRecipient is feeRecipient address\n\nAll parameters are optional." - }, - "response": [] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "bdf90dbc-9217-4089-8bc0-351baadddd3e", - "type": "text/javascript", - "exec": [""] - } - }, - { - "listen": "test", - "script": { - "id": "d5080a34-57c4-4d5d-8e01-5e79599282ec", - "type": "text/javascript", - "exec": [ - "const schema = tv4.getSchema('/RelayerApiOrderBookResponse');", - "const responseJsonData = pm.response.json();", - "", - "pm.test('Schema is valid', function() {", - " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", - "});", - "" - ] - } - } - ] - }, - { - "name": "POST /fees", - "description": "", - "item": [ - { - "name": "default request", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": - "{\n \"exchangeContractAddress\": \"0x12459c951127e0c374ff9105dda097662a027093\",\n \"maker\": \"0x9e56625509c2f60af937f23b7b532600390e8c8b\",\n \"taker\": \"0x0000000000000000000000000000000000000000\",\n \"makerTokenAddress\": \"0x323b5d4c32345ced77393b3530b1eed0f346429d\",\n \"takerTokenAddress\": \"0xef7fff64389b814a946f3e92105513705ca6b990\",\n \"makerTokenAmount\": \"10000000000000000\",\n \"takerTokenAmount\": \"20000000000000000\",\n \"expirationUnixTimestampSec\": \"42\",\n \"salt\": \"67006738228878699843088602623665307406148487219438534730168799356281242528500\"\n}" - }, - "url": { - "raw": "{{url}}/fees", - "host": ["{{url}}"], - "path": ["fees"] - }, - "description": - "Given an unsigned order without the fee-related properties, returns the required feeRecipient, makerFee, and takerFee of that order." - }, - "response": [] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "75d66506-0fa9-4b0e-982b-ef53bf3310f8", - "type": "text/javascript", - "exec": [""] - } - }, - { - "listen": "test", - "script": { - "id": "4c5f9f7b-8635-4bdb-9240-a74754a2de4f", - "type": "text/javascript", - "exec": [ - "const schema = tv4.getSchema('/RelayerApiFeesResponse');", - "const responseJsonData = pm.response.json();", - "", - "pm.test('Schema is valid', function() {", - " pm.expect(tv4.validate(responseJsonData, schema)).to.be.true;", - "});", - "" - ] - } - } - ] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "da60f639-df79-4f4d-9861-79219f5fc341", - "type": "text/javascript", - "exec": [ - "const schemaKeysString = pm.environment.get('schemaKeys');", - "const schemaKeys = JSON.parse(schemaKeysString);", - "_.forEach(schemaKeys, function(schemaKey) {", - " const schemaString = pm.environment.get(schemaKey);", - " const schema = JSON.parse(schemaString);", - " tv4.addSchema(schema);", - "});", - "" - ] - } - }, - { - "listen": "test", - "script": { - "id": "b4917e72-ac87-421d-b7a5-21b64285ba5b", - "type": "text/javascript", - "exec": [ - "pm.test('Has Content-Type header with value application/json', function () {", - " pm.response.to.have.header('Content-Type');", - " const contentType = postman.getResponseHeader('Content-Type');", - " pm.expect(contentType).to.include('application/json');", - "});", - "" - ] - } - } - ] -} diff --git a/packages/sra-report/src/globals.d.ts b/packages/sra-report/src/globals.d.ts index 0d3beb446..1efa4fe6d 100644 --- a/packages/sra-report/src/globals.d.ts +++ b/packages/sra-report/src/globals.d.ts @@ -1,6 +1,27 @@ +declare module 'dirty-chai'; + declare module 'newman' { - // tslint:disable-next-line:completed-docs - export function run(options: any, callback?: () => void): void; + export interface NewmanRunSummary { + run: NewmanRun; + } + export interface NewmanRun { + executions: NewmanRunExecution[]; + } + export interface NewmanRunExecution { + item: NewmanRunExecutionItem; + assertions: NewmanRunExecutionAssertion[]; + } + export interface NewmanRunExecutionItem { + name: string; + } + export interface NewmanRunExecutionAssertion { + assertion: string; + error: NewmanRunExecutionAssertionError; + } + export interface NewmanRunExecutionAssertionError { + message: string; + } + export function run(options: any, callback?: (err: Error | null, summary: NewmanRunSummary) => void): void; } declare module '*.json' { diff --git a/packages/sra-report/src/index.ts b/packages/sra-report/src/index.ts index d23549916..022464d28 100644 --- a/packages/sra-report/src/index.ts +++ b/packages/sra-report/src/index.ts @@ -7,12 +7,11 @@ import * as _ from 'lodash'; import * as newman from 'newman'; import * as yargs from 'yargs'; -import * as sraReportCollectionJSON from '../postman_configs/collections/sra_report.postman_collection.json'; +import * as sraReportCollectionJSON from '../../postman_collections/sra_report.postman_collection.json'; import { postmanEnvironmentFactory } from './postman_environment_factory'; import { utils } from './utils'; -const newmanRunAsync = promisify(newman.run); const DEFAULT_NETWORK_ID = 1; const SUPPORTED_NETWORK_IDS = [1, 3, 4, 42]; @@ -97,6 +96,6 @@ const mainAsync = async () => { exportEnvironment: args.exportEnvironment, ...newmanReporterOptions, }; - await newmanRunAsync(newmanRunOptions); + await utils.newmanRunAsync(newmanRunOptions); }; mainAsync().catch(utils.log); diff --git a/packages/sra-report/src/utils.ts b/packages/sra-report/src/utils.ts index 5423cabd9..57c1b5af3 100644 --- a/packages/sra-report/src/utils.ts +++ b/packages/sra-report/src/utils.ts @@ -1,5 +1,9 @@ +import { promisify } from '@0xproject/utils'; +import { NewmanRunSummary, run as newmanRun } from 'newman'; + export const utils = { log(...args: any[]): void { console.log(...args); // tslint:disable-line:no-console }, + newmanRunAsync: promisify(newmanRun), }; diff --git a/packages/sra-report/test/environments/postman_environment.json b/packages/sra-report/test/environments/postman_environment.json new file mode 100644 index 000000000..e26a47e5f --- /dev/null +++ b/packages/sra-report/test/environments/postman_environment.json @@ -0,0 +1,223 @@ +{ + "id": "f23e415f-99a8-4d47-8796-6400af77d85f", + "name": "SRA Report", + "values": [ + { + "type": "any", + "value": "{\"id\":\"/Number\",\"type\":\"string\",\"pattern\":\"^\\\\d+(\\\\.\\\\d+)?$\"}", + "key": "NumberSchema" + }, + { + "type": "any", + "value": "{\"id\":\"/Address\",\"type\":\"string\",\"pattern\":\"^0x[0-9a-f]{40}$\"}", + "key": "AddressSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/ECSignature\",\"properties\":{\"v\":{\"type\":\"number\",\"minimum\":27,\"maximum\":28},\"r\":{\"$ref\":\"/ECSignatureParameter\"},\"s\":{\"$ref\":\"/ECSignatureParameter\"}},\"required\":[\"v\",\"r\",\"s\"],\"type\":\"object\"}", + "key": "ECSignatureSchema" + }, + { + "type": "any", + "value": "{\"id\":\"/ECSignatureParameter\",\"type\":\"string\",\"pattern\":\"^0[xX][0-9A-Fa-f]{64}$\"}", + "key": "ECSignatureParameterSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/IndexFilterValues\",\"additionalProperties\":{\"oneOf\":[{\"$ref\":\"/Number\"},{\"$ref\":\"/Address\"},{\"$ref\":\"/OrderHashSchema\"}]},\"type\":\"object\"}", + "key": "IndexFilterValuesSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/OrderCancellationRequests\",\"type\":\"array\",\"items\":{\"properties\":{\"order\":{\"$ref\":\"/Order\"},\"takerTokenCancelAmount\":{\"$ref\":\"/Number\"}},\"required\":[\"order\",\"takerTokenCancelAmount\"],\"type\":\"object\"}}", + "key": "OrderCancellationRequestsSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/OrderFillOrKillRequests\",\"type\":\"array\",\"items\":{\"properties\":{\"signedOrder\":{\"$ref\":\"/SignedOrder\"},\"fillTakerAmount\":{\"$ref\":\"/Number\"}},\"required\":[\"signedOrder\",\"fillTakerAmount\"],\"type\":\"object\"}}", + "key": "OrderFillOrKillRequestsSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/OrderFillRequests\",\"type\":\"array\",\"items\":{\"properties\":{\"signedOrder\":{\"$ref\":\"/SignedOrder\"},\"takerTokenFillAmount\":{\"$ref\":\"/Number\"}},\"required\":[\"signedOrder\",\"takerTokenFillAmount\"],\"type\":\"object\"}}", + "key": "OrderFillRequestsSchema" + }, + { + "type": "any", + "value": "{\"id\":\"/OrderHashSchema\",\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"}", + "key": "OrderHashSchemaSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/Order\",\"properties\":{\"maker\":{\"$ref\":\"/Address\"},\"taker\":{\"$ref\":\"/Address\"},\"makerFee\":{\"$ref\":\"/Number\"},\"takerFee\":{\"$ref\":\"/Number\"},\"makerTokenAmount\":{\"$ref\":\"/Number\"},\"takerTokenAmount\":{\"$ref\":\"/Number\"},\"makerTokenAddress\":{\"$ref\":\"/Address\"},\"takerTokenAddress\":{\"$ref\":\"/Address\"},\"salt\":{\"$ref\":\"/Number\"},\"feeRecipient\":{\"$ref\":\"/Address\"},\"expirationUnixTimestampSec\":{\"$ref\":\"/Number\"},\"exchangeContractAddress\":{\"$ref\":\"/Address\"}},\"required\":[\"maker\",\"taker\",\"makerFee\",\"takerFee\",\"makerTokenAmount\",\"takerTokenAmount\",\"salt\",\"feeRecipient\",\"expirationUnixTimestampSec\",\"exchangeContractAddress\"],\"type\":\"object\"}", + "key": "OrderSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/SignedOrder\",\"allOf\":[{\"$ref\":\"/Order\"},{\"properties\":{\"ecSignature\":{\"$ref\":\"/ECSignature\"}},\"required\":[\"ecSignature\"]}]}", + "key": "SignedOrderSchema" + }, + { + "type": "any", + "value": "{\"id\":\"/signedOrdersSchema\",\"type\":\"array\",\"items\":{\"$ref\":\"/SignedOrder\"}}", + "key": "signedOrdersSchemaSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/BlockParam\",\"oneOf\":[{\"type\":\"number\"},{\"enum\":[\"latest\",\"earliest\",\"pending\"]}]}", + "key": "BlockParamSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/BlockRange\",\"properties\":{\"fromBlock\":{\"$ref\":\"/BlockParam\"},\"toBlock\":{\"$ref\":\"/BlockParam\"}},\"type\":\"object\"}", + "key": "BlockRangeSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/Token\",\"properties\":{\"name\":{\"type\":\"string\"},\"symbol\":{\"type\":\"string\"},\"decimals\":{\"type\":\"number\"},\"address\":{\"$ref\":\"/Address\"}},\"required\":[\"name\",\"symbol\",\"decimals\",\"address\"],\"type\":\"object\"}", + "key": "TokenSchema" + }, + { + "type": "any", + "value": "{\"id\":\"/JsNumber\",\"type\":\"number\",\"minimum\":0}", + "key": "JsNumberSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/TxData\",\"properties\":{\"from\":{\"$ref\":\"/Address\"},\"to\":{\"$ref\":\"/Address\"},\"value\":{\"oneOf\":[{\"$ref\":\"/Number\"},{\"$ref\":\"/JsNumber\"}]},\"gas\":{\"oneOf\":[{\"$ref\":\"/Number\"},{\"$ref\":\"/JsNumber\"}]},\"gasPrice\":{\"oneOf\":[{\"$ref\":\"/Number\"},{\"$ref\":\"/JsNumber\"}]},\"data\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-f]*$\"},\"nonce\":{\"type\":\"number\",\"minimum\":0}},\"required\":[\"from\"],\"type\":\"object\",\"additionalProperties\":false}", + "key": "TxDataSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiErrorResponse\",\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"number\"},\"reason\":{\"type\":\"string\"},\"validationErrors\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"},\"code\":{\"type\":\"number\"},\"reason\":{\"type\":\"string\"}},\"required\":[\"field\",\"code\",\"reason\"]}}},\"required\":[\"code\",\"reason\"]}", + "key": "RelayerApiErrorResponseSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiFeesPayload\",\"type\":\"object\",\"properties\":{\"exchangeContractAddress\":{\"$ref\":\"/Address\"},\"maker\":{\"$ref\":\"/Address\"},\"taker\":{\"$ref\":\"/Address\"},\"makerTokenAddress\":{\"$ref\":\"/Address\"},\"takerTokenAddress\":{\"$ref\":\"/Address\"},\"makerTokenAmount\":{\"$ref\":\"/Number\"},\"takerTokenAmount\":{\"$ref\":\"/Number\"},\"expirationUnixTimestampSec\":{\"$ref\":\"/Number\"},\"salt\":{\"$ref\":\"/Number\"}},\"required\":[\"exchangeContractAddress\",\"maker\",\"taker\",\"makerTokenAddress\",\"takerTokenAddress\",\"expirationUnixTimestampSec\",\"salt\"]}", + "key": "RelayerApiFeesPayloadSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiFeesResponse\",\"type\":\"object\",\"properties\":{\"makerFee\":{\"$ref\":\"/Number\"},\"takerFee\":{\"$ref\":\"/Number\"},\"feeRecipient\":{\"$ref\":\"/Address\"}},\"required\":[\"makerFee\",\"takerFee\",\"feeRecipient\"]}", + "key": "RelayerApiFeesResponseSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiOrderBookResponse\",\"type\":\"object\",\"properties\":{\"bids\":{\"$ref\":\"/signedOrdersSchema\"},\"asks\":{\"$ref\":\"/signedOrdersSchema\"}},\"required\":[\"bids\",\"asks\"]}", + "key": "RelayerApiOrderBookResponseSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiTokenPairsResponse\",\"type\":\"array\",\"items\":{\"properties\":{\"tokenA\":{\"$ref\":\"/RelayerApiTokenTradeInfo\"},\"tokenB\":{\"$ref\":\"/RelayerApiTokenTradeInfo\"}},\"required\":[\"tokenA\",\"tokenB\"],\"type\":\"object\"}}", + "key": "RelayerApiTokenPairsResponseSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiTokenTradeInfo\",\"type\":\"object\",\"properties\":{\"address\":{\"$ref\":\"/Address\"},\"minAmount\":{\"$ref\":\"/Number\"},\"maxAmount\":{\"$ref\":\"/Number\"},\"precision\":{\"type\":\"number\"}},\"required\":[\"address\"]}", + "key": "RelayerApiTokenTradeInfoSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiOrderbookChannelSubscribe\",\"type\":\"object\",\"properties\":{\"type\":{\"enum\":[\"subscribe\"]},\"channel\":{\"enum\":[\"orderbook\"]},\"requestId\":{\"type\":\"number\"},\"payload\":{\"$ref\":\"/RelayerApiOrderbookChannelSubscribePayload\"}},\"required\":[\"type\",\"channel\",\"requestId\",\"payload\"]}", + "key": "RelayerApiOrderbookChannelSubscribeSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiOrderbookChannelSubscribePayload\",\"type\":\"object\",\"properties\":{\"baseTokenAddress\":{\"$ref\":\"/Address\"},\"quoteTokenAddress\":{\"$ref\":\"/Address\"},\"snapshot\":{\"type\":\"boolean\"},\"limit\":{\"type\":\"number\"}},\"required\":[\"baseTokenAddress\",\"quoteTokenAddress\"]}", + "key": "RelayerApiOrderbookChannelSubscribePayloadSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiOrderbookChannelUpdate\",\"type\":\"object\",\"properties\":{\"type\":{\"enum\":[\"update\"]},\"channel\":{\"enum\":[\"orderbook\"]},\"requestId\":{\"type\":\"number\"},\"payload\":{\"$ref\":\"/SignedOrder\"}},\"required\":[\"type\",\"channel\",\"requestId\",\"payload\"]}", + "key": "RelayerApiOrderbookChannelUpdateSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiOrderbookChannelSnapshot\",\"type\":\"object\",\"properties\":{\"type\":{\"enum\":[\"snapshot\"]},\"channel\":{\"enum\":[\"orderbook\"]},\"requestId\":{\"type\":\"number\"},\"payload\":{\"$ref\":\"/RelayerApiOrderbookChannelSnapshotPayload\"}},\"required\":[\"type\",\"channel\",\"requestId\",\"payload\"]}", + "key": "RelayerApiOrderbookChannelSnapshotSchema" + }, + { + "type": "any", + "value": + "{\"id\":\"/RelayerApiOrderbookChannelSnapshotPayload\",\"type\":\"object\",\"properties\":{\"bids\":{\"$ref\":\"/signedOrdersSchema\"},\"asks\":{\"$ref\":\"/signedOrdersSchema\"}},\"required\":[\"bids\",\"asks\"]}", + "key": "RelayerApiOrderbookChannelSnapshotPayloadSchema" + }, + { + "type": "any", + "value": + "[\"NumberSchema\",\"AddressSchema\",\"ECSignatureSchema\",\"ECSignatureParameterSchema\",\"IndexFilterValuesSchema\",\"OrderCancellationRequestsSchema\",\"OrderFillOrKillRequestsSchema\",\"OrderFillRequestsSchema\",\"OrderHashSchemaSchema\",\"OrderSchema\",\"SignedOrderSchema\",\"signedOrdersSchemaSchema\",\"BlockParamSchema\",\"BlockRangeSchema\",\"TokenSchema\",\"JsNumberSchema\",\"TxDataSchema\",\"RelayerApiErrorResponseSchema\",\"RelayerApiFeesPayloadSchema\",\"RelayerApiFeesResponseSchema\",\"RelayerApiOrderBookResponseSchema\",\"RelayerApiTokenPairsResponseSchema\",\"RelayerApiTokenTradeInfoSchema\",\"RelayerApiOrderbookChannelSubscribeSchema\",\"RelayerApiOrderbookChannelSubscribePayloadSchema\",\"RelayerApiOrderbookChannelUpdateSchema\",\"RelayerApiOrderbookChannelSnapshotSchema\",\"RelayerApiOrderbookChannelSnapshotPayloadSchema\"]", + "key": "schemaKeys" + }, + { + "type": "any", + "value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "key": "tokenContractAddress1" + }, + { + "type": "any", + "value": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "key": "tokenContractAddress2" + }, + { + "type": "any", + "value": "0x12459c951127e0c374ff9105dda097662a027093", + "key": "exchangeContractAddress" + }, + { + "type": "any", + "value": + "{\"orderHash\":\"0xe91e990bab4c9c6bd60ff3673222390e3da8b7bd9a50eab98a8cb20723b24ee1\",\"exchangeContractAddress\":\"0x12459c951127e0c374ff9105dda097662a027093\",\"maker\":\"0x93690d55b14d701c259ba7960395c095aa52c3a8\",\"taker\":\"0x0000000000000000000000000000000000000000\",\"makerTokenAddress\":\"0x2956356cd2a2bf3202f771f50d3d14a367b48070\",\"takerTokenAddress\":\"0x0abdace70d3790235af448c88547603b945604ea\",\"feeRecipient\":\"0xa258b39954cef5cb142fd567a46cddb31a670124\",\"makerTokenAmount\":\"2926675830000000000\",\"takerTokenAmount\":\"24386933000000000000000\",\"makerFee\":\"18419638100000000000\",\"takerFee\":\"35812978500000000000\",\"expirationUnixTimestampSec\":\"9223372036854775807\",\"salt\":\"89583415499996246176114840147523733506098603782358761236056286417408784066968\",\"ecSignature\":{\"r\":\"0x32eb5bbf713210274ddd885e6b555699bc0189676ff73a4dc98c4cac41d3a6a6\",\"s\":\"0x193eb9440df49dc7817b6142c0be021cd1f9fc0916d86c7b49e9e07a402f3645\",\"v\":28}}", + "key": "order" + }, + { + "type": "any", + "value": "0x93690d55b14d701c259ba7960395c095aa52c3a8", + "key": "orderMaker" + }, + { + "type": "any", + "value": "0x0000000000000000000000000000000000000000", + "key": "orderTaker" + }, + { + "type": "any", + "value": "0xa258b39954cef5cb142fd567a46cddb31a670124", + "key": "orderFeeRecipient" + }, + { + "type": "any", + "value": "0xe91e990bab4c9c6bd60ff3673222390e3da8b7bd9a50eab98a8cb20723b24ee1", + "key": "orderHash" + }, + { + "type": "any", + "value": "https://example.com", + "key": "url" + } + ], + "_postman_variable_scope": "environment", + "_postman_exported_at": "2018-03-10T23:53:03.913Z", + "_postman_exported_using": "Newman/3.9.3" +} diff --git a/packages/sra-report/test/fixtures/v0/token_pairs/default_request.json b/packages/sra-report/test/fixtures/v0/token_pairs/default_request.json new file mode 100644 index 000000000..cd19be1e1 --- /dev/null +++ b/packages/sra-report/test/fixtures/v0/token_pairs/default_request.json @@ -0,0 +1,3698 @@ +[ + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x01b3ec4aae1b8729529beb4965f27d008788b0eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x05f4a42e251f2d52b8ed15e9fedaacfcef1fad27", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x076c97e1c869072ee22f8c91978c99b4bcb02591", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x09d8b66c48424324b25754a873e290cae5dca439", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0abdace70d3790235af448c88547603b945604ea", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0cf0ee63788a0849fe5297f3407f701e122cc023", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0e0989b1f9b8a38983c2ba8053269ca62ec9b195", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0f513ffb4926ff82d7f60a05069047aca295c413", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0f5d2fb29fb7d3cfee444a200298f468908cc942", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1063ce524265d5a3a624f4914acd573dd89ce988", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x106aa49295b525fcf959aa75ec3f7dcbf5352f1c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x107c4504cd79c5d2696ea0030a8dd4e92601b82e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1183f92a5624d68e85ffb9170f16bf0443b4c242", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12480e24eb5bec1a9d4369cab6a80cad3c0a377a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12b19d3e2ccc14da04fae33e63652ce469b3f2fd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12fef5e57bf45873cd9b62e9dbd7bfb99e32d73e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x168296bb09e24a88805cb9c33356536b980d3fc5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x177d39ac676ed1c67a2b268ad7f1e58826e5b0af", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x24692791bc444c5cd0b81e3cbcaba4b04acd1f3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27054b13b1b798b345b591a4d22e6562d47ea75a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27695e09149adc738a978e9a678f99e4c39e9eb9", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27dce1ec4d3f72c3e457cc50354f1f975ddef488", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27f610bf36eca0939093343ac28b1534a721dbb4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x2956356cd2a2bf3202f771f50d3d14a367b48070", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x340d2bde5eb28c1eed91b2f790723e3b160613b7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3597bfd533a99c9aa083587b074434e61eb0a258", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3618516f45cd3c913f81f9987af41077932bc40d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x386467f1f3ddbe832448650418311a479eecfc57", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3883f5e181fccaf8410fa61e12b59bad963fb645", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x399a0e6fbeb3d74c85357439f4c8aed9678a5cbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x39bb259f66e1c59d5abef88375979b4d20d98022", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4156d3342d5c385a87d264f90653733592000581", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x419d0d8bdd9af5e606ae2232ed285aff190e711b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x41e5560054824ea6b0732e656e3ad64e20e94e45", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x42d6622dece394b54999fbd73d108123806f6a18", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x44f588aeeb8c44471439d1270b3603c66a9262f1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4d8fc1453a0f359e99c9675954e656d80d996fbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4df47b4969b2911c966506e3592c41389493953b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4df812f6064def1e5e029f1ca858777cc98d2d81", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x514910771af9ca656af840dff83e8264ecf986ca", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x52a7cb918c11a16958be40cba7e31e32a499a465", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x533ef0984b2faa227acc620c67cce12aa39cd8cd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x554c20b7c486beee439277b4540a434566dc4c02", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x56ba2ee7890461f463f7be02aac3099f6d5811a8", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5732046a883704404f284ce41ffadd5b007fd668", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x595832f8fc6bf59c85c527fec3740a1b7a361269", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5af2be193a6abca9c8817001f45744777db30756", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5b2e4a700dfbc560061e957edec8f6eeeb74a320", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5bc7e5f0ab8b2e10d2d0a3f21739fce62459aef3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5e3346444010135322268a4630d2ed5f8d09446c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x607f4c5bb672230e8672085532f7e901544a7375", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x614ea929892ea43d3ea2c5e3311b01cc589bad6c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6425c6be902d692ae2db752b3c268afadb099d3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x672a1ad4f667fb18a333af13667aa0af1f5b5bdd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6781a0f84c7e9e846dcb84a9a5bd49333067b104", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6810e776880c02933d47db1b9fc05908e5386b96", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x744d70fdbe2ba4cf95131626614a1763df805b9e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7654915a1b82d6d2d0afc37c52af556ea8983c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7b69b78cc7fee48202c208609ae6d1f78ce42e13", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7d4b8cce0591c9044a22ee543533b72e976e36c3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x80fb784b7ed66730e8b1dbd9820afd29931aab03", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x814964b1bceaf24e26296d031eadf134a2ca4105", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x865e3707a580f9db89304005cddd050ade8873eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x88fcfbc22c6d3dbaa25af478c578978339bde77a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8a854288a5976036a725879164ca3e91d30c6a1b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8ae4bf2c33a8e667de34b54938b0ccd03eb8cc06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8eb24319393716668d768dcec29356ae9cffe285", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8f8221afbb33998d8584a2b05749ba73c37a938a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9214ec02cb71cba0ada6896b8da260736a67ab10", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x923108a439c4e8c2315c4f6521e5ce95b44e9b4c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x960b236a07cf122663c4303350609a66a7b288c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x983f6d60db79ea8ca4eb9968c6aff8cfa04b3c63", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x99ea4db9ee77acd40b119bd1dc4e33e1c070b80d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9a005c9a89bd72a4bd27721e7a09a3c11d2b03c4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa8006c4ca56f24d6836727d106349320db7fef82", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa87c3ec87eb802aad080df0adb331e504d327e5d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xab16e0d25c06cb376259cc18c1de4aca57605589", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xac3211a5025414af2866ff09c23fc18bc97e79b1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xacfa209fb73bf3dd5bbfb1101b9bc999c49062a5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb24754be79281553dc1adc160ddf5cd9b74361a4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb3bd49e28f8f832b8d1e246106991e546c323502", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb45a50545beeab73f38f31e5973768c421805e5e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb4efd85c19999d84251304bda99e90b92300bd93", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb5a5f22694352c15b00323844ad545abb2b11028", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb5c0e43a6330b9eb904ec57ea24d70269ae4652e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb62d18dea74045e822352ce4b3ee77319dc5ff2f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb98d4c97425d9908e66e53a6fdf673acca0be986", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xba2184520a1cc49a6159c57e61e1844e085615b6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xba5f11b16b155792cf3b2e6880e8706859a8aeb6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbdc5bac39dbe132b1e030e898ae3830017d7d969", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbf2179859fc6d5bee9bf9158632dc51678a4100e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc27a2f05fa577a83ba0fdb4c38443c0718356501", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc438b4c0dfbb1593be6dee03bbd1a84bb3aa6213", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc66ea802717bfb9833400264dd12c2bceaa34a6d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc997d07b0bc607b6d1bcb6fb9d4a5579c466c3e5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd0a4b8946cb52f0661273bfbc6fd0e0c75fc6433", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd26114cd6ee289accf82350c8d8487fedb8a0c07", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd2d6158683aee4cc838067727209a0aaf4359de3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd4c435f5b09f855c3317c8524cb1f586e42795fa", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd4fa1460f537bb9085d22c7bccb5dd450ef28e3a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd8912c10681d8b21fd3742244f44658dba12264e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe2e6d4be086c6938b53b22144855eef674281639", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe94327d07fc17907b4db788e5adf2ed424addff6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea097a2b1db00627b2fa17460ad260c016016977", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea1f346faf023f974eb5adaf088bbcdf02d761f4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea38eaa3c86c8f9b751533ba2e562deb9acded40", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeab43193cf0623073ca89db9b712796356fa7414", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeb2da9fac54284cea731d1f10bb34eecb3c00c14", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeb7c20027172e5d143fb030d50f91cece2d1485d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xef2463099360a085f1f10b076ed72ef625497a06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf433089366899d83a9f26a773d59ec7ecf30355e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf6b55acbbc49f4524aa48d19281a9a77c54de10f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf6cfe53d6febaeea051f400ff5fc14f0cbbdaca1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf7b098298f7c69fc14610bf71d5e02c60792894c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xfec0cf7fe078a500abf15f1284958f22049c2c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x01b3ec4aae1b8729529beb4965f27d008788b0eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x05f4a42e251f2d52b8ed15e9fedaacfcef1fad27", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x076c97e1c869072ee22f8c91978c99b4bcb02591", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x09d8b66c48424324b25754a873e290cae5dca439", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0abdace70d3790235af448c88547603b945604ea", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0cf0ee63788a0849fe5297f3407f701e122cc023", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0e0989b1f9b8a38983c2ba8053269ca62ec9b195", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0f513ffb4926ff82d7f60a05069047aca295c413", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0f5d2fb29fb7d3cfee444a200298f468908cc942", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1063ce524265d5a3a624f4914acd573dd89ce988", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x106aa49295b525fcf959aa75ec3f7dcbf5352f1c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x107c4504cd79c5d2696ea0030a8dd4e92601b82e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1183f92a5624d68e85ffb9170f16bf0443b4c242", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12480e24eb5bec1a9d4369cab6a80cad3c0a377a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12b19d3e2ccc14da04fae33e63652ce469b3f2fd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12fef5e57bf45873cd9b62e9dbd7bfb99e32d73e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x168296bb09e24a88805cb9c33356536b980d3fc5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x177d39ac676ed1c67a2b268ad7f1e58826e5b0af", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x24692791bc444c5cd0b81e3cbcaba4b04acd1f3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27054b13b1b798b345b591a4d22e6562d47ea75a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27695e09149adc738a978e9a678f99e4c39e9eb9", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27dce1ec4d3f72c3e457cc50354f1f975ddef488", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27f610bf36eca0939093343ac28b1534a721dbb4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x2956356cd2a2bf3202f771f50d3d14a367b48070", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x340d2bde5eb28c1eed91b2f790723e3b160613b7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3597bfd533a99c9aa083587b074434e61eb0a258", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3618516f45cd3c913f81f9987af41077932bc40d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x386467f1f3ddbe832448650418311a479eecfc57", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3883f5e181fccaf8410fa61e12b59bad963fb645", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x399a0e6fbeb3d74c85357439f4c8aed9678a5cbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x39bb259f66e1c59d5abef88375979b4d20d98022", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4156d3342d5c385a87d264f90653733592000581", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x419d0d8bdd9af5e606ae2232ed285aff190e711b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x41e5560054824ea6b0732e656e3ad64e20e94e45", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x42d6622dece394b54999fbd73d108123806f6a18", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x44f588aeeb8c44471439d1270b3603c66a9262f1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4d8fc1453a0f359e99c9675954e656d80d996fbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4df47b4969b2911c966506e3592c41389493953b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4df812f6064def1e5e029f1ca858777cc98d2d81", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x514910771af9ca656af840dff83e8264ecf986ca", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x52a7cb918c11a16958be40cba7e31e32a499a465", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x533ef0984b2faa227acc620c67cce12aa39cd8cd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x554c20b7c486beee439277b4540a434566dc4c02", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x56ba2ee7890461f463f7be02aac3099f6d5811a8", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5732046a883704404f284ce41ffadd5b007fd668", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x595832f8fc6bf59c85c527fec3740a1b7a361269", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5af2be193a6abca9c8817001f45744777db30756", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5b2e4a700dfbc560061e957edec8f6eeeb74a320", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5bc7e5f0ab8b2e10d2d0a3f21739fce62459aef3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5e3346444010135322268a4630d2ed5f8d09446c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x607f4c5bb672230e8672085532f7e901544a7375", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x614ea929892ea43d3ea2c5e3311b01cc589bad6c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6425c6be902d692ae2db752b3c268afadb099d3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x672a1ad4f667fb18a333af13667aa0af1f5b5bdd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6781a0f84c7e9e846dcb84a9a5bd49333067b104", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6810e776880c02933d47db1b9fc05908e5386b96", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x744d70fdbe2ba4cf95131626614a1763df805b9e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7654915a1b82d6d2d0afc37c52af556ea8983c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7b69b78cc7fee48202c208609ae6d1f78ce42e13", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7d4b8cce0591c9044a22ee543533b72e976e36c3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x80fb784b7ed66730e8b1dbd9820afd29931aab03", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x814964b1bceaf24e26296d031eadf134a2ca4105", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x865e3707a580f9db89304005cddd050ade8873eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x88fcfbc22c6d3dbaa25af478c578978339bde77a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8a854288a5976036a725879164ca3e91d30c6a1b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8ae4bf2c33a8e667de34b54938b0ccd03eb8cc06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8eb24319393716668d768dcec29356ae9cffe285", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8f8221afbb33998d8584a2b05749ba73c37a938a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9214ec02cb71cba0ada6896b8da260736a67ab10", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x923108a439c4e8c2315c4f6521e5ce95b44e9b4c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x960b236a07cf122663c4303350609a66a7b288c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x983f6d60db79ea8ca4eb9968c6aff8cfa04b3c63", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x99ea4db9ee77acd40b119bd1dc4e33e1c070b80d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9a005c9a89bd72a4bd27721e7a09a3c11d2b03c4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa8006c4ca56f24d6836727d106349320db7fef82", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa87c3ec87eb802aad080df0adb331e504d327e5d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xab16e0d25c06cb376259cc18c1de4aca57605589", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xac3211a5025414af2866ff09c23fc18bc97e79b1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xacfa209fb73bf3dd5bbfb1101b9bc999c49062a5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb24754be79281553dc1adc160ddf5cd9b74361a4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb3bd49e28f8f832b8d1e246106991e546c323502", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb45a50545beeab73f38f31e5973768c421805e5e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb4efd85c19999d84251304bda99e90b92300bd93", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb5a5f22694352c15b00323844ad545abb2b11028", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb5c0e43a6330b9eb904ec57ea24d70269ae4652e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb62d18dea74045e822352ce4b3ee77319dc5ff2f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb98d4c97425d9908e66e53a6fdf673acca0be986", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xba2184520a1cc49a6159c57e61e1844e085615b6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xba5f11b16b155792cf3b2e6880e8706859a8aeb6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbdc5bac39dbe132b1e030e898ae3830017d7d969", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbf2179859fc6d5bee9bf9158632dc51678a4100e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc27a2f05fa577a83ba0fdb4c38443c0718356501", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc438b4c0dfbb1593be6dee03bbd1a84bb3aa6213", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc66ea802717bfb9833400264dd12c2bceaa34a6d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc997d07b0bc607b6d1bcb6fb9d4a5579c466c3e5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd0a4b8946cb52f0661273bfbc6fd0e0c75fc6433", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd26114cd6ee289accf82350c8d8487fedb8a0c07", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd2d6158683aee4cc838067727209a0aaf4359de3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd4c435f5b09f855c3317c8524cb1f586e42795fa", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd4fa1460f537bb9085d22c7bccb5dd450ef28e3a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd8912c10681d8b21fd3742244f44658dba12264e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe2e6d4be086c6938b53b22144855eef674281639", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe94327d07fc17907b4db788e5adf2ed424addff6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea097a2b1db00627b2fa17460ad260c016016977", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea1f346faf023f974eb5adaf088bbcdf02d761f4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea38eaa3c86c8f9b751533ba2e562deb9acded40", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeab43193cf0623073ca89db9b712796356fa7414", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeb2da9fac54284cea731d1f10bb34eecb3c00c14", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeb7c20027172e5d143fb030d50f91cece2d1485d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xef2463099360a085f1f10b076ed72ef625497a06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf433089366899d83a9f26a773d59ec7ecf30355e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf6b55acbbc49f4524aa48d19281a9a77c54de10f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf6cfe53d6febaeea051f400ff5fc14f0cbbdaca1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf7b098298f7c69fc14610bf71d5e02c60792894c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xfec0cf7fe078a500abf15f1284958f22049c2c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + } +] diff --git a/packages/sra-report/test/fixtures/v0/token_pairs/malformed.json b/packages/sra-report/test/fixtures/v0/token_pairs/malformed.json new file mode 100644 index 000000000..19e076c41 --- /dev/null +++ b/packages/sra-report/test/fixtures/v0/token_pairs/malformed.json @@ -0,0 +1,30 @@ +[ + { + "tokenA": { + "address": "4a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x01b3ec4aae1b8729529beb4965f27d008788b0eb", + "minAmount": "1", + "maxAmount": 999999999999999999999, + "precision": 8 + } + }, + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenX": { + "address": "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + } +] diff --git a/packages/sra-report/test/fixtures/v0/token_pairs/token_a_and_token_b_params.json b/packages/sra-report/test/fixtures/v0/token_pairs/token_a_and_token_b_params.json new file mode 100644 index 000000000..cdb9c477b --- /dev/null +++ b/packages/sra-report/test/fixtures/v0/token_pairs/token_a_and_token_b_params.json @@ -0,0 +1,16 @@ +[ + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + } +] diff --git a/packages/sra-report/test/fixtures/v0/token_pairs/token_a_param.json b/packages/sra-report/test/fixtures/v0/token_pairs/token_a_param.json new file mode 100644 index 000000000..7c2e8cb3a --- /dev/null +++ b/packages/sra-report/test/fixtures/v0/token_pairs/token_a_param.json @@ -0,0 +1,1864 @@ +[ + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x01b3ec4aae1b8729529beb4965f27d008788b0eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x05f4a42e251f2d52b8ed15e9fedaacfcef1fad27", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x076c97e1c869072ee22f8c91978c99b4bcb02591", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x09d8b66c48424324b25754a873e290cae5dca439", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0abdace70d3790235af448c88547603b945604ea", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0cf0ee63788a0849fe5297f3407f701e122cc023", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0e0989b1f9b8a38983c2ba8053269ca62ec9b195", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0f513ffb4926ff82d7f60a05069047aca295c413", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x0f5d2fb29fb7d3cfee444a200298f468908cc942", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1063ce524265d5a3a624f4914acd573dd89ce988", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x106aa49295b525fcf959aa75ec3f7dcbf5352f1c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x107c4504cd79c5d2696ea0030a8dd4e92601b82e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1183f92a5624d68e85ffb9170f16bf0443b4c242", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12480e24eb5bec1a9d4369cab6a80cad3c0a377a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12b19d3e2ccc14da04fae33e63652ce469b3f2fd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x12fef5e57bf45873cd9b62e9dbd7bfb99e32d73e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x168296bb09e24a88805cb9c33356536b980d3fc5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x177d39ac676ed1c67a2b268ad7f1e58826e5b0af", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x24692791bc444c5cd0b81e3cbcaba4b04acd1f3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27054b13b1b798b345b591a4d22e6562d47ea75a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27695e09149adc738a978e9a678f99e4c39e9eb9", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27dce1ec4d3f72c3e457cc50354f1f975ddef488", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x27f610bf36eca0939093343ac28b1534a721dbb4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x2956356cd2a2bf3202f771f50d3d14a367b48070", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x340d2bde5eb28c1eed91b2f790723e3b160613b7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3597bfd533a99c9aa083587b074434e61eb0a258", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3618516f45cd3c913f81f9987af41077932bc40d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x386467f1f3ddbe832448650418311a479eecfc57", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3883f5e181fccaf8410fa61e12b59bad963fb645", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x399a0e6fbeb3d74c85357439f4c8aed9678a5cbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x39bb259f66e1c59d5abef88375979b4d20d98022", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4156d3342d5c385a87d264f90653733592000581", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x419d0d8bdd9af5e606ae2232ed285aff190e711b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x41e5560054824ea6b0732e656e3ad64e20e94e45", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x42d6622dece394b54999fbd73d108123806f6a18", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x44f588aeeb8c44471439d1270b3603c66a9262f1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4d8fc1453a0f359e99c9675954e656d80d996fbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4df47b4969b2911c966506e3592c41389493953b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x4df812f6064def1e5e029f1ca858777cc98d2d81", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x514910771af9ca656af840dff83e8264ecf986ca", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x52a7cb918c11a16958be40cba7e31e32a499a465", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x533ef0984b2faa227acc620c67cce12aa39cd8cd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x554c20b7c486beee439277b4540a434566dc4c02", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x56ba2ee7890461f463f7be02aac3099f6d5811a8", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5732046a883704404f284ce41ffadd5b007fd668", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x595832f8fc6bf59c85c527fec3740a1b7a361269", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5af2be193a6abca9c8817001f45744777db30756", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5b2e4a700dfbc560061e957edec8f6eeeb74a320", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5bc7e5f0ab8b2e10d2d0a3f21739fce62459aef3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x5e3346444010135322268a4630d2ed5f8d09446c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x607f4c5bb672230e8672085532f7e901544a7375", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x614ea929892ea43d3ea2c5e3311b01cc589bad6c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6425c6be902d692ae2db752b3c268afadb099d3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x672a1ad4f667fb18a333af13667aa0af1f5b5bdd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6781a0f84c7e9e846dcb84a9a5bd49333067b104", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x6810e776880c02933d47db1b9fc05908e5386b96", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x744d70fdbe2ba4cf95131626614a1763df805b9e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7654915a1b82d6d2d0afc37c52af556ea8983c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7b69b78cc7fee48202c208609ae6d1f78ce42e13", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x7d4b8cce0591c9044a22ee543533b72e976e36c3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x80fb784b7ed66730e8b1dbd9820afd29931aab03", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x814964b1bceaf24e26296d031eadf134a2ca4105", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x865e3707a580f9db89304005cddd050ade8873eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x88fcfbc22c6d3dbaa25af478c578978339bde77a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8a854288a5976036a725879164ca3e91d30c6a1b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8ae4bf2c33a8e667de34b54938b0ccd03eb8cc06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8eb24319393716668d768dcec29356ae9cffe285", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x8f8221afbb33998d8584a2b05749ba73c37a938a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9214ec02cb71cba0ada6896b8da260736a67ab10", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x923108a439c4e8c2315c4f6521e5ce95b44e9b4c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x960b236a07cf122663c4303350609a66a7b288c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x983f6d60db79ea8ca4eb9968c6aff8cfa04b3c63", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x99ea4db9ee77acd40b119bd1dc4e33e1c070b80d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9a005c9a89bd72a4bd27721e7a09a3c11d2b03c4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa8006c4ca56f24d6836727d106349320db7fef82", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xa87c3ec87eb802aad080df0adb331e504d327e5d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xab16e0d25c06cb376259cc18c1de4aca57605589", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xac3211a5025414af2866ff09c23fc18bc97e79b1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xacfa209fb73bf3dd5bbfb1101b9bc999c49062a5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb24754be79281553dc1adc160ddf5cd9b74361a4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb3bd49e28f8f832b8d1e246106991e546c323502", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb45a50545beeab73f38f31e5973768c421805e5e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb4efd85c19999d84251304bda99e90b92300bd93", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb5a5f22694352c15b00323844ad545abb2b11028", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb5c0e43a6330b9eb904ec57ea24d70269ae4652e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb62d18dea74045e822352ce4b3ee77319dc5ff2f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xb98d4c97425d9908e66e53a6fdf673acca0be986", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xba2184520a1cc49a6159c57e61e1844e085615b6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xba5f11b16b155792cf3b2e6880e8706859a8aeb6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbdc5bac39dbe132b1e030e898ae3830017d7d969", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xbf2179859fc6d5bee9bf9158632dc51678a4100e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc27a2f05fa577a83ba0fdb4c38443c0718356501", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc438b4c0dfbb1593be6dee03bbd1a84bb3aa6213", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc66ea802717bfb9833400264dd12c2bceaa34a6d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc997d07b0bc607b6d1bcb6fb9d4a5579c466c3e5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd0a4b8946cb52f0661273bfbc6fd0e0c75fc6433", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd26114cd6ee289accf82350c8d8487fedb8a0c07", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd2d6158683aee4cc838067727209a0aaf4359de3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd4c435f5b09f855c3317c8524cb1f586e42795fa", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd4fa1460f537bb9085d22c7bccb5dd450ef28e3a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xd8912c10681d8b21fd3742244f44658dba12264e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe2e6d4be086c6938b53b22144855eef674281639", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xe94327d07fc17907b4db788e5adf2ed424addff6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea097a2b1db00627b2fa17460ad260c016016977", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea1f346faf023f974eb5adaf088bbcdf02d761f4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xea38eaa3c86c8f9b751533ba2e562deb9acded40", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeab43193cf0623073ca89db9b712796356fa7414", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeb2da9fac54284cea731d1f10bb34eecb3c00c14", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xeb7c20027172e5d143fb030d50f91cece2d1485d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xef2463099360a085f1f10b076ed72ef625497a06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf433089366899d83a9f26a773d59ec7ecf30355e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf6b55acbbc49f4524aa48d19281a9a77c54de10f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf6cfe53d6febaeea051f400ff5fc14f0cbbdaca1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf7b098298f7c69fc14610bf71d5e02c60792894c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenA": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xfec0cf7fe078a500abf15f1284958f22049c2c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + } +] diff --git a/packages/sra-report/test/fixtures/v0/token_pairs/token_b_param.json b/packages/sra-report/test/fixtures/v0/token_pairs/token_b_param.json new file mode 100644 index 000000000..1be6cae96 --- /dev/null +++ b/packages/sra-report/test/fixtures/v0/token_pairs/token_b_param.json @@ -0,0 +1,1864 @@ +[ + { + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x01b3ec4aae1b8729529beb4965f27d008788b0eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0371a82e4a9d0a4312f3ee2ac9c6958512891372", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x05f4a42e251f2d52b8ed15e9fedaacfcef1fad27", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x076c97e1c869072ee22f8c91978c99b4bcb02591", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x09d8b66c48424324b25754a873e290cae5dca439", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0abdace70d3790235af448c88547603b945604ea", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0cf0ee63788a0849fe5297f3407f701e122cc023", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0e0989b1f9b8a38983c2ba8053269ca62ec9b195", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0f513ffb4926ff82d7f60a05069047aca295c413", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x0f5d2fb29fb7d3cfee444a200298f468908cc942", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x1063ce524265d5a3a624f4914acd573dd89ce988", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x106aa49295b525fcf959aa75ec3f7dcbf5352f1c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x107c4504cd79c5d2696ea0030a8dd4e92601b82e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x1183f92a5624d68e85ffb9170f16bf0443b4c242", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x12480e24eb5bec1a9d4369cab6a80cad3c0a377a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x12b19d3e2ccc14da04fae33e63652ce469b3f2fd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x12fef5e57bf45873cd9b62e9dbd7bfb99e32d73e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x168296bb09e24a88805cb9c33356536b980d3fc5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x1776e1f26f98b1a5df9cd347953a26dd3cb46671", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x177d39ac676ed1c67a2b268ad7f1e58826e5b0af", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x24692791bc444c5cd0b81e3cbcaba4b04acd1f3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x27054b13b1b798b345b591a4d22e6562d47ea75a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x27695e09149adc738a978e9a678f99e4c39e9eb9", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x27dce1ec4d3f72c3e457cc50354f1f975ddef488", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x27f610bf36eca0939093343ac28b1534a721dbb4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x2956356cd2a2bf3202f771f50d3d14a367b48070", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x340d2bde5eb28c1eed91b2f790723e3b160613b7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x3597bfd533a99c9aa083587b074434e61eb0a258", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x3618516f45cd3c913f81f9987af41077932bc40d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x386467f1f3ddbe832448650418311a479eecfc57", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x3883f5e181fccaf8410fa61e12b59bad963fb645", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x399a0e6fbeb3d74c85357439f4c8aed9678a5cbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x39bb259f66e1c59d5abef88375979b4d20d98022", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x4156d3342d5c385a87d264f90653733592000581", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x419d0d8bdd9af5e606ae2232ed285aff190e711b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x41e5560054824ea6b0732e656e3ad64e20e94e45", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x42d6622dece394b54999fbd73d108123806f6a18", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x44f588aeeb8c44471439d1270b3603c66a9262f1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x4d8fc1453a0f359e99c9675954e656d80d996fbf", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x4df47b4969b2911c966506e3592c41389493953b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x4df812f6064def1e5e029f1ca858777cc98d2d81", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x514910771af9ca656af840dff83e8264ecf986ca", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x52a7cb918c11a16958be40cba7e31e32a499a465", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x533ef0984b2faa227acc620c67cce12aa39cd8cd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x554c20b7c486beee439277b4540a434566dc4c02", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x56ba2ee7890461f463f7be02aac3099f6d5811a8", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x5732046a883704404f284ce41ffadd5b007fd668", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x595832f8fc6bf59c85c527fec3740a1b7a361269", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x5af2be193a6abca9c8817001f45744777db30756", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x5b2e4a700dfbc560061e957edec8f6eeeb74a320", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x5bc7e5f0ab8b2e10d2d0a3f21739fce62459aef3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x5e3346444010135322268a4630d2ed5f8d09446c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x607f4c5bb672230e8672085532f7e901544a7375", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x614ea929892ea43d3ea2c5e3311b01cc589bad6c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x6425c6be902d692ae2db752b3c268afadb099d3b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x672a1ad4f667fb18a333af13667aa0af1f5b5bdd", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x6781a0f84c7e9e846dcb84a9a5bd49333067b104", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x6810e776880c02933d47db1b9fc05908e5386b96", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x744d70fdbe2ba4cf95131626614a1763df805b9e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x7654915a1b82d6d2d0afc37c52af556ea8983c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x7b69b78cc7fee48202c208609ae6d1f78ce42e13", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x7d4b8cce0591c9044a22ee543533b72e976e36c3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x80fb784b7ed66730e8b1dbd9820afd29931aab03", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x814964b1bceaf24e26296d031eadf134a2ca4105", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x865e3707a580f9db89304005cddd050ade8873eb", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x88fcfbc22c6d3dbaa25af478c578978339bde77a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x8a854288a5976036a725879164ca3e91d30c6a1b", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x8ae4bf2c33a8e667de34b54938b0ccd03eb8cc06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x8eb24319393716668d768dcec29356ae9cffe285", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x8f8221afbb33998d8584a2b05749ba73c37a938a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x9214ec02cb71cba0ada6896b8da260736a67ab10", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x923108a439c4e8c2315c4f6521e5ce95b44e9b4c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x960b236a07cf122663c4303350609a66a7b288c0", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x983f6d60db79ea8ca4eb9968c6aff8cfa04b3c63", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x99ea4db9ee77acd40b119bd1dc4e33e1c070b80d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x9a005c9a89bd72a4bd27721e7a09a3c11d2b03c4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea7", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xa8006c4ca56f24d6836727d106349320db7fef82", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xa87c3ec87eb802aad080df0adb331e504d327e5d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xab16e0d25c06cb376259cc18c1de4aca57605589", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xac3211a5025414af2866ff09c23fc18bc97e79b1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xacfa209fb73bf3dd5bbfb1101b9bc999c49062a5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb24754be79281553dc1adc160ddf5cd9b74361a4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb3bd49e28f8f832b8d1e246106991e546c323502", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb45a50545beeab73f38f31e5973768c421805e5e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb4efd85c19999d84251304bda99e90b92300bd93", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb5a5f22694352c15b00323844ad545abb2b11028", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb5c0e43a6330b9eb904ec57ea24d70269ae4652e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb62d18dea74045e822352ce4b3ee77319dc5ff2f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xb98d4c97425d9908e66e53a6fdf673acca0be986", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xba2184520a1cc49a6159c57e61e1844e085615b6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xba5f11b16b155792cf3b2e6880e8706859a8aeb6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xbdc5bac39dbe132b1e030e898ae3830017d7d969", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xbf2179859fc6d5bee9bf9158632dc51678a4100e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xc27a2f05fa577a83ba0fdb4c38443c0718356501", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xc438b4c0dfbb1593be6dee03bbd1a84bb3aa6213", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xc66ea802717bfb9833400264dd12c2bceaa34a6d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xc997d07b0bc607b6d1bcb6fb9d4a5579c466c3e5", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xd0a4b8946cb52f0661273bfbc6fd0e0c75fc6433", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xd26114cd6ee289accf82350c8d8487fedb8a0c07", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xd2d6158683aee4cc838067727209a0aaf4359de3", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xd4c435f5b09f855c3317c8524cb1f586e42795fa", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xd4fa1460f537bb9085d22c7bccb5dd450ef28e3a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xd8912c10681d8b21fd3742244f44658dba12264e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xe2e6d4be086c6938b53b22144855eef674281639", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xe94327d07fc17907b4db788e5adf2ed424addff6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xea097a2b1db00627b2fa17460ad260c016016977", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xea1f346faf023f974eb5adaf088bbcdf02d761f4", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xea38eaa3c86c8f9b751533ba2e562deb9acded40", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xeab43193cf0623073ca89db9b712796356fa7414", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xeb2da9fac54284cea731d1f10bb34eecb3c00c14", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xeb7c20027172e5d143fb030d50f91cece2d1485d", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xef2463099360a085f1f10b076ed72ef625497a06", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xf433089366899d83a9f26a773d59ec7ecf30355e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xf6b55acbbc49f4524aa48d19281a9a77c54de10f", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xf6cfe53d6febaeea051f400ff5fc14f0cbbdaca1", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xf7b098298f7c69fc14610bf71d5e02c60792894c", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + }, + { + "tokenB": { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + }, + "tokenA": { + "address": "0xfec0cf7fe078a500abf15f1284958f22049c2c7e", + "minAmount": "1", + "maxAmount": "999999999999999999999", + "precision": 8 + } + } +] diff --git a/packages/sra-report/test/postman_collection_v0_test.ts b/packages/sra-report/test/postman_collection_v0_test.ts new file mode 100644 index 000000000..dfb16b10d --- /dev/null +++ b/packages/sra-report/test/postman_collection_v0_test.ts @@ -0,0 +1,76 @@ +import 'mocha'; +import * as nock from 'nock'; + +import * as defaultRequestTokenPairsResponseJSON from './fixtures/v0/token_pairs/default_request.json'; +import * as malformedTokenPairsResponseJSON from './fixtures/v0/token_pairs/malformed.json'; +import * as tokenAAndTokenBParamsTokenPairsResponseJSON from './fixtures/v0/token_pairs/token_a_and_token_b_params.json'; +import * as tokenAParamTokenPairsResponseJSON from './fixtures/v0/token_pairs/token_a_param.json'; +import * as tokenBParamTokenPairsResponseJSON from './fixtures/v0/token_pairs/token_b_param.json'; +import { testRunner } from './test_runner'; + +describe('Postman Collection v0', () => { + const testRelayerUrl = 'https://example.com'; + const nockScope = nock(testRelayerUrl); + afterEach(() => { + nock.cleanAll(); + }); + describe('GET /token_pairs', () => { + const postmanCollectionFolderName = 'GET /token_pairs'; + const resourcePath = '/token_pairs'; + describe('default request', () => { + const postmanCollectionRequestName = 'default request'; + const nockInterceptor = nockScope.get(resourcePath); + testRunner.runContentTypeTests(nockInterceptor, postmanCollectionFolderName, postmanCollectionRequestName); + testRunner.runSchemaTests( + nockInterceptor, + postmanCollectionFolderName, + postmanCollectionRequestName, + malformedTokenPairsResponseJSON, + defaultRequestTokenPairsResponseJSON, + ); + }); + describe('tokenA param', () => { + const postmanCollectionRequestName = 'tokenA param'; + const nockInterceptor = nockScope.get(resourcePath).query({ + tokenA: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + }); + testRunner.runContentTypeTests(nockInterceptor, postmanCollectionFolderName, postmanCollectionRequestName); + testRunner.runSchemaTests( + nockInterceptor, + postmanCollectionFolderName, + postmanCollectionRequestName, + malformedTokenPairsResponseJSON, + tokenAParamTokenPairsResponseJSON, + ); + }); + describe('tokenB param', () => { + const postmanCollectionRequestName = 'tokenB param'; + const nockInterceptor = nockScope.get(resourcePath).query({ + tokenB: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + }); + testRunner.runContentTypeTests(nockInterceptor, postmanCollectionFolderName, postmanCollectionRequestName); + testRunner.runSchemaTests( + nockInterceptor, + postmanCollectionFolderName, + postmanCollectionRequestName, + malformedTokenPairsResponseJSON, + tokenBParamTokenPairsResponseJSON, + ); + }); + describe('tokenA and tokenB params', () => { + const postmanCollectionRequestName = 'tokenA and tokenB params'; + const nockInterceptor = nockScope.get(resourcePath).query({ + tokenA: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + tokenB: '0xe41d2489571d322189246dafa5ebde1f4699f498', + }); + testRunner.runContentTypeTests(nockInterceptor, postmanCollectionFolderName, postmanCollectionRequestName); + testRunner.runSchemaTests( + nockInterceptor, + postmanCollectionFolderName, + postmanCollectionRequestName, + malformedTokenPairsResponseJSON, + tokenAAndTokenBParamsTokenPairsResponseJSON, + ); + }); + }); +}); diff --git a/packages/sra-report/test/test_runner.ts b/packages/sra-report/test/test_runner.ts new file mode 100644 index 000000000..294cc35d3 --- /dev/null +++ b/packages/sra-report/test/test_runner.ts @@ -0,0 +1,138 @@ +import * as chai from 'chai'; +import * as chaiAsPromised from 'chai-as-promised'; +import * as dirtyChai from 'dirty-chai'; +import * as _ from 'lodash'; +import 'mocha'; +import { NewmanRunExecution, NewmanRunExecutionAssertion, NewmanRunSummary } from 'newman'; +import * as nock from 'nock'; + +import * as sraReportCollectionJSON from '../../postman_collections/sra_report.postman_collection.json'; +import { utils } from '../src/utils'; + +import * as postmanEnvironmentJSON from './environments/postman_environment.json'; + +chai.config.includeStack = true; +chai.use(dirtyChai); +chai.use(chaiAsPromised); +const expect = chai.expect; + +const CONTENT_TYPE_ASSERTION_NAME = 'Has Content-Type header with value application/json'; +const SCHEMA_ASSERTION_NAME = 'Schema is valid'; +const baseNewmanRunOptions = { + collection: sraReportCollectionJSON, + environment: postmanEnvironmentJSON, + reporter: { + cli: { + noConsole: true, + }, + }, +}; + +export const testRunner = { + runContentTypeTests( + nockInterceptor: nock.Interceptor, + postmanCollectionFolderName: string, + postmanCollectionRequestName: string, + ) { + const newmanRunOptions = { + ...baseNewmanRunOptions, + folder: postmanCollectionFolderName, + }; + describe(CONTENT_TYPE_ASSERTION_NAME, () => { + it('fails when there are no headers', async () => { + nockInterceptor.reply(200, {}); + const summary = await utils.newmanRunAsync(newmanRunOptions); + const error = findAssertionErrorIfExists( + summary, + postmanCollectionRequestName, + CONTENT_TYPE_ASSERTION_NAME, + ); + const errorMessage = _.get(error, 'message'); + expect(error).to.not.be.undefined(); + expect(errorMessage).to.equal(`expected response to have header with key 'Content-Type'`); + }); + it('fails when Content-Type header exists but not with value application/json', async () => { + const headers = { + 'Content-Type': 'text/html', + }; + nockInterceptor.reply(200, {}, headers); + const summary = await utils.newmanRunAsync(newmanRunOptions); + const error = findAssertionErrorIfExists( + summary, + postmanCollectionRequestName, + CONTENT_TYPE_ASSERTION_NAME, + ); + const errorMessage = _.get(error, 'message'); + expect(error).to.not.be.undefined(); + expect(errorMessage).to.equal(`expected 'text/html' to include 'application/json'`); + }); + it('passes when Content-Type header exists with value application/json', async () => { + const headers = { + 'Content-Type': 'charset=utf-8; application/json', + }; + nockInterceptor.reply(200, {}, headers); + const summary = await utils.newmanRunAsync(newmanRunOptions); + const error = findAssertionErrorIfExists( + summary, + postmanCollectionRequestName, + CONTENT_TYPE_ASSERTION_NAME, + ); + expect(error).to.be.undefined(); + }); + }); + }, + runSchemaTests( + nockInterceptor: nock.Interceptor, + postmanCollectionFolderName: string, + postmanCollectionRequestName: string, + malformedJson: object, + correctJson: object, + ) { + const newmanRunOptions = { + ...baseNewmanRunOptions, + folder: postmanCollectionFolderName, + }; + describe(SCHEMA_ASSERTION_NAME, () => { + it('fails when schema is invalid', async () => { + nockInterceptor.reply(200, malformedJson); + const summary = await utils.newmanRunAsync(newmanRunOptions); + const error = findAssertionErrorIfExists(summary, postmanCollectionRequestName, SCHEMA_ASSERTION_NAME); + const errorMessage = _.get(error, 'message'); + expect(error).to.not.be.undefined(); + expect(errorMessage).to.equal(`expected false to be true`); + }); + it('passes when schema is valid', async () => { + nockInterceptor.reply(200, correctJson); + const summary = await utils.newmanRunAsync(newmanRunOptions); + const error = findAssertionErrorIfExists(summary, postmanCollectionRequestName, SCHEMA_ASSERTION_NAME); + const errorMessage = _.get(error, 'message'); + expect(error).to.be.undefined(); + }); + }); + }, +}; + +function findAssertionErrorIfExists( + summary: NewmanRunSummary, + postmanCollectionRequestName: string, + postmanCollectionAssertionName: string, +) { + const matchingExecutionIfExists = _.find(summary.run.executions, (execution: NewmanRunExecution) => { + return execution.item.name === postmanCollectionRequestName; + }); + if (_.isUndefined(matchingExecutionIfExists)) { + return undefined; + } + const matchingAssertionIfExists = _.find( + matchingExecutionIfExists.assertions, + (assertion: NewmanRunExecutionAssertion) => { + return assertion.assertion === postmanCollectionAssertionName; + }, + ); + if (_.isUndefined(matchingAssertionIfExists)) { + return undefined; + } else { + const error = matchingAssertionIfExists.error; + return error; + } +} diff --git a/packages/sra-report/tsconfig.json b/packages/sra-report/tsconfig.json index 8114d99cd..a0a54410a 100644 --- a/packages/sra-report/tsconfig.json +++ b/packages/sra-report/tsconfig.json @@ -5,6 +5,9 @@ }, "include": [ "./src/**/*", + "./test/**/*", + "../../node_modules/chai-as-promised-typescript-typings/index.d.ts", + "../../node_modules/chai-typescript-typings/index.d.ts", "../../node_modules/web3-typescript-typings/index.d.ts", "../../node_modules/ethers-typescript-typings/index.d.ts" ] -- cgit v1.2.3 From ba9a734ba7827b9316cd89fd8b5d8af69b93c437 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Tue, 13 Mar 2018 16:17:02 -0700 Subject: Update README and CHANGELOG --- packages/sra-report/CHANGELOG.md | 4 ++++ packages/sra-report/README.md | 6 ++++++ 2 files changed, 10 insertions(+) (limited to 'packages') diff --git a/packages/sra-report/CHANGELOG.md b/packages/sra-report/CHANGELOG.md index 43b92d58a..8a62d0266 100644 --- a/packages/sra-report/CHANGELOG.md +++ b/packages/sra-report/CHANGELOG.md @@ -1,3 +1,7 @@ # CHANGELOG +## v0.0.2 - _TBD, 2018_ + + * Added postman collection unit tests (#451) + ## v0.0.1 - _March 8, 2018_ diff --git a/packages/sra-report/README.md b/packages/sra-report/README.md index a29c99af3..299d575d8 100644 --- a/packages/sra-report/README.md +++ b/packages/sra-report/README.md @@ -116,3 +116,9 @@ yarn build ```bash yarn lint ``` + +### Run Tests + +```bash +yarn test +``` -- cgit v1.2.3 From b9c1653c1cf6984d56b7825d8747b48d797fa39e Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Thu, 15 Mar 2018 09:48:41 -0700 Subject: Fix quotation marks --- packages/sra-report/test/test_runner.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/sra-report/test/test_runner.ts b/packages/sra-report/test/test_runner.ts index 294cc35d3..bf9b923e7 100644 --- a/packages/sra-report/test/test_runner.ts +++ b/packages/sra-report/test/test_runner.ts @@ -99,7 +99,7 @@ export const testRunner = { const error = findAssertionErrorIfExists(summary, postmanCollectionRequestName, SCHEMA_ASSERTION_NAME); const errorMessage = _.get(error, 'message'); expect(error).to.not.be.undefined(); - expect(errorMessage).to.equal(`expected false to be true`); + expect(errorMessage).to.equal('expected false to be true'); }); it('passes when schema is valid', async () => { nockInterceptor.reply(200, correctJson); -- cgit v1.2.3 From 3430e2bdac906d5842e9d7cde38c840159b816fd Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Thu, 15 Mar 2018 10:13:49 -0700 Subject: Fix bad merge --- packages/monorepo-scripts/src/utils.ts | 4 ---- packages/sra-report/src/index.ts | 1 + packages/sra-report/src/utils.ts | 6 ++++++ 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 packages/sra-report/src/utils.ts (limited to 'packages') diff --git a/packages/monorepo-scripts/src/utils.ts b/packages/monorepo-scripts/src/utils.ts index 57c1b5af3..5423cabd9 100644 --- a/packages/monorepo-scripts/src/utils.ts +++ b/packages/monorepo-scripts/src/utils.ts @@ -1,9 +1,5 @@ -import { promisify } from '@0xproject/utils'; -import { NewmanRunSummary, run as newmanRun } from 'newman'; - export const utils = { log(...args: any[]): void { console.log(...args); // tslint:disable-line:no-console }, - newmanRunAsync: promisify(newmanRun), }; diff --git a/packages/sra-report/src/index.ts b/packages/sra-report/src/index.ts index bce9d17ec..9a203b654 100644 --- a/packages/sra-report/src/index.ts +++ b/packages/sra-report/src/index.ts @@ -10,6 +10,7 @@ import * as yargs from 'yargs'; import * as sraReportCollectionJSON from '../../postman_collections/sra_report.postman_collection.json'; import { postmanEnvironmentFactory } from './postman_environment_factory'; +import { utils } from './utils'; const DEFAULT_NETWORK_ID = 1; const SUPPORTED_NETWORK_IDS = [1, 3, 4, 42]; diff --git a/packages/sra-report/src/utils.ts b/packages/sra-report/src/utils.ts new file mode 100644 index 000000000..3a83a7ea0 --- /dev/null +++ b/packages/sra-report/src/utils.ts @@ -0,0 +1,6 @@ +import { promisify } from '@0xproject/utils'; +import { NewmanRunSummary, run as newmanRun } from 'newman'; + +export const utils = { + newmanRunAsync: promisify(newmanRun), +}; -- cgit v1.2.3 From e4ea6e1ec3693b2106b1ba28869277488ebca6d3 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Thu, 15 Mar 2018 11:33:08 -0700 Subject: WIP --- packages/react-docs-example/package.json | 4 ++-- packages/react-docs/package.json | 4 ++-- packages/react-shared/package.json | 4 ++-- packages/sra-report/src/globals.d.ts | 1 + 4 files changed, 7 insertions(+), 6 deletions(-) (limited to 'packages') diff --git a/packages/react-docs-example/package.json b/packages/react-docs-example/package.json index 95a617de7..605f68a23 100644 --- a/packages/react-docs-example/package.json +++ b/packages/react-docs-example/package.json @@ -26,7 +26,7 @@ "url": "https://github.com/0xProject/0x-monorepo.git" }, "devDependencies": { - "@0xproject/tslint-config": "^0.4.9", + "@0xproject/tslint-config": "^0.4.10", "@types/material-ui": "0.18.0", "@types/react": "^15.0.15", "@types/react-dom": "^0.14.23", @@ -43,7 +43,7 @@ "source-map-loader": "^0.2.3", "style-loader": "^0.20.2", "shx": "^0.2.2", - "tslint": "^5.9.1", + "tslint": "5.8.0", "typescript": "2.7.1", "webpack": "^3.11.0", "webpack-dev-server": "^2.11.1" diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json index 991af9a37..1c489a17b 100644 --- a/packages/react-docs/package.json +++ b/packages/react-docs/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@0xproject/dev-utils": "^0.2.1", "@0xproject/monorepo-scripts": "^0.1.12", - "@0xproject/tslint-config": "^0.4.9", + "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", "@types/material-ui": "0.18.0", "@types/node": "^8.0.53", @@ -33,7 +33,7 @@ "@types/react-tap-event-plugin": "0.0.30", "copyfiles": "^1.2.0", "shx": "^0.2.2", - "tslint": "^5.9.1", + "tslint": "5.8.0", "typescript": "2.7.1" }, "dependencies": { diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json index ac1d05f38..d9a4bf085 100644 --- a/packages/react-shared/package.json +++ b/packages/react-shared/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@0xproject/dev-utils": "^0.2.1", "@0xproject/monorepo-scripts": "^0.1.12", - "@0xproject/tslint-config": "^0.4.9", + "@0xproject/tslint-config": "^0.4.10", "@types/lodash": "^4.14.86", "@types/material-ui": "0.18.0", "@types/node": "^8.0.53", @@ -32,7 +32,7 @@ "@types/react-scroll": "0.0.31", "copyfiles": "^1.2.0", "shx": "^0.2.2", - "tslint": "^5.9.1", + "tslint": "5.8.0", "typescript": "2.7.1" }, "dependencies": { diff --git a/packages/sra-report/src/globals.d.ts b/packages/sra-report/src/globals.d.ts index 1efa4fe6d..817d1534b 100644 --- a/packages/sra-report/src/globals.d.ts +++ b/packages/sra-report/src/globals.d.ts @@ -21,6 +21,7 @@ declare module 'newman' { export interface NewmanRunExecutionAssertionError { message: string; } + // tslint:disable-next-line:completed-docs export function run(options: any, callback?: (err: Error | null, summary: NewmanRunSummary) => void): void; } -- cgit v1.2.3 From d4dce41d3ae1bcfadd4f59947693d1f8c9bb6fa0 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 19 Mar 2018 10:06:54 -0700 Subject: Fix bad merge --- packages/react-docs-example/package.json | 1 - packages/react-shared/package.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/react-docs-example/package.json b/packages/react-docs-example/package.json index 51caca505..73705c979 100644 --- a/packages/react-docs-example/package.json +++ b/packages/react-docs-example/package.json @@ -40,7 +40,6 @@ "shx": "^0.2.2", "source-map-loader": "^0.2.3", "style-loader": "^0.20.2", - "shx": "^0.2.2", "tslint": "^5.9.1", "typescript": "2.7.1", "webpack": "^3.11.0", diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json index 2125fffdd..77e29a504 100644 --- a/packages/react-shared/package.json +++ b/packages/react-shared/package.json @@ -26,7 +26,7 @@ "@0xproject/tslint-config": "^0.4.12", "copyfiles": "^1.2.0", "shx": "^0.2.2", - "tslint": "5.8.0", + "tslint": "^5.9.1", "typescript": "2.7.1" }, "dependencies": { -- cgit v1.2.3 From fb40b105015a20bb4359a3360258c9f85c495744 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 19 Mar 2018 10:10:17 -0700 Subject: Add new entry into CHANGELOG --- packages/sra-report/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/sra-report/CHANGELOG.md b/packages/sra-report/CHANGELOG.md index 8c2ec5acc..db8fee19d 100644 --- a/packages/sra-report/CHANGELOG.md +++ b/packages/sra-report/CHANGELOG.md @@ -1,8 +1,11 @@ # CHANGELOG -## v0.0.2 - _March 18, 2018_ +## v0.0.3 - _TBD, 2018_ * Added postman collection unit tests (#451) + +## v0.0.2 - _March 18, 2018_ + * Consolidate all `console.log` calls into `logUtils` in the `@0xproject/utils` package (#452) ## v0.0.1 - _March 8, 2018_ -- cgit v1.2.3