diff options
26 files changed, 53 insertions, 25 deletions
diff --git a/contracts/extensions/CHANGELOG.json b/contracts/extensions/CHANGELOG.json index 4f2b54988..083ad33fb 100644 --- a/contracts/extensions/CHANGELOG.json +++ b/contracts/extensions/CHANGELOG.json @@ -9,6 +9,10 @@ { "note": "Add OrderMatcher", "pr": 1117 + }, + { + "note": "Add OrderValidator", + "pr": 1464 } ] }, diff --git a/contracts/extensions/compiler.json b/contracts/extensions/compiler.json index 1e21e6e6a..2bb468724 100644 --- a/contracts/extensions/compiler.json +++ b/contracts/extensions/compiler.json @@ -18,5 +18,5 @@ } } }, - "contracts": ["BalanceThresholdFilter", "DutchAuction", "Forwarder", "OrderMatcher"] + "contracts": ["BalanceThresholdFilter", "DutchAuction", "Forwarder", "OrderMatcher", "OrderValidator"] } diff --git a/contracts/protocol/contracts/protocol/OrderValidator/OrderValidator.sol b/contracts/extensions/contracts/OrderValidator/OrderValidator.sol index 33dd1326c..33dd1326c 100644 --- a/contracts/protocol/contracts/protocol/OrderValidator/OrderValidator.sol +++ b/contracts/extensions/contracts/OrderValidator/OrderValidator.sol diff --git a/contracts/extensions/package.json b/contracts/extensions/package.json index d0caa030e..069b5d2d5 100644 --- a/contracts/extensions/package.json +++ b/contracts/extensions/package.json @@ -32,7 +32,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(BalanceThresholdFilter|DutchAuction|Forwarder|OrderMatcher).json" + "abis": "generated-artifacts/@(BalanceThresholdFilter|DutchAuction|Forwarder|OrderMatcher|OrderValidator).json" }, "repository": { "type": "git", diff --git a/contracts/extensions/src/artifacts/index.ts b/contracts/extensions/src/artifacts/index.ts index a8bd34b4e..329d0f3f3 100644 --- a/contracts/extensions/src/artifacts/index.ts +++ b/contracts/extensions/src/artifacts/index.ts @@ -4,10 +4,12 @@ import * as BalanceThresholdFilter from '../../generated-artifacts/BalanceThresh import * as DutchAuction from '../../generated-artifacts/DutchAuction.json'; import * as Forwarder from '../../generated-artifacts/Forwarder.json'; import * as OrderMatcher from '../../generated-artifacts/OrderMatcher.json'; +import * as OrderValidator from '../../generated-artifacts/OrderValidator.json'; export const artifacts = { BalanceThresholdFilter: BalanceThresholdFilter as ContractArtifact, DutchAuction: DutchAuction as ContractArtifact, Forwarder: Forwarder as ContractArtifact, OrderMatcher: OrderMatcher as ContractArtifact, + OrderValidator: OrderValidator as ContractArtifact, }; diff --git a/contracts/extensions/src/wrappers/index.ts b/contracts/extensions/src/wrappers/index.ts index 4d075ee13..65aec3ccd 100644 --- a/contracts/extensions/src/wrappers/index.ts +++ b/contracts/extensions/src/wrappers/index.ts @@ -2,3 +2,4 @@ export * from '../../generated-wrappers/balance_threshold_filter'; export * from '../../generated-wrappers/dutch_auction'; export * from '../../generated-wrappers/forwarder'; export * from '../../generated-wrappers/order_matcher'; +export * from '../../generated-wrappers/order_validator'; diff --git a/contracts/protocol/test/exchange/order_validator.ts b/contracts/extensions/test/extensions/order_validator.ts index 8f53426db..82a6b937f 100644 --- a/contracts/protocol/test/exchange/order_validator.ts +++ b/contracts/extensions/test/extensions/order_validator.ts @@ -1,4 +1,13 @@ import { + artifacts as protocolArtifacts, + ERC20ProxyContract, + ERC20Wrapper, + ERC721ProxyContract, + ERC721Wrapper, + ExchangeContract, + ExchangeWrapper, +} from '@0x/contracts-protocol'; +import { chaiSetup, constants, OrderFactory, @@ -15,16 +24,8 @@ import { BigNumber } from '@0x/utils'; import * as chai from 'chai'; import * as _ from 'lodash'; -import { - artifacts, - ERC20ProxyContract, - ERC20Wrapper, - ERC721ProxyContract, - ERC721Wrapper, - ExchangeContract, - ExchangeWrapper, - OrderValidatorContract, -} from '../../src'; +import { OrderValidatorContract } from '../../generated-wrappers/order_validator'; +import { artifacts } from '../../src/artifacts/index'; chaiSetup.configure(); const expect = chai.expect; @@ -80,7 +81,7 @@ describe('OrderValidator', () => { const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); exchange = await ExchangeContract.deployFrom0xArtifactAsync( - artifacts.Exchange, + protocolArtifacts.Exchange, provider, txDefaults, zrxAssetData, diff --git a/contracts/extensions/tsconfig.json b/contracts/extensions/tsconfig.json index 506c283aa..ed9b4fbe1 100644 --- a/contracts/extensions/tsconfig.json +++ b/contracts/extensions/tsconfig.json @@ -10,7 +10,8 @@ "./generated-artifacts/BalanceThresholdFilter.json", "./generated-artifacts/DutchAuction.json", "./generated-artifacts/Forwarder.json", - "./generated-artifacts/OrderMatcher.json" + "./generated-artifacts/OrderMatcher.json", + "./generated-artifacts/OrderValidator.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/protocol/CHANGELOG.json b/contracts/protocol/CHANGELOG.json index be374d892..e283d7917 100644 --- a/contracts/protocol/CHANGELOG.json +++ b/contracts/protocol/CHANGELOG.json @@ -9,6 +9,10 @@ { "note": "Add validation and comments to MultiAssetProxy", "pr": 1455 + }, + { + "note": "Move OrderValidator to extensions", + "pr": 1464 } ] }, diff --git a/contracts/protocol/compiler.json b/contracts/protocol/compiler.json index c05d62aba..10e5bb0a1 100644 --- a/contracts/protocol/compiler.json +++ b/contracts/protocol/compiler.json @@ -25,7 +25,6 @@ "Exchange", "MixinAuthorizable", "MultiAssetProxy", - "OrderValidator", "TestAssetProxyOwner", "TestAssetProxyDispatcher", "TestExchangeInternals", diff --git a/contracts/protocol/contracts/protocol/AssetProxy/MultiAssetProxy.sol b/contracts/protocol/contracts/protocol/AssetProxy/MultiAssetProxy.sol index 377325384..5f559163c 100644 --- a/contracts/protocol/contracts/protocol/AssetProxy/MultiAssetProxy.sol +++ b/contracts/protocol/contracts/protocol/AssetProxy/MultiAssetProxy.sol @@ -34,8 +34,8 @@ contract MultiAssetProxy is external { // NOTE: The below assembly assumes that clients do some input validation and that the input is properly encoded according to the AbiV2 specification. - // It is technically possible for inputs with very large lengths and offsets to cause overflows. However, this would make the calldata prohibitively expensive - // and we therefore do not check for overflows in these scenarios. + // It is technically possible for inputs with very large lengths and offsets to cause overflows. However, this would make the calldata prohibitively + // expensive and we therefore do not check for overflows in these scenarios. assembly { // The first 4 bytes of calldata holds the function selector let selector := and(calldataload(0), 0xffffffff00000000000000000000000000000000000000000000000000000000) diff --git a/contracts/protocol/package.json b/contracts/protocol/package.json index d37a0302a..891838e54 100644 --- a/contracts/protocol/package.json +++ b/contracts/protocol/package.json @@ -32,7 +32,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(AssetProxyOwner|ERC20Proxy|ERC721Proxy|Exchange|MixinAuthorizable|MultiAssetProxy|OrderValidator|TestSignatureValidator|TestAssetProxyOwner|TestAssetProxyDispatcher|TestExchangeInternals|TestStaticCallReceiver).json" + "abis": "generated-artifacts/@(AssetProxyOwner|ERC20Proxy|ERC721Proxy|Exchange|MixinAuthorizable|MultiAssetProxy|TestSignatureValidator|TestAssetProxyOwner|TestAssetProxyDispatcher|TestExchangeInternals|TestStaticCallReceiver).json" }, "repository": { "type": "git", diff --git a/contracts/protocol/src/artifacts/index.ts b/contracts/protocol/src/artifacts/index.ts index 1d53ceb04..c5d12f10b 100644 --- a/contracts/protocol/src/artifacts/index.ts +++ b/contracts/protocol/src/artifacts/index.ts @@ -6,7 +6,6 @@ import * as ERC721Proxy from '../../generated-artifacts/ERC721Proxy.json'; import * as Exchange from '../../generated-artifacts/Exchange.json'; import * as MixinAuthorizable from '../../generated-artifacts/MixinAuthorizable.json'; import * as MultiAssetProxy from '../../generated-artifacts/MultiAssetProxy.json'; -import * as OrderValidator from '../../generated-artifacts/OrderValidator.json'; import * as TestAssetProxyDispatcher from '../../generated-artifacts/TestAssetProxyDispatcher.json'; import * as TestAssetProxyOwner from '../../generated-artifacts/TestAssetProxyOwner.json'; import * as TestExchangeInternals from '../../generated-artifacts/TestExchangeInternals.json'; @@ -20,7 +19,6 @@ export const artifacts = { Exchange: Exchange as ContractArtifact, MixinAuthorizable: MixinAuthorizable as ContractArtifact, MultiAssetProxy: MultiAssetProxy as ContractArtifact, - OrderValidator: OrderValidator as ContractArtifact, TestAssetProxyDispatcher: TestAssetProxyDispatcher as ContractArtifact, TestAssetProxyOwner: TestAssetProxyOwner as ContractArtifact, TestExchangeInternals: TestExchangeInternals as ContractArtifact, diff --git a/contracts/protocol/src/wrappers/index.ts b/contracts/protocol/src/wrappers/index.ts index ac951d269..01b121054 100644 --- a/contracts/protocol/src/wrappers/index.ts +++ b/contracts/protocol/src/wrappers/index.ts @@ -3,7 +3,6 @@ export * from '../../generated-wrappers/erc20_proxy'; export * from '../../generated-wrappers/erc721_proxy'; export * from '../../generated-wrappers/exchange'; export * from '../../generated-wrappers/mixin_authorizable'; -export * from '../../generated-wrappers/order_validator'; export * from '../../generated-wrappers/test_asset_proxy_dispatcher'; export * from '../../generated-wrappers/test_asset_proxy_owner'; export * from '../../generated-wrappers/test_exchange_internals'; diff --git a/contracts/protocol/tsconfig.json b/contracts/protocol/tsconfig.json index 989d3ef2b..db872fc32 100644 --- a/contracts/protocol/tsconfig.json +++ b/contracts/protocol/tsconfig.json @@ -13,7 +13,6 @@ "./generated-artifacts/Exchange.json", "./generated-artifacts/MixinAuthorizable.json", "./generated-artifacts/MultiAssetProxy.json", - "./generated-artifacts/OrderValidator.json", "./generated-artifacts/TestAssetProxyDispatcher.json", "./generated-artifacts/TestAssetProxyOwner.json", "./generated-artifacts/TestExchangeInternals.json", diff --git a/packages/website/ts/@next/pages/about/jobs.tsx b/packages/website/ts/@next/pages/about/jobs.tsx index 4dc9d8002..2fd2c7619 100644 --- a/packages/website/ts/@next/pages/about/jobs.tsx +++ b/packages/website/ts/@next/pages/about/jobs.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; @@ -98,6 +99,7 @@ export class NextAboutJobs extends React.Component<NextAboutJobsProps, NextAbout linkLabel="Our mission and values" href={constants.URL_MISSION_AND_VALUES_BLOG_POST} > + <DocumentTitle title="Jobs at 0x" /> <Section bgColor="#F3F6F4" isFlex={true} maxWidth="1170px" wrapWidth="100%"> <Column maxWidth="442px"> <Heading size="medium" marginBottom="30px"> diff --git a/packages/website/ts/@next/pages/about/mission.tsx b/packages/website/ts/@next/pages/about/mission.tsx index 35aac684b..2e6530edd 100644 --- a/packages/website/ts/@next/pages/about/mission.tsx +++ b/packages/website/ts/@next/pages/about/mission.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; @@ -37,6 +38,7 @@ export const NextAboutMission = () => ( linkLabel="Our mission and values" href={constants.URL_MISSION_AND_VALUES_BLOG_POST} > + <DocumentTitle title="Our Mission - 0x" /> <Section isFullWidth={true} isPadded={false}> <FullWidthImage> <Image src="/images/@next/about/about-office.png" alt="0x Offices" isCentered={true} /> diff --git a/packages/website/ts/@next/pages/about/press.tsx b/packages/website/ts/@next/pages/about/press.tsx index ef04506cf..030ee4c14 100644 --- a/packages/website/ts/@next/pages/about/press.tsx +++ b/packages/website/ts/@next/pages/about/press.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { AboutPageLayout } from 'ts/@next/components/aboutPageLayout'; @@ -64,7 +65,9 @@ export const NextAboutPress = () => ( ))} </> } - /> + > + <DocumentTitle title="Press Highlights - 0x" /> + </AboutPageLayout> ); export const Highlight: React.FunctionComponent<HighlightItemProps> = (props: HighlightItemProps) => { diff --git a/packages/website/ts/@next/pages/about/team.tsx b/packages/website/ts/@next/pages/about/team.tsx index 421cacb24..7177964be 100644 --- a/packages/website/ts/@next/pages/about/team.tsx +++ b/packages/website/ts/@next/pages/about/team.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { colors } from 'ts/style/colors'; @@ -183,6 +184,7 @@ export const NextAboutTeam = () => ( linkLabel="Join the team" to={WebsitePaths.AboutJobs} > + <DocumentTitle title="Our Team - 0x" /> <Section maxWidth="1170px" wrapWidth="100%" isFlex={true} flexBreakpoint="900px"> <Column> <Heading size="medium">0x Team</Heading> diff --git a/packages/website/ts/@next/pages/ecosystem.tsx b/packages/website/ts/@next/pages/ecosystem.tsx index 3d3e219a2..f78bd3bdc 100644 --- a/packages/website/ts/@next/pages/ecosystem.tsx +++ b/packages/website/ts/@next/pages/ecosystem.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { colors } from 'ts/style/colors'; @@ -54,6 +55,7 @@ const benefits: BenefitProps[] = [ export const NextEcosystem = () => ( <SiteWrap theme="light"> + <DocumentTitle title="Ecosystem Acceleration Program: Jumpstart your Business on 0x" /> <Section isTextCentered={true}> <Column> <Heading size="medium" isCentered={true}> diff --git a/packages/website/ts/@next/pages/instant.tsx b/packages/website/ts/@next/pages/instant.tsx index 8b3a417a9..d08fd566a 100644 --- a/packages/website/ts/@next/pages/instant.tsx +++ b/packages/website/ts/@next/pages/instant.tsx @@ -1,6 +1,7 @@ import { utils as sharedUtils } from '@0x/react-shared'; import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import styled, { keyframes } from 'styled-components'; import { Banner } from 'ts/@next/components/banner'; @@ -87,6 +88,7 @@ export class Next0xInstant extends React.Component<Props> { public render(): React.ReactNode { return ( <SiteWrap> + <DocumentTitle title="0x Instant: Quick and secure crypto purchasing" /> <Hero title="Introducing 0x Instant" description="A free and flexible way to offer simple crypto purchasing in any app or website" diff --git a/packages/website/ts/@next/pages/instant/fee_percentage_slider.tsx b/packages/website/ts/@next/pages/instant/fee_percentage_slider.tsx index e9f8ba83b..5775d6dfb 100644 --- a/packages/website/ts/@next/pages/instant/fee_percentage_slider.tsx +++ b/packages/website/ts/@next/pages/instant/fee_percentage_slider.tsx @@ -22,6 +22,7 @@ export class FeePercentageSlider extends React.Component<FeePercentageSliderProp max={0.05} step={0.0025} value={this.props.value} + disabled={this.props.isDisabled} onChange={this.props.onChange} tipFormatter={this._feePercentageSliderFormatter} tipProps={{ placement: 'bottom', overlayStyle: { backgroundColor: '#fff', borderRadius: '4px' } }} diff --git a/packages/website/ts/@next/pages/instant/rc-slider.css b/packages/website/ts/@next/pages/instant/rc-slider.css index a4a521d54..63038324e 100644 --- a/packages/website/ts/@next/pages/instant/rc-slider.css +++ b/packages/website/ts/@next/pages/instant/rc-slider.css @@ -115,7 +115,7 @@ } .rc-slider-disabled { - background-color: #e9e9e9; + opacity: 0.2; } .rc-slider-disabled .rc-slider-track { diff --git a/packages/website/ts/@next/pages/landing.tsx b/packages/website/ts/@next/pages/landing.tsx index ae560e8e3..4d47fefd9 100644 --- a/packages/website/ts/@next/pages/landing.tsx +++ b/packages/website/ts/@next/pages/landing.tsx @@ -1,10 +1,11 @@ import * as React from 'react'; -import { SiteWrap } from 'ts/@next/components/siteWrap'; +import DocumentTitle from 'react-document-title'; import { SectionLandingAbout } from 'ts/@next/components/sections/landing/about'; import { SectionLandingClients } from 'ts/@next/components/sections/landing/clients'; import { SectionLandingCta } from 'ts/@next/components/sections/landing/cta'; import { SectionLandingHero } from 'ts/@next/components/sections/landing/hero'; +import { SiteWrap } from 'ts/@next/components/siteWrap'; import { ModalContact } from 'ts/@next/components/modals/modal_contact'; @@ -23,6 +24,7 @@ export class NextLanding extends React.Component<Props> { public render(): React.ReactNode { return ( <SiteWrap theme="dark"> + <DocumentTitle title="0x: The protocol for trading tokens on Ethereum" /> <SectionLandingHero /> <SectionLandingAbout /> <SectionLandingClients /> diff --git a/packages/website/ts/@next/pages/launch_kit.tsx b/packages/website/ts/@next/pages/launch_kit.tsx index 7ae54293b..605bce91c 100644 --- a/packages/website/ts/@next/pages/launch_kit.tsx +++ b/packages/website/ts/@next/pages/launch_kit.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import { Hero } from 'ts/@next/components/hero'; @@ -35,6 +36,7 @@ export class NextLaunchKit extends React.Component { public render(): React.ReactNode { return ( <SiteWrap theme="dark"> + <DocumentTitle title="0x Launch Kit: Launch a relayer in under a minute" /> <Hero isLargeTitle={false} isFullWidth={false} diff --git a/packages/website/ts/@next/pages/why.tsx b/packages/website/ts/@next/pages/why.tsx index 73195f31c..cdf7960c2 100644 --- a/packages/website/ts/@next/pages/why.tsx +++ b/packages/website/ts/@next/pages/why.tsx @@ -1,5 +1,6 @@ import * as _ from 'lodash'; import * as React from 'react'; +import DocumentTitle from 'react-document-title'; import ScrollableAnchor, { configureAnchors } from 'react-scrollable-anchor'; import styled from 'styled-components'; @@ -98,6 +99,7 @@ export class NextWhy extends React.Component { ); return ( <SiteWrap theme="dark"> + <DocumentTitle title="Features & Benefits - 0x" /> <Hero title="The exchange layer for the crypto economy" description="The world's assets are becoming tokenized on public blockchains. 0x Protocol is free, open-source infrastracture that developers and businesses utilize to build products that enable the purchasing and trading of crypto tokens." |