Compare commits

...

981 Commits

Author SHA1 Message Date
Leonid Logvinov
44e516ac65 Publish
- @0x/contracts-examples@1.0.2
 - @0x/contracts-extensions@1.0.2
 - @0x/contracts-interfaces@1.0.2
 - @0x/contracts-libs@1.0.2
 - @0x/contracts-multisig@1.0.2
 - @0x/contracts-protocol@2.1.59
 - @0x/contracts-tokens@1.0.2
 - @0x/contracts-utils@1.0.2
2018-12-13 14:58:57 -08:00
Leonid Logvinov
d018f6d9cc Updated CHANGELOGS 2018-12-13 14:58:48 -08:00
Leonid Logvinov
d5e15b05fb Rename contracts CHANGELOGs to DEPLOYs 2018-12-13 14:49:58 -08:00
Leonid Logvinov
59fad5845c Move Forwarder CHANGELOG entries to extensions CHANGELOG 2018-12-13 14:43:40 -08:00
Leonid Logvinov
545101f7a5 Make contracts packages not private 2018-12-13 14:36:34 -08:00
Leonid Logvinov
2abd8fe4ee Publish
- 0x.js@2.0.8
 - @0x/abi-gen@1.0.19
 - @0x/abi-gen-wrappers@2.0.2
 - @0x/assert@1.0.20
 - @0x/asset-buyer@3.0.4
 - @0x/base-contract@3.0.10
 - @0x/connect@3.0.10
 - @0x/contract-wrappers@4.1.3
 - @0x/dev-tools-pages@0.0.10
 - @0x/dev-utils@1.0.21
 - ethereum-types@1.1.4
 - @0x/fill-scenarios@1.0.16
 - @0x/instant@1.0.4
 - @0x/json-schemas@2.1.4
 - @0x/metacoin@0.0.32
 - @0x/migrations@2.2.2
 - @0x/order-utils@3.0.7
 - @0x/order-watcher@2.2.8
 - @0x/pipeline@1.0.2
 - @0x/react-docs@1.0.22
 - @0x/react-shared@1.0.25
 - @0x/sol-compiler@1.1.16
 - @0x/sol-cov@2.1.16
 - @0x/sol-doc@1.0.11
 - @0x/sol-resolver@1.1.1
 - @0x/sra-spec@1.0.13
 - @0x/subproviders@2.1.8
 - @0x/testnet-faucets@1.0.60
 - @0x/tslint-config@2.0.0
 - @0x/types@1.4.1
 - @0x/typescript-typings@3.0.6
 - @0x/utils@2.0.8
 - @0x/web3-wrapper@3.2.1
 - @0x/website@0.0.63
 - @0x/contracts-examples@1.0.1
 - @0x/contracts-extensions@1.0.1
 - @0x/contracts-interfaces@1.0.1
 - @0x/contracts-libs@1.0.1
 - @0x/contracts-multisig@1.0.1
 - @0x/contracts-protocol@2.1.58
 - @0x/contracts-test-utils@1.0.2
 - @0x/contracts-tokens@1.0.1
 - @0x/contracts-utils@1.0.1
2018-12-13 14:28:27 -08:00
Leonid Logvinov
3c578cfda9 Updated CHANGELOGS 2018-12-13 14:28:17 -08:00
Leonid Logvinov
597b2f38f5 Updated CHANGELOGS 2018-12-13 14:04:56 -08:00
Xianny
8906c30f37 add special case to scrape OHLCV for eth/usd (#1428) 2018-12-13 13:13:28 -08:00
Brandon Millman
5744a7f61b Merge pull request #1418 from 0xProject/feature/website/integrate-instant-docs-track
[website] add 0x Instant as a track in the docs
2018-12-13 11:43:02 -08:00
F. Eugene Aumson
f9a6c45a03 fix(sra_client.py): Fix version badge in README
* Correct Python SRA client version badge

* Fix spacing for prettier
2018-12-13 11:36:28 -08:00
Leonid Logvinov
f8e84260b5 Bump contracts-test-utils version to match the one on npm 2018-12-13 11:33:55 -08:00
Leonid Logvinov
5a45bc5e7b Revert version bump to unpublished contracts packages 2018-12-13 11:10:24 -08:00
Brandon Millman
80f03ef987 fix(website): update copy of instant track in dev home 2018-12-13 11:00:54 -08:00
Steve Klebanoff
0f8acedf02 Merge pull request #1410 from 0xProject/fix/instant/zero-quote
[instant] Don't update heartbeat if amount is 0
2018-12-12 17:34:42 -08:00
Alex Browne
3a8f3e01b6 Fix bug that occurs when token metadata decimals is undefined. (#1426)
* Fix bug that occurs when token metadata decimals is undefined.

* move toBigNumberOrNull to utils
2018-12-12 16:49:01 -08:00
Leonid Logvinov
f9d436cd21 Merge pull request #1425 from 0xProject/feature/async-suffix
Check for an Async suffix in functions, not just methods.
2018-12-12 15:54:00 -08:00
Leonid Logvinov
1534505652 Fix linter errors 2018-12-12 15:32:41 -08:00
Leonid Logvinov
a1186f052d Add PR number 2018-12-12 11:02:51 -08:00
Leonid Logvinov
0e76d66f24 Fix linter errors 2018-12-12 10:59:31 -08:00
Leonid Logvinov
2b523a36c5 Check functions Async suffix 2018-12-12 10:54:49 -08:00
Fabio B
78a6d23659 Merge pull request #1422 from 0xProject/fix/ci/lernaIssue
CI Lerna Fix
2018-12-11 18:20:45 -08:00
Fabio Berger
f4dc8b12f7 Update the a newer version of our Lerna fork with CI fixx 2018-12-11 17:50:25 -08:00
Alex Browne
5cff911035 Make pull_missing_blocks script consider all events with block numbers (#1420) 2018-12-11 17:31:16 -08:00
Alex Browne
b3fa0c8dac Fix project references for contracts packages (#1419)
- Removed /packages/contracts
- Removed /contracts/core
- Added `yarn build:ts` to CI tests
- Added each contracts "project" to root tsconfig.json
2018-12-11 17:09:00 -08:00
F. Eugene Aumson
318e7d5b57 feat(sra_client.py)
* Code generation scripts

* Generated code

* Change test config to hit 0x-launch-kit

* Ran prettier on generated code

* First test case, of get_asset_pairs()

* Use launch kit docker image to faciliate CI tests

* Fix markdown rendering for GitHub and PyPI

* Add URL for PyPI to link back to GitHub

* Add one-line package description to README.md

* Remove git_push.sh

* Remove unimplemented tests

* Add sra_client to top-level README package list

* Remove repeated-everywhere long description

* Add shorcuts for publishing

* Remove TypeScript examples
2018-12-11 16:57:53 -08:00
Leonid Logvinov
a939433bd2 Remove accidentally commited files 2018-12-11 16:54:07 -08:00
zkao
42be1a429f track idex orderbook snapshots (#1397)
* Track Idex and Oasis Orderbook Snapshots
2018-12-11 15:48:54 -08:00
Fabio Berger
96b8100a78 Publish
- 0x.js@2.0.7
 - @0x/abi-gen@1.0.18
 - @0x/abi-gen-wrappers@2.0.1
 - @0x/assert@1.0.19
 - @0x/asset-buyer@3.0.3
 - @0x/base-contract@3.0.9
 - @0x/connect@3.0.9
 - @0x/contract-wrappers@4.1.2
 - @0x/dev-tools-pages@0.0.9
 - @0x/dev-utils@1.0.20
 - ethereum-types@1.1.3
 - @0x/fill-scenarios@1.0.15
 - @0x/instant@1.0.3
 - @0x/json-schemas@2.1.3
 - @0x/metacoin@0.0.31
 - @0x/migrations@2.2.1
 - @0x/monorepo-scripts@1.0.15
 - @0x/order-utils@3.0.6
 - @0x/order-watcher@2.2.7
 - @0x/pipeline@1.0.1
 - @0x/react-docs@1.0.21
 - @0x/react-shared@1.0.24
 - @0x/sol-compiler@1.1.15
 - @0x/sol-cov@2.1.15
 - @0x/sol-doc@1.0.10
 - @0x/sol-resolver@1.1.0
 - @0x/sra-spec@1.0.12
 - @0x/subproviders@2.1.7
 - @0x/testnet-faucets@1.0.59
 - @0x/types@1.4.0
 - @0x/typescript-typings@3.0.5
 - @0x/utils@2.0.7
 - @0x/web3-wrapper@3.2.0
 - @0x/website@0.0.62
 - @0x/contracts-examples@1.0.1
 - @0x/contracts-extensions@1.0.1
 - @0x/contracts-interfaces@1.0.1
 - @0x/contracts-libs@1.0.1
 - @0x/contracts-multisig@1.0.1
 - @0x/contracts-protocol@2.1.57
 - @0x/contracts-test-utils@1.0.1
 - @0x/contracts-tokens@1.0.1
 - @0x/contracts-utils@1.0.1
2018-12-11 15:38:43 -08:00
Fabio Berger
e2b0c4d116 Updated CHANGELOGS 2018-12-11 15:38:32 -08:00
Alex Browne
b4cdb14b9b Refactor event scraping and add support for scraping ERC20 approval events (#1401)
* Refactor event scraping and add support for scraping ERC20 approval events

* Add tests for data_sources/contract-wrappers/utils
2018-12-11 15:16:05 -08:00
F. Eugene Aumson
d37680610b fix(order_utils.py): Remove stale comment 2018-12-11 12:39:19 -08:00
Leonid Logvinov
e6c1c2a658 Merge pull request #1413 from 0xProject/feature/contracts-monorepo-7
Contracts monorepo 7
2018-12-11 10:04:17 -08:00
Leonid Logvinov
36736f82d4 Move OrderValidator to the protocol package 2018-12-11 09:44:39 -08:00
Leonid Logvinov
7b72b0c762 Revert accidental change 2018-12-11 09:32:44 -08:00
Fabio B
184acd874e Update contracts/examples/README.md
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-11 09:31:00 -08:00
Fabio B
eec9957831 Merge pull request #1414 from 0xProject/fix/signature-utils/walletSignature
[order-utils] Fix Wallet Signature Verification
2018-12-11 05:22:26 -08:00
Brandon Millman
c46870d296 feature(website): add 0x Instant as a track in the docs 2018-12-10 19:31:45 -08:00
Brandon Millman
4200064eab Add link to rexrelay integration example in instant README 2018-12-10 16:11:08 -08:00
Leonid Logvinov
e72742f1f7 Merge branch 'development' into feature/contracts-monorepo-7 2018-12-10 16:10:49 -08:00
Brandon Millman
253bf4df6a chore: fix typo in instant README 2018-12-10 16:08:23 -08:00
Brandon Millman
dbc4417b19 chore: remove extra newline 2018-12-10 16:07:16 -08:00
Brandon Millman
74bbebeb01 Update instant README with more integration links 2018-12-10 16:06:26 -08:00
Brandon Millman
40c0eebd38 Fix typo in top level README 2018-12-10 15:54:30 -08:00
Brandon Millman
5d6fabf528 Update top level README packages list with instant 2018-12-10 15:52:43 -08:00
Leonid Logvinov
928b253c81 Revert access changes 2018-12-10 15:47:13 -08:00
Leonid Logvinov
b4c7f4f57f Upgrade solhint version 2018-12-10 15:46:45 -08:00
Brandon Millman
fc09968062 Update instant README 2018-12-10 15:36:04 -08:00
Fabio Berger
89755fe3c2 Add CHANGELOG entry 2018-12-10 15:33:37 -08:00
Fabio Berger
8fd7a9e1f5 Actually pass the signature, not the signature index to a wallet contract's isValidSignature call 2018-12-10 15:31:59 -08:00
Leonid Logvinov
5e6d1779cb Re-use solhint configuration 2018-12-10 15:24:11 -08:00
Leonid Logvinov
c580f4ddcb Change contracts publish config 2018-12-10 15:13:36 -08:00
Xianny
7be2dab9d5 perform null check on token metadata (#1412) 2018-12-10 15:08:13 -08:00
Leonid Logvinov
86f1697934 Updated CHANGELOGS 2018-12-10 15:06:05 -08:00
Francesco Agosti
d578b4959d Merge pull request #1404 from 0xProject/feature/instant/better-provider-fallback
[instant] Refactor provider name and provider display name logic, log the display name
2018-12-10 14:50:28 -08:00
Leonid Logvinov
9f5eeed309 Rename core package to protocol 2018-12-10 14:44:49 -08:00
Leonid Logvinov
14ea4ee1d3 Add coreArtifacts to forwarder wrapper 2018-12-10 14:29:15 -08:00
Leonid Logvinov
6d523835ae Combine duplicate imports 2018-12-10 11:38:03 -08:00
Xianny
02e14f88d2 Fix/pipeline/ohlcv ratelimit (#1403)
Use time-based throttling and increase batch size of CC query
2018-12-10 11:01:35 -08:00
xianny
096c4c8f2b change to camelCase 2018-12-10 10:57:36 -08:00
Brandon Millman
d050a1bd53 Merge pull request #1411 from 0xProject/fix/instant/hide-loaders
[instant] Hide loaders when no token or buy amount is chosen
2018-12-10 10:54:08 -08:00
Leonid Logvinov
924c2705b2 Refactor our extensions package 2018-12-10 10:53:25 -08:00
Fabio B
6c86cc8ab8 Merge pull request #1405 from 0xProject/tslint-changes
Implement prefer-template tslint rule
2018-12-10 18:29:17 +00:00
Brandon Millman
dc21c79f2b fix(instant): hide loaders when no token or buy amount is chosen 2018-12-10 10:17:41 -08:00
Leonid Logvinov
b88ff0a19f Refactor out examples 2018-12-10 10:01:38 -08:00
Steve Klebanoff
8d93413a5d Merge pull request #1409 from 0xProject/fix/instant/custom-erc20
[instant] Don't throw error if can't find icon for token
2018-12-10 09:55:44 -08:00
Steve Klebanoff
a0ea0415dd fix(instant): Don't update heartbeat if amount is 0 2018-12-10 09:16:15 -08:00
Leonid Logvinov
a39e0f13be Merge pull request #1388 from 0xProject/feature/contracts-monorepo-6
Contracts monorepo 6
2018-12-10 18:09:59 +01:00
Leonid Logvinov
190d9244cc Merge pull request #1385 from 0xProject/feature/contracts-monorepo-5
Refactor our protocol interfaces into `@0x/contracts-interfaces`
2018-12-10 18:09:33 +01:00
Steve Klebanoff
9d8ab43f91 Don't throw error if can't find icon for token 2018-12-10 09:00:05 -08:00
Fabio B
a286228b20 Merge pull request #1402 from 0xProject/web3-wrapper/numberBigNumberMixup
Fix `value` and `gasPrice` precision bug by returning them as BigNumbers
2018-12-08 21:57:06 +00:00
kao
f14603ca4d Implement prefer-template tslint rule 2018-12-07 17:06:52 -08:00
fragosti
4e33d2b481 feat: only use display name from provider in ui 2018-12-07 12:21:06 -08:00
fragosti
b74b4eb053 feat: refactor provider name and displayName logic 2018-12-07 11:29:37 -08:00
fragosti
57dc5b6fc0 feat: log walletDisplayName to Heap 2018-12-07 11:14:01 -08:00
xianny
5febb595e9 lint: remove unused variable 2018-12-07 10:03:17 -08:00
Fabio Berger
1a44d86c59 Fix linter 2018-12-07 17:55:38 +00:00
xianny
2bea70a0a6 refresh rate limit every second instead of every minute 2018-12-07 09:53:49 -08:00
xianny
41f90c697b cleanup: stray import, rename variable 2018-12-07 09:48:26 -08:00
xianny
7d2b5a28e3 Merge branch 'fix/pipeline/ohlcv-ratelimit' of github.com:0xProject/0x-monorepo into fix/pipeline/ohlcv-ratelimit
Rebased onto development
2018-12-07 09:44:24 -08:00
xianny
7b1471ffe8 query CC with larger batch size 2018-12-07 09:43:55 -08:00
xianny
8b3b4d983f rename variable and define default in only 1 location 2018-12-07 09:43:55 -08:00
xianny
ac971685b3 upgrade throttling code 2018-12-07 09:43:55 -08:00
Fabio Berger
4034eb7655 Add PR number 2018-12-07 15:30:36 +00:00
Fabio Berger
ccd8d4ac30 Remove excess commas 2018-12-07 15:25:07 +00:00
Fabio Berger
84f1d1107a fix: txData returned so that value and gasPrice are BigNumbers to avoid precision errors 2018-12-07 15:24:01 +00:00
Fabio Berger
c0637a744b Update yarn.lock 2018-12-07 14:48:13 +00:00
Fabio B
51b1de041e Update contracts/interfaces/README.md
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-07 11:11:36 +01:00
xianny
897ba6591d rename variable and define default in only 1 location 2018-12-06 13:20:08 -08:00
xianny
10eb819c75 upgrade throttling code 2018-12-06 12:07:55 -08:00
Francesco Agosti
aa4fcebdc7 Merge pull request #1399 from 0xProject/feature/website/disable-slider-if-no-address-configurator
[website] Disable slider when no affiliate info
2018-12-06 12:02:25 -08:00
fragosti
ac166ce32e feat: change color of doctype tag in configurator 2018-12-06 11:47:02 -08:00
Fabio Berger
dcad94df4c Switch out whitepaper with 0x protocol specification 2018-12-06 14:10:35 +00:00
Fabio Berger
a699a12161 Switch out RocketChat icon with Discord icon 2018-12-06 13:28:03 +00:00
fragosti
179f093c26 feat: disable slider when no affiliate info 2018-12-05 23:33:04 -08:00
fragosti
6438241144 fix: add comma to affiliateInfo config in configurator 2018-12-05 23:08:18 -08:00
Steve Klebanoff
c185618224 Merge pull request #1398 from 0xProject/feature/instant/more-error-reporting
[instant] More aggressive error reporting
2018-12-05 20:11:23 -08:00
Steve Klebanoff
b0e7b82dd9 feat(instant): More aggressive error reporting 2018-12-05 17:50:23 -08:00
fragosti
cae0e02bc6 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into development 2018-12-05 16:18:45 -08:00
fragosti
83c1b7aec5 fix: remove target=_blank from instant link 2018-12-05 16:18:34 -08:00
Xianny
78d0ab1aa2 Fix/pipeline/ohlcv (#1393)
The OHLCV script in data pipeline quits early when we get no data from Crypto Compare. Sometimes Crypto Compare gives us a valid empty response (e.g. when we query for way back in time) and we need to just continue. This adds better filtering for the types of Crypto Compare responses to detect when we should continue and when we should really quit.
2018-12-05 16:05:06 -08:00
Francesco Agosti
21122f0137 Merge pull request #1369 from 0xProject/feature/website/instant-configurator
[website][instant] Instant configurator
2018-12-05 15:44:54 -08:00
fragosti
c282c2fcc4 feat: change New notification to point to instant 2018-12-05 15:26:27 -08:00
Steve Klebanoff
e6acc0416a Merge pull request #1389 from 0xProject/fix/instant-rollbar-localhost
[instant] Don't report localhost errors to Rollbar
2018-12-05 13:48:54 -08:00
fragosti
ea6547cb75 chore: run prettier 2018-12-05 13:04:42 -08:00
Francesco Agosti
e839e698f9 Merge pull request #1392 from 0xProject/fix/instant/pre-release-hotfixes
[instant] CSS leakage and non-lowercase defaultAssetData fix
2018-12-05 12:45:16 -08:00
fragosti
b7603bef19 fix: ensure copy button is above code 2018-12-05 12:44:23 -08:00
fragosti
fb221e4ca9 feat: notify user they've copied to clipboard on copy 2018-12-05 12:41:57 -08:00
fragosti
1f8c09779d chore: make default fee percentage in configurator 0 2018-12-05 12:34:24 -08:00
fragosti
f9e73d2a6f Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/website/instant-configurator 2018-12-05 12:33:34 -08:00
Alex Browne
08eb0b91b6 Fix RadarRelay timestamps (#1391)
* Fixing rr timestamps

* Apply prettier
2018-12-05 12:27:32 -08:00
fragosti
f2c5a8e2f1 feat: lowercase keys in additionalAssetMetaDataMap 2018-12-05 12:16:55 -08:00
fragosti
55ebf405a0 chore: add coingecko css example to externall.css 2018-12-05 11:56:54 -08:00
fragosti
92d4c1d09e fix: call toLowerCase in asset creation logic 2018-12-05 11:52:27 -08:00
fragosti
3454bbfd65 fix: input placeholder css specificity increase 2018-12-05 11:39:10 -08:00
Alex Browne
b2dd5495bc Merge pull request #1377 from 0xProject/feature/pipeline-cleanup-mega-rebase
Merge all pipeline code into development
2018-12-05 11:08:19 -08:00
Steve Klebanoff
69d4e330cf Takeout console.log 2018-12-05 10:17:18 -08:00
Steve Klebanoff
9eff857416 Only include localhost in host domains if in development mode 2018-12-05 09:45:34 -08:00
Steve Klebanoff
37dbb4d06f Use dotenv in development 2018-12-05 09:45:23 -08:00
Fabio B
72a30260d8 Merge pull request #1387 from 0xProject/switchRocketChatForDiscord
Switch all website links from RocketChat for Discord
2018-12-05 15:30:26 +00:00
Leonid Logvinov
a365ab11d2 Refactor out tokens from core contracts package 2018-12-05 15:21:03 +01:00
Leonid Logvinov
48021a227f Refactor our protocol interfaces into @0x/contracts-interfaces 2018-12-05 13:13:35 +01:00
Fabio Berger
0a618f6f4d Replace Rocket.chat with Discord 2018-12-05 11:46:28 +00:00
Fabio Berger
d0b2ee7fc1 Fix mixed up chinese translations 2018-12-05 11:35:38 +00:00
Leonid Logvinov
b411e2250a Merge pull request #1384 from 0xProject/feature/contracts-monorepo-3
Contracts monorepo 4 feat
2018-12-05 09:39:10 +01:00
Jacob Evans
740b73276f chore: Remove increaseTimeAsync from DutchAuction.
Dutch auctions can be made in the past so we do not need to artificially increase time
2018-12-05 18:13:48 +11:00
Alex Browne
e0348f9c04 Change type of transactions.gas_used and gas_price to BigNumber/numeric 2018-12-04 20:20:49 -08:00
Alex Browne
2e704ac01a Fix prettier 2018-12-04 20:08:32 -08:00
Alex Browne
00f86ca0f7 Address PR feedback 2018-12-04 20:04:08 -08:00
Fabio B
549f5e4655 Use a string template in packages/pipeline/src/scripts/pull_missing_events.ts
Co-Authored-By: albrow <stephenalexbrowne@gmail.com>
2018-12-04 19:56:23 -08:00
Fabio B
ebdc539da7 Fix typo in packages/pipeline/src/parsers/bloxy/index.ts
Co-Authored-By: albrow <stephenalexbrowne@gmail.com>
2018-12-04 19:31:19 -08:00
Steve Klebanoff
2f50cca480 Merge pull request #1382 from 0xProject/fix/instant/center-powered-by
[instant] Center powered by and change to text to Connect
2018-12-04 17:41:42 -08:00
Brandon Millman
0a944244cf Merge pull request #1379 from 0xProject/fix/instant/overlay-color
[instant] add stable class name to overlay close button and adjust overlay color
2018-12-04 17:37:53 -08:00
Steve Klebanoff
9aff0dfed0 Merge pull request #1381 from 0xProject/feature/magic-input-error
[instant] Magic input to trigger error for production Rollbar testing
2018-12-04 17:26:04 -08:00
Steve Klebanoff
40ac4509ca Wallet prompt tweaks per Chris's comment 2018-12-04 17:24:34 -08:00
Steve Klebanoff
4e7031e96d Merge pull request #1371 from 0xProject/feature/instant/log-decimals-and-add-event-properties
feat(instant): More event properties for tracking
2018-12-04 17:20:58 -08:00
Steve Klebanoff
0af1bf11c8 Use git sha and npm version from constants 2018-12-04 17:11:58 -08:00
Steve Klebanoff
d579ba1eda Please unlock -> Click to connect 2018-12-04 16:45:09 -08:00
Steve Klebanoff
f327d7b4d9 fix(instant): center powered by 0x svg 2018-12-04 16:41:47 -08:00
Steve Klebanoff
04226106a2 ethBalanceInUnitAmount -> lastEthBalanceInUnitAmount 2018-12-04 16:33:49 -08:00
Steve Klebanoff
a138ee7e83 Add GIT_SHA and NPM_VERSION constants, report git and npm version in error 2018-12-04 16:10:56 -08:00
Steve Klebanoff
1cc043d7a9 feat(instant): input to trigger error for rollbar testing 2018-12-04 15:58:36 -08:00
Steve Klebanoff
a8a6baf964 Merge pull request #1380 from 0xProject/instant/fix/heap-analytics-id-prod
[instant] Ensure build process receives build arguments
2018-12-04 15:58:13 -08:00
Francesco Agosti
243a099858 Merge pull request #1376 from 0xProject/feature/instant/padding-spacing-polish
[instant] Reduce vertical padding in instant
2018-12-04 15:53:46 -08:00
fragosti
5c29b918df chore: run linter 2018-12-04 15:45:23 -08:00
Brandon Millman
feb715a08b fix(instant): remove extra container around the button 2018-12-04 15:44:48 -08:00
Steve Klebanoff
1b4c477ddb Ensure build process receives build arguments
See https://github.com/entropitor/dotenv-cli/issues/8
2018-12-04 15:42:56 -08:00
Brandon Millman
8b659dbd77 feat(instant): give a stable class name to the close button on the overlay 2018-12-04 15:36:51 -08:00
Alex Browne
8721d4ed7a Fix linter 2018-12-04 15:23:15 -08:00
Brandon Millman
14ad091e83 fix(instant): lighten the overlay color to 0.7 opacity from 0.9 2018-12-04 15:20:26 -08:00
fragosti
ce013489ec feat: add copy code feature 2018-12-04 14:30:31 -08:00
Xianny
8c21a700ba pull OHLCV records from Crypto Compare (#1349)
* [WIP] pull OHLCV records from Crypto Compare

* lint

* refactor to pull logic out of script and into modules

* add entity test for ohlcv_external entity

* implement rate limit and chronological backfill for ohlcv

* add unit tests; cleanup variable names

* Fetch OHLCV pairs params from events table

* better method names

* fix outdated test

* lint

* Clean up after review

* oops

* fix failing test

* better filtering of most recent records

* fix bug when generating pairs

* fix default earliest backfill date

* fix bug with retrieving backfill time

* prettier
2018-12-04 14:26:03 -08:00
zkao
87ffa5d7ab Token_orderbook_snapshots for Ddex and Paradex(#1354)
* Implements the TokenOrderbookSnapshot Table

* Scripts, Data Sources and Entities to pull Ddex and Paradex API data.
2018-12-04 14:25:42 -08:00
Alex Browne
7198b441e0 Add script for parsing competing dex trades from Bloxy (#1355) 2018-12-04 14:25:42 -08:00
Alex Browne
3d211c415b Introduce framework for running basic tests for entities (#1344)
* Introduce framework for running basic tests for entities

* Add pipeline tests to CircleCI config

* Make pipeline tests more configurable and fix CircleCI config

* Add coverage dir to pipeline package

* Add basic tests for all exchange event entities

* Add tests for remaining entities

* Create separate test scripts in package.json and add new info to README

* Update db_setup.ts to revert migrations even if you are using docker

* Automatically pull the postgres image if needed

* Add comment about why NumberToBigIntTransformer is needed
2018-12-04 14:25:38 -08:00
Alex Browne
4061731245 [pipeline] Add additional documentation to the README (#1328) 2018-12-04 14:24:48 -08:00
Alex Browne
96fdb9b766 Reduce number of blocks per query in pull_missing_events 2018-12-04 14:24:48 -08:00
Jake Ellowitz
1aa3f9d69f updating comment for 0x trusted tokens 2018-12-04 14:24:48 -08:00
Jake Ellowitz
dea89c4e22 metadata and trusted sources in same raw table 2018-12-04 14:24:48 -08:00
Jake Ellowitz
c6af5131b0 Pull token metadata re trusted tokens 2018-12-04 14:24:48 -08:00
Alex Browne
9986717671 Add script for pulling missing block data 2018-12-04 14:24:48 -08:00
Alex Browne
5cad2ad174 Check for special characters in table name in pull_missing_events 2018-12-04 14:24:48 -08:00
Alex Browne
24fd2d9730 Add support for pulling Cancel and CancelUpTo events 2018-12-04 14:24:48 -08:00
Alex Browne
0397ff8b22 Add transactionHash to CancelUpToEvent and CancelEvent entities 2018-12-04 14:24:48 -08:00
Alex Browne
1a25862086 Optimize database operations in pull_missing_events script 2018-12-04 14:24:48 -08:00
Alex Browne
b771020f88 Add homepage_url to relayers 2018-12-04 14:24:48 -08:00
Alex Browne
b42cf0c797 Add workaround for broken save method 2018-12-04 14:24:48 -08:00
Alex Browne
8076333795 Fix chunk size in pull_missing_events 2018-12-04 14:24:48 -08:00
Alex Browne
b0a2c10e11 Use built-in chunk feature of TypeORM save method 2018-12-04 14:24:48 -08:00
Alex Browne
303bbc42f4 Change some column types from varchar to numeric 2018-12-04 14:24:48 -08:00
Alex Browne
10e93bb01f Add raw schema prefix to query in pull_missing_events 2018-12-04 14:24:48 -08:00
Alex Browne
a948305e7a Rename taker and maker amounts in sra_orders 2018-12-04 14:24:48 -08:00
Alex Browne
26280e4aba Implement scraping sra orders from radar relay 2018-12-04 14:24:48 -08:00
Alex Browne
55bbe1954b Preliminary work for adding RR order book scraping 2018-12-04 14:24:48 -08:00
Alex Browne
2cbb82eb04 Update schema for sra_orders 2018-12-04 14:24:48 -08:00
Jake Ellowitz
96134003e1 Pointing entities to raw schema
Fix linter issues
2018-12-04 14:25:00 -08:00
Jake Ellowitz
599a3f9b96 Mapping dev schema to initial migration 2018-12-04 14:24:48 -08:00
Alex Browne
688d277b30 Configure linter with --format stylish and fix linter errors 2018-12-04 14:24:48 -08:00
Alex Browne
329c68f610 Configure TypeORM for migrations. Add new package.json scripts. 2018-12-04 14:24:48 -08:00
Alex Browne
6fb333f200 Rename Transaction.ts to transaction.ts
Rename Relayer.ts to relayer.ts

Rename Block.ts to block.ts
2018-12-04 14:24:55 -08:00
Alex Browne
410a924495 Add better error handling for immediately invoked async functions 2018-12-04 14:24:48 -08:00
Alex Browne
53cc9e9bed Rename table and column names 2018-12-04 14:24:48 -08:00
Alex Browne
ccad046eb6 Reorganize entities. Make scripts work from any directory. 2018-12-04 14:24:48 -08:00
Alex Browne
954c3b9272 Split index.ts into multiple scripts in scripts/ and detect last known block when pulling events 2018-12-04 14:24:48 -08:00
Alex Browne
9cb89725c9 Remove unused function parameter in index.ts script 2018-12-04 14:24:48 -08:00
Alex Browne
830d0f3b21 Use bigint for gasUsed and gasPrice in Transaction 2018-12-04 14:24:48 -08:00
Alex Browne
8248fbb231 Update relayer code to use new relayer-registry format 2018-12-04 14:24:48 -08:00
Alex Browne
dca2a4e9c2 Remove outdated info from README 2018-12-04 14:24:48 -08:00
Alex Browne
21d4807206 Add build:ci to pipeline package.json 2018-12-04 14:24:48 -08:00
Alex Browne
5e22a862b7 Implement fetching and parsing relayer info 2018-12-04 14:24:48 -08:00
Alex Browne
bb440b683a Implement support for getting and parsing blocks and transactions 2018-12-04 14:24:48 -08:00
Alex Browne
d959b3e234 chore: Fix tslint config. 2018-12-04 14:24:49 -08:00
Alex Browne
aeff948c9a Fix bugs in merge_v2_events script and disable verbose logging 2018-12-04 14:24:48 -08:00
Alex Browne
7945d2ea62 Enable verbose logging 2018-12-04 14:24:48 -08:00
Alex Browne
af2546bc58 Rename index.ts -> merge_v2_events 2018-12-04 14:24:48 -08:00
Alex Browne
3a19faa5ff Update script to work with existing v1 pipeline data 2018-12-04 14:24:48 -08:00
Alex Browne
bbe1a843ef Update pipeline to use new @0x npm org for imports 2018-12-04 14:24:48 -08:00
Alex Browne
91e7485ecc Update to use ContractWrappers + Infura instead of Etherscan 2018-12-04 14:24:44 -08:00
Alex Browne
6c00dd6f39 Rebase and update to use new modularized artifacts 2018-12-04 14:24:06 -08:00
Alex Browne
ada78d140b Add tests for SRA order conversion 2018-12-04 14:24:06 -08:00
Alex Browne
6aca4e8272 Re-add missing tests 2018-12-04 14:24:06 -08:00
Alex Browne
dd093daf91 Add soruceUrl to SraOrder entity 2018-12-04 14:24:06 -08:00
Alex Browne
9ab55ccec0 Add preliminary support for scraping orders from SRA endpoints (no pagination, only RR support for now) 2018-12-04 14:24:06 -08:00
Alex Browne
71a015f2aa For event entities, rename address -> contractAddress and make it a primary key 2018-12-04 14:24:06 -08:00
Alex Browne
b0de2a388f Implement scraping and parsing exchange CancelUpTo events 2018-12-04 14:24:06 -08:00
Alex Browne
40610830da Use multi-primary keys for event and filter null logIndexes 2018-12-04 14:24:06 -08:00
Alex Browne
60bc27c616 Implement scraping and parsing exchange cancel events 2018-12-04 14:24:06 -08:00
Alex Browne
2207f09ce2 Make event parsing more functional and less class-based 2018-12-04 14:24:06 -08:00
Alex Browne
fe523e1f3f Re-organize event parsing and decoding 2018-12-04 14:24:06 -08:00
Alex Browne
9e9104578c Add support for decoding asset data 2018-12-04 14:24:06 -08:00
Alex Browne
4e6919a6e5 Add typeorm and begin inserting database records 2018-12-04 14:24:03 -08:00
Alex Browne
d71fa65359 Make contractAbi a parameter of getContractEventsAsync 2018-12-04 14:23:32 -08:00
Alex Browne
75d3f24835 Add tests for etherscan events 2018-12-04 14:23:32 -08:00
Alex Browne
2b7f94c00f Restructure pipeline package. Create data-sources dir 2018-12-04 14:23:32 -08:00
Alex Browne
cd73a047ef Remove old code. Create function for getting contract events via etherscan 2018-12-04 14:23:29 -08:00
Alex Browne
57e7119c0d Rebase pipeline branch off development 2018-12-04 14:21:42 -08:00
fragosti
8ad114c5e5 fix: instant linting issues 2018-12-04 14:11:28 -08:00
fragosti
340493a0b1 polish: reduce vertical padding in instant 2018-12-04 13:36:47 -08:00
fragosti
01e1e5ac3b chore: fix linter issues 2018-12-04 12:59:16 -08:00
fragosti
cb9f7a0664 chore: remove shark relay from possible SRA endpoints 2018-12-04 12:53:09 -08:00
fragosti
3e4b77757e hack: make min-height of line-number container 98% to prevent scrollbar from appearing in code demo 2018-12-04 12:49:37 -08:00
fragosti
110d05f645 fix: use WebsitePaths type and update wiki link to new link 2018-12-04 12:43:39 -08:00
fragosti
36f22ba069 fix: reset available tokens when sra endpoint is changed 2018-12-04 12:23:25 -08:00
fragosti
b7d804e949 fix: make select box-shadow darker 2018-12-04 11:26:51 -08:00
fragosti
f576f78b4a fix: do not show select all if no tokens are available 2018-12-04 11:22:49 -08:00
fragosti
dfe5752411 feat: update configurator snippet to actually work if copy and pasted 2018-12-04 10:58:43 -08:00
Leonid Logvinov
b1a8a5521e Merge pull request #1374 from 0xProject/feature/contracts-monorepo-4
Contracts monorepo 4
2018-12-04 17:22:25 +01:00
Leonid Logvinov
323195f4ad De-nest libs contracts 2018-12-04 17:18:10 +01:00
Leonid Logvinov
c43ba6b3c7 Merge pull request #1373 from 0xProject/feature/contracts-monorepo-3
Contracts monorepo III
2018-12-04 17:05:57 +01:00
Leonid Logvinov
8d0192c1eb Enable libs tests on CI 2018-12-04 16:07:59 +01:00
Leonid Logvinov
ac5a3fae9b Import TestLibs contract from @0x/contracts-libs 2018-12-04 16:07:59 +01:00
Leonid Logvinov
9e01f4c9a3 Refactor out libs into @0x/contracts-libs 2018-12-04 16:07:59 +01:00
Leonid Logvinov
18489161c6 Add missing dependency 2018-12-04 15:03:50 +01:00
Leonid Logvinov
d63576f495 Fix homepage link 2018-12-04 14:49:01 +01:00
Leonid Logvinov
f0213f9a8e Enable contract utils tests 2018-12-04 14:42:18 +01:00
Leonid Logvinov
e8d0aff333 Refactor @0x/contracts-utils from @0x/contracts-core 2018-12-04 14:41:18 +01:00
Leonid Logvinov
79f5e36edb Merge pull request #1311 from 0xProject/feature/contracts-monorepo-2
Contracts monorepo II
2018-12-04 13:53:15 +01:00
Leonid Logvinov
a872763413 Fix calldata related linter errors 2018-12-04 13:45:19 +01:00
Leonid Logvinov
55ebb04f03 Add missing dependency 2018-12-04 13:41:17 +01:00
Leonid Logvinov
6d312f0230 Fix merge conflict 2018-12-04 13:25:37 +01:00
Leonid Logvinov
240a8a50d3 Merge branch 'development' into feature/contracts-monorepo-2 2018-12-04 12:42:28 +01:00
Leonid Logvinov
672a4b93ba Don't start the provider by default 2018-12-04 12:10:03 +01:00
fragosti
ea4155e5fa fix: change liquiditySource to orderSource 2018-12-03 18:00:30 -08:00
fragosti
d12b99883b Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/website/instant-configurator 2018-12-03 17:52:44 -08:00
fragosti
1498e013d0 feat: update relayer list 2018-12-03 17:52:35 -08:00
Jacob Evans
a1e985a1ca Merge pull request #1225 from 0xProject/feature/contracts/dutch-auction
Implement Basic Dutch Auction
2018-12-04 12:44:19 +11:00
fragosti
cd44dc7beb polish: make configurator inputs look more like mocks 2018-12-03 17:37:32 -08:00
fragosti
db21ae3af1 feat: fetch asset meta data from the asset meta data map 2018-12-03 17:29:31 -08:00
Brandon Millman
8c146ce231 Merge pull request #1372 from 0xProject/fix/instant/single-asset
[instant] render token selector when only one asset is available
2018-12-03 17:08:32 -08:00
Steve Klebanoff
703cea6173 Merge pull request #1370 from 0xProject/feature/instant/explicitly-enable-heap-dev
[instant] Must explicitly specify when want to send to heap when developing
2018-12-03 16:52:06 -08:00
fragosti
1ce84f9bb2 fix: address to lowercase and explore the docs leads to correct wiki 2018-12-03 16:51:55 -08:00
fragosti
48bfe92740 feat: create more dank slider 2018-12-03 16:47:52 -08:00
Brandon Millman
e592b27f77 fix(instant): render token selector when only one asset is available 2018-12-03 16:36:27 -08:00
Steve Klebanoff
1107b84949 updating .env example 2018-12-03 16:10:13 -08:00
Steve Klebanoff
7a03df946d feat(instant): Add eth balance, eth address, token symbol and decimals to event properties 2018-12-03 16:01:37 -08:00
fragosti
d8a3fc0be0 feat: make (optional) label inline 2018-12-03 15:07:24 -08:00
Brandon Millman
2601d16efb Merge pull request #1367 from 0xProject/fix/instant/dai
[asset-buyer][instant] support DAI in instant
2018-12-03 15:07:23 -08:00
Jacob Evans
098a531de8 chore: Move to new structure 2018-12-04 09:58:37 +11:00
Steve Klebanoff
239116eec4 feat(instant): have to use INSTANT_HEAP_FORCE_DEVELOPMENT to report to heap in development 2018-12-03 14:53:25 -08:00
fragosti
e966641d14 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/website/instant-configurator 2018-12-03 14:51:55 -08:00
Francesco Agosti
e9fe7dcf54 Merge pull request #1353 from 0xProject/feature/website/instant-marketing
[website] instant marketing page shell
2018-12-03 14:51:27 -08:00
fragosti
7086bd32ee Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/website/instant-configurator 2018-12-03 14:48:15 -08:00
fragosti
50bfbda79a feat: add fee percentage slider 2018-12-03 14:30:38 -08:00
Steve Klebanoff
50df67e751 Merge pull request #1295 from 0xProject/feature/instant/rollbar-env
[instant] Rollbar
2018-12-03 14:24:58 -08:00
Jacob Evans
247266b969 chore: SafeMath and if statement in getAuctionDetails 2018-12-04 09:14:00 +11:00
Jacob Evans
0bffc3d10e chore: Add RevertReasons for DutchAuction. Test revert reasons 2018-12-04 09:14:00 +11:00
Jacob Evans
a882a39937 chore: Use SafeMath where possible 2018-12-04 09:13:59 +11:00
Jacob Evans
6b1fea602e chore: Clean up documentation 2018-12-04 09:13:59 +11:00
Jacob Evans
afa24aa122 chore: Work around for Ganache timestamp bug 2018-12-04 09:13:59 +11:00
Jacob Evans
a5eb1bcc20 chore: Return excess to buyer 2018-12-04 09:13:59 +11:00
Jacob Evans
54aaee8e42 chore: update documentation 2018-12-04 09:13:59 +11:00
Jacob Evans
7934d77def chore: taker address and zrx fee test 2018-12-04 09:13:58 +11:00
Jacob Evans
cb8601676d chore: Rename price to amount. Encode parameters in makerAssetData 2018-12-04 09:13:58 +11:00
Jacob Evans
98d9a9c648 chore: time movement for geth 2018-12-04 09:13:58 +11:00
Jacob Evans
da8c27c286 feat: Dutch Auction 2018-12-04 09:13:58 +11:00
fragosti
de1c296d28 feat: add fee percentage slier 2018-12-03 12:54:29 -08:00
Brandon Millman
f076cdb832 Merge pull request #1365 from 0xProject/fix/instant/token-selector
[instant] various polish items
2018-12-03 12:48:42 -08:00
fragosti
a192b309f3 feat: implement basic feeRecipient address in config generator 2018-12-03 12:24:37 -08:00
Brandon Millman
c52d48d4db fix(instant): remove screenshot from dev index.html 2018-12-03 10:47:40 -08:00
Brandon Millman
5edc3bfd33 feat(instant): update DAI token color 2018-12-03 10:43:03 -08:00
Brandon Millman
cd4241fac8 fix(asset-buyer): update SRA order provider to include DAI 2018-12-03 10:42:25 -08:00
Francesco Agosti
3662ab2524 Merge pull request #1364 from 0xProject/feature/instant/allow-env-vars-in-env-file
[instant] Add dotenv to make env dependencies more explicit
2018-12-03 10:32:51 -08:00
Brandon Millman
57986c0e1e Merge pull request #1366 from 0xProject/feature/instant/provider-name
[instant] provide a custom wallet display name option
2018-12-03 09:56:10 -08:00
Leonid Logvinov
1785769916 Refactour out the contracts testing options into a separate markdown file 2018-12-03 13:50:11 +01:00
Leonid Logvinov
c5e43f8da5 Use lodash _.startsWith 2018-12-03 13:40:06 +01:00
Leonid Logvinov
8a42cea978 Remove contracts package authors from package.json 2018-12-03 13:38:46 +01:00
Fabio B
8c69a8f1fb Update packages/sol-resolver/src/resolvers/npm_resolver.ts
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-03 13:35:57 +01:00
Fabio B
9194537085 Update packages/sol-resolver/src/resolvers/npm_resolver.ts
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-03 13:35:03 +01:00
Fabio B
91397bf8a5 Update packages/sol-compiler/src/compiler.ts
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-03 13:34:55 +01:00
Fabio B
a355001d13 Update packages/sol-compiler/CHANGELOG.json
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-03 13:34:45 +01:00
Fabio B
a6046bd5bb Update contracts/multisig/README.md
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-12-03 13:34:21 +01:00
Leonid Logvinov
7e4f2c6bdc Move more devDependencies of contracts-tst-utils to dependencies 2018-12-03 13:30:57 +01:00
Leonid Logvinov
958f4aa8e8 Update contracts-test-utils README 2018-12-03 13:22:08 +01:00
Leonid Logvinov
74dac18e47 Make chai-as-promised a dependency 2018-12-03 13:19:48 +01:00
Leonid Logvinov
bcb4808c96 Make sol-cov a dependency of @0x/contracts/test-utils 2018-12-03 13:09:15 +01:00
Leonid Logvinov
754be75dbf Fix hardcoded path in release notes fetching 2018-12-03 12:48:53 +01:00
Leonid Logvinov
5d70fe053d Rename contract_templates to abi-gen-templates 2018-12-03 12:15:53 +01:00
Leonid Logvinov
8fda11ec3a Update yarn.lock 2018-12-03 12:09:29 +01:00
Leonid Logvinov
a5b6ce6114 Fix merge conflict 2018-12-03 12:09:29 +01:00
Leonid Logvinov
0d3fb79c05 Remove unused dependencies 2018-12-03 12:09:29 +01:00
Leonid Logvinov
e70d897282 Fix package description 2018-12-03 12:09:29 +01:00
Leonid Logvinov
c638823373 Fix a typo in a prettierignore 2018-12-03 12:09:29 +01:00
Leonid Logvinov
f8399fee2f Clean up READMEs 2018-12-03 12:09:29 +01:00
Leonid Logvinov
52e63effea Remove .solhintignore 2018-12-03 12:09:29 +01:00
Leonid Logvinov
a219a8c911 Remove CHANGELOG entries 2018-12-03 12:09:29 +01:00
Leonid Logvinov
de39ec3c97 Remove duplicates combinatorial utils from core contracts 2018-12-03 12:09:28 +01:00
Leonid Logvinov
665a855548 Ignore generated files in multisig contracts 2018-12-03 12:09:28 +01:00
Leonid Logvinov
91d2cbfa0a Run both core and multisig contracts tests on CI 2018-12-03 12:09:28 +01:00
Leonid Logvinov
68b0f71d26 Fix linter issues 2018-12-03 12:09:28 +01:00
Leonid Logvinov
91c89d90a5 Use assetProxyOwner instead of the multisig in the core contracts tests 2018-12-03 12:09:28 +01:00
Leonid Logvinov
980e3cb82f Remove multisig contracts from the core list of contracts 2018-12-03 12:09:28 +01:00
Leonid Logvinov
eefb1cfe5d Fix an issue when we tried to append base contracts path to absolute imports (NPM) in sol-compiler 2018-12-03 12:09:28 +01:00
Leonid Logvinov
5b0746a8ef Add support for scoped packages resolving to NPMResoler 2018-12-03 12:09:28 +01:00
Leonid Logvinov
0faa8b3231 Refactor contracts-core into contracts-multisig, contracts-core and contracts-test-utils 2018-12-03 12:09:28 +01:00
Leonid Logvinov
450c72035f Replace packages/contracts with contracts/core 2018-12-03 12:09:28 +01:00
Leonid Logvinov
5a16e78b54 Merge pull request #1310 from 0xProject/feature/contracts-monorepo
Contracts monorepo I
2018-12-03 12:07:41 +01:00
Leonid Logvinov
6d0c71ef30 Move MultiAssetProxy to the contracts monorepo 2018-12-03 11:52:21 +01:00
Leonid Logvinov
e015f470dd Remove generated files 2018-12-03 11:33:05 +01:00
Leonid Logvinov
d142413745 Rename calldata to callData because solhint doesn't like calldata (probably reserved keyword) and goes nuts 2018-12-03 11:33:04 +01:00
Leonid Logvinov
e339e1182d Update yarn.lock 2018-12-03 11:31:54 +01:00
Leonid Logvinov
9bee3eba76 Add contracts to yarn workspaces 2018-12-03 11:31:54 +01:00
Leonid Logvinov
866c946b92 Replace packages/contracts with contracts/core 2018-12-03 11:31:54 +01:00
Leonid Logvinov
8f9a246f48 Add contracts/* to monorepo routes 2018-12-03 11:31:54 +01:00
Leonid Logvinov
4668b0732c Move packages/contracts to contracts/core 2018-12-03 11:31:53 +01:00
Brandon Millman
f4e0f74a6d feat(instant): provide a custom wallet display name 2018-12-01 01:15:01 -08:00
Brandon Millman
6f44944ffd fix(instant): darken overlay color 2018-12-01 00:47:07 -08:00
Brandon Millman
074944247d feat(instant): add token symbol to buy button text 2018-12-01 00:22:09 -08:00
Brandon Millman
593ed12d91 fix(instant): update zrx icon 2018-12-01 00:06:36 -08:00
Brandon Millman
c0f4a35cfd fix(instant): DGD and DGX colors 2018-12-01 00:04:57 -08:00
Brandon Millman
800016b430 fix(instant) various token selector fixes 2018-12-01 00:03:07 -08:00
fragosti
937235c4fd feat: add dotenv to make env dependencies more explicit 2018-11-30 16:26:19 -08:00
fragosti
4b6ac96a8d fix: use correct styles even when syntax highlighter component removes classnames on second render 2018-11-30 16:01:16 -08:00
Francesco Agosti
502e9c7be4 Merge pull request #1362 from 0xProject/fix/instant/push-to-history-broken-when-no-onpopstate
[instant] Fix push to history issue on second full render of instant
2018-11-30 16:00:30 -08:00
Steve Klebanoff
91b0fd9517 Fix variable name 2018-11-30 14:19:07 -08:00
Steve Klebanoff
6a3f295b1f Take out https:// prefix 2018-11-30 14:16:49 -08:00
Steve Klebanoff
d9b4b0e0f3 Merge branch 'development' into feature/instant/rollbar-env 2018-11-30 14:16:02 -08:00
Steve Klebanoff
c342940b5d get rid of double private def 2018-11-30 14:09:51 -08:00
Steve Klebanoff
b19700221f update with new CDN 2018-11-30 14:09:43 -08:00
Steve Klebanoff
ef041d1603 Merge branch 'feature/instant/prod-env-switches-cdn' into feature/instant/rollbar-env 2018-11-30 14:09:23 -08:00
fragosti
e47dd4a83e chore: lint 2018-11-30 13:47:47 -08:00
fragosti
9ebe8d63c8 fix: push to history edge case for second render where onpopstate is not defined on first render 2018-11-30 13:34:03 -08:00
Steve Klebanoff
94d81bd562 Merge pull request #1359 from 0xProject/feature/instant/prod-env-switches-cdn
[instant] CDN-approach to identifying environments
2018-11-30 13:12:06 -08:00
Steve Klebanoff
34b2f4736e removing unused references 2018-11-30 12:58:42 -08:00
Steve Klebanoff
f8daacc19a Merge pull request #1342 from 0xProject/feature/instant/misc-close-analytics
[instant] Close and View Transaction analytics events
2018-11-30 12:52:06 -08:00
Steve Klebanoff
d77efb611e Remove env var check for INSTANT_HEAP_ANALYTICS_ID_PRODUCTION since this is only needed on discharge 2018-11-30 12:49:07 -08:00
Steve Klebanoff
de8dcf9a72 takeout console.log 2018-11-30 12:47:16 -08:00
Steve Klebanoff
12d34707b7 Merge branch 'development' into feature/instant/prod-env-switches-cdn 2018-11-30 12:47:05 -08:00
Steve Klebanoff
ab631060a0 cdn -> dischargeTarget, and report to heap 2018-11-30 12:42:40 -08:00
Francesco Agosti
f496096ce1 Merge pull request #1348 from 0xProject/feature/instant/cdn-setup
[instant] Remove commonjs bundle, productionize UMD bundle
2018-11-30 12:36:22 -08:00
fragosti
fc2055cd93 feat: remove instant from project references 2018-11-30 12:26:59 -08:00
Francesco Agosti
ca22d87290 Merge pull request #1351 from 0xProject/fix/instant/instant-bounces-on-error
[instant] Fix instant bouncing around / height changes, don't allow labels to wrap
2018-11-30 12:19:54 -08:00
fragosti
d6ba7298d4 chore: deploy_live -> deploy_production 2018-11-30 11:59:59 -08:00
fragosti
ea11e8c62d Merge branch 'development' of https://github.com/0xProject/0x-monorepo into fix/instant/instant-bounces-on-error 2018-11-30 11:58:05 -08:00
fragosti
a7fc5975c1 feat: update tsconfig 2018-11-30 11:28:26 -08:00
fragosti
09813cb1d8 fix: address PR feedback 2018-11-30 11:20:07 -08:00
fragosti
9e69257b0d feat: implement code generation 2018-11-30 11:08:49 -08:00
fragosti
e65096ee7a feat: implement multi token select component 2018-11-30 10:25:36 -08:00
Daniel Pyrathon
a1d4aa66bc feat(order_utils.py): schema resolver cache (#1317)
* Implemented basic functionality for using cache layer of LocalRefResolver

* Use `importlib` instead of `imp`, since it's been deprecated. Legacy `load_module()` reloads modules even if they are already imported, causing tests to fail when run in non-deterministic ordering, so we replace it with `import_module()`
2018-11-30 12:59:37 -05:00
Steve Klebanoff
6c941eebea add missing import from merge 2018-11-30 08:40:25 -08:00
fragosti
f1354632a1 feat: implement available token fetching 2018-11-29 18:42:25 -08:00
fragosti
7fe27e903b feat: add MultiSelect component skeleton 2018-11-29 17:21:53 -08:00
fragosti
f80768cae0 feat: add Select component and use for configurator 2018-11-29 15:57:35 -08:00
Steve Klebanoff
702dbbae54 Merge branch 'development' into feature/instant/misc-close-analytics 2018-11-29 15:45:35 -08:00
Steve Klebanoff
fc3641b499 Merge pull request #1343 from 0xProject/feature/instant/quote-analytics
[instant] Quote analytics
2018-11-29 15:44:07 -08:00
Steve Klebanoff
e59d47eac8 Take out old --env 2018-11-29 15:32:05 -08:00
Steve Klebanoff
d99bdcf036 cdn approach to identifyign environments 2018-11-29 15:13:55 -08:00
Steve Klebanoff
4616c51e19 Fix build command 2018-11-29 14:36:05 -08:00
Steve Klebanoff
d4c439b277 Merge pull request #1345 from 0xProject/fix/instant/progress-bar-bg
[instant] Progress bar background
2018-11-29 14:34:14 -08:00
fragosti
0af07bcf49 feat: move instant base config to types file 2018-11-29 14:10:12 -08:00
fragosti
a41dfa9ae0 feat: implement configurator layout 2018-11-29 13:45:40 -08:00
fragosti
09e2157639 feat: factor out ActionLink component from features 2018-11-29 13:45:29 -08:00
fragosti
6f394128d4 feat: improve styling of code demo component 2018-11-29 13:01:41 -08:00
Steve Klebanoff
bd03df8af0 feat(instant): Cleaner config-specific setup 2018-11-29 12:05:20 -08:00
fragosti
ea61c7a5db feat: have basic code syntax highlighting working 2018-11-29 11:23:16 -08:00
Amir Bandeali
a864328ecf Merge pull request #1303 from 0xProject/feature/contracts/optimizedAbiEncoder
Optimized ABI Encoder
2018-11-29 10:06:04 -08:00
Steve Klebanoff
2b87d20290 Set .env in builds, and update profile to use 0xproject 2018-11-29 09:55:30 -08:00
Fabio Berger
b68273e592 Fix import export so that it works with doc gen 2018-11-29 17:30:21 +00:00
Steve Klebanoff
5c66f9117f assetAmount -> assetBuyAmount 2018-11-29 08:19:39 -08:00
Steve Klebanoff
64e2b91482 Merge pull request #1346 from 0xProject/fix/instant/token-selector-hover
[instant] Half opacity on clickable text hover
2018-11-29 08:16:34 -08:00
Steve Klebanoff
ecc417069d Merge pull request #1347 from 0xProject/fix/instant/input-react-warning
[instant] Fix uncontrolled input warning for token selector
2018-11-29 08:15:33 -08:00
Greg Hysen
bcb2af2861 Ran prettier 2018-11-28 17:30:02 -08:00
Francesco Agosti
906bba7d75 Merge pull request #1352 from 0xProject/fix/instant/token-symbol-size
[instant] Notify of the used font size for re-renders of scaling input
2018-11-28 17:06:33 -08:00
Greg Hysen
b15531fe68 Changelog for ABI Encoder 2018-11-28 16:40:03 -08:00
fragosti
42e83ae643 fix: add clarification to NOTE in README 2018-11-28 16:39:27 -08:00
fragosti
b55f7aef7f feat: add URL to other parts of README 2018-11-28 16:38:21 -08:00
Greg Hysen
04503200e5 Linter / Prettier 2018-11-28 16:38:11 -08:00
Greg Hysen
2da7cadefa Explicit imports for calldata 2018-11-28 16:38:11 -08:00
Greg Hysen
b8ea322541 Explicit imports for abstract data types. 2018-11-28 16:38:11 -08:00
Greg Hysen
a172ab158e Explicit imports for EVM Data Types 2018-11-28 16:38:11 -08:00
Greg Hysen
5c13353fb2 Optimize calldata by default. 2018-11-28 16:38:11 -08:00
Greg Hysen
d6645b8a91 Explicit encoding rules in tests. 2018-11-28 16:38:11 -08:00
Greg Hysen
029b8d5950 Changed constants to an exported enum; this is 0x convention 2018-11-28 16:38:11 -08:00
Greg Hysen
14c094d050 Use SolidityTypes from ethereum-types package. 2018-11-28 16:38:11 -08:00
Greg Hysen
f196dc9e35 Use ethUti.isValidAddress in encoder 2018-11-28 16:38:11 -08:00
Greg Hysen
e7bdf4717d Fixed build error: was using this instead of class name to reference a static function that used to be an instance method. 2018-11-28 16:38:11 -08:00
Greg Hysen
f479212410 Style cleanup. Improved wording of some error messages. 2018-11-28 16:38:11 -08:00
Greg Hysen
ffb8b0a619 Changed remaining instances of implicit bool casts to explicit lodash calls 2018-11-28 16:38:11 -08:00
Greg Hysen
1f693ea121 Changed from <string>.startsWith to _.startsWith 2018-11-28 16:38:11 -08:00
Greg Hysen
3f545da9f8 Switched implicit conversions to explicit lodash calls 2018-11-28 16:38:11 -08:00
Greg Hysen
f31d4ddffd Replaced null/undefined checks with lodash 2018-11-28 16:38:11 -08:00
Greg Hysen
2e79ce26cb Tests use to.be.deep.equal instead of JSON 2018-11-28 16:38:11 -08:00
Greg Hysen
ad1b5af4e5 Ran prettier 2018-11-28 16:38:11 -08:00
Greg Hysen
feb551a02e Comments to Set datatype 2018-11-28 16:38:11 -08:00
Greg Hysen
a8d707b462 Linter on Calldata 2018-11-28 16:38:11 -08:00
Greg Hysen
3bf5a4e83f Moved some consts outside of a loop 2018-11-28 16:38:11 -08:00
Greg Hysen
50344fa24a Added inline documentation for Calldata class 2018-11-28 16:38:11 -08:00
Greg Hysen
bab1c92c70 Linter for Calldata Block Iterator 2018-11-28 16:38:11 -08:00
Greg Hysen
8f73f53c95 Moved calldata iterator logic into its own iterator clas 2018-11-28 16:38:11 -08:00
Greg Hysen
9a51af46ee Payload -> Blob, Dependent -> Pointer, Member -> Set 2018-11-28 16:38:11 -08:00
Greg Hysen
bb4d02e413 Comments for Address 2018-11-28 16:38:11 -08:00
Greg Hysen
22ce3e2e29 Comments for Array 2018-11-28 16:38:11 -08:00
Greg Hysen
acd364b71c Comments and inline documentation for dynamic bytes 2018-11-28 16:38:11 -08:00
Greg Hysen
ebaf9dd275 Removed abstract Number class. 2018-11-28 16:38:11 -08:00
Greg Hysen
d2d89adbdd Abstracted out encoding/decoding of numeric values into its own utility. Could be useful elsewhere. 2018-11-28 16:38:11 -08:00
Greg Hysen
58a2dfbc4d Final rounds on evm data types 2018-11-28 16:38:11 -08:00
Greg Hysen
173fc1dcef Moved encoder selector check into DataType 2018-11-28 16:38:11 -08:00
Greg Hysen
dd8bb6d08b Made default encoding/decoding rules global to all modules in encoder 2018-11-28 16:38:11 -08:00
Greg Hysen
dc7092e1eb Removed mapDataItemToDataType from Factory. Now its just ::create() 2018-11-28 16:38:11 -08:00
Greg Hysen
c638151b73 Some minor cleanup in ABI Encoder 2018-11-28 16:38:11 -08:00
Greg Hysen
978a58105c Prepended front to function names in Queue 2018-11-28 16:38:11 -08:00
Greg Hysen
dcc439c2e3 Ran prettier 2018-11-28 16:38:11 -08:00
Greg Hysen
a895dacd4e moved abi encoder constants into utils dir 2018-11-28 16:38:11 -08:00
Greg Hysen
5a748fb4e5 Split ABI Encoder/Decoder tests into separate files 2018-11-28 16:38:11 -08:00
Greg Hysen
fee67326ad Merge above 2018-11-28 16:38:11 -08:00
Greg Hysen
a47901370b Ran prettier 2018-11-28 16:38:11 -08:00
Greg Hysen
d4d917f350 Ran prettier 2018-11-28 16:38:11 -08:00
Greg Hysen
aed8b083b5 Split Calldata into multiple files - 1 class per file 2018-11-28 16:38:11 -08:00
Greg Hysen
e6ab6f38ba Split EVM data types and factory into separate files 2018-11-28 16:38:11 -08:00
Greg Hysen
5934e5a57b Renaming some EVM data types for clarity 2018-11-28 16:38:11 -08:00
Greg Hysen
29d63cdf97 Fixed linter errors in package.json 2018-11-28 16:38:11 -08:00
Greg Hysen
62e6b22789 Fixed linter errors on tests 2018-11-28 16:38:11 -08:00
Greg Hysen
0ed1819143 Fixed linter errors on evm_data_types 2018-11-28 16:38:11 -08:00
Greg Hysen
406b5739be Fixed linter errors on data_type.ts 2018-11-28 16:38:11 -08:00
Greg Hysen
fbbca8e283 Ran prettier on utils 2018-11-28 16:38:11 -08:00
Greg Hysen
0f7abcd59b Moved global constants to separate file 2018-11-28 16:38:11 -08:00
Greg Hysen
2164b34bf9 Ran linter on Calldata 2018-11-28 16:38:11 -08:00
Greg Hysen
b0ebc6fa14 Tests for decoding return values + Ability to encode return values 2018-11-28 16:38:11 -08:00
Greg Hysen
6daa79ec12 Arrays nested in tuples 2018-11-28 16:38:10 -08:00
Greg Hysen
acd570b2b3 Multidimensional Array tests 2018-11-28 16:38:10 -08:00
Greg Hysen
0d65c9da4a Optimizer Tests 2018-11-28 16:38:10 -08:00
Greg Hysen
67dd062a2f Cleaning up optimizer tests 2018-11-28 16:38:10 -08:00
Greg Hysen
0c0bcb44d3 All 71 tests passing. Both for function encoding and individual types. 2018-11-28 16:38:10 -08:00
Greg Hysen
b213cb3974 Temporary change for testing functions 2018-11-28 16:38:10 -08:00
Greg Hysen
5b187935dc tests for String 2018-11-28 16:38:10 -08:00
Greg Hysen
d70d07366f Tests for Static Bytes 2018-11-28 16:38:10 -08:00
Greg Hysen
9a0bd05c4c Unsigned Integers 2018-11-28 16:38:10 -08:00
Greg Hysen
666075a87e Tests for Integer (tested 256 / 32 bit integers) 2018-11-28 16:38:10 -08:00
Greg Hysen
b28f26916f Tests for Bool 2018-11-28 16:38:10 -08:00
Greg Hysen
a2ad15be0d Tests for Address 2018-11-28 16:38:10 -08:00
Greg Hysen
a630312074 Tests for Tuple 2018-11-28 16:38:10 -08:00
Greg Hysen
bc538c71fc Tests - Encode/Decode Array 2018-11-28 16:38:10 -08:00
Greg Hysen
880540f4b8 Fixed issue with decoding negative ints with width < 256 2018-11-28 16:38:10 -08:00
Greg Hysen
8a8b904a29 Use new ABI Encoder for contracts 2018-11-28 16:38:10 -08:00
Greg Hysen
ebd4dbc6c6 Exports AbiEncoder as 1 unit 2018-11-28 16:38:10 -08:00
Greg Hysen
1f9ea7ed1b Removed unnecessary imports from abi encoder tets 2018-11-28 16:38:10 -08:00
Greg Hysen
5b0d554f7b Moved Abi Encoder into utils package 2018-11-28 16:38:10 -08:00
Greg Hysen
71c050375b Restructured to use index.ts for easier imports by client 2018-11-28 16:38:10 -08:00
Greg Hysen
1f22ce6061 Removed config.ts 2018-11-28 16:38:10 -08:00
Greg Hysen
3ae434c31e Adding optimizer tests 2018-11-28 16:38:10 -08:00
Greg Hysen
063871e549 removed old log messages 2018-11-28 16:38:10 -08:00
Greg Hysen
2d2255e9af Cleaner interface for encoding/decoding. Moved encode/decode parameters into a struct. 2018-11-28 16:38:10 -08:00
Greg Hysen
93e967c3b3 Some tests 2018-11-28 16:38:10 -08:00
Greg Hysen
b71577cc52 More robust implementation for optimizer 2018-11-28 16:38:10 -08:00
Greg Hysen
27cb966991 Alias now points to dependency, not pointer 2018-11-28 16:38:10 -08:00
Greg Hysen
457cb1dc84 optimizer works for basic case 2018-11-28 16:38:10 -08:00
Greg Hysen
7c733662e2 Annotated calldata (draft). 2018-11-28 16:38:10 -08:00
Greg Hysen
52474a0b8e decoding with objects as structs works 2018-11-28 16:38:10 -08:00
Greg Hysen
2a6b358717 Decoder works for uints with width less than 256 2018-11-28 16:38:10 -08:00
Greg Hysen
c5d252ba4a decoding works for most cases 2018-11-28 16:38:10 -08:00
Greg Hysen
9b1f56c968 Decoding works for some basic typs 2018-11-28 16:38:10 -08:00
Greg Hysen
13d456fda1 removed old code 2018-11-28 16:38:10 -08:00
Greg Hysen
a9e3d489d6 Tests for nested tuples -- couldnt test because not supported by reference ABI encoder 2018-11-28 16:38:10 -08:00
Greg Hysen
707a93e9f9 Refactor passing all regression tests 2018-11-28 16:38:10 -08:00
Greg Hysen
bb7dd23738 passing 18 tests 2018-11-28 16:38:10 -08:00
Greg Hysen
59206c387e Works for types with default widths 2018-11-28 16:38:10 -08:00
Greg Hysen
20f1526c7d arrays working 2018-11-28 16:38:10 -08:00
Greg Hysen
addfe85f08 passing tests slowly but surely 2018-11-28 16:38:10 -08:00
Greg Hysen
58177060a4 works for simple case 2018-11-28 16:38:10 -08:00
Greg Hysen
3027e6bc0d resolved issue with value.greaterThan 2018-11-28 16:38:10 -08:00
Greg Hysen
41e01e9806 making progress on basic example 2018-11-28 16:38:10 -08:00
Greg Hysen
0835cf0ea2 Refactor Builds! 2018-11-28 16:38:10 -08:00
Greg Hysen
1f7fbcf52c Should build? TBD! 2018-11-28 16:38:10 -08:00
Greg Hysen
2802aed79c refactored implementation done but not tested 2018-11-28 16:38:10 -08:00
Greg Hysen
78498b7019 Initial port -- wont compile yet 2018-11-28 16:38:10 -08:00
Greg Hysen
1ca23b35ab complex type tesst 2018-11-28 16:38:10 -08:00
Greg Hysen
8b91727364 types with default widths 2018-11-28 16:38:10 -08:00
Greg Hysen
8f61f6d0f9 Arrays of tuples 2018-11-28 16:38:10 -08:00
Greg Hysen
180d1ca63a multidimensional arrays with dynamic objects 2018-11-28 16:38:10 -08:00
Greg Hysen
e59669c949 multidimensional arrays with static type 2018-11-28 16:38:10 -08:00
Greg Hysen
687e6ccdd3 Got the crazy ABI working 2018-11-28 16:38:10 -08:00
Greg Hysen
3bc45395cc static vs dynamic tuple differentatiion 2018-11-28 16:38:10 -08:00
Greg Hysen
e95aa617b6 All existing ABI tests passing 2018-11-28 16:38:10 -08:00
Greg Hysen
637ab1076a ABI Encoding for all combinations of arrays 2018-11-28 16:38:10 -08:00
Greg Hysen
a13099bde3 hack for static arrays 2018-11-28 16:38:10 -08:00
Greg Hysen
1600820dea static array abi tests 2018-11-28 16:38:10 -08:00
Greg Hysen
993c5f4b4a Another passing simple Abi 2 2018-11-28 16:38:10 -08:00
Greg Hysen
af27dd6fe4 tests for tuple 2018-11-28 16:38:10 -08:00
Greg Hysen
02f37fa2d9 Works for encoding arrays 2018-11-28 16:38:10 -08:00
Greg Hysen
2b4febe337 switched from depth-first to breadth-first param binding 2018-11-28 16:38:10 -08:00
Greg Hysen
9f35096fa9 corrected selector for Array 2018-11-28 16:38:10 -08:00
Greg Hysen
39fa26b2f3 arrays with dynamic size 2018-11-28 16:38:10 -08:00
Greg Hysen
7de7fe7823 Array of basic types works 2018-11-28 16:38:10 -08:00
Greg Hysen
5053c19599 constructor for an Array + a test -- appears to work 2018-11-28 16:38:10 -08:00
Greg Hysen
f35cf03030 implemented bytes (dynamic) 2018-11-28 16:38:10 -08:00
Greg Hysen
91a08b9fdd Static bytes tests 2018-11-28 16:38:10 -08:00
Greg Hysen
cef254fa8c tests for unsigned integer 2018-11-28 16:38:10 -08:00
Greg Hysen
e2b115a15c refactored UInt/Int 2018-11-28 16:38:10 -08:00
Greg Hysen
f6cf3de1c4 Implemented int 2018-11-28 16:38:10 -08:00
Greg Hysen
ef5ba0375a Implemented bool type 2018-11-28 16:38:10 -08:00
Greg Hysen
dfa9e435af Implemented Address 2018-11-28 16:38:10 -08:00
Greg Hysen
fc0e7b1132 cleaner bind 2018-11-28 16:38:10 -08:00
Greg Hysen
b99252baae ABI encodes some basic types correctly 2018-11-28 16:38:10 -08:00
Greg Hysen
7196046e2f Prints full ABI encoding for subset of types, with off by factor of 2 for offsets 2018-11-28 16:38:10 -08:00
Greg Hysen
96bcc7e332 Going towards first calldata impl 2018-11-28 16:38:10 -08:00
Greg Hysen
d5dbd8cd68 tests for String 2018-11-28 16:38:10 -08:00
Greg Hysen
bce62056d9 cleaner name/type for pointer 2018-11-28 16:38:10 -08:00
Greg Hysen
331cca37e2 works for assigning value to uint 2018-11-28 16:38:10 -08:00
Greg Hysen
a1cff862c9 Fixed width parsing for UINT 2018-11-28 16:38:10 -08:00
Greg Hysen
79126f3b4a renamed 2018-11-28 16:38:10 -08:00
Greg Hysen
77d6594ecb Plugging away at encoder 2018-11-28 16:38:10 -08:00
fragosti
7625935222 feat: write version info directly to exported object 2018-11-28 16:36:52 -08:00
Brandon Millman
0f01e31cc3 feat(website): implement rest of links 2018-11-28 14:59:23 -08:00
Amir Bandeali
1eb19ca1ec Merge pull request #1224 from 0xProject/feature/contracts/multiAssetProxy
Implement MultiAssetProxy
2018-11-28 14:33:07 -08:00
Steve Klebanoff
6222c952c3 Merge branch 'development' into feature/instant/quote-analytics 2018-11-28 14:25:42 -08:00
Steve Klebanoff
b9c983b4d6 Use base unit value 2018-11-28 14:24:02 -08:00
Steve Klebanoff
208ee935c8 Move fetch origin out of options 2018-11-28 14:17:26 -08:00
Steve Klebanoff
ec01893e9c fetchedVia -> fetchOrigin 2018-11-28 14:11:53 -08:00
Steve Klebanoff
f4cc14f438 QuoteFetchedVia -> QuoteFetchOrigin 2018-11-28 14:11:06 -08:00
Steve Klebanoff
e5b09ba2fd Merge pull request #1341 from 0xProject/feature/instant/install-analytics
[instant] Install Wallet analytic events
2018-11-28 14:01:07 -08:00
Steve Klebanoff
105dcd73e4 fix(instant): Progress bar background color should be 10% primary color 2018-11-28 13:58:41 -08:00
Brandon Millman
63cb312c7f feat(website): implement link directly to configure 2018-11-28 13:46:41 -08:00
fragosti
85d1dba1ef fix: notify of the used font size for re-renders of scaling input 2018-11-28 13:35:38 -08:00
Brandon Millman
e1c237a8e4 feat(website): optionally show configurator 2018-11-28 13:25:53 -08:00
Brandon Millman
9608d6fc71 feature(website): add configurator shell 2018-11-28 13:23:28 -08:00
fragosti
7479a7db58 fix: dont allow price labels to wrap 2018-11-28 13:16:09 -08:00
fragosti
6e3378d79f fix: instant height change on loading state change 2018-11-28 13:09:19 -08:00
fragosti
1375d694ac fix: instant error no longer makes instant move 2018-11-28 13:09:05 -08:00
Brandon Millman
045336042f fix(website): instant marketing page need more background color 2018-11-28 12:57:07 -08:00
Brandon Millman
0a1425d8d8 fix(website): instant marketing page shadows 2018-11-28 12:52:01 -08:00
Brandon Millman
7daf995e0d fix(website): change instant marketing page styling to non mono font except the 0 in 0x 2018-11-28 11:10:17 -08:00
fragosti
8b05db3510 feat: add deploy_live command 2018-11-28 11:07:32 -08:00
Brandon Millman
c2fd6745ee chore(website): random fixes for mobile optimization 2018-11-28 10:59:54 -08:00
Brandon Millman
a747abcb73 feat(website): add extra assets for instant marketing page 2018-11-28 10:59:54 -08:00
Brandon Millman
92a4b09b05 feat(website): fix screenshots in marketing page for small screens 2018-11-28 10:59:54 -08:00
Brandon Millman
6c76731408 feat(website): need more section for instant marketing page 2018-11-28 10:59:54 -08:00
Brandon Millman
3d88b7f289 feature(website): add links to instant marketing page 2018-11-28 10:59:54 -08:00
Brandon Millman
d3e6f78fdb fix(website): update instant page CTA font 2018-11-28 10:59:54 -08:00
Brandon Millman
16ddd21a5f feat(website): instant features section 2018-11-28 10:59:54 -08:00
Brandon Millman
6c43fa8f72 feat(website): add screenshots to instant page 2018-11-28 10:59:54 -08:00
Brandon Millman
8a4e5dfb68 feat(website): implement introducing 0x instant header 2018-11-28 10:59:54 -08:00
Brandon Millman
f83c4c51c7 feat(website): add header and footer to instant page 2018-11-28 10:59:54 -08:00
Brandon Millman
7a726e2740 feat(website): scaffolding for instant page 2018-11-28 10:59:54 -08:00
fragosti
5415d1589e feat: write version info to window 2018-11-28 10:58:41 -08:00
Steve Klebanoff
3c000e70e3 Linting 2018-11-28 10:48:38 -08:00
Steve Klebanoff
06b2f12b10 fix(instant): Fix uncontrolled input warning for token selector 2018-11-28 10:38:24 -08:00
Steve Klebanoff
1b23c430fc fix(instant): Half opacity instead of darkening on hover for clickable text 2018-11-28 10:25:04 -08:00
Steve Klebanoff
ca894935f2 Take out asset name and data as we can use the selected event properties 2018-11-28 10:07:11 -08:00
Fabio B
53f8e1b3b4 Add troubleshooting section to dev-utils section 2018-11-28 16:56:48 +00:00
Jacob Evans
4861e48059 Publish
- 0x.js@2.0.6
 - @0x/abi-gen-templates@1.0.1
 - @0x/abi-gen-wrappers@2.0.0
 - @0x/asset-buyer@3.0.2
 - @0x/base-contract@3.0.8
 - @0x/connect@3.0.8
 - @0x/contract-addresses@2.0.0
 - @0x/contract-artifacts@1.1.2
 - @0x/contract-wrappers@4.1.1
 - contracts@2.1.56
 - @0x/dev-tools-pages@0.0.8
 - @0x/dev-utils@1.0.19
 - @0x/fill-scenarios@1.0.14
 - @0x/instant@1.0.2
 - @0x/metacoin@0.0.30
 - @0x/migrations@2.2.0
 - @0x/order-utils@3.0.4
 - @0x/order-watcher@2.2.6
 - @0x/react-docs@1.0.20
 - @0x/react-shared@1.0.23
 - @0x/sol-compiler@1.1.14
 - @0x/sol-cov@2.1.14
 - @0x/sol-doc@1.0.9
 - @0x/subproviders@2.1.6
 - @0x/testnet-faucets@1.0.58
 - @0x/web3-wrapper@3.1.6
 - @0x/website@0.0.61
2018-11-28 21:49:55 +11:00
Jacob Evans
c0b9214138 Updated CHANGELOGS 2018-11-28 21:49:26 +11:00
Jacob Evans
9266df43a4 chore: Add Ganache to NetworkId enum 2018-11-28 20:08:34 +11:00
Jacob Evans
dac0bee95c Merge pull request #1318 from 0xProject/bug/testnets/rinkeby-exchange
[testnet][contract-addresses] Rinkeby and Ganache
2018-11-28 16:06:44 +11:00
Amir Bandeali
708f4e9bb8 Update CHANGELOG 2018-11-27 16:09:51 -08:00
Amir Bandeali
0b9e9eb0e4 Don't load assetProxy if currentProxyid is equal to the last seen proxyid 2018-11-27 16:09:51 -08:00
Amir Bandeali
743c43f768 Add Exchange tests with MultiAsset orders 2018-11-27 16:09:51 -08:00
Amir Bandeali
7b51eddc03 Fix linting errors 2018-11-27 16:09:51 -08:00
Amir Bandeali
6f92f0a7b5 Add more tests for MAP 2018-11-27 16:09:51 -08:00
Amir Bandeali
b773d5e592 feat: Add and revert reasons 2018-11-27 16:09:51 -08:00
Amir Bandeali
a0bc97b589 Add initial MultiAssetProxy tests 2018-11-27 16:09:51 -08:00
Amir Bandeali
d146e15ff3 Fix async loops in erc721Wrapper 2018-11-27 16:09:51 -08:00
Amir Bandeali
037e63ab49 Factor offsets into calldata locations 2018-11-27 16:09:51 -08:00
Amir Bandeali
8b80d28029 feat: Implement MultiAssetProxy 2018-11-27 16:09:51 -08:00
Steve Klebanoff
d3739488ae Tracking quote errors 2018-11-27 15:28:38 -08:00
Jacob Evans
494adedeef chore: Update CHANGELOG 2018-11-28 10:17:15 +11:00
Jacob Evans
f0ed0c6a35 chore: Redeploy Rinkeby using testnet Exchange contract. Add Ganache contract addresses back 2018-11-28 10:17:09 +11:00
Steve Klebanoff
c5d6b925e4 feat(instant): Quote fetch tracking 2018-11-27 15:13:32 -08:00
Steve Klebanoff
856f4b473b feat(instant): Close and View Transaction analytics events 2018-11-27 14:14:30 -08:00
Steve Klebanoff
b95d73d176 Merge branch 'development' into feature/instant/install-analytics 2018-11-27 13:34:19 -08:00
Steve Klebanoff
462a5face9 feat(instant): Install Wallet analytics 2018-11-27 13:33:34 -08:00
Steve Klebanoff
47a87e57f1 Merge pull request #1335 from 0xProject/feature/instant/dropdown-analytics
[instant] Add analytics events for payment dropdown
2018-11-27 13:31:02 -08:00
F. Eugene Aumson
768c28f328 fix(order_utils.py): unpin pylint version (#1337)
The version was pinned in order to work around a bug in pylint.  That
bug has been fixed and released.
2018-11-27 14:49:28 -05:00
Steve Klebanoff
b50187f59c Track install wallet clicked 2018-11-27 11:25:51 -08:00
Steve Klebanoff
96a46bcb4b Merge branch 'development' into feature/instant/dropdown-analytics 2018-11-27 11:10:20 -08:00
Steve Klebanoff
4653e4c011 Merge pull request #1336 from 0xProject/fix/instant/clipboard
[instant] Fix copy to clipboard
2018-11-27 10:48:26 -08:00
Brandon Millman
372a242ea2 Merge pull request #1327 from 0xProject/feature/instant/events-buy
[instant] Add buy events to instant
2018-11-27 10:46:10 -08:00
Steve Klebanoff
fb1893626f Merge pull request #1330 from 0xProject/feature/instant/stable-css-classes
[instant] Add stable CSS classes
2018-11-27 10:42:05 -08:00
Steve Klebanoff
5fd837cc4f Merge branch 'development' into feature/instant/dropdown-analytics 2018-11-27 10:38:26 -08:00
Steve Klebanoff
435e62a94d fix(instant): Fix copy to clipboard 2018-11-27 10:32:54 -08:00
Brandon Millman
598db72523 Merge branch 'development' into feature/instant/events-buy
* development:
  Make explicit functions
  Linting
  Fix props
  Set selected asset to none
  Track numberAvailableAssets, selectedAssetName, selectedAssetData event properties
  Fix dupe merge issue
  feat(instant): Event tracking for token selector
  Token selector searched
  Token Selector open, closed, chose
2018-11-27 10:29:45 -08:00
Steve Klebanoff
4ebc561986 Merge branch 'development' into feature/instant/stable-css-classes 2018-11-27 10:24:12 -08:00
Steve Klebanoff
d23fd23e91 Merge pull request #1329 from 0xProject/feature/instant/token-picker-events
[instant] Token Selector events
2018-11-27 10:23:28 -08:00
Brandon Millman
6e2523625f feat(instant): change event properties to ms times instead of unix timestamps 2018-11-27 10:17:59 -08:00
Steve Klebanoff
23274f9b48 Merge branch 'development' into feature/instant/token-picker-events 2018-11-27 10:10:22 -08:00
Brandon Millman
7efa71eaf6 Merge branch 'development' into feature/instant/events-buy
* development:
  fix(instant): make package private
  Add stale bot config
2018-11-27 10:06:39 -08:00
Steve Klebanoff
9c27feeff6 Make explicit functions 2018-11-27 10:00:21 -08:00
Steve Klebanoff
be787a0fd1 feat(instant): Add analytics events for payment dropdown 2018-11-27 09:50:56 -08:00
Steve Klebanoff
ee5b6ad77f Linting 2018-11-27 09:16:26 -08:00
Steve Klebanoff
e08fb72cf1 Use constants 2018-11-27 09:01:49 -08:00
Leonid Logvinov
fdc4a4e5fa Merge pull request #1325 from 0xProject/feature/stale
Add stale bot config
2018-11-27 13:21:43 +01:00
Brandon Millman
ef2c5159dd fix(instant): make package private 2018-11-27 01:20:09 -08:00
Brandon Millman
f0f991245c Merge branch 'development' into feature/instant/events-buy
* development:
  fix: add --exclude-missing flag to yarn clean command
  Update CHANGELOG
  fix: remove getApproved check from OrderValidator since approval is removed after a single transfer
  Add comment
  Force scaling input component to rerender when a different asset is chosen
  Send in explicit props
  feat(instant): Add more event properties to heap
  Move out generating of event properties, and send in orderSource
  autofocus -> hasAutoFocus
  fix(instant): Right align amounts
  fix(instant): Autofocus text amount input
2018-11-26 23:11:05 -08:00
Brandon Millman
d3b0162dc9 feat(instant): add expectedEndTimeUnix and actualEndTimeUnix to buy events 2018-11-26 23:08:20 -08:00
Steve Klebanoff
f3d08c13eb Add stable CSS classes 2018-11-26 17:13:35 -08:00
Amir Bandeali
10cc46779e Merge pull request #1149 from 0xProject/fix/contracts/orderValidator
fix: remove getApproved check from OrderValidator
2018-11-26 17:06:10 -08:00
Steve Klebanoff
80a53aedf2 Fix props 2018-11-26 16:53:50 -08:00
Steve Klebanoff
1b96867df8 Merge pull request #1294 from 0xProject/feature/header-tweaks
[instant] Header tweaks
2018-11-26 16:01:04 -08:00
Steve Klebanoff
0192127e5d Set selected asset to none 2018-11-26 15:53:39 -08:00
Steve Klebanoff
7610130f73 Track numberAvailableAssets, selectedAssetName, selectedAssetData event properties 2018-11-26 15:51:40 -08:00
Amir Bandeali
218c0d9f51 Merge pull request #1326 from 0xProject/fix/yarnClean
fix: add --exclude-missing flag to yarn clean command
2018-11-26 15:29:43 -08:00
Steve Klebanoff
d5898a3a05 Fix dupe merge issue 2018-11-26 15:12:51 -08:00
Steve Klebanoff
b055055253 Merge branch 'development' into feature/instant/token-picker-events 2018-11-26 15:11:16 -08:00
Steve Klebanoff
6e3d70af56 Merge pull request #1299 from 0xProject/feature/instant/open-close-events
[instant] Add more event properties
2018-11-26 15:10:50 -08:00
Steve Klebanoff
ae570dba05 feat(instant): Event tracking for token selector 2018-11-26 15:04:02 -08:00
Brandon Millman
2795849dd3 feat(instant): add buyQuote properties to buy events 2018-11-26 14:49:50 -08:00
Brandon Millman
fad48b8b6c feat(instant): add txHash to relevant buy events 2018-11-26 14:48:07 -08:00
Brandon Millman
685d83d6d0 feat(instant): implement buy events without associated properties 2018-11-26 14:48:07 -08:00
fragosti
35d8525f55 feat: update README to reflect lack of commonjs module 2018-11-26 17:37:21 -05:00
fragosti
faf80f8595 feat: make package private 2018-11-26 17:37:03 -05:00
Steve Klebanoff
9206f2d288 Token selector searched 2018-11-26 13:27:40 -08:00
Steve Klebanoff
2fec7613c4 Token Selector open, closed, chose 2018-11-26 13:20:16 -08:00
Amir Bandeali
2f026cd1b6 fix: add --exclude-missing flag to yarn clean command 2018-11-26 13:11:30 -08:00
Steve Klebanoff
6eec84d21b Merge branch 'development' into feature/instant/open-close-events 2018-11-26 13:07:02 -08:00
Steve Klebanoff
5f6a5e28e7 Merge branch 'development' into feature/header-tweaks 2018-11-26 13:06:36 -08:00
fragosti
825911ed89 feat: Add Xianny to about page 2018-11-26 13:15:32 -05:00
Leonid Logvinov
a72d418ddb Add stale bot config 2018-11-26 19:07:55 +01:00
Amir Bandeali
cf5fd8ff42 Update CHANGELOG 2018-11-26 09:47:55 -08:00
Amir Bandeali
994c6032bb fix: remove getApproved check from OrderValidator since approval is removed after a single transfer 2018-11-26 09:45:38 -08:00
Steve Klebanoff
271adcdb7e Merge branch 'development' into feature/instant/rollbar-env 2018-11-26 09:18:48 -08:00
Steve Klebanoff
717a3bce8c EMBEDDED_DOMAINS -> HOST_DOMAINS 2018-11-26 09:12:51 -08:00
Steve Klebanoff
1494a70bad Merge branch 'development' into feature/instant/open-close-events 2018-11-26 09:02:16 -08:00
Fabio B
6d565f4bff Merge pull request #1324 from 0xProject/addCommandLineInterfaceToMigrations
Add CLI interface to @0x/migrations
2018-11-26 16:14:16 +00:00
Fabio Berger
c6592148a7 Rename node-endpoint to rpc-url for clarity 2018-11-26 15:57:49 +00:00
Fabio Berger
6e39f11db1 Merge branch 'development' into addCommandLineInterfaceToMigrations
* development:
  fix(order_utils.py): work aroud pylint bug (#1322)
2018-11-26 15:18:41 +00:00
F. Eugene Aumson
ee86cd1dcc fix(order_utils.py): work aroud pylint bug (#1322) 2018-11-26 10:18:02 -05:00
Fabio Berger
420a677828 merge development 2018-11-26 15:08:57 +00:00
Fabio Berger
9da43878b1 Add CHANGELOG entry to migrations 2018-11-26 15:04:27 +00:00
Fabio Berger
527f074e59 Fix typo 2018-11-26 15:03:58 +00:00
Fabio Berger
eefd9d9dd2 Add command-line interface to @0x/migrations 2018-11-26 14:59:27 +00:00
Leonid Logvinov
2648f5ba65 Merge pull request #1323 from 0xProject/feature/contributing-autolabeler
Remove the instruction to prefix PRs with package name from PULL_REQUEST_TEMPLATE.md
2018-11-26 15:54:50 +01:00
Leonid Logvinov
1b45aa5974 Remove the instruction to prefix PRs with package name from a/PULL_REQUEST_TEMPLATE.md 2018-11-26 15:52:04 +01:00
Leonid Logvinov
dcf19e5226 Merge pull request #1320 from 0xProject/feature/autolabeler
Add autolabeler config
2018-11-26 15:42:48 +01:00
Leonid Logvinov
c5c852f54f Add autolabeler config 2018-11-26 15:38:18 +01:00
Leonid Logvinov
7b15217694 Merge pull request #1305 from 0xProject/feature/contract-templates
[@0x/contract-templates] Make contract-templates an npm package
2018-11-26 14:12:13 +01:00
Leonid Logvinov
8caded1d1d Merge pull request #1319 from 0xProject/revert-1312-feature/build-fix-instant
Revert "[@0x/instant] Fix CI build broken by instant installation tests"
2018-11-26 14:11:04 +01:00
Leonid Logvinov
ebc3116909 Revert "[@0x/instant] Fix CI build broken by instant installation tests" 2018-11-26 14:09:24 +01:00
Leonid Logvinov
387d7199d1 Merge pull request #1312 from 0xProject/feature/build-fix-instant
[@0x/instant] Fix CI build broken by instant installation tests
2018-11-26 14:00:25 +01:00
Jacob Evans
dc965da64e Merge pull request #1309 from 0xProject/bug/contract-artifacts/testnet-exchange
[contract-artifacts] Use Testnet Exchange artifact
2018-11-26 21:23:19 +11:00
Jacob Evans
1d83d99d87 Merge pull request #1308 from 0xProject/bug/web3-wrapper/unmarshall-parity-receipt
[web3-wrapper] Only unmarshall receipt if blockNumber present
2018-11-26 21:21:36 +11:00
Jacob Evans
09a683557b chore: Update CHANGELOGS use mainnet ZRX amount in Forwarder. 2018-11-26 09:57:43 +11:00
Jacob Evans
99e92a346b chore: Fund forwarder in migrations 2018-11-26 09:37:31 +11:00
Leonid Logvinov
9ddd45e2c6 Rename contract-templates to abi-gen-templates 2018-11-23 15:22:16 +01:00
Leonid Logvinov
0c0a1db114 Fix the lerna paremeter name from cdVersions to cd-versions 2018-11-23 14:51:21 +01:00
Leonid Logvinov
b1474973cd Copy assets in referenced in instant on commonjs build 2018-11-23 14:48:49 +01:00
Jacob Evans
f0f6b26c3b bug: Use Testnet Exchange over mainnet 2018-11-23 18:17:51 +11:00
Jacob Evans
03b3b80a65 bug: Only unmarshall receipt if blockNumber present.
https://github.com/paritytech/parity-ethereum/issues/1180
Parity can return a pending transaction receipt with a number of null values
2018-11-23 15:31:00 +11:00
Leonid Logvinov
06cc66005c Make contract-templates an npm package 2018-11-22 14:48:15 +01:00
Steve Klebanoff
b0792a85a4 Add comment 2018-11-21 14:33:12 -08:00
Francesco Agosti
a5359df002 Merge pull request #1281 from 0xProject/feature/instant/push-to-history
[instant] Close/open Instant on correct history changes. Provide option to disable.
2018-11-21 17:24:48 -05:00
Steve Klebanoff
10c9d0b723 Force scaling input component to rerender when a different asset is chosen 2018-11-21 14:24:13 -08:00
Brandon Millman
5c81f07d46 Merge pull request #1300 from 0xProject/feature/instant/events-account
[instant] Implement account related events
2018-11-21 14:20:01 -08:00
Steve Klebanoff
0adc8f5053 Merge branch 'development' into feature/header-tweaks 2018-11-21 14:14:27 -08:00
Brandon Millman
804de89796 chore(instant): revert usage of event properties 2018-11-21 13:52:55 -08:00
Steve Klebanoff
c6ae7b8d3f Host whitelist so we don't get errors from embedded site 2018-11-21 13:19:26 -08:00
Brandon Millman
6604e2db20 chore(instant): refactor usage of event properties in heap 2018-11-21 13:16:34 -08:00
Fabio Berger
f46a49fd13 Publish
- 0x.js@2.0.5
 - @0x/abi-gen@1.0.17
 - @0x/abi-gen-wrappers@1.1.0
 - @0x/assert@1.0.18
 - @0x/asset-buyer@3.0.1
 - @0x/base-contract@3.0.7
 - @0x/connect@3.0.7
 - @0x/contract-addresses@1.2.0
 - @0x/contract-wrappers@4.1.0
 - contracts@2.1.55
 - @0x/dev-tools-pages@0.0.7
 - @0x/dev-utils@1.0.18
 - @0x/fill-scenarios@1.0.13
 - @0x/instant@1.0.1
 - @0x/json-schemas@2.1.2
 - @0x/metacoin@0.0.29
 - @0x/migrations@2.1.0
 - @0x/monorepo-scripts@1.0.14
 - @0x/order-utils@3.0.3
 - @0x/order-watcher@2.2.5
 - @0x/react-docs@1.0.19
 - @0x/react-shared@1.0.22
 - @0x/sol-compiler@1.1.13
 - @0x/sol-cov@2.1.13
 - @0x/sol-doc@1.0.8
 - @0x/sol-resolver@1.0.17
 - @0x/sra-spec@1.0.11
 - @0x/subproviders@2.1.5
 - @0x/testnet-faucets@1.0.57
 - @0x/types@1.3.0
 - @0x/utils@2.0.6
 - @0x/web3-wrapper@3.1.5
 - @0x/website@0.0.60
2018-11-21 21:09:47 +00:00
Fabio Berger
707af1ec58 Updated CHANGELOGS 2018-11-21 21:09:37 +00:00
Brandon Millman
31d1b4ba67 chore(instant): refactor account tracking logic in middleware to be more readable 2018-11-21 12:30:52 -08:00
Steve Klebanoff
d750225554 Send in explicit props 2018-11-21 11:10:17 -08:00
Steve Klebanoff
93672c01af Linting 2018-11-21 10:54:10 -08:00
Steve Klebanoff
921d9d7ed5 Merge branch 'development' into feature/instant/rollbar-env 2018-11-21 10:47:31 -08:00
Steve Klebanoff
b2e1be5cfe Better env var names for source map plugin 2018-11-21 10:44:50 -08:00
Steve Klebanoff
95a80a0e75 Shorter validateRollbarPresence logic 2018-11-21 10:35:53 -08:00
Steve Klebanoff
e2a16f3f33 Use ROLLBAR_ENABLED constant, and change ROLLBAR_ENVIRONMENT to INSTANT_ENVIRONMENT 2018-11-21 10:25:10 -08:00
fragosti
ed91c6c874 fix: multiple render and closes edge case for onpopstate render 2018-11-21 12:44:28 -05:00
Steve Klebanoff
70c9908249 Report when cant update balance 2018-11-21 09:43:01 -08:00
Steve Klebanoff
ffa2f4554b Takeout redundant check, and make function name more clear 2018-11-21 09:41:44 -08:00
Steve Klebanoff
22a3124662 Move rollbar setup into function, move setting up into provider 2018-11-21 09:35:24 -08:00
Fabio Berger
68c15de890 print out error message and stack 2018-11-21 17:27:40 +00:00
Fabio Berger
71d15a68c1 immediately return the patch incremented version if no changelog entries exist 2018-11-21 17:27:27 +00:00
Steve Klebanoff
35b5051148 Always report unexpected errors. Move error message generation into helper function, and add tests 2018-11-21 09:23:19 -08:00
Fabio B
3273117888 Merge pull request #1301 from 0xProject/feature/migrationsDocRef
Add Migrations Doc Ref
2018-11-21 17:06:32 +00:00
Fabio Berger
8ea2eb9102 Put python package above TS/JS packages 2018-11-21 17:05:11 +00:00
fragosti
b494a4a4db chore: clean up index.umd.ts a bit 2018-11-21 11:55:32 -05:00
fragosti
e0beb7fb38 feat: add more to instant dev env 2018-11-21 11:42:07 -05:00
fragosti
fc123871ad Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/push-to-history 2018-11-21 10:43:36 -05:00
Fabio Berger
f27fef0295 Reduce title size 2018-11-21 15:17:04 +00:00
Fabio Berger
36974a9557 reduce text side in README 2018-11-21 15:16:26 +00:00
Fabio Berger
584dc6217d Merge branch 'development' of github.com:0xProject/0x-monorepo into development
* 'development' of github.com:0xProject/0x-monorepo:
  Add additional CHANGELOG to types package
  Add CHANGELOG entry
  Fix prettier
  Fix `SimpleContractArtifact` type
  Update abi-gen-wrappers
  Add @0x/types to dependencies of `@0x/abi-gen-wrappers`
  Allow a `SimpleContractArtifact` to be passed into `deployFrom0xArtifactAsync`
  Update issue template
  fix(instant): Use new valid svg image for instant
  isDisabled -> isInputDisabled
  Allow user to select other token on success
  fix: do not use document on import
  fix(instant): Don't allow changing of assets when order processing
  fix: npmignore file ignoring index.d.ts
  fix: specify new location of index.js in package.json
  feat: fix instant build and add to project references
  chore: make instant public
2018-11-21 15:14:26 +00:00
Fabio Berger
edf07d9b5b Improve top-level README 2018-11-21 15:13:58 +00:00
Francesco Agosti
f66b695a47 Merge pull request #1283 from 0xProject/feature/instant/make-instant-public-and-fix-publishing
[instant] Make package public and fix publishing
2018-11-21 06:38:21 -08:00
Fabio Berger
61b3305af3 Fix prettier 2018-11-21 13:26:58 +00:00
Fabio Berger
e2b3c98d25 remove unused flag 2018-11-21 11:56:45 +00:00
Fabio Berger
39429dde68 Add CHANGELOG entry 2018-11-21 11:54:24 +00:00
Fabio Berger
baf69a60eb Fix additional comments 2018-11-21 11:53:50 +00:00
Fabio Berger
a90be44c9f Improve comments 2018-11-21 11:48:07 +00:00
Fabio Berger
fb7ac81945 Add migrations, contract-addresses and contract-artifacts to Developers home 2018-11-21 11:47:45 +00:00
Fabio Berger
db26ca977f Create migrations doc reference page 2018-11-21 11:47:24 +00:00
Fabio B
a8803431b3 Merge pull request #1298 from 0xProject/fix/artifact-type-error
Fix Artifact Interface Type Issue
2018-11-21 11:16:26 +00:00
Fabio Berger
2821bac3a3 Add additional CHANGELOG to types package 2018-11-21 10:44:20 +00:00
Fabio Berger
716168132a Add CHANGELOG entry 2018-11-21 10:39:10 +00:00
Brandon Millman
351e0e6f5f feat(instant): implement account related events 2018-11-20 22:38:49 -08:00
Fabio Berger
0244d04a55 Fix prettier 2018-11-21 00:11:25 +00:00
Fabio Berger
895281989c Fix SimpleContractArtifact type 2018-11-20 23:43:05 +00:00
Fabio Berger
21f39079c8 Update abi-gen-wrappers 2018-11-20 23:42:35 +00:00
Fabio Berger
c2ebcfb023 Add @0x/types to dependencies of @0x/abi-gen-wrappers 2018-11-20 23:15:53 +00:00
Steve Klebanoff
15f05733be Merge pull request #1290 from 0xProject/fix/instant/disable-token-picker
[instant] Don't allow changing of assets when order in progress
2018-11-20 15:08:27 -08:00
Steve Klebanoff
7741edbbcc Merge pull request #1296 from 0xProject/fix/instant/svg-warning
[instant] Replace "Powered By 0x" svg
2018-11-20 15:08:07 -08:00
Steve Klebanoff
1593b94aac feat(instant): Add more event properties to heap 2018-11-20 15:07:37 -08:00
Fabio Berger
4b64d8c3aa Allow a SimpleContractArtifact to be passed into deployFrom0xArtifactAsync 2018-11-20 23:06:46 +00:00
Steve Klebanoff
6124d80c89 Move out generating of event properties, and send in orderSource 2018-11-20 14:59:23 -08:00
Fabio Berger
48aec9ef47 Update issue template 2018-11-20 22:38:36 +00:00
Steve Klebanoff
1a7b167f63 fix(instant): Use new valid svg image for instant 2018-11-20 14:23:55 -08:00
Steve Klebanoff
b7eb2e887d isDisabled -> isInputDisabled 2018-11-20 13:59:09 -08:00
Steve Klebanoff
094aabfcee Linting 2018-11-20 13:28:28 -08:00
Steve Klebanoff
eca63b1a58 Merge branch 'development' into feature/header-tweaks 2018-11-20 13:26:00 -08:00
Steve Klebanoff
f5db4be521 Ensure we publish Instant with rollbar settings 2018-11-20 13:19:16 -08:00
Steve Klebanoff
d79c754a5b TODO note 2018-11-20 13:18:53 -08:00
Steve Klebanoff
934570d12f Explicit error reporting 2018-11-20 13:18:47 -08:00
Steve Klebanoff
748e3c0c53 Force source maps on staging and dogfood 2018-11-20 13:14:20 -08:00
Steve Klebanoff
728617fed2 feat(instant): Report errors to rollbar 2018-11-20 12:06:10 -08:00
Steve Klebanoff
05d45e7146 Use sourcemap loader 2018-11-20 12:05:48 -08:00
Steve Klebanoff
d2dd5f93d2 Introduce rollbar plugin 2018-11-20 11:39:31 -08:00
Steve Klebanoff
ac1ffe53df Send in rollbar environment 2018-11-20 11:21:16 -08:00
Steve Klebanoff
2bda6dd719 autofocus -> hasAutoFocus 2018-11-20 10:36:23 -08:00
Steve Klebanoff
cd4600b081 fix(instant): Right align amounts 2018-11-20 10:20:16 -08:00
Steve Klebanoff
83f4fa92a5 fix(instant): Autofocus text amount input 2018-11-20 10:19:59 -08:00
Steve Klebanoff
7ad5dbc59d Allow user to select other token on success 2018-11-20 09:51:14 -08:00
Steve Klebanoff
ba41fc9275 Merge pull request #1272 from 0xProject/feature/instant/heap
[instant] Base heap integration
2018-11-20 09:23:34 -08:00
Steve Klebanoff
36e888c3a5 Merge pull request #1287 from 0xProject/feature/instant/add-powered-by
[instant] Add "Powered By 0x"
2018-11-20 09:05:28 -08:00
Leonid Logvinov
6939182348 Merge pull request #1292 from 0xProject/feature/nonce-tx-opts
Add `nonce` to `TxOpts`
2018-11-20 16:54:36 +01:00
Fabio B
7a38a196ad Update packages/contract-wrappers/src/types.ts
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-11-20 16:42:49 +01:00
Fabio B
0c91bf1415 Update packages/contract-wrappers/CHANGELOG.json
Co-Authored-By: LogvinovLeon <logvinov.leon@gmail.com>
2018-11-20 16:32:34 +01:00
Leonid Logvinov
e1bc3f3f2d Add nonce to TxOpts 2018-11-20 15:59:33 +01:00
Leonid Logvinov
e5cfc94cd2 Merge pull request #1291 from 0xProject/feature/web3-unmarshalling
[@0x/web3-wrapper] Properly unmarshall `TransactionReceiptRPC` to `TransactionReceipt`
2018-11-20 15:37:48 +01:00
Leonid Logvinov
22cfdd9f0b Properly unmarshall TransactionReceiptRPC to TransactionReceipt 2018-11-20 15:22:06 +01:00
Steve Klebanoff
0ba34f587c Import via TS 2018-11-19 17:12:32 -08:00
Steve Klebanoff
e86982bd41 Add ability to import SVGs in TS 2018-11-19 17:12:21 -08:00
fragosti
6de499459c fix: do not use document on import 2018-11-19 17:10:47 -08:00
Steve Klebanoff
3169b72406 fix(instant): Don't allow changing of assets when order processing 2018-11-19 17:04:15 -08:00
Steve Klebanoff
db6b2cbb05 Fix linting 2018-11-19 16:38:56 -08:00
Steve Klebanoff
a1b7f0ad83 Use anchor instead of Text 2018-11-19 16:36:51 -08:00
fragosti
b62fbd0b13 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/push-to-history 2018-11-19 16:30:11 -08:00
Steve Klebanoff
578a46c57f feat(instant): Add powered by 0x image 2018-11-19 16:28:40 -08:00
fragosti
9ab55fd07d fix: npmignore file ignoring index.d.ts 2018-11-19 16:22:05 -08:00
Steve Klebanoff
497385818b Check for instant heap production credentials in pre-publish step 2018-11-19 15:38:09 -08:00
Steve Klebanoff
c30ae762bf Merge branch 'development' into feature/instant/heap 2018-11-19 14:48:36 -08:00
Brandon Millman
953f8c119b Merge pull request #1276 from 0xProject/test/instant/bundle-size
[asset-buyer][instant] downgrade lodash to be consistent with the rest of 0x packages
2018-11-19 12:44:06 -08:00
Brandon Millman
6119bd3115 Merge pull request #1271 from 0xProject/feature/instant/icons
[instant] Add icons to token selector
2018-11-19 12:41:50 -08:00
Steve Klebanoff
1880c7c27d Linting: rename variable 2018-11-19 12:14:27 -08:00
Steve Klebanoff
8772d91699 Get heap analytics id from ENV variable 2018-11-19 12:02:31 -08:00
Brandon Millman
9b725a645d feat(instant): support custom iconUrls 2018-11-19 10:12:40 -08:00
Steve Klebanoff
2bfd03e64f Change disabled analytics name, add assertion, and always set 2018-11-19 09:54:59 -08:00
Steve Klebanoff
e23f90b82c No need to explicit send in NODE_ENV 2018-11-19 09:48:34 -08:00
Steve Klebanoff
0648e270fe Merge branch 'development' into feature/instant/heap 2018-11-19 09:47:58 -08:00
Brandon Millman
3d6711bd38 Merge branch 'development' into feature/instant/icons
* development: (37 commits)
  Add 0x-order-utils.py library to developers home
  Fixes to CONTRIBUTING.md
  Improve our CONTRIBUTING.md instructions
  fix(order_utils.py): publish docs to S3, not RTD (#1264)
  fix: make instant package private
  feat: refer to map file in postpublish configs
  feat: add new bundle name to bundle watch
  fix: tslint ignore rule in wrong place
  Update blog post feature
  Fix disclaimer on mobile
  Add smart contract docs to Developer Home
  Add Apache license link
  Fix capitalization in title
  Remove excess semi-colon
  Point directly to README for docs link
  Update icons
  Update LICENSE
  Fix disclaimer
  Add blogpost URL
  Add disclaimer
  ...
2018-11-19 09:32:39 -08:00
Fabio Berger
99541f89f7 Add 0x-order-utils.py library to developers home 2018-11-19 17:07:18 +00:00
Fabio Berger
4cb138ab37 Fixes to CONTRIBUTING.md 2018-11-19 14:34:21 +00:00
Fabio Berger
8b8e277b75 Improve our CONTRIBUTING.md instructions 2018-11-19 14:28:10 +00:00
Jacob Evans
94de441de7 Merge pull request #1278 from 0xProject/feature/contract-addresses/rinkeby
Deploy contracts to Rinkeby
2018-11-19 11:29:09 +11:00
F. Eugene Aumson
43443d6057 fix(order_utils.py): publish docs to S3, not RTD (#1264)
Publishing to readthedocs.io (RTD) wasn't working, for various reasons.

Changed to publish docs to S3.
2018-11-17 07:07:25 -05:00
fragosti
4caacc78a1 fix: specify new location of index.js in package.json 2018-11-16 18:05:32 -08:00
fragosti
302d172aad feat: fix instant build and add to project references 2018-11-16 17:50:47 -08:00
fragosti
21046e4349 chore: make instant public 2018-11-16 17:19:09 -08:00
Francesco Agosti
9914f7edef Merge pull request #1282 from 0xProject/fix/instant/release-notes-bug
[instant] (temporarily) make instant private
2018-11-16 17:17:48 -08:00
fragosti
1426145946 fix: make instant package private 2018-11-16 17:06:06 -08:00
fragosti
6fe4aef6f7 feat: refer to map file in postpublish configs 2018-11-16 17:05:11 -08:00
Steve Klebanoff
3f0d94c838 Add way to disable via props 2018-11-16 16:44:23 -08:00
fragosti
9384c507ac feat: add isInstantRendered check to safeguard against double renders and double removes 2018-11-16 16:33:02 -08:00
Steve Klebanoff
097bfe581d Better way of reporting Fallback provider 2018-11-16 16:21:38 -08:00
fragosti
ac942faa25 chore: use lodash where relevant 2018-11-16 16:14:10 -08:00
fragosti
654c13df8a fix: bug where we did not call onClose config 2018-11-16 16:07:37 -08:00
fragosti
6e2fbcdb3e feat: add URL override param 2018-11-16 15:58:41 -08:00
fragosti
51dce30088 feat: add assert for shouldDisablePushToHistory 2018-11-16 15:48:55 -08:00
fragosti
a4f6cd21bd feat: be more specific with callback name 2018-11-16 15:45:02 -08:00
Steve Klebanoff
1564415e5d Specify fallback web3 provider in analytics 2018-11-16 15:41:54 -08:00
fragosti
9a53a29b1f feat: allow integrator to disable pushstate logic 2018-11-16 15:41:21 -08:00
Steve Klebanoff
83a6d7b97d Remove old function 2018-11-16 15:29:59 -08:00
Steve Klebanoff
e8be70da10 Widget -> Instant 2018-11-16 15:29:07 -08:00
Steve Klebanoff
4d7bd15334 Trigger Wallet Ready when address changed 2018-11-16 15:25:29 -08:00
fragosti
f7914af9c5 feat: rename props to config 2018-11-16 15:23:44 -08:00
fragosti
848193074a feat: close and open instant based on history changes 2018-11-16 15:21:04 -08:00
Steve Klebanoff
31ffa65f59 Getting rid of unused function, and using track prefix 2018-11-16 15:06:11 -08:00
Steve Klebanoff
21ae0c46e1 Move ip import back 2018-11-16 14:51:57 -08:00
Francesco Agosti
d64bc28ba6 Merge pull request #1275 from 0xProject/feature/instant/productionize-publish-flow
[instant] Productionize publish flow
2018-11-16 11:47:58 -08:00
fragosti
b6e6607c46 feat: add new bundle name to bundle watch 2018-11-16 11:32:05 -08:00
fragosti
d8c6b36cff fix: tslint ignore rule in wrong place 2018-11-16 11:18:17 -08:00
Fabio Berger
e00c41ad88 Update blog post feature 2018-11-16 18:59:17 +00:00
Steve Klebanoff
9c182fe6e4 Merge branch 'development' into feature/instant/heap 2018-11-16 10:26:01 -08:00
Steve Klebanoff
cbcb954c30 Disable tslint for unused function so we can include this for future tracking events 2018-11-16 10:21:51 -08:00
Steve Klebanoff
42565869a4 Report on git sha and npm version of build 2018-11-16 10:19:16 -08:00
Steve Klebanoff
85a99203d0 null -> undefined 2018-11-16 10:14:42 -08:00
Steve Klebanoff
988bb398bc Add initials to TODO note 2018-11-16 10:14:00 -08:00
Steve Klebanoff
ed62271cda Take out old TODO 2018-11-16 10:13:32 -08:00
Steve Klebanoff
74254636b4 Remove unused import 2018-11-16 10:11:00 -08:00
Steve Klebanoff
db7f74f99f Switch heap id on environment, and make sure app id is what we expect 2018-11-16 10:10:55 -08:00
Steve Klebanoff
45a1899ead Add access to environment variables 2018-11-16 10:10:43 -08:00
Fabio Berger
1626e284cd Fix disclaimer on mobile 2018-11-16 18:00:53 +00:00
Fabio Berger
c5d208c90e Add smart contract docs to Developer Home 2018-11-16 17:44:52 +00:00
Fabio Berger
a3ccd42093 Add Apache license link 2018-11-16 17:38:39 +00:00
Fabio Berger
cb3e7b4120 Fix capitalization in title 2018-11-16 17:38:30 +00:00
Fabio Berger
7e58f21a74 Remove excess semi-colon 2018-11-16 17:33:25 +00:00
Steve Klebanoff
3add465edb We may not know num available assets available when wallet ready, so not trackin there 2018-11-16 09:20:44 -08:00
Steve Klebanoff
df71dba8ed Make user and event properties more specific 2018-11-16 09:16:20 -08:00
Fabio Berger
5c4ad3505a Point directly to README for docs link 2018-11-16 17:02:09 +00:00
Steve Klebanoff
37d60dc39e Typesafe analytic actions 2018-11-16 08:51:41 -08:00
Fabio B
59c473dc33 Merge pull request #1253 from 0xProject/launchKitLanding
0x Launch kit landing page
2018-11-16 15:04:34 +00:00
Fabio Berger
5f9c7d8cfa Update icons 2018-11-16 14:43:59 +00:00
Leonid Logvinov
9a6bc4f05f Update LICENSE 2018-11-16 15:41:13 +01:00
Fabio Berger
ef860c5a58 Fix disclaimer 2018-11-16 14:39:32 +00:00
Fabio Berger
d19a9acd6b Add blogpost URL 2018-11-16 14:30:42 +00:00
Fabio Berger
416fec7a97 Add disclaimer 2018-11-16 14:27:11 +00:00
Fabio Berger
25d0b1e6e5 Merge branch 'development' into launchKitLanding
* development: (110 commits)
  fix: fix exceeds block gas limit error
  chore(instant): fix lint error
  fix: remove unused vars
  Send in affiliate info as option
  Have heartbeat update not trigger errors
  fix: remove redundant handler
  feat: make onUnlockWalletClick different based on ON
  chore: remove wallet panel content for mobile
  feat: use blue for wallet prompt on mobile
  feat: use stable version of bowser
  fix: add http to external url string
  feat: make onUnlockWalletClick different based on ON
  chore: remove wallet panel content for mobile
  feat: use blue for wallet prompt on mobile
  feat: use stable version of bowser
  feat: expose webpack-dev-server content to local network
  fix(website): remove node env definition from webpack
  fix(website): currentProvider called on undefined
  chore: update yarn lock
  feat: use capital values for enums
  ...
2018-11-16 13:52:20 +00:00
Fabio Berger
e36fc4e6ae Add launch kit to Developer home list of tools 2018-11-16 13:51:09 +00:00
Jacob Evans
0a5364ff35 feat: Deploy contracts to Rinkeby 2018-11-16 21:20:48 +11:00
Jacob Evans
cabb7432b9 Merge pull request #1277 from akfork/hotfix/fix-ganache-gas-limit
[ganache]: fix exceeds block gas limit error
2018-11-16 20:36:42 +11:00
Akagi201
9726c375af fix: fix exceeds block gas limit error 2018-11-16 17:10:37 +08:00
Brandon Millman
f582cc327b fix(instant): change lodash version to the same as other 0x packages 2018-11-15 19:08:24 -08:00
Brandon Millman
7534c0f19e fix(asset-buyer): change lodash version to the same as other 0x packages 2018-11-15 19:07:43 -08:00
Brandon Millman
004e197863 feat(instant): add icons to token selector 2018-11-15 18:54:17 -08:00
Brandon Millman
ae1fb97794 chore(instant): fix lint error 2018-11-15 18:00:59 -08:00
fragosti
79397d4b15 fix: remove private config line 2018-11-15 16:52:25 -08:00
fragosti
b7fd0ee74c Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/productionize-publish-flow 2018-11-15 16:44:19 -08:00
fragosti
3931202d4a fix: remove unused vars 2018-11-15 16:43:53 -08:00
fragosti
2cf3d4ff83 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/productionize-publish-flow 2018-11-15 16:42:24 -08:00
fragosti
bc14ae5d8b chore: run linter 2018-11-15 16:39:36 -08:00
fragosti
d4a8cd1f1c feat: change version to 1.0.0 2018-11-15 16:29:06 -08:00
fragosti
e9b298931a chore: update gitignore 2018-11-15 16:25:31 -08:00
fragosti
f8681a7780 fix: deploy commands 2018-11-15 16:20:06 -08:00
fragosti
fb3c2e1fb0 feat: rename bundle to instant.js and move build to umd dir 2018-11-15 16:13:35 -08:00
fragosti
9adfd1f323 feat: add npmignore 2018-11-15 15:38:19 -08:00
Steve Klebanoff
8c96720080 Merge pull request #1273 from 0xProject/fix/instant/heartbeat-errors
[instant] Don't show errors from heartbeat buy quote calls
2018-11-15 15:29:22 -08:00
fragosti
d0609d7131 feat: change webpack config and make instant public 2018-11-15 15:22:44 -08:00
Steve Klebanoff
33a156d9b5 Send in affiliate info as option 2018-11-15 15:12:43 -08:00
Fabio Berger
20e3a22d5d fix linter issue 2018-11-15 22:58:57 +00:00
Francesco Agosti
312dfb9572 Merge pull request #1266 from 0xProject/feature/instant/fix-mobile-specific-content
[instant] Fix mobile specific content
2018-11-15 14:35:13 -08:00
Steve Klebanoff
447b0f91f9 Have heartbeat update not trigger errors 2018-11-15 14:20:19 -08:00
Steve Klebanoff
ed26f5af98 Move variable assignments around to be more clear 2018-11-15 13:54:35 -08:00
Fabio Berger
28d105a1af Add support for responsive left 2018-11-15 20:47:34 +00:00
Fabio Berger
fd4a782bdd Update call-to-action links 2018-11-15 20:47:11 +00:00
fragosti
587739f8e1 Merge branch 'feature/instant/fix-mobile-specific-content' of https://github.com/0xProject/0x-monorepo into feature/instant/fix-mobile-specific-content 2018-11-15 12:44:54 -08:00
fragosti
4da574560d fix: remove redundant handler 2018-11-15 12:41:49 -08:00
fragosti
f9e0123986 feat: make onUnlockWalletClick different based on ON 2018-11-15 12:41:49 -08:00
fragosti
f4cc152cfb chore: remove wallet panel content for mobile 2018-11-15 12:41:49 -08:00
fragosti
29747a0487 feat: use blue for wallet prompt on mobile 2018-11-15 12:41:49 -08:00
fragosti
b01db9141b feat: use stable version of bowser 2018-11-15 12:41:49 -08:00
Steve Klebanoff
71aeb7cddc Linting 2018-11-15 11:35:47 -08:00
Francesco Agosti
34d86647bf Merge pull request #1265 from 0xProject/feature/instant/expose-webpack-dev-server
[instant ] Expose webpack-dev-server content to local network
2018-11-15 11:34:17 -08:00
Steve Klebanoff
a8863ac85e Take out console.logs 2018-11-15 11:33:04 -08:00
Steve Klebanoff
ca9bb45327 Move where we track widget opened, and report on networkId and providerName 2018-11-15 11:29:11 -08:00
Steve Klebanoff
450814ad80 Introduce ANALYTICS_ENABLED constant 2018-11-15 11:28:44 -08:00
Steve Klebanoff
0a38bf8fd6 Report ETH in units 2018-11-15 11:24:48 -08:00
Steve Klebanoff
2e61050a22 Use pure functions instead of class 2018-11-15 10:48:20 -08:00
Brandon Millman
1dd903ddcc Merge pull request #1263 from 0xProject/fix/website/node-env
[website] Fix currentProvider called on undefined and NODE_ENV production warning
2018-11-15 10:46:53 -08:00
Steve Klebanoff
61f227e123 feat(instant): Heap middleware and first tracking events 2018-11-15 10:43:42 -08:00
fragosti
633d17ffde fix: add http to external url string 2018-11-15 09:41:20 -08:00
Steve Klebanoff
20ed4fbbd4 First pass on widget version of heap 2018-11-15 08:19:58 -08:00
fragosti
39bb855a9c feat: make onUnlockWalletClick different based on ON 2018-11-14 16:27:27 -08:00
fragosti
b2a26ef21a chore: remove wallet panel content for mobile 2018-11-14 16:18:16 -08:00
fragosti
d895b0296f feat: use blue for wallet prompt on mobile 2018-11-14 16:15:29 -08:00
fragosti
b45167422b feat: use stable version of bowser 2018-11-14 16:00:03 -08:00
fragosti
8e81b0680f feat: expose webpack-dev-server content to local network 2018-11-14 15:48:25 -08:00
Brandon Millman
408bbdb52e fix(website): remove node env definition from webpack 2018-11-14 15:25:40 -08:00
Brandon Millman
f2a6feff29 fix(website): currentProvider called on undefined 2018-11-14 15:25:40 -08:00
Brandon Millman
7ccf9cd48e chore: update yarn lock 2018-11-14 15:25:40 -08:00
Francesco Agosti
8afcba7ba1 Merge pull request #1257 from 0xProject/feature/instant/different-install-wallet-copy-for-mobile
[instant] Adapt content to operating system, browser and provider type
2018-11-14 15:20:49 -08:00
Brandon Millman
2eef766aff Merge pull request #1258 from 0xProject/fix/instant/contract-call
[instant] Catch errors coming from calls to the orderValidator contract
2018-11-14 15:20:31 -08:00
fragosti
fe23bf9e51 feat: use capital values for enums 2018-11-14 14:54:41 -08:00
fragosti
1aae112d0e Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/different-install-wallet-copy-for-mobile 2018-11-14 14:39:23 -08:00
Brandon Millman
504f4d9eb9 fix(instant): fix tabIndex attribute error 2018-11-14 14:02:34 -08:00
F. Eugene Aumson
daf5719f08 fix(order_utils.py): lazy load contract artifacts (#1262) 2018-11-14 17:00:41 -05:00
Brandon Millman
e9754b4c08 Merge pull request #1261 from 0xProject/fix/instant/erc20-picker-list
[instant] Fix a bunch of low hanging bugs
2018-11-14 13:30:17 -08:00
Brandon Millman
adce627888 fix(instant): match token search on prefix 2018-11-14 10:00:18 -08:00
Brandon Millman
7688037fb8 fix(instant): border radius 2018-11-14 10:00:18 -08:00
Brandon Millman
997912a8f8 fix(instant): fix tabbing into erc20 token selector 2018-11-14 10:00:18 -08:00
F. Eugene Aumson
b961cb1952 fix(order_utils.py): validate order w/json schema (#1260) 2018-11-14 12:56:31 -05:00
F. Eugene Aumson
e1d64def20 feat(order_utils.py): sign_hash() (#1254)
Also moved is_valid_signature() into main package module, for
simplicity.

Also consolidated a handul of in-line pylint disable directives into the
.pylintrc config file.
2018-11-14 10:41:52 -05:00
Leonid Logvinov
fe1b7f15e8 Publish
- 0x.js@2.0.4
 - @0x/abi-gen@1.0.16
 - @0x/abi-gen-wrappers@1.0.5
 - @0x/assert@1.0.17
 - @0x/asset-buyer@3.0.0
 - @0x/base-contract@3.0.6
 - @0x/connect@3.0.6
 - @0x/contract-wrappers@4.0.2
 - contracts@2.1.54
 - @0x/dev-tools-pages@0.0.6
 - @0x/dev-utils@1.0.17
 - @0x/fill-scenarios@1.0.12
 - @0x/instant@0.0.7
 - @0x/json-schemas@2.1.1
 - @0x/metacoin@0.0.28
 - @0x/migrations@2.0.4
 - @0x/order-utils@3.0.2
 - @0x/order-watcher@2.2.4
 - @0x/react-docs@1.0.18
 - @0x/react-shared@1.0.21
 - @0x/sol-compiler@1.1.12
 - @0x/sol-cov@2.1.12
 - @0x/sol-doc@1.0.7
 - @0x/sra-spec@1.0.10
 - @0x/subproviders@2.1.4
 - @0x/testnet-faucets@1.0.56
 - @0x/utils@2.0.5
 - @0x/web3-wrapper@3.1.4
 - @0x/website@0.0.59
2018-11-14 16:16:46 +01:00
Leonid Logvinov
3f647c259a Updated CHANGELOGS 2018-11-14 16:16:32 +01:00
Leonid Logvinov
06dcf24496 Merge pull request #1259 from 0xProject/feature/ow-zrx-bug
[@0x/order-watcher] Fix a bug in an order removal when maker token is ZRX
2018-11-14 16:04:25 +01:00
Leonid Logvinov
77c77631e1 Add a comment 2018-11-14 16:03:19 +01:00
Leonid Logvinov
b0e9f58033 Fix a bug in an order-watcher order removal when maker token is ZRX 2018-11-14 15:41:58 +01:00
fragosti
80e7e84a06 fix: do not remove payment dropdown when confirmation pending 2018-11-13 19:49:06 -08:00
fragosti
15105cde0f refactor: move wallet panel content os switching logic into two methods 2018-11-13 19:44:31 -08:00
fragosti
921ef90a14 feat: dont show payment dropdown content on mobile 2018-11-13 19:34:34 -08:00
fragosti
1a1caa1ca2 feat: center title label with circle 2018-11-13 18:04:44 -08:00
Brandon Millman
af6aa2df93 fix(instant): catch errors coming from calls to the orderValidator contract 2018-11-13 18:03:09 -08:00
fragosti
fe1746c7ac chore: remove unused import 2018-11-13 17:50:15 -08:00
fragosti
d19c8ae9b1 feat: add coinbase wallet app logo to wallet prompt 2018-11-13 17:46:58 -08:00
fragosti
84215f75e0 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/different-install-wallet-copy-for-mobile 2018-11-13 17:31:54 -08:00
Francesco Agosti
4fc457b78b Merge pull request #1242 from 0xProject/feature/instant/metamask-connect-flow
[instant] Install/Unlock MetaMask, connect PaymentDropdown to redux state
2018-11-13 17:31:38 -08:00
fragosti
2f6b1273aa Merge branch 'feature/instant/metamask-connect-flow' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-13 17:12:51 -08:00
fragosti
da9de70bbc Merge https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-13 17:09:58 -08:00
fragosti
35bfd493e8 feat: display the correct provider type and change unlock / install prompt content 2018-11-13 17:08:11 -08:00
Steve Klebanoff
b174a891bc Merge pull request #1255 from 0xProject/feature/instant/metamask-connect-flow-input-fix
[instant] Fix input bug
2018-11-13 16:19:15 -08:00
Steve Klebanoff
bb79a5e324 linting 2018-11-13 15:18:29 -08:00
Steve Klebanoff
9e0c232a73 Remove ConnectedZeroExInstantContainer, introduce ConnectedBuyOrderProgressOrPaymentMethod 2018-11-13 15:07:21 -08:00
Brandon Millman
e02dc13805 Merge pull request #1252 from 0xProject/fix/asset-buyer/price-per-token
[asset-buyer][instant] Fix incorrect token prices for non 18-decimal tokens
2018-11-13 14:35:09 -08:00
fragosti
c8b2a975f4 feat: change install wallet panel content based on browser and os 2018-11-13 14:30:27 -08:00
Brandon Millman
820ab062a6 chore(instant): fix prettier 2018-11-13 14:18:19 -08:00
F. Eugene Aumson
7b4f63a39c feat(order_utils.py) generate_order_hash_hex() (#1234) 2018-11-13 16:30:12 -05:00
fragosti
8a64599ca5 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/different-install-wallet-copy-for-mobile 2018-11-13 13:00:52 -08:00
Fabio Berger
9b1ec5baaa Move benefits to language files and fix copy 2018-11-13 21:00:37 +01:00
Brandon Millman
3a3fe0e69a Merge branch 'development' into fix/asset-buyer/price-per-token
* development:
  Publish
  Updated CHANGELOGS
  Fix a bug when undefined was been tried to convert to an array
  feat(instant): add extra asset metadata
  chore: fix linter error
  Improve logo spacing
  fix: lowercase supplied address before comparing with derived addresses (which are not checksummed)
  Remove unused instance variable
  update yarn.lock
  Increase logo size
  Replace remaining scroll-links with Link component
  Adjust paddin
  Fix menuItem background colors depending on the context
  Remove "Home" menu item, instead make different parts of logo link to different sections of the website
  Rename tutorial to match verb structure
  chore: Make `External exports` clickable on sidebar
  style: reduce border size on version dropdown
  style: make line-height of sidebar title 26px, make sure still bottom aligned with version picker
  Update yarn.lock
  style: remove small gap under topbar
2018-11-13 11:38:20 -08:00
Fabio B
5c21d3f6af Merge pull request #1244 from 0xProject/developerSectionNits
Remaining Developer Section Design Nits
2018-11-13 20:36:48 +01:00
Brandon Millman
baba78f545 chore(asset-buyer): update changelog to major version bump 2018-11-13 11:36:19 -08:00
fragosti
f03afe6f1b Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-13 10:46:19 -08:00
Leonid Logvinov
a824264da2 Publish
- 0x.js@2.0.3
 - @0x/abi-gen-wrappers@1.0.4
 - @0x/asset-buyer@2.2.2
 - @0x/base-contract@3.0.5
 - @0x/connect@3.0.5
 - @0x/contract-wrappers@4.0.1
 - contracts@2.1.53
 - @0x/dev-tools-pages@0.0.5
 - @0x/dev-utils@1.0.16
 - @0x/fill-scenarios@1.0.11
 - @0x/instant@0.0.6
 - @0x/metacoin@0.0.27
 - @0x/migrations@2.0.3
 - @0x/order-utils@3.0.1
 - @0x/order-watcher@2.2.3
 - @0x/react-docs@1.0.17
 - @0x/react-shared@1.0.20
 - @0x/sol-compiler@1.1.11
 - @0x/sol-cov@2.1.11
 - @0x/sol-doc@1.0.6
 - @0x/subproviders@2.1.3
 - @0x/testnet-faucets@1.0.55
 - @0x/web3-wrapper@3.1.3
 - @0x/website@0.0.58
2018-11-13 19:41:43 +01:00
Leonid Logvinov
a66c03aa21 Updated CHANGELOGS 2018-11-13 19:41:25 +01:00
fragosti
bed134c1da chore: PR feedback 2018-11-13 10:37:42 -08:00
fragosti
d36cf58b82 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-13 10:37:27 -08:00
Brandon Millman
5527de62ff chore(instant): update selectedAssetAmount in the redux state to be named selectedAssetUnitAmount 2018-11-13 10:29:21 -08:00
Leonid Logvinov
11f0bebd7f Fix a bug when undefined was been tried to convert to an array 2018-11-13 19:27:44 +01:00
Fabio Berger
954fe3f549 update yarn.lock 2018-11-13 17:14:21 +01:00
Fabio Berger
4a444591c1 Implement 0x launch kit landing page 2018-11-13 17:14:13 +01:00
Fabio B
3fb29041b0 Merge pull request #1248 from 0xProject/fixLowercaseAddressBug
Fix lowercase address bug in LedgerSubprovider and MnemonicSubprovider
2018-11-13 15:03:30 +01:00
Brandon Millman
161a935003 Merge pull request #1251 from 0xProject/feature/instant/asset-data-map
[instant] Add extra asset metadata
2018-11-12 21:48:34 -08:00
Brandon Millman
e8afc66a5a chore(asset-buyer): update changelog 2018-11-12 20:51:37 -08:00
Brandon Millman
49a9345bf4 feat(instant): calculate per unit eth amount to populate OrderDetails component 2018-11-12 20:50:28 -08:00
Brandon Millman
d73faf1b81 fix(asset-buyer): output assetEthAmount instead of ethPerAssetPrice in BuyQuoteInfos 2018-11-12 20:50:27 -08:00
fragosti
0c6110b736 chore: run linter 2018-11-12 18:50:18 -08:00
fragosti
2da258f5be feat: use Omit type to improve type defitions in some containers 2018-11-12 18:48:20 -08:00
fragosti
e9bf7206bd chore: remove unused constant 2018-11-12 18:34:45 -08:00
fragosti
2b4dcb419e fix: rename handler creator name 2018-11-12 17:48:13 -08:00
fragosti
c67632dff5 feat: make all button fontsizes 16px by default 2018-11-12 17:42:56 -08:00
fragosti
01b36b4949 fix: remove requirement of default case in all switch statements 2018-11-12 17:30:28 -08:00
fragosti
711b307e6c feat: prevent eth balance blink 2018-11-12 17:09:28 -08:00
fragosti
1ab19a7c23 Merge branch 'feature/instant/asset-data-map' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-12 15:11:36 -08:00
fragosti
7068f7b4d1 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-12 15:10:46 -08:00
fragosti
79f0324abc feat: integrate wallet flow with heartbeat and other branches 2018-11-12 13:30:47 -08:00
Brandon Millman
b82148ea60 feat(instant): add extra asset metadata 2018-11-12 13:26:09 -08:00
Fabio B
add1cfd261 Merge pull request #1227 from WyseNynja/patch-1
[web3-wrapper] start jsonRpcRequestId at 1, not 0
2018-11-12 20:43:00 +01:00
Bryan Stitt
cdf78494d5 Update CHANGELOG.json 2018-11-12 09:12:59 -08:00
Bryan Stitt
789f573452 Merge branch 'development' into patch-1 2018-11-12 09:10:40 -08:00
Bryan Stitt
22f217807d Update CHANGELOG.json 2018-11-12 09:08:23 -08:00
Fabio B
08797392e0 Update packages/order-watcher/CHANGELOG.json
Co-Authored-By: WyseNynja <bryan@stitthappens.com>
2018-11-12 09:08:02 -08:00
Leonid Logvinov
853c77dc09 Update packages/order-watcher/CHANGELOG.json
Co-Authored-By: WyseNynja <bryan@stitthappens.com>
2018-11-12 09:07:54 -08:00
Fabio Berger
a4a46dc076 chore: fix linter error 2018-11-12 13:50:23 +01:00
Fabio Berger
0d565fe32f Improve logo spacing 2018-11-12 13:27:14 +01:00
Fabio Berger
320460feb9 fix: lowercase supplied address before comparing with derived addresses (which are not checksummed) 2018-11-12 13:21:25 +01:00
Fabio Berger
dbce3f8935 Remove unused instance variable 2018-11-12 13:20:41 +01:00
Bryan Stitt
76b3caa124 Update CHANGELOG.json 2018-11-11 15:13:42 -08:00
Bryan Stitt
0101cd73aa Merge branch 'development' into patch-1 2018-11-11 15:13:09 -08:00
Bryan Stitt
6ef628613e update changelog 2018-11-11 15:09:59 -08:00
Fabio Berger
498be7ac41 update yarn.lock 2018-11-11 22:11:40 +01:00
Fabio Berger
0391f93490 merge development 2018-11-11 22:11:10 +01:00
Fabio Berger
399a7d5fec Increase logo size 2018-11-11 22:07:58 +01:00
Fabio Berger
0d201173ef Replace remaining scroll-links with Link component 2018-11-11 17:51:00 +01:00
Fabio Berger
2d43f312c8 Adjust paddin 2018-11-11 16:50:08 +01:00
Fabio Berger
1ec8a4115f Fix menuItem background colors depending on the context 2018-11-11 16:48:31 +01:00
Fabio Berger
753b33aec5 Remove "Home" menu item, instead make different parts of logo link to different sections of the website 2018-11-11 15:31:52 +01:00
Fabio Berger
7626d1d6fe Rename tutorial to match verb structure 2018-11-11 14:54:07 +01:00
fragosti
a8a1ea92a6 fix: no longer refer to error account state 2018-11-09 16:30:38 -08:00
fragosti
ff027ee36a Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-09 16:22:36 -08:00
fragosti
ba292ead45 fix: set all button font sizes in buy flow to 16px 2018-11-09 16:20:39 -08:00
fragosti
5355f3c538 fix: remove unused ProgressBar from BuyOrderProgress and fix issue where payment method is not shown for pending metamask confirmation 2018-11-09 16:16:04 -08:00
fragosti
478330c12d fix: minimize height difference between different states 2018-11-09 16:06:58 -08:00
fragosti
b1376059d3 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-09 15:43:03 -08:00
fragosti
2bba01c664 feat: toggle wallet connection color 2018-11-09 15:40:02 -08:00
fragosti
433fb3597d feat: refactor button styles and add href to Text 2018-11-09 15:26:57 -08:00
fragosti
7460f2796a feat: add more info section to the metamask panel 2018-11-09 15:11:47 -08:00
fragosti
7249cc7b49 feat: allow href prop on button 2018-11-09 15:08:01 -08:00
fragosti
b598827708 feat: implement basic StandardModalContent with accompanying InstallWalletPanelContent 2018-11-09 14:57:29 -08:00
fragosti
128abb39dd feat: add padding to close icon to increase tap area 2018-11-09 14:21:41 -08:00
fragosti
79a533940e feat: open metamask sliding panel if locked on click 2018-11-09 14:20:14 -08:00
fragosti
3a51bd1e69 feat: create connect metamask 2018-11-09 13:56:04 -08:00
fragosti
3f1f19e344 feat: connect payment method to state and display different content based on account state 2018-11-09 13:41:32 -08:00
fragosti
3aa831ad77 feat: add account payment method container 2018-11-09 13:29:28 -08:00
fragosti
3fd667b3be feat: make zero ex instant container switch between progress and payment 2018-11-09 13:23:01 -08:00
fragosti
fa7bd072d0 feat: refactor progress bar code to expose static progress bar 2018-11-09 13:19:59 -08:00
fragosti
daa011f7cb feat: implement CurrentStandardSlidingPanel and put it in the main container 2018-11-09 11:15:32 -08:00
fragosti
239eada7d9 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-09 10:34:14 -08:00
fragosti
a50f0ca997 Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/metamask-connect-flow 2018-11-08 17:38:46 -08:00
fragosti
39ae21d693 feat: allow panel children to fill entire content / remove title from panel component 2018-11-08 16:58:44 -08:00
fragosti
fc138cd73d feat: add metamask logo 2018-11-08 16:40:21 -08:00
fragosti
990d510d05 feat: add lock icon 2018-11-08 16:40:21 -08:00
Bryan Stitt
801004be66 start jsonRpcRequestId at 1, not 0
I'm trying to use the 0x-watcher against a parity websocket rpc and getting an error that I think is the same as https://github.com/ethereum/web3.js/issues/1967
2018-11-07 16:39:07 -08:00
Fabio Berger
81fb8d614f chore: Make External exports clickable on sidebar 2018-10-26 17:19:53 +02:00
Fabio Berger
3e75daafa1 style: reduce border size on version dropdown 2018-10-26 14:01:15 +02:00
Fabio Berger
6696aa46ee style: make line-height of sidebar title 26px, make sure still bottom aligned with version picker 2018-10-26 14:01:00 +02:00
Fabio Berger
14a9770d57 Update yarn.lock 2018-10-26 13:52:39 +02:00
Fabio Berger
b8d2cc1221 style: remove small gap under topbar 2018-10-26 13:52:29 +02:00
853 changed files with 33052 additions and 3393 deletions

View File

@@ -18,6 +18,7 @@ jobs:
name: yarn
command: yarn --frozen-lockfile install || yarn --frozen-lockfile install
- run: yarn build:ci:no_website
- run: yarn build:ts
- save_cache:
key: repo-{{ .Environment.CIRCLE_SHA1 }}
paths:
@@ -40,7 +41,12 @@ jobs:
- restore_cache:
keys:
- repo-{{ .Environment.CIRCLE_SHA1 }}
- run: yarn wsrun test:circleci contracts
- run: yarn wsrun test:circleci @0x/contracts-multisig
- run: yarn wsrun test:circleci @0x/contracts-utils
- run: yarn wsrun test:circleci @0x/contracts-libs
- run: yarn wsrun test:circleci @0x/contracts-tokens
- run: yarn wsrun test:circleci @0x/contracts-extensions
- run: yarn wsrun test:circleci @0x/contracts-protocol
test-contracts-geth:
docker:
- image: circleci/node:9
@@ -52,7 +58,12 @@ jobs:
- repo-{{ .Environment.CIRCLE_SHA1 }}
# HACK(albrow): we need to sleep 10 seconds to ensure the devnet is
# initialized
- run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test contracts
- run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test @0x/contracts-multisig
- run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-utils
- run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-libs
- run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-tokens
- run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-extensions
- run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-protocol
test-publish:
resource_class: medium+
docker:
@@ -73,6 +84,20 @@ jobs:
keys:
- repo-{{ .Environment.CIRCLE_SHA1 }}
- run: yarn test:generate_docs:circleci
test-pipeline:
docker:
- image: circleci/node:9
- image: postgres:11-alpine
working_directory: ~/repo
steps:
- restore_cache:
keys:
- repo-{{ .Environment.CIRCLE_SHA1 }}
- run: ZEROEX_DATA_PIPELINE_TEST_DB_URL='postgresql://postgres@localhost/postgres' yarn wsrun test:circleci @0x/pipeline
- save_cache:
key: coverage-pipeline-{{ .Environment.CIRCLE_SHA1 }}
paths:
- ~/repo/packages/pipeline/coverage/lcov.info
test-rest:
docker:
- image: circleci/node:9
@@ -81,6 +106,7 @@ jobs:
- restore_cache:
keys:
- repo-{{ .Environment.CIRCLE_SHA1 }}
- run: yarn wsrun test:circleci @0x/contracts-test-utils
- run: yarn wsrun test:circleci @0x/abi-gen
- run: yarn wsrun test:circleci @0x/assert
- run: yarn wsrun test:circleci @0x/base-contract
@@ -165,6 +191,9 @@ jobs:
- image: 0xorg/ganache-cli
command: |
ganache-cli --gasLimit 10000000 --noVMErrorsOnRPCResponse --db /snapshot --noVMErrorsOnRPCResponse -p 8545 --networkId 50 -m "concert load couple harbor equip island argue ramp clarify fence smart topic"
- image: 0xorg/launch-kit-ci
command: |
yarn start:ts -p 3000:3000
steps:
- checkout
- run: sudo chown -R circleci:circleci /usr/local/bin
@@ -176,6 +205,11 @@ jobs:
cd python-packages/order_utils
python -m ensurepip
python -m pip install -e .[dev]
- run:
command: |
cd python-packages/sra_client
python -m ensurepip
python -m pip install -e .
- save_cache:
key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
paths:
@@ -189,10 +223,18 @@ jobs:
command: |
cd python-packages/order_utils
coverage run setup.py test
- run:
command: |
cd python-packages/sra_client
coverage run setup.py test
- save_cache:
key: coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
paths:
- ~/repo/python-packages/order_utils/.coverage
- save_cache:
key: coverage-python-sra-client-{{ .Environment.CIRCLE_SHA1 }}
paths:
- ~/repo/python-packages/sra_client/.coverage
test-rest-python:
working_directory: ~/repo
docker:
@@ -331,6 +373,9 @@ workflows:
- test-contracts-geth:
requires:
- build
- test-pipeline:
requires:
- build
- test-rest:
requires:
- build

39
.github/autolabeler.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
python: ['python-packages']
contracts: ['contracts']
sol-doc: ['packages/sol-doc']
sol-resolver: ['packages/sol-resolver']
sra-spec: ['packages/sra-spec']
subproviders: ['packages/subproviders']
contract-addresses: ['packages/contract-addresses']
migrations: ['packages/migrations']
web3-wrapper: ['packages/web3-wrapper']
sol-compiler: ['packages/sol-compiler']
types: ['packages/types']
instant: ['packages/instant']
abi-gen-templates: ['packages/abi-gen-templates']
abi-gen: ['packages/abi-gen']
website: ['packages/website']
sol-cov: ['packages/sol-cov']
utils: ['packages/utils']
tslint-config: ['packages/tslint-config']
asset-buyer: ['packages/asset-buyer']
order-watcher: ['packages/order-watcher']
react-docs: ['packages/react-docs']
order-utils: ['packages/order-utils']
react-shared: ['packages/react-shared']
assert: ['packages/assert']
base-contract: ['packages/base-contract']
typescript-typings: ['packages/typescript-typings']
0x.js: ['packages/0x.js']
abi-gen-wrappers: ['packages/abi-gen-wrappers']
metacoin: ['packages/metacoin']
contract-artifacts: ['packages/contract-artifacts']
dev-utils: ['packages/dev-utils']
contract-wrappers: ['packages/contract-wrappers']
json-schemas: ['packages/json-schemas']
ethereum-types: ['ethereum-types']
connect: ['packages/connect']
fill-scenarios: ['packages/fill-scenarios']
dev-tools-pages: ['packages/dev-tools-pages']
testnet-faucets: ['packages/testnet-faucets']
monorepo-scripts: ['packages/monorepo-scripts']

19
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue has been automatically closed because no activity occured in 7 days after being marked as stale. If it's still relevant - feel free to reopen. Thank you
for your contributions.

22
.gitignore vendored
View File

@@ -11,6 +11,10 @@ pids
*.seed
*.pid.lock
# SQLite database files
*.db
*.sqlite
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
@@ -79,13 +83,27 @@ packages/react-docs/example/public/bundle*
packages/testnet-faucets/server/
# generated contract artifacts/
packages/contracts/generated-artifacts/
contracts/protocol/generated-artifacts/
contracts/multisig/generated-artifacts/
contracts/utils/generated-artifacts/
contracts/libs/generated-artifacts/
contracts/interfaces/generated-artifacts/
contracts/tokens/generated-artifacts/
contracts/examples/generated-artifacts/
contracts/extensions/generated-artifacts/
packages/sol-cov/test/fixtures/artifacts/
packages/metacoin/artifacts/
# generated contract wrappers
packages/abi-gen-wrappers/wrappers
packages/contracts/generated-wrappers/
contracts/protocol/generated-wrappers/
contracts/multisig/generated-wrappers/
contracts/utils/generated-wrappers/
contracts/libs/generated-wrappers/
contracts/interfaces/generated-wrappers/
contracts/tokens/generated-wrappers/
contracts/examples/generated-wrappers/
contracts/extensions/generated-wrappers/
packages/metacoin/src/contract_wrappers
# solc-bin in sol-compiler

View File

@@ -1,11 +1,26 @@
lib
.nyc_output
/packages/contracts/generated-wrappers
/packages/contracts/generated-artifacts
/contracts/protocol/generated-wrappers
/contracts/protocol/generated-artifacts
/contracts/multisig/generated-wrappers
/contracts/multisig/generated-artifacts
/contracts/utils/generated-wrappers
/contracts/utils/generated-artifacts
/contracts/libs/generated-wrappers
/contracts/libs/generated-artifacts
/contracts/interfaces/generated-wrappers
/contracts/interfaces/generated-artifacts
/contracts/tokens/generated-wrappers
/contracts/tokens/generated-artifacts
/contracts/examples/generated-wrappers
/contracts/examples/generated-artifacts
/contracts/extensions/generated-wrappers
/contracts/extensions/generated-artifacts
/packages/abi-gen-wrappers/src/generated-wrappers
/packages/contract-artifacts/artifacts
/python-packages/order_utils/src/zero_ex/contract_artifacts/artifacts
/packages/json-schemas/schemas
/python-packages/order_utils/src/zero_ex/json_schemas/schemas
/packages/metacoin/src/contract_wrappers
/packages/metacoin/artifacts
/packages/sra-spec/public/

View File

@@ -14,7 +14,7 @@ packages/website/ @BMillman19 @fragosti @fabioberger @steveklebanoff
packages/abi-gen/ @LogvinovLeon
packages/base-contract/ @LogvinovLeon
packages/connect/ @fragosti
packages/contract_templates/ @LogvinovLeon
packages/abi-gen-templates/ @LogvinovLeon
packages/contract-addresses/ @albrow
packages/contract-artifacts/ @albrow
packages/dev-utils/ @LogvinovLeon @fabioberger
@@ -32,4 +32,4 @@ packages/web3-wrapper/ @LogvinovLeon @fabioberger
python-packages/ @feuGeneA
# Protocol/smart contracts
packages/contracts/test/ @albrow
contracts/core/test/ @albrow

View File

@@ -1,61 +1,92 @@
## 0x Contribution Guide
Thank you for your interest in contributing to 0x protocol! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes!
We welcome contributions from anyone on the internet and are grateful for even the smallest contributions. This document will help get you setup to start contributing back to 0x.
### How to contribute
### Getting started
If you'd like to contribute to 0x protocol, please fork the repo, fix, commit and send a pull request against the `development` branch for the maintainers to review and merge into the main code base. If you wish to submit more complex changes though, please check with a core dev first on [our RocketChat #dev channel](http://chat.0xproject.com) to ensure those changes are in-line with the general philosophy of the project and/or to get some early feedback which can make both your efforts easier as well as our review and merge procedures quick and simple.
1. Fork `0xproject/0x-monorepo`
2. Clone your fork
3. Follow the [installation & build steps](https://github.com/0xProject/0x-monorepo#install-dependencies) in the repo's top-level README.
4. Setup the recommended [Development Tooling](#development-tooling).
5. Open a PR with the `[WIP]` flag against the `development` branch and describe the change you are intending to undertake in the PR description. (see [our branch naming conventions](#branch-structure))
We encourage a “PR early” approach so create the PR as early as possible even without the fix/feature ready, so that devs and other contributors know you have picked up the issue. These early PRs should indicate an 'in progress' status by adding the '[WIP]' prefix to the PR title. Please make sure your contributions adhere to our coding guidelines:
Before removing the `[WIP]` tag and submitting the PR for review, make sure:
* Pull requests adding features or refactoring should be opened against the `development` branch
* Pull requests fixing bugs in the latest release version should be opened again the `master` branch
* Write [good commit messages](https://chris.beams.io/posts/git-commit/)
* It passes our linter checks (`yarn lint`)
* It is properly formatted with Prettier (`yarn prettier`)
* It passes our continuous integration tests (See: [Enabling code coverage checks on your fork](#enabling-code-coverage-checks-on-your-fork) for instructions on getting the `submit-coverage` test to pass on forks)
* You've created/updated the corresponding [CHANGELOG](#CHANGELOGs) entries.
* Your changes have sufficient test coverage (e.g regression tests have been added for bug fixes)
### Code quality
### Branch structure
Because 0x.js is used by multiple relayers in production and their businesses depend on it, we strive for exceptional code quality. Please follow the existing code standards and conventions. `tslint` and `prettier` (described below) will help you.
We have two main branches:
If you're adding functionality, please also add tests and make sure they pass. We have an automatic coverage reporting tool, so we'll see it if they are missing ;)
If you're adding a new public function/member, make sure you document it with Java doc-style comments. We use typedoc to generate [awesome documentation](https://0xproject.com/docs/0xjs) from the comments within our source code.
* `master` represents the most recently released (published on npm) version of the codebase.
* `development` represents the current development state of the codebase.
If the sub-package you are modifying has a `CHANGELOG.md` file, make sure to add an entry in it for the change made to the package. For published packages, only changes that modify the public interface or behavior of the package need a CHANGELOG entry.
ALL PRs should be opened against `development`.
#### Enabling code coverage checks on your fork
Branch names should be prefixed with `fix`, `feature` or `refactor`.
If you simply fork the repo and then create a PR sourced from it, your PR will fail its test coverage check. This is because the 0x CircleCI configuration sets the `COVERALLS_REPO_TOKEN` environment variable to the token for 0xProject/0x-monorepo, but when running the check against your fork the token needs to match the repo that is your fork, rather than the 0x repo.
* e.g `fix/broken-wiki-link`
* If the PR only edits a single package, add it's name too
* e.g `fix/website/broken-wiki-link`
To facilitate this check, after creating your fork, but before creating the branch for your PR, do the following:
### CHANGELOGs
1. Log in to [coveralls.io](https://coveralls.io/), go to Add Repos, and enable your fork. Then go to the settings for that repo, and copy the Repo Token identifier.
2. Log in to [CircleCI](https://circleci.com/login), go to Add Projects, click the Set Up Project button corresponding to your fork, and then click Start Building. (Aside from step 3 below, no actual set up is needed, since it will use the `.circleci/config.yml` file in 0x-monorepo, so you can ignore all of the instruction/explanation given on the page with the Start Building button.)
3. In CircleCI, configure your project to add an Environment Variable, with name `COVERALLS_REPO_TOKEN`, and for the value paste in the Repo Token you copied in step 1.
At 0x we use [Semantic Versioning](http://semver.org/) for all our published packages. If a change you make corresponds to a semver bump, you must modify the package's `CHANGELOG.json` file accordingly.
Now, when you push to your branch, CircleCI will automatically run all of the checks in your own instance, and the coverage check will work since it has the proper Repo Token, and the PR will magically refer to your own checks rather than running them in the 0x CircleCI instance.
Each CHANGELOG entry that corresponds to a published package will have a `timestamp`. If no entry exists without a `timestamp`, you must first create a new one:
### Styleguide
```
{
"version": "1.0.1", <- The updated package version
"changes": [
{
"note": "", <- Describe your change
"PR": 100 <- Your PR number
}
]
},
```
We use [TSLint](https://palantir.github.io/tslint/) with [custom configs](https://github.com/0xProject/0x-monorepo/tree/development/packages/tslint-config) to keep our code style consistent.
If an entry without a `timestamp` already exists, this means other changes have been introduced by other collaborators since the last publish. Add your changes to the list of notes and adjust the version if your PR introduces a greater semver change (i.e current changes required a patch bump, but your changes require a major version bump).
To lint your code just run: `yarn lint`
### Development Tooling
We also use [Prettier](https://prettier.io/) to auto-format our code. Be sure to either add a [text editor integration](https://prettier.io/docs/en/editors.html) or a [pre-commit hook](https://prettier.io/docs/en/precommit.html) to properly format your code changes.
We strongly recommend you use the [VSCode](https://code.visualstudio.com/) text editor since most of our code is written in Typescript and it offers amazing support for the language.
#### Linter
We use [TSLint](https://palantir.github.io/tslint/) with [custom configs](https://github.com/0xProject/0x-monorepo/tree/development/packages/tslint-config) to keep our code-style consistent.
Use `yarn:lint` to lint the entire monorepo, and `PKG={PACKAGE_NAME} yarn lint` to lint a specific package.
If you want to change a rule, or add a custom rule, please make these changes to our [tslint-config](https://github.com/0xProject/0x-monorepo/tree/development/packages/tslint-config) package. All other packages have it as a dependency.
Integrate it into your text editor:
* VSCode: [vscode-tslint](https://marketplace.visualstudio.com/items?itemName=eg2.tslint)
* Atom: [linter-tslint](https://atom.io/packages/linter-tslint)
#### Auto-formatter
We use [Prettier](https://prettier.io/) to auto-format our code. Be sure to either add a [text editor integration](https://prettier.io/docs/en/editors.html) or a [pre-commit hook](https://prettier.io/docs/en/precommit.html) to properly format your code changes.
If using the Atom text editor, we recommend you install the following packages:
* [atom-typescript](https://atom.io/packages/atom-typescript)
* [linter-tslint](https://atom.io/packages/linter-tslint)
* [prettier-atom](https://atom.io/packages/prettier-atom)
* [language-ethereum](https://atom.io/packages/language-ethereum)
* VSCode: [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
* Atom: [prettier-atom](https://atom.io/packages/prettier-atom)
Our CI will also run TSLint and Prettier as a part of the test run when you submit your PR. Make sure that the CI tests pass for your contribution.
## Fix `submit-coverage` CI failure
### Branch structure & versioning
If you simply fork the repo and then create a PR from it, your PR will fail the `submit-coverage` check on CI. This is because the 0x CircleCI configuration sets the `COVERALLS_REPO_TOKEN` environment variable to the token for `0xProject/0x-monorepo`, but when running the check against your fork the token needs to match your repo's name `your-username/0x-monorepo`.
We use [semantic versioning](http://semver.org/), but before a package reaches v1.0.0 all breaking changes as well as new features will be minor version bumps.
To facilitate this check, after creating your fork, but before creating the branch for your PR, do the following:
We have two main branches: `master` and `development`.
1. Log in to [coveralls.io](https://coveralls.io/), go to `Add Repos`, and enable your fork. Then go to the settings for that repo, and copy the `Repo Token` identifier.
2. Log in to [CircleCI](https://circleci.com/login), go to `Add Projects`, click the `Set Up Project` button corresponding to your fork, and then click `Start Building`. (Aside from step 3 below, no actual set up is needed, since it will use the `.circleci/config.yml` file in 0x-monorepo, so you can ignore all of the instruction/explanation given on the page with the `Start Building` button.)
3. In CircleCI, configure your project to add an environment variable, with name `COVERALLS_REPO_TOKEN`, and for the value paste in the `Repo Token` you copied in step 1.
`master` represents the most recent released (published on npm) version.
`development` represents the development state and is a default branch to which you will submit a PR. We use this structure so that we can push hotfixes to the currently released version without needing to publish all the changes made towards the next release. If a hotfix is implemented on `master`, it is back-ported to `development`.
Now, when you push to your branch, CircleCI will automatically run all of the checks in your own instance, and the coverage check will work since it has the proper `Repo Token`, and the PR will magically refer to your own checks rather than running them in the 0x CircleCI instance.

View File

@@ -46,10 +46,14 @@
<!--- Include as many relevant details about the environment you experienced the bug in -->
| Package | Version |
| ------------------: | :------ |
| `0x.js` | 0.25.0 |
| `Exchange Contract` | v1 |
| Package | Version |
| ------: | :------ |
<!-- For example:
| `0x.js` | 2.0.4 |
| `Exchange Contract` | v2 |
-->
| Network |
| ------- |

View File

@@ -1,4 +1,4 @@
Copyright 2017 ZeroEx Inc.
Copyright 2017 ZeroEx Intl.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -10,4 +10,4 @@ Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.

View File

@@ -21,7 +21,6 @@
<!--- The following points should be used to indicate the progress of your PR. Put an `x` in all the boxes that apply right now, and come back over time and check them off as you make progress. If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
* [ ] Prefix PR title with `[WIP]` if necessary.
* [ ] Prefix PR title with bracketed package name(s) corresponding to the changed package(s). For example: `[sol-cov] Fixed bug`.
* [ ] Add tests to cover changes as needed.
* [ ] Update documentation as needed.
* [ ] Add new entries to the relevant CHANGELOG.jsons.

115
README.md
View File

@@ -2,7 +2,7 @@
---
[0x][website-url] is an open protocol that facilitates trustless, low friction exchange of Ethereum-based assets. A full description of the protocol may be found in our [whitepaper][whitepaper-url].
[0x][website-url] is an open protocol that facilitates trustless, low friction exchange of Ethereum-based assets. For more information on how it works, check out the [0x protocol specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).
This repository is a monorepo including the 0x protocol smart contracts and numerous developer tools. Each public sub-package is independently published to NPM.
@@ -18,63 +18,74 @@ If you're developing on 0x now or are interested in using 0x infrastructure in t
[![Join the chat at https://gitter.im/0xProject/Lobby](https://badges.gitter.im/0xProject/Lobby.svg)](https://gitter.im/0xProject/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
### Published Packages
## Packages
| Package | Version | Description |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| [`0x.js`](/packages/0x.js) | [![npm](https://img.shields.io/npm/v/0x.js.svg)](https://www.npmjs.com/package/0x.js) | A Javascript library for interacting with the 0x protocol |
| [`@0x/abi-gen`](/packages/abi-gen) | [![npm](https://img.shields.io/npm/v/@0x/abi-gen.svg)](https://www.npmjs.com/package/@0x/abi-gen) | Tool to generate TS wrappers from smart contract ABIs |
| [`@0x/abi-gen-wrappers`](/packages/abi-gen-wrappers) | [![npm](https://img.shields.io/npm/v/@0x/abi-gen-wrappers.svg)](https://www.npmjs.com/package/@0x/abi-gen-wrappers) | Low-level 0x smart contract wrappers generated using @0x/abi-gen |
| [`@0x/assert`](/packages/assert) | [![npm](https://img.shields.io/npm/v/@0x/assert.svg)](https://www.npmjs.com/package/@0x/assert) | Type and schema assertions used by our packages |
| [`@0x/asset-buyer`](/packages/asset-buyer) | [![npm](https://img.shields.io/npm/v/@0x/asset-buyer.svg)](https://www.npmjs.com/package/@0x/asset-buyer) | Convenience package for discovering and buying assets with Ether |
| [`@0x/base-contract`](/packages/base-contract) | [![npm](https://img.shields.io/npm/v/@0x/base-contract.svg)](https://www.npmjs.com/package/@0x/base-contract) | BaseContract used by auto-generated `abi-gen` wrapper contracts |
| [`@0x/connect`](/packages/connect) | [![npm](https://img.shields.io/npm/v/@0x/connect.svg)](https://www.npmjs.com/package/@0x/connect) | A Javascript library for interacting with the Standard Relayer API |
| [`@0x/contract-addresses`](/packages/contract-addresses) | [![npm](https://img.shields.io/npm/v/@0x/contract-addresses.svg)](https://www.npmjs.com/package/@0x/contract-addresses) | Used to get known addresses of deployed 0x contracts |
| [`@0x/contract-artifacts`](/packages/contract-artifacts) | [![npm](https://img.shields.io/npm/v/@0x/contract-artifacts.svg)](https://www.npmjs.com/package/@0x/contract-artifacts) | 0x smart contract compilation artifacts |
| [`@0x/contract-wrappers`](/packages/contract-wrappers) | [![npm](https://img.shields.io/npm/v/@0x/contract-wrappers.svg)](https://www.npmjs.com/package/@0x/contract-wrappers) | Smart TS wrappers for 0x smart contracts |
| [`@0x/dev-utils`](/packages/dev-utils) | [![npm](https://img.shields.io/npm/v/@0x/dev-utils.svg)](https://www.npmjs.com/package/@0x/dev-utils) | Dev utils to be shared across 0x projects and packages |
| [`@0x/fill-scenarios`](/packages/fill-scenarios) | [![npm](https://img.shields.io/npm/v/@0x/fill-scenarios.svg)](https://www.npmjs.com/package/@0x/fill-scenarios) | 0x order fill scenario generation |
| [`@0x/json-schemas`](/packages/json-schemas) | [![npm](https://img.shields.io/npm/v/@0x/json-schemas.svg)](https://www.npmjs.com/package/@0x/json-schemas) | 0x-related json schemas |
| [`@0x/migrations`](/packages/migrations) | [![npm](https://img.shields.io/npm/v/@0x/migrations.svg)](https://www.npmjs.com/package/@0x/migrations) | 0x smart contract migrations |
| [`@0x/order-utils`](/packages/order-utils) | [![npm](https://img.shields.io/npm/v/@0x/order-utils.svg)](https://www.npmjs.com/package/@0x/order-utils) | A set of utilities for generating, parsing, signing and validating 0x orders |
| [`@0x/order-watcher`](/packages/order-watcher) | [![npm](https://img.shields.io/npm/v/@0x/order-watcher.svg)](https://www.npmjs.com/package/@0x/order-watcher) | An order watcher daemon that watches for order validity |
| [`@0x/react-docs`](/packages/react-docs) | [![npm](https://img.shields.io/npm/v/@0x/react-docs.svg)](https://www.npmjs.com/package/@0x/react-docs) | React documentation component for rendering TypeDoc & Doxity generated JSON |
| [`@0x/react-shared`](/packages/react-shared) | [![npm](https://img.shields.io/npm/v/@0x/react-shared.svg)](https://www.npmjs.com/package/@0x/react-shared) | 0x shared react components |
| [`@0x/sol-compiler`](/packages/sol-compiler) | [![npm](https://img.shields.io/npm/v/@0x/sol-compiler.svg)](https://www.npmjs.com/package/@0x/sol-compiler) | A thin wrapper around Solc.js that outputs artifacts, resolves imports, only re-compiles when needed, and other niceties |
| [`@0x/sol-cov`](/packages/sol-cov) | [![npm](https://img.shields.io/npm/v/@0x/sol-cov.svg)](https://www.npmjs.com/package/@0x/sol-cov) | Solidity test coverage tool |
| [`@0x/sol-doc`](/packages/sol-doc) | [![npm](https://img.shields.io/npm/v/@0x/sol-doc.svg)](https://www.npmjs.com/package/@0x/sol-doc) | Solidity documentation generator |
| [`@0x/sol-resolver`](/packages/sol-resolver) | [![npm](https://img.shields.io/npm/v/@0x/sol-resolver.svg)](https://www.npmjs.com/package/@0x/sol-resolver) | Import resolver for smart contracts dependencies |
| [`@0x/sra-spec`](/packages/sra-spec) | [![npm](https://img.shields.io/npm/v/@0x/sra-spec.svg)](https://www.npmjs.com/package/@0x/sra-spec) | OpenAPI specification for the standard relayer API |
| [`@0x/subproviders`](/packages/subproviders) | [![npm](https://img.shields.io/npm/v/@0x/subproviders.svg)](https://www.npmjs.com/package/@0x/subproviders) | Useful web3 subproviders (e.g. LedgerSubprovider) |
| [`@0x/tslint-config`](/packages/tslint-config) | [![npm](https://img.shields.io/npm/v/@0x/tslint-config.svg)](https://www.npmjs.com/package/@0x/tslint-config) | Custom 0x development TSLint rules |
| [`@0x/types`](/packages/types) | [![npm](https://img.shields.io/npm/v/@0x/types.svg)](https://www.npmjs.com/package/@0x/types) | Shared type declarations |
| [`@0x/typescript-typings`](/packages/typescript-typings) | [![npm](https://img.shields.io/npm/v/@0x/typescript-typings.svg)](https://www.npmjs.com/package/@0x/typescript-typings) | Repository of types for external packages |
| [`@0x/utils`](/packages/utils) | [![npm](https://img.shields.io/npm/v/@0x/utils.svg)](https://www.npmjs.com/package/@0x/utils) | Shared utilities |
| [`@0x/web3-wrapper`](/packages/web3-wrapper) | [![npm](https://img.shields.io/npm/v/@0x/web3-wrapper.svg)](https://www.npmjs.com/package/@0x/web3-wrapper) | Web3 wrapper |
Visit our [developer portal](https://0xproject.com/docs/order-utils) for a comprehensive list of core & community maintained packages. All packages maintained with this monorepo are listed below.
### Private Packages
### Python Packages
| Package | Description |
| -------------------------------------------------------- | ---------------------------------------------------------------- |
| [`@0x/contracts`](/packages/contracts) | 0x solidity smart contracts & tests |
| [`@0x/react-docs-example`](/packages/react-docs-example) | Example documentation site created with `@0x/react-docs` |
| [`@0x/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether |
| [`@0x/website`](/packages/website) | 0x website & Portal DApp |
| Package | Version | Description |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [`0x-order-utils`](/python-packages/order_utils) | [![PyPI](https://img.shields.io/pypi/v/0x-order-utils.svg)](https://pypi.org/project/0x-order-utils/) | A set of utilities for generating, parsing, signing and validating 0x orders |
| [`0x-sra-client`](/python-packages/sra_client) | [![PyPI](https://img.shields.io/pypi/v/0x-sra-client.svg)](https://pypi.org/project/0x-sra-client/) | A Python client for interacting with servers conforming to the Standard Relayer API specification |
### Typescript/Javascript Packages
#### 0x-specific packages
| Package | Version | Description |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [`0x.js`](/packages/0x.js) | [![npm](https://img.shields.io/npm/v/0x.js.svg)](https://www.npmjs.com/package/0x.js) | An aggregate package combining many smaller utility packages for interacting with the 0x protocol |
| [`@0x/contract-addresses`](/packages/contract-addresses) | [![npm](https://img.shields.io/npm/v/@0x/contract-addresses.svg)](https://www.npmjs.com/package/@0x/contract-addresses) | A tiny utility library for getting known deployed contract addresses for a particular network. |
| [`@0x/contract-wrappers`](/packages/contract-wrappers) | [![npm](https://img.shields.io/npm/v/@0x/contract-wrappers.svg)](https://www.npmjs.com/package/@0x/contract-wrappers) | JS/TS wrappers for interacting with the 0x smart contracts |
| [`@0x/order-utils`](/packages/order-utils) | [![npm](https://img.shields.io/npm/v/@0x/order-utils.svg)](https://www.npmjs.com/package/@0x/order-utils) | A set of utilities for generating, parsing, signing and validating 0x orders |
| [`@0x/json-schemas`](/packages/json-schemas) | [![npm](https://img.shields.io/npm/v/@0x/json-schemas.svg)](https://www.npmjs.com/package/@0x/json-schemas) | 0x-related JSON schemas |
| [`@0x/order-watcher`](/packages/order-watcher) | [![npm](https://img.shields.io/npm/v/@0x/order-watcher.svg)](https://www.npmjs.com/package/@0x/order-watcher) | An order watcher daemon that watches for order validity |
| [`@0x/migrations`](/packages/migrations) | [![npm](https://img.shields.io/npm/v/@0x/migrations.svg)](https://www.npmjs.com/package/@0x/migrations) | Migration tool for deploying 0x smart contracts on private testnets |
| [`@0x/contract-artifacts`](/packages/contract-artifacts) | [![npm](https://img.shields.io/npm/v/@0x/contract-artifacts.svg)](https://www.npmjs.com/package/@0x/contract-artifacts) | 0x smart contract compilation artifacts |
| [`@0x/abi-gen-wrappers`](/packages/abi-gen-wrappers) | [![npm](https://img.shields.io/npm/v/@0x/abi-gen-wrappers.svg)](https://www.npmjs.com/package/@0x/abi-gen-wrappers) | Low-level 0x smart contract wrappers generated using `@0x/abi-gen` |
| [`@0x/sra-spec`](/packages/sra-spec) | [![npm](https://img.shields.io/npm/v/@0x/sra-spec.svg)](https://www.npmjs.com/package/@0x/sra-spec) | OpenAPI specification for the Standard Relayer API |
| [`@0x/connect`](/packages/connect) | [![npm](https://img.shields.io/npm/v/@0x/connect.svg)](https://www.npmjs.com/package/@0x/connect) | An HTTP/WS client for interacting with the Standard Relayer API |
| [`@0x/asset-buyer`](/packages/asset-buyer) | [![npm](https://img.shields.io/npm/v/@0x/asset-buyer.svg)](https://www.npmjs.com/package/@0x/asset-buyer) | Convenience package for discovering and buying assets with Ether |
#### Ethereum tooling
| Package | Version | Description |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`@0x/web3-wrapper`](/packages/web3-wrapper) | [![npm](https://img.shields.io/npm/v/@0x/web3-wrapper.svg)](https://www.npmjs.com/package/@0x/web3-wrapper) | An Ethereum JSON RPC client |
| [`@0x/sol-compiler`](/packages/sol-compiler) | [![npm](https://img.shields.io/npm/v/@0x/sol-compiler.svg)](https://www.npmjs.com/package/@0x/sol-compiler) | A wrapper around solc-js that adds smart re-compilation, ability to compile an entire project, Solidity version specific compilation, standard input description support and much more. |
| [`@0x/sol-cov`](/packages/sol-cov) | [![npm](https://img.shields.io/npm/v/@0x/sol-cov.svg)](https://www.npmjs.com/package/@0x/sol-cov) | A solidity test coverage tool |
| [`@0x/sol-resolver`](/packages/sol-resolver) | [![npm](https://img.shields.io/npm/v/@0x/sol-resolver.svg)](https://www.npmjs.com/package/@0x/sol-resolver) | Import resolver for smart contracts dependencies |
| [`@0x/subproviders`](/packages/subproviders) | [![npm](https://img.shields.io/npm/v/@0x/subproviders.svg)](https://www.npmjs.com/package/@0x/subproviders) | Web3 provider middlewares (e.g. LedgerSubprovider) |
| [`@0x/sol-doc`](/packages/sol-doc) | [![npm](https://img.shields.io/npm/v/@0x/sol-doc.svg)](https://www.npmjs.com/package/@0x/sol-doc) | Solidity documentation generator |
#### Utilities
| Package | Version | Description |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [`@0x/abi-gen`](/packages/abi-gen) | [![npm](https://img.shields.io/npm/v/@0x/abi-gen.svg)](https://www.npmjs.com/package/@0x/abi-gen) | Tool to generate TS wrappers from smart contract ABIs |
| [`@0x/tslint-config`](/packages/tslint-config) | [![npm](https://img.shields.io/npm/v/@0x/tslint-config.svg)](https://www.npmjs.com/package/@0x/tslint-config) | Custom TSLint rules used by the 0x core team |
| [`@0x/types`](/packages/types) | [![npm](https://img.shields.io/npm/v/@0x/types.svg)](https://www.npmjs.com/package/@0x/types) | Shared type declarations |
| [`@0x/typescript-typings`](/packages/typescript-typings) | [![npm](https://img.shields.io/npm/v/@0x/typescript-typings.svg)](https://www.npmjs.com/package/@0x/typescript-typings) | Repository of types for external packages |
| [`@0x/utils`](/packages/utils) | [![npm](https://img.shields.io/npm/v/@0x/utils.svg)](https://www.npmjs.com/package/@0x/utils) | Shared utilities |
| [`@0x/react-docs`](/packages/react-docs) | [![npm](https://img.shields.io/npm/v/@0x/react-docs.svg)](https://www.npmjs.com/package/@0x/react-docs) | React documentation component for rendering TypeDoc & sol-doc generated JSON |
| [`@0x/react-shared`](/packages/react-shared) | [![npm](https://img.shields.io/npm/v/@0x/react-shared.svg)](https://www.npmjs.com/package/@0x/react-shared) | 0x shared react components |
| [`@0x/assert`](/packages/assert) | [![npm](https://img.shields.io/npm/v/@0x/assert.svg)](https://www.npmjs.com/package/@0x/assert) | Type and schema assertions used by our packages |
| [`@0x/base-contract`](/packages/base-contract) | [![npm](https://img.shields.io/npm/v/@0x/base-contract.svg)](https://www.npmjs.com/package/@0x/base-contract) | BaseContract used by auto-generated `abi-gen` wrapper contracts |
| [`@0x/dev-utils`](/packages/dev-utils) | [![npm](https://img.shields.io/npm/v/@0x/dev-utils.svg)](https://www.npmjs.com/package/@0x/dev-utils) | Dev utils to be shared across 0x packages |
| [`@0x/fill-scenarios`](/packages/fill-scenarios) | [![npm](https://img.shields.io/npm/v/@0x/fill-scenarios.svg)](https://www.npmjs.com/package/@0x/fill-scenarios) | 0x order fill scenario generator |
#### Private Packages
| Package | Description |
| -------------------------------------------------- | -------------------------------------------------------------------------------- |
| [`@0x/contracts`](/contracts/core) | 0x protocol solidity smart contracts & tests |
| [`@0x/instant`](/packages/instant) | A free and flexible way to offer simple crypto purchasing in any app or website. |
| [`@0x/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether |
| [`@0x/website`](/packages/website) | 0x website |
## Usage
Dedicated documentation pages:
* [0x.js Library](https://0xproject.com/docs/0xjs)
* [0x Connect](https://0xproject.com/docs/connect)
* [Smart contracts](https://0xproject.com/docs/contracts)
* [Subproviders](https://0xproject.com/docs/subproviders)
* [Sol Compiler](https://0xproject.com/docs/sol-compiler)
* [Web3-wrapper](https://0xproject.com/docs/web3-wrapper)
* [JSON-schemas](https://0xproject.com/docs/json-schemas)
* [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.

48
contracts/TESTING.md Normal file
View File

@@ -0,0 +1,48 @@
# Contracts testing options
## Revert stack traces
If you want to see helpful stack traces (incl. line number, code snippet) for smart contract reverts, run the tests with:
```
yarn test:trace
```
**Note:** This currently slows down the test runs and is therefore not enabled by default.
## Backing Ethereum node
By default, our tests run against an in-process [Ganache](https://github.com/trufflesuite/ganache-core) instance. In order to run the tests against [Geth](https://github.com/ethereum/go-ethereum), first follow the instructions in the README for the devnet package to start the devnet Geth node. Then run:
```bash
TEST_PROVIDER=geth yarn test
```
## Code coverage
In order to see the Solidity code coverage output generated by `@0x/sol-cov`, run:
```
yarn test:coverage
```
## Gas profiler
In order to profile the gas costs for a specific smart contract call/transaction, you can run the tests in `profiler` mode.
**Note:** Traces emitted by ganache have incorrect gas costs so we recommend using Geth for profiling.
```
TEST_PROVIDER=geth yarn test:profiler
```
You'll see a warning that you need to explicitly enable and disable the profiler before and after the block of code you want to profile.
```typescript
import { profiler } from './utils/profiler';
profiler.start();
// Some call to a smart contract
profiler.stop();
```
Without explicitly starting and stopping the profiler, the profiler output will be too busy, and therefore unusable.

View File

@@ -0,0 +1,11 @@
[
{
"timestamp": 1544741676,
"version": "1.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
}
]

View File

@@ -0,0 +1,10 @@
<!--
changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
Edit the package's CHANGELOG.json file only.
-->
CHANGELOG
## v1.0.2 - _December 13, 2018_
* Dependencies updated

View File

@@ -0,0 +1,56 @@
## Contract examples
Example smart contracts that interact with 0x protocol.
## Usage
Contracts can be found in the [contracts](./contracts) directory.
This package contains example implementations of contracts that interact with the protocol but are _not_ intended for use in production. Examples include [filter](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#filter-contracts) contracts, a [Wallet](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#wallet) contract, and a [Validator](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#validator) contract, among others.
## Contributing
We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
For proposals regarding the 0x protocol's smart contract architecture, message format, or additional functionality, go to the [0x Improvement Proposals (ZEIPs)](https://github.com/0xProject/ZEIPs) repository and follow the contribution guidelines provided therein.
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
### Install Dependencies
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
```bash
yarn config set workspaces-experimental true
```
Then install dependencies
```bash
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
PKG=@0x/contracts-examples yarn build
```
Or continuously rebuild on change:
```bash
PKG=@0x/contracts-examples yarn watch
```
### Clean
```bash
yarn clean
```
### Lint
```bash
yarn lint
```

View File

@@ -0,0 +1,22 @@
{
"artifactsDir": "./generated-artifacts",
"contractsDir": "./contracts",
"compilerSettings": {
"optimizer": {
"enabled": true,
"runs": 1000000
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode.object",
"evm.bytecode.sourceMap",
"evm.deployedBytecode.object",
"evm.deployedBytecode.sourceMap"
]
}
}
},
"contracts": ["ExchangeWrapper", "Validator", "Wallet", "Whitelist"]
}

View File

@@ -19,8 +19,8 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../../protocol/Exchange/interfaces/IExchange.sol";
import "../../protocol/Exchange/libs/LibOrder.sol";
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
contract ExchangeWrapper {

View File

@@ -18,7 +18,7 @@
pragma solidity 0.4.24;
import "../../protocol/Exchange/interfaces/IValidator.sol";
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IValidator.sol";
contract Validator is

View File

@@ -18,8 +18,8 @@
pragma solidity 0.4.24;
import "../../protocol/Exchange/interfaces/IWallet.sol";
import "../../utils/LibBytes/LibBytes.sol";
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IWallet.sol";
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
contract Wallet is

View File

@@ -19,9 +19,9 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../../protocol/Exchange/interfaces/IExchange.sol";
import "../../protocol/Exchange/libs/LibOrder.sol";
import "../../utils/Ownable/Ownable.sol";
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol";
contract Whitelist is

View File

@@ -0,0 +1,82 @@
{
"name": "@0x/contracts-examples",
"version": "1.0.2",
"engines": {
"node": ">=6.12"
},
"description": "Smart contract examples of 0x protocol",
"main": "lib/src/index.js",
"directories": {
"test": "test"
},
"scripts": {
"build": "yarn pre_build && tsc -b",
"build:ci": "yarn build",
"pre_build": "run-s compile generate_contract_wrappers",
"compile": "sol-compiler --contracts-dir contracts",
"clean": "shx rm -rf lib generated-artifacts generated-wrappers",
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers",
"lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
"lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol"
},
"config": {
"abis": "generated-artifacts/@(ExchangeWrapper|Validator|Wallet|Whitelist).json"
},
"repository": {
"type": "git",
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/0xProject/0x-monorepo/issues"
},
"homepage": "https://github.com/0xProject/0x-monorepo/contracts/examples/README.md",
"devDependencies": {
"@0x/abi-gen": "^1.0.19",
"@0x/contracts-test-utils": "^1.0.2",
"@0x/dev-utils": "^1.0.21",
"@0x/sol-compiler": "^1.1.16",
"@0x/sol-cov": "^2.1.16",
"@0x/subproviders": "^2.1.8",
"@0x/tslint-config": "^2.0.0",
"@types/bn.js": "^4.11.0",
"@types/lodash": "4.14.104",
"@types/node": "*",
"@types/yargs": "^10.0.0",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^2.0.1",
"dirty-chai": "^2.0.1",
"ethereumjs-abi": "0.6.5",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
"solc": "^0.4.24",
"solhint": "^1.4.1",
"tslint": "5.11.0",
"typescript": "3.0.1",
"yargs": "^10.0.3"
},
"dependencies": {
"@0x/base-contract": "^3.0.10",
"@0x/contracts-interfaces": "^1.0.2",
"@0x/contracts-libs": "^1.0.2",
"@0x/contracts-multisig": "^1.0.2",
"@0x/contracts-tokens": "^1.0.2",
"@0x/contracts-utils": "^1.0.2",
"@0x/order-utils": "^3.0.7",
"@0x/types": "^1.4.1",
"@0x/typescript-typings": "^3.0.6",
"@0x/utils": "^2.0.8",
"@0x/web3-wrapper": "^3.2.1",
"@types/js-combinatorics": "^0.5.29",
"bn.js": "^4.11.8",
"ethereum-types": "^1.1.4",
"ethereumjs-util": "^5.1.1",
"lodash": "^4.17.5"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -0,0 +1,13 @@
import { ContractArtifact } from 'ethereum-types';
import * as ExchangeWrapper from '../../generated-artifacts/ExchangeWrapper.json';
import * as Validator from '../../generated-artifacts/Validator.json';
import * as Wallet from '../../generated-artifacts/Wallet.json';
import * as Whitelist from '../../generated-artifacts/Whitelist.json';
export const artifacts = {
ExchangeWrapper: ExchangeWrapper as ContractArtifact,
Validator: Validator as ContractArtifact,
Wallet: Wallet as ContractArtifact,
Whitelist: Whitelist as ContractArtifact,
};

View File

@@ -0,0 +1,2 @@
export * from './artifacts';
export * from './wrappers';

View File

@@ -0,0 +1,4 @@
export * from '../../generated-wrappers/exchange_wrapper';
export * from '../../generated-wrappers/validator';
export * from '../../generated-wrappers/wallet';
export * from '../../generated-wrappers/whitelist';

View File

@@ -0,0 +1,16 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
"outDir": "lib",
"rootDir": ".",
"resolveJsonModule": true
},
"include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"],
"files": [
"./generated-artifacts/ExchangeWrapper.json",
"./generated-artifacts/Validator.json",
"./generated-artifacts/Wallet.json",
"./generated-artifacts/Whitelist.json"
],
"exclude": ["./deploy/solc/solc_bin"]
}

View File

@@ -0,0 +1,11 @@
[
{
"timestamp": 1544741676,
"version": "1.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
}
]

View File

@@ -0,0 +1,10 @@
<!--
changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
Edit the package's CHANGELOG.json file only.
-->
CHANGELOG
## v1.0.2 - _December 13, 2018_
* Dependencies updated

View File

@@ -0,0 +1,31 @@
[
{
"name": "Forwarder",
"version": "1.1.0",
"changes": [
{
"note": "Round up when calculating remaining amounts in marketBuy functions",
"pr": 1162,
"networks": {
"1": "0x5468a1dc173652ee28d249c271fa9933144746b1",
"3": "0x2240dab907db71e64d3e0dba4800c83b5c502d4e",
"42": "0x17992e4ffb22730138e4b62aaa6367fa9d3699a6"
}
}
]
},
{
"name": "Forwarder",
"version": "1.0.0",
"changes": [
{
"note": "protocol v2 deploy",
"networks": {
"1": "0x7afc2d5107af94c462a194d2c21b5bdd238709d6",
"3": "0x3983e204b12b3c02fb0638caf2cd406a62e0ead3",
"42": "0xd85e2fa7e7e252b27b01bf0d65c946959d2f45b8"
}
}
]
}
]

View File

@@ -0,0 +1,69 @@
## Contract extensions
Smart contracts that implement extensions for the 0x protocol.
## Usage
Contract extensions of the protocol can be found in the [contracts](./contracts) directory. This directory contains contracts that interact with the 2.0.0 contracts and will be used in production, such as the [Forwarder](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/forwarder-specification.md) contract.
## Bug bounty
A bug bounty for the 2.0.0 contracts is ongoing! Instructions can be found [here](https://0xproject.com/wiki#Bug-Bounty).
## Contributing
We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
For proposals regarding the 0x protocol's smart contract architecture, message format, or additional functionality, go to the [0x Improvement Proposals (ZEIPs)](https://github.com/0xProject/ZEIPs) repository and follow the contribution guidelines provided therein.
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
### Install Dependencies
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
```bash
yarn config set workspaces-experimental true
```
Then install dependencies
```bash
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
PKG=@0x/contracts-extensions yarn build
```
Or continuously rebuild on change:
```bash
PKG=@0x/contracts-extensions yarn watch
```
### Clean
```bash
yarn clean
```
### Lint
```bash
yarn lint
```
### Run Tests
```bash
yarn test
```
#### Testing options
Contracts testing options like coverage, profiling, revert traces or backing node choosing - are described [here](../TESTING.md).

View File

@@ -0,0 +1,22 @@
{
"artifactsDir": "./generated-artifacts",
"contractsDir": "./contracts",
"compilerSettings": {
"optimizer": {
"enabled": true,
"runs": 1000000
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode.object",
"evm.bytecode.sourceMap",
"evm.deployedBytecode.object",
"evm.deployedBytecode.sourceMap"
]
}
}
},
"contracts": ["DutchAuction", "Forwarder"]
}

View File

@@ -0,0 +1,205 @@
/*
Copyright 2018 ZeroEx Intl.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
import "@0x/contracts-utils/contracts/utils/SafeMath/SafeMath.sol";
contract DutchAuction is
SafeMath
{
using LibBytes for bytes;
// solhint-disable var-name-mixedcase
IExchange internal EXCHANGE;
struct AuctionDetails {
uint256 beginTimeSeconds; // Auction begin unix timestamp: sellOrder.makerAssetData
uint256 endTimeSeconds; // Auction end unix timestamp: sellOrder.expiryTimeSeconds
uint256 beginAmount; // Auction begin amount: sellOrder.makerAssetData
uint256 endAmount; // Auction end amount: sellOrder.takerAssetAmount
uint256 currentAmount; // Calculated amount given block.timestamp
uint256 currentTimeSeconds; // block.timestamp
}
constructor (address _exchange)
public
{
EXCHANGE = IExchange(_exchange);
}
/// @dev Matches the buy and sell orders at an amount given the following: the current block time, the auction
/// start time and the auction begin amount. The sell order is a an order at the lowest amount
/// at the end of the auction. Excess from the match is transferred to the seller.
/// Over time the price moves from beginAmount to endAmount given the current block.timestamp.
/// sellOrder.expiryTimeSeconds is the end time of the auction.
/// sellOrder.takerAssetAmount is the end amount of the auction (lowest possible amount).
/// sellOrder.makerAssetData is the ABI encoded Asset Proxy data with the following data appended
/// buyOrder.makerAssetData is the buyers bid on the auction, must meet the amount for the current block timestamp
/// (uint256 beginTimeSeconds, uint256 beginAmount).
/// This function reverts in the following scenarios:
/// * Auction has not started (auctionDetails.currentTimeSeconds < auctionDetails.beginTimeSeconds)
/// * Auction has expired (auctionDetails.endTimeSeconds < auctionDetails.currentTimeSeconds)
/// * Amount is invalid: Buy order amount is too low (buyOrder.makerAssetAmount < auctionDetails.currentAmount)
/// * Amount is invalid: Invalid begin amount (auctionDetails.beginAmount > auctionDetails.endAmount)
/// * Any failure in the 0x Match Orders
/// @param buyOrder The Buyer's order. This order is for the current expected price of the auction.
/// @param sellOrder The Seller's order. This order is for the lowest amount (at the end of the auction).
/// @param buySignature Proof that order was created by the buyer.
/// @param sellSignature Proof that order was created by the seller.
/// @return matchedFillResults amounts filled and fees paid by maker and taker of matched orders.
function matchOrders(
LibOrder.Order memory buyOrder,
LibOrder.Order memory sellOrder,
bytes memory buySignature,
bytes memory sellSignature
)
public
returns (LibFillResults.MatchedFillResults memory matchedFillResults)
{
AuctionDetails memory auctionDetails = getAuctionDetails(sellOrder);
// Ensure the auction has not yet started
require(
auctionDetails.currentTimeSeconds >= auctionDetails.beginTimeSeconds,
"AUCTION_NOT_STARTED"
);
// Ensure the auction has not expired. This will fail later in 0x but we can save gas by failing early
require(
sellOrder.expirationTimeSeconds > auctionDetails.currentTimeSeconds,
"AUCTION_EXPIRED"
);
// Validate the buyer amount is greater than the current auction amount
require(
buyOrder.makerAssetAmount >= auctionDetails.currentAmount,
"INVALID_AMOUNT"
);
// Match orders, maximally filling `buyOrder`
matchedFillResults = EXCHANGE.matchOrders(
buyOrder,
sellOrder,
buySignature,
sellSignature
);
// The difference in sellOrder.takerAssetAmount and current amount is given as spread to the matcher
// This may include additional spread from the buyOrder.makerAssetAmount and the currentAmount.
// e.g currentAmount is 30, sellOrder.takerAssetAmount is 10 and buyOrder.makerAssetamount is 40.
// 10 (40-30) is returned to the buyer, 20 (30-10) sent to the seller and 10 has previously
// been transferred to the seller during matchOrders
uint256 leftMakerAssetSpreadAmount = matchedFillResults.leftMakerAssetSpreadAmount;
if (leftMakerAssetSpreadAmount > 0) {
// ERC20 Asset data itself is encoded as follows:
//
// | Area | Offset | Length | Contents |
// |----------|--------|---------|-------------------------------------|
// | Header | 0 | 4 | function selector |
// | Params | | 1 * 32 | function parameters: |
// | | 4 | 12 | 1. token address padding |
// | | 16 | 20 | 2. token address |
bytes memory assetData = sellOrder.takerAssetData;
address token = assetData.readAddress(16);
// Calculate the excess from the buy order. This can occur if the buyer sends in a higher
// amount than the calculated current amount
uint256 buyerExcessAmount = safeSub(buyOrder.makerAssetAmount, auctionDetails.currentAmount);
uint256 sellerExcessAmount = safeSub(leftMakerAssetSpreadAmount, buyerExcessAmount);
// Return the difference between auctionDetails.currentAmount and sellOrder.takerAssetAmount
// to the seller
if (sellerExcessAmount > 0) {
IERC20Token(token).transfer(sellOrder.makerAddress, sellerExcessAmount);
}
// Return the difference between buyOrder.makerAssetAmount and auctionDetails.currentAmount
// to the buyer
if (buyerExcessAmount > 0) {
IERC20Token(token).transfer(buyOrder.makerAddress, buyerExcessAmount);
}
}
return matchedFillResults;
}
/// @dev Calculates the Auction Details for the given order
/// @param order The sell order
/// @return AuctionDetails
function getAuctionDetails(
LibOrder.Order memory order
)
public
returns (AuctionDetails memory auctionDetails)
{
uint256 makerAssetDataLength = order.makerAssetData.length;
// It is unknown the encoded data of makerAssetData, we assume the last 64 bytes
// are the Auction Details encoding.
// Auction Details is encoded as follows:
//
// | Area | Offset | Length | Contents |
// |----------|--------|---------|-------------------------------------|
// | Params | | 2 * 32 | parameters: |
// | | -64 | 32 | 1. auction begin unix timestamp |
// | | -32 | 32 | 2. auction begin begin amount |
// ERC20 asset data length is 4+32, 64 for auction details results in min length 100
require(
makerAssetDataLength >= 100,
"INVALID_ASSET_DATA"
);
uint256 auctionBeginTimeSeconds = order.makerAssetData.readUint256(makerAssetDataLength - 64);
uint256 auctionBeginAmount = order.makerAssetData.readUint256(makerAssetDataLength - 32);
// Ensure the auction has a valid begin time
require(
order.expirationTimeSeconds > auctionBeginTimeSeconds,
"INVALID_BEGIN_TIME"
);
uint256 auctionDurationSeconds = order.expirationTimeSeconds-auctionBeginTimeSeconds;
// Ensure the auction goes from high to low
uint256 minAmount = order.takerAssetAmount;
require(
auctionBeginAmount > minAmount,
"INVALID_AMOUNT"
);
uint256 amountDelta = auctionBeginAmount-minAmount;
// solhint-disable-next-line not-rely-on-time
uint256 timestamp = block.timestamp;
auctionDetails.beginTimeSeconds = auctionBeginTimeSeconds;
auctionDetails.endTimeSeconds = order.expirationTimeSeconds;
auctionDetails.beginAmount = auctionBeginAmount;
auctionDetails.endAmount = minAmount;
auctionDetails.currentTimeSeconds = timestamp;
uint256 remainingDurationSeconds = order.expirationTimeSeconds-timestamp;
if (timestamp < auctionBeginTimeSeconds) {
// If the auction has not yet begun the current amount is the auctionBeginAmount
auctionDetails.currentAmount = auctionBeginAmount;
} else if (timestamp >= order.expirationTimeSeconds) {
// If the auction has ended the current amount is the minAmount.
// Auction end time is guaranteed by 0x Exchange due to the order expiration
auctionDetails.currentAmount = minAmount;
} else {
auctionDetails.currentAmount = safeAdd(
minAmount,
safeDiv(
safeMul(remainingDurationSeconds, amountDelta),
auctionDurationSeconds
)
);
}
return auctionDetails;
}
}

View File

@@ -18,10 +18,10 @@
pragma solidity 0.4.24;
import "../../utils/LibBytes/LibBytes.sol";
import "../../utils/Ownable/Ownable.sol";
import "../../tokens/ERC20Token/IERC20Token.sol";
import "../../tokens/ERC721Token/IERC721Token.sol";
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol";
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
import "@0x/contracts-tokens/contracts/tokens/ERC721Token/IERC721Token.sol";
import "./libs/LibConstants.sol";
import "./mixins/MAssets.sol";

View File

@@ -21,10 +21,10 @@ pragma experimental ABIEncoderV2;
import "./libs/LibConstants.sol";
import "./mixins/MExchangeWrapper.sol";
import "../../protocol/Exchange/libs/LibAbiEncoder.sol";
import "../../protocol/Exchange/libs/LibOrder.sol";
import "../../protocol/Exchange/libs/LibFillResults.sol";
import "../../protocol/Exchange/libs/LibMath.sol";
import "@0x/contracts-libs/contracts/libs/LibAbiEncoder.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibMath.sol";
contract MixinExchangeWrapper is

View File

@@ -24,10 +24,10 @@ import "./mixins/MWeth.sol";
import "./mixins/MAssets.sol";
import "./mixins/MExchangeWrapper.sol";
import "./interfaces/IForwarderCore.sol";
import "../../utils/LibBytes/LibBytes.sol";
import "../../protocol/Exchange/libs/LibOrder.sol";
import "../../protocol/Exchange/libs/LibFillResults.sol";
import "../../protocol/Exchange/libs/LibMath.sol";
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibMath.sol";
contract MixinForwarderCore is

View File

@@ -18,7 +18,7 @@
pragma solidity 0.4.24;
import "../../protocol/Exchange/libs/LibMath.sol";
import "@0x/contracts-libs/contracts/libs/LibMath.sol";
import "./libs/LibConstants.sol";
import "./mixins/MWeth.sol";

View File

@@ -19,8 +19,8 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../../../protocol/Exchange/libs/LibOrder.sol";
import "../../../protocol/Exchange/libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
contract IForwarderCore {

View File

@@ -18,10 +18,10 @@
pragma solidity 0.4.24;
import "../../../utils/LibBytes/LibBytes.sol";
import "../../../protocol/Exchange/interfaces/IExchange.sol";
import "../../../tokens/EtherToken/IEtherToken.sol";
import "../../../tokens/ERC20Token/IERC20Token.sol";
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
import "@0x/contracts-tokens/contracts/tokens/EtherToken/IEtherToken.sol";
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
contract LibConstants {

View File

@@ -19,8 +19,8 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../../../protocol/Exchange/libs/LibOrder.sol";
import "../../../protocol/Exchange/libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
contract MExchangeWrapper {

View File

@@ -0,0 +1,93 @@
{
"name": "@0x/contracts-extensions",
"version": "1.0.2",
"engines": {
"node": ">=6.12"
},
"description": "Smart contract extensions of 0x protocol",
"main": "lib/src/index.js",
"directories": {
"test": "test"
},
"scripts": {
"build": "yarn pre_build && tsc -b",
"build:ci": "yarn build",
"pre_build": "run-s compile generate_contract_wrappers",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s build test",
"test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
"test:profiler": "SOLIDITY_PROFILER=true run-s build run_mocha profiler:report:html",
"test:trace": "SOLIDITY_REVERT_TRACE=true run-s build run_mocha",
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe 'lib/test/**/*.js' --timeout 100000 --bail --exit",
"compile": "sol-compiler --contracts-dir contracts",
"clean": "shx rm -rf lib generated-artifacts generated-wrappers",
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers",
"lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
"coverage:report:text": "istanbul report text",
"coverage:report:html": "istanbul report html && open coverage/index.html",
"profiler:report:html": "istanbul report html && open coverage/index.html",
"coverage:report:lcov": "istanbul report lcov",
"test:circleci": "yarn test",
"lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol"
},
"config": {
"abis": "generated-artifacts/@(DutchAuction|Forwarder).json"
},
"repository": {
"type": "git",
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/0xProject/0x-monorepo/issues"
},
"homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md",
"devDependencies": {
"@0x/abi-gen": "^1.0.19",
"@0x/contracts-test-utils": "^1.0.2",
"@0x/dev-utils": "^1.0.21",
"@0x/sol-compiler": "^1.1.16",
"@0x/sol-cov": "^2.1.16",
"@0x/subproviders": "^2.1.8",
"@0x/tslint-config": "^2.0.0",
"@types/bn.js": "^4.11.0",
"@types/lodash": "4.14.104",
"@types/node": "*",
"@types/yargs": "^10.0.0",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^2.0.1",
"dirty-chai": "^2.0.1",
"ethereumjs-abi": "0.6.5",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
"solc": "^0.4.24",
"solhint": "^1.4.1",
"tslint": "5.11.0",
"typescript": "3.0.1",
"yargs": "^10.0.3"
},
"dependencies": {
"@0x/base-contract": "^3.0.10",
"@0x/contracts-interfaces": "^1.0.2",
"@0x/contracts-libs": "^1.0.2",
"@0x/contracts-protocol": "^2.1.59",
"@0x/contracts-tokens": "^1.0.2",
"@0x/contracts-utils": "^1.0.2",
"@0x/order-utils": "^3.0.7",
"@0x/types": "^1.4.1",
"@0x/typescript-typings": "^3.0.6",
"@0x/utils": "^2.0.8",
"@0x/web3-wrapper": "^3.2.1",
"@types/js-combinatorics": "^0.5.29",
"bn.js": "^4.11.8",
"ethereum-types": "^1.1.4",
"ethereumjs-util": "^5.1.1",
"lodash": "^4.17.5"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -0,0 +1,9 @@
import { ContractArtifact } from 'ethereum-types';
import * as DutchAuction from '../../generated-artifacts/DutchAuction.json';
import * as Forwarder from '../../generated-artifacts/Forwarder.json';
export const artifacts = {
DutchAuction: DutchAuction as ContractArtifact,
Forwarder: Forwarder as ContractArtifact,
};

View File

@@ -0,0 +1,2 @@
export * from './artifacts';
export * from './wrappers';

View File

@@ -0,0 +1,2 @@
export * from '../../generated-wrappers/dutch_auction';
export * from '../../generated-wrappers/forwarder';

View File

@@ -0,0 +1,458 @@
import {
artifacts as protocolArtifacts,
ERC20Wrapper,
ERC721Wrapper,
ExchangeContract,
ExchangeWrapper,
} from '@0x/contracts-protocol';
import {
chaiSetup,
constants,
ContractName,
ERC20BalancesByOwner,
expectTransactionFailedAsync,
getLatestBlockTimestampAsync,
OrderFactory,
provider,
txDefaults,
web3Wrapper,
} from '@0x/contracts-test-utils';
import {
artifacts as tokensArtifacts,
DummyERC20TokenContract,
DummyERC721TokenContract,
WETH9Contract,
} from '@0x/contracts-tokens';
import { BlockchainLifecycle } from '@0x/dev-utils';
import { assetDataUtils, generatePseudoRandomSalt } from '@0x/order-utils';
import { RevertReason, SignedOrder } from '@0x/types';
import { BigNumber } from '@0x/utils';
import { Web3Wrapper } from '@0x/web3-wrapper';
import * as chai from 'chai';
import ethAbi = require('ethereumjs-abi');
import * as ethUtil from 'ethereumjs-util';
import * as _ from 'lodash';
import { DutchAuctionContract } from '../../generated-wrappers/dutch_auction';
import { artifacts } from '../../src/artifacts';
chaiSetup.configure();
const expect = chai.expect;
const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper);
const DECIMALS_DEFAULT = 18;
describe(ContractName.DutchAuction, () => {
let makerAddress: string;
let owner: string;
let takerAddress: string;
let feeRecipientAddress: string;
let defaultMakerAssetAddress: string;
let zrxToken: DummyERC20TokenContract;
let erc20TokenA: DummyERC20TokenContract;
let erc721Token: DummyERC721TokenContract;
let dutchAuctionContract: DutchAuctionContract;
let wethContract: WETH9Contract;
let sellerOrderFactory: OrderFactory;
let buyerOrderFactory: OrderFactory;
let erc20Wrapper: ERC20Wrapper;
let erc20Balances: ERC20BalancesByOwner;
let currentBlockTimestamp: number;
let auctionBeginTimeSeconds: BigNumber;
let auctionEndTimeSeconds: BigNumber;
let auctionBeginAmount: BigNumber;
let auctionEndAmount: BigNumber;
let sellOrder: SignedOrder;
let buyOrder: SignedOrder;
let erc721MakerAssetIds: BigNumber[];
const tenMinutesInSeconds = 10 * 60;
function extendMakerAssetData(makerAssetData: string, beginTimeSeconds: BigNumber, beginAmount: BigNumber): string {
return ethUtil.bufferToHex(
Buffer.concat([
ethUtil.toBuffer(makerAssetData),
ethUtil.toBuffer(
(ethAbi as any).rawEncode(
['uint256', 'uint256'],
[beginTimeSeconds.toString(), beginAmount.toString()],
),
),
]),
);
}
before(async () => {
await blockchainLifecycle.startAsync();
const accounts = await web3Wrapper.getAvailableAddressesAsync();
const usedAddresses = ([owner, makerAddress, takerAddress, feeRecipientAddress] = accounts);
erc20Wrapper = new ERC20Wrapper(provider, usedAddresses, owner);
const numDummyErc20ToDeploy = 2;
[erc20TokenA, zrxToken] = await erc20Wrapper.deployDummyTokensAsync(
numDummyErc20ToDeploy,
constants.DUMMY_TOKEN_DECIMALS,
);
const erc20Proxy = await erc20Wrapper.deployProxyAsync();
await erc20Wrapper.setBalancesAndAllowancesAsync();
const erc721Wrapper = new ERC721Wrapper(provider, usedAddresses, owner);
[erc721Token] = await erc721Wrapper.deployDummyTokensAsync();
const erc721Proxy = await erc721Wrapper.deployProxyAsync();
await erc721Wrapper.setBalancesAndAllowancesAsync();
const erc721Balances = await erc721Wrapper.getBalancesAsync();
erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address];
wethContract = await WETH9Contract.deployFrom0xArtifactAsync(tokensArtifacts.WETH9, provider, txDefaults);
erc20Wrapper.addDummyTokenContract(wethContract as any);
const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync(
protocolArtifacts.Exchange,
provider,
txDefaults,
zrxAssetData,
);
const exchangeWrapper = new ExchangeWrapper(exchangeInstance, provider);
await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner);
await exchangeWrapper.registerAssetProxyAsync(erc721Proxy.address, owner);
await erc20Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, {
from: owner,
});
await erc721Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, {
from: owner,
});
const dutchAuctionInstance = await DutchAuctionContract.deployFrom0xArtifactAsync(
artifacts.DutchAuction,
provider,
txDefaults,
exchangeInstance.address,
);
dutchAuctionContract = new DutchAuctionContract(
dutchAuctionInstance.abi,
dutchAuctionInstance.address,
provider,
);
defaultMakerAssetAddress = erc20TokenA.address;
const defaultTakerAssetAddress = wethContract.address;
// Set up taker WETH balance and allowance
await web3Wrapper.awaitTransactionSuccessAsync(
await wethContract.deposit.sendTransactionAsync({
from: takerAddress,
value: Web3Wrapper.toBaseUnitAmount(new BigNumber(50), DECIMALS_DEFAULT),
}),
);
await web3Wrapper.awaitTransactionSuccessAsync(
await wethContract.approve.sendTransactionAsync(
erc20Proxy.address,
constants.UNLIMITED_ALLOWANCE_IN_BASE_UNITS,
{ from: takerAddress },
),
);
web3Wrapper.abiDecoder.addABI(exchangeInstance.abi);
web3Wrapper.abiDecoder.addABI(zrxToken.abi);
erc20Wrapper.addTokenOwnerAddress(dutchAuctionContract.address);
currentBlockTimestamp = await getLatestBlockTimestampAsync();
// Default auction begins 10 minutes ago
auctionBeginTimeSeconds = new BigNumber(currentBlockTimestamp).minus(tenMinutesInSeconds);
// Default auction ends 10 from now
auctionEndTimeSeconds = new BigNumber(currentBlockTimestamp).plus(tenMinutesInSeconds);
auctionBeginAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(10), DECIMALS_DEFAULT);
auctionEndAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), DECIMALS_DEFAULT);
// Default sell order and buy order are exact mirrors
const sellerDefaultOrderParams = {
salt: generatePseudoRandomSalt(),
exchangeAddress: exchangeInstance.address,
makerAddress,
feeRecipientAddress,
// taker address or sender address should be set to the ducth auction contract
takerAddress: dutchAuctionContract.address,
makerAssetData: extendMakerAssetData(
assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
auctionBeginTimeSeconds,
auctionBeginAmount,
),
takerAssetData: assetDataUtils.encodeERC20AssetData(defaultTakerAssetAddress),
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(new BigNumber(200), DECIMALS_DEFAULT),
takerAssetAmount: auctionEndAmount,
expirationTimeSeconds: auctionEndTimeSeconds,
makerFee: constants.ZERO_AMOUNT,
takerFee: constants.ZERO_AMOUNT,
};
// Default buy order is for the auction begin price
const buyerDefaultOrderParams = {
...sellerDefaultOrderParams,
makerAddress: takerAddress,
makerAssetData: sellerDefaultOrderParams.takerAssetData,
takerAssetData: sellerDefaultOrderParams.makerAssetData,
makerAssetAmount: auctionBeginAmount,
takerAssetAmount: sellerDefaultOrderParams.makerAssetAmount,
};
const makerPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(makerAddress)];
const takerPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(takerAddress)];
sellerOrderFactory = new OrderFactory(makerPrivateKey, sellerDefaultOrderParams);
buyerOrderFactory = new OrderFactory(takerPrivateKey, buyerDefaultOrderParams);
});
after(async () => {
await blockchainLifecycle.revertAsync();
});
beforeEach(async () => {
await blockchainLifecycle.startAsync();
erc20Balances = await erc20Wrapper.getBalancesAsync();
sellOrder = await sellerOrderFactory.newSignedOrderAsync();
buyOrder = await buyerOrderFactory.newSignedOrderAsync();
});
afterEach(async () => {
await blockchainLifecycle.revertAsync();
});
describe('matchOrders', () => {
it('should be worth the begin price at the begining of the auction', async () => {
auctionBeginTimeSeconds = new BigNumber(currentBlockTimestamp + 2);
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
makerAssetData: extendMakerAssetData(
assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
auctionBeginTimeSeconds,
auctionBeginAmount,
),
});
const auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
expect(auctionDetails.currentAmount).to.be.bignumber.equal(auctionBeginAmount);
expect(auctionDetails.beginAmount).to.be.bignumber.equal(auctionBeginAmount);
});
it('should be be worth the end price at the end of the auction', async () => {
auctionBeginTimeSeconds = new BigNumber(currentBlockTimestamp - tenMinutesInSeconds * 2);
auctionEndTimeSeconds = new BigNumber(currentBlockTimestamp - tenMinutesInSeconds);
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
makerAssetData: extendMakerAssetData(
assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
auctionBeginTimeSeconds,
auctionBeginAmount,
),
expirationTimeSeconds: auctionEndTimeSeconds,
});
const auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
expect(auctionDetails.currentAmount).to.be.bignumber.equal(auctionEndAmount);
expect(auctionDetails.beginAmount).to.be.bignumber.equal(auctionBeginAmount);
});
it('should match orders at current amount and send excess to buyer', async () => {
const beforeAuctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
buyOrder = await buyerOrderFactory.newSignedOrderAsync({
makerAssetAmount: beforeAuctionDetails.currentAmount.times(2),
});
await web3Wrapper.awaitTransactionSuccessAsync(
await dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
);
const afterAuctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
const newBalances = await erc20Wrapper.getBalancesAsync();
expect(newBalances[dutchAuctionContract.address][wethContract.address]).to.be.bignumber.equal(
constants.ZERO_AMOUNT,
);
// HACK gte used here due to a bug in ganache where the timestamp can change
// between multiple calls to the same block. Which can move the amount in our case
// ref: https://github.com/trufflesuite/ganache-core/issues/111
expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(afterAuctionDetails.currentAmount),
);
expect(newBalances[takerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[takerAddress][wethContract.address].minus(beforeAuctionDetails.currentAmount),
);
});
it('maker fees on sellOrder are paid to the fee receipient', async () => {
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
makerFee: new BigNumber(1),
});
const txHash = await dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
);
await web3Wrapper.awaitTransactionSuccessAsync(txHash);
const afterAuctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
const newBalances = await erc20Wrapper.getBalancesAsync();
expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(afterAuctionDetails.currentAmount),
);
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
erc20Balances[feeRecipientAddress][zrxToken.address].plus(sellOrder.makerFee),
);
});
it('maker fees on buyOrder are paid to the fee receipient', async () => {
buyOrder = await buyerOrderFactory.newSignedOrderAsync({
makerFee: new BigNumber(1),
});
const txHash = await dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
);
await web3Wrapper.awaitTransactionSuccessAsync(txHash);
const newBalances = await erc20Wrapper.getBalancesAsync();
const afterAuctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(afterAuctionDetails.currentAmount),
);
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
erc20Balances[feeRecipientAddress][zrxToken.address].plus(buyOrder.makerFee),
);
});
it('should revert when auction expires', async () => {
auctionBeginTimeSeconds = new BigNumber(currentBlockTimestamp - tenMinutesInSeconds * 2);
auctionEndTimeSeconds = new BigNumber(currentBlockTimestamp - tenMinutesInSeconds);
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
expirationTimeSeconds: auctionEndTimeSeconds,
makerAssetData: extendMakerAssetData(
assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
auctionBeginTimeSeconds,
auctionBeginAmount,
),
});
return expectTransactionFailedAsync(
dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
RevertReason.AuctionExpired,
);
});
it('cannot be filled for less than the current price', async () => {
buyOrder = await buyerOrderFactory.newSignedOrderAsync({
makerAssetAmount: sellOrder.takerAssetAmount,
});
return expectTransactionFailedAsync(
dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
RevertReason.AuctionInvalidAmount,
);
});
it('auction begin amount must be higher than final amount ', async () => {
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
takerAssetAmount: auctionBeginAmount.plus(1),
});
return expectTransactionFailedAsync(
dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
RevertReason.AuctionInvalidAmount,
);
});
it('begin time is less than end time', async () => {
auctionBeginTimeSeconds = new BigNumber(auctionEndTimeSeconds).plus(tenMinutesInSeconds);
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
expirationTimeSeconds: auctionEndTimeSeconds,
makerAssetData: extendMakerAssetData(
assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
auctionBeginTimeSeconds,
auctionBeginAmount,
),
});
return expectTransactionFailedAsync(
dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
RevertReason.AuctionInvalidBeginTime,
);
});
it('asset data contains auction parameters', async () => {
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
makerAssetData: assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
});
return expectTransactionFailedAsync(
dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
RevertReason.InvalidAssetData,
);
});
describe('ERC721', () => {
it('should match orders when ERC721', async () => {
const makerAssetId = erc721MakerAssetIds[0];
sellOrder = await sellerOrderFactory.newSignedOrderAsync({
makerAssetAmount: new BigNumber(1),
makerAssetData: extendMakerAssetData(
assetDataUtils.encodeERC721AssetData(erc721Token.address, makerAssetId),
auctionBeginTimeSeconds,
auctionBeginAmount,
),
});
buyOrder = await buyerOrderFactory.newSignedOrderAsync({
takerAssetAmount: new BigNumber(1),
takerAssetData: sellOrder.makerAssetData,
});
await web3Wrapper.awaitTransactionSuccessAsync(
await dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
buyOrder.signature,
sellOrder.signature,
{
from: takerAddress,
},
),
);
const afterAuctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
const newBalances = await erc20Wrapper.getBalancesAsync();
// HACK gte used here due to a bug in ganache where the timestamp can change
// between multiple calls to the same block. Which can move the amount in our case
// ref: https://github.com/trufflesuite/ganache-core/issues/111
expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(afterAuctionDetails.currentAmount),
);
const newOwner = await erc721Token.ownerOf.callAsync(makerAssetId);
expect(newOwner).to.be.bignumber.equal(takerAddress);
});
});
});
});

View File

@@ -1,3 +1,29 @@
import {
artifacts as protocolArtifacts,
ERC20Wrapper,
ERC721Wrapper,
ExchangeContract,
ExchangeWrapper,
} from '@0x/contracts-protocol';
import {
chaiSetup,
constants,
ContractName,
ERC20BalancesByOwner,
expectContractCreationFailedAsync,
expectTransactionFailedAsync,
OrderFactory,
provider,
sendTransactionResult,
txDefaults,
web3Wrapper,
} from '@0x/contracts-test-utils';
import {
artifacts as tokenArtifacts,
DummyERC20TokenContract,
DummyERC721TokenContract,
WETH9Contract,
} from '@0x/contracts-tokens';
import { BlockchainLifecycle } from '@0x/dev-utils';
import { assetDataUtils } from '@0x/order-utils';
import { RevertReason, SignedOrder } from '@0x/types';
@@ -6,26 +32,10 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
import * as chai from 'chai';
import { TransactionReceiptWithDecodedLogs } from 'ethereum-types';
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
import { ExchangeContract } from '../../generated-wrappers/exchange';
import { ForwarderContract } from '../../generated-wrappers/forwarder';
import { WETH9Contract } from '../../generated-wrappers/weth9';
import { artifacts } from '../../src/artifacts';
import {
expectContractCreationFailedAsync,
expectTransactionFailedAsync,
sendTransactionResult,
} from '../utils/assertions';
import { chaiSetup } from '../utils/chai_setup';
import { constants } from '../utils/constants';
import { ERC20Wrapper } from '../utils/erc20_wrapper';
import { ERC721Wrapper } from '../utils/erc721_wrapper';
import { ExchangeWrapper } from '../utils/exchange_wrapper';
import { ForwarderWrapper } from '../utils/forwarder_wrapper';
import { OrderFactory } from '../utils/order_factory';
import { ContractName, ERC20BalancesByOwner } from '../utils/types';
import { provider, txDefaults, web3Wrapper } from '../utils/web3_wrapper';
chaiSetup.configure();
const expect = chai.expect;
@@ -91,14 +101,14 @@ describe(ContractName.Forwarder, () => {
const erc721Balances = await erc721Wrapper.getBalancesAsync();
erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address];
wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults);
wethContract = await WETH9Contract.deployFrom0xArtifactAsync(tokenArtifacts.WETH9, provider, txDefaults);
weth = new DummyERC20TokenContract(wethContract.abi, wethContract.address, provider);
erc20Wrapper.addDummyTokenContract(weth);
wethAssetData = assetDataUtils.encodeERC20AssetData(wethContract.address);
zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync(
artifacts.Exchange,
protocolArtifacts.Exchange,
provider,
txDefaults,
zrxAssetData,
@@ -169,7 +179,7 @@ describe(ContractName.Forwarder, () => {
describe('constructor', () => {
it('should revert if assetProxy is unregistered', async () => {
const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync(
artifacts.Exchange,
protocolArtifacts.Exchange,
provider,
txDefaults,
zrxAssetData,

View File

@@ -0,0 +1,17 @@
import { env, EnvVars } from '@0x/dev-utils';
import { coverage, profiler, provider } from '@0x/contracts-test-utils';
before('start web3 provider', () => {
provider.start();
});
after('generate coverage report', async () => {
if (env.parseBoolean(EnvVars.SolidityCoverage)) {
const coverageSubprovider = coverage.getCoverageSubproviderSingleton();
await coverageSubprovider.writeCoverageAsync();
}
if (env.parseBoolean(EnvVars.SolidityProfiler)) {
const profilerSubprovider = profiler.getProfilerSubproviderSingleton();
await profilerSubprovider.writeProfilerOutputAsync();
}
provider.stop();
});

View File

@@ -1,3 +1,6 @@
import { artifacts as protocolArtifacts } from '@0x/contracts-protocol';
import { constants, formatters, LogDecoder, MarketSellOrders } from '@0x/contracts-test-utils';
import { artifacts as tokensArtifacts } from '@0x/contracts-tokens';
import { SignedOrder } from '@0x/types';
import { BigNumber } from '@0x/utils';
import { Web3Wrapper } from '@0x/web3-wrapper';
@@ -5,11 +8,7 @@ import { Provider, TransactionReceiptWithDecodedLogs, TxDataPayable } from 'ethe
import * as _ from 'lodash';
import { ForwarderContract } from '../../generated-wrappers/forwarder';
import { constants } from './constants';
import { formatters } from './formatters';
import { LogDecoder } from './log_decoder';
import { MarketSellOrders } from './types';
import { artifacts } from '../../src/artifacts';
export class ForwarderWrapper {
private readonly _web3Wrapper: Web3Wrapper;
@@ -61,7 +60,11 @@ export class ForwarderWrapper {
constructor(contractInstance: ForwarderContract, provider: Provider) {
this._forwarderContract = contractInstance;
this._web3Wrapper = new Web3Wrapper(provider);
this._logDecoder = new LogDecoder(this._web3Wrapper);
this._logDecoder = new LogDecoder(this._web3Wrapper, {
...artifacts,
...tokensArtifacts,
...protocolArtifacts,
});
}
public async marketSellOrdersWithEthAsync(
orders: SignedOrder[],

View File

@@ -0,0 +1,11 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
"outDir": "lib",
"rootDir": ".",
"resolveJsonModule": true
},
"include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"],
"files": ["./generated-artifacts/DutchAuction.json", "./generated-artifacts/Forwarder.json"],
"exclude": ["./deploy/solc/solc_bin"]
}

View File

@@ -0,0 +1,6 @@
{
"extends": ["@0x/tslint-config"],
"rules": {
"custom-no-magic-numbers": false
}
}

View File

@@ -0,0 +1,11 @@
[
{
"timestamp": 1544741676,
"version": "1.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
}
]

View File

@@ -0,0 +1,10 @@
<!--
changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
Edit the package's CHANGELOG.json file only.
-->
CHANGELOG
## v1.0.2 - _December 13, 2018_
* Dependencies updated

View File

@@ -0,0 +1,72 @@
## Contract interfaces
Smart contract interfaces of the 0x protocol.
## Usage
Contracts that make up and interact with version 2.0.0 of the protocol can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories:
* [protocol](./contracts/protocol)
* This directory contains the contract interfaces that make up version 2.0.0. A full specification can be found [here](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).
## Bug bounty
A bug bounty for the 2.0.0 contracts is ongoing! Instructions can be found [here](https://0xproject.com/wiki#Bug-Bounty).
## Contributing
We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
For proposals regarding the 0x protocol's smart contract architecture, message format, or additional functionality, go to the [0x Improvement Proposals (ZEIPs)](https://github.com/0xProject/ZEIPs) repository and follow the contribution guidelines provided therein.
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
### Install Dependencies
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
```bash
yarn config set workspaces-experimental true
```
Then install dependencies
```bash
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
PKG=@0x/contracts-interfaces yarn build
```
Or continuously rebuild on change:
```bash
PKG=@0x/contracts-interfaces yarn watch
```
### Clean
```bash
yarn clean
```
### Lint
```bash
yarn lint
```
### Run Tests
```bash
yarn test
```
#### Testing options
Contracts testing options like coverage, profiling, revert traces or backing node choosing - are described [here](../TESTING.md).

View File

@@ -0,0 +1,35 @@
{
"artifactsDir": "./generated-artifacts",
"contractsDir": "./contracts",
"compilerSettings": {
"optimizer": {
"enabled": true,
"runs": 1000000
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode.object",
"evm.bytecode.sourceMap",
"evm.deployedBytecode.object",
"evm.deployedBytecode.sourceMap"
]
}
}
},
"contracts": [
"IAssetData",
"IAssetProxy",
"IAuthorizable",
"IAssetProxyDispatcher",
"IExchange",
"IExchangeCore",
"IMatchOrders",
"ISignatureValidator",
"ITransactions",
"IValidator",
"IWallet",
"IWrapperFunctions"
]
}

View File

@@ -18,6 +18,7 @@
// solhint-disable
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
// @dev Interface of the asset proxy's assetData.
@@ -26,15 +27,18 @@ pragma solidity 0.4.24;
interface IAssetData {
function ERC20Token(address tokenContract)
external
pure;
external;
function ERC721Token(
address tokenContract,
uint256 tokenId,
bytes receiverData
uint256 tokenId
)
external
pure;
external;
function MultiAsset(
uint256[] amounts,
bytes[] nestedAssetData
)
external;
}

View File

@@ -18,7 +18,7 @@
pragma solidity 0.4.24;
import "../../../utils/Ownable/IOwnable.sol";
import "@0x/contracts-utils/contracts/utils/Ownable/IOwnable.sol";
contract IAuthorizable is

View File

@@ -19,8 +19,8 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../libs/LibOrder.sol";
import "../libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
contract IExchangeCore {

View File

@@ -18,8 +18,8 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../libs/LibOrder.sol";
import "../libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
contract IMatchOrders {

View File

@@ -19,8 +19,8 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../libs/LibOrder.sol";
import "../libs/LibFillResults.sol";
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
import "@0x/contracts-libs/contracts/libs/LibFillResults.sol";
contract IWrapperFunctions {

View File

@@ -0,0 +1,56 @@
{
"name": "@0x/contracts-interfaces",
"version": "1.0.2",
"engines": {
"node": ">=6.12"
},
"description": "Smart contract interfaces of 0x protocol",
"main": "lib/src/index.js",
"scripts": {
"build": "yarn pre_build && tsc -b",
"build:ci": "yarn build",
"pre_build": "run-s compile generate_contract_wrappers",
"compile": "sol-compiler --contracts-dir contracts",
"clean": "shx rm -rf lib generated-artifacts generated-wrappers",
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers",
"lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
"lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol"
},
"config": {
"abis": "generated-artifacts/@(IAssetData|IAssetProxy|IAuthorizable|IAssetProxyDispatcher|IExchange|IExchangeCore|IMatchOrders|ISignatureValidator|ITransactions|IValidator|IWallet|IWrapperFunctions).json"
},
"repository": {
"type": "git",
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/0xProject/0x-monorepo/issues"
},
"homepage": "https://github.com/0xProject/0x-monorepo/contracts/interfaces/README.md",
"devDependencies": {
"@0x/abi-gen": "^1.0.19",
"@0x/sol-compiler": "^1.1.16",
"@0x/tslint-config": "^2.0.0",
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
"solhint": "^1.4.1",
"tslint": "5.11.0",
"typescript": "3.0.1",
"yargs": "^10.0.3"
},
"dependencies": {
"@0x/base-contract": "^3.0.10",
"@0x/contracts-libs": "^1.0.2",
"@0x/contracts-utils": "^1.0.2",
"@0x/types": "^1.4.1",
"@0x/typescript-typings": "^3.0.6",
"@0x/utils": "^2.0.8",
"@0x/web3-wrapper": "^3.2.1",
"ethereum-types": "^1.1.4",
"lodash": "^4.17.5"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -0,0 +1,29 @@
import { ContractArtifact } from 'ethereum-types';
import * as IAssetData from '../../generated-artifacts/IAssetData.json';
import * as IAssetProxy from '../../generated-artifacts/IAssetProxy.json';
import * as IAssetProxyDispatcher from '../../generated-artifacts/IAssetProxyDispatcher.json';
import * as IAuthorizable from '../../generated-artifacts/IAuthorizable.json';
import * as IExchange from '../../generated-artifacts/IExchange.json';
import * as IExchangeCore from '../../generated-artifacts/IExchangeCore.json';
import * as IMatchOrders from '../../generated-artifacts/IMatchOrders.json';
import * as ISignatureValidator from '../../generated-artifacts/ISignatureValidator.json';
import * as ITransactions from '../../generated-artifacts/ITransactions.json';
import * as IValidator from '../../generated-artifacts/IValidator.json';
import * as IWallet from '../../generated-artifacts/IWallet.json';
import * as IWrapperFunctions from '../../generated-artifacts/IWrapperFunctions.json';
export const artifacts = {
IAssetProxyDispatcher: IAssetProxyDispatcher as ContractArtifact,
IAuthorizable: IAuthorizable as ContractArtifact,
IExchange: IExchange as ContractArtifact,
IExchangeCore: IExchangeCore as ContractArtifact,
IMatchOrders: IMatchOrders as ContractArtifact,
ISignatureValidator: ISignatureValidator as ContractArtifact,
ITransactions: ITransactions as ContractArtifact,
IWrapperFunctions: IWrapperFunctions as ContractArtifact,
IAssetData: IAssetData as ContractArtifact,
IAssetProxy: IAssetProxy as ContractArtifact,
IValidator: IValidator as ContractArtifact,
IWallet: IWallet as ContractArtifact,
};

View File

@@ -0,0 +1,2 @@
export * from './artifacts';
export * from './wrappers';

View File

@@ -0,0 +1,12 @@
export * from '../../generated-wrappers/i_asset_data';
export * from '../../generated-wrappers/i_asset_proxy';
export * from '../../generated-wrappers/i_asset_proxy_dispatcher';
export * from '../../generated-wrappers/i_exchange';
export * from '../../generated-wrappers/i_exchange_core';
export * from '../../generated-wrappers/i_match_orders';
export * from '../../generated-wrappers/i_signature_validator';
export * from '../../generated-wrappers/i_transactions';
export * from '../../generated-wrappers/i_authorizable';
export * from '../../generated-wrappers/i_wrapper_functions';
export * from '../../generated-wrappers/i_validator';
export * from '../../generated-wrappers/i_wallet';

View File

@@ -0,0 +1,24 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
"outDir": "lib",
"rootDir": ".",
"resolveJsonModule": true
},
"include": ["./src/**/*", "./generated-wrappers/**/*"],
"files": [
"./generated-artifacts/IAssetData.json",
"./generated-artifacts/IAssetProxy.json",
"./generated-artifacts/IAuthorizable.json",
"./generated-artifacts/IAssetProxyDispatcher.json",
"./generated-artifacts/IExchange.json",
"./generated-artifacts/IExchangeCore.json",
"./generated-artifacts/IMatchOrders.json",
"./generated-artifacts/ISignatureValidator.json",
"./generated-artifacts/ITransactions.json",
"./generated-artifacts/IValidator.json",
"./generated-artifacts/IWallet.json",
"./generated-artifacts/IWrapperFunctions.json"
],
"exclude": ["./deploy/solc/solc_bin"]
}

View File

@@ -0,0 +1,6 @@
{
"extends": ["@0x/tslint-config"],
"rules": {
"custom-no-magic-numbers": false
}
}

View File

@@ -0,0 +1,11 @@
[
{
"timestamp": 1544741676,
"version": "1.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
}
]

View File

@@ -0,0 +1,10 @@
<!--
changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
Edit the package's CHANGELOG.json file only.
-->
CHANGELOG
## v1.0.2 - _December 13, 2018_
* Dependencies updated

70
contracts/libs/README.md Normal file
View File

@@ -0,0 +1,70 @@
## Contracts libs
Smart contracts libs used in the 0x protocol.
## Usage
Contracts can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories:
* [libs](./contracts/protocol)
* This directory contains the libs.
* [test](./contracts/test)
* This directory contains mocks and other contracts that are used solely for testing contracts within the other directories.
## Contributing
We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
For proposals regarding the 0x protocol's smart contract architecture, message format, or additional functionality, go to the [0x Improvement Proposals (ZEIPs)](https://github.com/0xProject/ZEIPs) repository and follow the contribution guidelines provided therein.
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
### Install Dependencies
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
```bash
yarn config set workspaces-experimental true
```
Then install dependencies
```bash
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
PKG=@0x/contracts-libs yarn build
```
Or continuously rebuild on change:
```bash
PKG=@0x/contracts-libs yarn watch
```
### Clean
```bash
yarn clean
```
### Lint
```bash
yarn lint
```
### Run Tests
```bash
yarn test
```
#### Testing options
Contracts testing options like coverage, profiling, revert traces or backing node choosing - are described [here](../TESTING.md).

View File

@@ -0,0 +1,22 @@
{
"artifactsDir": "./generated-artifacts",
"contractsDir": "./contracts",
"compilerSettings": {
"optimizer": {
"enabled": true,
"runs": 1000000
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode.object",
"evm.bytecode.sourceMap",
"evm.deployedBytecode.object",
"evm.deployedBytecode.sourceMap"
]
}
}
},
"contracts": ["TestLibs", "LibOrder", "LibMath", "LibFillResults", "LibAbiEncoder", "LibEIP712"]
}

View File

@@ -18,7 +18,7 @@
pragma solidity 0.4.24;
import "../../../utils/SafeMath/SafeMath.sol";
import "@0x/contracts-utils/contracts/utils/SafeMath/SafeMath.sol";
contract LibFillResults is

View File

@@ -18,7 +18,7 @@
pragma solidity 0.4.24;
import "../../../utils/SafeMath/SafeMath.sol";
import "@0x/contracts-utils/contracts/utils/SafeMath/SafeMath.sol";
contract LibMath is

View File

@@ -19,10 +19,10 @@
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
import "../../protocol/Exchange/libs/LibMath.sol";
import "../../protocol/Exchange/libs/LibOrder.sol";
import "../../protocol/Exchange/libs/LibFillResults.sol";
import "../../protocol/Exchange/libs/LibAbiEncoder.sol";
import "../../libs/LibMath.sol";
import "../../libs/LibOrder.sol";
import "../../libs/LibFillResults.sol";
import "../../libs/LibAbiEncoder.sol";
contract TestLibs is

View File

@@ -0,0 +1,90 @@
{
"name": "@0x/contracts-libs",
"version": "1.0.2",
"engines": {
"node": ">=6.12"
},
"description": "Smart contract libs of 0x protocol",
"main": "lib/src/index.js",
"directories": {
"test": "test"
},
"scripts": {
"build": "yarn pre_build && tsc -b",
"build:ci": "yarn build",
"pre_build": "run-s compile generate_contract_wrappers",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s build test",
"test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
"test:profiler": "SOLIDITY_PROFILER=true run-s build run_mocha profiler:report:html",
"test:trace": "SOLIDITY_REVERT_TRACE=true run-s build run_mocha",
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe 'lib/test/**/*.js' --timeout 100000 --bail --exit",
"compile": "sol-compiler --contracts-dir contracts",
"clean": "shx rm -rf lib generated-artifacts generated-wrappers",
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers",
"lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
"coverage:report:text": "istanbul report text",
"coverage:report:html": "istanbul report html && open coverage/index.html",
"profiler:report:html": "istanbul report html && open coverage/index.html",
"coverage:report:lcov": "istanbul report lcov",
"test:circleci": "yarn test",
"lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol"
},
"config": {
"abis": "generated-artifacts/@(LibMath|LibOrder|LibFillResults|LibAbiEncoder|TestLibs|LibEIP712).json"
},
"repository": {
"type": "git",
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/0xProject/0x-monorepo/issues"
},
"homepage": "https://github.com/0xProject/0x-monorepo/contracts/libs/README.md",
"devDependencies": {
"@0x/abi-gen": "^1.0.19",
"@0x/contracts-test-utils": "^1.0.2",
"@0x/dev-utils": "^1.0.21",
"@0x/sol-compiler": "^1.1.16",
"@0x/sol-cov": "^2.1.16",
"@0x/subproviders": "^2.1.8",
"@0x/tslint-config": "^2.0.0",
"@types/bn.js": "^4.11.0",
"@types/lodash": "4.14.104",
"@types/node": "*",
"@types/yargs": "^10.0.0",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^2.0.1",
"dirty-chai": "^2.0.1",
"ethereumjs-abi": "0.6.5",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
"solc": "^0.4.24",
"solhint": "^1.4.1",
"tslint": "5.11.0",
"typescript": "3.0.1",
"yargs": "^10.0.3"
},
"dependencies": {
"@0x/base-contract": "^3.0.10",
"@0x/contracts-multisig": "^1.0.2",
"@0x/contracts-utils": "^1.0.2",
"@0x/order-utils": "^3.0.7",
"@0x/types": "^1.4.1",
"@0x/typescript-typings": "^3.0.6",
"@0x/utils": "^2.0.8",
"@0x/web3-wrapper": "^3.2.1",
"@types/js-combinatorics": "^0.5.29",
"bn.js": "^4.11.8",
"ethereum-types": "^1.1.4",
"ethereumjs-util": "^5.1.1",
"lodash": "^4.17.5"
},
"publishConfig": {
"access": "public"
}
}

View File

@@ -0,0 +1,17 @@
import { ContractArtifact } from 'ethereum-types';
import * as LibAbiEncoder from '../../generated-artifacts/LibAbiEncoder.json';
import * as LibEIP721 from '../../generated-artifacts/LibEIP712.json';
import * as LibFillResults from '../../generated-artifacts/LibFillResults.json';
import * as LibMath from '../../generated-artifacts/LibMath.json';
import * as LibOrder from '../../generated-artifacts/LibOrder.json';
import * as TestLibs from '../../generated-artifacts/TestLibs.json';
export const artifacts = {
TestLibs: TestLibs as ContractArtifact,
LibAbiEncoder: LibAbiEncoder as ContractArtifact,
LibFillResults: LibFillResults as ContractArtifact,
LibMath: LibMath as ContractArtifact,
LibOrder: LibOrder as ContractArtifact,
LibEIP721: LibEIP721 as ContractArtifact,
};

View File

@@ -0,0 +1,2 @@
export * from './artifacts';
export * from './wrappers';

View File

@@ -0,0 +1,6 @@
export * from '../../generated-wrappers/test_libs';
export * from '../../generated-wrappers/lib_abi_encoder';
export * from '../../generated-wrappers/lib_fill_results';
export * from '../../generated-wrappers/lib_math';
export * from '../../generated-wrappers/lib_order';
export * from '../../generated-wrappers/lib_e_i_p712';

View File

@@ -1,17 +1,20 @@
import {
addressUtils,
chaiSetup,
constants,
OrderFactory,
provider,
txDefaults,
web3Wrapper,
} from '@0x/contracts-test-utils';
import { BlockchainLifecycle } from '@0x/dev-utils';
import { assetDataUtils, orderHashUtils } from '@0x/order-utils';
import { SignedOrder } from '@0x/types';
import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
import { TestConstantsContract } from '../../generated-wrappers/test_constants';
import { TestLibsContract } from '../../generated-wrappers/test_libs';
import { artifacts } from '../../src/artifacts';
import { addressUtils } from '../utils/address_utils';
import { chaiSetup } from '../utils/chai_setup';
import { constants } from '../utils/constants';
import { OrderFactory } from '../utils/order_factory';
import { provider, txDefaults, web3Wrapper } from '../utils/web3_wrapper';
chaiSetup.configure();
const expect = chai.expect;
@@ -22,7 +25,6 @@ describe('Exchange libs', () => {
let signedOrder: SignedOrder;
let orderFactory: OrderFactory;
let libs: TestLibsContract;
let testConstants: TestConstantsContract;
before(async () => {
await blockchainLifecycle.startAsync();
@@ -34,11 +36,6 @@ describe('Exchange libs', () => {
const accounts = await web3Wrapper.getAvailableAddressesAsync();
const makerAddress = accounts[0];
libs = await TestLibsContract.deployFrom0xArtifactAsync(artifacts.TestLibs, provider, txDefaults);
testConstants = await TestConstantsContract.deployFrom0xArtifactAsync(
artifacts.TestConstants,
provider,
txDefaults,
);
const defaultOrderParams = {
...constants.STATIC_ORDER_PARAMS,
@@ -58,15 +55,6 @@ describe('Exchange libs', () => {
afterEach(async () => {
await blockchainLifecycle.revertAsync();
});
describe('LibConstants', () => {
describe('ZRX_ASSET_DATA', () => {
it('should have the correct ZRX_ASSET_DATA', async () => {
const isValid = await testConstants.assertValidZrxAssetData.callAsync();
expect(isValid).to.be.equal(true);
});
});
});
// Note(albrow): These tests are designed to be supplemental to the
// combinatorial tests in test/exchange/internal. They test specific edge
// cases that are not covered by the combinatorial tests.

View File

@@ -0,0 +1,17 @@
import { env, EnvVars } from '@0x/dev-utils';
import { coverage, profiler, provider } from '@0x/contracts-test-utils';
before('start web3 provider', () => {
provider.start();
});
after('generate coverage report', async () => {
if (env.parseBoolean(EnvVars.SolidityCoverage)) {
const coverageSubprovider = coverage.getCoverageSubproviderSingleton();
await coverageSubprovider.writeCoverageAsync();
}
if (env.parseBoolean(EnvVars.SolidityProfiler)) {
const profilerSubprovider = profiler.getProfilerSubproviderSingleton();
await profilerSubprovider.writeProfilerOutputAsync();
}
provider.stop();
});

View File

@@ -0,0 +1,18 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
"outDir": "lib",
"rootDir": ".",
"resolveJsonModule": true
},
"include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"],
"files": [
"./generated-artifacts/TestLibs.json",
"./generated-artifacts/LibOrder.json",
"./generated-artifacts/LibFillResults.json",
"./generated-artifacts/LibAbiEncoder.json",
"./generated-artifacts/LibEIP712.json",
"./generated-artifacts/LibMath.json"
],
"exclude": ["./deploy/solc/solc_bin"]
}

View File

@@ -0,0 +1,6 @@
{
"extends": ["@0x/tslint-config"],
"rules": {
"custom-no-magic-numbers": false
}
}

View File

@@ -0,0 +1,11 @@
[
{
"timestamp": 1544741676,
"version": "1.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
}
]

Some files were not shown because too many files have changed in this diff Show More