From 069b6f8dff77e0c1f5dd74986908badc9c6cabb0 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Fri, 29 Nov 2019 14:24:00 +1100 Subject: [PATCH 1/4] V3 with Mesh --- package.json | 2 +- src/build.ts | 44 +++++++++++++++++++++++++++++++++++++++----- src/index.ts | 8 +++++++- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 7356fc0..0d22eb5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@0x/launch-kit-wizard", - "version": "0.0.4", + "version": "0.0.5", "description": "", "bin": { "create-launch-kit-app": "./lib/index.js" diff --git a/src/build.ts b/src/build.ts index 046998c..1e2e438 100644 --- a/src/build.ts +++ b/src/build.ts @@ -1,4 +1,4 @@ -export type Network = 'mainnet' | 'kovan' | 'ropsten' | 'ganache' | 'custom'; +export type Network = 'mainnet' | 'kovan' | 'ropsten' | 'rinkeby' | 'ganache' | 'custom'; export interface BuildOptions { tokenType: 'ERC20' | 'ERC721'; @@ -23,12 +23,27 @@ function getNetworkId(network: Network): number { return 42; case 'ropsten': return 3; + case 'rinkeby': + return 4; case 'ganache': case 'custom': return 50; } } +function getChainId(network: Network): number { + switch (network) { + case 'mainnet': + case 'kovan': + case 'rinkeby': + case 'ropsten': + return getNetworkId(network); + case 'ganache': + case 'custom': + return 1337; + } +} + export const buildDockerComposeYml = (options: BuildOptions) => { const basePath = options.tokenType === 'ERC20' ? '/erc20' : '/erc721'; const theme = options.theme === 'light' ? 'LIGHT_THEME' : 'DARK_THEME'; @@ -37,6 +52,7 @@ export const buildDockerComposeYml = (options: BuildOptions) => { const collectiblesSource = isGanache ? 'mocked' : 'opensea'; const networkId = getNetworkId(options.network); + const chainId = getChainId(options.network); const ganacheService = ` ganache: @@ -54,28 +70,46 @@ export const buildDockerComposeYml = (options: BuildOptions) => { version: "3" services:${isGanache ? ganacheService : ''} frontend: - image: 0xorg/launch-kit-frontend + image: 0xorg/launch-kit-frontend:v3 environment: REACT_APP_RELAYER_URL: '${options.relayerUrl}' REACT_APP_DEFAULT_BASE_PATH: '${basePath}' REACT_APP_THEME_NAME: '${theme}' REACT_APP_NETWORK_ID: ${networkId} + REACT_APP_CHAIN_ID: ${chainId} ${options.tokenType === 'ERC20' ? '' : collectibleEnv} command: yarn build volumes: - frontend-assets:/app/build backend: - image: 0xorg/launch-kit-backend + image: 0xorg/launch-kit-backend:v3 environment: HTTP_PORT: '3000' RPC_URL: '${options.rpcUrl}' NETWORK_ID: '${networkId}' + CHAIN_ID: '${chainId}' WHITELIST_ALL_TOKENS: 'true' FEE_RECIPIENT: '${options.feeRecipient}' - MAKER_FEE_ZRX_UNIT_AMOUNT: '${options.makerFee}' - TAKER_FEE_ZRX_UNIT_AMOUNT: '${options.takerFee}' + MAKER_FEE_UNIT_AMOUNT: '${options.makerFee}' + TAKER_FEE_UNIT_AMOUNT: '${options.takerFee}' + MESH_ENDPOINT: 'ws://mesh:60557' ports: - '3000:3000' + mesh: + image: 0xorg/mesh:0xV3 + restart: always + environment: + ETHEREUM_RPC_URL: '${options.rpcUrl}' + ETHEREUM_CHAIN_ID: '${chainId}' + ETHEREUM_NETWORK_ID: '${networkId}' + USE_BOOTSTRAP_LIST: 'true' + VERBOSITY: 3 + PRIVATE_KEY_PATH: '' + BLOCK_POLLING_INTERVAL: '5s' + P2P_LISTEN_PORT: '60557' + RPC_ADDR: 0.0.0.0:60557 + ports: + - '60557:60557' nginx: image: nginx ports: diff --git a/src/index.ts b/src/index.ts index 142e62a..278e5a7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -59,6 +59,8 @@ function getRpcUrl(network: Network): string { return 'https://kovan.infura.io/'; case 'ropsten': return 'https://ropsten.infura.io/'; + case 'rinkeby': + return 'https://rinkeby.infura.io/'; case 'ganache': return 'http://ganache:8545/'; case 'custom': @@ -82,6 +84,10 @@ async function main() { name: 'Ropsten', value: 'ropsten', }, + { + name: 'Rinkeby', + value: 'rinkeby', + }, { name: 'Ganache', value: 'ganache', @@ -130,7 +136,7 @@ async function main() { name: 'relayerUrl', message: 'Launch Kit will create a backend Relayer. Enter the public URL for the backend Relayer or leave default:', - default: 'http://localhost:3000/v2', + default: 'http://localhost:3000/v3', validate: (rpcUrl: string) => { return /https?:\/\/.+/.test(rpcUrl) ? true : 'Please enter a valid URL'; }, From 0824d9bd368d619fbf972fad5061b96e322ed4d6 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 4 Dec 2019 12:25:57 -0800 Subject: [PATCH 2/4] Tag images as latest --- src/build.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/build.ts b/src/build.ts index 1e2e438..119bb1e 100644 --- a/src/build.ts +++ b/src/build.ts @@ -70,7 +70,7 @@ export const buildDockerComposeYml = (options: BuildOptions) => { version: "3" services:${isGanache ? ganacheService : ''} frontend: - image: 0xorg/launch-kit-frontend:v3 + image: 0xorg/launch-kit-frontend:latest environment: REACT_APP_RELAYER_URL: '${options.relayerUrl}' REACT_APP_DEFAULT_BASE_PATH: '${basePath}' @@ -82,7 +82,7 @@ services:${isGanache ? ganacheService : ''} volumes: - frontend-assets:/app/build backend: - image: 0xorg/launch-kit-backend:v3 + image: 0xorg/launch-kit-backend:latest environment: HTTP_PORT: '3000' RPC_URL: '${options.rpcUrl}' From 7138187b8b42df5e8d37dd267e27a66c55dfbea0 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 4 Dec 2019 12:27:06 -0800 Subject: [PATCH 3/4] 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0d22eb5..6e9ef96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@0x/launch-kit-wizard", - "version": "0.0.5", + "version": "1.0.0", "description": "", "bin": { "create-launch-kit-app": "./lib/index.js" From d3ec3a2222222f8cacf676b0f77b9a743b347bdf Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 4 Dec 2019 13:01:57 -0800 Subject: [PATCH 4/4] Set Relayer WS URL --- src/build.ts | 2 ++ src/index.ts | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/build.ts b/src/build.ts index 119bb1e..c40acd5 100644 --- a/src/build.ts +++ b/src/build.ts @@ -5,6 +5,7 @@ export interface BuildOptions { network: Network; rpcUrl: string; relayerUrl: string; + relayerWebsocketUrl: string; feeRecipient: string; theme: 'light' | 'dark'; port: number; @@ -73,6 +74,7 @@ services:${isGanache ? ganacheService : ''} image: 0xorg/launch-kit-frontend:latest environment: REACT_APP_RELAYER_URL: '${options.relayerUrl}' + REACT_APP_RELAYER_WS_URL: '${options.relayerWebsocketUrl}' REACT_APP_DEFAULT_BASE_PATH: '${basePath}' REACT_APP_THEME_NAME: '${theme}' REACT_APP_NETWORK_ID: ${networkId} diff --git a/src/index.ts b/src/index.ts index 278e5a7..bde7915 100644 --- a/src/index.ts +++ b/src/index.ts @@ -141,6 +141,16 @@ async function main() { return /https?:\/\/.+/.test(rpcUrl) ? true : 'Please enter a valid URL'; }, }, + { + type: 'input', + name: 'relayerWebsocketUrl', + message: + 'Launch Kit will create a backend Relayer. Enter the public URL for the backend websocket or leave default:', + default: 'ws://localhost:3000/', + validate: (rpcUrl: string) => { + return /wss?:\/\/.+/.test(rpcUrl) ? true : 'Please enter a valid Websocket URL'; + }, + }, { type: 'input', name: 'collectibleAddress', @@ -233,6 +243,7 @@ async function main() { network: answers.network, rpcUrl, relayerUrl: answers.relayerUrl, + relayerWebsocketUrl: answers.relayerWebsocketUrl, feeRecipient: answers.feeRecipient || ZERO_ADDRESS, theme: answers.theme, port: answers.port,