Merge branch 'development' into v2-prototype
* development: (29 commits) Do not remove artifacts when running `clean` fix style errors Fix circular dependency Add my profile image to images Add myself to about page Add dogfood configs to website Revert to lerna:run lint Do lint sequentially Exclude monorepo-scripts from tslint as test Fix prettier Add hover state to top tokens Change to weekly txn volume Change minimum Node version to 6.12 Document Node.js version requirement and add it to package.json Apply prettier to some files which were not formatted correctly Fix TSLint issues Fix TSLint issues Update ethereeumjs-testrpc to ganache-cli Fix infinite loop Add changelog entries for packages where executable binary exporting fixed ... # Conflicts: # packages/contracts/package.json # packages/contracts/util/formatters.ts # packages/contracts/util/signed_order_utils.ts # packages/migrations/package.json # yarn.lock
This commit is contained in:
@@ -22,7 +22,7 @@ jobs:
|
||||
- run: wget https://s3.amazonaws.com/testrpc-shapshots/${CONTRACTS_COMMIT_HASH}.zip
|
||||
- run: unzip ${CONTRACTS_COMMIT_HASH}.zip -d testrpc_snapshot
|
||||
- run: node ./node_modules/lerna/bin/lerna.js bootstrap
|
||||
- run: yarn lerna:run build
|
||||
- run: yarn build
|
||||
- save_cache:
|
||||
key: repo-{{ .Environment.CIRCLE_SHA1 }}
|
||||
paths:
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
name: testrpc
|
||||
command: npm run testrpc -- --db testrpc_snapshot
|
||||
background: true
|
||||
- run: yarn lerna:run --scope 0x.js test:circleci
|
||||
- run: yarn wsrun test:circleci 0x.js
|
||||
- save_cache:
|
||||
key: coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }}
|
||||
paths:
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
name: testrpc
|
||||
command: npm run testrpc -- --db testrpc_snapshot
|
||||
background: true
|
||||
- run: yarn lerna:run --scope contracts test:circleci
|
||||
- run: yarn wsrun test:circleci contracts
|
||||
- save_cache:
|
||||
key: coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
|
||||
paths:
|
||||
@@ -82,7 +82,7 @@ jobs:
|
||||
name: testrpc
|
||||
command: npm run testrpc -- --db testrpc_snapshot
|
||||
background: true
|
||||
- run: yarn lerna:run --scope @0xproject/sol-compiler test:circleci
|
||||
- run: yarn wsrun test:circleci @0xproject/sol-compiler
|
||||
- save_cache:
|
||||
key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
|
||||
paths:
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
name: testrpc
|
||||
command: npm run testrpc -- --db testrpc_snapshot
|
||||
background: true
|
||||
- run: yarn lerna:run --ignore contracts --ignore 0x.js --ignore @0xproject/sol-compiler test:circleci
|
||||
- run: yarn wsrun test:circleci --exclude contracts --exclude 0x.js --exclude @0xproject/sol-compiler --stages --exclude-missing
|
||||
- save_cache:
|
||||
key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
|
||||
paths:
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -70,8 +70,8 @@ TODO.md
|
||||
packages/website/public/bundle*
|
||||
packages/react-docs/example/public/bundle*
|
||||
|
||||
# generated binaries
|
||||
bin/
|
||||
# server cli
|
||||
packages/testnet-faucets/server/
|
||||
|
||||
# generated contract artifacts/
|
||||
packages/sol-cov/test/fixtures/artifacts/
|
||||
|
||||
79
README.md
79
README.md
@@ -62,6 +62,8 @@ Dedicated documentation pages:
|
||||
* [Sol-cov](https://0xproject.com/docs/sol-cov)
|
||||
* [Standard Relayer API](https://github.com/0xProject/standard-relayer-api/blob/master/README.md)
|
||||
|
||||
Node version >= 6.12 is required.
|
||||
|
||||
Most of the packages require additional typings for external dependencies.
|
||||
You can include those by prepending @0xproject/typescript-typings package to your [`typeRoots`](http://www.typescriptlang.org/docs/handbook/tsconfig-json.html) config.
|
||||
|
||||
@@ -91,32 +93,87 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
Build all packages. You need to do this before working on any given package. Although these packages
|
||||
as independent, when run from within the monorepo, they are internally symlinked, to make development
|
||||
easier. You can change several packages and run the changes without publishing them first to NPM. When
|
||||
running `rebuild`, Lerna will figure out the dependency order of all the packages, and build them in
|
||||
this order.
|
||||
To build all packages:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
To build a specific package:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
PKG=@0xproject/web3-wrapper yarn build
|
||||
```
|
||||
|
||||
### Watch
|
||||
|
||||
To re-build all packages on change:
|
||||
|
||||
```bash
|
||||
yarn watch
|
||||
```
|
||||
|
||||
To watch a specific package and all it's dependent packages:
|
||||
|
||||
```bash
|
||||
PKG=[NPM_PACKAGE_NAME] yarn watch
|
||||
|
||||
e.g
|
||||
PKG=@0xproject/web3-wrapper yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
Clean all packages:
|
||||
|
||||
```bash
|
||||
yarn clean
|
||||
```
|
||||
|
||||
Clean a specific package
|
||||
|
||||
```bash
|
||||
PKG=0x.js yarn clean
|
||||
```
|
||||
|
||||
### Rebuild
|
||||
|
||||
To re-build (clean & build) all packages:
|
||||
|
||||
```bash
|
||||
yarn rebuild
|
||||
```
|
||||
|
||||
To re-build (clean & build) a specific package & it's deps:
|
||||
|
||||
```bash
|
||||
PKG=0x.js yarn rebuild
|
||||
```
|
||||
|
||||
### Lint
|
||||
|
||||
Lint all packages
|
||||
Lint all packages:
|
||||
|
||||
```bash
|
||||
yarn lerna:run lint
|
||||
yarn lint
|
||||
```
|
||||
|
||||
Lint a specific package:
|
||||
|
||||
```bash
|
||||
PKG=0x.js yarn lint
|
||||
```
|
||||
|
||||
### Run Tests
|
||||
|
||||
Run all tests:
|
||||
|
||||
```bash
|
||||
yarn lerna:test
|
||||
yarn test
|
||||
```
|
||||
|
||||
Run a specific package's test:
|
||||
|
||||
```bash
|
||||
PKG=@0xproject/web3-wrapper yarn test
|
||||
```
|
||||
|
||||
34
package.json
34
package.json
@@ -1,27 +1,32 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "0x-monorepo",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
],
|
||||
"scripts": {
|
||||
"dev": "lerna run --parallel build:watch",
|
||||
"testrpc": "testrpc -p 8545 --networkId 50 -m \"${npm_package_config_mnemonic}\"",
|
||||
"ganache": "ganache-cli -p 8545 --networkId 50 -m \"${npm_package_config_mnemonic}\"",
|
||||
"prettier": "prettier --write '**/*.{ts,tsx,json,md}' --config .prettierrc",
|
||||
"prettier:ci": "prettier --list-different '**/*.{ts,tsx,json,md}' --config .prettierrc",
|
||||
"report_coverage": "lcov-result-merger 'packages/*/coverage/lcov.info' | coveralls",
|
||||
"test:installation": "node ./packages/monorepo-scripts/lib/test_installation.js",
|
||||
"lerna:install": "yarn install",
|
||||
"lerna:run": "lerna run",
|
||||
"lerna:test": "lerna run test",
|
||||
"lerna:clean": "lerna run clean",
|
||||
"lerna:build": "lerna run build",
|
||||
"lerna:rebuild": "run-s lerna:clean lerna:build",
|
||||
"lerna:publish": "run-s lerna:install lerna:rebuild script:publish",
|
||||
"lerna:publish:dry": "run-s lerna:install lerna:rebuild script:publish:dry",
|
||||
"lerna:stage_docs": "lerna run docs:stage",
|
||||
"publish": "run-s install:all rebuild script:publish",
|
||||
"publish:dry": "run-s install:all rebuild script:publish:dry",
|
||||
"script:publish": "node ./packages/monorepo-scripts/lib/publish.js",
|
||||
"script:publish:dry": "IS_DRY_RUN=true yarn script:publish"
|
||||
"script:publish:dry": "IS_DRY_RUN=true yarn script:publish",
|
||||
"install:all": "yarn install",
|
||||
"wsrun": "wsrun",
|
||||
"lerna:run": "lerna run",
|
||||
"watch": "wsrun watch $PKG -r --stages --done-criteria='complete|successfully'",
|
||||
"build": "wsrun build $PKG -r --stages",
|
||||
"clean": "wsrun clean $PKG -r --parallel",
|
||||
"rebuild": "run-s clean build",
|
||||
"test": "wsrun test $PKG --serial --exclude-missing",
|
||||
"stage_docs": "wsrun docs:stage $PKG --parallel --exclude-missing",
|
||||
"lint": "wsrun lint $PKG --parallel --exclude-missing"
|
||||
},
|
||||
"config": {
|
||||
"mnemonic": "concert load couple harbor equip island argue ramp clarify fence smart topic"
|
||||
@@ -29,10 +34,11 @@
|
||||
"devDependencies": {
|
||||
"async-child-process": "^1.1.1",
|
||||
"coveralls": "^3.0.0",
|
||||
"ethereumjs-testrpc": "^6.0.3",
|
||||
"ganache-cli": "^6.1.0",
|
||||
"lcov-result-merger": "^2.0.0",
|
||||
"lerna": "^2.5.1",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"prettier": "^1.11.1"
|
||||
"prettier": "^1.11.1",
|
||||
"wsrun": "^2.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,28 +64,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=0x.js yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=0x.js yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"name": "0x.js",
|
||||
"version": "0.37.2",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "A javascript library for interacting with the 0x protocol",
|
||||
"keywords": [
|
||||
"0x.js",
|
||||
@@ -12,10 +15,10 @@
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"prebuild": "run-s clean generate_contract_wrappers",
|
||||
"build": "run-p build:umd:prod build:commonjs; exit 0;",
|
||||
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
|
||||
"generate_contract_wrappers": "abi-gen --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
|
||||
"lint": "tslint --project .",
|
||||
"test:circleci": "run-s test:coverage",
|
||||
"test": "run-s clean test:commonjs",
|
||||
@@ -29,7 +32,7 @@
|
||||
"note": "The `run_mocha` test has been commented out by @hysz (greg@0xproject.com) until the migration package and 0x.js have been updated for V2."},
|
||||
"run_mocha": "",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js",
|
||||
"docs:stage": "yarn build && node ./scripts/stage_docs.js",
|
||||
"docs:stage": "node scripts/stage_docs.js",
|
||||
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES",
|
||||
"upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json"
|
||||
},
|
||||
@@ -64,10 +67,8 @@
|
||||
"url": "https://github.com/0xProject/0x-monorepo"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@0xproject/abi-gen": "^0.2.13",
|
||||
"@0xproject/sol-compiler": "^0.4.3",
|
||||
"@0xproject/dev-utils": "^0.4.1",
|
||||
"@0xproject/migrations": "^0.0.5",
|
||||
@@ -105,6 +106,7 @@
|
||||
"@0xproject/order-utils": "^0.0.4",
|
||||
"@0xproject/types": "^0.6.3",
|
||||
"@0xproject/typescript-typings": "^0.3.1",
|
||||
"@0xproject/sol-compiler": "^0.4.3",
|
||||
"@0xproject/utils": "^0.6.1",
|
||||
"@0xproject/web3-wrapper": "^0.6.3",
|
||||
"ethers": "^3.0.15",
|
||||
|
||||
@@ -200,7 +200,7 @@ export class ZeroEx {
|
||||
*/
|
||||
public async awaitTransactionMinedAsync(
|
||||
txHash: string,
|
||||
pollingIntervalMs = 1000,
|
||||
pollingIntervalMs: number = 1000,
|
||||
timeoutMs?: number,
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
// Hack: Get Web3Wrapper from ContractWrappers
|
||||
|
||||
@@ -5,7 +5,7 @@ import * as path from 'path';
|
||||
import { constants } from './utils/constants';
|
||||
import { provider } from './utils/web3_wrapper';
|
||||
|
||||
before('migrate contracts', async function() {
|
||||
before('migrate contracts', async function(): Promise<void> {
|
||||
// HACK: Since the migrations take longer then our global mocha timeout limit
|
||||
// we manually increase it for this before hook.
|
||||
this.timeout(20000);
|
||||
|
||||
@@ -4,7 +4,7 @@ import ChaiBigNumber = require('chai-bignumber');
|
||||
import * as dirtyChai from 'dirty-chai';
|
||||
|
||||
export const chaiSetup = {
|
||||
configure() {
|
||||
configure(): void {
|
||||
chai.config.includeStack = true;
|
||||
chai.use(ChaiBigNumber());
|
||||
chai.use(dirtyChai);
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
[
|
||||
{
|
||||
"version": "0.3.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Properly export the executable binary",
|
||||
"pr": 588
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1525477860,
|
||||
"version": "0.2.13",
|
||||
|
||||
@@ -80,28 +80,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/abi-gen yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/abi-gen yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
2
packages/abi-gen/bin/abi-gen.js
Executable file
2
packages/abi-gen/bin/abi-gen.js
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env node
|
||||
require('../lib/index.js')
|
||||
@@ -1,18 +1,21 @@
|
||||
{
|
||||
"name": "@0xproject/abi-gen",
|
||||
"version": "0.2.13",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "Generate contract wrappers from ABI and handlebars templates",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"lint": "tslint --project .",
|
||||
"clean": "shx rm -rf lib scripts",
|
||||
"build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js"
|
||||
},
|
||||
"bin": {
|
||||
"abi-gen": "lib/index.js"
|
||||
"abi-gen": "bin/abi-gen.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -61,14 +61,13 @@ const args = yargs
|
||||
'Full usage example',
|
||||
).argv;
|
||||
|
||||
function registerPartials(partialsGlob: string) {
|
||||
function registerPartials(partialsGlob: string): void {
|
||||
const partialTemplateFileNames = globSync(partialsGlob);
|
||||
logUtils.log(`Found ${chalk.green(`${partialTemplateFileNames.length}`)} ${chalk.bold('partial')} templates`);
|
||||
for (const partialTemplateFileName of partialTemplateFileNames) {
|
||||
const namedContent = utils.getNamedContent(partialTemplateFileName);
|
||||
Handlebars.registerPartial(namedContent.name, namedContent.content);
|
||||
}
|
||||
return partialsGlob;
|
||||
}
|
||||
|
||||
function writeOutputFile(name: string, renderedTsCode: string): void {
|
||||
|
||||
@@ -46,28 +46,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/assert yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/assert yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/assert",
|
||||
"version": "0.2.9",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "Provides a standard way of performing type and schema validation across 0x projects",
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"clean": "shx rm -rf lib test_temp scripts",
|
||||
"lint": "tslint --project .",
|
||||
|
||||
@@ -10,7 +10,7 @@ export const assert = {
|
||||
const isBigNumber = _.isObject(value) && (value as any).isBigNumber;
|
||||
this.assert(isBigNumber, this.typeAssertionMessage(variableName, 'BigNumber', value));
|
||||
},
|
||||
isValidBaseUnitAmount(variableName: string, value: BigNumber) {
|
||||
isValidBaseUnitAmount(variableName: string, value: BigNumber): void {
|
||||
assert.isBigNumber(variableName, value);
|
||||
const isNegative = value.lessThan(0);
|
||||
this.assert(!isNegative, `${variableName} cannot be a negative number, found value: ${value.toNumber()}`);
|
||||
|
||||
@@ -44,14 +44,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
PKG=@0xproject/base-contract yarn build
|
||||
```
|
||||
|
||||
or
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/base-contract yarn watch
|
||||
```
|
||||
|
||||
### Lint
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/base-contract",
|
||||
"version": "0.3.1",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "0x Base TS contract",
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts",
|
||||
"clean": "shx rm -rf lib scripts",
|
||||
"test": "run-s clean build run_mocha",
|
||||
|
||||
@@ -43,28 +43,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/connect yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/connect yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"name": "@0xproject/connect",
|
||||
"version": "0.6.12",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "A javascript library for interacting with the standard relayer api",
|
||||
"keywords": [
|
||||
"connect",
|
||||
@@ -12,7 +15,7 @@
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"clean": "shx rm -rf lib test_temp scripts",
|
||||
"copy_test_fixtures": "copyfiles -u 2 './test/fixtures/**/*.json' ./lib/test/fixtures",
|
||||
@@ -23,7 +26,7 @@
|
||||
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
|
||||
"test:circleci": "yarn test:coverage",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js",
|
||||
"docs:stage": "yarn build && node ./scripts/stage_docs.js",
|
||||
"docs:stage": "node scripts/stage_docs.js",
|
||||
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES",
|
||||
"upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json"
|
||||
},
|
||||
@@ -42,9 +45,6 @@
|
||||
},
|
||||
"author": "Brandon Millman",
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/0xProject/0x-monorepo/issues"
|
||||
},
|
||||
|
||||
@@ -91,7 +91,7 @@ export class WebSocketOrderbookChannel implements OrderbookChannel {
|
||||
/**
|
||||
* Close the websocket and stop receiving updates
|
||||
*/
|
||||
public close() {
|
||||
public close(): void {
|
||||
if (!_.isUndefined(this._connectionIfExists)) {
|
||||
this._connectionIfExists.close();
|
||||
}
|
||||
@@ -99,7 +99,7 @@ export class WebSocketOrderbookChannel implements OrderbookChannel {
|
||||
clearInterval(this._heartbeatTimerIfExists);
|
||||
}
|
||||
}
|
||||
private _getConnection(callback: (error?: Error, connection?: WebSocket.connection) => void) {
|
||||
private _getConnection(callback: (error?: Error, connection?: WebSocket.connection) => void): void {
|
||||
if (!_.isUndefined(this._connectionIfExists) && this._connectionIfExists.connected) {
|
||||
callback(undefined, this._connectionIfExists);
|
||||
} else {
|
||||
|
||||
@@ -48,20 +48,18 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/contract-wrappers yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
PKG=@0xproject/contract-wrappers yarn watch
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
@@ -69,7 +67,7 @@ yarn build
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"prebuild": "run-s clean generate_contract_wrappers",
|
||||
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
|
||||
"generate_contract_wrappers": "abi-gen --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
|
||||
"lint": "tslint --project .",
|
||||
"test:circleci": "run-s test:coverage",
|
||||
"test": "run-s clean build run_mocha",
|
||||
@@ -44,6 +44,7 @@
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@0xproject/abi-gen": "^0.2.13",
|
||||
"@0xproject/sol-compiler": "^0.4.3",
|
||||
"@0xproject/dev-utils": "^0.4.1",
|
||||
"@0xproject/migrations": "^0.0.5",
|
||||
|
||||
@@ -12,7 +12,7 @@ import { isValidSignature } from '@0xproject/order-utils';
|
||||
|
||||
export const assert = {
|
||||
...sharedAssert,
|
||||
isValidSignature(orderHash: string, ecSignature: ECSignature, signerAddress: string) {
|
||||
isValidSignature(orderHash: string, ecSignature: ECSignature, signerAddress: string): void {
|
||||
const isValid = isValidSignature(orderHash, ecSignature, signerAddress);
|
||||
this.assert(isValid, `Expected order with hash '${orderHash}' to have a valid signature`);
|
||||
},
|
||||
|
||||
@@ -39,7 +39,7 @@ const asyncErrorHandlerFactory = (errorTransformer: ErrorTransformer) => {
|
||||
// Do not use arrow syntax here. Use a function expression in
|
||||
// order to use the correct value of `this` in this method
|
||||
// tslint:disable-next-line:only-arrow-functions
|
||||
descriptor.value = async function(...args: any[]) {
|
||||
descriptor.value = async function(...args: any[]): Promise<any> {
|
||||
try {
|
||||
const result = await originalMethod.apply(this, args);
|
||||
return result;
|
||||
@@ -66,7 +66,7 @@ const syncErrorHandlerFactory = (errorTransformer: ErrorTransformer) => {
|
||||
// Do not use arrow syntax here. Use a function expression in
|
||||
// order to use the correct value of `this` in this method
|
||||
// tslint:disable-next-line:only-arrow-functions
|
||||
descriptor.value = function(...args: any[]) {
|
||||
descriptor.value = function(...args: any[]): any {
|
||||
try {
|
||||
const result = originalMethod.apply(this, args);
|
||||
return result;
|
||||
|
||||
@@ -86,12 +86,12 @@ export class OrderValidationUtils {
|
||||
private static _validateRemainingFillAmountNotZeroOrThrow(
|
||||
takerTokenAmount: BigNumber,
|
||||
unavailableTakerTokenAmount: BigNumber,
|
||||
) {
|
||||
): void {
|
||||
if (takerTokenAmount.eq(unavailableTakerTokenAmount)) {
|
||||
throw new Error(ExchangeContractErrs.OrderRemainingFillAmountZero);
|
||||
}
|
||||
}
|
||||
private static _validateOrderNotExpiredOrThrow(expirationUnixTimestampSec: BigNumber) {
|
||||
private static _validateOrderNotExpiredOrThrow(expirationUnixTimestampSec: BigNumber): void {
|
||||
const currentUnixTimestampSec = utils.getCurrentUnixTimestampSec();
|
||||
if (expirationUnixTimestampSec.lessThan(currentUnixTimestampSec)) {
|
||||
throw new Error(ExchangeContractErrs.OrderFillExpired);
|
||||
|
||||
@@ -5,7 +5,7 @@ import * as path from 'path';
|
||||
import { constants } from './utils/constants';
|
||||
import { provider } from './utils/web3_wrapper';
|
||||
|
||||
before('migrate contracts', async function() {
|
||||
before('migrate contracts', async function(): Promise<void> {
|
||||
// HACK: Since the migrations take longer then our global mocha timeout limit
|
||||
// we manually increase it for this before hook.
|
||||
this.timeout(20000);
|
||||
|
||||
@@ -4,7 +4,7 @@ import ChaiBigNumber = require('chai-bignumber');
|
||||
import * as dirtyChai from 'dirty-chai';
|
||||
|
||||
export const chaiSetup = {
|
||||
configure() {
|
||||
configure(): void {
|
||||
chai.config.includeStack = true;
|
||||
chai.use(ChaiBigNumber());
|
||||
chai.use(dirtyChai);
|
||||
|
||||
@@ -34,28 +34,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=contracts yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=contracts yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -2,25 +2,25 @@
|
||||
"private": true,
|
||||
"name": "contracts",
|
||||
"version": "2.1.28",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "Smart contract components of 0x protocol",
|
||||
"main": "index.js",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
},
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"prebuild": "run-s clean copy_artifacts generate_contract_wrappers",
|
||||
"copy_artifacts": "copyfiles -u 4 '../migrations/artifacts/2.0.0/**/*' ./lib/src/artifacts;",
|
||||
"build": "tsc",
|
||||
"test": "run-s build run_mocha",
|
||||
"test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
|
||||
"run_mocha": "mocha 'lib/test/**/*.js' --timeout 100000 --bail --exit",
|
||||
"compile:comment":
|
||||
"Yarn workspaces do not link binaries correctly so we need to reference them directly https://github.com/yarnpkg/yarn/issues/3846",
|
||||
"compile": "node ../sol-compiler/lib/src/cli.js",
|
||||
"clean": "shx rm -rf lib ./contract_wrappers/generated",
|
||||
"generate_contract_wrappers":
|
||||
"node ../abi-gen/lib/index.js --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output ./src/contract_wrappers/generated --backend ethers && prettier --write './src/contract_wrappers/generated/**.ts'",
|
||||
"compile": "sol-compiler",
|
||||
"clean": "shx rm -rf lib src/contract_wrappers/generated",
|
||||
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
|
||||
"lint": "tslint --project .",
|
||||
"coverage:report:text": "istanbul report text",
|
||||
"coverage:report:html": "istanbul report html && open coverage/index.html",
|
||||
@@ -42,6 +42,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/0x-monorepo/packages/contracts/README.md",
|
||||
"devDependencies": {
|
||||
"@0xproject/abi-gen": "^0.2.13",
|
||||
"@0xproject/dev-utils": "^0.4.1",
|
||||
"@0xproject/tslint-config": "^0.4.17",
|
||||
"@types/lodash": "4.14.104",
|
||||
|
||||
@@ -4,7 +4,7 @@ import ChaiBigNumber = require('chai-bignumber');
|
||||
import * as dirtyChai from 'dirty-chai';
|
||||
|
||||
export const chaiSetup = {
|
||||
configure() {
|
||||
configure(): void {
|
||||
chai.config.includeStack = true;
|
||||
chai.use(ChaiBigNumber());
|
||||
chai.use(dirtyChai);
|
||||
|
||||
@@ -18,7 +18,7 @@ export const crypto = {
|
||||
solSHA256(args: any[]): Buffer {
|
||||
return crypto._solHash(args, ABI.soliditySHA256);
|
||||
},
|
||||
_solHash(args: any[], hashFunction: (types: string[], values: any[]) => Buffer) {
|
||||
_solHash(args: any[], hashFunction: (types: string[], values: any[]) => Buffer): Buffer {
|
||||
const argTypes: string[] = [];
|
||||
_.each(args, (arg, i) => {
|
||||
const isNumber = _.isFinite(arg);
|
||||
|
||||
@@ -11,7 +11,7 @@ import { TransactionDataParams } from './types';
|
||||
|
||||
export class MultiSigWrapper {
|
||||
private _multiSig: MultiSigWalletContract;
|
||||
public static encodeFnArgs(name: string, abi: AbiDefinition[], args: any[]) {
|
||||
public static encodeFnArgs(name: string, abi: AbiDefinition[], args: any[]): string {
|
||||
const abiEntity = _.find(abi, { name }) as MethodAbi;
|
||||
if (_.isUndefined(abiEntity)) {
|
||||
throw new Error(`Did not find abi entry for name: ${name}`);
|
||||
@@ -33,7 +33,7 @@ export class MultiSigWrapper {
|
||||
from: string,
|
||||
dataParams: TransactionDataParams,
|
||||
value: BigNumber = new BigNumber(0),
|
||||
) {
|
||||
): Promise<string> {
|
||||
const { name, abi, args = [] } = dataParams;
|
||||
const encoded = MultiSigWrapper.encodeFnArgs(name, abi, args);
|
||||
return this._multiSig.submitTransaction.sendTransactionAsync(destination, value, encoded, {
|
||||
|
||||
@@ -9,7 +9,7 @@ export class TokenRegWrapper {
|
||||
constructor(tokenRegContract: TokenRegistryContract) {
|
||||
this._tokenReg = tokenRegContract;
|
||||
}
|
||||
public async addTokenAsync(token: Token, from: string) {
|
||||
public async addTokenAsync(token: Token, from: string): Promise<string> {
|
||||
const tx = this._tokenReg.addToken.sendTransactionAsync(
|
||||
token.address as string,
|
||||
token.name,
|
||||
@@ -21,7 +21,7 @@ export class TokenRegWrapper {
|
||||
);
|
||||
return tx;
|
||||
}
|
||||
public async getTokenMetaDataAsync(tokenAddress: string) {
|
||||
public async getTokenMetaDataAsync(tokenAddress: string): Promise<Token> {
|
||||
const data = await this._tokenReg.getTokenMetaData.callAsync(tokenAddress);
|
||||
const token: Token = {
|
||||
address: data[0],
|
||||
@@ -33,7 +33,7 @@ export class TokenRegWrapper {
|
||||
};
|
||||
return token;
|
||||
}
|
||||
public async getTokenByNameAsync(tokenName: string) {
|
||||
public async getTokenByNameAsync(tokenName: string): Promise<Token> {
|
||||
const data = await this._tokenReg.getTokenByName.callAsync(tokenName);
|
||||
const token: Token = {
|
||||
address: data[0],
|
||||
@@ -45,7 +45,7 @@ export class TokenRegWrapper {
|
||||
};
|
||||
return token;
|
||||
}
|
||||
public async getTokenBySymbolAsync(tokenSymbol: string) {
|
||||
public async getTokenBySymbolAsync(tokenSymbol: string): Promise<Token> {
|
||||
const data = await this._tokenReg.getTokenBySymbol.callAsync(tokenSymbol);
|
||||
const token: Token = {
|
||||
address: data[0],
|
||||
|
||||
@@ -49,28 +49,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/dev-utils yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/dev-utils yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/dev-utils",
|
||||
"version": "0.4.1",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "0x dev TS utils",
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"test": "run-s clean build run_mocha",
|
||||
"test:circleci": "yarn test:coverage",
|
||||
|
||||
@@ -6,7 +6,10 @@ import { DoneCallback } from '@0xproject/types';
|
||||
const expect = chai.expect;
|
||||
|
||||
export const callbackErrorReporter = {
|
||||
reportNoErrorCallbackErrors(done: DoneCallback, expectToBeCalledOnce = true) {
|
||||
reportNoErrorCallbackErrors(
|
||||
done: DoneCallback,
|
||||
expectToBeCalledOnce: boolean = true,
|
||||
): <T>(f?: ((value: T) => void) | undefined) => (value: T) => void {
|
||||
const callback = <T>(f?: (value: T) => void) => {
|
||||
const wrapped = (value: T) => {
|
||||
if (_.isUndefined(f)) {
|
||||
@@ -26,7 +29,10 @@ export const callbackErrorReporter = {
|
||||
};
|
||||
return callback;
|
||||
},
|
||||
reportNodeCallbackErrors(done: DoneCallback, expectToBeCalledOnce = true) {
|
||||
reportNodeCallbackErrors(
|
||||
done: DoneCallback,
|
||||
expectToBeCalledOnce: boolean = true,
|
||||
): <T>(f?: ((value: T) => void) | undefined) => (error: Error | null, value: T | undefined) => void {
|
||||
const callback = <T>(f?: (value: T) => void) => {
|
||||
const wrapped = (error: Error | null, value: T | undefined) => {
|
||||
if (!_.isNull(error)) {
|
||||
@@ -50,7 +56,10 @@ export const callbackErrorReporter = {
|
||||
};
|
||||
return callback;
|
||||
},
|
||||
assertNodeCallbackError(done: DoneCallback, errMsg: string) {
|
||||
assertNodeCallbackError(
|
||||
done: DoneCallback,
|
||||
errMsg: string,
|
||||
): <T>(error: Error | null, value: T | undefined) => void {
|
||||
const wrapped = <T>(error: Error | null, value: T | undefined) => {
|
||||
if (_.isNull(error)) {
|
||||
done(new Error('Expected callback to receive an error'));
|
||||
|
||||
@@ -38,28 +38,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/fill-scenarios yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/fill-scenarios yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"prebuild": "run-s clean generate_contract_wrappers",
|
||||
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/generated_contract_wrappers --backend ethers && prettier --write 'src/generated_contract_wrappers/**.ts'",
|
||||
"generate_contract_wrappers": "abi-gen --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/generated_contract_wrappers --backend ethers && prettier --write 'src/generated_contract_wrappers/**.ts'",
|
||||
"build": "tsc && copyfiles -u 2 './src/compact_artifacts/**/*.json' ./lib/compact_artifacts && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"clean": "shx rm -rf lib scripts src/generated_contract_wrappers",
|
||||
"lint": "tslint --project .",
|
||||
@@ -23,6 +23,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/0x-monorepo/packages/fill-scenarios/README.md",
|
||||
"devDependencies": {
|
||||
"@0xproject/abi-gen": "^0.2.13",
|
||||
"@0xproject/monorepo-scripts": "^0.1.19",
|
||||
"@0xproject/sol-compiler": "^0.4.3",
|
||||
"@0xproject/tslint-config": "^0.4.17",
|
||||
|
||||
@@ -33,7 +33,7 @@ export class FillScenarios {
|
||||
this._zrxTokenAddress = zrxTokenAddress;
|
||||
this._exchangeContractAddress = exchangeContractAddress;
|
||||
}
|
||||
public async initTokenBalancesAsync() {
|
||||
public async initTokenBalancesAsync(): Promise<void> {
|
||||
for (const token of this._tokens) {
|
||||
if (token.symbol !== 'ZRX' && token.symbol !== 'WETH') {
|
||||
const dummyToken = new DummyTokenContract(
|
||||
@@ -126,7 +126,7 @@ export class FillScenarios {
|
||||
takerAddress: string,
|
||||
fillableAmount: BigNumber,
|
||||
partialFillAmount: BigNumber,
|
||||
) {
|
||||
): Promise<SignedOrder> {
|
||||
const [makerAddress] = this._userAddresses;
|
||||
const signedOrder = await this.createAsymmetricFillableSignedOrderAsync(
|
||||
makerTokenAddress,
|
||||
|
||||
@@ -52,28 +52,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/json-schemas yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/json-schemas yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/json-schemas",
|
||||
"version": "0.7.23",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "0x-related json schemas",
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"lint": "tslint --project .",
|
||||
"test": "run-s clean build run_mocha",
|
||||
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
|
||||
@@ -15,7 +18,7 @@
|
||||
"clean": "shx rm -rf lib test_temp scripts",
|
||||
"build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js",
|
||||
"docs:stage": "yarn build && node ./scripts/stage_docs.js",
|
||||
"docs:stage": "node scripts/stage_docs.js",
|
||||
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES",
|
||||
"upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json"
|
||||
},
|
||||
|
||||
@@ -23,7 +23,7 @@ export class SchemaValidator {
|
||||
* instances of that schema.
|
||||
* @param schema The schema to add
|
||||
*/
|
||||
public addSchema(schema: Schema) {
|
||||
public addSchema(schema: Schema): void {
|
||||
this._validator.addSchema(schema, schema.id);
|
||||
}
|
||||
// In order to validate a complex JS object using jsonschema, we must replace any complex
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
{
|
||||
"name": "@0xproject/metacoin",
|
||||
"version": "0.0.6",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"private": true,
|
||||
"description": "Example solidity project using 0x dev tools",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"lint": "tslint --project .",
|
||||
"clean": "shx rm -rf lib artifacts src/contract_wrappers",
|
||||
"prebuild": "run-s clean compile generate_contract_wrappers copy_artifacts",
|
||||
@@ -13,12 +16,12 @@
|
||||
"test": "run-s build run_mocha",
|
||||
"test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
|
||||
"run_mocha": "mocha lib/test/**/*_test.js lib/test/global_hooks.js --bail --exit",
|
||||
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'artifacts/Metacoin.json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers --backend ethers && prettier --write 'src/contract_wrappers/**.ts'",
|
||||
"generate_contract_wrappers": "abi-gen --abis 'artifacts/Metacoin.json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers --backend ethers && prettier --write 'src/contract_wrappers/**.ts'",
|
||||
"coverage:report:text": "istanbul report text",
|
||||
"coverage:report:html": "istanbul report html && open coverage/index.html",
|
||||
"coverage:report:lcov": "istanbul report lcov",
|
||||
"test:circleci": "yarn test:coverage",
|
||||
"compile": "node ../sol-compiler/lib/src/cli.js compile"
|
||||
"compile": "sol-compiler compile"
|
||||
},
|
||||
"author": "",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -4,7 +4,7 @@ import ChaiBigNumber = require('chai-bignumber');
|
||||
import * as dirtyChai from 'dirty-chai';
|
||||
|
||||
export const chaiSetup = {
|
||||
configure() {
|
||||
configure(): void {
|
||||
chai.config.includeStack = true;
|
||||
chai.use(ChaiBigNumber());
|
||||
chai.use(dirtyChai);
|
||||
|
||||
@@ -24,28 +24,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/migrations yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/migrations yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/migrations",
|
||||
"version": "0.0.5",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "0x smart contract migrations",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"prebuild": "run-s clean compile copy_artifacts generate_contract_wrappers",
|
||||
"copy_artifacts": "copyfiles -u 4 'artifacts/1.0.0/**/*' ./lib/src/artifacts",
|
||||
"build": "tsc",
|
||||
@@ -14,9 +17,8 @@
|
||||
"migrate": "run-s build compile script:migrate",
|
||||
"script:migrate": "node ./lib/migrate.js",
|
||||
"copy_artifacts": "copyfiles 'artifacts/1.0.0/**/*' ./lib",
|
||||
"generate_contract_wrappers":
|
||||
"node ../abi-gen/lib/index.js --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers --backend ethers && prettier --write 'src/contract_wrappers/**.ts'",
|
||||
"compile": "node ../sol-compiler/lib/src/cli.js compile"
|
||||
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers --backend ethers && prettier --write 'src/contract_wrappers/**.ts'",
|
||||
"compile": "sol-compiler"
|
||||
},
|
||||
"config": {
|
||||
"abis":
|
||||
@@ -24,6 +26,7 @@
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"devDependencies": {
|
||||
"@0xproject/abi-gen": "^0.2.13",
|
||||
"@0xproject/dev-utils": "^0.4.1",
|
||||
"@0xproject/types": "^0.6.3",
|
||||
"@0xproject/tslint-config": "^0.4.17",
|
||||
|
||||
@@ -4,7 +4,7 @@ This repository contains a few helpful scripts for working with this mono repo.
|
||||
|
||||
#### Scripts
|
||||
|
||||
**`yarn deps_versions`**: Since we use Lerna + Yarn workspaces, shared dependencies between packages in the monorepo get hoisted to a top-level `node_modules` directory. If two packages use different versions of the same dependency however, both get installed. To avoid having many versions of a dependency installed, we try to keep dependency versions the same across packages in the monorepo. This script will list any dependencies for which we have multiple versions installed. We can then go through them and try to consolidate to a single version where possible.
|
||||
**`yarn deps_versions`**: Since we are a Yarn workspaces monorepo, shared dependencies between packages in the monorepo get hoisted to a top-level `node_modules` directory. If two packages use different versions of the same dependency however, both get installed. To avoid having many versions of a dependency installed, we try to keep dependency versions the same across packages in the monorepo. This script will list any dependencies for which we have multiple versions installed. We can then go through them and try to consolidate to a single version where possible.
|
||||
|
||||
**`yarn find_unused_deps`**: Sometimes we accidentally leave dependencies listed in `package.json` that are no longer being used. This script finds potential dependencies that might no longer be in use. Please verify that it is no longer in use before removing, the `depcheck` package we use under-the-hood doesn't handle some TS quirks perfectly.
|
||||
|
||||
@@ -46,28 +46,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/monorepo-scripts yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/monorepo-scripts yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/monorepo-scripts",
|
||||
"version": "0.1.19",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "Helper scripts for the monorepo",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"lint": "tslint --project .",
|
||||
"clean": "shx rm -rf lib",
|
||||
"build": "tsc",
|
||||
@@ -26,9 +29,7 @@
|
||||
"url": "https://github.com/0xProject/0x-monorepo/issues"
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/0x-monorepo/packages/monorepo-scripts/README.md",
|
||||
"comment": "// We purposefully use an older version of tslint-config here to avoid creating an import cycle",
|
||||
"devDependencies": {
|
||||
"@0xproject/tslint-config": "0.4.13",
|
||||
"@types/glob": "^5.0.33",
|
||||
"@types/node": "^8.0.53",
|
||||
"@types/opn": "^5.1.0",
|
||||
|
||||
@@ -74,7 +74,7 @@ export const postpublishUtils = {
|
||||
utils.log(`POSTPUBLISH: No S3Bucket config found for ${packageJSON.name}. Skipping doc JSON generation.`);
|
||||
}
|
||||
},
|
||||
async publishDocsToStagingAsync(packageJSON: any, tsConfigJSON: any, cwd: string) {
|
||||
async publishDocsToStagingAsync(packageJSON: any, tsConfigJSON: any, cwd: string): Promise<void> {
|
||||
const configs = this.generateConfig(packageJSON, tsConfigJSON, cwd);
|
||||
if (_.isUndefined(configs.docPublishConfigs.s3StagingBucketPath)) {
|
||||
utils.log('config.postpublish.docPublishConfigs.s3StagingBucketPath entry in package.json not found!');
|
||||
@@ -109,7 +109,7 @@ export const postpublishUtils = {
|
||||
assets,
|
||||
});
|
||||
},
|
||||
getReleaseNotes(packageName: string, version: string) {
|
||||
getReleaseNotes(packageName: string, version: string): string {
|
||||
const packageNameWithNamespace = packageName.replace('@0xproject/', '');
|
||||
const changelogJSONPath = path.join(
|
||||
constants.monorepoRootPath,
|
||||
@@ -135,14 +135,14 @@ export const postpublishUtils = {
|
||||
});
|
||||
return notes;
|
||||
},
|
||||
getTag(packageName: string, version: string) {
|
||||
getTag(packageName: string, version: string): string {
|
||||
return `${packageName}@${version}`;
|
||||
},
|
||||
getReleaseName(subPackageName: string, version: string): string {
|
||||
const releaseName = `${subPackageName} v${version}`;
|
||||
return releaseName;
|
||||
},
|
||||
adjustAssetPaths(cwd: string, assets: string[]) {
|
||||
adjustAssetPaths(cwd: string, assets: string[]): string[] {
|
||||
const finalAssets: string[] = [];
|
||||
_.each(assets, (asset: string) => {
|
||||
finalAssets.push(`${cwd}/${asset}`);
|
||||
@@ -164,7 +164,12 @@ export const postpublishUtils = {
|
||||
});
|
||||
return fileIncludesAdjusted;
|
||||
},
|
||||
async generateAndUploadDocsAsync(cwd: string, fileIncludes: string[], version: string, S3BucketPath: string) {
|
||||
async generateAndUploadDocsAsync(
|
||||
cwd: string,
|
||||
fileIncludes: string[],
|
||||
version: string,
|
||||
S3BucketPath: string,
|
||||
): Promise<void> {
|
||||
const fileIncludesAdjusted = this.adjustFileIncludePaths(fileIncludes, cwd);
|
||||
const projectFiles = fileIncludesAdjusted.join(' ');
|
||||
const jsonFilePath = `${cwd}/${generatedDocsDirectoryName}/index.json`;
|
||||
|
||||
@@ -72,10 +72,10 @@ const packageNameToWebsitePath: { [name: string]: string } = {
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
async function confirmDocPagesRenderAsync(packages: LernaPackage[]) {
|
||||
async function confirmDocPagesRenderAsync(packages: LernaPackage[]): Promise<void> {
|
||||
// push docs to staging
|
||||
utils.log("Upload all docJson's to S3 staging...");
|
||||
await execAsync(`yarn lerna:stage_docs`, { cwd: constants.monorepoRootPath });
|
||||
await execAsync(`yarn stage_docs`, { cwd: constants.monorepoRootPath });
|
||||
|
||||
// deploy website to staging
|
||||
utils.log('Deploy website to staging...');
|
||||
@@ -162,7 +162,7 @@ async function checkPublishRequiredSetupAsync(): Promise<boolean> {
|
||||
return true;
|
||||
}
|
||||
|
||||
async function pushChangelogsToGithubAsync() {
|
||||
async function pushChangelogsToGithubAsync(): Promise<void> {
|
||||
await execAsync(`git add . --all`, { cwd: constants.monorepoRootPath });
|
||||
await execAsync(`git commit -m "Updated CHANGELOGS"`, { cwd: constants.monorepoRootPath });
|
||||
await execAsync(`git push`, { cwd: constants.monorepoRootPath });
|
||||
@@ -228,7 +228,7 @@ async function updateChangeLogsAsync(updatedPublicLernaPackages: LernaPackage[])
|
||||
return packageToVersionChange;
|
||||
}
|
||||
|
||||
async function lernaPublishAsync(packageToVersionChange: { [name: string]: string }) {
|
||||
async function lernaPublishAsync(packageToVersionChange: { [name: string]: string }): Promise<void> {
|
||||
// HACK: Lerna publish does not provide a way to specify multiple package versions via
|
||||
// flags so instead we need to interact with their interactive prompt interface.
|
||||
const child = spawn('lerna', ['publish', '--registry=https://registry.npmjs.org/'], {
|
||||
@@ -269,7 +269,7 @@ async function lernaPublishAsync(packageToVersionChange: { [name: string]: strin
|
||||
});
|
||||
}
|
||||
|
||||
function updateVersionNumberIfNeeded(currentVersion: string, proposedNextVersion: string) {
|
||||
function updateVersionNumberIfNeeded(currentVersion: string, proposedNextVersion: string): string {
|
||||
if (proposedNextVersion === currentVersion) {
|
||||
return utils.getNextPatchVersion(currentVersion);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export const utils = {
|
||||
const newPatchVersion = `${versionSegments[0]}.${versionSegments[1]}.${newPatch}`;
|
||||
return newPatchVersion;
|
||||
},
|
||||
async prettifyAsync(filePath: string, cwd: string) {
|
||||
async prettifyAsync(filePath: string, cwd: string): Promise<void> {
|
||||
await execAsync(`prettier --write ${filePath} --config .prettierrc`, {
|
||||
cwd,
|
||||
});
|
||||
@@ -43,7 +43,7 @@ export const utils = {
|
||||
}
|
||||
return updatedPackages;
|
||||
},
|
||||
getChangelogJSONIfExists(changelogPath: string) {
|
||||
getChangelogJSONIfExists(changelogPath: string): string | undefined {
|
||||
try {
|
||||
const changelogJSON = fs.readFileSync(changelogPath, 'utf-8');
|
||||
return changelogJSON;
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"extends": ["@0xproject/tslint-config"]
|
||||
"extends": ["../tslint-config"]
|
||||
}
|
||||
|
||||
@@ -40,28 +40,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/order-utils yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/order-utils yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/order-utils",
|
||||
"version": "0.0.4",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "0x order utils",
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"test": "run-s clean build run_mocha",
|
||||
"test:circleci": "yarn test:coverage",
|
||||
@@ -15,7 +18,7 @@
|
||||
"clean": "shx rm -rf lib scripts",
|
||||
"lint": "tslint --project .",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js",
|
||||
"docs:stage": "yarn build && node ./scripts/stage_docs.js",
|
||||
"docs:stage": "node scripts/stage_docs.js",
|
||||
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES",
|
||||
"upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json"
|
||||
},
|
||||
|
||||
@@ -16,7 +16,7 @@ const INVALID_TAKER_FORMAT = 'instance.taker is not of a type(s) string';
|
||||
* expects values of Solidity type `uint` to be passed as type `BN`.
|
||||
* We do not use BN anywhere else in the codebase.
|
||||
*/
|
||||
function bigNumberToBN(value: BigNumber) {
|
||||
function bigNumberToBN(value: BigNumber): BN {
|
||||
return new BN(value.toString(), 10);
|
||||
}
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ describe('Signature utils', () => {
|
||||
};
|
||||
|
||||
const fakeProvider = {
|
||||
async sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback) {
|
||||
async sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback): Promise<void> {
|
||||
if (payload.method === 'eth_sign') {
|
||||
const [address, message] = payload.params;
|
||||
const signature = await web3Wrapper.signMessageAsync(address, message);
|
||||
@@ -137,7 +137,7 @@ describe('Signature utils', () => {
|
||||
s: '0x7feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b',
|
||||
};
|
||||
const fakeProvider = {
|
||||
async sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback) {
|
||||
async sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback): Promise<void> {
|
||||
if (payload.method === 'eth_sign') {
|
||||
const [address, message] = payload.params;
|
||||
const signature = await web3Wrapper.signMessageAsync(address, message);
|
||||
|
||||
@@ -4,7 +4,7 @@ import ChaiBigNumber = require('chai-bignumber');
|
||||
import * as dirtyChai from 'dirty-chai';
|
||||
|
||||
export const chaiSetup = {
|
||||
configure() {
|
||||
configure(): void {
|
||||
chai.config.includeStack = true;
|
||||
chai.use(ChaiBigNumber());
|
||||
chai.use(dirtyChai);
|
||||
|
||||
@@ -48,28 +48,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/order-watcher yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/order-watcher yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"prebuild": "run-s clean generate_contract_wrappers",
|
||||
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/generated_contract_wrappers --backend ethers && prettier --write 'src/generated_contract_wrappers/**.ts'",
|
||||
"generate_contract_wrappers": "abi-gen --abis 'src/compact_artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/generated_contract_wrappers --backend ethers && prettier --write 'src/generated_contract_wrappers/**.ts'",
|
||||
"lint": "tslint --project .",
|
||||
"test:circleci": "run-s test:coverage",
|
||||
"test": "run-s clean build run_mocha",
|
||||
@@ -45,6 +45,7 @@
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@0xproject/abi-gen": "^0.2.13",
|
||||
"@0xproject/sol-compiler": "^0.4.3",
|
||||
"@0xproject/dev-utils": "^0.4.1",
|
||||
"@0xproject/migrations": "^0.0.5",
|
||||
|
||||
@@ -377,7 +377,7 @@ export class OrderWatcher {
|
||||
}
|
||||
this._dependentOrderHashes[signedOrder.maker][zrxTokenAddress].add(orderHash);
|
||||
}
|
||||
private _removeFromDependentOrderHashes(makerAddress: string, tokenAddress: string, orderHash: string) {
|
||||
private _removeFromDependentOrderHashes(makerAddress: string, tokenAddress: string, orderHash: string): void {
|
||||
this._dependentOrderHashes[makerAddress][tokenAddress].delete(orderHash);
|
||||
if (this._dependentOrderHashes[makerAddress][tokenAddress].size === 0) {
|
||||
delete this._dependentOrderHashes[makerAddress][tokenAddress];
|
||||
|
||||
@@ -12,7 +12,7 @@ import { isValidSignature } from '@0xproject/order-utils';
|
||||
|
||||
export const assert = {
|
||||
...sharedAssert,
|
||||
isValidSignature(orderHash: string, ecSignature: ECSignature, signerAddress: string) {
|
||||
isValidSignature(orderHash: string, ecSignature: ECSignature, signerAddress: string): void {
|
||||
const isValid = isValidSignature(orderHash, ecSignature, signerAddress);
|
||||
this.assert(isValid, `Expected order with hash '${orderHash}' to have a valid signature`);
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@ import * as path from 'path';
|
||||
import { constants } from './utils/constants';
|
||||
import { provider } from './utils/web3_wrapper';
|
||||
|
||||
before('migrate contracts', async function() {
|
||||
before('migrate contracts', async function(): Promise<void> {
|
||||
// HACK: Since the migrations take longer then our global mocha timeout limit
|
||||
// we manually increase it for this before hook.
|
||||
this.timeout(20000);
|
||||
|
||||
@@ -4,7 +4,7 @@ import ChaiBigNumber = require('chai-bignumber');
|
||||
import * as dirtyChai from 'dirty-chai';
|
||||
|
||||
export const chaiSetup = {
|
||||
configure() {
|
||||
configure(): void {
|
||||
chai.config.includeStack = true;
|
||||
chai.use(ChaiBigNumber());
|
||||
chai.use(dirtyChai);
|
||||
|
||||
@@ -25,7 +25,7 @@ yarn install
|
||||
The **first** time you work with this package, you must build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=0x.js yarn build
|
||||
```
|
||||
|
||||
Note: If you move this package out of the monorepo, it will work without this step. Make sure you copy it out on the `master` branch since the `development` version might rely on not-yet published changes to other packages.
|
||||
@@ -35,7 +35,7 @@ Note: If you move this package out of the monorepo, it will work without this st
|
||||
The the `react-docs-example` root directory, run:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
PKG=0x.js yarn watch
|
||||
```
|
||||
|
||||
### Deploy Example to S3 bucket
|
||||
@@ -50,8 +50,16 @@ yarn deploy_example
|
||||
|
||||
### Build
|
||||
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
PKG=@0xproject/react-docs-example yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
PKG=@0xproject/react-docs-example yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
"private": true,
|
||||
"name": "@0xproject/react-docs-example",
|
||||
"version": "0.0.11",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "An example app using react-docs",
|
||||
"scripts": {
|
||||
"lint": "tslint --project .",
|
||||
"build": "tsc",
|
||||
"build:example": "NODE_ENV=production webpack",
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"clean": "shx rm -rf lib; shx rm -f public/bundle*",
|
||||
"dev": "webpack-dev-server --open",
|
||||
"deploy_example": "npm run build:example; aws s3 sync ./public/. s3://react-docs-example --profile 0xproject --region us-east-1 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers"
|
||||
|
||||
@@ -94,7 +94,7 @@ export class Docs extends React.Component<DocsProps, DocsState> {
|
||||
docAgnosticFormat: docsInfo.convertToDocAgnosticFormat(v2TypeDocJson),
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const menuSubsectionsBySection = _.isUndefined(this.state.docAgnosticFormat)
|
||||
? {}
|
||||
: docsInfo.getMenuSubsectionsBySection(this.state.docAgnosticFormat);
|
||||
@@ -109,14 +109,14 @@ export class Docs extends React.Component<DocsProps, DocsState> {
|
||||
/>
|
||||
);
|
||||
}
|
||||
private _onVersionSelected(semver: string) {
|
||||
private _onVersionSelected(semver: string): void {
|
||||
const selectedDocJSON = versionToDocJSON[semver];
|
||||
this.setState({
|
||||
selectedVersion: semver,
|
||||
docAgnosticFormat: docsInfo.convertToDocAgnosticFormat(selectedDocJSON as TypeDocNode),
|
||||
});
|
||||
}
|
||||
private _getSourceUrl() {
|
||||
private _getSourceUrl(): string {
|
||||
const sourceUrl = `${docsInfoConfig.packageUrl}/blob/@0xproject/web3-wrapper@${
|
||||
this.state.selectedVersion
|
||||
}/packages`;
|
||||
|
||||
@@ -71,28 +71,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/react-docs yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/react-docs yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
{
|
||||
"name": "@0xproject/react-docs",
|
||||
"version": "0.0.11",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "React documentation component for rendering TypeDoc & Doxity generated JSON",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"scripts": {
|
||||
"lint": "tslint --project .",
|
||||
"build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts",
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"clean": "shx rm -rf lib scripts",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js"
|
||||
},
|
||||
|
||||
@@ -31,7 +31,7 @@ export class Badge extends React.Component<BadgeProps, BadgeState> {
|
||||
isHovering: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const badgeStyle = {
|
||||
...styles.badge,
|
||||
backgroundColor: this.props.backgroundColor,
|
||||
@@ -48,7 +48,7 @@ export class Badge extends React.Component<BadgeProps, BadgeState> {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _setHoverState(isHovering: boolean) {
|
||||
private _setHoverState(isHovering: boolean): void {
|
||||
this.setState({
|
||||
isHovering,
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@ export interface CustomEnumProps {
|
||||
// This component renders custom string enums that was a work-around for versions of
|
||||
// TypeScript <2.4.0 that did not support them natively. We keep it around to support
|
||||
// older versions of 0x.js <0.9.0
|
||||
export function CustomEnum(props: CustomEnumProps) {
|
||||
export const CustomEnum = (props: CustomEnumProps) => {
|
||||
const type = props.type;
|
||||
if (!_.startsWith(type.defaultValue, STRING_ENUM_CODE_PREFIX)) {
|
||||
logUtils.log('We do not yet support `Variable` types that are not strEnums');
|
||||
@@ -31,4 +31,4 @@ export function CustomEnum(props: CustomEnumProps) {
|
||||
{`}`}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -71,19 +71,19 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
|
||||
isHoveringSidebar: false,
|
||||
};
|
||||
}
|
||||
public componentDidMount() {
|
||||
public componentDidMount(): void {
|
||||
window.addEventListener('hashchange', this._onHashChanged.bind(this), false);
|
||||
}
|
||||
public componentWillUnmount() {
|
||||
public componentWillUnmount(): void {
|
||||
window.removeEventListener('hashchange', this._onHashChanged.bind(this), false);
|
||||
}
|
||||
public componentDidUpdate(prevProps: DocumentationProps, prevState: DocumentationState) {
|
||||
public componentDidUpdate(prevProps: DocumentationProps, prevState: DocumentationState): void {
|
||||
if (!_.isEqual(prevProps.docAgnosticFormat, this.props.docAgnosticFormat)) {
|
||||
const hash = window.location.hash.slice(1);
|
||||
sharedUtils.scrollToHash(hash, sharedConstants.SCROLL_CONTAINER_ID);
|
||||
}
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const styles: Styles = {
|
||||
mainContainers: {
|
||||
position: 'absolute',
|
||||
@@ -157,7 +157,7 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _renderLoading(mainContainersStyles: React.CSSProperties) {
|
||||
private _renderLoading(mainContainersStyles: React.CSSProperties): React.ReactNode {
|
||||
return (
|
||||
<div className="col col-12" style={mainContainersStyles}>
|
||||
<div
|
||||
@@ -289,7 +289,7 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _renderNetworkBadgesIfExists(sectionName: string) {
|
||||
private _renderNetworkBadgesIfExists(sectionName: string): React.ReactNode {
|
||||
if (this.props.docsInfo.type !== SupportedDocJson.Doxity) {
|
||||
return null;
|
||||
}
|
||||
@@ -368,17 +368,17 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
|
||||
/>
|
||||
);
|
||||
}
|
||||
private _onSidebarHover(event: React.FormEvent<HTMLInputElement>) {
|
||||
private _onSidebarHover(event: React.FormEvent<HTMLInputElement>): void {
|
||||
this.setState({
|
||||
isHoveringSidebar: true,
|
||||
});
|
||||
}
|
||||
private _onSidebarHoverOff() {
|
||||
private _onSidebarHoverOff(): void {
|
||||
this.setState({
|
||||
isHoveringSidebar: false,
|
||||
});
|
||||
}
|
||||
private _onHashChanged(event: any) {
|
||||
private _onHashChanged(event: any): void {
|
||||
const hash = window.location.hash.slice(1);
|
||||
sharedUtils.scrollToHash(hash, sharedConstants.SCROLL_CONTAINER_ID);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export interface EnumProps {
|
||||
values: EnumValue[];
|
||||
}
|
||||
|
||||
export function Enum(props: EnumProps) {
|
||||
export const Enum = (props: EnumProps) => {
|
||||
const values = _.map(props.values, (value, i) => {
|
||||
const defaultValueIfAny = !_.isUndefined(value.defaultValue) ? ` = ${value.defaultValue}` : '';
|
||||
return `\n\t${value.name}${defaultValueIfAny},`;
|
||||
@@ -20,4 +20,4 @@ export function Enum(props: EnumProps) {
|
||||
{`}`}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -24,7 +24,7 @@ export class EventDefinition extends React.Component<EventDefinitionProps, Event
|
||||
shouldShowAnchor: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const event = this.props.event;
|
||||
const id = `${this.props.sectionName}-${event.name}`;
|
||||
return (
|
||||
@@ -49,7 +49,7 @@ export class EventDefinition extends React.Component<EventDefinitionProps, Event
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _renderEventCode() {
|
||||
private _renderEventCode(): React.ReactNode {
|
||||
const indexed = <span style={{ color: colors.green }}> indexed</span>;
|
||||
const eventArgs = _.map(this.props.event.eventArgs, (eventArg: EventArg) => {
|
||||
const type = (
|
||||
@@ -76,7 +76,7 @@ export class EventDefinition extends React.Component<EventDefinitionProps, Event
|
||||
</span>
|
||||
);
|
||||
}
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean) {
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean): void {
|
||||
this.setState({
|
||||
shouldShowAnchor,
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ export interface InterfaceProps {
|
||||
docsInfo: DocsInfo;
|
||||
}
|
||||
|
||||
export function Interface(props: InterfaceProps) {
|
||||
export const Interface = (props: InterfaceProps) => {
|
||||
const type = props.type;
|
||||
const properties = _.map(type.children, property => {
|
||||
return (
|
||||
@@ -63,4 +63,4 @@ export function Interface(props: InterfaceProps) {
|
||||
{`}`}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -88,7 +88,7 @@ function renderParameters(
|
||||
docsInfo: DocsInfo,
|
||||
sectionName: string,
|
||||
typeDefinitionByName?: TypeDefinitionByName,
|
||||
) {
|
||||
): React.ReactNode[] {
|
||||
const params = _.map(parameters, (p: Parameter) => {
|
||||
const isOptional = p.isOptional;
|
||||
const hasDefaultValue = !_.isUndefined(p.defaultValue);
|
||||
@@ -116,7 +116,7 @@ function renderTypeParameter(
|
||||
docsInfo: DocsInfo,
|
||||
sectionName: string,
|
||||
typeDefinitionByName?: TypeDefinitionByName,
|
||||
) {
|
||||
): React.ReactNode {
|
||||
const typeParam = (
|
||||
<span>
|
||||
{`<${typeParameter.name} extends `}
|
||||
|
||||
@@ -42,7 +42,7 @@ export class SignatureBlock extends React.Component<SignatureBlockProps, Signatu
|
||||
shouldShowAnchor: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const method = this.props.method;
|
||||
if (typeDocUtils.isPrivateOrProtectedProperty(method.name)) {
|
||||
return null;
|
||||
@@ -111,14 +111,14 @@ export class SignatureBlock extends React.Component<SignatureBlockProps, Signatu
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _renderChip(text: string) {
|
||||
private _renderChip(text: string): React.ReactNode {
|
||||
return (
|
||||
<div className="p1 mr1" style={styles.chip}>
|
||||
{text}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _renderParameterDescriptions(parameters: Parameter[]) {
|
||||
private _renderParameterDescriptions(parameters: Parameter[]): React.ReactNode {
|
||||
const descriptions = _.map(parameters, parameter => {
|
||||
const isOptional = parameter.isOptional;
|
||||
return (
|
||||
@@ -146,7 +146,7 @@ export class SignatureBlock extends React.Component<SignatureBlockProps, Signatu
|
||||
});
|
||||
return descriptions;
|
||||
}
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean) {
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean): void {
|
||||
this.setState({
|
||||
shouldShowAnchor,
|
||||
});
|
||||
|
||||
@@ -10,7 +10,7 @@ export interface SourceLinkProps {
|
||||
version: string;
|
||||
}
|
||||
|
||||
export function SourceLink(props: SourceLinkProps) {
|
||||
export const SourceLink = (props: SourceLinkProps) => {
|
||||
const src = props.source;
|
||||
const sourceCodeUrl = `${props.sourceUrl}/${src.fileName}#L${src.line}`;
|
||||
return (
|
||||
@@ -20,4 +20,4 @@ export function SourceLink(props: SourceLinkProps) {
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@ import * as _ from 'lodash';
|
||||
import * as React from 'react';
|
||||
|
||||
import { DocsInfo } from '../docs_info';
|
||||
import { CustomType, CustomTypeChild, KindString, TypeDocTypes } from '../types';
|
||||
import { CustomType, CustomTypeChild, EnumValue, KindString, TypeDocTypes } from '../types';
|
||||
import { constants } from '../utils/constants';
|
||||
import { utils } from '../utils/utils';
|
||||
|
||||
@@ -35,7 +35,7 @@ export class TypeDefinition extends React.Component<TypeDefinitionProps, TypeDef
|
||||
shouldShowAnchor: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const customType = this.props.customType;
|
||||
if (!this.props.docsInfo.isPublicType(customType.name)) {
|
||||
return null; // no-op
|
||||
@@ -129,7 +129,7 @@ export class TypeDefinition extends React.Component<TypeDefinitionProps, TypeDef
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean) {
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean): void {
|
||||
this.setState({
|
||||
shouldShowAnchor,
|
||||
});
|
||||
@@ -150,7 +150,7 @@ export class TypeDefinition extends React.Component<TypeDefinitionProps, TypeDef
|
||||
*
|
||||
* Each property description should be on a new line.
|
||||
*/
|
||||
private _formatComment(text: string) {
|
||||
private _formatComment(text: string): string {
|
||||
const NEW_LINE_REGEX = /(\r\n|\n|\r)/gm;
|
||||
const sanitizedText = text.replace(NEW_LINE_REGEX, ' ');
|
||||
const PROPERTY_DESCRIPTION_DIVIDER = ':';
|
||||
|
||||
@@ -11,6 +11,7 @@ import {
|
||||
DoxityDocObj,
|
||||
SectionsMap,
|
||||
SupportedDocJson,
|
||||
TypeDefinitionByName,
|
||||
TypeDocNode,
|
||||
} from './types';
|
||||
import { doxityUtils } from './utils/doxity_utils';
|
||||
@@ -104,13 +105,13 @@ export class DocsInfo {
|
||||
});
|
||||
return menuSubsectionsBySection;
|
||||
}
|
||||
public getTypeDefinitionsByName(docAgnosticFormat: DocAgnosticFormat) {
|
||||
public getTypeDefinitionsByName(docAgnosticFormat: DocAgnosticFormat): { [name: string]: TypeDefinitionByName } {
|
||||
if (_.isUndefined(this.sections.types)) {
|
||||
return {};
|
||||
}
|
||||
|
||||
const typeDocSection = docAgnosticFormat[this.sections.types];
|
||||
const typeDefinitionByName = _.keyBy(typeDocSection.types, 'name');
|
||||
const typeDefinitionByName = _.keyBy(typeDocSection.types, 'name') as any;
|
||||
return typeDefinitionByName;
|
||||
}
|
||||
public isVisibleConstructor(sectionName: string): boolean {
|
||||
|
||||
@@ -142,7 +142,7 @@ export const doxityUtils = {
|
||||
};
|
||||
return type;
|
||||
},
|
||||
_isMethod(abiDoc: DoxityAbiDoc) {
|
||||
_isMethod(abiDoc: DoxityAbiDoc): boolean {
|
||||
if (abiDoc.type !== AbiTypes.Function) {
|
||||
return false;
|
||||
}
|
||||
@@ -152,7 +152,7 @@ export const doxityUtils = {
|
||||
const isMethod = hasNamedOutputIfExists && !isNameAllCaps;
|
||||
return isMethod;
|
||||
},
|
||||
_isProperty(abiDoc: DoxityAbiDoc) {
|
||||
_isProperty(abiDoc: DoxityAbiDoc): boolean {
|
||||
if (abiDoc.type !== AbiTypes.Function) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ export const typeDocUtils = {
|
||||
});
|
||||
return docAgnosticFormat;
|
||||
},
|
||||
_convertEntitiesToDocSection(entities: TypeDocNode[], docsInfo: DocsInfo, sectionName: string) {
|
||||
_convertEntitiesToDocSection(entities: TypeDocNode[], docsInfo: DocsInfo, sectionName: string): DocSection {
|
||||
const docSection: DocSection = {
|
||||
comment: '',
|
||||
constructors: [],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export const utils = {
|
||||
spawnSwitchErr(name: string, value: any) {
|
||||
spawnSwitchErr(name: string, value: any): Error {
|
||||
return new Error(`Unexpected switch value: ${value} encountered for ${name}`);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -38,28 +38,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/react-shared yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/react-shared yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
{
|
||||
"name": "@0xproject/react-shared",
|
||||
"version": "0.1.6",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "0x shared react components",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"scripts": {
|
||||
"lint": "tslint --project .",
|
||||
"build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts",
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"clean": "shx rm -rf lib scripts",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js"
|
||||
},
|
||||
|
||||
@@ -46,7 +46,7 @@ export class AnchorTitle extends React.Component<AnchorTitleProps, AnchorTitleSt
|
||||
isHovering: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
let opacity = 0;
|
||||
if (this.props.shouldShowAnchor) {
|
||||
opacity = this.state.isHovering ? 0.6 : 1;
|
||||
@@ -84,7 +84,7 @@ export class AnchorTitle extends React.Component<AnchorTitleProps, AnchorTitleSt
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _setHoverState(isHovering: boolean) {
|
||||
private _setHoverState(isHovering: boolean): void {
|
||||
this.setState({
|
||||
isHovering,
|
||||
});
|
||||
|
||||
@@ -12,10 +12,10 @@ export interface MarkdownCodeBlockState {}
|
||||
export class MarkdownCodeBlock extends React.Component<MarkdownCodeBlockProps, MarkdownCodeBlockState> {
|
||||
// Re-rendering a codeblock causes any use selection to become de-selected. This is annoying when trying
|
||||
// to copy-paste code examples. We therefore noop re-renders on this component if it's props haven't changed.
|
||||
public shouldComponentUpdate(nextProps: MarkdownCodeBlockProps, nextState: MarkdownCodeBlockState) {
|
||||
public shouldComponentUpdate(nextProps: MarkdownCodeBlockProps, nextState: MarkdownCodeBlockState): boolean {
|
||||
return nextProps.value !== this.props.value || nextProps.language !== this.props.language;
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
return (
|
||||
<span style={{ fontSize: 14 }}>
|
||||
<HighLight className={this.props.language || 'javascript'}>{this.props.value}</HighLight>
|
||||
|
||||
@@ -13,10 +13,10 @@ export interface MarkdownLinkBlockState {}
|
||||
export class MarkdownLinkBlock extends React.Component<MarkdownLinkBlockProps, MarkdownLinkBlockState> {
|
||||
// Re-rendering a linkBlock causes it to remain unclickable.
|
||||
// We therefore noop re-renders on this component if it's props haven't changed.
|
||||
public shouldComponentUpdate(nextProps: MarkdownLinkBlockProps, nextState: MarkdownLinkBlockState) {
|
||||
public shouldComponentUpdate(nextProps: MarkdownLinkBlockProps, nextState: MarkdownLinkBlockState): boolean {
|
||||
return nextProps.href !== this.props.href;
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const href = this.props.href;
|
||||
const isLinkToSection = _.startsWith(href, '#');
|
||||
// If protocol is http or https, we can open in a new tab, otherwise don't for security reasons
|
||||
@@ -39,7 +39,7 @@ export class MarkdownLinkBlock extends React.Component<MarkdownLinkBlockProps, M
|
||||
return <a href={href}>{this.props.children}</a>;
|
||||
}
|
||||
}
|
||||
private _onHashUrlClick(href: string) {
|
||||
private _onHashUrlClick(href: string): void {
|
||||
const hash = href.split('#')[1];
|
||||
utils.scrollToHash(hash, constants.SCROLL_CONTAINER_ID);
|
||||
utils.setUrlHash(hash);
|
||||
|
||||
@@ -39,7 +39,7 @@ export class MarkdownSection extends React.Component<MarkdownSectionProps, Markd
|
||||
shouldShowAnchor: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const { sectionName, markdownContent, headerSize, githubLink } = this.props as PropsWithDefaults;
|
||||
|
||||
const id = utils.getIdFromName(sectionName);
|
||||
@@ -87,7 +87,7 @@ export class MarkdownSection extends React.Component<MarkdownSectionProps, Markd
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean) {
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean): void {
|
||||
this.setState({
|
||||
shouldShowAnchor,
|
||||
});
|
||||
|
||||
@@ -43,7 +43,7 @@ export class NestedSidebarMenu extends React.Component<NestedSidebarMenuProps, N
|
||||
shouldDisplaySectionHeaders: true,
|
||||
onMenuItemClick: _.noop,
|
||||
};
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const navigation = _.map(this.props.topLevelMenu, (menuItems: string[], sectionName: string) => {
|
||||
const finalSectionName = utils.convertDashesToSpaces(sectionName);
|
||||
if (this.props.shouldDisplaySectionHeaders) {
|
||||
|
||||
@@ -32,7 +32,7 @@ export class SectionHeader extends React.Component<SectionHeaderProps, SectionHe
|
||||
shouldShowAnchor: false,
|
||||
};
|
||||
}
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
const { sectionName, headerSize } = this.props as PropsWithDefaults;
|
||||
|
||||
const finalSectionName = utils.convertDashesToSpaces(this.props.sectionName);
|
||||
@@ -65,7 +65,7 @@ export class SectionHeader extends React.Component<SectionHeaderProps, SectionHe
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean) {
|
||||
private _setAnchorVisibility(shouldShowAnchor: boolean): void {
|
||||
this.setState({
|
||||
shouldShowAnchor,
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@ export interface VersionDropDownProps {
|
||||
export interface VersionDropDownState {}
|
||||
|
||||
export class VersionDropDown extends React.Component<VersionDropDownProps, VersionDropDownState> {
|
||||
public render() {
|
||||
public render(): React.ReactNode {
|
||||
return (
|
||||
<div className="mx-auto" style={{ width: 120 }}>
|
||||
<DropDownMenu
|
||||
@@ -27,13 +27,13 @@ export class VersionDropDown extends React.Component<VersionDropDownProps, Versi
|
||||
</div>
|
||||
);
|
||||
}
|
||||
private _renderDropDownItems() {
|
||||
private _renderDropDownItems(): React.ReactNode[] {
|
||||
const items = _.map(this.props.versions, version => {
|
||||
return <MenuItem key={version} value={version} primaryText={`v${version}`} />;
|
||||
});
|
||||
return items;
|
||||
}
|
||||
private _updateSelectedVersion(e: any, index: number, semver: string) {
|
||||
private _updateSelectedVersion(e: any, index: number, semver: string): void {
|
||||
this.props.onVersionSelected(semver);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { EtherscanLinkSuffixes, Networks } from '../types';
|
||||
import { constants } from './constants';
|
||||
|
||||
export const utils = {
|
||||
setUrlHash(anchorId: string) {
|
||||
setUrlHash(anchorId: string): void {
|
||||
window.location.hash = anchorId;
|
||||
},
|
||||
scrollToHash(hash: string, containerId: string): void {
|
||||
@@ -26,11 +26,11 @@ export const utils = {
|
||||
const isUserOnMobile = isMobile();
|
||||
return isUserOnMobile;
|
||||
},
|
||||
getIdFromName(name: string) {
|
||||
getIdFromName(name: string): string {
|
||||
const id = name.replace(/ /g, '-');
|
||||
return id;
|
||||
},
|
||||
convertDashesToSpaces(text: string) {
|
||||
convertDashesToSpaces(text: string): string {
|
||||
return text.replace(/-/g, ' ');
|
||||
},
|
||||
getEtherScanLinkIfExists(
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
[
|
||||
{
|
||||
"version": "0.5.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Properly export the executable binary",
|
||||
"pr": 588
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1525477860,
|
||||
"version": "0.4.3",
|
||||
|
||||
@@ -60,28 +60,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/sol-compiler yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/sol-compiler yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
2
packages/sol-compiler/bin/sol-compiler.js
Executable file
2
packages/sol-compiler/bin/sol-compiler.js
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env node
|
||||
require('../lib/src/cli.js')
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@0xproject/sol-compiler",
|
||||
"version": "0.4.3",
|
||||
"engines": {
|
||||
"node" : ">=6.12"
|
||||
},
|
||||
"description": "Solidity compiler wrapper and artifactor",
|
||||
"main": "lib/src/index.js",
|
||||
"types": "lib/src/index.d.ts",
|
||||
"scripts": {
|
||||
"build:watch": "tsc -w",
|
||||
"watch": "tsc -w",
|
||||
"build": "yarn clean && copyfiles 'test/fixtures/contracts/**/*' ./lib && tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
|
||||
"test": "run-s build run_mocha",
|
||||
"run_mocha": "mocha lib/test/*_test.js --bail --exit",
|
||||
@@ -15,7 +18,7 @@
|
||||
"migrate": "npm run build; node lib/src/cli.js migrate",
|
||||
"lint": "tslint --project .",
|
||||
"test:circleci": "yarn test:coverage",
|
||||
"docs:stage": "yarn build && node ./scripts/stage_docs.js",
|
||||
"docs:stage": "node scripts/stage_docs.js",
|
||||
"manual:postpublish": "yarn build; node ./scripts/postpublish.js",
|
||||
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES",
|
||||
"upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json"
|
||||
@@ -33,7 +36,7 @@
|
||||
}
|
||||
},
|
||||
"bin": {
|
||||
"sol-compiler": "lib/src/cli.js"
|
||||
"sol-compiler": "bin/sol-compiler.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -11,7 +11,7 @@ import { constants } from './util/constants';
|
||||
|
||||
const expect = chai.expect;
|
||||
|
||||
describe('#Compiler', function() {
|
||||
describe('#Compiler', function(): void {
|
||||
this.timeout(constants.timeoutMs);
|
||||
const artifactsDir = `${__dirname}/fixtures/artifacts`;
|
||||
const contractsDir = `${__dirname}/fixtures/contracts`;
|
||||
|
||||
@@ -44,28 +44,16 @@ yarn install
|
||||
|
||||
### Build
|
||||
|
||||
If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
|
||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
|
||||
|
||||
```bash
|
||||
yarn lerna:rebuild
|
||||
PKG=@0xproject/sol-cov yarn build
|
||||
```
|
||||
|
||||
Or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn dev
|
||||
```
|
||||
|
||||
You can also build this specific package by running the following from within its directory:
|
||||
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
or continuously rebuild on change:
|
||||
|
||||
```bash
|
||||
yarn build:watch
|
||||
PKG=@0xproject/sol-cov yarn watch
|
||||
```
|
||||
|
||||
### Clean
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user