Skip to content

Commit

Permalink
DASH-591 Fix fio raw abi calls on selection page.
Browse files Browse the repository at this point in the history
  • Loading branch information
trukhilio committed Aug 28, 2023
1 parent 5a9180b commit 4cd2cee
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 3 deletions.
14 changes: 14 additions & 0 deletions client/src/api/fio.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { FIOSDK } from '@fioprotocol/fiosdk';
import { Constants as sdkConstants } from '@fioprotocol/fiosdk/lib/utils/constants';
import { Transactions as sdkTransactions } from '@fioprotocol/fiosdk/lib/transactions/Transactions';
import { createHash } from 'crypto-browserify';
import superagent from 'superagent';
import { AvailabilityResponse } from '@fioprotocol/fiosdk/src/entities/AvailabilityResponse';
Expand Down Expand Up @@ -853,4 +854,17 @@ export default class Fio {
action: 'getObtData',
});
};

getRawAbi = async (): Promise<void> => {
for (const accountName of sdkConstants.rawAbiAccountName) {
try {
if (!sdkTransactions.abiMap.get(accountName)) {
const abiResponse = await this.publicFioSDK.getAbi(accountName);
sdkTransactions.abiMap.set(abiResponse.account_name, abiResponse);
}
} catch (e) {
log.error('Raw Abi Error:', e);
}
}
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ import MathOp from '../../util/math';
import { convertFioPrices } from '../../util/prices';
import { setFioName } from '../../utils';
import { fireAnalyticsEventDebounced } from '../../util/analytics';
import useEffectOnce from '../../hooks/general';
import apis from '../../api';

import {
DomainsArrItemType,
Expand Down Expand Up @@ -296,6 +298,8 @@ export const useContext = (): UseContextProps => {
const [previousAddressValue, setPreviousAddressValue] = useState<string>(
null,
);
const [isRawAbiLoading, toggleIsRawAbiLoading] = useState<boolean>(false);
const [hasRawAbiLoaded, setIsRawAbiLoaded] = useState<boolean>(false);

const cartHasFreeItem = cartItems.some(
cartItem => cartItem.domainType === DOMAIN_TYPE.FREE,
Expand Down Expand Up @@ -549,14 +553,23 @@ export const useContext = (): UseContextProps => {
addCartItem(selectedItem);
};

const getFioRawAbis = useCallback(async () => {
toggleIsRawAbiLoading(true);

await apis.fio.getRawAbi();

setIsRawAbiLoaded(true);
toggleIsRawAbiLoading(false);
}, []);

useEffect(() => {
dispatch(getDomains());
}, [dispatch]);

useEffect(() => {
if (domainsLoaing) return;
if (domainsLoaing || !hasRawAbiLoaded) return;
validateAddress(addressValue);
}, [addressValue, domainsLoaing, validateAddress]);
}, [addressValue, domainsLoaing, hasRawAbiLoaded, validateAddress]);

useEffect(() => {
for (const fioWallet of fioWallets) {
Expand Down Expand Up @@ -627,11 +640,15 @@ export const useContext = (): UseContextProps => {
roe,
]);

useEffectOnce(() => {
getFioRawAbis();
}, []);

return {
additionalItemsList,
addressValue,
error,
loading: loading || domainsLoaing,
loading: loading || domainsLoaing || isRawAbiLoading,
suggestedItemsList,
usersItemsList,
setAddressValue,
Expand Down

0 comments on commit 4cd2cee

Please sign in to comment.