fix: build errors

This commit is contained in:
bartosz-lipinski 2021-03-03 21:17:20 -06:00
parent 9b74f8ba75
commit 99f6d53aad
9 changed files with 41 additions and 30 deletions

View File

@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react';
import { contexts, utils, ParsedAccount, NumericInput, TokenIcon, TokenDisplay } from '@oyster/common';
import { Card, Select } from 'antd';
import './style.less';
import { TokenList, TokenInfo } from '@uniswap/token-lists';
import { useEthereum } from '../../contexts';
const { getTokenName } = utils;
const { cache } = contexts.Accounts;
const { useConnectionConfig } = contexts.Connection;
@ -18,17 +18,7 @@ export function EthereumInput(props: {
}) {
const [balance, setBalance] = useState<number>(0);
const [lastAmount, setLastAmount] = useState<string>('');
const [tokens, setTokens] = useState<TokenInfo[]>([]);
useEffect(() => {
(async () => {
const listResponse = await fetch('https://tokens.coingecko.com/uniswap/all.json');
const tokenList: TokenList = await listResponse.json();
setTokens(tokenList.tokens);
})();
}, [setTokens])
const { tokens } = useEthereum();
const renderReserveAccounts = tokens.map((token) => {
const mint = token.address;

View File

@ -10,6 +10,7 @@ import Authereum from "authereum";
import { Bitski } from "bitski";
import { useConnectionConfig, useWallet } from "@oyster/common";
import { ENV } from "@solana/spl-token-registry";
import { TokenList, TokenInfo } from '@uniswap/token-lists';
const providerOptions = {
walletconnect: {
@ -41,17 +42,43 @@ const providerOptions = {
export interface EthereumContextState {
connect: () => Promise<void>;
web3?: Web3
web3?: Web3;
tokens: TokenInfo[];
tokenMap: Map<string, TokenInfo>;
}
export const EthereumContext = createContext<EthereumContextState>({
connect: async () => { },
tokens: [],
tokenMap: new Map<string, TokenInfo>(),
});
export const EthereumProvider: FunctionComponent = ({children}) => {
const [web3, setWeb3] = useState<Web3>();
const { env } = useConnectionConfig();
const { connected } = useWallet();
const [tokens, setTokens] = useState<{
map: Map<string, TokenInfo>,
list: TokenInfo[],
}>({
map: new Map<string, TokenInfo>(),
list: [],
});
useEffect(() => {
(async () => {
const listResponse = await fetch('https://tokens.coingecko.com/uniswap/all.json');
const tokenList: TokenList = await listResponse.json();
setTokens({
map: tokenList.tokens.reduce((acc, val) => {
acc.set(val.address, val);
return acc;
}, new Map<string, TokenInfo>()),
list: tokenList.tokens,
});
})();
}, [setTokens]);
const connect = useCallback(async () => {
const web3Modal = new Web3Modal({
@ -96,7 +123,7 @@ export const EthereumProvider: FunctionComponent = ({children}) => {
}, [connect, connected])
return (
<EthereumContext.Provider value={{ web3, connect }}>
<EthereumContext.Provider value={{ web3, connect, tokens: tokens.list, tokenMap: tokens.map }}>
{children}
</EthereumContext.Provider>
);

View File

@ -8,7 +8,8 @@ import React, {
import { MintInfo } from "@solana/spl-token";
import { useHistory, useLocation } from "react-router-dom";
import bs58 from "bs58";
import { KnownToken, TokenAccount } from "@oyster/common";
import { TokenAccount } from "@oyster/common";
import { KnownToken } from '@solana/spl-token-registry';
import { useConnection, useConnectionConfig, useAccountByMint, useMint, getTokenName, getTokenIcon, convert } from "@oyster/common";
export interface TokenContextState {

View File

@ -10,7 +10,7 @@ import './itemStyle.less';
import { Totals } from '../../models/totals';
import { Link } from 'react-router-dom';
import {useLockedFundsAccounts} from "../../hooks/useLockedFundsAccounts";
import {EtherscanLink} from "@oyster/common/dist/lib/components/EtherscanLink";
import { EtherscanLink } from "@oyster/common";
import {ASSET_CHAIN} from "../../utils/assets";
const { fromLamports, getTokenName, wadToLamports } = utils;
const { cache } = contexts.Accounts;

View File

@ -1,5 +1,6 @@
import React from 'react';
import { useAccountByMint, useMint } from '../../contexts/accounts';
import { useMint } from '../../contexts/accounts';
import { useAccountByMint } from '../../hooks';
import { TokenIcon } from '../TokenIcon';
export const TokenDisplay = (props: {

View File

@ -10,3 +10,4 @@ export { ActionConfirmation } from './ActionConfirmation/index';
export { BackButton } from './BackButton/index';
export { TokenIcon } from './TokenIcon';
export { TokenDisplay } from './TokenDisplay';
export { EtherscanLink } from './EtherscanLink';

View File

@ -501,17 +501,6 @@ export function useMint(key?: string | PublicKey) {
return mint;
}
export const useAccountByMint = (mint: string) => {
const { userAccounts } = useUserAccounts();
const index = userAccounts.findIndex((acc) => acc.info.mint.toBase58() === mint);
if (index !== -1) {
return userAccounts[index];
}
return;
};
export function useAccount(pubKey?: PublicKey) {
const connection = useConnection();
const [account, setAccount] = useState<TokenAccount>();

View File

@ -14,4 +14,4 @@ export * as walletAdapters from './wallet-adapters';
export { TokenAccount } from './models';
export { ParsedAccount, ParsedAccountBase } from './contexts';
export { KnownTokenMap, EventEmitter, KnownToken, Layout } from './utils';
export { KnownTokenMap, EventEmitter, Layout } from './utils';

View File

@ -2,7 +2,9 @@ import { PublicKey } from '@solana/web3.js';
import { useEffect, useMemo, useState } from 'react';
import { LendingReserve, LendingReserveParser } from '../models/lending';
import { contexts, utils, ParsedAccount, KnownToken } from '@oyster/common';
import { contexts, utils, ParsedAccount } from '@oyster/common';
import { KnownToken } from '@solana/spl-token-registry';
const { cache } = contexts.Accounts;
const { useConnectionConfig } = contexts.Connection;
const { getTokenByName } = utils;