Merge pull request #1139 from 0xProject/feature/website/asset-buyer-docs
[asset-buyer][monorepo-scripts][website] Add asset-buyer documentation
This commit is contained in:
		@@ -40,7 +40,7 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    "config": {
 | 
					    "config": {
 | 
				
			||||||
        "mnemonic": "concert load couple harbor equip island argue ramp clarify fence smart topic",
 | 
					        "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"
 | 
					        "packagesWithDocPages": "0x.js connect json-schemas subproviders web3-wrapper contract-wrappers order-utils order-watcher sol-compiler sol-cov ethereum-types asset-buyer"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "bundlewatch" : {
 | 
					    "bundlewatch" : {
 | 
				
			||||||
        "files": [
 | 
					        "files": [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,18 @@
 | 
				
			|||||||
                "note":
 | 
					                "note":
 | 
				
			||||||
                    "Updated to use new modularized artifacts and the latest version of @0xproject/contract-wrappers",
 | 
					                    "Updated to use new modularized artifacts and the latest version of @0xproject/contract-wrappers",
 | 
				
			||||||
                "pr": 1105
 | 
					                "pr": 1105
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Add `gasLimit` and `gasPrice` as optional properties on `BuyQuoteExecutionOpts`",
 | 
				
			||||||
 | 
					                "pr": 1116
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Add `docs:json` command to package.json",
 | 
				
			||||||
 | 
					                "pr": 1139
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Add missing types to public interface",
 | 
				
			||||||
 | 
					                "pr": 1139
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,8 @@
 | 
				
			|||||||
        "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
 | 
					        "coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
 | 
				
			||||||
        "test:circleci": "yarn test:coverage",
 | 
					        "test:circleci": "yarn test:coverage",
 | 
				
			||||||
        "run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --exit",
 | 
					        "run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --exit",
 | 
				
			||||||
        "clean": "shx rm -rf lib test_temp"
 | 
					        "clean": "shx rm -rf lib test_temp",
 | 
				
			||||||
 | 
					        "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "config": {
 | 
					    "config": {
 | 
				
			||||||
        "postpublish": {
 | 
					        "postpublish": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,10 @@
 | 
				
			|||||||
export { Provider } from 'ethereum-types';
 | 
					export {
 | 
				
			||||||
 | 
					    JSONRPCRequestPayload,
 | 
				
			||||||
 | 
					    JSONRPCResponsePayload,
 | 
				
			||||||
 | 
					    JSONRPCResponseError,
 | 
				
			||||||
 | 
					    JSONRPCErrorCallback,
 | 
				
			||||||
 | 
					    Provider,
 | 
				
			||||||
 | 
					} from 'ethereum-types';
 | 
				
			||||||
export { SignedOrder } from '@0xproject/types';
 | 
					export { SignedOrder } from '@0xproject/types';
 | 
				
			||||||
export { BigNumber } from '@0xproject/utils';
 | 
					export { BigNumber } from '@0xproject/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -9,8 +15,8 @@ export {
 | 
				
			|||||||
    AssetBuyerError,
 | 
					    AssetBuyerError,
 | 
				
			||||||
    AssetBuyerOpts,
 | 
					    AssetBuyerOpts,
 | 
				
			||||||
    BuyQuote,
 | 
					    BuyQuote,
 | 
				
			||||||
    BuyQuoteInfo,
 | 
					 | 
				
			||||||
    BuyQuoteExecutionOpts,
 | 
					    BuyQuoteExecutionOpts,
 | 
				
			||||||
 | 
					    BuyQuoteInfo,
 | 
				
			||||||
    BuyQuoteRequestOpts,
 | 
					    BuyQuoteRequestOpts,
 | 
				
			||||||
    OrderProvider,
 | 
					    OrderProvider,
 | 
				
			||||||
    OrderProviderRequest,
 | 
					    OrderProviderRequest,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,10 @@
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                "note": "Render date formats in UTC to prevent conflicts when publishing in different timezones.",
 | 
					                "note": "Render date formats in UTC to prevent conflicts when publishing in different timezones.",
 | 
				
			||||||
                "pr": 1143
 | 
					                "pr": 1143
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Add AssetBuyerError to the IGNORED_EXCESSIVE_TYPES array",
 | 
				
			||||||
 | 
					                "pr": 1139
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,7 @@ export const docGenConfigs: DocGenConfigs = {
 | 
				
			|||||||
    // factory method which instantiates an instance of a class, but we don't want users instantiating it themselves
 | 
					    // factory method which instantiates an instance of a class, but we don't want users instantiating it themselves
 | 
				
			||||||
    // and getting confused. Any class name in this list will not have it's constructor rendered in our docs.
 | 
					    // and getting confused. Any class name in this list will not have it's constructor rendered in our docs.
 | 
				
			||||||
    CLASSES_WITH_HIDDEN_CONSTRUCTORS: [
 | 
					    CLASSES_WITH_HIDDEN_CONSTRUCTORS: [
 | 
				
			||||||
 | 
					        'AssetBuyer',
 | 
				
			||||||
        'ERC20ProxyWrapper',
 | 
					        'ERC20ProxyWrapper',
 | 
				
			||||||
        'ERC20TokenWrapper',
 | 
					        'ERC20TokenWrapper',
 | 
				
			||||||
        'ERC721ProxyWrapper',
 | 
					        'ERC721ProxyWrapper',
 | 
				
			||||||
@@ -43,7 +44,13 @@ export const docGenConfigs: DocGenConfigs = {
 | 
				
			|||||||
    // Some types are not explicitly part of the public interface like params, return values, etc... But we still
 | 
					    // Some types are not explicitly part of the public interface like params, return values, etc... But we still
 | 
				
			||||||
    // want them exported. E.g error enum types that can be thrown by methods. These must be manually added to this
 | 
					    // want them exported. E.g error enum types that can be thrown by methods. These must be manually added to this
 | 
				
			||||||
    // config
 | 
					    // config
 | 
				
			||||||
    IGNORED_EXCESSIVE_TYPES: ['NonceSubproviderErrors', 'Web3WrapperErrors', 'ContractWrappersError', 'OrderError'],
 | 
					    IGNORED_EXCESSIVE_TYPES: [
 | 
				
			||||||
 | 
					        'NonceSubproviderErrors',
 | 
				
			||||||
 | 
					        'Web3WrapperErrors',
 | 
				
			||||||
 | 
					        'ContractWrappersError',
 | 
				
			||||||
 | 
					        'OrderError',
 | 
				
			||||||
 | 
					        'AssetBuyerError',
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
    // Some libraries only export types. In those cases, we cannot check if the exported types are part of the
 | 
					    // Some libraries only export types. In those cases, we cannot check if the exported types are part of the
 | 
				
			||||||
    // "exported public interface". Thus we add them here and skip those checks.
 | 
					    // "exported public interface". Thus we add them here and skip those checks.
 | 
				
			||||||
    TYPES_ONLY_LIBRARIES: ['ethereum-types', 'types'],
 | 
					    TYPES_ONLY_LIBRARIES: ['ethereum-types', 'types'],
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -331,7 +331,7 @@ export class DocGenerateAndUploadUtils {
 | 
				
			|||||||
            throw new Error(
 | 
					            throw new Error(
 | 
				
			||||||
                `${this._packageName} package exports BUT does not need: \n${excessiveReferencesExceptIgnored.join(
 | 
					                `${this._packageName} package exports BUT does not need: \n${excessiveReferencesExceptIgnored.join(
 | 
				
			||||||
                    '\n',
 | 
					                    '\n',
 | 
				
			||||||
                )} \nin it\'s index.ts. Remove them then try again.`,
 | 
					                )} \nin it\'s index.ts. Remove them then try again OR if we still want them exported (e.g error enum types), then add them to the IGNORED_EXCESSIVE_TYPES array.`,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								packages/website/md/docs/asset_buyer/installation.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								packages/website/md/docs/asset_buyer/installation.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					**Install**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					yarn add @0xproject/asset-buyer
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Import**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					import { AssetBuyer } from '@0xproject/asset-buyer';
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					or
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					var AssetBuyer = require('@0xproject/asset-buyer').AssetBuyer;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										1
									
								
								packages/website/md/docs/asset_buyer/introduction.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								packages/website/md/docs/asset_buyer/introduction.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Welcome to the [@0xproject/asset-buyer](https://github.com/0xProject/0x-monorepo/tree/development/packages/asset-buyer) documentation! AssetBuyer is a library that provides an easy way to buy any asset with ETH in one click, leveraging 0x liquidity and the [Forwarder contract](https://0xproject.com/docs/contracts#Forwarder).
 | 
				
			||||||
							
								
								
									
										39
									
								
								packages/website/md/docs/asset_buyer/usage.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								packages/website/md/docs/asset_buyer/usage.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					**Construction**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Connecting to a standard relayer API compliant url:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```typescript
 | 
				
			||||||
 | 
					const provider = web3.currentProvider;
 | 
				
			||||||
 | 
					const apiUrl = 'https://api.relayer.com/v2';
 | 
				
			||||||
 | 
					const assetBuyer = AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl(provider, apiUrl);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Providing your own orders:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```typescript
 | 
				
			||||||
 | 
					const provider = web3.currentProvider;
 | 
				
			||||||
 | 
					const orders = []; // get these from your own API, a relayer, a friend, from anywhere
 | 
				
			||||||
 | 
					const assetBuyer = AssetBuyer.getAssetBuyerForProvidedOrders(provider, orders);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Get a quote**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A [BuyQuote](#types-BuyQuote) object contains enough information to display buy information to an end user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```typescript
 | 
				
			||||||
 | 
					const erc20TokenAddress = '0x5fa3c....';
 | 
				
			||||||
 | 
					const amountToBuy = new BigNumber(50000000000000000000);
 | 
				
			||||||
 | 
					const buyQuote = await assetBuyer.getBuyQuoteForERC20TokenAddressAsync(erc20TokenAddress, amountToBuy);
 | 
				
			||||||
 | 
					const quoteInfo = buyQuote.worstCaseQuoteInfo;
 | 
				
			||||||
 | 
					console.log(quoteInfo.ethAmount); // the total amount the user needs to pay to buy the desired amount (including ZRX fees)
 | 
				
			||||||
 | 
					console.log(quoteInfo.feeAmount); // a portion of the total ethAmount above that was used to buy affiliate fees
 | 
				
			||||||
 | 
					console.log(quoteInfo.ethPerAssetPrice); // the rate that this quote provides (e.g. 0.0035ETH / REP)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Perform a buy**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pass the [BuyQuote](#types-BuyQuote) object from above back to the assetBuyer in order to initiate the buy transaction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```typescript
 | 
				
			||||||
 | 
					const txHash = await assetBuyer.executeBuyQuoteAsync(buyQuote); // the hash of the transaction submitted to the Ethereum network
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
@@ -73,6 +73,7 @@
 | 
				
			|||||||
    "WIKI": "wiki",
 | 
					    "WIKI": "wiki",
 | 
				
			||||||
    "WEB3_WRAPPER": "Web3Wrapper",
 | 
					    "WEB3_WRAPPER": "Web3Wrapper",
 | 
				
			||||||
    "ORDER_UTILS": "Order Utils",
 | 
					    "ORDER_UTILS": "Order Utils",
 | 
				
			||||||
 | 
					    "ASSET_BUYER": "AssetBuyer",
 | 
				
			||||||
    "FAQ": "FAQ",
 | 
					    "FAQ": "FAQ",
 | 
				
			||||||
    "SMART_CONTRACTS": "0x smart contracts",
 | 
					    "SMART_CONTRACTS": "0x smart contracts",
 | 
				
			||||||
    "STANDARD_RELAYER_API": "standard relayer API",
 | 
					    "STANDARD_RELAYER_API": "standard relayer API",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -92,6 +92,7 @@ const DOC_WEBSITE_PATHS_TO_KEY = {
 | 
				
			|||||||
    [WebsitePaths.ZeroExJs]: Key.ZeroExJs,
 | 
					    [WebsitePaths.ZeroExJs]: Key.ZeroExJs,
 | 
				
			||||||
    [WebsitePaths.OrderUtils]: Key.OrderUtils,
 | 
					    [WebsitePaths.OrderUtils]: Key.OrderUtils,
 | 
				
			||||||
    [WebsitePaths.OrderWatcher]: Key.OrderWatcher,
 | 
					    [WebsitePaths.OrderWatcher]: Key.OrderWatcher,
 | 
				
			||||||
 | 
					    [WebsitePaths.AssetBuyer]: Key.AssetBuyer,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const DEFAULT_HEIGHT = 68;
 | 
					const DEFAULT_HEIGHT = 68;
 | 
				
			||||||
@@ -214,6 +215,12 @@ export class TopBar extends React.Component<TopBarProps, TopBarState> {
 | 
				
			|||||||
                    primaryText={this.props.translate.get(Key.EthereumTypes, Deco.CapWords)}
 | 
					                    primaryText={this.props.translate.get(Key.EthereumTypes, Deco.CapWords)}
 | 
				
			||||||
                />
 | 
					                />
 | 
				
			||||||
            </Link>,
 | 
					            </Link>,
 | 
				
			||||||
 | 
					            <Link key="subMenuItem-asset-buyer" to={WebsitePaths.AssetBuyer} className="text-decoration-none">
 | 
				
			||||||
 | 
					                <MenuItem
 | 
				
			||||||
 | 
					                    style={{ fontSize: styles.menuItem.fontSize }}
 | 
				
			||||||
 | 
					                    primaryText={this.props.translate.get(Key.AssetBuyer, Deco.CapWords)}
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
 | 
					            </Link>,
 | 
				
			||||||
            <a
 | 
					            <a
 | 
				
			||||||
                key="subMenuItem-whitePaper"
 | 
					                key="subMenuItem-whitePaper"
 | 
				
			||||||
                target="_blank"
 | 
					                target="_blank"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										69
									
								
								packages/website/ts/containers/asset_buyer_documentation.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								packages/website/ts/containers/asset_buyer_documentation.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					import { DocsInfo, DocsInfoConfig, SupportedDocJson } from '@0xproject/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 } from 'ts/types';
 | 
				
			||||||
 | 
					import { Translate } from 'ts/utils/translate';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* tslint:disable:no-var-requires */
 | 
				
			||||||
 | 
					const IntroMarkdown = require('md/docs/asset_buyer/introduction');
 | 
				
			||||||
 | 
					const InstallationMarkdown = require('md/docs/asset_buyer/installation');
 | 
				
			||||||
 | 
					const UsageMarkdown = require('md/docs/asset_buyer/usage');
 | 
				
			||||||
 | 
					/* tslint:enable:no-var-requires */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const markdownSections = {
 | 
				
			||||||
 | 
					    introduction: 'introduction',
 | 
				
			||||||
 | 
					    installation: 'installation',
 | 
				
			||||||
 | 
					    usage: 'usage',
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const docsInfoConfig: DocsInfoConfig = {
 | 
				
			||||||
 | 
					    id: DocPackages.AssetBuyer,
 | 
				
			||||||
 | 
					    packageName: '@0xproject/asset-buyer',
 | 
				
			||||||
 | 
					    type: SupportedDocJson.TypeDoc,
 | 
				
			||||||
 | 
					    displayName: 'AssetBuyer',
 | 
				
			||||||
 | 
					    packageUrl: 'https://github.com/0xProject/0x-monorepo',
 | 
				
			||||||
 | 
					    markdownMenu: {
 | 
				
			||||||
 | 
					        introduction: [markdownSections.introduction],
 | 
				
			||||||
 | 
					        install: [markdownSections.installation],
 | 
				
			||||||
 | 
					        usage: [markdownSections.usage],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    sectionNameToMarkdownByVersion: {
 | 
				
			||||||
 | 
					        '0.0.1': {
 | 
				
			||||||
 | 
					            [markdownSections.introduction]: IntroMarkdown,
 | 
				
			||||||
 | 
					            [markdownSections.installation]: InstallationMarkdown,
 | 
				
			||||||
 | 
					            [markdownSections.usage]: UsageMarkdown,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    markdownSections,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					const docsInfo = new DocsInfo(docsInfoConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface ConnectedState {
 | 
				
			||||||
 | 
					    docsVersion: string;
 | 
				
			||||||
 | 
					    availableDocVersions: string[];
 | 
				
			||||||
 | 
					    docsInfo: DocsInfo;
 | 
				
			||||||
 | 
					    translate: Translate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface ConnectedDispatch {
 | 
				
			||||||
 | 
					    dispatcher: Dispatcher;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const mapStateToProps = (state: State, _ownProps: DocPageProps): ConnectedState => ({
 | 
				
			||||||
 | 
					    docsVersion: state.docsVersion,
 | 
				
			||||||
 | 
					    availableDocVersions: state.availableDocVersions,
 | 
				
			||||||
 | 
					    translate: state.translate,
 | 
				
			||||||
 | 
					    docsInfo,
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
 | 
				
			||||||
 | 
					    dispatcher: new Dispatcher(dispatch),
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const Documentation: React.ComponentClass<DocPageProps> = connect(mapStateToProps, mapDispatchToProps)(
 | 
				
			||||||
 | 
					    DocPageComponent,
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
@@ -68,6 +68,9 @@ const LazyOrderUtilsDocumentation = createLazyComponent('Documentation', async (
 | 
				
			|||||||
const LazyEthereumTypesDocumentation = createLazyComponent('Documentation', async () =>
 | 
					const LazyEthereumTypesDocumentation = createLazyComponent('Documentation', async () =>
 | 
				
			||||||
    import(/* webpackChunkName: "ethereumTypesDocs" */ 'ts/containers/ethereum_types_documentation'),
 | 
					    import(/* webpackChunkName: "ethereumTypesDocs" */ 'ts/containers/ethereum_types_documentation'),
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					const LazyAssetBuyerDocumentation = createLazyComponent('Documentation', async () =>
 | 
				
			||||||
 | 
					    import(/* webpackChunkName: "assetBuyerDocs" */ 'ts/containers/asset_buyer_documentation'),
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const DOCUMENT_TITLE = '0x: The Protocol for Trading Tokens';
 | 
					const DOCUMENT_TITLE = '0x: The Protocol for Trading Tokens';
 | 
				
			||||||
const DOCUMENT_DESCRIPTION = 'An Open Protocol For Decentralized Exchange On The Ethereum Blockchain';
 | 
					const DOCUMENT_DESCRIPTION = 'An Open Protocol For Decentralized Exchange On The Ethereum Blockchain';
 | 
				
			||||||
@@ -133,7 +136,10 @@ render(
 | 
				
			|||||||
                                    path={`${WebsitePaths.EthereumTypes}/:version?`}
 | 
					                                    path={`${WebsitePaths.EthereumTypes}/:version?`}
 | 
				
			||||||
                                    component={LazyEthereumTypesDocumentation}
 | 
					                                    component={LazyEthereumTypesDocumentation}
 | 
				
			||||||
                                />
 | 
					                                />
 | 
				
			||||||
 | 
					                                <Route
 | 
				
			||||||
 | 
					                                    path={`${WebsitePaths.AssetBuyer}/:version?`}
 | 
				
			||||||
 | 
					                                    component={LazyAssetBuyerDocumentation}
 | 
				
			||||||
 | 
					                                />
 | 
				
			||||||
                                {/* Legacy endpoints */}
 | 
					                                {/* Legacy endpoints */}
 | 
				
			||||||
                                <Route
 | 
					                                <Route
 | 
				
			||||||
                                    path={`${WebsiteLegacyPaths.ZeroExJs}/:version?`}
 | 
					                                    path={`${WebsiteLegacyPaths.ZeroExJs}/:version?`}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,6 +43,7 @@ const docIdToSubpackageName: { [id: string]: string } = {
 | 
				
			|||||||
    [DocPackages.OrderUtils]: 'order-utils',
 | 
					    [DocPackages.OrderUtils]: 'order-utils',
 | 
				
			||||||
    [DocPackages.OrderWatcher]: 'order-watcher',
 | 
					    [DocPackages.OrderWatcher]: 'order-watcher',
 | 
				
			||||||
    [DocPackages.EthereumTypes]: 'ethereum-types',
 | 
					    [DocPackages.EthereumTypes]: 'ethereum-types',
 | 
				
			||||||
 | 
					    [DocPackages.AssetBuyer]: 'asset-buyer',
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface DocPageProps {
 | 
					export interface DocPageProps {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -363,6 +363,7 @@ export enum WebsitePaths {
 | 
				
			|||||||
    Subproviders = '/docs/subproviders',
 | 
					    Subproviders = '/docs/subproviders',
 | 
				
			||||||
    OrderUtils = '/docs/order-utils',
 | 
					    OrderUtils = '/docs/order-utils',
 | 
				
			||||||
    EthereumTypes = '/docs/ethereum-types',
 | 
					    EthereumTypes = '/docs/ethereum-types',
 | 
				
			||||||
 | 
					    AssetBuyer = '/docs/asset-buyer',
 | 
				
			||||||
    Careers = '/careers',
 | 
					    Careers = '/careers',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -379,6 +380,7 @@ export enum DocPackages {
 | 
				
			|||||||
    EthereumTypes = 'ETHEREUM_TYPES',
 | 
					    EthereumTypes = 'ETHEREUM_TYPES',
 | 
				
			||||||
    ContractWrappers = 'CONTRACT_WRAPPERS',
 | 
					    ContractWrappers = 'CONTRACT_WRAPPERS',
 | 
				
			||||||
    OrderWatcher = 'ORDER_WATCHER',
 | 
					    OrderWatcher = 'ORDER_WATCHER',
 | 
				
			||||||
 | 
					    AssetBuyer = 'ASSET_BUYER',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum Key {
 | 
					export enum Key {
 | 
				
			||||||
@@ -440,6 +442,7 @@ export enum Key {
 | 
				
			|||||||
    ZeroExJs = '0X_JS',
 | 
					    ZeroExJs = '0X_JS',
 | 
				
			||||||
    ContractWrappers = 'CONTRACT_WRAPPERS',
 | 
					    ContractWrappers = 'CONTRACT_WRAPPERS',
 | 
				
			||||||
    OrderWatcher = 'ORDER_WATCHER',
 | 
					    OrderWatcher = 'ORDER_WATCHER',
 | 
				
			||||||
 | 
					    AssetBuyer = 'ASSET_BUYER',
 | 
				
			||||||
    Blog = 'BLOG',
 | 
					    Blog = 'BLOG',
 | 
				
			||||||
    Forum = 'FORUM',
 | 
					    Forum = 'FORUM',
 | 
				
			||||||
    Connect = 'CONNECT',
 | 
					    Connect = 'CONNECT',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user