@dodoex/widgets 2.3.4 → 2.3.5-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/608a45433384d12e.png +0 -0
- package/dist/b08d68f421a81726.png +0 -0
- package/dist/cjs/608a45433384d12e.png +0 -0
- package/dist/cjs/b08d68f421a81726.png +0 -0
- package/dist/cjs/e63d558f5364d137.svg +10 -0
- package/dist/cjs/index.cjs +9 -8
- package/dist/cjs/locales/en-US.js +1 -1
- package/dist/cjs/src/components/Bridge/BridgeRouteShortCard.d.ts +6 -0
- package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/BridgeSummaryDetail.d.ts +5 -0
- package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/index.d.ts +17 -0
- package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/CrossStep.d.ts +16 -0
- package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/EtherscanLinkButton.d.ts +6 -0
- package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/RouteSteps.d.ts +6 -0
- package/dist/cjs/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/SwapStep.d.ts +14 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/BridgeLogo.d.ts +10 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/DirectionLine.d.ts +4 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/RouteCard.d.ts +21 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/RouteTagList.d.ts +12 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/TokenWithChain.d.ts +11 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/index.d.ts +9 -0
- package/dist/cjs/src/components/Bridge/SelectBridgeDialog/productList.d.ts +5 -0
- package/dist/cjs/src/components/ErrorMessageDialog.d.ts +5 -0
- package/dist/cjs/src/components/Swap/components/SettingsDialog/index.d.ts +2 -1
- package/dist/cjs/src/components/Swap/components/TokenCard/TokenLogoCollapse.d.ts +2 -1
- package/dist/cjs/src/components/Swap/components/TokenCard/TokenPickerDialog.d.ts +2 -1
- package/dist/cjs/src/components/Swap/components/TokenCard/index.d.ts +4 -1
- package/dist/cjs/src/components/SwitchChainDialog/index.d.ts +7 -0
- package/dist/cjs/src/components/TokenLogo.d.ts +2 -1
- package/dist/cjs/src/components/TokenPicker/SelectChainItem.d.ts +7 -0
- package/dist/cjs/src/components/TokenPicker/index.d.ts +2 -1
- package/dist/cjs/src/constants/api.d.ts +3 -0
- package/dist/cjs/src/constants/chainList.d.ts +10 -0
- package/dist/cjs/src/constants/chains.d.ts +5 -70
- package/dist/cjs/src/constants/localstorage.d.ts +2 -0
- package/dist/cjs/src/constants/swap.d.ts +1 -0
- package/dist/cjs/src/hooks/Bridge/createBridgeOrder.d.ts +24 -0
- package/dist/cjs/src/hooks/Bridge/index.d.ts +4 -0
- package/dist/cjs/src/hooks/Bridge/useExecuteBridgeRoute.d.ts +6 -0
- package/dist/cjs/src/hooks/Bridge/useFetchRoutePriceBridge.d.ts +101 -0
- package/dist/cjs/src/hooks/Bridge/useFetchRoutePriceBridge.test.d.ts +1 -0
- package/dist/cjs/src/hooks/Bridge/useSendRoute.d.ts +16 -0
- package/dist/cjs/src/hooks/Bridge/useSwitchBridgeOrSwapSlippage.d.ts +1 -0
- package/dist/cjs/src/hooks/ConnectWallet/useSwitchChain.d.ts +10 -0
- package/dist/cjs/src/hooks/Submission/types.d.ts +2 -1
- package/dist/cjs/src/hooks/Submission/useExecution.d.ts +1 -1
- package/dist/cjs/src/hooks/Token/type.d.ts +1 -3
- package/dist/cjs/src/hooks/Token/useFetchTokenAllowance.d.ts +13 -0
- package/dist/cjs/src/hooks/Token/useGetCGTokenList.d.ts +6 -4
- package/dist/cjs/src/hooks/Token/useInitTokenList.d.ts +1 -1
- package/dist/cjs/src/hooks/Token/useSelectChainList.d.ts +77 -0
- package/dist/cjs/src/hooks/Token/useSelectChainList.test.d.ts +1 -0
- package/dist/cjs/src/hooks/Token/useTokenList.d.ts +5 -1
- package/dist/cjs/src/hooks/Token/useTokenListFetchBalance.d.ts +9 -0
- package/dist/cjs/src/hooks/Widget/useInitPropsToRedux.d.ts +1 -1
- package/dist/cjs/src/hooks/contract/contractConfig.d.ts +1 -26
- package/dist/cjs/src/hooks/contract/index.d.ts +1 -0
- package/dist/cjs/src/hooks/contract/token.d.ts +10 -0
- package/dist/cjs/src/hooks/contract/useFetchETHBalance.d.ts +1 -1
- package/dist/cjs/src/hooks/contract/useFetchTokens.d.ts +3 -1
- package/dist/cjs/src/hooks/contract/useMultiContract.d.ts +1 -21
- package/dist/cjs/src/store/actions/globals.d.ts +1 -0
- package/dist/cjs/src/store/actions/token.d.ts +1 -1
- package/dist/cjs/src/store/reducers/globals.d.ts +2 -0
- package/dist/cjs/src/store/reducers/token.d.ts +3 -1
- package/dist/cjs/src/store/selectors/globals.d.ts +1 -0
- package/dist/cjs/src/store/selectors/token.d.ts +3 -1
- package/dist/cjs/src/utils/address.d.ts +7 -0
- package/dist/cjs/src/utils/formatter.d.ts +2 -0
- package/dist/cjs/src/utils/time.d.ts +9 -0
- package/dist/cjs/src/utils/time.test.d.ts +1 -0
- package/dist/e63d558f5364d137.svg +10 -0
- package/dist/index.js +9 -8
- package/dist/locales/en-US.js +1 -1
- package/dist/src/components/Bridge/BridgeRouteShortCard.d.ts +6 -0
- package/dist/src/components/Bridge/BridgeSummaryDialog/BridgeSummaryDetail.d.ts +5 -0
- package/dist/src/components/Bridge/BridgeSummaryDialog/index.d.ts +17 -0
- package/dist/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/CrossStep.d.ts +16 -0
- package/dist/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/EtherscanLinkButton.d.ts +6 -0
- package/dist/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/RouteSteps.d.ts +6 -0
- package/dist/src/components/Bridge/BridgeSummaryDialog/orderInfoModal/SwapStep.d.ts +14 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/BridgeLogo.d.ts +10 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/DirectionLine.d.ts +4 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/RouteCard.d.ts +21 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/RouteTagList.d.ts +12 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/TokenWithChain.d.ts +11 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/index.d.ts +9 -0
- package/dist/src/components/Bridge/SelectBridgeDialog/productList.d.ts +5 -0
- package/dist/src/components/ErrorMessageDialog.d.ts +5 -0
- package/dist/src/components/Swap/components/SettingsDialog/index.d.ts +2 -1
- package/dist/src/components/Swap/components/TokenCard/TokenLogoCollapse.d.ts +2 -1
- package/dist/src/components/Swap/components/TokenCard/TokenPickerDialog.d.ts +2 -1
- package/dist/src/components/Swap/components/TokenCard/index.d.ts +4 -1
- package/dist/src/components/SwitchChainDialog/index.d.ts +7 -0
- package/dist/src/components/TokenLogo.d.ts +2 -1
- package/dist/src/components/TokenPicker/SelectChainItem.d.ts +7 -0
- package/dist/src/components/TokenPicker/index.d.ts +2 -1
- package/dist/src/constants/api.d.ts +3 -0
- package/dist/src/constants/chainList.d.ts +10 -0
- package/dist/src/constants/chains.d.ts +5 -70
- package/dist/src/constants/localstorage.d.ts +2 -0
- package/dist/src/constants/swap.d.ts +1 -0
- package/dist/src/hooks/Bridge/createBridgeOrder.d.ts +24 -0
- package/dist/src/hooks/Bridge/index.d.ts +4 -0
- package/dist/src/hooks/Bridge/useExecuteBridgeRoute.d.ts +6 -0
- package/dist/src/hooks/Bridge/useFetchRoutePriceBridge.d.ts +101 -0
- package/dist/src/hooks/Bridge/useFetchRoutePriceBridge.test.d.ts +1 -0
- package/dist/src/hooks/Bridge/useSendRoute.d.ts +16 -0
- package/dist/src/hooks/Bridge/useSwitchBridgeOrSwapSlippage.d.ts +1 -0
- package/dist/src/hooks/ConnectWallet/useSwitchChain.d.ts +10 -0
- package/dist/src/hooks/Submission/types.d.ts +2 -1
- package/dist/src/hooks/Submission/useExecution.d.ts +1 -1
- package/dist/src/hooks/Token/type.d.ts +1 -3
- package/dist/src/hooks/Token/useFetchTokenAllowance.d.ts +13 -0
- package/dist/src/hooks/Token/useGetCGTokenList.d.ts +6 -4
- package/dist/src/hooks/Token/useInitTokenList.d.ts +1 -1
- package/dist/src/hooks/Token/useSelectChainList.d.ts +77 -0
- package/dist/src/hooks/Token/useSelectChainList.test.d.ts +1 -0
- package/dist/src/hooks/Token/useTokenList.d.ts +5 -1
- package/dist/src/hooks/Token/useTokenListFetchBalance.d.ts +9 -0
- package/dist/src/hooks/Widget/useInitPropsToRedux.d.ts +1 -1
- package/dist/src/hooks/contract/contractConfig.d.ts +1 -26
- package/dist/src/hooks/contract/index.d.ts +1 -0
- package/dist/src/hooks/contract/token.d.ts +10 -0
- package/dist/src/hooks/contract/useFetchETHBalance.d.ts +1 -1
- package/dist/src/hooks/contract/useFetchTokens.d.ts +3 -1
- package/dist/src/hooks/contract/useMultiContract.d.ts +1 -21
- package/dist/src/store/actions/globals.d.ts +1 -0
- package/dist/src/store/actions/token.d.ts +1 -1
- package/dist/src/store/reducers/globals.d.ts +2 -0
- package/dist/src/store/reducers/token.d.ts +3 -1
- package/dist/src/store/selectors/globals.d.ts +1 -0
- package/dist/src/store/selectors/token.d.ts +3 -1
- package/dist/src/utils/address.d.ts +7 -0
- package/dist/src/utils/formatter.d.ts +2 -0
- package/dist/src/utils/time.d.ts +9 -0
- package/dist/src/utils/time.test.d.ts +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChainId } from '../../constants/chains';
|
|
2
|
+
/**
|
|
3
|
+
* switch wallet chain
|
|
4
|
+
* @see https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerNetworkWithMetamask({ chainId, provider, }: {
|
|
7
|
+
chainId: ChainId;
|
|
8
|
+
provider?: any;
|
|
9
|
+
}): Promise<boolean>;
|
|
10
|
+
export declare function useSwitchChain(chainId?: ChainId): (() => Promise<boolean>) | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Step as StepSpec } from './spec';
|
|
3
|
+
import { ExecutionProps } from './useExecution';
|
|
3
4
|
export declare enum State {
|
|
4
5
|
Running = 0,
|
|
5
6
|
Success = 1,
|
|
@@ -35,7 +36,7 @@ export declare type ExecutionCtx = {
|
|
|
35
36
|
* @param mixpanelProps: mixpanel properties
|
|
36
37
|
* @param submittedConfirmBack: dismiss callback
|
|
37
38
|
*/
|
|
38
|
-
execute: (brief: string, spec: StepSpec, subtitle?: string | React.ReactNode | null, early?: boolean, submittedBack?: () => void, mixpanelProps?: Record<string, any>, submittedConfirmBack?: () => void, successBack?: (tx: string) => void) => Promise<ExecutionResult>;
|
|
39
|
+
execute: (brief: string, spec: StepSpec, subtitle?: string | React.ReactNode | null, early?: boolean, submittedBack?: () => void, mixpanelProps?: Record<string, any>, submittedConfirmBack?: () => void, successBack?: (tx: string, callback?: ExecutionProps['onTxSuccess']) => void) => Promise<ExecutionResult>;
|
|
39
40
|
/**
|
|
40
41
|
* order
|
|
41
42
|
*/
|
|
@@ -14,7 +14,7 @@ export default function useExecution({ onTxFail, onTxSubmit, onTxSuccess, }?: Ex
|
|
|
14
14
|
setErrorMessage: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
15
15
|
closeShowing: () => void;
|
|
16
16
|
ctxVal: {
|
|
17
|
-
execute: (brief: string, spec: StepSpec, subtitle?: string | React.ReactNode | null, early?: boolean, submittedBack?: () => void, mixpanelProps?: Record<string, any>, submittedConfirmBack?: () => void, successBack?: ((tx: string) => void) | undefined) => Promise<ExecutionResult.Failed | ExecutionResult.Success | ExecutionResult.Submitted>;
|
|
17
|
+
execute: (brief: string, spec: StepSpec, subtitle?: string | React.ReactNode | null, early?: boolean, submittedBack?: () => void, mixpanelProps?: Record<string, any>, submittedConfirmBack?: () => void, successBack?: ((tx: string, callback?: ExecutionProps['onTxSuccess']) => void) | undefined) => Promise<ExecutionResult.Failed | ExecutionResult.Success | ExecutionResult.Submitted>;
|
|
18
18
|
requests: Map<string, [Request, State]>;
|
|
19
19
|
setShowing: import("react").Dispatch<import("react").SetStateAction<Showing | null>>;
|
|
20
20
|
waitingSubmit: boolean;
|
|
@@ -14,9 +14,7 @@ export interface DefaultTokenInfo extends TokenInfo {
|
|
|
14
14
|
}
|
|
15
15
|
export declare type TokenList = TokenInfo[];
|
|
16
16
|
export declare enum TokenListType {
|
|
17
|
-
All = "all"
|
|
18
|
-
Default = "default",
|
|
19
|
-
Coingecko = "coingecko"
|
|
17
|
+
All = "all"
|
|
20
18
|
}
|
|
21
19
|
export declare enum ApprovalState {
|
|
22
20
|
Loading = "Loading",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
import { TokenInfo } from './type';
|
|
3
|
+
export declare function useFetchTokenAllowance({ chainId, account, token, proxyContractAddress, }: {
|
|
4
|
+
chainId?: number;
|
|
5
|
+
account?: string;
|
|
6
|
+
token?: TokenInfo;
|
|
7
|
+
proxyContractAddress: string;
|
|
8
|
+
}): {
|
|
9
|
+
allowance: BigNumber | null;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
error: boolean;
|
|
12
|
+
refetch: () => Promise<void>;
|
|
13
|
+
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TokenInfo } from './type';
|
|
1
|
+
import { TokenList } from './type';
|
|
3
2
|
export declare enum FetchStatus {
|
|
4
3
|
Initial = "Initial",
|
|
5
4
|
Loading = "Loading",
|
|
6
5
|
Failed = "Failed",
|
|
7
6
|
Success = "Success"
|
|
8
7
|
}
|
|
9
|
-
export declare function useGetCGTokenList(
|
|
10
|
-
|
|
8
|
+
export declare function useGetCGTokenList({ chainId, skip, }: {
|
|
9
|
+
chainId: number;
|
|
10
|
+
skip?: boolean;
|
|
11
|
+
}): {
|
|
12
|
+
cgTokenList: TokenList;
|
|
11
13
|
loading: boolean;
|
|
12
14
|
refetch: () => Promise<void>;
|
|
13
15
|
};
|
|
@@ -3,4 +3,4 @@ export interface InitTokenListProps {
|
|
|
3
3
|
tokenList?: TokenList | TokenListType;
|
|
4
4
|
popularTokenList?: TokenList;
|
|
5
5
|
}
|
|
6
|
-
export default function useInitTokenList({ tokenList, popularTokenList
|
|
6
|
+
export default function useInitTokenList({ tokenList, popularTokenList, }: InitTokenListProps): void;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ChainId } from '../../constants/chains';
|
|
3
|
+
export declare function useSelectChainList(): {
|
|
4
|
+
chainList: ({
|
|
5
|
+
chainId: ChainId;
|
|
6
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
7
|
+
title?: string | undefined;
|
|
8
|
+
}>;
|
|
9
|
+
name: string;
|
|
10
|
+
mainnet?: ChainId | undefined;
|
|
11
|
+
} | {
|
|
12
|
+
chainId: ChainId;
|
|
13
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
14
|
+
title?: string | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
name: string;
|
|
17
|
+
mainnet?: ChainId | undefined;
|
|
18
|
+
} | {
|
|
19
|
+
chainId: ChainId;
|
|
20
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
21
|
+
title?: string | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
name: string;
|
|
24
|
+
mainnet?: ChainId | undefined;
|
|
25
|
+
} | {
|
|
26
|
+
chainId: ChainId;
|
|
27
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
28
|
+
title?: string | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
name: string;
|
|
31
|
+
mainnet?: ChainId | undefined;
|
|
32
|
+
} | {
|
|
33
|
+
chainId: ChainId;
|
|
34
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
35
|
+
title?: string | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
name: string;
|
|
38
|
+
mainnet?: ChainId | undefined;
|
|
39
|
+
} | {
|
|
40
|
+
chainId: ChainId;
|
|
41
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
42
|
+
title?: string | undefined;
|
|
43
|
+
}>;
|
|
44
|
+
name: string;
|
|
45
|
+
mainnet?: ChainId | undefined;
|
|
46
|
+
} | {
|
|
47
|
+
chainId: ChainId;
|
|
48
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
49
|
+
title?: string | undefined;
|
|
50
|
+
}>;
|
|
51
|
+
name: string;
|
|
52
|
+
mainnet?: ChainId | undefined;
|
|
53
|
+
} | {
|
|
54
|
+
chainId: ChainId;
|
|
55
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
56
|
+
title?: string | undefined;
|
|
57
|
+
}>;
|
|
58
|
+
name: string;
|
|
59
|
+
mainnet?: ChainId | undefined;
|
|
60
|
+
} | {
|
|
61
|
+
chainId: ChainId;
|
|
62
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
63
|
+
title?: string | undefined;
|
|
64
|
+
}>;
|
|
65
|
+
name: string;
|
|
66
|
+
mainnet?: ChainId | undefined;
|
|
67
|
+
} | {
|
|
68
|
+
chainId: ChainId;
|
|
69
|
+
logo: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
70
|
+
title?: string | undefined;
|
|
71
|
+
}>;
|
|
72
|
+
name: string;
|
|
73
|
+
mainnet?: ChainId | undefined;
|
|
74
|
+
})[];
|
|
75
|
+
selectChainId: number;
|
|
76
|
+
setSelectChainId: import("react").Dispatch<import("react").SetStateAction<number | undefined>>;
|
|
77
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -3,7 +3,7 @@ import { TokenInfo, TokenList } from './type';
|
|
|
3
3
|
export declare const getFuzzySearchTokenSort: (token: TokenInfo, search: string, { matchAddress, }?: {
|
|
4
4
|
matchAddress?: boolean | undefined;
|
|
5
5
|
}) => number;
|
|
6
|
-
export default function useTokenList({ value, onChange, occupiedAddrs, hiddenAddrs, showAddrs, side, }: {
|
|
6
|
+
export default function useTokenList({ value, onChange, occupiedAddrs, hiddenAddrs, showAddrs, side, chainId: chainIdProps, visible, defaultLoadBalance, }: {
|
|
7
7
|
value?: TokenInfo | null;
|
|
8
8
|
onChange: (token: TokenInfo, isOccupied: boolean) => void;
|
|
9
9
|
/** token pair usage */
|
|
@@ -14,6 +14,10 @@ export default function useTokenList({ value, onChange, occupiedAddrs, hiddenAdd
|
|
|
14
14
|
showAddrs?: string[];
|
|
15
15
|
/** token field control */
|
|
16
16
|
side?: 'from' | 'to';
|
|
17
|
+
chainId?: number;
|
|
18
|
+
/** Token Picker visible */
|
|
19
|
+
visible?: boolean;
|
|
20
|
+
defaultLoadBalance?: boolean;
|
|
17
21
|
}): {
|
|
18
22
|
filter: string;
|
|
19
23
|
setFilter: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TokenInfo, TokenList } from './type';
|
|
2
|
+
export default function useTokenListFetchBalance({ chainId, value, tokenList, popularTokenList, visible, defaultLoadBalance, }: {
|
|
3
|
+
chainId: number;
|
|
4
|
+
value?: TokenInfo | null;
|
|
5
|
+
tokenList: TokenList;
|
|
6
|
+
popularTokenList?: TokenList;
|
|
7
|
+
visible?: boolean;
|
|
8
|
+
defaultLoadBalance?: boolean;
|
|
9
|
+
}): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { WidgetProps } from '../../components/Widget/';
|
|
2
|
-
export declare function useInitPropsToRedux({ width, height, feeRate, rebateTo, colorMode, apikey, defaultChainId, defaultToToken, defaultFromToken }: WidgetProps): void;
|
|
2
|
+
export declare function useInitPropsToRedux({ width, height, feeRate, rebateTo, colorMode, apikey, defaultChainId, defaultToToken, defaultFromToken, jsonRpcUrlMap, }: WidgetProps): void;
|
|
@@ -4,11 +4,6 @@ declare const _default: {
|
|
|
4
4
|
DODO_APPROVE: string;
|
|
5
5
|
ERC20_HELPER: string;
|
|
6
6
|
};
|
|
7
|
-
4: {
|
|
8
|
-
MULTI_CALL: string;
|
|
9
|
-
DODO_APPROVE: string;
|
|
10
|
-
ERC20_HELPER: string;
|
|
11
|
-
};
|
|
12
7
|
5: {
|
|
13
8
|
MULTI_CALL: string;
|
|
14
9
|
DODO_APPROVE: string;
|
|
@@ -19,11 +14,6 @@ declare const _default: {
|
|
|
19
14
|
DODO_APPROVE: string;
|
|
20
15
|
ERC20_HELPER: string;
|
|
21
16
|
};
|
|
22
|
-
128: {
|
|
23
|
-
MULTI_CALL: string;
|
|
24
|
-
DODO_APPROVE: string;
|
|
25
|
-
ERC20_HELPER: string;
|
|
26
|
-
};
|
|
27
17
|
137: {
|
|
28
18
|
MULTI_CALL: string;
|
|
29
19
|
DODO_APPROVE: string;
|
|
@@ -34,21 +24,11 @@ declare const _default: {
|
|
|
34
24
|
DODO_APPROVE: string;
|
|
35
25
|
ERC20_HELPER: string;
|
|
36
26
|
};
|
|
37
|
-
421611: {
|
|
38
|
-
MULTI_CALL: string;
|
|
39
|
-
DODO_APPROVE: string;
|
|
40
|
-
ERC20_HELPER: string;
|
|
41
|
-
};
|
|
42
27
|
1313161554: {
|
|
43
28
|
MULTI_CALL: string;
|
|
44
29
|
DODO_APPROVE: string;
|
|
45
30
|
ERC20_HELPER: string;
|
|
46
31
|
};
|
|
47
|
-
1285: {
|
|
48
|
-
MULTI_CALL: string;
|
|
49
|
-
DODO_APPROVE: string;
|
|
50
|
-
ERC20_HELPER: string;
|
|
51
|
-
};
|
|
52
32
|
66: {
|
|
53
33
|
MULTI_CALL: string;
|
|
54
34
|
DODO_APPROVE: string;
|
|
@@ -59,17 +39,12 @@ declare const _default: {
|
|
|
59
39
|
DODO_APPROVE: string;
|
|
60
40
|
ERC20_HELPER: string;
|
|
61
41
|
};
|
|
62
|
-
288: {
|
|
63
|
-
MULTI_CALL: string;
|
|
64
|
-
DODO_APPROVE: string;
|
|
65
|
-
ERC20_HELPER: string;
|
|
66
|
-
};
|
|
67
42
|
43114: {
|
|
68
43
|
MULTI_CALL: string;
|
|
69
44
|
DODO_APPROVE: string;
|
|
70
45
|
ERC20_HELPER: string;
|
|
71
46
|
};
|
|
72
|
-
|
|
47
|
+
1030: {
|
|
73
48
|
MULTI_CALL: string;
|
|
74
49
|
DODO_APPROVE: string;
|
|
75
50
|
ERC20_HELPER: string;
|
|
@@ -2,3 +2,4 @@ export { default as useMultiContract, getContract } from './useMultiContract';
|
|
|
2
2
|
export { default as useFetchTokens } from './useFetchTokens';
|
|
3
3
|
export { default as useFetchETHBalance } from './useFetchETHBalance';
|
|
4
4
|
export { default as useFetchBlockNumber } from './useFetchBlockNumber';
|
|
5
|
+
export * from './token';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JsonRpcProvider } from '@ethersproject/providers';
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
|
+
export declare function fetchTokenAllowance({ account, tokenAddress, tokenDecimals, chainId, approveAddress, provider, }: {
|
|
4
|
+
account?: string;
|
|
5
|
+
tokenAddress: string;
|
|
6
|
+
tokenDecimals: number;
|
|
7
|
+
chainId: number;
|
|
8
|
+
approveAddress?: string;
|
|
9
|
+
provider: JsonRpcProvider;
|
|
10
|
+
}): Promise<BigNumber | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function useFetchETHBalance(): void;
|
|
1
|
+
export default function useFetchETHBalance(chainId?: number): void;
|
|
@@ -8,10 +8,12 @@ declare type TokenResult = {
|
|
|
8
8
|
symbol?: string;
|
|
9
9
|
name?: string;
|
|
10
10
|
};
|
|
11
|
-
export default function useFetchTokens({ tokenList, addresses: addressesProps, blockNumber, }: {
|
|
11
|
+
export default function useFetchTokens({ tokenList, addresses: addressesProps, blockNumber, chainId, skip, }: {
|
|
12
12
|
tokenList?: TokenList;
|
|
13
13
|
addresses?: string[];
|
|
14
14
|
blockNumber?: number;
|
|
15
|
+
chainId?: number;
|
|
16
|
+
skip?: boolean;
|
|
15
17
|
}): {
|
|
16
18
|
data: TokenResult[] | undefined;
|
|
17
19
|
};
|
|
@@ -2,7 +2,7 @@ import { Contract } from '@ethersproject/contracts';
|
|
|
2
2
|
import { JsonRpcProvider } from '@ethersproject/providers';
|
|
3
3
|
import { BatchThunk } from './batch';
|
|
4
4
|
export declare function getContract(address: string, ABI: any, provider: JsonRpcProvider, account?: string): Contract;
|
|
5
|
-
export default function useMultiContract(): {
|
|
5
|
+
export default function useMultiContract(chainIdProps?: number): {
|
|
6
6
|
getContract: (contractAddress: string, ABI: any) => Contract | undefined;
|
|
7
7
|
contractConfig: {
|
|
8
8
|
MULTI_CALL: string;
|
|
@@ -44,26 +44,6 @@ export default function useMultiContract(): {
|
|
|
44
44
|
MULTI_CALL: string;
|
|
45
45
|
DODO_APPROVE: string;
|
|
46
46
|
ERC20_HELPER: string;
|
|
47
|
-
} | {
|
|
48
|
-
MULTI_CALL: string;
|
|
49
|
-
DODO_APPROVE: string;
|
|
50
|
-
ERC20_HELPER: string;
|
|
51
|
-
} | {
|
|
52
|
-
MULTI_CALL: string;
|
|
53
|
-
DODO_APPROVE: string;
|
|
54
|
-
ERC20_HELPER: string;
|
|
55
|
-
} | {
|
|
56
|
-
MULTI_CALL: string;
|
|
57
|
-
DODO_APPROVE: string;
|
|
58
|
-
ERC20_HELPER: string;
|
|
59
|
-
} | {
|
|
60
|
-
MULTI_CALL: string;
|
|
61
|
-
DODO_APPROVE: string;
|
|
62
|
-
ERC20_HELPER: string;
|
|
63
|
-
} | {
|
|
64
|
-
MULTI_CALL: string;
|
|
65
|
-
DODO_APPROVE: string;
|
|
66
|
-
ERC20_HELPER: string;
|
|
67
47
|
};
|
|
68
48
|
call: <T>(thunk: BatchThunk<T>) => Promise<unknown[] | undefined> | undefined;
|
|
69
49
|
loading: boolean;
|
|
@@ -7,7 +7,7 @@ export declare const setPopularTokenList: (popularTokenList: TokenList) => AppTh
|
|
|
7
7
|
export declare const setSlippageWithTokens: (slippageWithTokens: SlippageWithToken[]) => AppThunkAction;
|
|
8
8
|
export declare const setDefaultFromToken: (token: TokenInfo) => AppThunkAction;
|
|
9
9
|
export declare const setDefaultToToken: (token: TokenInfo) => AppThunkAction;
|
|
10
|
-
export declare const setEthBalance: (balance: BigNumber) => AppThunkAction;
|
|
10
|
+
export declare const setEthBalance: (chainId: number, balance: BigNumber) => AppThunkAction;
|
|
11
11
|
export declare const setTokenBalances: (accountBalances: AccountBalances) => AppThunkAction;
|
|
12
12
|
export declare const setTokenAllowances: (allowance: BigNumber) => AppThunkAction;
|
|
13
13
|
export declare const setBalanceLoadings: (balanceLoadings: {
|
|
@@ -10,6 +10,8 @@ export declare enum ContractStatus {
|
|
|
10
10
|
export interface State extends SwapWidgetProps {
|
|
11
11
|
isReverseRouting?: boolean;
|
|
12
12
|
contractStatus?: ContractStatus;
|
|
13
|
+
autoConnectLoading?: boolean;
|
|
14
|
+
showCoingecko?: boolean;
|
|
13
15
|
}
|
|
14
16
|
export declare const initialState: State;
|
|
15
17
|
declare const _default: (state: State | undefined, action: AnyAction) => State;
|
|
@@ -15,7 +15,9 @@ export declare type SlippageWithToken = {
|
|
|
15
15
|
export declare type State = {
|
|
16
16
|
tokenList: TokenList;
|
|
17
17
|
popularTokenList: TokenList;
|
|
18
|
-
ethBalance
|
|
18
|
+
ethBalance: {
|
|
19
|
+
[key: number]: BigNumber;
|
|
20
|
+
};
|
|
19
21
|
accountBalances: AccountBalances;
|
|
20
22
|
balanceLoadings: {
|
|
21
23
|
[key in string]: boolean;
|
|
@@ -6,7 +6,9 @@ export declare const getTokenList: (state?: RootState) => import("../../hooks/To
|
|
|
6
6
|
export declare const getPopularTokenList: (chainId: ChainId, state?: RootState) => import("../../hooks/Token").TokenInfo[];
|
|
7
7
|
export declare const getSlippageWithTokens: (state?: RootState) => import("../reducers/token").SlippageWithToken[];
|
|
8
8
|
export declare const getAccountBalances: (state?: RootState) => import("../reducers/token").AccountBalances;
|
|
9
|
-
export declare const getEthBalance: (state?: RootState) =>
|
|
9
|
+
export declare const getEthBalance: (state?: RootState) => {
|
|
10
|
+
[key: number]: BigNumber;
|
|
11
|
+
};
|
|
10
12
|
export declare const getDefaultFromToken: (state?: RootState) => DefaultTokenInfo | undefined;
|
|
11
13
|
export declare const getDefaultToToken: (state?: RootState) => DefaultTokenInfo | undefined;
|
|
12
14
|
export declare const getTokenBalance: (tokenAddress: string, state?: RootState) => BigNumber;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChainId } from '../constants/chains';
|
|
1
2
|
export declare const isSameAddress: (tokenAddress1: string, tokenAddress2: string) => boolean;
|
|
2
3
|
export declare function isAddress(value: any): string | false;
|
|
3
4
|
export declare function isETHAddress(addr: string): boolean;
|
|
@@ -6,3 +7,9 @@ export declare function isETHAddress(addr: string): boolean;
|
|
|
6
7
|
* @param hexNumberString
|
|
7
8
|
*/
|
|
8
9
|
export default function isZero(hexNumberString: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* truncate pool address: 0xeBa959390016dd81419A189e5ef6F3B6720e5A90 => 0xeBa9...5A90
|
|
12
|
+
* @param address pool address
|
|
13
|
+
*/
|
|
14
|
+
export declare function truncatePoolAddress(address: string): string;
|
|
15
|
+
export declare function getEtherscanPage(path: string | undefined, chainId: ChainId): string;
|
|
@@ -20,4 +20,6 @@ export declare function formatTokenAmountNumber({ input, decimals, showPrecision
|
|
|
20
20
|
export declare const fixedString: (raw: string | number | BigNumber, showDecimals?: number) => string;
|
|
21
21
|
export declare const fixedInputStringToFormattedNumber: (inputValue: string, inputTokenShowDecimals: number) => string | null;
|
|
22
22
|
export declare const toWei: (amount: BigNumber | string | number, decimals: number, notDp?: boolean) => BigNumber;
|
|
23
|
+
export declare const byWei: (amount: BigNumber | string | number, decimals: number) => BigNumber;
|
|
23
24
|
export declare const getDecimalLimit: (decimals: number | undefined | null) => number;
|
|
25
|
+
export declare function getIntegerNumber(v: number): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
<path d="M0 8C0 3.58172 3.58172 0 8 0H24C28.4183 0 32 3.58172 32 8V24C32 28.4183 28.4183 32 24 32H8C3.58172 32 0 28.4183 0 24V8Z" fill="black"/>
|
|
3
|
+
<rect x="7" y="7" width="18" height="18" fill="url(#pattern0)"/>
|
|
4
|
+
<defs>
|
|
5
|
+
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
6
|
+
<use xlink:href="#image0_3224_127284" transform="scale(0.00520833)"/>
|
|
7
|
+
</pattern>
|
|
8
|
+
<image id="image0_3224_127284" width="192" height="192" xlink:href="data:image/png;base64,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"/>
|
|
9
|
+
</defs>
|
|
10
|
+
</svg>
|