aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2019-01-08 19:23:33 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2019-01-08 21:48:06 +0800
commit2c974b5f3ffa0e9736000273e39cdeee4a251b94 (patch)
treea1772f93d796e3b4ba7a988194a44a3e8bcd6d31 /packages/website
parent0ac36cef288deecd36caa601c53d13517eef5ca8 (diff)
downloaddexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.gz
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.bz2
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.lz
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.xz
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.tar.zst
dexon-sol-tools-2c974b5f3ffa0e9736000273e39cdeee4a251b94.zip
Refactor out sol-cov, sol-profiler and sol-trace into their separate packages
Diffstat (limited to 'packages/website')
-rw-r--r--packages/website/md/docs/sol_cov/1/installation.md17
-rw-r--r--packages/website/md/docs/sol_cov/1/introduction.md1
-rw-r--r--packages/website/md/docs/sol_cov/2/installation.md17
-rw-r--r--packages/website/md/docs/sol_cov/2/introduction.md1
-rw-r--r--packages/website/md/docs/sol_coverage/installation.md17
-rw-r--r--packages/website/md/docs/sol_coverage/introduction.md1
-rw-r--r--packages/website/md/docs/sol_coverage/usage.md (renamed from packages/website/md/docs/sol_cov/2/usage.md)8
-rw-r--r--packages/website/md/docs/sol_profiler/installation.md17
-rw-r--r--packages/website/md/docs/sol_profiler/introduction.md1
-rw-r--r--packages/website/md/docs/sol_profiler/usage.md (renamed from packages/website/md/docs/sol_cov/1/usage.md)24
-rw-r--r--packages/website/md/docs/sol_trace/installation.md17
-rw-r--r--packages/website/md/docs/sol_trace/introduction.md1
-rw-r--r--packages/website/md/docs/sol_trace/usage.md62
-rw-r--r--packages/website/ts/containers/asset_buyer_documentation.ts38
-rw-r--r--packages/website/ts/containers/connect_documentation.ts38
-rw-r--r--packages/website/ts/containers/contract_wrappers_documentation.ts38
-rw-r--r--packages/website/ts/containers/ethereum_types_documentation.ts36
-rw-r--r--packages/website/ts/containers/json_schemas_documentation.ts38
-rw-r--r--packages/website/ts/containers/migrations_documentation.ts2
-rw-r--r--packages/website/ts/containers/order_utils_documentation.ts38
-rw-r--r--packages/website/ts/containers/order_watcher_documentation.ts38
-rw-r--r--packages/website/ts/containers/smart_contracts_documentation.ts36
-rw-r--r--packages/website/ts/containers/sol_compiler_documentation.ts38
-rw-r--r--packages/website/ts/containers/sol_cov_documentation.ts77
-rw-r--r--packages/website/ts/containers/sol_coverage_documentation.ts43
-rw-r--r--packages/website/ts/containers/sol_profiler_documentation.ts43
-rw-r--r--packages/website/ts/containers/sol_trace_documentation.ts43
-rw-r--r--packages/website/ts/containers/subproviders_documentation.ts38
-rw-r--r--packages/website/ts/containers/web3_wrapper_documentation.ts38
-rw-r--r--packages/website/ts/containers/zero_ex_js_documentation.ts38
-rw-r--r--packages/website/ts/index.tsx23
-rw-r--r--packages/website/ts/pages/documentation/doc_page.tsx4
-rw-r--r--packages/website/ts/pages/documentation/docs_home.tsx22
-rw-r--r--packages/website/ts/types.ts8
-rw-r--r--packages/website/ts/utils/documentation_container.ts35
35 files changed, 415 insertions, 521 deletions
diff --git a/packages/website/md/docs/sol_cov/1/installation.md b/packages/website/md/docs/sol_cov/1/installation.md
deleted file mode 100644
index b9ce25a5f..000000000
--- a/packages/website/md/docs/sol_cov/1/installation.md
+++ /dev/null
@@ -1,17 +0,0 @@
-**Install**
-
-```bash
-yarn add @0xproject/sol-cov
-```
-
-**Import**
-
-```javascript
-import { CoverageSubprovider } from '@0xproject/sol-cov';
-```
-
-or
-
-```javascript
-var CoverageSubprovider = require('@0xproject/sol-cov').CoverageSubprovider;
-```
diff --git a/packages/website/md/docs/sol_cov/1/introduction.md b/packages/website/md/docs/sol_cov/1/introduction.md
deleted file mode 100644
index 7064a3554..000000000
--- a/packages/website/md/docs/sol_cov/1/introduction.md
+++ /dev/null
@@ -1 +0,0 @@
-Welcome to the [@0xproject/sol-cov](https://github.com/0xProject/0x-monorepo/tree/development/packages/sol-cov) documentation! Sol-cov is a Solidity coverage tool for your smart contract tests.
diff --git a/packages/website/md/docs/sol_cov/2/installation.md b/packages/website/md/docs/sol_cov/2/installation.md
deleted file mode 100644
index 1d4557cf5..000000000
--- a/packages/website/md/docs/sol_cov/2/installation.md
+++ /dev/null
@@ -1,17 +0,0 @@
-**Install**
-
-```bash
-yarn add @0x/sol-cov
-```
-
-**Import**
-
-```javascript
-import { CoverageSubprovider } from '@0x/sol-cov';
-```
-
-or
-
-```javascript
-var CoverageSubprovider = require('@0x/sol-cov').CoverageSubprovider;
-```
diff --git a/packages/website/md/docs/sol_cov/2/introduction.md b/packages/website/md/docs/sol_cov/2/introduction.md
deleted file mode 100644
index ac3256845..000000000
--- a/packages/website/md/docs/sol_cov/2/introduction.md
+++ /dev/null
@@ -1 +0,0 @@
-Welcome to the [sol-cov](https://github.com/0xProject/0x-monorepo/tree/development/packages/sol-cov) documentation! Sol-cov is a Solidity coverage tool for your smart contract tests.
diff --git a/packages/website/md/docs/sol_coverage/installation.md b/packages/website/md/docs/sol_coverage/installation.md
new file mode 100644
index 000000000..c7aaf07e9
--- /dev/null
+++ b/packages/website/md/docs/sol_coverage/installation.md
@@ -0,0 +1,17 @@
+**Install**
+
+```bash
+yarn add @0x/sol-coverage
+```
+
+**Import**
+
+```javascript
+import { CoverageSubprovider } from '@0x/sol-coverage';
+```
+
+or
+
+```javascript
+var CoverageSubprovider = require('@0x/sol-coverage').CoverageSubprovider;
+```
diff --git a/packages/website/md/docs/sol_coverage/introduction.md b/packages/website/md/docs/sol_coverage/introduction.md
new file mode 100644
index 000000000..3214e93a9
--- /dev/null
+++ b/packages/website/md/docs/sol_coverage/introduction.md
@@ -0,0 +1 @@
+Welcome to the [sol-coverage](https://github.com/0xProject/0x-monorepo/tree/development/packages/sol-coverage) documentation! Sol-coverage is a Solidity coverage tool for your smart contract tests.
diff --git a/packages/website/md/docs/sol_cov/2/usage.md b/packages/website/md/docs/sol_coverage/usage.md
index 8e33f3bf5..dd3cdf597 100644
--- a/packages/website/md/docs/sol_cov/2/usage.md
+++ b/packages/website/md/docs/sol_coverage/usage.md
@@ -1,4 +1,4 @@
-Sol-cov uses transaction traces in order to figure out which lines of Solidity source code have been covered by your tests. In order for it to gather these traces, you must add the `CoverageSubprovider` to the [ProviderEngine](https://github.com/MetaMask/provider-engine) instance you use when running your Solidity tests. If you're unfamiliar with ProviderEngine, please read the [Web3 Provider explained](https://0x.org/wiki#Web3-Provider-Explained) wiki article.
+Sol-coverage uses transaction traces in order to figure out which lines of Solidity source code have been covered by your tests. In order for it to gather these traces, you must add the `CoverageSubprovider` to the [ProviderEngine](https://github.com/MetaMask/provider-engine) instance you use when running your Solidity tests. If you're unfamiliar with ProviderEngine, please read the [Web3 Provider explained](https://0x.org/wiki#Web3-Provider-Explained) wiki article.
The CoverageSubprovider eavesdrops on the `eth_sendTransaction` and `eth_call` RPC calls and collects traces after each call using `debug_traceTransaction`. `eth_call`'s' don't generate traces - so we take a snapshot, re-submit it as a transaction, get the trace and then revert the snapshot.
@@ -11,7 +11,7 @@ In order to use `CoverageSubprovider` with your favorite framework you need to p
If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you.
```typescript
-import { SolCompilerArtifactsAdapter } from '@0x/sol-cov';
+import { SolCompilerArtifactsAdapter } from '@0x/sol-coverage';
const artifactsPath = 'src/artifacts';
const contractsPath = 'src/contracts';
const artifactsAdapter = new SolCompilerArtifactsAdapter(artifactsPath, contractsPath);
@@ -22,7 +22,7 @@ const artifactsAdapter = new SolCompilerArtifactsAdapter(artifactsPath, contract
If your project is using [Truffle](https://truffleframework.com/), we've written a `TruffleArtifactsAdapter`for you.
```typescript
-import { TruffleArtifactAdapter } from '@0x/sol-cov';
+import { TruffleArtifactAdapter } from '@0x/sol-coverage';
const contractsPath = 'src/contracts';
const artifactAdapter = new TruffleArtifactAdapter(contractsDir);
```
@@ -37,7 +37,7 @@ Look at the code of the two adapters above for examples.
### Usage
```typescript
-import { CoverageSubprovider } from '@0x/sol-cov';
+import { CoverageSubprovider } from '@0x/sol-coverage';
import ProviderEngine = require('web3-provider-engine');
const provider = new ProviderEngine();
diff --git a/packages/website/md/docs/sol_profiler/installation.md b/packages/website/md/docs/sol_profiler/installation.md
new file mode 100644
index 000000000..be9a365f5
--- /dev/null
+++ b/packages/website/md/docs/sol_profiler/installation.md
@@ -0,0 +1,17 @@
+**Install**
+
+```bash
+yarn add @0x/sol-profiler
+```
+
+**Import**
+
+```javascript
+import { ProfilerSubprovider } from '@0x/sol-profiler';
+```
+
+or
+
+```javascript
+var ProfilerSubprovider = require('@0x/sol-profiler').ProfilerSubprovider;
+```
diff --git a/packages/website/md/docs/sol_profiler/introduction.md b/packages/website/md/docs/sol_profiler/introduction.md
new file mode 100644
index 000000000..bd53fb0fe
--- /dev/null
+++ b/packages/website/md/docs/sol_profiler/introduction.md
@@ -0,0 +1 @@
+Welcome to the [sol-profiler](https://github.com/0xProject/0x-monorepo/tree/development/packages/sol-profiler) documentation! Sol-profiler is a Solidity profiler tool.
diff --git a/packages/website/md/docs/sol_cov/1/usage.md b/packages/website/md/docs/sol_profiler/usage.md
index c2b8404af..35ea140da 100644
--- a/packages/website/md/docs/sol_cov/1/usage.md
+++ b/packages/website/md/docs/sol_profiler/usage.md
@@ -1,17 +1,17 @@
-Sol-cov uses transaction traces in order to figure out which lines of Solidity source code have been covered by your tests. In order for it to gather these traces, you must add the `CoverageSubprovider` to the [ProviderEngine](https://github.com/MetaMask/provider-engine) instance you use when running your Solidity tests. If you're unfamiliar with ProviderEngine, please read the [Web3 Provider explained](https://0x.org/wiki#Web3-Provider-Explained) wiki article.
+Sol-profiler uses transaction traces in order to figure out which lines of Solidity source code have been covered by your tests. In order for it to gather these traces, you must add the `ProfilerSubprovider` to the [ProviderEngine](https://github.com/MetaMask/provider-engine) instance you use when running your Solidity tests. If you're unfamiliar with ProviderEngine, please read the [Web3 Provider explained](https://0x.org/wiki#Web3-Provider-Explained) wiki article.
-The CoverageSubprovider eavesdrops on the `eth_sendTransaction` and `eth_call` RPC calls and collects traces after each call using `debug_traceTransaction`. `eth_call`'s' don't generate traces - so we take a snapshot, re-submit it as a transaction, get the trace and then revert the snapshot.
+The ProfilerSubprovider eavesdrops on the `eth_sendTransaction` and `eth_call` RPC calls and collects traces after each call using `debug_traceTransaction`. `eth_call`'s' don't generate traces - so we take a snapshot, re-submit it as a transaction, get the trace and then revert the snapshot.
-Coverage subprovider needs some info about your contracts (`srcMap`, `bytecode`). It gets that info from your project's artifacts. Some frameworks have their own artifact format. Some artifact formats don't actually contain all the neccessary data.
+Profiler subprovider needs some info about your contracts (`srcMap`, `bytecode`). It gets that info from your project's artifacts. Some frameworks have their own artifact format. Some artifact formats don't actually contain all the neccessary data.
-In order to use `CoverageSubprovider` with your favorite framework you need to pass an `artifactsAdapter` to it.
+In order to use `ProfilerSubprovider` with your favorite framework you need to pass an `artifactsAdapter` to it.
### Sol-compiler
-If you are generating your artifacts with [@0xproject/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you.
+If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you.
```typescript
-import { SolCompilerArtifactsAdapter } from '@0xproject/sol-cov';
+import { SolCompilerArtifactsAdapter } from '@0x/sol-profiler';
const artifactsPath = 'src/artifacts';
const contractsPath = 'src/contracts';
const artifactsAdapter = new SolCompilerArtifactsAdapter(artifactsPath, contractsPath);
@@ -22,7 +22,7 @@ const artifactsAdapter = new SolCompilerArtifactsAdapter(artifactsPath, contract
If your project is using [Truffle](https://truffleframework.com/), we've written a `TruffleArtifactsAdapter`for you.
```typescript
-import { TruffleArtifactAdapter } from '@0xproject/sol-cov';
+import { TruffleArtifactAdapter } from '@0x/sol-profiler';
const contractsPath = 'src/contracts';
const artifactAdapter = new TruffleArtifactAdapter(contractsDir);
```
@@ -37,7 +37,7 @@ Look at the code of the two adapters above for examples.
### Usage
```typescript
-import { CoverageSubprovider } from '@0xproject/sol-cov';
+import { ProfilerSubprovider } from '@0x/sol-profiler';
import ProviderEngine = require('web3-provider-engine');
const provider = new ProviderEngine();
@@ -48,15 +48,15 @@ const networkId = 50;
// Some calls might not have `from` address specified. Nevertheless - transactions need to be submitted from an address with at least some funds. defaultFromAddress is the address that will be used to submit those calls as transactions from.
const defaultFromAddress = '0x5409ed021d9299bf6814279a6a1411a7e866a631';
const isVerbose = true;
-const coverageSubprovider = new CoverageSubprovider(artifactsAdapter, defaultFromAddress, isVerbose);
+const profilerSubprovider = new ProfilerSubprovider(artifactsAdapter, defaultFromAddress, isVerbose);
-provider.addProvider(coverageSubprovider);
+provider.addProvider(profilerSubprovider);
```
After your test suite is complete (e.g in the Mocha global `after` hook), you'll need to call:
```typescript
-await coverageSubprovider.writeCoverageAsync();
+await profilerSubprovider.writeProfilerAsync();
```
-This will create a `coverage.json` file in a `coverage` directory. This file has an [Istanbul format](https://github.com/gotwarlost/istanbul/blob/master/coverage.json.md) - so you can use it with any of the existing Istanbul reporters.
+This will create a `profiler.json` file in a `profiler` directory. This file has an [Istanbul format](https://github.com/gotwarlost/istanbul/blob/master/profiler.json.md) - so you can use it with any of the existing Istanbul reporters.
diff --git a/packages/website/md/docs/sol_trace/installation.md b/packages/website/md/docs/sol_trace/installation.md
new file mode 100644
index 000000000..2f794b2f8
--- /dev/null
+++ b/packages/website/md/docs/sol_trace/installation.md
@@ -0,0 +1,17 @@
+**Install**
+
+```bash
+yarn add @0x/sol-trace
+```
+
+**Import**
+
+```javascript
+import { TraceSubprovider } from '@0x/sol-trace';
+```
+
+or
+
+```javascript
+var TraceSubprovider = require('@0x/sol-trace').TraceSubprovider;
+```
diff --git a/packages/website/md/docs/sol_trace/introduction.md b/packages/website/md/docs/sol_trace/introduction.md
new file mode 100644
index 000000000..21fea764e
--- /dev/null
+++ b/packages/website/md/docs/sol_trace/introduction.md
@@ -0,0 +1 @@
+Welcome to the [sol-trace](https://github.com/0xProject/0x-monorepo/tree/development/packages/sol-trace) documentation! Sol-trace is a Solidity trace tool for your smart contract tests.
diff --git a/packages/website/md/docs/sol_trace/usage.md b/packages/website/md/docs/sol_trace/usage.md
new file mode 100644
index 000000000..f3aa6fc35
--- /dev/null
+++ b/packages/website/md/docs/sol_trace/usage.md
@@ -0,0 +1,62 @@
+Sol-trace uses transaction traces in order to figure out which lines of Solidity source code have been covered by your tests. In order for it to gather these traces, you must add the `TraceSubprovider` to the [ProviderEngine](https://github.com/MetaMask/provider-engine) instance you use when running your Solidity tests. If you're unfamiliar with ProviderEngine, please read the [Web3 Provider explained](https://0x.org/wiki#Web3-Provider-Explained) wiki article.
+
+The TraceSubprovider eavesdrops on the `eth_sendTransaction` and `eth_call` RPC calls and collects traces after each call using `debug_traceTransaction`. `eth_call`'s' don't generate traces - so we take a snapshot, re-submit it as a transaction, get the trace and then revert the snapshot.
+
+Trace subprovider needs some info about your contracts (`srcMap`, `bytecode`). It gets that info from your project's artifacts. Some frameworks have their own artifact format. Some artifact formats don't actually contain all the neccessary data.
+
+In order to use `TraceSubprovider` with your favorite framework you need to pass an `artifactsAdapter` to it.
+
+### Sol-compiler
+
+If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you.
+
+```typescript
+import { SolCompilerArtifactsAdapter } from '@0x/sol-trace';
+const artifactsPath = 'src/artifacts';
+const contractsPath = 'src/contracts';
+const artifactsAdapter = new SolCompilerArtifactsAdapter(artifactsPath, contractsPath);
+```
+
+### Truffle
+
+If your project is using [Truffle](https://truffleframework.com/), we've written a `TruffleArtifactsAdapter`for you.
+
+```typescript
+import { TruffleArtifactAdapter } from '@0x/sol-trace';
+const contractsPath = 'src/contracts';
+const artifactAdapter = new TruffleArtifactAdapter(contractsDir);
+```
+
+Because truffle artifacts don't have all the data we need - we actually will recompile your contracts under the hood. That's why you don't need to pass an `artifactsPath`.
+
+### Other framework/toolset
+
+You'll need to write your own artifacts adapter. It should extend `AbstractArtifactsAdapter`.
+Look at the code of the two adapters above for examples.
+
+### Usage
+
+```typescript
+import { TraceSubprovider } from '@0x/sol-trace';
+import ProviderEngine = require('web3-provider-engine');
+
+const provider = new ProviderEngine();
+
+const artifactsPath = 'src/artifacts';
+const contractsPath = 'src/contracts';
+const networkId = 50;
+// Some calls might not have `from` address specified. Nevertheless - transactions need to be submitted from an address with at least some funds. defaultFromAddress is the address that will be used to submit those calls as transactions from.
+const defaultFromAddress = '0x5409ed021d9299bf6814279a6a1411a7e866a631';
+const isVerbose = true;
+const traceSubprovider = new TraceSubprovider(artifactsAdapter, defaultFromAddress, isVerbose);
+
+provider.addProvider(traceSubprovider);
+```
+
+After your test suite is complete (e.g in the Mocha global `after` hook), you'll need to call:
+
+```typescript
+await traceSubprovider.writeTraceAsync();
+```
+
+This will create a `trace.json` file in a `trace` directory. This file has an [Istanbul format](https://github.com/gotwarlost/istanbul/blob/master/trace.json.md) - so you can use it with any of the existing Istanbul reporters.
diff --git a/packages/website/ts/containers/asset_buyer_documentation.ts b/packages/website/ts/containers/asset_buyer_documentation.ts
index c93b9332d..815176e47 100644
--- a/packages/website/ts/containers/asset_buyer_documentation.ts
+++ b/packages/website/ts/containers/asset_buyer_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown = require('md/docs/asset_buyer/introduction');
@@ -25,7 +23,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/asset-buyer',
type: SupportedDocJson.TypeDoc,
displayName: 'AssetBuyer',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/asset-buyer',
markdownMenu: {
introduction: [markdownSections.introduction],
install: [markdownSections.installation],
@@ -40,31 +38,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/connect_documentation.ts b/packages/website/ts/containers/connect_documentation.ts
index 0f11e0809..19fd0ee56 100644
--- a/packages/website/ts/containers/connect_documentation.ts
+++ b/packages/website/ts/containers/connect_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/connect/1/introduction');
@@ -25,7 +23,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/connect',
type: SupportedDocJson.TypeDoc,
displayName: '0x Connect',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/connect',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation],
},
@@ -45,31 +43,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/contract_wrappers_documentation.ts b/packages/website/ts/containers/contract_wrappers_documentation.ts
index 4c05605e3..dec95ae62 100644
--- a/packages/website/ts/containers/contract_wrappers_documentation.ts
+++ b/packages/website/ts/containers/contract_wrappers_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/contract_wrappers/1/introduction');
@@ -24,7 +22,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/contract-wrappers',
type: SupportedDocJson.TypeDoc,
displayName: 'Contract Wrappers',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/contract-wrappers',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation],
},
@@ -40,31 +38,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- docsInfo,
- translate: state.translate,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/ethereum_types_documentation.ts b/packages/website/ts/containers/ethereum_types_documentation.ts
index 9d1df1d1f..9b668d515 100644
--- a/packages/website/ts/containers/ethereum_types_documentation.ts
+++ b/packages/website/ts/containers/ethereum_types_documentation.ts
@@ -1,12 +1,10 @@
-import { constants as docConstants, DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { constants as docConstants, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown = require('md/docs/ethereum_types/introduction');
@@ -36,31 +34,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/json_schemas_documentation.ts b/packages/website/ts/containers/json_schemas_documentation.ts
index 9c4bb8e26..3862ba878 100644
--- a/packages/website/ts/containers/json_schemas_documentation.ts
+++ b/packages/website/ts/containers/json_schemas_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/json_schemas/1/introduction');
@@ -32,7 +30,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/json-schemas',
type: SupportedDocJson.TypeDoc,
displayName: 'JSON Schemas',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/json-schemas',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation, markdownSections.usage],
schemas: [markdownSections.schemas],
@@ -65,31 +63,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/migrations_documentation.ts b/packages/website/ts/containers/migrations_documentation.ts
index 02919e06e..dd5db3ac6 100644
--- a/packages/website/ts/containers/migrations_documentation.ts
+++ b/packages/website/ts/containers/migrations_documentation.ts
@@ -23,7 +23,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/migrations',
type: SupportedDocJson.TypeDoc,
displayName: 'Migrations',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/migrations',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation],
},
diff --git a/packages/website/ts/containers/order_utils_documentation.ts b/packages/website/ts/containers/order_utils_documentation.ts
index f1d794988..4996c329a 100644
--- a/packages/website/ts/containers/order_utils_documentation.ts
+++ b/packages/website/ts/containers/order_utils_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/order_utils/1/introduction');
@@ -25,7 +23,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/order-utils',
type: SupportedDocJson.TypeDoc,
displayName: 'Order utils',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/order-utils',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation],
},
@@ -41,31 +39,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/order_watcher_documentation.ts b/packages/website/ts/containers/order_watcher_documentation.ts
index 683e1fe9f..f3d3bada8 100644
--- a/packages/website/ts/containers/order_watcher_documentation.ts
+++ b/packages/website/ts/containers/order_watcher_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/order_watcher/1/introduction');
@@ -25,7 +23,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/order-watcher',
type: SupportedDocJson.TypeDoc,
displayName: 'Order Watcher',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/order-watcher',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation],
},
@@ -41,31 +39,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/smart_contracts_documentation.ts b/packages/website/ts/containers/smart_contracts_documentation.ts
index 57c98fa3b..7c0de5515 100644
--- a/packages/website/ts/containers/smart_contracts_documentation.ts
+++ b/packages/website/ts/containers/smart_contracts_documentation.ts
@@ -1,13 +1,11 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import { Networks } from '@0x/react-shared';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths, SmartContractDocSections as Sections } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages, SmartContractDocSections as Sections } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/smart_contracts/1/introduction');
@@ -91,31 +89,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
},
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
- docsInfo: DocsInfo;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
- docsInfo,
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/sol_compiler_documentation.ts b/packages/website/ts/containers/sol_compiler_documentation.ts
index f3a793e80..e899e9627 100644
--- a/packages/website/ts/containers/sol_compiler_documentation.ts
+++ b/packages/website/ts/containers/sol_compiler_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/sol-compiler/1/introduction');
@@ -27,7 +25,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/sol-compiler',
type: SupportedDocJson.TypeDoc,
displayName: 'Solidity Compiler',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/sol-compiler',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation, markdownSections.usage],
},
@@ -45,31 +43,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/sol_cov_documentation.ts b/packages/website/ts/containers/sol_cov_documentation.ts
deleted file mode 100644
index 8944ec70a..000000000
--- a/packages/website/ts/containers/sol_cov_documentation.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
-import * as React from 'react';
-import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
-import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
-
-/* tslint:disable:no-var-requires */
-const IntroMarkdown1 = require('md/docs/sol_cov/1/introduction');
-const InstallationMarkdown1 = require('md/docs/sol_cov/1/installation');
-const UsageMarkdown1 = require('md/docs/sol_cov/1/usage');
-const IntroMarkdown2 = require('md/docs/sol_cov/2/introduction');
-const InstallationMarkdown2 = require('md/docs/sol_cov/2/installation');
-const UsageMarkdown2 = require('md/docs/sol_cov/2/usage');
-/* tslint:enable:no-var-requires */
-
-const markdownSections = {
- introduction: 'introduction',
- installation: 'installation',
- usage: 'usage',
-};
-
-const docsInfoConfig: DocsInfoConfig = {
- id: DocPackages.SolCov,
- packageName: '@0x/sol-cov',
- type: SupportedDocJson.TypeDoc,
- displayName: 'Sol-cov',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
- markdownMenu: {
- 'getting-started': [markdownSections.introduction, markdownSections.installation, markdownSections.usage],
- },
- sectionNameToMarkdownByVersion: {
- '0.0.1': {
- [markdownSections.introduction]: IntroMarkdown1,
- [markdownSections.installation]: InstallationMarkdown1,
- [markdownSections.usage]: UsageMarkdown1,
- },
- '2.1.8': {
- [markdownSections.introduction]: IntroMarkdown2,
- [markdownSections.installation]: InstallationMarkdown2,
- [markdownSections.usage]: UsageMarkdown2,
- },
- },
- markdownSections,
-};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
-
-export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
- DocPageComponent,
-);
diff --git a/packages/website/ts/containers/sol_coverage_documentation.ts b/packages/website/ts/containers/sol_coverage_documentation.ts
new file mode 100644
index 000000000..25d67e2d0
--- /dev/null
+++ b/packages/website/ts/containers/sol_coverage_documentation.ts
@@ -0,0 +1,43 @@
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import * as React from 'react';
+import { connect } from 'react-redux';
+import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
+
+/* tslint:disable:no-var-requires */
+const IntroMarkdown = require('md/docs/sol_coverage/introduction');
+const InstallationMarkdown = require('md/docs/sol_coverage/installation');
+const UsageMarkdown = require('md/docs/sol_coverage/usage');
+/* tslint:enable:no-var-requires */
+
+const markdownSections = {
+ introduction: 'introduction',
+ installation: 'installation',
+ usage: 'usage',
+};
+
+const docsInfoConfig: DocsInfoConfig = {
+ id: DocPackages.SolCoverage,
+ packageName: '@0x/sol-coverage',
+ type: SupportedDocJson.TypeDoc,
+ displayName: 'Sol-coverage',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/sol-coverage',
+ markdownMenu: {
+ 'getting-started': [markdownSections.introduction, markdownSections.installation, markdownSections.usage],
+ },
+ sectionNameToMarkdownByVersion: {
+ '1.0.0': {
+ [markdownSections.introduction]: IntroMarkdown,
+ [markdownSections.installation]: InstallationMarkdown,
+ [markdownSections.usage]: UsageMarkdown,
+ },
+ },
+ markdownSections,
+};
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
+
+export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
+ DocPageComponent,
+);
diff --git a/packages/website/ts/containers/sol_profiler_documentation.ts b/packages/website/ts/containers/sol_profiler_documentation.ts
new file mode 100644
index 000000000..14839831e
--- /dev/null
+++ b/packages/website/ts/containers/sol_profiler_documentation.ts
@@ -0,0 +1,43 @@
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import * as React from 'react';
+import { connect } from 'react-redux';
+import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
+
+/* tslint:disable:no-var-requires */
+const IntroMarkdown = require('md/docs/sol_profiler/introduction');
+const InstallationMarkdown = require('md/docs/sol_profiler/installation');
+const UsageMarkdown = require('md/docs/sol_profiler/usage');
+/* tslint:enable:no-var-requires */
+
+const markdownSections = {
+ introduction: 'introduction',
+ installation: 'installation',
+ usage: 'usage',
+};
+
+const docsInfoConfig: DocsInfoConfig = {
+ id: DocPackages.SolProfiler,
+ packageName: '@0x/sol-profiler',
+ type: SupportedDocJson.TypeDoc,
+ displayName: 'Sol-profiler',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/sol-profiler',
+ markdownMenu: {
+ 'getting-started': [markdownSections.introduction, markdownSections.installation, markdownSections.usage],
+ },
+ sectionNameToMarkdownByVersion: {
+ '1.0.0': {
+ [markdownSections.introduction]: IntroMarkdown,
+ [markdownSections.installation]: InstallationMarkdown,
+ [markdownSections.usage]: UsageMarkdown,
+ },
+ },
+ markdownSections,
+};
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
+
+export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
+ DocPageComponent,
+);
diff --git a/packages/website/ts/containers/sol_trace_documentation.ts b/packages/website/ts/containers/sol_trace_documentation.ts
new file mode 100644
index 000000000..c5286f1ff
--- /dev/null
+++ b/packages/website/ts/containers/sol_trace_documentation.ts
@@ -0,0 +1,43 @@
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import * as React from 'react';
+import { connect } from 'react-redux';
+import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
+
+/* tslint:disable:no-var-requires */
+const IntroMarkdown = require('md/docs/sol_trace/introduction');
+const InstallationMarkdown = require('md/docs/sol_trace/installation');
+const UsageMarkdown = require('md/docs/sol_trace/usage');
+/* tslint:enable:no-var-requires */
+
+const markdownSections = {
+ introduction: 'introduction',
+ installation: 'installation',
+ usage: 'usage',
+};
+
+const docsInfoConfig: DocsInfoConfig = {
+ id: DocPackages.SolTrace,
+ packageName: '@0x/sol-trace',
+ type: SupportedDocJson.TypeDoc,
+ displayName: 'Sol-trace',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/sol-trace',
+ markdownMenu: {
+ 'getting-started': [markdownSections.introduction, markdownSections.installation, markdownSections.usage],
+ },
+ sectionNameToMarkdownByVersion: {
+ '1.0.0': {
+ [markdownSections.introduction]: IntroMarkdown,
+ [markdownSections.installation]: InstallationMarkdown,
+ [markdownSections.usage]: UsageMarkdown,
+ },
+ },
+ markdownSections,
+};
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
+
+export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
+ DocPageComponent,
+);
diff --git a/packages/website/ts/containers/subproviders_documentation.ts b/packages/website/ts/containers/subproviders_documentation.ts
index 0e421777b..c7fb807a6 100644
--- a/packages/website/ts/containers/subproviders_documentation.ts
+++ b/packages/website/ts/containers/subproviders_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/subproviders/1/introduction');
@@ -26,7 +24,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/subproviders',
type: SupportedDocJson.TypeDoc,
displayName: 'Subproviders',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/subproviders',
markdownMenu: {
'getting-started': [docSections.introduction, docSections.installation, docSections.ledgerNodeHid],
},
@@ -44,31 +42,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections: docSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/web3_wrapper_documentation.ts b/packages/website/ts/containers/web3_wrapper_documentation.ts
index 9c8c34621..ad286da1a 100644
--- a/packages/website/ts/containers/web3_wrapper_documentation.ts
+++ b/packages/website/ts/containers/web3_wrapper_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdown1 = require('md/docs/web3_wrapper/1/introduction');
@@ -24,7 +22,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '@0x/web3-wrapper',
type: SupportedDocJson.TypeDoc,
displayName: 'Web3Wrapper',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/web3-wrapper',
markdownMenu: {
'getting-started': [markdownSections.introduction, markdownSections.installation],
},
@@ -40,31 +38,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- translate: state.translate,
- docsInfo,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/containers/zero_ex_js_documentation.ts b/packages/website/ts/containers/zero_ex_js_documentation.ts
index e0ea6e275..5da8d5e52 100644
--- a/packages/website/ts/containers/zero_ex_js_documentation.ts
+++ b/packages/website/ts/containers/zero_ex_js_documentation.ts
@@ -1,12 +1,10 @@
-import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
+import { DocsInfoConfig, SupportedDocJson } from '@0x/react-docs';
import * as React from 'react';
import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
import { DocPage as DocPageComponent, DocPageProps } from 'ts/pages/documentation/doc_page';
-import { Dispatcher } from 'ts/redux/dispatcher';
-import { State } from 'ts/redux/reducer';
-import { DocPackages, ScreenWidths } from 'ts/types';
-import { Translate } from 'ts/utils/translate';
+import { DocPackages } from 'ts/types';
+
+import { getMapStateToProps, mapDispatchToProps } from '../utils/documentation_container';
/* tslint:disable:no-var-requires */
const IntroMarkdownV0 = require('md/docs/0xjs/0.0.1/introduction');
@@ -37,7 +35,7 @@ const docsInfoConfig: DocsInfoConfig = {
packageName: '0x.js',
type: SupportedDocJson.TypeDoc,
displayName: '0x.js',
- packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo/packages/0x.js',
markdownMenu: {
'getting-started': [
markdownSections.introduction,
@@ -72,31 +70,7 @@ const docsInfoConfig: DocsInfoConfig = {
},
markdownSections,
};
-const docsInfo = new DocsInfo(docsInfoConfig);
-
-interface ConnectedState {
- docsVersion: string;
- availableDocVersions: string[];
- docsInfo: DocsInfo;
- translate: Translate;
- screenWidth: ScreenWidths;
-}
-
-interface ConnectedDispatch {
- dispatcher: Dispatcher;
-}
-
-const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
- docsVersion: state.docsVersion,
- availableDocVersions: state.availableDocVersions,
- docsInfo,
- translate: state.translate,
- screenWidth: state.screenWidth,
-});
-
-const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
- dispatcher: new Dispatcher(dispatch),
-});
+const mapStateToProps = getMapStateToProps(docsInfoConfig);
export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
DocPageComponent,
diff --git a/packages/website/ts/index.tsx b/packages/website/ts/index.tsx
index 45054772c..4ed66c572 100644
--- a/packages/website/ts/index.tsx
+++ b/packages/website/ts/index.tsx
@@ -69,8 +69,14 @@ const LazySolCompilerDocumentation = createLazyComponent('Documentation', async
const LazyJSONSchemasDocumentation = createLazyComponent('Documentation', async () =>
import(/* webpackChunkName: "jsonSchemasDocs" */ 'ts/containers/json_schemas_documentation'),
);
-const LazySolCovDocumentation = createLazyComponent('Documentation', async () =>
- import(/* webpackChunkName: "solCovDocs" */ 'ts/containers/sol_cov_documentation'),
+const LazySolCoverageDocumentation = createLazyComponent('Documentation', async () =>
+ import(/* webpackChunkName: "solCoverageDocs" */ 'ts/containers/sol_coverage_documentation'),
+);
+const LazySolTraceDocumentation = createLazyComponent('Documentation', async () =>
+ import(/* webpackChunkName: "solTraceDocs" */ 'ts/containers/sol_trace_documentation'),
+);
+const LazySolProfilerDocumentation = createLazyComponent('Documentation', async () =>
+ import(/* webpackChunkName: "solProfilerDocs" */ 'ts/containers/sol_profiler_documentation'),
);
const LazySubprovidersDocumentation = createLazyComponent('Documentation', async () =>
import(/* webpackChunkName: "subproviderDocs" */ 'ts/containers/subproviders_documentation'),
@@ -149,7 +155,18 @@ render(
path={`${WebsitePaths.SolCompiler}/:version?`}
component={LazySolCompilerDocumentation}
/>
- <Route path={`${WebsitePaths.SolCov}/:version?`} component={LazySolCovDocumentation} />
+ <Route
+ path={`${WebsitePaths.SolCoverage}/:version?`}
+ component={LazySolCoverageDocumentation}
+ />
+ <Route
+ path={`${WebsitePaths.SolTrace}/:version?`}
+ component={LazySolTraceDocumentation}
+ />
+ <Route
+ path={`${WebsitePaths.SolProfiler}/:version?`}
+ component={LazySolProfilerDocumentation}
+ />
<Route
path={`${WebsitePaths.JSONSchemas}/:version?`}
component={LazyJSONSchemasDocumentation}
diff --git a/packages/website/ts/pages/documentation/doc_page.tsx b/packages/website/ts/pages/documentation/doc_page.tsx
index 3ae071774..14bad7329 100644
--- a/packages/website/ts/pages/documentation/doc_page.tsx
+++ b/packages/website/ts/pages/documentation/doc_page.tsx
@@ -33,7 +33,9 @@ const docIdToSubpackageName: { [id: string]: string } = {
[DocPackages.ContractWrappers]: 'contract-wrappers',
[DocPackages.SolCompiler]: 'sol-compiler',
[DocPackages.JSONSchemas]: 'json-schemas',
- [DocPackages.SolCov]: 'sol-cov',
+ [DocPackages.SolCoverage]: 'sol-coverage',
+ [DocPackages.SolProfiler]: 'sol-profiler',
+ [DocPackages.SolTrace]: 'sol-trace',
[DocPackages.Subproviders]: 'subproviders',
[DocPackages.OrderUtils]: 'order-utils',
[DocPackages.OrderWatcher]: 'order-watcher',
diff --git a/packages/website/ts/pages/documentation/docs_home.tsx b/packages/website/ts/pages/documentation/docs_home.tsx
index fd3932bfa..d11cf02fb 100644
--- a/packages/website/ts/pages/documentation/docs_home.tsx
+++ b/packages/website/ts/pages/documentation/docs_home.tsx
@@ -218,10 +218,26 @@ const CATEGORY_TO_PACKAGES: ObjectMap<Package[]> = {
},
{
description:
- 'A Solidity code coverage tool. Sol-cov uses transaction traces to figure out which lines of your code has been covered by your tests.',
+ 'A Solidity code coverage tool. Sol-coverage uses transaction traces to figure out which lines of your code has been covered by your tests.',
link: {
- title: '@0x/sol-cov',
- to: WebsitePaths.SolCov,
+ title: '@0x/sol-coverage',
+ to: WebsitePaths.SolCoverage,
+ },
+ },
+ {
+ description:
+ 'A Solidity profiler. Sol-profiler uses transaction traces to figure out line-by-line gas consumption.',
+ link: {
+ title: '@0x/sol-profiler',
+ to: WebsitePaths.SolProfiler,
+ },
+ },
+ {
+ description:
+ 'A Solidity revert trace tool. Sol-trace prints human-readable revert trace whenever the revert happens.',
+ link: {
+ title: '@0x/sol-trace',
+ to: WebsitePaths.SolTrace,
},
},
{
diff --git a/packages/website/ts/types.ts b/packages/website/ts/types.ts
index 37bd73063..50114e2d6 100644
--- a/packages/website/ts/types.ts
+++ b/packages/website/ts/types.ts
@@ -370,7 +370,9 @@ export enum WebsitePaths {
OrderWatcher = '/docs/order-watcher',
SolCompiler = '/docs/sol-compiler',
JSONSchemas = '/docs/json-schemas',
- SolCov = '/docs/sol-cov',
+ SolCoverage = '/docs/sol-coverage',
+ SolProfiler = '/docs/sol-profiler',
+ SolTrace = '/docs/sol-trace',
Subproviders = '/docs/subproviders',
OrderUtils = '/docs/order-utils',
EthereumTypes = '/docs/ethereum-types',
@@ -386,7 +388,9 @@ export enum DocPackages {
Web3Wrapper = 'WEB3_WRAPPER',
SolCompiler = 'SOL_COMPILER',
JSONSchemas = 'JSON_SCHEMAS',
- SolCov = 'SOL_COV',
+ SolCoverage = 'SOL_COVERAGE',
+ SolTrace = 'SOL_TRACE',
+ SolProfiler = 'SOL_PROFILER',
Subproviders = 'SUBPROVIDERS',
OrderUtils = 'ORDER_UTILS',
EthereumTypes = 'ETHEREUM_TYPES',
diff --git a/packages/website/ts/utils/documentation_container.ts b/packages/website/ts/utils/documentation_container.ts
new file mode 100644
index 000000000..54e8a2c1a
--- /dev/null
+++ b/packages/website/ts/utils/documentation_container.ts
@@ -0,0 +1,35 @@
+import { DocsInfo, DocsInfoConfig } from '@0x/react-docs';
+import { Dispatch } from 'redux';
+import { DocPageProps } from 'ts/pages/documentation/doc_page';
+import { Dispatcher } from 'ts/redux/dispatcher';
+import { State } from 'ts/redux/reducer';
+import { ScreenWidths } from 'ts/types';
+import { Translate } from 'ts/utils/translate';
+
+export interface ConnectedState {
+ docsVersion: string;
+ availableDocVersions: string[];
+ docsInfo: DocsInfo;
+ translate: Translate;
+ screenWidth: ScreenWidths;
+}
+
+export interface ConnectedDispatch {
+ dispatcher: Dispatcher;
+}
+
+export const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
+ dispatcher: new Dispatcher(dispatch),
+});
+
+export const getMapStateToProps = (docsInfoConfig: DocsInfoConfig) => {
+ const docsInfo = new DocsInfo(docsInfoConfig);
+ const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
+ docsVersion: state.docsVersion,
+ availableDocVersions: state.availableDocVersions,
+ translate: state.translate,
+ docsInfo,
+ screenWidth: state.screenWidth,
+ });
+ return mapStateToProps;
+};