From cf46d2c7049461e25441239e71f486bfbd2a986a Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 13 Sep 2018 13:51:09 +0200 Subject: [PATCH] 0xjs README/website docs update --- packages/0x.js/README.md | 11 +++++-- packages/website/md/docs/0xjs/0.0.1/async.md | 26 ++++++++++++++++ .../md/docs/0xjs/{1.0.0 => 0.0.1}/errors.md | 0 .../md/docs/0xjs/0.0.1/installation.md | 31 +++++++++++++++++++ .../md/docs/0xjs/0.0.1/introduction.md | 1 + .../website/md/docs/0xjs/0.0.1/versioning.md | 1 + packages/website/md/docs/0xjs/1.0.0/async.md | 17 ++++++---- .../md/docs/0xjs/1.0.0/installation.md | 13 ++++++-- .../md/docs/0xjs/1.0.0/introduction.md | 4 ++- .../website/md/docs/0xjs/1.0.0/versioning.md | 2 +- .../md/docs/0xjs/2.0.0/introduction.md | 3 -- .../website/md/docs/0xjs/2.0.0/versioning.md | 1 - .../ts/containers/zero_ex_js_documentation.ts | 31 ++++++++++--------- 13 files changed, 111 insertions(+), 30 deletions(-) create mode 100644 packages/website/md/docs/0xjs/0.0.1/async.md rename packages/website/md/docs/0xjs/{1.0.0 => 0.0.1}/errors.md (100%) create mode 100644 packages/website/md/docs/0xjs/0.0.1/installation.md create mode 100644 packages/website/md/docs/0xjs/0.0.1/introduction.md create mode 100644 packages/website/md/docs/0xjs/0.0.1/versioning.md delete mode 100644 packages/website/md/docs/0xjs/2.0.0/introduction.md delete mode 100644 packages/website/md/docs/0xjs/2.0.0/versioning.md diff --git a/packages/0x.js/README.md b/packages/0x.js/README.md index fd6217151d..3290373247 100644 --- a/packages/0x.js/README.md +++ b/packages/0x.js/README.md @@ -1,6 +1,6 @@ ## 0x.js -A TypeScript/Javascript library for interacting with the 0x protocol. +A TypeScript/Javascript library for interacting with the 0x protocol. It is a high level package which combines a number of underlying packages such as order-utils and order-watcher. ### Read the [Documentation](https://0xproject.com/docs/0x.js). @@ -19,7 +19,14 @@ npm install 0x.js --save **Import** ```javascript -import { ZeroEx } from '0x.js'; +import { + assetDataUtils, + BigNumber, + ContractWrappers, + generatePseudoRandomSalt, + orderHashUtils, + signatureUtils, +} from '0x.js'; ``` If your project is in [TypeScript](https://www.typescriptlang.org/), add the following to your `tsconfig.json`: diff --git a/packages/website/md/docs/0xjs/0.0.1/async.md b/packages/website/md/docs/0xjs/0.0.1/async.md new file mode 100644 index 0000000000..8abaef331d --- /dev/null +++ b/packages/website/md/docs/0xjs/0.0.1/async.md @@ -0,0 +1,26 @@ +0x.js is a promise-based library. This means that whenever an asynchronous call is required, the library method will return a native Javascript promise. You can therefore choose between using `promise` or `async/await` syntax when calling our async methods. + +_Async/await syntax (recommended):_ + +```javascript +try { + var availableAddresses = await zeroEx.getAvailableAddressesAsync(); +} catch (error) { + console.log('Caught error: ', error); +} +``` + +_Promise syntax:_ + +```javascript +zeroEx + .getAvailableAddressesAsync() + .then(function(availableAddresses) { + console.log(availableAddresses); + }) + .catch(function(error) { + console.log('Caught error: ', error); + }); +``` + +As is the convention with promise-based libraries, if an error occurs, it is thrown. It is the callers responsibility to catch thrown errors and to handle them appropriately. diff --git a/packages/website/md/docs/0xjs/1.0.0/errors.md b/packages/website/md/docs/0xjs/0.0.1/errors.md similarity index 100% rename from packages/website/md/docs/0xjs/1.0.0/errors.md rename to packages/website/md/docs/0xjs/0.0.1/errors.md diff --git a/packages/website/md/docs/0xjs/0.0.1/installation.md b/packages/website/md/docs/0xjs/0.0.1/installation.md new file mode 100644 index 0000000000..ac0a47699f --- /dev/null +++ b/packages/website/md/docs/0xjs/0.0.1/installation.md @@ -0,0 +1,31 @@ +0x.js ships as both a [UMD](https://github.com/umdjs/umd) module and a [CommonJS](https://en.wikipedia.org/wiki/CommonJS) package. + +#### CommonJS _(recommended)_: + +**Install** + +```bash +npm install 0x.js --save +``` + +**Import** + +```javascript +import { ZeroEx } from '0x.js'; +``` + +#### UMD: + +**Install** + +Download the UMD module from our [releases page](https://github.com/0xProject/0x-monorepo/releases) and add it to your project. + +**Import** + +```html + +``` + +### Wiki + +Check out our [wiki](https://0xproject.com/wiki) for articles on how to get 0x.js setup with TestRPC, Infura and more! diff --git a/packages/website/md/docs/0xjs/0.0.1/introduction.md b/packages/website/md/docs/0xjs/0.0.1/introduction.md new file mode 100644 index 0000000000..008376d337 --- /dev/null +++ b/packages/website/md/docs/0xjs/0.0.1/introduction.md @@ -0,0 +1 @@ +Welcome to the [0x.js](https://github.com/0xProject/0x-monorepo) documentation! 0x.js is a Javascript library for interacting with the 0x protocol. With it, you can easily make calls to the 0x smart contracts as well as any ERC20 token. Functionality includes generating, signing, filling and cancelling orders, verifying an orders signature, setting or checking a users ERC20 token balance/allowance and much more. diff --git a/packages/website/md/docs/0xjs/0.0.1/versioning.md b/packages/website/md/docs/0xjs/0.0.1/versioning.md new file mode 100644 index 0000000000..6bcaa5b4dc --- /dev/null +++ b/packages/website/md/docs/0xjs/0.0.1/versioning.md @@ -0,0 +1 @@ +This project adheres to the [Semantic Versioning 2.0.0](http://semver.org/) specification. The library's public interface includes all the methods, properties and types included in the documentation. Since the library is still an alpha, it's public interface is not yet stable and we will introduce backward incompatible changes to the interface without incrementing the major version until the `1.0.0` release. Our convention until then will be to increment the minor version whenever we introduce backward incompatible changes to the public interface, and to increment the patch version otherwise. This way, it is safe for you to include 0x.js in your projects with the tilda (e.g `~0.22.0`) without fear that a patch update would break your app. diff --git a/packages/website/md/docs/0xjs/1.0.0/async.md b/packages/website/md/docs/0xjs/1.0.0/async.md index 8abaef331d..2909e47e0c 100644 --- a/packages/website/md/docs/0xjs/1.0.0/async.md +++ b/packages/website/md/docs/0xjs/1.0.0/async.md @@ -1,10 +1,15 @@ -0x.js is a promise-based library. This means that whenever an asynchronous call is required, the library method will return a native Javascript promise. You can therefore choose between using `promise` or `async/await` syntax when calling our async methods. +0x packages are promise-based libraries. This means that whenever an asynchronous call is required, the library method will return a native Javascript promise. You can therefore choose between using `promise` or `async/await` syntax when calling our async methods. _Async/await syntax (recommended):_ ```javascript try { - var availableAddresses = await zeroEx.getAvailableAddressesAsync(); + const signature = await signatureUtils.ecSignOrderHashAsync( + providerEngine, + orderHashHex, + maker, + SignerType.Default, + ); } catch (error) { console.log('Caught error: ', error); } @@ -13,10 +18,10 @@ try { _Promise syntax:_ ```javascript -zeroEx - .getAvailableAddressesAsync() - .then(function(availableAddresses) { - console.log(availableAddresses); +signature = signatureUtils + .ecSignOrderHashAsync(providerEngine, orderHashHex, maker, SignerType.Default) + .then(function(signature) { + console.log(signature); }) .catch(function(error) { console.log('Caught error: ', error); diff --git a/packages/website/md/docs/0xjs/1.0.0/installation.md b/packages/website/md/docs/0xjs/1.0.0/installation.md index ac0a47699f..74c902afd4 100644 --- a/packages/website/md/docs/0xjs/1.0.0/installation.md +++ b/packages/website/md/docs/0xjs/1.0.0/installation.md @@ -11,7 +11,16 @@ npm install 0x.js --save **Import** ```javascript -import { ZeroEx } from '0x.js'; +import { + assetDataUtils, + BigNumber, + ContractWrappers, + generatePseudoRandomSalt, + Order, + orderHashUtils, + signatureUtils, + SignerType, +} from '0x.js'; ``` #### UMD: @@ -28,4 +37,4 @@ Download the UMD module from our [releases page](https://github.com/0xProject/0x ### Wiki -Check out our [wiki](https://0xproject.com/wiki) for articles on how to get 0x.js setup with TestRPC, Infura and more! +Check out our [wiki](https://0xproject.com/wiki) for articles on how to get 0x.js setup with Ganache, Infura and more! diff --git a/packages/website/md/docs/0xjs/1.0.0/introduction.md b/packages/website/md/docs/0xjs/1.0.0/introduction.md index 008376d337..d228c68550 100644 --- a/packages/website/md/docs/0xjs/1.0.0/introduction.md +++ b/packages/website/md/docs/0xjs/1.0.0/introduction.md @@ -1 +1,3 @@ -Welcome to the [0x.js](https://github.com/0xProject/0x-monorepo) documentation! 0x.js is a Javascript library for interacting with the 0x protocol. With it, you can easily make calls to the 0x smart contracts as well as any ERC20 token. Functionality includes generating, signing, filling and cancelling orders, verifying an orders signature, setting or checking a users ERC20 token balance/allowance and much more. +**NOTE:** Release candidate versions are meant to work with V2 of 0x protocol. To interact with V1, select a 0.X version. + +Welcome to the [0x.js](https://github.com/0xProject/0x-monorepo/tree/development/packages/0x.js) documentation! 0x.js is a Javascript library for interacting with the 0x protocol. With it, you can easily make calls to the 0x smart contracts as well as any token adhering to the token standards supported by the protocol (currently ERC20 & ERC721). Functionality includes generating, signing, filling and cancelling orders, verifying an orders signature, setting or checking a users ERC20/ERC721 token balance/allowance and much more. diff --git a/packages/website/md/docs/0xjs/1.0.0/versioning.md b/packages/website/md/docs/0xjs/1.0.0/versioning.md index 6bcaa5b4dc..6bae835d37 100644 --- a/packages/website/md/docs/0xjs/1.0.0/versioning.md +++ b/packages/website/md/docs/0xjs/1.0.0/versioning.md @@ -1 +1 @@ -This project adheres to the [Semantic Versioning 2.0.0](http://semver.org/) specification. The library's public interface includes all the methods, properties and types included in the documentation. Since the library is still an alpha, it's public interface is not yet stable and we will introduce backward incompatible changes to the interface without incrementing the major version until the `1.0.0` release. Our convention until then will be to increment the minor version whenever we introduce backward incompatible changes to the public interface, and to increment the patch version otherwise. This way, it is safe for you to include 0x.js in your projects with the tilda (e.g `~0.22.0`) without fear that a patch update would break your app. +Since v1.0.0, this package adheres to the [Semantic Versioning 2.0.0](http://semver.org/) specification. The library's public interface includes all the methods, properties and types included in the documentation. We will publish with a major version bump for any breaking change to the public interface, use a minor version bump when introducing new features in a backwards-compatible way, and patch versions when introducing backwards-compatible bug fixes. Because of this, we recommend you import `0x.js` with a caret `^1.0.0` to take advantage of non-breaking bug fixes. diff --git a/packages/website/md/docs/0xjs/2.0.0/introduction.md b/packages/website/md/docs/0xjs/2.0.0/introduction.md deleted file mode 100644 index d228c68550..0000000000 --- a/packages/website/md/docs/0xjs/2.0.0/introduction.md +++ /dev/null @@ -1,3 +0,0 @@ -**NOTE:** Release candidate versions are meant to work with V2 of 0x protocol. To interact with V1, select a 0.X version. - -Welcome to the [0x.js](https://github.com/0xProject/0x-monorepo/tree/development/packages/0x.js) documentation! 0x.js is a Javascript library for interacting with the 0x protocol. With it, you can easily make calls to the 0x smart contracts as well as any token adhering to the token standards supported by the protocol (currently ERC20 & ERC721). Functionality includes generating, signing, filling and cancelling orders, verifying an orders signature, setting or checking a users ERC20/ERC721 token balance/allowance and much more. diff --git a/packages/website/md/docs/0xjs/2.0.0/versioning.md b/packages/website/md/docs/0xjs/2.0.0/versioning.md deleted file mode 100644 index 7f2b6fee93..0000000000 --- a/packages/website/md/docs/0xjs/2.0.0/versioning.md +++ /dev/null @@ -1 +0,0 @@ -Since v1.0.0, this package adheres to the [Semantic Versioning 2.0.0](http://semver.org/) specification. The library's public interface includes all the methods, properties and types included in the documentation. We will publish with a major version bump for any breaking change to the public interface, use a minor version bump when introducing new features in a backwards-compatible way, and patch versions when introducing backwards-compatible bug fixes. Because of this, we recommend you import `0x.js` with a caret `^2.0.0` to take advantage of non-breaking bug fixes. diff --git a/packages/website/ts/containers/zero_ex_js_documentation.ts b/packages/website/ts/containers/zero_ex_js_documentation.ts index 922dd3c105..51820d6206 100644 --- a/packages/website/ts/containers/zero_ex_js_documentation.ts +++ b/packages/website/ts/containers/zero_ex_js_documentation.ts @@ -9,14 +9,15 @@ import { DocPackages } from 'ts/types'; import { Translate } from 'ts/utils/translate'; /* tslint:disable:no-var-requires */ -const IntroMarkdownV1 = require('md/docs/0xjs/1.0.0/introduction'); -const InstallationMarkdownV1 = require('md/docs/0xjs/1.0.0/installation'); -const AsyncMarkdownV1 = require('md/docs/0xjs/1.0.0/async'); -const ErrorsMarkdownV1 = require('md/docs/0xjs/1.0.0/errors'); -const versioningMarkdownV1 = require('md/docs/0xjs/1.0.0/versioning'); +const IntroMarkdownV1 = require('md/docs/0xjs/0.0.1/introduction'); +const InstallationMarkdownV1 = require('md/docs/0xjs/0.0.1/installation'); +const AsyncMarkdownV1 = require('md/docs/0xjs/0.0.1/async'); +const ErrorsMarkdownV1 = require('md/docs/0xjs/0.0.1/errors'); +const versioningMarkdownV1 = require('md/docs/0xjs/0.0.1/versioning'); + +const IntroMarkdownV2 = require('md/docs/0xjs/1.0.0/introduction'); +const versioningMarkdownV2 = require('md/docs/0xjs/1.0.0/versioning'); -const IntroMarkdownV2 = require('md/docs/0xjs/2.0.0/introduction'); -const versioningMarkdownV2 = require('md/docs/0xjs/2.0.0/versioning'); /* tslint:enable:no-var-requires */ const markdownSections = { @@ -28,6 +29,12 @@ const markdownSections = { versioning: 'versioning', }; +const sharedMarkdownSections = { + [markdownSections.installation]: InstallationMarkdownV1, + [markdownSections.async]: AsyncMarkdownV1, + [markdownSections.errors]: ErrorsMarkdownV1, +}; + const docsInfoConfig: DocsInfoConfig = { id: DocPackages.ZeroExJs, packageName: '0x.js', @@ -42,18 +49,14 @@ const docsInfoConfig: DocsInfoConfig = { sectionNameToMarkdownByVersion: { '0.0.1': { [markdownSections.introduction]: IntroMarkdownV1, - [markdownSections.installation]: InstallationMarkdownV1, - [markdownSections.async]: AsyncMarkdownV1, - [markdownSections.errors]: ErrorsMarkdownV1, [markdownSections.versioning]: versioningMarkdownV1, + ...sharedMarkdownSections, }, - '1.0.0-rc.1': { + '1.0.1': { [markdownSections.introduction]: IntroMarkdownV2, [markdownSections.versioning]: versioningMarkdownV2, // These are the same as for V1 - [markdownSections.installation]: InstallationMarkdownV1, - [markdownSections.async]: AsyncMarkdownV1, - [markdownSections.errors]: ErrorsMarkdownV1, + ...sharedMarkdownSections, }, }, markdownSections,