merge development
This commit is contained in:
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
|
||||
```
|
||||
@@ -1,28 +1,40 @@
|
||||
Basic Schemas
|
||||
|
||||
* [Address type](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/address.json)
|
||||
* [Number type](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/number.json)
|
||||
* [Hex type](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/hex.json)
|
||||
* [JS number](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/js_number.json)
|
||||
|
||||
0x Protocol Schemas
|
||||
|
||||
* [Basic types](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/basic_type_schemas.ts) (e.g Ethereum address, number, hex)
|
||||
* [Order/SignedOrder](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_schemas.ts)
|
||||
* [OrderHash](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_hash_schema.ts)
|
||||
* [Order](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_schema.json)
|
||||
* [SignedOrder](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/signed_order_schema.json)
|
||||
* [OrderHash](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_hash_schema.json)
|
||||
* [ECSignature](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/ec_signature_schema.json)
|
||||
|
||||
0x.js Schemas
|
||||
|
||||
* [BlockRange](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/block_range_schema.ts)
|
||||
* [IndexFilter Values](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/index_filter_values_schema.ts)
|
||||
* [OrderFillRequests](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_fill_requests_schema.ts)
|
||||
* [OrderCancellationRequests](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_cancel_schema.ts)
|
||||
* [OrderFillOrKillRequests](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_fill_or_kill_requests_schema.ts)
|
||||
* [SignedOrders](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/signed_orders_schema.ts)
|
||||
* [Token](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/token_schema.ts)
|
||||
* [TxData](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/tx_data_schema.ts)
|
||||
* [BlockParam](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/block_param_schema.json)
|
||||
* [BlockRange](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/block_range_schema.json)
|
||||
* [IndexFilter Values](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/index_filter_values_schema.json)
|
||||
* [OrderFillRequests](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_fill_requests_schema.json)
|
||||
* [OrderCancellationRequests](https://github.com/0xProjet/0x-monorepo/blob/development/packages/json-schemas/schemas/order_cancel_schema.json)
|
||||
* [OrderFillOrKillRequests](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_fill_or_kill_requests_schema.json)
|
||||
* [SignedOrders](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/signed_orders_schema.json)
|
||||
* [Token](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/token_schema.json)
|
||||
* [TxData](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/tx_data_schema.json)
|
||||
|
||||
Standard Relayer API Schemas
|
||||
|
||||
* [Paginated collection](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/paginated_collection_schema.ts)
|
||||
* [Error response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_error_response_schema.ts)
|
||||
* [Order config payload](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_order_config_payload_schema.ts)
|
||||
* [Order config response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_order_config_response_schema.ts)
|
||||
* [Orders channel subscribe](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orders_channel_subscribe_schema.ts)
|
||||
* [Orders channel update](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orders_channel_update_response_schema.ts)
|
||||
* [Orderbook response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orderbook_response_schema.ts)
|
||||
* [Asset pairs response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_asset_pairs_response_schema.ts)
|
||||
* [Fee recipients response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_fee_recipients_response_schema.ts)
|
||||
* [Paginated collection](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/paginated_collection_schema.json)
|
||||
* [Error response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_error_response_schema.json)
|
||||
* [Order config payload](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_order_config_payload_schema.json)
|
||||
* [Order config response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_order_config_response_schema.json)
|
||||
* [Orders channel subscribe payload](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orders_channel_subscribe_payload_schema.json)
|
||||
* [Orders channel subscribe](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orders_channel_subscribe_schema.json)
|
||||
* [Orders channel update](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orders_channel_update_response_schema.json)
|
||||
* [Orderbook response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_orderbook_response_schema.json)
|
||||
* [Asset pairs](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_asset_pairs_schema.json)
|
||||
* [Trade info](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_asset_trade_info_schema.json)
|
||||
* [Asset pairs response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_asset_pairs_response_schema.json)
|
||||
* [Fee recipients response](https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/relayer_api_fee_recipients_response_schema.json)
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"WIKI": "wiki",
|
||||
"WEB3_WRAPPER": "Web3Wrapper",
|
||||
"ORDER_UTILS": "Order Utils",
|
||||
"ASSET_BUYER": "AssetBuyer",
|
||||
"FAQ": "FAQ",
|
||||
"SMART_CONTRACTS": "0x smart contracts",
|
||||
"STANDARD_RELAYER_API": "standard relayer API",
|
||||
|
||||
@@ -18,7 +18,7 @@ import { Loading } from 'ts/components/portal/loading';
|
||||
import { Menu, MenuTheme } from 'ts/components/portal/menu';
|
||||
import { Section } from 'ts/components/portal/section';
|
||||
import { TextHeader } from 'ts/components/portal/text_header';
|
||||
import { RelayerIndex } from 'ts/components/relayer_index/relayer_index';
|
||||
import { RelayerIndex, RelayerIndexCellStyle } from 'ts/components/relayer_index/relayer_index';
|
||||
import { TokenBalances } from 'ts/components/token_balances';
|
||||
import { TopBar, TopBarDisplayType } from 'ts/components/top_bar/top_bar';
|
||||
import { TradeHistory } from 'ts/components/trade_history/trade_history';
|
||||
@@ -539,6 +539,7 @@ export class Portal extends React.Component<PortalProps, PortalState> {
|
||||
}
|
||||
private _renderRelayerIndexSection(): React.ReactNode {
|
||||
const isMobile = utils.isMobileWidth(this.props.screenWidth);
|
||||
// TODO(bmillman): revert RelayerIndex cellStyle to Expanded once data pipeline is tracking v2 volume
|
||||
return (
|
||||
<Section
|
||||
header={!isMobile && <TextHeader labelText="0x Relayers" />}
|
||||
@@ -549,7 +550,11 @@ export class Portal extends React.Component<PortalProps, PortalState> {
|
||||
{this._renderStartOnboarding()}
|
||||
</Container>
|
||||
)}
|
||||
<RelayerIndex networkId={this.props.networkId} screenWidth={this.props.screenWidth} />
|
||||
<RelayerIndex
|
||||
networkId={this.props.networkId}
|
||||
screenWidth={this.props.screenWidth}
|
||||
cellStyle={RelayerIndexCellStyle.Minimized}
|
||||
/>
|
||||
</Container>
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -14,9 +14,15 @@ import { styled } from 'ts/style/theme';
|
||||
import { WebsiteBackendRelayerInfo } from 'ts/types';
|
||||
import { utils } from 'ts/utils/utils';
|
||||
|
||||
export enum RelayerGridTileStyle {
|
||||
Expanded = 0,
|
||||
Minimized,
|
||||
}
|
||||
|
||||
export interface RelayerGridTileProps {
|
||||
relayerInfo: WebsiteBackendRelayerInfo;
|
||||
networkId: number;
|
||||
style: RelayerGridTileStyle;
|
||||
}
|
||||
|
||||
const styles: Styles = {
|
||||
@@ -30,10 +36,14 @@ const styles: Styles = {
|
||||
height: '100%',
|
||||
boxSizing: 'border-box',
|
||||
},
|
||||
header: {
|
||||
expandedHeader: {
|
||||
height: '50%',
|
||||
width: '100%',
|
||||
},
|
||||
minimizedHeader: {
|
||||
height: '100%',
|
||||
width: '100%',
|
||||
},
|
||||
body: {
|
||||
height: '50%',
|
||||
width: '100%',
|
||||
@@ -75,10 +85,12 @@ export const RelayerGridTile: React.StatelessComponent<RelayerGridTileProps> = (
|
||||
!_.isUndefined(headerImageUrl) && !_.isUndefined(props.relayerInfo.primaryColor)
|
||||
? props.relayerInfo.primaryColor
|
||||
: FALLBACK_PRIMARY_COLOR;
|
||||
const isExpanded = props.style === RelayerGridTileStyle.Expanded;
|
||||
const headerStyle = isExpanded ? styles.expandedHeader : styles.minimizedHeader;
|
||||
return (
|
||||
<Island style={styles.root} Component={GridTile}>
|
||||
<div style={styles.innerDiv} onClick={onClick}>
|
||||
<div className="flex items-center" style={{ ...styles.header, backgroundColor: headerBackgroundColor }}>
|
||||
<div className="flex items-center" style={{ ...headerStyle, backgroundColor: headerBackgroundColor }}>
|
||||
<Image
|
||||
className="mx-auto"
|
||||
src={props.relayerInfo.logoImgUrl}
|
||||
@@ -86,21 +98,23 @@ export const RelayerGridTile: React.StatelessComponent<RelayerGridTileProps> = (
|
||||
height={RELAYER_ICON_HEIGHT}
|
||||
/>
|
||||
</div>
|
||||
<div style={styles.body}>
|
||||
<div className="pb1" style={styles.relayerNameLabel}>
|
||||
{props.relayerInfo.name}
|
||||
</div>
|
||||
<Section titleText="Weekly Trade Volume">
|
||||
{!_.isUndefined(weeklyTxnVolume) && (
|
||||
<div style={styles.weeklyTradeVolumeLabel}>{props.relayerInfo.weeklyTxnVolume}</div>
|
||||
)}
|
||||
</Section>
|
||||
<Container marginTop="10px">
|
||||
<Section titleText="Top Tokens">
|
||||
{!_.isEmpty(topTokens) && <TopTokens tokens={topTokens} networkId={props.networkId} />}
|
||||
{isExpanded && (
|
||||
<div style={styles.body}>
|
||||
<div className="pb1" style={styles.relayerNameLabel}>
|
||||
{props.relayerInfo.name}
|
||||
</div>
|
||||
<Section titleText="Weekly Trade Volume">
|
||||
{!_.isUndefined(weeklyTxnVolume) && (
|
||||
<div style={styles.weeklyTradeVolumeLabel}>{props.relayerInfo.weeklyTxnVolume}</div>
|
||||
)}
|
||||
</Section>
|
||||
</Container>
|
||||
</div>
|
||||
<Container marginTop="10px">
|
||||
<Section titleText="Top Tokens">
|
||||
{!_.isEmpty(topTokens) && <TopTokens tokens={topTokens} networkId={props.networkId} />}
|
||||
</Section>
|
||||
</Container>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</Island>
|
||||
);
|
||||
|
||||
@@ -3,14 +3,20 @@ import CircularProgress from 'material-ui/CircularProgress';
|
||||
import { GridList } from 'material-ui/GridList';
|
||||
import * as React from 'react';
|
||||
|
||||
import { RelayerGridTile } from 'ts/components/relayer_index/relayer_grid_tile';
|
||||
import { RelayerGridTile, RelayerGridTileStyle } from 'ts/components/relayer_index/relayer_grid_tile';
|
||||
import { Retry } from 'ts/components/ui/retry';
|
||||
import { ScreenWidths, WebsiteBackendRelayerInfo } from 'ts/types';
|
||||
import { backendClient } from 'ts/utils/backend_client';
|
||||
|
||||
export enum RelayerIndexCellStyle {
|
||||
Expanded = 0,
|
||||
Minimized,
|
||||
}
|
||||
|
||||
export interface RelayerIndexProps {
|
||||
networkId: number;
|
||||
screenWidth: ScreenWidths;
|
||||
cellStyle: RelayerIndexCellStyle;
|
||||
}
|
||||
|
||||
interface RelayerIndexState {
|
||||
@@ -18,7 +24,8 @@ interface RelayerIndexState {
|
||||
error?: Error;
|
||||
}
|
||||
|
||||
const CELL_HEIGHT = 290;
|
||||
const CELL_HEIGHT_EXPANDED = 290;
|
||||
const CELL_HEIGHT_MINIMIZED = 225;
|
||||
const NUMBER_OF_COLUMNS_LARGE = 3;
|
||||
const NUMBER_OF_COLUMNS_MEDIUM = 2;
|
||||
const NUMBER_OF_COLUMNS_SMALL = 2;
|
||||
@@ -61,15 +68,23 @@ export class RelayerIndex extends React.Component<RelayerIndexProps, RelayerInde
|
||||
numberOfRelayers,
|
||||
this._numberOfColumnsForScreenWidth(this.props.screenWidth),
|
||||
);
|
||||
const isExpanded = this.props.cellStyle === RelayerIndexCellStyle.Expanded;
|
||||
const cellHeight = isExpanded ? CELL_HEIGHT_EXPANDED : CELL_HEIGHT_MINIMIZED;
|
||||
const gridTileStyle = isExpanded ? RelayerGridTileStyle.Expanded : RelayerGridTileStyle.Minimized;
|
||||
return (
|
||||
<GridList
|
||||
cellHeight={CELL_HEIGHT}
|
||||
cellHeight={cellHeight}
|
||||
cols={numberOfColumns}
|
||||
padding={GRID_PADDING}
|
||||
style={{ marginTop: -10, marginBottom: 0 }}
|
||||
>
|
||||
{this.state.relayerInfos.map((relayerInfo: WebsiteBackendRelayerInfo, index) => (
|
||||
<RelayerGridTile key={index} relayerInfo={relayerInfo} networkId={this.props.networkId} />
|
||||
<RelayerGridTile
|
||||
key={index}
|
||||
relayerInfo={relayerInfo}
|
||||
networkId={this.props.networkId}
|
||||
style={gridTileStyle}
|
||||
/>
|
||||
))}
|
||||
</GridList>
|
||||
);
|
||||
|
||||
@@ -85,6 +85,7 @@ const DOC_WEBSITE_PATHS_TO_KEY = {
|
||||
[WebsitePaths.ZeroExJs]: Key.ZeroExJs,
|
||||
[WebsitePaths.OrderUtils]: Key.OrderUtils,
|
||||
[WebsitePaths.OrderWatcher]: Key.OrderWatcher,
|
||||
[WebsitePaths.AssetBuyer]: Key.AssetBuyer,
|
||||
};
|
||||
|
||||
const DEFAULT_HEIGHT = 68;
|
||||
|
||||
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,
|
||||
);
|
||||
@@ -69,6 +69,9 @@ const LazyOrderUtilsDocumentation = createLazyComponent('Documentation', async (
|
||||
const LazyEthereumTypesDocumentation = createLazyComponent('Documentation', async () =>
|
||||
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_DESCRIPTION = 'An Open Protocol For Decentralized Exchange On The Ethereum Blockchain';
|
||||
@@ -134,8 +137,11 @@ render(
|
||||
path={`${WebsitePaths.EthereumTypes}/:version?`}
|
||||
component={LazyEthereumTypesDocumentation}
|
||||
/>
|
||||
<Route
|
||||
path={`${WebsitePaths.AssetBuyer}/:version?`}
|
||||
component={LazyAssetBuyerDocumentation}
|
||||
/>
|
||||
<Route path={WebsitePaths.Docs} component={DocsHome as any} />
|
||||
|
||||
{/* Legacy endpoints */}
|
||||
<Route
|
||||
path={`${WebsiteLegacyPaths.ZeroExJs}/:version?`}
|
||||
|
||||
@@ -243,9 +243,10 @@ const teamRow9: ProfileInfo[] = [
|
||||
{
|
||||
name: 'Steve Klebanoff',
|
||||
title: 'Senior Engineer',
|
||||
description: ` Full-stack engineer. Previously Staff Software Engineer at Appfolio. Computer Science & Cognitive Psychology at Northeastern University.`,
|
||||
description: ` Full-stack engineer. Previously Staff Software Engineer at AppFolio. Computer Science & Cognitive Psychology at Northeastern University.`,
|
||||
image: 'images/team/steve.png',
|
||||
linkedIn: 'https://www.linkedin.com/in/steveklebanoff/',
|
||||
github: 'https://github.com/steveklebanoff',
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ const docIdToSubpackageName: { [id: string]: string } = {
|
||||
[DocPackages.OrderUtils]: 'order-utils',
|
||||
[DocPackages.OrderWatcher]: 'order-watcher',
|
||||
[DocPackages.EthereumTypes]: 'ethereum-types',
|
||||
[DocPackages.AssetBuyer]: 'asset-buyer',
|
||||
};
|
||||
|
||||
export interface DocPageProps {
|
||||
|
||||
@@ -364,6 +364,7 @@ export enum WebsitePaths {
|
||||
Subproviders = '/docs/subproviders',
|
||||
OrderUtils = '/docs/order-utils',
|
||||
EthereumTypes = '/docs/ethereum-types',
|
||||
AssetBuyer = '/docs/asset-buyer',
|
||||
Careers = '/careers',
|
||||
}
|
||||
|
||||
@@ -380,6 +381,7 @@ export enum DocPackages {
|
||||
EthereumTypes = 'ETHEREUM_TYPES',
|
||||
ContractWrappers = 'CONTRACT_WRAPPERS',
|
||||
OrderWatcher = 'ORDER_WATCHER',
|
||||
AssetBuyer = 'ASSET_BUYER',
|
||||
}
|
||||
|
||||
export enum Key {
|
||||
@@ -441,6 +443,7 @@ export enum Key {
|
||||
ZeroExJs = '0X_JS',
|
||||
ContractWrappers = 'CONTRACT_WRAPPERS',
|
||||
OrderWatcher = 'ORDER_WATCHER',
|
||||
AssetBuyer = 'ASSET_BUYER',
|
||||
Blog = 'BLOG',
|
||||
Forum = 'FORUM',
|
||||
Connect = 'CONNECT',
|
||||
|
||||
Reference in New Issue
Block a user