@kimafinance/kima-transaction-widget 1.0.0

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.
Files changed (68) hide show
  1. package/README.md +74 -0
  2. package/dist/assets/icons/Arrow.d.ts +8 -0
  3. package/dist/assets/icons/ArrowRight.d.ts +8 -0
  4. package/dist/assets/icons/Avalanche.d.ts +7 -0
  5. package/dist/assets/icons/Check.d.ts +7 -0
  6. package/dist/assets/icons/Cross.d.ts +8 -0
  7. package/dist/assets/icons/Ethereum.d.ts +7 -0
  8. package/dist/assets/icons/FooterLogo.d.ts +8 -0
  9. package/dist/assets/icons/Minimize.d.ts +8 -0
  10. package/dist/assets/icons/Polygon.d.ts +7 -0
  11. package/dist/assets/icons/Solana.d.ts +7 -0
  12. package/dist/assets/icons/USDC.d.ts +7 -0
  13. package/dist/assets/icons/USDT.d.ts +7 -0
  14. package/dist/assets/icons/Warning.d.ts +7 -0
  15. package/dist/assets/icons/index.d.ts +13 -0
  16. package/dist/assets/loading/180-ring.d.ts +3 -0
  17. package/dist/assets/loading/index.d.ts +1 -0
  18. package/dist/components/KimaTransactionWidget.d.ts +12 -0
  19. package/dist/components/TransactionWidget.d.ts +4 -0
  20. package/dist/components/TransferWidget.d.ts +4 -0
  21. package/dist/components/reusable/AddressInput.d.ts +3 -0
  22. package/dist/components/reusable/CoinDropdown.d.ts +3 -0
  23. package/dist/components/reusable/CoinSelect.d.ts +3 -0
  24. package/dist/components/reusable/ConfirmDetails.d.ts +3 -0
  25. package/dist/components/reusable/CustomCheckbox.d.ts +8 -0
  26. package/dist/components/reusable/Dropdown.d.ts +8 -0
  27. package/dist/components/reusable/ExternalLink.d.ts +9 -0
  28. package/dist/components/reusable/NetworkLabel.d.ts +8 -0
  29. package/dist/components/reusable/NetworkSelect.d.ts +6 -0
  30. package/dist/components/reusable/PrimaryButton.d.ts +9 -0
  31. package/dist/components/reusable/Progressbar.d.ts +9 -0
  32. package/dist/components/reusable/SecondaryButton.d.ts +9 -0
  33. package/dist/components/reusable/SingleForm.d.ts +3 -0
  34. package/dist/components/reusable/Tooltip.d.ts +8 -0
  35. package/dist/components/reusable/WalletButton.d.ts +5 -0
  36. package/dist/components/reusable/WalletConnectModal.d.ts +3 -0
  37. package/dist/components/reusable/WalletSelect.d.ts +3 -0
  38. package/dist/components/reusable/index.d.ts +13 -0
  39. package/dist/contexts/EthereumProviderContext.d.ts +18 -0
  40. package/dist/helpers/fetch-wrapper.d.ts +7 -0
  41. package/dist/helpers/functions.d.ts +2 -0
  42. package/dist/hooks/useAllowance.d.ts +4 -0
  43. package/dist/hooks/useIsWalletReady.d.ts +7 -0
  44. package/dist/hooks/useServiceFee.d.ts +3 -0
  45. package/dist/index.css +809 -0
  46. package/dist/index.d.ts +4 -0
  47. package/dist/index.js +6663 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/index.modern.js +6226 -0
  50. package/dist/index.modern.js.map +1 -0
  51. package/dist/interface.d.ts +31 -0
  52. package/dist/store/index.d.ts +5 -0
  53. package/dist/store/optionSlice.d.ts +47 -0
  54. package/dist/store/selectors.d.ts +20 -0
  55. package/dist/styles/hooks/index.d.ts +1 -0
  56. package/dist/styles/hooks/useWidth.d.ts +2 -0
  57. package/dist/utils/config.d.ts +8 -0
  58. package/dist/utils/constants.d.ts +50 -0
  59. package/dist/utils/ethereum/common.d.ts +21 -0
  60. package/dist/utils/ethereum/erc20Token.d.ts +171 -0
  61. package/dist/utils/functions.d.ts +1 -0
  62. package/dist/utils/parseError.d.ts +2 -0
  63. package/dist/utils/solana/createAssociatedTokenAccountInstruction.d.ts +2 -0
  64. package/dist/utils/solana/createTransferInstruction.d.ts +39 -0
  65. package/dist/utils/solana/getAccountInfo.d.ts +19 -0
  66. package/dist/utils/solana/getAssociatedTokenAddress.d.ts +2 -0
  67. package/dist/utils/solana/getOrCreateAssociatedTokenAccount.d.ts +14 -0
  68. package/package.json +69 -0
package/README.md ADDED
@@ -0,0 +1,74 @@
1
+ # kima-transaction-widget
2
+
3
+ [![NPM](https://img.shields.io/npm/v/kima-transfer-widget.svg)](https://www.npmjs.com/package/kima-transfer-widget) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install --save kima-transaction-widget
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```tsx
14
+ import React from 'react'
15
+
16
+ import {
17
+ KimaTransactionWidget,
18
+ KimaProvider,
19
+ ThemeOptions,
20
+ FontSizeOptions,
21
+ ModeOptions
22
+ SupportNetworks
23
+ } from 'kima-transfer-widget'
24
+ import 'kima-transfer-widget/dist/index.css'
25
+
26
+ const App = () => {
27
+ return (
28
+ <KimaProvider>
29
+ <div className='container'>
30
+ <KimaTransactionWidget
31
+ theme={ThemeOptions.dark}
32
+ fontSize={FontSizeOptions.medium}
33
+ mode={ModeOptions.payment}
34
+ transactionOption={{
35
+ targetChain: SupportNetworks.Avalanche,
36
+ targetAddress: '0x67cc400c434F691Ed45e452dC8F2Baf0101a9B63',
37
+ amount: 100
38
+ }}
39
+ errorHandler={(e: any) => {
40
+ console.log('error:', e)
41
+ }}
42
+ successHandler={() => {
43
+ console.log('success')
44
+ }}
45
+ />
46
+ </div>
47
+ </KimaProvider>
48
+ )
49
+ }
50
+
51
+ export default App
52
+
53
+
54
+
55
+ ```
56
+
57
+ ## Props
58
+
59
+ | Prop Name | Type | Description | Values | Default Value |
60
+ | ------------------------------ | ------------------ | ------------------------ | ----------------| ------------- |
61
+ | theme `(optional)` | ThemeOptions | color theme of widget | `light`, `dark` | `light` |
62
+ | fontSize `(optional)` | FontSizeOptions | font size of widget | `small`, `medium`, `large` | `medium` |
63
+ | mode `(required)` | ModeOptions | scenario of the widget | `payment`, `bridge` | |
64
+ | transactionOption `(optional)` | TransactionOption | target chain, address and currency | | |
65
+ | errorHandler `(optional)` | Function | callback function to handle errors | | |
66
+
67
+
68
+ ## Note
69
+
70
+ [How to fix Polyfill node core module error](https://www.alchemy.com/blog/how-to-polyfill-node-core-modules-in-webpack-5)
71
+
72
+ ## License
73
+
74
+ kima-transaction-widget is licensed under MIT license.
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const Arrow: ({ width, height, fill, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ fill?: string | undefined;
7
+ }) => JSX.Element;
8
+ export default Arrow;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const ArrowRight: ({ width, height, fill, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ fill?: string | undefined;
7
+ }) => JSX.Element;
8
+ export default ArrowRight;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const Avalanche: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default Avalanche;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const Check: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default Check;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const Cross: ({ width, height, fill, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ fill?: string | undefined;
7
+ }) => JSX.Element;
8
+ export default Cross;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const Ethereum: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default Ethereum;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const Cross: ({ width, height, fill, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ fill?: string | undefined;
7
+ }) => JSX.Element;
8
+ export default Cross;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const Minimize: ({ width, height, fill, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ fill?: string | undefined;
7
+ }) => JSX.Element;
8
+ export default Minimize;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const Ethereum: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default Ethereum;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const Solana: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default Solana;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const USDC: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default USDC;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const USDT: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default USDT;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const Warning: ({ width, height, ...rest }: {
3
+ [x: string]: any;
4
+ width?: number | undefined;
5
+ height?: number | undefined;
6
+ }) => JSX.Element;
7
+ export default Warning;
@@ -0,0 +1,13 @@
1
+ export { default as CrossIcon } from './Cross';
2
+ export { default as MinimizeIcon } from './Minimize';
3
+ export { default as FooterLogo } from './FooterLogo';
4
+ export { default as CheckIcon } from './Check';
5
+ export { default as WarningIcon } from './Warning';
6
+ export { default as ArrowRightIcon } from './ArrowRight';
7
+ export { default as ArrowIcon } from './Arrow';
8
+ export { default as EthereumIcon } from './Ethereum';
9
+ export { default as SolanaIcon } from './Solana';
10
+ export { default as PolygonIcon } from './Polygon';
11
+ export { default as AvalancheIcon } from './Avalanche';
12
+ export { default as USDCIcon } from './USDC';
13
+ export { default as USDTIcon } from './USDT';
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const Loading180Ring: ({ width, height, fill }: any) => JSX.Element;
3
+ export default Loading180Ring;
@@ -0,0 +1 @@
1
+ export { default as Loading180Ring } from './180-ring';
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { DefaultProps, TransactionOption, ModeOptions } from '../interface';
3
+ import '../index.css';
4
+ interface Props extends DefaultProps {
5
+ transactionOption?: TransactionOption;
6
+ mode: ModeOptions;
7
+ errorHandler?: (e: any) => void;
8
+ closeHandler?: (e: any) => void;
9
+ successHandler?: (e: any) => void;
10
+ }
11
+ export declare const KimaTransactionWidget: ({ theme, fontSize, mode, transactionOption, errorHandler, closeHandler, successHandler }: Props) => JSX.Element;
12
+ export {};
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import '../index.css';
3
+ import { DefaultProps } from '../interface';
4
+ export declare const TransactionWidget: ({ theme, fontSize }: DefaultProps) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { DefaultProps } from '../interface';
3
+ import '../index.css';
4
+ export declare const TransferWidget: ({ theme, fontSize }: DefaultProps) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const AddressInput: () => JSX.Element;
3
+ export default AddressInput;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const CoinDropdown: () => JSX.Element;
3
+ export default CoinDropdown;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const CoinSelect: () => JSX.Element;
3
+ export default CoinSelect;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const ConfirmDetails: () => JSX.Element;
3
+ export default ConfirmDetails;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ text: string;
4
+ checked: boolean;
5
+ setCheck: (e: any) => void;
6
+ }
7
+ declare const CustomCheckbox: ({ text, checked, setCheck }: Props) => JSX.Element;
8
+ export default CustomCheckbox;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ open: boolean;
4
+ isWizard: boolean;
5
+ toggleWizard: any;
6
+ }
7
+ declare const Dropdown: ({ open, isWizard, toggleWizard }: Props) => JSX.Element;
8
+ export default Dropdown;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ to: string;
4
+ children?: any;
5
+ className?: string;
6
+ rest?: any;
7
+ }
8
+ declare const ExternalLink: ({ to, children, className, rest }: Props) => JSX.Element;
9
+ export default ExternalLink;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ hasError: boolean;
4
+ sourceChain: string;
5
+ targetChain: string;
6
+ }
7
+ declare const NetworkLabel: ({ sourceChain, targetChain, hasError }: Props) => JSX.Element;
8
+ export default NetworkLabel;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ type?: string;
4
+ }
5
+ declare const Network: ({ type }: Props) => JSX.Element;
6
+ export default Network;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ clickHandler?: any;
4
+ children?: any;
5
+ className?: string;
6
+ isLoading?: boolean;
7
+ }
8
+ declare const PrimaryButton: ({ className, clickHandler, children, isLoading }: Props) => JSX.Element;
9
+ export default PrimaryButton;
@@ -0,0 +1,9 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ interface Props {
3
+ step: number;
4
+ focus: number;
5
+ setFocus: Dispatch<SetStateAction<number>>;
6
+ errorStep: number;
7
+ }
8
+ declare const Progressbar: ({ step, errorStep, setFocus }: Props) => JSX.Element;
9
+ export default Progressbar;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ clickHandler?: any;
4
+ children?: any;
5
+ className?: string;
6
+ theme?: string;
7
+ }
8
+ declare const SecondaryButton: ({ className, clickHandler, children, theme }: Props) => JSX.Element;
9
+ export default SecondaryButton;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const SingleForm: () => JSX.Element;
3
+ export default SingleForm;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface Props {
3
+ step: number;
4
+ focus: number;
5
+ errorStep: number;
6
+ }
7
+ declare const Tooltip: ({ step, focus, errorStep }: Props) => JSX.Element;
8
+ export default Tooltip;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ declare const WalletButton: ({ errorBelow }: {
3
+ errorBelow?: boolean | undefined;
4
+ }) => JSX.Element;
5
+ export default WalletButton;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const WalletConnectModal: () => JSX.Element;
3
+ export default WalletConnectModal;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const WalletSelect: () => JSX.Element;
3
+ export default WalletSelect;
@@ -0,0 +1,13 @@
1
+ export { default as ExternalLink } from './ExternalLink';
2
+ export { default as NetworkLabel } from './NetworkLabel';
3
+ export { default as PrimaryButton } from './PrimaryButton';
4
+ export { default as SecondaryButton } from './SecondaryButton';
5
+ export { default as NetworkSelect } from './NetworkSelect';
6
+ export { default as WalletSelect } from './WalletSelect';
7
+ export { default as Dropdown } from './Dropdown';
8
+ export { default as WalletButton } from './WalletButton';
9
+ export { default as CoinDropdown } from './CoinDropdown';
10
+ export { default as ConfirmDetails } from './ConfirmDetails';
11
+ export { default as WalletConnectModal } from './WalletConnectModal';
12
+ export { default as AddressInput } from './AddressInput';
13
+ export { default as CustomCheckbox } from './CustomCheckbox';
@@ -0,0 +1,18 @@
1
+ import { ethers } from 'ethers';
2
+ import { ReactNode } from 'react';
3
+ export declare type Provider = ethers.providers.Web3Provider | undefined;
4
+ export declare type Signer = ethers.Signer | undefined;
5
+ interface IEthereumProviderContext {
6
+ connect(): void;
7
+ disconnect(): void;
8
+ provider: Provider;
9
+ chainId: number | undefined;
10
+ signer: Signer;
11
+ signerAddress: string | undefined;
12
+ providerError: string | null;
13
+ }
14
+ export declare const EthereumProvider: ({ children }: {
15
+ children: ReactNode;
16
+ }) => JSX.Element;
17
+ export declare const useEthereumProvider: () => IEthereumProviderContext;
18
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare const fetchWrapper: {
2
+ get: typeof get;
3
+ post: typeof post;
4
+ };
5
+ declare function get(url: string): Promise<string>;
6
+ declare function post(url: string, body: any): Promise<string>;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare const formatterInt: Intl.NumberFormat;
2
+ export declare const formatterFloat: Intl.NumberFormat;
@@ -0,0 +1,4 @@
1
+ export default function useAllowance(): {
2
+ isApproved: boolean;
3
+ approve: () => Promise<void>;
4
+ };
@@ -0,0 +1,7 @@
1
+ declare function useIsWalletReady(enableNetworkAutoswitch?: boolean): {
2
+ isReady: boolean;
3
+ statusMessage: string;
4
+ walletAddress?: string;
5
+ forceNetworkSwitch: () => void;
6
+ };
7
+ export default useIsWalletReady;
@@ -0,0 +1,3 @@
1
+ export default function useServiceFee(): {
2
+ serviceFee: number;
3
+ };