aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio B <kandinsky454@protonmail.ch>2018-11-22 01:06:32 +0800
committerGitHub <noreply@github.com>2018-11-22 01:06:32 +0800
commit327311788809267a250e99f4af2a7544024bc842 (patch)
tree66a52a9dafda539feba630af3c388189754133b9
parent8ea2eb9102058a03d96e488507c71db0cc082356 (diff)
parent61b3305af3a7a599f83370aa8ebe8157738506fb (diff)
downloaddexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.tar
dexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.tar.gz
dexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.tar.bz2
dexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.tar.lz
dexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.tar.xz
dexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.tar.zst
dexon-sol-tools-327311788809267a250e99f4af2a7544024bc842.zip
Merge pull request #1301 from 0xProject/feature/migrationsDocRef
Add Migrations Doc Ref
-rw-r--r--package.json2
-rw-r--r--packages/migrations/CHANGELOG.json10
-rw-r--r--packages/migrations/package.json9
-rw-r--r--packages/migrations/src/index.ts10
-rw-r--r--packages/migrations/src/migration.ts11
-rw-r--r--packages/migrations/typedoc-tsconfig.json7
-rw-r--r--packages/website/md/docs/migrations/1/installation.md17
-rw-r--r--packages/website/md/docs/migrations/1/introduction.md1
-rw-r--r--packages/website/ts/containers/migrations_documentation.ts66
-rw-r--r--packages/website/ts/index.tsx7
-rw-r--r--packages/website/ts/pages/documentation/doc_page.tsx1
-rw-r--r--packages/website/ts/pages/documentation/docs_home.tsx25
-rw-r--r--packages/website/ts/types.ts2
13 files changed, 160 insertions, 8 deletions
diff --git a/package.json b/package.json
index 801657f5d..8b74aad67 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
},
"config": {
"mnemonic": "concert load couple harbor equip island argue ramp clarify fence smart topic",
- "packagesWithDocPages": "0x.js connect json-schemas subproviders web3-wrapper contract-wrappers order-utils order-watcher sol-compiler sol-cov ethereum-types asset-buyer"
+ "packagesWithDocPages": "0x.js connect json-schemas subproviders web3-wrapper contract-wrappers order-utils order-watcher sol-compiler sol-cov ethereum-types asset-buyer migrations"
},
"bundlewatch": {
"files": [
diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json
index 5b0d58909..0056a3166 100644
--- a/packages/migrations/CHANGELOG.json
+++ b/packages/migrations/CHANGELOG.json
@@ -1,5 +1,15 @@
[
{
+ "version": "2.1.0",
+ "changes": [
+ {
+ "note":
+ "Export all type declarations used by the public interface, as well as the `ContractAddresses` mapping",
+ "pr": 1301
+ }
+ ]
+ },
+ {
"timestamp": 1542208198,
"version": "2.0.4",
"changes": [
diff --git a/packages/migrations/package.json b/packages/migrations/package.json
index 8eaae96ba..04503c0b2 100644
--- a/packages/migrations/package.json
+++ b/packages/migrations/package.json
@@ -13,7 +13,13 @@
"clean": "shx rm -rf lib",
"lint": "tslint --format stylish --project .",
"migrate:v2": "run-s build script:migrate:v2",
- "script:migrate:v2": "node ./lib/migrate.js --contracts-version 2.0.0"
+ "script:migrate:v2": "node ./lib/migrate.js",
+ "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES"
+ },
+ "config": {
+ "postpublish": {
+ "assets": []
+ }
},
"license": "Apache-2.0",
"devDependencies": {
@@ -25,6 +31,7 @@
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
"tslint": "5.11.0",
+ "typedoc": "0.13.0",
"typescript": "3.0.1",
"yargs": "^10.0.3"
},
diff --git a/packages/migrations/src/index.ts b/packages/migrations/src/index.ts
index 8f629a24b..4f22c30b9 100644
--- a/packages/migrations/src/index.ts
+++ b/packages/migrations/src/index.ts
@@ -1 +1,11 @@
+export {
+ Provider,
+ TxData,
+ JSONRPCRequestPayload,
+ JSONRPCErrorCallback,
+ TxDataPayable,
+ JSONRPCResponsePayload,
+ JSONRPCResponseError,
+} from 'ethereum-types';
+export { ContractAddresses } from '@0x/contract-addresses';
export { runMigrationsAsync, runMigrationsOnceAsync } from './migration';
diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts
index 86c76a54b..61ac56938 100644
--- a/packages/migrations/src/migration.ts
+++ b/packages/migrations/src/migration.ts
@@ -11,10 +11,9 @@ import { erc20TokenInfo, erc721TokenInfo } from './utils/token_info';
/**
* Creates and deploys all the contracts that are required for the latest
- * version of the 0x protocol. Custom migrations can be defined here. This will
- * be called with the CLI 'migrate:v2' command.
- * @param provider Web3 provider instance.
- * @param txDefaults Default transaction values to use when deploying contracts.
+ * version of the 0x protocol.
+ * @param provider Web3 provider instance. Your provider instance should connect to the testnet you want to deploy to.
+ * @param txDefaults Default transaction values to use when deploying contracts (e.g., specify the desired contract creator with the `from` parameter).
* @returns The addresses of the contracts that were deployed.
*/
export async function runMigrationsAsync(provider: Provider, txDefaults: Partial<TxData>): Promise<ContractAddresses> {
@@ -159,8 +158,8 @@ let _cachedContractAddresses: ContractAddresses;
* Exactly like runMigrationsAsync but will only run the migrations the first
* time it is called. Any subsequent calls will return the cached contract
* addresses.
- * @param provider Web3 provider instance.
- * @param txDefaults Default transaction values to use when deploying contracts.
+ * @param provider Web3 provider instance. Your provider instance should connect to the testnet you want to deploy to.
+ * @param txDefaults Default transaction values to use when deploying contracts (e.g., specify the desired contract creator with the `from` parameter).
* @returns The addresses of the contracts that were deployed.
*/
export async function runMigrationsOnceAsync(
diff --git a/packages/migrations/typedoc-tsconfig.json b/packages/migrations/typedoc-tsconfig.json
new file mode 100644
index 000000000..c9b0af1ae
--- /dev/null
+++ b/packages/migrations/typedoc-tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../typedoc-tsconfig",
+ "compilerOptions": {
+ "outDir": "lib"
+ },
+ "include": ["./src/**/*", "./test/**/*"]
+}
diff --git a/packages/website/md/docs/migrations/1/installation.md b/packages/website/md/docs/migrations/1/installation.md
new file mode 100644
index 000000000..78403037b
--- /dev/null
+++ b/packages/website/md/docs/migrations/1/installation.md
@@ -0,0 +1,17 @@
+**Install**
+
+```bash
+yarn add @0x/migrations
+```
+
+**Import**
+
+```javascript
+import { runMigrationsAsync } from '@0x/migrations';
+```
+
+or
+
+```javascript
+var runMigrationsAsync = require('@0x/migrations').runMigrationsAsync;
+```
diff --git a/packages/website/md/docs/migrations/1/introduction.md b/packages/website/md/docs/migrations/1/introduction.md
new file mode 100644
index 000000000..82ae3a0ab
--- /dev/null
+++ b/packages/website/md/docs/migrations/1/introduction.md
@@ -0,0 +1 @@
+Welcome to the [@0x/migrations](https://github.com/0xProject/0x-monorepo/tree/development/packages/migrations) documentation! This package is intended for developers who would like to deploy the 0x protocol system of smart contracts to a custom testnet. If you want to test against existing testnets, check out our pre-deployed [Ganache snapshot](https://0xproject.com/wiki#Ganache-Setup-Guide) or where 0x is already deployed on [popular testnets](https://0xproject.com/wiki#Deployed-Addresses).
diff --git a/packages/website/ts/containers/migrations_documentation.ts b/packages/website/ts/containers/migrations_documentation.ts
new file mode 100644
index 000000000..02919e06e
--- /dev/null
+++ b/packages/website/ts/containers/migrations_documentation.ts
@@ -0,0 +1,66 @@
+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/migrations/1/introduction');
+const InstallationMarkdown1 = require('md/docs/migrations/1/installation');
+/* tslint:enable:no-var-requires */
+
+const markdownSections = {
+ introduction: 'introduction',
+ installation: 'installation',
+};
+
+const docsInfoConfig: DocsInfoConfig = {
+ id: DocPackages.Migrations,
+ packageName: '@0x/migrations',
+ type: SupportedDocJson.TypeDoc,
+ displayName: 'Migrations',
+ packageUrl: 'https://github.com/0xProject/0x-monorepo',
+ markdownMenu: {
+ 'getting-started': [markdownSections.introduction, markdownSections.installation],
+ },
+ sectionNameToMarkdownByVersion: {
+ '2.0.4': {
+ [markdownSections.introduction]: IntroMarkdown1,
+ [markdownSections.installation]: InstallationMarkdown1,
+ },
+ },
+ 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/index.tsx b/packages/website/ts/index.tsx
index 96e7184f8..faf7d8c87 100644
--- a/packages/website/ts/index.tsx
+++ b/packages/website/ts/index.tsx
@@ -40,6 +40,9 @@ const LazyZeroExJSDocumentation = createLazyComponent('Documentation', async ()
const LazyContractWrappersDocumentation = createLazyComponent('Documentation', async () =>
import(/* webpackChunkName: "contractWrapperDocs" */ 'ts/containers/contract_wrappers_documentation'),
);
+const LazyMigrationsDocumentation = createLazyComponent('Documentation', async () =>
+ import(/* webpackChunkName: "migrationsDocs" */ 'ts/containers/migrations_documentation'),
+);
const LazyOrderWatcherDocumentation = createLazyComponent('Documentation', async () =>
import(/* webpackChunkName: "orderWatcherDocs" */ 'ts/containers/order_watcher_documentation'),
);
@@ -103,6 +106,10 @@ render(
component={LazyContractWrappersDocumentation}
/>
<Route
+ path={`${WebsitePaths.Migrations}/:version?`}
+ component={LazyMigrationsDocumentation}
+ />
+ <Route
path={`${WebsitePaths.OrderWatcher}/:version?`}
component={LazyOrderWatcherDocumentation}
/>
diff --git a/packages/website/ts/pages/documentation/doc_page.tsx b/packages/website/ts/pages/documentation/doc_page.tsx
index adf2261b5..3ae071774 100644
--- a/packages/website/ts/pages/documentation/doc_page.tsx
+++ b/packages/website/ts/pages/documentation/doc_page.tsx
@@ -39,6 +39,7 @@ const docIdToSubpackageName: { [id: string]: string } = {
[DocPackages.OrderWatcher]: 'order-watcher',
[DocPackages.EthereumTypes]: 'ethereum-types',
[DocPackages.AssetBuyer]: 'asset-buyer',
+ [DocPackages.Migrations]: 'migrations',
};
export interface DocPageProps {
diff --git a/packages/website/ts/pages/documentation/docs_home.tsx b/packages/website/ts/pages/documentation/docs_home.tsx
index e3328f3fa..f68d2892f 100644
--- a/packages/website/ts/pages/documentation/docs_home.tsx
+++ b/packages/website/ts/pages/documentation/docs_home.tsx
@@ -109,6 +109,14 @@ const CATEGORY_TO_PACKAGES: ObjectMap<Package[]> = {
},
{
description:
+ "A package to deploy the 0x protocol's system of smart contracts to the testnet of your choice",
+ link: {
+ title: '@0x/migrations',
+ to: WebsitePaths.Migrations,
+ },
+ },
+ {
+ description:
'A collection of 0x-related JSON-schemas (incl. SRA request/response schemas, 0x order message format schema, etc...)',
link: {
title: '@0x/json-schemas',
@@ -133,6 +141,23 @@ const CATEGORY_TO_PACKAGES: ObjectMap<Package[]> = {
},
{
description:
+ 'A tiny utility library for getting known deployed contract addresses for a particular network.',
+ link: {
+ title: '@0x/contract-addresses',
+ to: 'https://www.npmjs.com/package/@0x/contract-addresses',
+ shouldOpenInNewTab: true,
+ },
+ },
+ {
+ description: 'Smart contract compilation artifacts for the latest version of the 0x protocol.',
+ link: {
+ title: '@0x/contract-artifacts',
+ to: 'https://www.npmjs.com/package/@0x/contract-artifacts',
+ shouldOpenInNewTab: true,
+ },
+ },
+ {
+ description:
'Contains the Standard Relayer API OpenAPI Spec. The package distributes both a javascript object version and a json version.',
link: {
title: '@0x/sra-spec',
diff --git a/packages/website/ts/types.ts b/packages/website/ts/types.ts
index 444a8348d..89c477085 100644
--- a/packages/website/ts/types.ts
+++ b/packages/website/ts/types.ts
@@ -366,6 +366,7 @@ export enum WebsitePaths {
OrderUtils = '/docs/order-utils',
EthereumTypes = '/docs/ethereum-types',
AssetBuyer = '/docs/asset-buyer',
+ Migrations = '/docs/migrations',
Careers = '/careers',
}
@@ -383,6 +384,7 @@ export enum DocPackages {
ContractWrappers = 'CONTRACT_WRAPPERS',
OrderWatcher = 'ORDER_WATCHER',
AssetBuyer = 'ASSET_BUYER',
+ Migrations = 'MIGRATIONS',
}
export enum Key {