fixing + testing fortmatic integration

This commit is contained in:
David Sun
2019-12-19 16:15:18 -08:00
parent 7ba754d2a4
commit f458815541
7 changed files with 30 additions and 41 deletions

View File

@@ -53,7 +53,7 @@
"babel-runtime": "^6.26.0",
"bowser": "^1.9.4",
"copy-to-clipboard": "^3.0.8",
"fortmatic": "^0.8.2",
"fortmatic": "^1.0.1",
"lodash": "^4.17.11",
"polished": "^1.9.2",
"react": "^16.5.2",

View File

@@ -199,7 +199,7 @@
};
const render = renderOptionsOverrides => {
const renderOptionsDefaults = {
orderSource: 'https://api.0x.org/sra/',
orderSource: 'https://api.0x.org/sra',
onClose: () => {
console.log('0x Instant Closed');
},

View File

@@ -45,6 +45,7 @@ export class OrderDetails extends React.PureComponent<OrderDetailsProps> {
private _renderRows(): React.ReactNode {
const { swapQuoteInfo } = this.props;
console.log(swapQuoteInfo);
return (
<React.Fragment>
<OrderDetailsRow

View File

@@ -76,10 +76,7 @@ export const asyncData = {
? await (provider as any).enable()
: await web3Wrapper.getAvailableAddressesAsync();
} else {
// If the provider is fortmatic don't try to get available addresses or it will prompt the user all the time on the heartbeat
if (shouldAttemptUnlock) {
availableAddresses = await web3Wrapper.getAvailableAddressesAsync();
}
availableAddresses = await web3Wrapper.getAvailableAddressesAsync();
}
} catch (e) {
analytics.trackAccountUnlockDenied();

View File

@@ -119,6 +119,7 @@ export const createReducer = (initialState: State) => {
const newSwapQuoteIfExists = action.data;
const shouldUpdate =
newSwapQuoteIfExists === undefined || doesSwapQuoteMatchState(newSwapQuoteIfExists, state);
console.log('shouldUpdate', newSwapQuoteIfExists, shouldUpdate);
if (shouldUpdate) {
return {
...state,
@@ -280,9 +281,13 @@ const doesSwapQuoteMatchState = (swapQuote: MarketBuySwapQuote, state: State): b
const selectedAssetIfExists = state.selectedAsset;
const selectedAssetUnitAmountIfExists = state.selectedAssetUnitAmount;
// if no selectedAsset or selectedAssetAmount exists on the current state, return false
console.log('hmmmm?');
if (selectedAssetIfExists === undefined || selectedAssetUnitAmountIfExists === undefined) {
return false;
}
console.log('lol wut', selectedAssetIfExists.assetData);
console.log(selectedAssetIfExists.assetData);
console.log(swapQuote.makerAssetData);
// if swapQuote's assetData does not match that of the current selected asset, return false
if (selectedAssetIfExists.assetData !== swapQuote.makerAssetData) {
return false;
@@ -290,13 +295,14 @@ const doesSwapQuoteMatchState = (swapQuote: MarketBuySwapQuote, state: State): b
// if ERC20 and swapQuote's makerAssetFillAmount does not match selectedAssetAmount, return false
// if ERC721, return true
const selectedAssetMetaData = selectedAssetIfExists.metaData;
console.log('here then');
if (selectedAssetMetaData.assetProxyId === AssetProxyId.ERC20) {
const selectedAssetAmountBaseUnits = Web3Wrapper.toBaseUnitAmount(
selectedAssetUnitAmountIfExists,
selectedAssetMetaData.decimals,
);
const doesAssetAmountMatch = selectedAssetAmountBaseUnits.eq(swapQuote.makerAssetFillAmount);
console.log('doesAssetAmountMatch', doesAssetAmountMatch);
return doesAssetAmountMatch;
} else {
return true;

View File

@@ -82,42 +82,26 @@ export const providerStateFactory = {
network: Network,
walletDisplayName?: string,
): ProviderState => {
// Uses fortmatic as default provider
const fm = new Fortmatic(FORTMATIC_API_KEY);
if (fm) {
const fmProvider = fm.getProvider();
const providerState: ProviderState = {
displayName: envUtil.getProviderDisplayName(fmProvider),
name: envUtil.getProviderName(fmProvider),
provider: fmProvider,
web3Wrapper: new Web3Wrapper(fmProvider),
swapQuoter: assetSwapperFactory.getSwapQuoter(fm, orderSource, network),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(fm, network),
account: NO_ACCOUNT,
orderSource,
};
return providerState;
} else {
const provider = providerFactory.getFallbackNoSigningProvider(network);
const providerState: ProviderState = {
name: 'Fallback',
displayName: walletDisplayName || envUtil.getProviderDisplayName(provider),
provider,
web3Wrapper: new Web3Wrapper(provider),
swapQuoter: assetSwapperFactory.getSwapQuoter(provider, orderSource, network),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(provider, network),
account: NO_ACCOUNT,
orderSource,
};
return providerState;
}
const provider = providerFactory.getFallbackNoSigningProvider(network);
const providerState: ProviderState = {
name: 'Fallback',
displayName: walletDisplayName || envUtil.getProviderDisplayName(provider),
provider,
web3Wrapper: new Web3Wrapper(provider),
swapQuoter: assetSwapperFactory.getSwapQuoter(provider, orderSource, network),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(provider, network),
account: NO_ACCOUNT,
orderSource,
};
return providerState;
},
getProviderStateBasedOnProviderType: (
currentProviderState: ProviderState,
providerType: ProviderType,
): ProviderState => {
let providerState = currentProviderState;
const network = currentProviderState.swapQuoter.networkId;
console.log('lets see', providerState, providerType);
const chainId = currentProviderState.swapQuoter.chainId;
const orderSource = currentProviderState.orderSource;
// Returns current provider if the provider type selected is not found
if (providerType === ProviderType.MetaMask) {
@@ -128,8 +112,8 @@ export const providerStateFactory = {
name: envUtil.getProviderName(provider),
provider,
web3Wrapper: new Web3Wrapper(provider),
swapQuoter: assetSwapperFactory.getSwapQuoter(provider, orderSource, network),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(provider, network),
swapQuoter: assetSwapperFactory.getSwapQuoter(provider, orderSource, chainId),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(provider, chainId),
account: LOADING_ACCOUNT,
orderSource,
};
@@ -143,8 +127,8 @@ export const providerStateFactory = {
name: envUtil.getProviderName(fmProvider),
provider: fmProvider,
web3Wrapper: new Web3Wrapper(fmProvider),
swapQuoter: assetSwapperFactory.getSwapQuoter(fmProvider, orderSource, network),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(fmProvider, network),
swapQuoter: assetSwapperFactory.getSwapQuoter(fmProvider, orderSource, chainId),
swapQuoteConsumer: assetSwapperFactory.getSwapQuoteConsumer(fmProvider, chainId),
account: LOADING_ACCOUNT,
orderSource,
};

View File

@@ -69,6 +69,7 @@ export const swapQuoteUpdater = {
// We have a successful new swap quote
errorFlasher.clearError(dispatch);
// invalidate the last swap quote.
console.log('newSwapQuote', newSwapQuote);
dispatch(actions.updateLatestSwapQuote(newSwapQuote));
analytics.trackQuoteFetched(newSwapQuote, fetchOrigin);
},