From d1097670410932c423c1aa3e0116d39817d3297a Mon Sep 17 00:00:00 2001 From: nicosampler Date: Tue, 20 Oct 2020 12:44:27 -0300 Subject: [PATCH 01/27] Add coin by network --- .../assets/token_eth.svg} | 0 src/config/assets/token_xdai.svg | 22 +++++ src/config/networks/local.ts | 2 +- src/config/networks/mainnet.ts | 2 +- src/config/networks/rinkeby.ts | 2 +- src/config/networks/xdai.ts | 3 +- .../api/fetchCurrenciesRates.ts | 14 ++-- .../api/fetchTokenCurrenciesBalances.ts | 3 +- .../store/actions/fetchCurrencyRate.ts | 2 +- .../store/actions/setSelectedCurrency.ts | 14 ++-- .../store/model/currencyValues.ts | 81 ++++++++++--------- .../store/utils/currencyValuesStorage.ts | 5 +- .../safe/components/Balances/dataFetcher.ts | 10 +-- .../components/CurrencyDropdown/index.tsx | 15 ++-- 14 files changed, 103 insertions(+), 72 deletions(-) rename src/{assets/icons/icon_etherTokens.svg => config/assets/token_eth.svg} (100%) create mode 100644 src/config/assets/token_xdai.svg diff --git a/src/assets/icons/icon_etherTokens.svg b/src/config/assets/token_eth.svg similarity index 100% rename from src/assets/icons/icon_etherTokens.svg rename to src/config/assets/token_eth.svg diff --git a/src/config/assets/token_xdai.svg b/src/config/assets/token_xdai.svg new file mode 100644 index 0000000000..044b3395a7 --- /dev/null +++ b/src/config/assets/token_xdai.svg @@ -0,0 +1,22 @@ + + + + +Group 6 +Created with Sketch. + + + + + + + + + + + + diff --git a/src/config/networks/local.ts b/src/config/networks/local.ts index ad51c88312..cdf9dfa81e 100644 --- a/src/config/networks/local.ts +++ b/src/config/networks/local.ts @@ -1,4 +1,4 @@ -import EtherLogo from 'src/assets/icons/icon_etherTokens.svg' +import EtherLogo from 'src/config/assets/token_eth.svg' import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config/networks/network.d' const baseConfig: EnvironmentSettings = { diff --git a/src/config/networks/mainnet.ts b/src/config/networks/mainnet.ts index 89945ae6af..0f69b371b1 100644 --- a/src/config/networks/mainnet.ts +++ b/src/config/networks/mainnet.ts @@ -1,4 +1,4 @@ -import EtherLogo from 'src/assets/icons/icon_etherTokens.svg' +import EtherLogo from 'src/config/assets/token_eth.svg' import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config/networks/network.d' const baseConfig: EnvironmentSettings = { diff --git a/src/config/networks/rinkeby.ts b/src/config/networks/rinkeby.ts index 2f0650b0e3..aa2f2e3bb1 100644 --- a/src/config/networks/rinkeby.ts +++ b/src/config/networks/rinkeby.ts @@ -1,4 +1,4 @@ -import EtherLogo from 'src/assets/icons/icon_etherTokens.svg' +import EtherLogo from 'src/config/assets/token_eth.svg' import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config/networks/network.d' const baseConfig: EnvironmentSettings = { diff --git a/src/config/networks/xdai.ts b/src/config/networks/xdai.ts index c14ea16db3..927edb8ee6 100644 --- a/src/config/networks/xdai.ts +++ b/src/config/networks/xdai.ts @@ -1,4 +1,5 @@ import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config/networks/network.d' +import xDaiLogo from 'src/config/assets/token_xdai.svg' const baseConfig: EnvironmentSettings = { txServiceUrl: 'https://safe-transaction.xdai.gnosis.io/api/v1', @@ -32,7 +33,7 @@ const xDai: NetworkConfig = { name: 'xDai', symbol: 'xDai', decimals: 18, - logoUri: '', + logoUri: xDaiLogo, }, } } diff --git a/src/logic/currencyValues/api/fetchCurrenciesRates.ts b/src/logic/currencyValues/api/fetchCurrenciesRates.ts index 45c73c7184..8405495087 100644 --- a/src/logic/currencyValues/api/fetchCurrenciesRates.ts +++ b/src/logic/currencyValues/api/fetchCurrenciesRates.ts @@ -1,31 +1,35 @@ import axios from 'axios' +import { getNetworkInfo } from 'src/config' import { EXCHANGE_RATE_URL } from 'src/utils/constants' -import { AVAILABLE_CURRENCIES } from '../store/model/currencyValues' import { fetchTokenCurrenciesBalances } from './fetchTokenCurrenciesBalances' import BigNumber from 'bignumber.js' +const { nativeCoin } = getNetworkInfo() + const fetchCurrenciesRates = async ( - baseCurrency: AVAILABLE_CURRENCIES, - targetCurrencyValue: AVAILABLE_CURRENCIES, + baseCurrency: string, + targetCurrencyValue: string, safeAddress: string, ): Promise => { let rate = 0 - if (targetCurrencyValue === AVAILABLE_CURRENCIES.ETH) { + if (targetCurrencyValue === nativeCoin.symbol.toUpperCase()) { try { const result = await fetchTokenCurrenciesBalances(safeAddress) if (result?.data?.length) { rate = new BigNumber(1).div(result.data[0].fiatConversion).toNumber() } } catch (error) { - console.error('Fetching ETH data from the relayer errored', error) + console.error(`Fetching ${nativeCoin.symbol} data from the relayer errored`, error) } return rate } + // National currencies try { const url = `${EXCHANGE_RATE_URL}?base=${baseCurrency}&symbols=${targetCurrencyValue}` + debugger const result = await axios.get(url) if (result?.data) { const { rates } = result.data diff --git a/src/logic/currencyValues/api/fetchTokenCurrenciesBalances.ts b/src/logic/currencyValues/api/fetchTokenCurrenciesBalances.ts index 59107c743c..65b4d97063 100644 --- a/src/logic/currencyValues/api/fetchTokenCurrenciesBalances.ts +++ b/src/logic/currencyValues/api/fetchTokenCurrenciesBalances.ts @@ -2,7 +2,6 @@ import axios, { AxiosResponse } from 'axios' import { getTxServiceUrl } from 'src/config' import { TokenProps } from 'src/logic/tokens/store/model/token' -import { AVAILABLE_CURRENCIES } from '../store/model/currencyValues' export type BalanceEndpoint = { tokenAddress: string @@ -10,7 +9,7 @@ export type BalanceEndpoint = { balance: string fiatBalance: string fiatConversion: string - fiatCode: AVAILABLE_CURRENCIES + fiatCode: string } export const fetchTokenCurrenciesBalances = ( diff --git a/src/logic/currencyValues/store/actions/fetchCurrencyRate.ts b/src/logic/currencyValues/store/actions/fetchCurrencyRate.ts index 72f668c6cb..75fe30885a 100644 --- a/src/logic/currencyValues/store/actions/fetchCurrencyRate.ts +++ b/src/logic/currencyValues/store/actions/fetchCurrencyRate.ts @@ -3,7 +3,7 @@ import { setCurrencyRate } from 'src/logic/currencyValues/store/actions/setCurre import { AVAILABLE_CURRENCIES } from 'src/logic/currencyValues/store/model/currencyValues' import { Dispatch } from 'redux' -const fetchCurrencyRate = (safeAddress: string, selectedCurrency: AVAILABLE_CURRENCIES) => async ( +const fetchCurrencyRate = (safeAddress: string, selectedCurrency: string) => async ( dispatch: Dispatch, ): Promise => { if (AVAILABLE_CURRENCIES.USD === selectedCurrency) { diff --git a/src/logic/currencyValues/store/actions/setSelectedCurrency.ts b/src/logic/currencyValues/store/actions/setSelectedCurrency.ts index 3b0774a075..390b9cb78a 100644 --- a/src/logic/currencyValues/store/actions/setSelectedCurrency.ts +++ b/src/logic/currencyValues/store/actions/setSelectedCurrency.ts @@ -2,20 +2,16 @@ import { createAction } from 'redux-actions' import { ThunkDispatch } from 'redux-thunk' import { AnyAction } from 'redux' import { AppReduxState } from 'src/store' -import { AVAILABLE_CURRENCIES } from '../model/currencyValues' import fetchCurrencyRate from 'src/logic/currencyValues/store/actions/fetchCurrencyRate' export const SET_CURRENT_CURRENCY = 'SET_CURRENT_CURRENCY' -const setCurrentCurrency = createAction( - SET_CURRENT_CURRENCY, - (safeAddress: string, selectedCurrency: AVAILABLE_CURRENCIES) => ({ - safeAddress, - selectedCurrency, - }), -) +const setCurrentCurrency = createAction(SET_CURRENT_CURRENCY, (safeAddress: string, selectedCurrency: string) => ({ + safeAddress, + selectedCurrency, +})) -export const setSelectedCurrency = (safeAddress: string, selectedCurrency: AVAILABLE_CURRENCIES) => ( +export const setSelectedCurrency = (safeAddress: string, selectedCurrency: string) => ( dispatch: ThunkDispatch, ): void => { dispatch(setCurrentCurrency(safeAddress, selectedCurrency)) diff --git a/src/logic/currencyValues/store/model/currencyValues.ts b/src/logic/currencyValues/store/model/currencyValues.ts index eede6d5fa1..56536bbfb6 100644 --- a/src/logic/currencyValues/store/model/currencyValues.ts +++ b/src/logic/currencyValues/store/model/currencyValues.ts @@ -1,41 +1,48 @@ import { List, Record, RecordOf } from 'immutable' -export enum AVAILABLE_CURRENCIES { - ETH = 'ETH', - USD = 'USD', - EUR = 'EUR', - AUD = 'AUD', - BGN = 'BGN', - BRL = 'BRL', - CAD = 'CAD', - CHF = 'CHF', - CNY = 'CNY', - CZK = 'CZK', - DKK = 'DKK', - GBP = 'GBP', - HKD = 'HKD', - HRK = 'HRK', - HUF = 'HUF', - IDR = 'IDR', - ILS = 'ILS', - INR = 'INR', - ISK = 'ISK', - JPY = 'JPY', - KRW = 'KRW', - MXN = 'MXN', - MYR = 'MYR', - NOK = 'NOK', - NZD = 'NZD', - PHP = 'PHP', - PLN = 'PLN', - RON = 'RON', - RUB = 'RUB', - SEK = 'SEK', - SGD = 'SGD', - THB = 'THB', - TRY = 'TRY', - ZAR = 'ZAR', -} +import { getNetworkInfo } from 'src/config' + +const { nativeCoin } = getNetworkInfo() + +export const AVAILABLE_CURRENCIES = { + NETWORK: nativeCoin.symbol.toLocaleUpperCase(), + USD: 'USD', + EUR: 'EUR', + AUD: 'AUD', + BGN: 'BGN', + BRL: 'BRL', + CAD: 'CAD', + CHF: 'CHF', + CNY: 'CNY', + CZK: 'CZK', + DKK: 'DKK', + GBP: 'GBP', + HKD: 'HKD', + HRK: 'HRK', + HUF: 'HUF', + IDR: 'IDR', + ILS: 'ILS', + INR: 'INR', + ISK: 'ISK', + JPY: 'JPY', + KRW: 'KRW', + MXN: 'MXN', + MYR: 'MYR', + NOK: 'NOK', + NZD: 'NZD', + PHP: 'PHP', + PLN: 'PLN', + RON: 'RON', + RUB: 'RUB', + SEK: 'SEK', + SGD: 'SGD', + THB: 'THB', + TRY: 'TRY', + ZAR: 'ZAR', +} as const + +//export type AVAILABLE_CURRENCIES_KEYS = keyof typeof AVAILABLE_CURRENCIES +//export type AVAILABLE_CURRENCIES_VALUES = typeof AVAILABLE_CURRENCIES[AVAILABLE_CURRENCIES_KEYS] export type BalanceCurrencyRecord = { currencyName?: string @@ -57,6 +64,6 @@ export type BalanceCurrencyList = List export interface CurrencyRateValue { currencyRate?: number - selectedCurrency?: AVAILABLE_CURRENCIES + selectedCurrency?: string currencyBalances?: BalanceCurrencyList } diff --git a/src/logic/currencyValues/store/utils/currencyValuesStorage.ts b/src/logic/currencyValues/store/utils/currencyValuesStorage.ts index ba71634983..6f91f6088a 100644 --- a/src/logic/currencyValues/store/utils/currencyValuesStorage.ts +++ b/src/logic/currencyValues/store/utils/currencyValuesStorage.ts @@ -1,8 +1,7 @@ import { loadFromStorage, saveToStorage } from 'src/utils/storage' -import { AVAILABLE_CURRENCIES } from '../model/currencyValues' const SELECTED_CURRENCY_STORAGE_KEY = 'SELECTED_CURRENCY' -export const saveSelectedCurrency = async (selectedCurrency: AVAILABLE_CURRENCIES): Promise => { +export const saveSelectedCurrency = async (selectedCurrency: string): Promise => { try { await saveToStorage(SELECTED_CURRENCY_STORAGE_KEY, selectedCurrency) } catch (err) { @@ -10,6 +9,6 @@ export const saveSelectedCurrency = async (selectedCurrency: AVAILABLE_CURRENCIE } } -export const loadSelectedCurrency = async (): Promise => { +export const loadSelectedCurrency = async (): Promise => { return await loadFromStorage(SELECTED_CURRENCY_STORAGE_KEY) } diff --git a/src/routes/safe/components/Balances/dataFetcher.ts b/src/routes/safe/components/Balances/dataFetcher.ts index 0308f30f11..d2d9b7d82d 100644 --- a/src/routes/safe/components/Balances/dataFetcher.ts +++ b/src/routes/safe/components/Balances/dataFetcher.ts @@ -4,25 +4,25 @@ import { getNetworkInfo } from 'src/config' import { FIXED } from 'src/components/Table/sorting' import { formatAmountInUsFormat } from 'src/logic/tokens/utils/formatAmount' import { TableColumn } from 'src/components/Table/types.d' -import { AVAILABLE_CURRENCIES, BalanceCurrencyList } from 'src/logic/currencyValues/store/model/currencyValues' +import { BalanceCurrencyList } from 'src/logic/currencyValues/store/model/currencyValues' import { Token } from 'src/logic/tokens/store/model/token' export const BALANCE_TABLE_ASSET_ID = 'asset' export const BALANCE_TABLE_BALANCE_ID = 'balance' export const BALANCE_TABLE_VALUE_ID = 'value' +const { nativeCoin } = getNetworkInfo() + const getTokenPriceInCurrency = ( token: Token, - currencySelected?: AVAILABLE_CURRENCIES, + currencySelected?: string, currencyValues?: BalanceCurrencyList, currencyRate?: number, ): string => { if (!currencySelected) { return '' } - const currencyValue = currencyValues?.find(({ tokenAddress }) => { - const { nativeCoin } = getNetworkInfo() if (token.address === nativeCoin.address && !tokenAddress) { return true } @@ -51,7 +51,7 @@ export interface BalanceData { export const getBalanceData = ( activeTokens: List, - currencySelected?: AVAILABLE_CURRENCIES, + currencySelected?: string, currencyValues?: BalanceCurrencyList, currencyRate?: number, ): List => { diff --git a/src/routes/safe/components/CurrencyDropdown/index.tsx b/src/routes/safe/components/CurrencyDropdown/index.tsx index 862c02516e..e1682080ac 100644 --- a/src/routes/safe/components/CurrencyDropdown/index.tsx +++ b/src/routes/safe/components/CurrencyDropdown/index.tsx @@ -20,16 +20,19 @@ import { safeParamAddressFromStateSelector } from 'src/logic/safe/store/selector import { DropdownListTheme } from 'src/theme/mui' import { setImageToPlaceholder } from '../Balances/utils' import Img from 'src/components/layout/Img/index' -import etherIcon from 'src/assets/icons/icon_etherTokens.svg' +import { getNetworkInfo } from 'src/config' + +const { nativeCoin } = getNetworkInfo() const CurrencyDropdown = (): React.ReactElement | null => { - const currenciesList = Object.values(AVAILABLE_CURRENCIES) const safeAddress = useSelector(safeParamAddressFromStateSelector) as string const dispatch = useDispatch() const [anchorEl, setAnchorEl] = useState(null) const selectedCurrency = useSelector(currentCurrencySelector) - const [searchParams, setSearchParams] = useState('') + + const currenciesList = Object.values(AVAILABLE_CURRENCIES) + const tokenImage = nativeCoin.logoUri const classes = useDropdownStyles() const currenciesListFiltered = currenciesList.filter((currency) => currency.toLowerCase().includes(searchParams.toLowerCase()), @@ -103,11 +106,11 @@ const CurrencyDropdown = (): React.ReactElement | null => { value={currencyName} > - {currencyName === AVAILABLE_CURRENCIES.ETH ? ( + {currencyName.toLocaleLowerCase() === nativeCoin.symbol.toLocaleLowerCase() ? ( ether ) : ( From a5fd8a5ae25d04fb36b4814eb2c1a932b6d428f3 Mon Sep 17 00:00:00 2001 From: nicosampler Date: Tue, 20 Oct 2020 12:50:35 -0300 Subject: [PATCH 02/27] remove debugger --- src/logic/currencyValues/api/fetchCurrenciesRates.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/logic/currencyValues/api/fetchCurrenciesRates.ts b/src/logic/currencyValues/api/fetchCurrenciesRates.ts index 8405495087..9264917ac8 100644 --- a/src/logic/currencyValues/api/fetchCurrenciesRates.ts +++ b/src/logic/currencyValues/api/fetchCurrenciesRates.ts @@ -29,7 +29,6 @@ const fetchCurrenciesRates = async ( // National currencies try { const url = `${EXCHANGE_RATE_URL}?base=${baseCurrency}&symbols=${targetCurrencyValue}` - debugger const result = await axios.get(url) if (result?.data) { const { rates } = result.data From 2712525b35ee2f1ec4b54ac95ce6e0039431ea64 Mon Sep 17 00:00:00 2001 From: nicosampler Date: Tue, 20 Oct 2020 15:42:53 -0300 Subject: [PATCH 03/27] review changes --- .../api/fetchCurrenciesRates.ts | 5 ++-- .../store/model/currencyValues.ts | 3 -- .../wallets/__tests__/ethAddresses.test.ts | 30 +++++++++++++++++++ src/logic/wallets/ethAddresses.ts | 11 ++----- .../components/CurrencyDropdown/index.tsx | 3 +- src/utils/strings.ts | 14 +++++++++ 6 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 src/logic/wallets/__tests__/ethAddresses.test.ts diff --git a/src/logic/currencyValues/api/fetchCurrenciesRates.ts b/src/logic/currencyValues/api/fetchCurrenciesRates.ts index 9264917ac8..ea04e21c24 100644 --- a/src/logic/currencyValues/api/fetchCurrenciesRates.ts +++ b/src/logic/currencyValues/api/fetchCurrenciesRates.ts @@ -1,9 +1,10 @@ import axios from 'axios' +import BigNumber from 'bignumber.js' import { getNetworkInfo } from 'src/config' import { EXCHANGE_RATE_URL } from 'src/utils/constants' import { fetchTokenCurrenciesBalances } from './fetchTokenCurrenciesBalances' -import BigNumber from 'bignumber.js' +import { sameString } from 'src/utils/strings' const { nativeCoin } = getNetworkInfo() @@ -14,7 +15,7 @@ const fetchCurrenciesRates = async ( ): Promise => { let rate = 0 - if (targetCurrencyValue === nativeCoin.symbol.toUpperCase()) { + if (sameString(targetCurrencyValue, nativeCoin.symbol)) { try { const result = await fetchTokenCurrenciesBalances(safeAddress) if (result?.data?.length) { diff --git a/src/logic/currencyValues/store/model/currencyValues.ts b/src/logic/currencyValues/store/model/currencyValues.ts index 56536bbfb6..2661834951 100644 --- a/src/logic/currencyValues/store/model/currencyValues.ts +++ b/src/logic/currencyValues/store/model/currencyValues.ts @@ -41,9 +41,6 @@ export const AVAILABLE_CURRENCIES = { ZAR: 'ZAR', } as const -//export type AVAILABLE_CURRENCIES_KEYS = keyof typeof AVAILABLE_CURRENCIES -//export type AVAILABLE_CURRENCIES_VALUES = typeof AVAILABLE_CURRENCIES[AVAILABLE_CURRENCIES_KEYS] - export type BalanceCurrencyRecord = { currencyName?: string tokenAddress?: string diff --git a/src/logic/wallets/__tests__/ethAddresses.test.ts b/src/logic/wallets/__tests__/ethAddresses.test.ts new file mode 100644 index 0000000000..ae54f538d4 --- /dev/null +++ b/src/logic/wallets/__tests__/ethAddresses.test.ts @@ -0,0 +1,30 @@ +import { sameAddress } from '../ethAddresses' + +describe('ethAddresses utils', () => { + const ac0 = '0x0000000000000000000000000000000000000000' + const ac1Upper = '0x00000000000000000000000000000000000000A1' + const ac1Lower = '0x00000000000000000000000000000000000000a1' + const ac2 = '0x00000000000000000000000000000000000000A2' + + describe('sameAddress', () => { + it('Returns false if first argument is undefined', () => { + const res = sameAddress(undefined, ac0) + expect(res).toBeFalsy() + }) + + it('Returns false if the second argument is undefined', () => { + const res = sameAddress(ac0, undefined) + expect(res).toBeFalsy() + }) + + it('Returns false if the arguments have different literals', () => { + const res = sameAddress(ac1Upper, ac2) + expect(res).toBeFalsy() + }) + + it('Returns false if the arguments have the same literals', () => { + const res = sameAddress(ac1Upper, ac1Lower) + expect(res).toBeTruthy() + }) + }) +}) diff --git a/src/logic/wallets/ethAddresses.ts b/src/logic/wallets/ethAddresses.ts index 300becaa26..d45d0fea75 100644 --- a/src/logic/wallets/ethAddresses.ts +++ b/src/logic/wallets/ethAddresses.ts @@ -1,17 +1,10 @@ import { List } from 'immutable' import { SafeRecord } from 'src/logic/safe/store/models/safe' +import { sameString } from 'src/utils/strings' export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' export const sameAddress = (firstAddress: string | undefined, secondAddress: string | undefined): boolean => { - if (!firstAddress) { - return false - } - - if (!secondAddress) { - return false - } - - return firstAddress.toLowerCase() === secondAddress.toLowerCase() + return sameString(firstAddress, secondAddress) } export const shortVersionOf = (value: string, cut: number): string => { diff --git a/src/routes/safe/components/CurrencyDropdown/index.tsx b/src/routes/safe/components/CurrencyDropdown/index.tsx index e1682080ac..2304aa6944 100644 --- a/src/routes/safe/components/CurrencyDropdown/index.tsx +++ b/src/routes/safe/components/CurrencyDropdown/index.tsx @@ -21,6 +21,7 @@ import { DropdownListTheme } from 'src/theme/mui' import { setImageToPlaceholder } from '../Balances/utils' import Img from 'src/components/layout/Img/index' import { getNetworkInfo } from 'src/config' +import { sameString } from 'src/utils/strings' const { nativeCoin } = getNetworkInfo() @@ -106,7 +107,7 @@ const CurrencyDropdown = (): React.ReactElement | null => { value={currencyName} > - {currencyName.toLocaleLowerCase() === nativeCoin.symbol.toLocaleLowerCase() ? ( + {sameString(currencyName, nativeCoin.symbol) ? ( {nativeCoin.symbol.toLocaleLowerCase()} (value === undefined ? '' : value.trim()) + +/** + * Util to compare two strings, comparison is case insensitive + * @param str1 + * @param str2 + * @returns {boolean} + */ +export const sameString = (str1: string | undefined, str2: string | undefined): boolean => { + if (!str1 || !str2) { + return false + } + + return str1.toLowerCase() === str2.toLowerCase() +} From bd953f9f7cd90bb4f6e9c024230872063851cf68 Mon Sep 17 00:00:00 2001 From: nicosampler Date: Wed, 21 Oct 2020 17:04:36 -0300 Subject: [PATCH 04/27] Add config for EWC and Volta --- src/config/assets/token_ewc.svg | 18 ++++++++++ src/config/networks/energy_web_chain.ts | 44 +++++++++++++++++++++++++ src/config/networks/index.ts | 4 +++ src/config/networks/volta.ts | 44 +++++++++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 src/config/assets/token_ewc.svg create mode 100644 src/config/networks/energy_web_chain.ts create mode 100644 src/config/networks/volta.ts diff --git a/src/config/assets/token_ewc.svg b/src/config/assets/token_ewc.svg new file mode 100644 index 0000000000..f52e22854d --- /dev/null +++ b/src/config/assets/token_ewc.svg @@ -0,0 +1,18 @@ + + + + +ewf_logo + + diff --git a/src/config/networks/energy_web_chain.ts b/src/config/networks/energy_web_chain.ts new file mode 100644 index 0000000000..62392f72d6 --- /dev/null +++ b/src/config/networks/energy_web_chain.ts @@ -0,0 +1,44 @@ +import EwcLogo from 'src/config/assets/token_ewc.svg' +import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config/networks/network.d' + +const baseConfig: EnvironmentSettings = { + txServiceUrl: 'https://safe-transaction.ewc.gnosis.io/api/v1', + safeAppsUrl: 'https://safe-apps.dev.gnosisdev.com', + gasPriceOracleUrl: 'https://station.energyweb.org', + rpcServiceUrl: 'https://rpc.energyweb.org', + networkExplorerName: 'Energy web explorer', + networkExplorerUrl: 'https://explorer.energyweb.org', + networkExplorerApiUrl: 'http://explorer.energyweb.org/api', +} + +const mainnet: NetworkConfig = { + environment: { + dev: { + ...baseConfig, + }, + staging: { + ...baseConfig, + safeAppsUrl: 'https://safe-apps.staging.gnosisdev.com', + }, + production: { + ...baseConfig, + safeAppsUrl: 'https://apps.gnosis-safe.io', + }, + }, + network: { + id: ETHEREUM_NETWORK.ENERGY_WEB_CHAIN, + backgroundColor: '#A566FF', + textColor: '#ffffff', + label: 'EWC', + isTestNet: false, + nativeCoin: { + address: '0x000', + name: 'Energy web token', + symbol: 'EWT', + decimals: 18, + logoUri: EwcLogo, + }, + } +} + +export default mainnet diff --git a/src/config/networks/index.ts b/src/config/networks/index.ts index 8944d16d91..682b33d3ed 100644 --- a/src/config/networks/index.ts +++ b/src/config/networks/index.ts @@ -2,10 +2,14 @@ import local from './local' import mainnet from './mainnet' import rinkeby from './rinkeby' import xdai from './xdai' +import energy_web_chain from './energy_web_chain' +import volta from './volta' export default { local, mainnet, rinkeby, xdai, + energy_web_chain, + volta } diff --git a/src/config/networks/volta.ts b/src/config/networks/volta.ts new file mode 100644 index 0000000000..49b6af2df4 --- /dev/null +++ b/src/config/networks/volta.ts @@ -0,0 +1,44 @@ +import EwcLogo from 'src/config/assets/token_ewc.svg' +import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config/networks/network.d' + +const baseConfig: EnvironmentSettings = { + txServiceUrl: 'https://safe-transaction.volta.gnosis.io/api/v1', + safeAppsUrl: 'https://safe-apps.dev.gnosisdev.com', + gasPriceOracleUrl: 'https://ethgasstation.info/json/ethgasAPI.json', + rpcServiceUrl: 'https://volta-rpc.energyweb.org', + networkExplorerName: 'Volta explorer', + networkExplorerUrl: 'https://volta-explorer.energyweb.org', + networkExplorerApiUrl: 'http://volta-explorer.energyweb.org/api', +} + +const mainnet: NetworkConfig = { + environment: { + dev: { + ...baseConfig, + }, + staging: { + ...baseConfig, + safeAppsUrl: 'https://safe-apps.staging.gnosisdev.com', + }, + production: { + ...baseConfig, + safeAppsUrl: 'https://apps.gnosis-safe.io', + }, + }, + network: { + id: ETHEREUM_NETWORK.VOLTA, + backgroundColor: '#514989', + textColor: '#ffffff', + label: 'Volta', + isTestNet: true, + nativeCoin: { + address: '0x000', + name: 'Energy web token', + symbol: 'EWT', + decimals: 18, + logoUri: EwcLogo, + }, + } +} + +export default mainnet From 894002a2a7c11ae54658a28dc49fa2588387303f Mon Sep 17 00:00:00 2001 From: nicosampler Date: Wed, 21 Oct 2020 17:35:37 -0300 Subject: [PATCH 05/27] review change --- src/logic/currencyValues/api/fetchCurrenciesRates.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/logic/currencyValues/api/fetchCurrenciesRates.ts b/src/logic/currencyValues/api/fetchCurrenciesRates.ts index ea04e21c24..6f3c751d27 100644 --- a/src/logic/currencyValues/api/fetchCurrenciesRates.ts +++ b/src/logic/currencyValues/api/fetchCurrenciesRates.ts @@ -1,12 +1,10 @@ import axios from 'axios' import BigNumber from 'bignumber.js' -import { getNetworkInfo } from 'src/config' import { EXCHANGE_RATE_URL } from 'src/utils/constants' import { fetchTokenCurrenciesBalances } from './fetchTokenCurrenciesBalances' import { sameString } from 'src/utils/strings' - -const { nativeCoin } = getNetworkInfo() +import { AVAILABLE_CURRENCIES } from '../store/model/currencyValues' const fetchCurrenciesRates = async ( baseCurrency: string, @@ -14,15 +12,14 @@ const fetchCurrenciesRates = async ( safeAddress: string, ): Promise => { let rate = 0 - - if (sameString(targetCurrencyValue, nativeCoin.symbol)) { + if (sameString(targetCurrencyValue, AVAILABLE_CURRENCIES.NETWORK)) { try { const result = await fetchTokenCurrenciesBalances(safeAddress) if (result?.data?.length) { rate = new BigNumber(1).div(result.data[0].fiatConversion).toNumber() } } catch (error) { - console.error(`Fetching ${nativeCoin.symbol} data from the relayer errored`, error) + console.error(`Fetching ${AVAILABLE_CURRENCIES.NETWORK} data from the relayer errored`, error) } return rate } From 03404857b0ce511fe92d05b2c9e139626947d277 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Thu, 22 Oct 2020 12:03:40 +0200 Subject: [PATCH 06/27] Join tests in same file --- .../wallets/__tests__/ethAddresses.test.ts | 293 ++++++++++++++++-- src/logic/wallets/tests/ethAddresses.test.ts | 282 ----------------- 2 files changed, 274 insertions(+), 301 deletions(-) delete mode 100644 src/logic/wallets/tests/ethAddresses.test.ts diff --git a/src/logic/wallets/__tests__/ethAddresses.test.ts b/src/logic/wallets/__tests__/ethAddresses.test.ts index ae54f538d4..28bb962b33 100644 --- a/src/logic/wallets/__tests__/ethAddresses.test.ts +++ b/src/logic/wallets/__tests__/ethAddresses.test.ts @@ -1,30 +1,285 @@ -import { sameAddress } from '../ethAddresses' +//@ts-nocheck +import { List } from 'immutable' -describe('ethAddresses utils', () => { - const ac0 = '0x0000000000000000000000000000000000000000' - const ac1Upper = '0x00000000000000000000000000000000000000A1' - const ac1Lower = '0x00000000000000000000000000000000000000a1' - const ac2 = '0x00000000000000000000000000000000000000A2' +import { + isUserAnOwner, + isUserAnOwnerOfAnySafe, + isValidEnsName, + sameAddress, + shortVersionOf, +} from 'src/logic/wallets/ethAddresses' +import makeSafe from 'src/logic/safe/store/models/safe' +import { makeOwner } from 'src/logic/safe/store/models/owner' - describe('sameAddress', () => { - it('Returns false if first argument is undefined', () => { - const res = sameAddress(undefined, ac0) - expect(res).toBeFalsy() +describe('src/logic/wallets/ethAddresses', () => { + describe('Utility function: sameAddress', () => { + it('It should return false if no address given', () => { + // given + const safeAddress = null + const safeAddress2 = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' + + // when + const result = sameAddress(safeAddress, safeAddress2) + + // then + expect(result).toBe(false) + }) + it('It should return false if not second address given', () => { + // given + const safeAddress = '0xdfA693da0D16F5E7E78FdCBeDe8FC6eBEa44f1Cf' + const safeAddress2 = null + + // when + const result = sameAddress(safeAddress, safeAddress2) + + // then + expect(result).toBe(false) + }) + it('It should return true if two equal addresses given', () => { + // given + const safeAddress = '0xdfA693da0D16F5E7E78FdCBeDe8FC6eBEa44f1Cf' + + // when + const result = sameAddress(safeAddress, safeAddress.toLowerCase()) + + // then + expect(result).toBe(true) + }) + it('If should return false if two different addresses given', () => { + // given + const safeAddress = '0xdfA693da0D16F5E7E78FdCBeDe8FC6eBEa44f1Cf' + const safeAddress2 = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' + + // when + const result = sameAddress(safeAddress, safeAddress2) + + // then + expect(result).toBe(false) + }) + }) + + describe('Utility function: shortVersionOf', () => { + it('It should return Unknown if no address given', () => { + // given + const safeAddress = null + const cut = 5 + const expectedResult = 'Unknown' + + // when + const result = shortVersionOf(safeAddress, cut) + + // then + expect(result).toBe(expectedResult) + }) + it('It should return 0x344...f0503 if given 0x344B941b1aAE2e4Be73987212FC4741687Bf0503 and a cut = 5', () => { + // given + const safeAddress = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' + const cut = 5 + const expectedResult = `0x344...f0503` + + // when + const result = shortVersionOf(safeAddress, cut) + + // then + expect(result).toBe(expectedResult) + }) + it('If should return the same address if a cut value bigger than the address length given', () => { + // given + const safeAddress = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' + const cut = safeAddress.length + const expectedResult = safeAddress + + // when + const result = shortVersionOf(safeAddress, cut) + + // then + expect(result).toBe(expectedResult) + }) + }) + + describe('Utility function: isUserAnOwner', () => { + it("Should return false if there's no Safe", () => { + // given + const userAddress = 'address1' + const safeInstance = null + const expectedResult = false + + // when + const result = isUserAnOwner(safeInstance, userAddress) + + // then + expect(result).toBe(expectedResult) + }) + it("Should return false if there's no `userAccount`", () => { + // given + const userAddress = null + const owners = List([makeOwner({ address: userAddress })]) + const safeInstance = makeSafe({ owners }) + const expectedResult = false + + // when + const result = isUserAnOwner(safeInstance, userAddress) + + // then + expect(result).toBe(expectedResult) + }) + it('Should return false if there are no owners for the Safe', () => { + // given + const userAddress = 'address1' + const owners = null + const safeInstance = makeSafe({ owners }) + const expectedResult = false + + // when + const result = isUserAnOwner(safeInstance, userAddress) + + // then + expect(result).toBe(expectedResult) + }) + it("Should return true if `userAccount` is not in the list of Safe's owners", () => { + // given + const userAddress = 'address1' + const owners = List([makeOwner({ address: userAddress })]) + const safeInstance = makeSafe({ owners }) + const expectedResult = true + + // when + const result = isUserAnOwner(safeInstance, userAddress) + + // then + expect(result).toBe(expectedResult) + }) + it("Should return false if `userAccount` is not in the list of Safe's owners", () => { + // given + const userAddress = 'address1' + const userAddress2 = 'address2' + const owners = List([makeOwner({ address: userAddress })]) + const safeInstance = makeSafe({ owners }) + const expectedResult = false + + // when + const result = isUserAnOwner(safeInstance, userAddress2) + + // then + expect(result).toBe(expectedResult) + }) + }) + + describe('Utility function: isUserAnOwnerOfAnySafe', () => { + it('Should return true if given a list of safes, one of them has an owner equal to the userAccount', () => { + // given + const userAddress = 'address1' + const userAddress2 = 'address2' + const owners1 = List([makeOwner({ address: userAddress })]) + const owners2 = List([makeOwner({ address: userAddress2 })]) + const safeInstance = makeSafe({ owners: owners1 }) + const safeInstance2 = makeSafe({ owners: owners2 }) + const safesList = List([safeInstance, safeInstance2]) + const expectedResult = true + + // when + const result = isUserAnOwnerOfAnySafe(safesList, userAddress) + + // then + expect(result).toBe(expectedResult) + }) + it('It should return false if given a list of safes, none of them has an owner equal to the userAccount', () => { + // given + const userAddress = 'address1' + const userAddress2 = 'address2' + const userAddress3 = 'address3' + const owners1 = List([makeOwner({ address: userAddress3 })]) + const owners2 = List([makeOwner({ address: userAddress2 })]) + const safeInstance = makeSafe({ owners: owners1 }) + const safeInstance2 = makeSafe({ owners: owners2 }) + const safesList = List([safeInstance, safeInstance2]) + const expectedResult = false + + // when + const result = isUserAnOwnerOfAnySafe(safesList, userAddress) + + // then + expect(result).toBe(expectedResult) + }) + }) + + describe('Utility function: isValidEnsName', () => { + it('If should return false if given no ens name', () => { + // given + const ensName = null + const expectedResult = false + + // when + const result = isValidEnsName(ensName) + + // then + expect(result).toBe(expectedResult) + }) + it('It should return false for an ens without extension in format [value].[eth|test|xyz|luxe]', () => { + // given + const ensName = 'test' + const expectedResult = false + + // when + const result = isValidEnsName(ensName) + + // then + expect(result).toBe(expectedResult) + }) + it('It should return false for an ens without the format [value].[eth|test|xyz|luxe]', () => { + // given + const ensName = 'test.et12312' + const expectedResult = false + + // when + const result = isValidEnsName(ensName) + + // then + expect(result).toBe(expectedResult) + }) + it('It should return true for an ens in format [value].eth', () => { + // given + const ensName = 'test.eth' + const expectedResult = true + + // when + const result = isValidEnsName(ensName) + + // then + expect(result).toBe(expectedResult) }) + it('It should return true for ens in format [value].test', () => { + // given + const ensName = 'test.test' + const expectedResult = true + + // when + const result = isValidEnsName(ensName) - it('Returns false if the second argument is undefined', () => { - const res = sameAddress(ac0, undefined) - expect(res).toBeFalsy() + // then + expect(result).toBe(expectedResult) }) + it('It should return true for an ens in the format [value].xyz', () => { + // given + const ensName = 'test.xyz' + const expectedResult = true - it('Returns false if the arguments have different literals', () => { - const res = sameAddress(ac1Upper, ac2) - expect(res).toBeFalsy() + // when + const result = isValidEnsName(ensName) + + // then + expect(result).toBe(expectedResult) }) + it('It should return true for an ens in format [value].luxe', () => { + // given + const ensName = 'test.luxe' + const expectedResult = true + + // when + const result = isValidEnsName(ensName) - it('Returns false if the arguments have the same literals', () => { - const res = sameAddress(ac1Upper, ac1Lower) - expect(res).toBeTruthy() + // then + expect(result).toBe(expectedResult) }) }) }) diff --git a/src/logic/wallets/tests/ethAddresses.test.ts b/src/logic/wallets/tests/ethAddresses.test.ts deleted file mode 100644 index 5191d21bbf..0000000000 --- a/src/logic/wallets/tests/ethAddresses.test.ts +++ /dev/null @@ -1,282 +0,0 @@ -//@ts-nocheck -import { - isUserAnOwner, - isUserAnOwnerOfAnySafe, - isValidEnsName, - sameAddress, - shortVersionOf, -} from 'src/logic/wallets/ethAddresses' -import makeSafe from 'src/logic/safe/store/models/safe' -import { makeOwner } from 'src/logic/safe/store/models/owner' -import { List } from 'immutable' - -describe('Utility function: sameAddress', () => { - it('It should return false if no address given', () => { - // given - const safeAddress = null - const safeAddress2 = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' - - // when - const result = sameAddress(safeAddress, safeAddress2) - - // then - expect(result).toBe(false) - }) - it('It should return false if not second address given', () => { - // given - const safeAddress = '0xdfA693da0D16F5E7E78FdCBeDe8FC6eBEa44f1Cf' - const safeAddress2 = null - - // when - const result = sameAddress(safeAddress, safeAddress2) - - // then - expect(result).toBe(false) - }) - it('It should return true if two equal addresses given', () => { - // given - const safeAddress = '0xdfA693da0D16F5E7E78FdCBeDe8FC6eBEa44f1Cf' - - // when - const result = sameAddress(safeAddress, safeAddress) - - // then - expect(result).toBe(true) - }) - it('If should return false if two different addresses given', () => { - // given - const safeAddress = '0xdfA693da0D16F5E7E78FdCBeDe8FC6eBEa44f1Cf' - const safeAddress2 = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' - - // when - const result = sameAddress(safeAddress, safeAddress2) - - // then - expect(result).toBe(false) - }) -}) - -describe('Utility function: shortVersionOf', () => { - it('It should return Unknown if no address given', () => { - // given - const safeAddress = null - const cut = 5 - const expectedResult = 'Unknown' - - // when - const result = shortVersionOf(safeAddress, cut) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return 0x344...f0503 if given 0x344B941b1aAE2e4Be73987212FC4741687Bf0503 and a cut = 5', () => { - // given - const safeAddress = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' - const cut = 5 - const expectedResult = `0x344...f0503` - - // when - const result = shortVersionOf(safeAddress, cut) - - // then - expect(result).toBe(expectedResult) - }) - it('If should return the same address if a cut value bigger than the address length given', () => { - // given - const safeAddress = '0x344B941b1aAE2e4Be73987212FC4741687Bf0503' - const cut = safeAddress.length - const expectedResult = safeAddress - - // when - const result = shortVersionOf(safeAddress, cut) - - // then - expect(result).toBe(expectedResult) - }) -}) - -describe('Utility function: isUserAnOwner', () => { - it("Should return false if there's no Safe", () => { - // given - const userAddress = 'address1' - const safeInstance = null - const expectedResult = false - - // when - const result = isUserAnOwner(safeInstance, userAddress) - - // then - expect(result).toBe(expectedResult) - }) - it("Should return false if there's no `userAccount`", () => { - // given - const userAddress = null - const owners = List([makeOwner({ address: userAddress })]) - const safeInstance = makeSafe({ owners }) - const expectedResult = false - - // when - const result = isUserAnOwner(safeInstance, userAddress) - - // then - expect(result).toBe(expectedResult) - }) - it('Should return false if there are no owners for the Safe', () => { - // given - const userAddress = 'address1' - const owners = null - const safeInstance = makeSafe({ owners }) - const expectedResult = false - - // when - const result = isUserAnOwner(safeInstance, userAddress) - - // then - expect(result).toBe(expectedResult) - }) - it("Should return true if `userAccount` is not in the list of Safe's owners", () => { - // given - const userAddress = 'address1' - const owners = List([makeOwner({ address: userAddress })]) - const safeInstance = makeSafe({ owners }) - const expectedResult = true - - // when - const result = isUserAnOwner(safeInstance, userAddress) - - // then - expect(result).toBe(expectedResult) - }) - it("Should return false if `userAccount` is not in the list of Safe's owners", () => { - // given - const userAddress = 'address1' - const userAddress2 = 'address2' - const owners = List([makeOwner({ address: userAddress })]) - const safeInstance = makeSafe({ owners }) - const expectedResult = false - - // when - const result = isUserAnOwner(safeInstance, userAddress2) - - // then - expect(result).toBe(expectedResult) - }) -}) - -describe('Utility function: isUserAnOwnerOfAnySafe', () => { - it('Should return true if given a list of safes, one of them has an owner equal to the userAccount', () => { - // given - const userAddress = 'address1' - const userAddress2 = 'address2' - const owners1 = List([makeOwner({ address: userAddress })]) - const owners2 = List([makeOwner({ address: userAddress2 })]) - const safeInstance = makeSafe({ owners: owners1 }) - const safeInstance2 = makeSafe({ owners: owners2 }) - const safesList = List([safeInstance, safeInstance2]) - const expectedResult = true - - // when - const result = isUserAnOwnerOfAnySafe(safesList, userAddress) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return false if given a list of safes, none of them has an owner equal to the userAccount', () => { - // given - const userAddress = 'address1' - const userAddress2 = 'address2' - const userAddress3 = 'address3' - const owners1 = List([makeOwner({ address: userAddress3 })]) - const owners2 = List([makeOwner({ address: userAddress2 })]) - const safeInstance = makeSafe({ owners: owners1 }) - const safeInstance2 = makeSafe({ owners: owners2 }) - const safesList = List([safeInstance, safeInstance2]) - const expectedResult = false - - // when - const result = isUserAnOwnerOfAnySafe(safesList, userAddress) - - // then - expect(result).toBe(expectedResult) - }) -}) - -describe('Utility function: isValidEnsName', () => { - it('If should return false if given no ens name', () => { - // given - const ensName = null - const expectedResult = false - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return false for an ens without extension in format [value].[eth|test|xyz|luxe]', () => { - // given - const ensName = 'test' - const expectedResult = false - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return false for an ens without the format [value].[eth|test|xyz|luxe]', () => { - // given - const ensName = 'test.et12312' - const expectedResult = false - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return true for an ens in format [value].eth', () => { - // given - const ensName = 'test.eth' - const expectedResult = true - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return true for ens in format [value].test', () => { - // given - const ensName = 'test.test' - const expectedResult = true - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return true for an ens in the format [value].xyz', () => { - // given - const ensName = 'test.xyz' - const expectedResult = true - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) - it('It should return true for an ens in format [value].luxe', () => { - // given - const ensName = 'test.luxe' - const expectedResult = true - - // when - const result = isValidEnsName(ensName) - - // then - expect(result).toBe(expectedResult) - }) -}) From a61c1c14b053aa47921fed7473fb9177cde4482e Mon Sep 17 00:00:00 2001 From: nicosampler Date: Thu, 22 Oct 2020 10:33:12 -0300 Subject: [PATCH 07/27] change price oracle in volta --- src/config/networks/volta.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/networks/volta.ts b/src/config/networks/volta.ts index 49b6af2df4..059a856ebb 100644 --- a/src/config/networks/volta.ts +++ b/src/config/networks/volta.ts @@ -4,7 +4,7 @@ import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config const baseConfig: EnvironmentSettings = { txServiceUrl: 'https://safe-transaction.volta.gnosis.io/api/v1', safeAppsUrl: 'https://safe-apps.dev.gnosisdev.com', - gasPriceOracleUrl: 'https://ethgasstation.info/json/ethgasAPI.json', + gasPriceOracleUrl: 'https://station.energyweb.org', rpcServiceUrl: 'https://volta-rpc.energyweb.org', networkExplorerName: 'Volta explorer', networkExplorerUrl: 'https://volta-explorer.energyweb.org', From 90582ac5c9bd609b5e2600cd1974f9e08bb21d3d Mon Sep 17 00:00:00 2001 From: nicosampler Date: Thu, 22 Oct 2020 10:47:23 -0300 Subject: [PATCH 08/27] add travis config for volta and ewc --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index 33f236b9f5..815504d7bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,14 @@ matrix: - REACT_APP_NETWORK='xdai' - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_XDAI} - STAGING_BUCKET_NAME=${STAGING_XDAI_BUCKET_NAME} + - env: + - REACT_APP_NETWORK='volta' + - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_VOLTA} + - STAGING_BUCKET_NAME=${STAGING_VOLTA_BUCKET_NAME} + - env: + - REACT_APP_NETWORK='energy_web_chain' + - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_EWC} + - STAGING_BUCKET_NAME=${STAGING_EWC_BUCKET_NAME} if: (branch = master AND NOT type = pull_request) OR tag IS present cache: yarn: true From 2326fc276060229e0d4853809c9f0ec3875ca2ec Mon Sep 17 00:00:00 2001 From: nicosampler Date: Thu, 22 Oct 2020 10:50:18 -0300 Subject: [PATCH 09/27] change config file to camelCase --- .../networks/{energy_web_chain.ts => energyWebChain.ts} | 0 src/config/networks/index.ts | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/config/networks/{energy_web_chain.ts => energyWebChain.ts} (100%) diff --git a/src/config/networks/energy_web_chain.ts b/src/config/networks/energyWebChain.ts similarity index 100% rename from src/config/networks/energy_web_chain.ts rename to src/config/networks/energyWebChain.ts diff --git a/src/config/networks/index.ts b/src/config/networks/index.ts index 682b33d3ed..7c532c65b5 100644 --- a/src/config/networks/index.ts +++ b/src/config/networks/index.ts @@ -2,7 +2,7 @@ import local from './local' import mainnet from './mainnet' import rinkeby from './rinkeby' import xdai from './xdai' -import energy_web_chain from './energy_web_chain' +import energyWebChain from './energyWebChain' import volta from './volta' export default { @@ -10,6 +10,6 @@ export default { mainnet, rinkeby, xdai, - energy_web_chain, + energy_web_chain: energyWebChain, volta } From 329b0489a160192935d818a0c84e011954949d2d Mon Sep 17 00:00:00 2001 From: nicosampler Date: Thu, 22 Oct 2020 11:03:11 -0300 Subject: [PATCH 10/27] add travis config to deploy for release v2.14.0 --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 815504d7bd..7edad07ae6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,8 +29,9 @@ matrix: - env: - REACT_APP_NETWORK='energy_web_chain' - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_EWC} - - STAGING_BUCKET_NAME=${STAGING_EWC_BUCKET_NAME} - if: (branch = master AND NOT type = pull_request) OR tag IS present + - STAGING_BUCKET_NAME=${STAGING_EWC_BUCKET_NAME} + if: ((branch = master OR branch = release/v2.14.0) AND NOT type = pull_request) OR tag IS present + cache: yarn: true before_script: From b2716c021fb7faa804564c4615f5497b6f2df841 Mon Sep 17 00:00:00 2001 From: nicosampler Date: Thu, 22 Oct 2020 13:06:28 -0300 Subject: [PATCH 11/27] rollback ewc filename --- .../networks/{energyWebChain.ts => energy_web_chain.ts} | 0 src/config/networks/index.ts | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/config/networks/{energyWebChain.ts => energy_web_chain.ts} (100%) diff --git a/src/config/networks/energyWebChain.ts b/src/config/networks/energy_web_chain.ts similarity index 100% rename from src/config/networks/energyWebChain.ts rename to src/config/networks/energy_web_chain.ts diff --git a/src/config/networks/index.ts b/src/config/networks/index.ts index 7c532c65b5..682b33d3ed 100644 --- a/src/config/networks/index.ts +++ b/src/config/networks/index.ts @@ -2,7 +2,7 @@ import local from './local' import mainnet from './mainnet' import rinkeby from './rinkeby' import xdai from './xdai' -import energyWebChain from './energyWebChain' +import energy_web_chain from './energy_web_chain' import volta from './volta' export default { @@ -10,6 +10,6 @@ export default { mainnet, rinkeby, xdai, - energy_web_chain: energyWebChain, + energy_web_chain, volta } From 0206adb1b7023b0c109da2af7f7c92c89dcde8a2 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 11:13:11 +0200 Subject: [PATCH 12/27] Update travis to build xDai only in master or version release --- .travis.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4b6b36800e..7b872739f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ matrix: - REACT_APP_NETWORK='xdai' - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_XDAI} - STAGING_BUCKET_NAME=${STAGING_XDAI_BUCKET_NAME} + if: (branch = master AND NOT type = pull_request) OR tag IS present - env: - REACT_APP_NETWORK='volta' - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_VOLTA} @@ -80,7 +81,7 @@ deploy: on: branch: master - # xDai testing on staging + # EWC testing on staging - provider: s3 bucket: $STAGING_BUCKET_NAME access_key_id: $AWS_ACCESS_KEY_ID @@ -90,8 +91,8 @@ deploy: upload_dir: current/app region: $AWS_DEFAULT_REGION on: - branch: release/v2.13.0 - condition: $REACT_APP_NETWORK = xdai + branch: release/v2.14.0 + condition: $REACT_APP_NETWORK = energy_web_chain # Prepare production deployment - provider: s3 From 0f6deef2bd71156eede2999cca251870a2ce3ff2 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 13:36:19 +0200 Subject: [PATCH 13/27] Add PR environment by network --- config/travis/deploy_pull_request.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/travis/deploy_pull_request.sh b/config/travis/deploy_pull_request.sh index ca0e155d84..e6f5e884fa 100755 --- a/config/travis/deploy_pull_request.sh +++ b/config/travis/deploy_pull_request.sh @@ -15,11 +15,11 @@ function deploy_pull_request { REVIEW_FEATURE_FOLDER="$REPO_NAME_ALPHANUMERIC/$PULL_REQUEST_NAME" # Deploy safe-team project - aws s3 sync build s3://${REVIEW_BUCKET_NAME}/${REVIEW_FEATURE_FOLDER}/app --delete + aws s3 sync build s3://${REVIEW_BUCKET_NAME}/${REVIEW_FEATURE_FOLDER}/${REACT_APP_NETWORK}/app --delete } function publish_pull_request_urls_in_github { - REVIEW_FEATURE_URL="https://$PULL_REQUEST_NAME--$REPO_NAME_ALPHANUMERIC.$REVIEW_ENVIRONMENT_DOMAIN/app" + REVIEW_FEATURE_URL="https://$PULL_REQUEST_NAME--$REPO_NAME_ALPHANUMERIC.$REVIEW_ENVIRONMENT_DOMAIN/$REACT_APP_NETWORK/app" # Using the Issues api instead of the PR api # Done so because every PR is an issue, and the issues api allows to post general comments, From f209f8f817c7e6ce18bad6ef439e614bfae3a1ab Mon Sep 17 00:00:00 2001 From: nicosampler Date: Fri, 23 Oct 2020 08:50:45 -0300 Subject: [PATCH 14/27] simplify some contstants assignments --- src/utils/constants.ts | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/utils/constants.ts b/src/utils/constants.ts index cf6fbe2efb..4a9e2bb0f9 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,25 +1,11 @@ -import { ETHEREUM_NETWORK } from 'src/config/networks/network.d' - export const APP_ENV = process.env.REACT_APP_ENV export const NODE_ENV = process.env.NODE_ENV export const NETWORK = process.env.REACT_APP_NETWORK?.toUpperCase() || 'RINKEBY' export const INTERCOM_ID = APP_ENV === 'production' ? process.env.REACT_APP_INTERCOM_ID : 'plssl1fl' export const GOOGLE_ANALYTICS_ID = process.env.REACT_APP_GOOGLE_ANALYTICS || '' -export const PORTIS_ID = { - [ETHEREUM_NETWORK.RINKEBY]: '852b763d-f28b-4463-80cb-846d7ec5806b', - [ETHEREUM_NETWORK.MAINNET]: process.env.REACT_APP_PORTIS_ID, - [ETHEREUM_NETWORK.XDAI]: process.env.REACT_APP_PORTIS_ID, -} -export const FORTMATIC_KEY = { - [ETHEREUM_NETWORK.RINKEBY]: 'pk_test_CAD437AA29BE0A40', - [ETHEREUM_NETWORK.MAINNET]: process.env.REACT_APP_FORTMATIC_KEY, - [ETHEREUM_NETWORK.XDAI]: process.env.REACT_APP_FORTMATIC_KEY, -} -export const BLOCKNATIVE_KEY = { - [ETHEREUM_NETWORK.RINKEBY]: '7fbb9cee-7e97-4436-8770-8b29a9a8814c', - [ETHEREUM_NETWORK.MAINNET]: process.env.REACT_APP_BLOCKNATIVE_KEY, - [ETHEREUM_NETWORK.XDAI]: process.env.REACT_APP_BLOCKNATIVE_KEY, -} +export const PORTIS_ID = process.env.REACT_APP_PORTIS_ID ?? '852b763d-f28b-4463-80cb-846d7ec5806b' +export const FORTMATIC_KEY = process.env.REACT_APP_FORTMATIC_KEY ?? 'pk_test_CAD437AA29BE0A40' +export const BLOCKNATIVE_KEY = process.env.REACT_APP_BLOCKNATIVE_KEY ?? '7fbb9cee-7e97-4436-8770-8b29a9a8814c' /* * Not being used export const SQUARELINK_ID = { From 141f7d43cc5e4bfcaf6a62f9a8b319ab9ae58658 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 13:54:28 +0200 Subject: [PATCH 15/27] Add PUBLIC_URL overwrite for PRs --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 7b872739f1..4839be2c4b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,6 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; + - if [[ $TRAVIS_PULL_REQUEST == "true" ]]; then export PUBLIC_URL='$REACT_APP_NETWORK/app'; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From f6df33c899a87d334e4dd148b54d396d8c8473f2 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 14:22:22 +0200 Subject: [PATCH 16/27] Change PULL_REQUEST condition test --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4839be2c4b..ab6eb751be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; - - if [[ $TRAVIS_PULL_REQUEST == "true" ]]; then export PUBLIC_URL='$REACT_APP_NETWORK/app'; fi; + - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL='$REACT_APP_NETWORK/app'; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From 57d1b142436e537839a6ca97e8298ff4c5cf14e8 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 15:02:06 +0200 Subject: [PATCH 17/27] Add brackets to env var --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ab6eb751be..64ab0f3002 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; - - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL='$REACT_APP_NETWORK/app'; fi; + - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL='${REACT_APP_NETWORK}/app'; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From a327c82d57d1c53d6ff99563befa107c6375c314 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 15:42:59 +0200 Subject: [PATCH 18/27] Update env var --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 64ab0f3002..5c11272a88 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; - - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL='${REACT_APP_NETWORK}/app'; fi; + - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL="${REACT_APP_NETWORK}/app"; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From 850c52520e2737c9f2ffca12988a3fcec5e2bee8 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 16:02:18 +0200 Subject: [PATCH 19/27] Set Public URL to base dir in PR --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5c11272a88..bf20970a77 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; - - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL="${REACT_APP_NETWORK}/app"; fi; + - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL=""; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From 605292629be1a1a5d4c9bdcf00d5b808e290caa9 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 16:17:36 +0200 Subject: [PATCH 20/27] Set public_url base route --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bf20970a77..78131db860 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; - - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL=""; fi; + - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL="/"; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From d3b3ff098f4740dd7137a77cfb0a957096a056b6 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 16:29:55 +0200 Subject: [PATCH 21/27] Use absolute path for PUBLIC_URL --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 78131db860..7219e4b01a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ cache: yarn: true before_script: - if [[ -n "$TRAVIS_TAG" ]]; then export REACT_APP_ENV='production'; fi; - - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL="/"; fi; + - if [ $TRAVIS_PULL_REQUEST != "false" ]; then export PUBLIC_URL="/${REACT_APP_NETWORK}/app"; fi; before_install: # Needed to deploy pull request and releases - sudo apt-get update From 13b4222a2a41627e16be87f82f7c2a398db44826 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 17:14:15 +0200 Subject: [PATCH 22/27] Fix missing https:// --- src/config/networks/energy_web_chain.ts | 2 +- src/config/networks/volta.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config/networks/energy_web_chain.ts b/src/config/networks/energy_web_chain.ts index 62392f72d6..6cf810b61a 100644 --- a/src/config/networks/energy_web_chain.ts +++ b/src/config/networks/energy_web_chain.ts @@ -8,7 +8,7 @@ const baseConfig: EnvironmentSettings = { rpcServiceUrl: 'https://rpc.energyweb.org', networkExplorerName: 'Energy web explorer', networkExplorerUrl: 'https://explorer.energyweb.org', - networkExplorerApiUrl: 'http://explorer.energyweb.org/api', + networkExplorerApiUrl: 'https://explorer.energyweb.org/api', } const mainnet: NetworkConfig = { diff --git a/src/config/networks/volta.ts b/src/config/networks/volta.ts index 059a856ebb..40574ac99a 100644 --- a/src/config/networks/volta.ts +++ b/src/config/networks/volta.ts @@ -8,7 +8,7 @@ const baseConfig: EnvironmentSettings = { rpcServiceUrl: 'https://volta-rpc.energyweb.org', networkExplorerName: 'Volta explorer', networkExplorerUrl: 'https://volta-explorer.energyweb.org', - networkExplorerApiUrl: 'http://volta-explorer.energyweb.org/api', + networkExplorerApiUrl: 'https://volta-explorer.energyweb.org/api', } const mainnet: NetworkConfig = { From 873437c8bc991824bd3d9f409d7f6b81c200116f Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Fri, 23 Oct 2020 17:35:06 +0200 Subject: [PATCH 23/27] Adapt EWC/Volta config to use new gasPriceOracle format --- src/config/networks/energy_web_chain.ts | 5 ++++- src/config/networks/volta.ts | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/config/networks/energy_web_chain.ts b/src/config/networks/energy_web_chain.ts index 6cf810b61a..ee705489bf 100644 --- a/src/config/networks/energy_web_chain.ts +++ b/src/config/networks/energy_web_chain.ts @@ -4,7 +4,10 @@ import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config const baseConfig: EnvironmentSettings = { txServiceUrl: 'https://safe-transaction.ewc.gnosis.io/api/v1', safeAppsUrl: 'https://safe-apps.dev.gnosisdev.com', - gasPriceOracleUrl: 'https://station.energyweb.org', + gasPriceOracle: { + url: 'https://station.energyweb.org', + gasParameter: 'standard', + }, rpcServiceUrl: 'https://rpc.energyweb.org', networkExplorerName: 'Energy web explorer', networkExplorerUrl: 'https://explorer.energyweb.org', diff --git a/src/config/networks/volta.ts b/src/config/networks/volta.ts index 40574ac99a..d8930e6b34 100644 --- a/src/config/networks/volta.ts +++ b/src/config/networks/volta.ts @@ -4,7 +4,10 @@ import { EnvironmentSettings, ETHEREUM_NETWORK, NetworkConfig } from 'src/config const baseConfig: EnvironmentSettings = { txServiceUrl: 'https://safe-transaction.volta.gnosis.io/api/v1', safeAppsUrl: 'https://safe-apps.dev.gnosisdev.com', - gasPriceOracleUrl: 'https://station.energyweb.org', + gasPriceOracle: { + url: 'https://station.energyweb.org', + gasParameter: 'standard', + }, rpcServiceUrl: 'https://volta-rpc.energyweb.org', networkExplorerName: 'Volta explorer', networkExplorerUrl: 'https://volta-explorer.energyweb.org', From ed7264b9347f84f1df1ce7be6bfee55bfaaf84a1 Mon Sep 17 00:00:00 2001 From: nicosampler Date: Tue, 27 Oct 2020 11:41:57 -0300 Subject: [PATCH 24/27] disable openZeppeling in volta and EWC --- src/routes/safe/components/Apps/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/safe/components/Apps/utils.ts b/src/routes/safe/components/Apps/utils.ts index da77d42427..31b2572f91 100644 --- a/src/routes/safe/components/Apps/utils.ts +++ b/src/routes/safe/components/Apps/utils.ts @@ -74,8 +74,8 @@ export const staticAppsList: Array<{ url: string; disabled: boolean; networks: n networks: [ ETHEREUM_NETWORK.MAINNET, ETHEREUM_NETWORK.RINKEBY, - ETHEREUM_NETWORK.ENERGY_WEB_CHAIN, - ETHEREUM_NETWORK.VOLTA, + //ETHEREUM_NETWORK.ENERGY_WEB_CHAIN, + //ETHEREUM_NETWORK.VOLTA, // ETHEREUM_NETWORK.XDAI, ], }, From 7d6820b4690b710fb3b3220434c4b9e456687d33 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Tue, 27 Oct 2020 16:44:10 +0100 Subject: [PATCH 25/27] Deploy EWC to staging --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7219e4b01a..466a67de4b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -if: (branch = development) OR (branch = master) OR (type = pull_request) OR (tag IS present) +if: (branch = development) OR (branch = master) OR (branch = issue-1253) OR (type = pull_request) OR (tag IS present) sudo: required dist: bionic language: node_js @@ -31,7 +31,7 @@ matrix: - REACT_APP_NETWORK='energy_web_chain' - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_EWC} - STAGING_BUCKET_NAME=${STAGING_EWC_BUCKET_NAME} - if: ((branch = master OR branch = release/v2.14.0) AND NOT type = pull_request) OR tag IS present + if: ((branch = master OR branch = issue-1253) AND NOT type = pull_request) OR tag IS present cache: yarn: true @@ -92,7 +92,7 @@ deploy: upload_dir: current/app region: $AWS_DEFAULT_REGION on: - branch: release/v2.14.0 + branch: issue-1253 condition: $REACT_APP_NETWORK = energy_web_chain # Prepare production deployment From 08e270b8830d397396733ced944cd5c193f2f163 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Tue, 27 Oct 2020 19:05:52 +0100 Subject: [PATCH 26/27] Fix Portis, Fortmatic and Blocknative key refactor --- src/components/ConnectButton/index.tsx | 4 +--- src/logic/wallets/utils/walletList.ts | 8 +++----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/components/ConnectButton/index.tsx b/src/components/ConnectButton/index.tsx index a520594bf8..478a571218 100644 --- a/src/components/ConnectButton/index.tsx +++ b/src/components/ConnectButton/index.tsx @@ -3,7 +3,6 @@ import React from 'react' import Button from 'src/components/layout/Button' import { getNetworkId } from 'src/config' -import { ETHEREUM_NETWORK } from 'src/config/networks/network.d' import { getWeb3, setWeb3 } from 'src/logic/wallets/getWeb3' import { fetchProvider } from 'src/logic/wallets/store/actions' import transactionDataCheck from 'src/logic/wallets/transactionDataCheck' @@ -12,7 +11,6 @@ import { store } from 'src/store' import { BLOCKNATIVE_KEY } from 'src/utils/constants' const networkId = getNetworkId() -const BLOCKNATIVE_API_KEY = BLOCKNATIVE_KEY[networkId] ?? BLOCKNATIVE_KEY[ETHEREUM_NETWORK.RINKEBY] let lastUsedAddress = '' let providerName @@ -20,7 +18,7 @@ let providerName const wallets = getSupportedWallets() export const onboard = Onboard({ - dappId: BLOCKNATIVE_API_KEY, + dappId: BLOCKNATIVE_KEY, networkId: networkId, subscriptions: { wallet: (wallet) => { diff --git a/src/logic/wallets/utils/walletList.ts b/src/logic/wallets/utils/walletList.ts index 02f13f09b0..05e2b730c7 100644 --- a/src/logic/wallets/utils/walletList.ts +++ b/src/logic/wallets/utils/walletList.ts @@ -1,13 +1,11 @@ import { WalletInitOptions } from 'bnc-onboard/dist/src/interfaces' import { getNetworkId, getRpcServiceUrl, getNetworkConfigDisabledWallets } from 'src/config' -import { ETHEREUM_NETWORK, WALLETS } from 'src/config/networks/network.d' +import { WALLETS } from 'src/config/networks/network.d' import { FORTMATIC_KEY, PORTIS_ID } from 'src/utils/constants' const networkId = getNetworkId() const disabledWallets = getNetworkConfigDisabledWallets() -const PORTIS_DAPP_ID = PORTIS_ID[networkId] ?? PORTIS_ID[ETHEREUM_NETWORK.RINKEBY] -const FORTMATIC_API_KEY = FORTMATIC_KEY[networkId] ?? FORTMATIC_KEY[ETHEREUM_NETWORK.RINKEBY] type Wallet = WalletInitOptions & { desktop: boolean @@ -44,12 +42,12 @@ const wallets: Wallet[] = [ { walletName: WALLETS.DAPPER, desktop: false }, { walletName: WALLETS.FORTMATIC, - apiKey: FORTMATIC_API_KEY, + apiKey: FORTMATIC_KEY, desktop: true, }, { walletName: WALLETS.PORTIS, - apiKey: PORTIS_DAPP_ID, + apiKey: PORTIS_ID, desktop: true, }, { walletName: WALLETS.AUTHEREUM, desktop: false }, From 04162fb56da317f6f3d383132112cdaf4fd87c86 Mon Sep 17 00:00:00 2001 From: Daniel Sanchez Date: Wed, 28 Oct 2020 12:38:27 +0100 Subject: [PATCH 27/27] Set EWC deployment to release/2.14.0 --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 466a67de4b..9002cad514 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -if: (branch = development) OR (branch = master) OR (branch = issue-1253) OR (type = pull_request) OR (tag IS present) +if: (branch = development) OR (branch = master) OR (branch = release/2.14.0) OR (type = pull_request) OR (tag IS present) sudo: required dist: bionic language: node_js @@ -31,7 +31,7 @@ matrix: - REACT_APP_NETWORK='energy_web_chain' - REACT_APP_GOOGLE_ANALYTICS=${REACT_APP_GOOGLE_ANALYTICS_ID_EWC} - STAGING_BUCKET_NAME=${STAGING_EWC_BUCKET_NAME} - if: ((branch = master OR branch = issue-1253) AND NOT type = pull_request) OR tag IS present + if: ((branch = master OR branch = release/2.14.0) AND NOT type = pull_request) OR tag IS present cache: yarn: true @@ -92,7 +92,7 @@ deploy: upload_dir: current/app region: $AWS_DEFAULT_REGION on: - branch: issue-1253 + branch: release/2.14.0 condition: $REACT_APP_NETWORK = energy_web_chain # Prepare production deployment