@0xsquid/react-hooks 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 (108) hide show
  1. package/.babelrc +7 -0
  2. package/.eslintignore +1 -0
  3. package/.eslintrc.json +44 -0
  4. package/dist/index.js +6 -0
  5. package/jest.config.ts +28 -0
  6. package/package.json +124 -0
  7. package/scripts/copyAssets.js +27 -0
  8. package/scripts/removeBuildTestFolder.js +28 -0
  9. package/scripts/replacePaths.js +37 -0
  10. package/src/assets/images/icons/wallets/binance.svg +4 -0
  11. package/src/assets/images/icons/wallets/bitget.svg +43 -0
  12. package/src/assets/images/icons/wallets/bitkeep.svg +9 -0
  13. package/src/assets/images/icons/wallets/blockchaindotcom.svg +11 -0
  14. package/src/assets/images/icons/wallets/brave.svg +18 -0
  15. package/src/assets/images/icons/wallets/c98.svg +3 -0
  16. package/src/assets/images/icons/wallets/coinbase.svg +5 -0
  17. package/src/assets/images/icons/wallets/cosmostation.svg +9 -0
  18. package/src/assets/images/icons/wallets/defiConnect.svg +25 -0
  19. package/src/assets/images/icons/wallets/exodus.svg +33 -0
  20. package/src/assets/images/icons/wallets/fetchai.svg +1 -0
  21. package/src/assets/images/icons/wallets/index.ts +43 -0
  22. package/src/assets/images/icons/wallets/keplr.svg +9 -0
  23. package/src/assets/images/icons/wallets/leap.svg +35 -0
  24. package/src/assets/images/icons/wallets/metamask.svg +48 -0
  25. package/src/assets/images/icons/wallets/okx.svg +1 -0
  26. package/src/assets/images/icons/wallets/rabby.svg +1 -0
  27. package/src/assets/images/icons/wallets/trustwallet.svg +11 -0
  28. package/src/assets/images/icons/wallets/walletConnect.svg +11 -0
  29. package/src/assets/images/icons/wallets/wallet_icon.svg +1 -0
  30. package/src/assets/images/icons/wallets/xdefi.svg +9 -0
  31. package/src/assets/images/icons/wallets/zerion.svg +11 -0
  32. package/src/connectors/ExodusConnector.ts +6 -0
  33. package/src/connectors/LedgerLiveConnector.ts +226 -0
  34. package/src/contracts/typechain/ERC20.d.ts +441 -0
  35. package/src/contracts/typechain/factories/ERC20__factory.d.ts +56 -0
  36. package/src/contracts/typechain/factories/ERC20__factory.ts +340 -0
  37. package/src/core/constants.ts +549 -0
  38. package/src/core/externalLinks.ts +26 -0
  39. package/src/core/index.ts +1 -0
  40. package/src/core/multicall3.ts +22 -0
  41. package/src/core/numbers.ts +44 -0
  42. package/src/core/providers/CosmosProvider.tsx +55 -0
  43. package/src/core/queries/queries-keys.ts +156 -0
  44. package/src/core/queries/react-query-config.ts +13 -0
  45. package/src/core/types/components.ts +16 -0
  46. package/src/core/types/config.ts +52 -0
  47. package/src/core/types/dex.ts +31 -0
  48. package/src/core/types/error.ts +52 -0
  49. package/src/core/types/event.ts +16 -0
  50. package/src/core/types/route.ts +21 -0
  51. package/src/core/types/swap.ts +8 -0
  52. package/src/core/types/tokens.ts +30 -0
  53. package/src/core/types/transaction.ts +84 -0
  54. package/src/core/types/types.ts +37 -0
  55. package/src/core/types/wallet.ts +83 -0
  56. package/src/hooks/chains/useSquidChains.ts +66 -0
  57. package/src/hooks/cosmos/useCosmos.ts +279 -0
  58. package/src/hooks/cosmos/useCosmosForChain.ts +33 -0
  59. package/src/hooks/index.ts +32 -0
  60. package/src/hooks/navigation/useKeyboardNavigation.ts +88 -0
  61. package/src/hooks/store/useSquidStore.ts +80 -0
  62. package/src/hooks/swap/useSwap.ts +359 -0
  63. package/src/hooks/tokens/useAllTokensWithBalance.ts +157 -0
  64. package/src/hooks/tokens/useBalance.ts +180 -0
  65. package/src/hooks/tokens/useMultiChainBalance.ts +59 -0
  66. package/src/hooks/tokens/usePrices.ts +52 -0
  67. package/src/hooks/tokens/useSingleTokenPrice.ts +45 -0
  68. package/src/hooks/tokens/useSquidTokens.ts +48 -0
  69. package/src/hooks/tokens/useTokensWithBalance.ts +169 -0
  70. package/src/hooks/transaction/useEstimate.ts +397 -0
  71. package/src/hooks/transaction/useEstimatePriceImpact.ts +39 -0
  72. package/src/hooks/transaction/useExecuteTransaction.ts +440 -0
  73. package/src/hooks/transaction/useExpress.ts +46 -0
  74. package/src/hooks/transaction/useGetRoute.ts +145 -0
  75. package/src/hooks/transaction/useSingleTransaction.ts +155 -0
  76. package/src/hooks/transaction/useTransaction.ts +734 -0
  77. package/src/hooks/user/useUserParams.ts +63 -0
  78. package/src/hooks/wallet/useAddToken.ts +53 -0
  79. package/src/hooks/wallet/useAutoConnect.ts +56 -0
  80. package/src/hooks/wallet/useGnosisContext.ts +84 -0
  81. package/src/hooks/wallet/useIntegratorContext.ts +44 -0
  82. package/src/hooks/wallet/useMultiChainWallet.ts +146 -0
  83. package/src/hooks/wallet/useWallet.ts +86 -0
  84. package/src/hooks/webapp-router/useSquidRouter.ts +42 -0
  85. package/src/index.ts +5 -0
  86. package/src/provider/index.tsx +105 -0
  87. package/src/react-app-env.d.ts +2 -0
  88. package/src/services/external/analyticsService.ts +46 -0
  89. package/src/services/external/coingeckoService.ts +35 -0
  90. package/src/services/external/rpcService.ts +196 -0
  91. package/src/services/external/secretService.ts +178 -0
  92. package/src/services/index.ts +1 -0
  93. package/src/services/internal/apiService.ts +6 -0
  94. package/src/services/internal/assetsService.ts +84 -0
  95. package/src/services/internal/configService.ts +261 -0
  96. package/src/services/internal/errorService.ts +124 -0
  97. package/src/services/internal/eventService.ts +93 -0
  98. package/src/services/internal/priceService.ts +10 -0
  99. package/src/services/internal/transactionService.ts +255 -0
  100. package/src/services/internal/transactionStatusService.ts +293 -0
  101. package/src/services/internal/walletService.ts +158 -0
  102. package/src/tests/assetsService.test.ts +176 -0
  103. package/src/tests/configService.test.ts +486 -0
  104. package/src/tests/fetchSquidData.ts +43 -0
  105. package/src/tests/jest-svg-transform.ts +19 -0
  106. package/src/tests/sample.json +0 -0
  107. package/src/tests/walletService.test.ts +178 -0
  108. package/tsconfig.json +30 -0
@@ -0,0 +1,226 @@
1
+ import { PriorityConnectors } from "@/core/constants";
2
+ import { IFrameEthereumProvider } from "@ledgerhq/iframe-provider";
3
+ import type { Chain, ProviderRpcError, RpcError } from "@wagmi/core";
4
+ import {
5
+ AddChainError,
6
+ ChainNotConfiguredError,
7
+ Connector,
8
+ ConnectorNotFoundError,
9
+ ResourceUnavailableError,
10
+ SwitchChainError,
11
+ UserRejectedRequestError,
12
+ normalizeChainId,
13
+ } from "@wagmi/core";
14
+ import { providers } from "ethers";
15
+ import { getAddress, hexValue } from "ethers/lib/utils";
16
+
17
+ type IFrameEthereumProviderOptions = ConstructorParameters<
18
+ typeof IFrameEthereumProvider
19
+ >[0];
20
+
21
+ export class IFrameEthereumConnector extends Connector<
22
+ IFrameEthereumProvider,
23
+ IFrameEthereumProviderOptions
24
+ > {
25
+ readonly id = PriorityConnectors.LedgerLive;
26
+
27
+ readonly name = "Ledger Live";
28
+
29
+ readonly ready = true;
30
+
31
+ providerInstance?: IFrameEthereumProvider;
32
+
33
+ async connect({ chainId }: { chainId?: number } = {}) {
34
+ try {
35
+ const provider = await this.getProvider();
36
+ if (!provider) throw new ConnectorNotFoundError();
37
+
38
+ if (provider.on) {
39
+ provider.on("accountsChanged", this.onAccountsChanged);
40
+ provider.on("chainChanged", this.onChainChanged);
41
+ }
42
+
43
+ this.emit("message", { type: "connecting" });
44
+
45
+ const account = await this.getAccount();
46
+ // Switch to chain if provided
47
+ let id = await this.getChainId();
48
+ let unsupported = this.isChainUnsupported(id);
49
+ if (chainId && id !== chainId) {
50
+ const chain = await this.switchChain(chainId);
51
+ id = chain.id;
52
+ unsupported = this.isChainUnsupported(id);
53
+ }
54
+
55
+ return { account, chain: { id, unsupported }, provider };
56
+ } catch (error) {
57
+ if (this.isUserRejectedRequestError(error)) {
58
+ throw new UserRejectedRequestError(error);
59
+ }
60
+ if ((error as RpcError).code === -32002) {
61
+ throw new ResourceUnavailableError(error);
62
+ }
63
+ throw error;
64
+ }
65
+ }
66
+
67
+ async disconnect() {
68
+ const provider = await this.getProvider();
69
+ if (!provider?.removeListener) return;
70
+
71
+ provider.removeListener("accountsChanged", this.onAccountsChanged);
72
+ provider.removeListener("chainChanged", this.onChainChanged);
73
+ }
74
+
75
+ async getAccount() {
76
+ const provider = await this.getProvider();
77
+ if (!provider) throw new ConnectorNotFoundError();
78
+ const accounts = await provider.send("eth_requestAccounts");
79
+ // return checksum address
80
+ return getAddress(accounts[0] as string);
81
+ }
82
+
83
+ async getChainId() {
84
+ const provider = await this.getProvider();
85
+ if (!provider) throw new ConnectorNotFoundError();
86
+ return provider.send("eth_chainId").then(normalizeChainId);
87
+ }
88
+
89
+ async getProvider() {
90
+ if (!this.providerInstance) {
91
+ this.providerInstance = new IFrameEthereumProvider(this.options);
92
+ }
93
+ return this.providerInstance;
94
+ }
95
+
96
+ async getSigner() {
97
+ const [provider, account] = await Promise.all([
98
+ this.getProvider(),
99
+ this.getAccount(),
100
+ ]);
101
+ return new providers.Web3Provider(
102
+ provider as unknown as providers.ExternalProvider
103
+ ).getSigner(account);
104
+ }
105
+
106
+ async isAuthorized() {
107
+ try {
108
+ const provider = await this.getProvider();
109
+ if (!provider) throw new ConnectorNotFoundError();
110
+ const accounts = await provider.send("eth_accounts");
111
+ const account = accounts[0];
112
+ return !!account;
113
+ } catch {
114
+ return false;
115
+ }
116
+ }
117
+
118
+ override async switchChain(chainId: number): Promise<Chain> {
119
+ const provider = await this.getProvider();
120
+
121
+ if (!provider) throw new ConnectorNotFoundError();
122
+ const id = hexValue(chainId);
123
+
124
+ try {
125
+ await provider.send("wallet_switchEthereumChain", [{ chainId: id }]);
126
+
127
+ return (
128
+ this.chains.find((x) => x.id === chainId) ?? {
129
+ id: chainId,
130
+ name: `Chain ${id}`,
131
+ network: `${id}`,
132
+ nativeCurrency: { decimals: 18, name: "Ether", symbol: "ETH" },
133
+ rpcUrls: { default: { http: [""] }, public: { http: [""] } },
134
+ }
135
+ );
136
+ } catch (error) {
137
+ const chain = this.chains.find((x) => x.id === chainId);
138
+ if (!chain) {
139
+ throw new ChainNotConfiguredError({ chainId, connectorId: this.id });
140
+ }
141
+
142
+ // Indicates chain is not added to provider
143
+ if (
144
+ (error as ProviderRpcError).code === 4902 ||
145
+ // Unwrapping for MetaMask Mobile
146
+ // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719
147
+ (error as RpcError<{ originalError?: { code: number } }>)?.data
148
+ ?.originalError?.code === 4902
149
+ ) {
150
+ try {
151
+ await provider.send("wallet_addEthereumChain", [
152
+ {
153
+ chainId: id,
154
+ chainName: chain.name,
155
+ nativeCurrency: chain.nativeCurrency,
156
+ rpcUrls: [chain.rpcUrls.public ?? chain.rpcUrls.default],
157
+ blockExplorerUrls: this.getBlockExplorerUrls(chain),
158
+ },
159
+ ]);
160
+
161
+ return chain;
162
+ } catch (addError) {
163
+ if (this.isUserRejectedRequestError(addError)) {
164
+ throw new UserRejectedRequestError(error);
165
+ }
166
+ throw new AddChainError();
167
+ }
168
+ }
169
+
170
+ if (this.isUserRejectedRequestError(error)) {
171
+ throw new UserRejectedRequestError(error);
172
+ }
173
+ throw new SwitchChainError(error);
174
+ }
175
+ }
176
+
177
+ override async watchAsset({
178
+ address,
179
+ decimals = 18,
180
+ image,
181
+ symbol,
182
+ }: {
183
+ address: string;
184
+ decimals?: number;
185
+ image?: string;
186
+ symbol: string;
187
+ }) {
188
+ const provider = await this.getProvider();
189
+ if (!provider) throw new ConnectorNotFoundError();
190
+
191
+ return provider.send("wallet_watchAsset", [
192
+ {
193
+ type: "ERC20",
194
+ options: {
195
+ address,
196
+ decimals,
197
+ image,
198
+ symbol,
199
+ },
200
+ },
201
+ ]);
202
+ }
203
+
204
+ protected onAccountsChanged = (accounts: string[]) => {
205
+ if (accounts.length === 0 || !accounts[0]) {
206
+ this.emit("disconnect");
207
+ } else {
208
+ this.emit("change", { account: getAddress(accounts[0]) });
209
+ }
210
+ };
211
+
212
+ protected onChainChanged = (chainId: number | string) => {
213
+ const id = normalizeChainId(chainId);
214
+ const unsupported = this.isChainUnsupported(id);
215
+ this.emit("change", { chain: { id, unsupported } });
216
+ };
217
+
218
+ // eslint-disable-next-line class-methods-use-this
219
+ protected isUserRejectedRequestError(error: unknown) {
220
+ return (error as ProviderRpcError).code === 4001;
221
+ }
222
+
223
+ protected onDisconnect = () => {
224
+ this.emit("disconnect");
225
+ };
226
+ }
@@ -0,0 +1,441 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import {
6
+ ethers,
7
+ EventFilter,
8
+ Signer,
9
+ BigNumber,
10
+ BigNumberish,
11
+ PopulatedTransaction,
12
+ BaseContract,
13
+ ContractTransaction,
14
+ Overrides,
15
+ CallOverrides,
16
+ } from "ethers";
17
+ import { BytesLike } from "@ethersproject/bytes";
18
+ import { Listener, Provider } from "@ethersproject/providers";
19
+ import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
20
+ import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
21
+
22
+ interface ERC20Interface extends ethers.utils.Interface {
23
+ functions: {
24
+ "allowance(address,address)": FunctionFragment;
25
+ "approve(address,uint256)": FunctionFragment;
26
+ "balanceOf(address)": FunctionFragment;
27
+ "decimals()": FunctionFragment;
28
+ "decreaseAllowance(address,uint256)": FunctionFragment;
29
+ "increaseAllowance(address,uint256)": FunctionFragment;
30
+ "name()": FunctionFragment;
31
+ "symbol()": FunctionFragment;
32
+ "totalSupply()": FunctionFragment;
33
+ "transfer(address,uint256)": FunctionFragment;
34
+ "transferFrom(address,address,uint256)": FunctionFragment;
35
+ };
36
+
37
+ encodeFunctionData(
38
+ functionFragment: "allowance",
39
+ values: [string, string]
40
+ ): string;
41
+ encodeFunctionData(
42
+ functionFragment: "approve",
43
+ values: [string, BigNumberish]
44
+ ): string;
45
+ encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
46
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
47
+ encodeFunctionData(
48
+ functionFragment: "decreaseAllowance",
49
+ values: [string, BigNumberish]
50
+ ): string;
51
+ encodeFunctionData(
52
+ functionFragment: "increaseAllowance",
53
+ values: [string, BigNumberish]
54
+ ): string;
55
+ encodeFunctionData(functionFragment: "name", values?: undefined): string;
56
+ encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
57
+ encodeFunctionData(
58
+ functionFragment: "totalSupply",
59
+ values?: undefined
60
+ ): string;
61
+ encodeFunctionData(
62
+ functionFragment: "transfer",
63
+ values: [string, BigNumberish]
64
+ ): string;
65
+ encodeFunctionData(
66
+ functionFragment: "transferFrom",
67
+ values: [string, string, BigNumberish]
68
+ ): string;
69
+
70
+ decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
71
+ decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
72
+ decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
73
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
74
+ decodeFunctionResult(
75
+ functionFragment: "decreaseAllowance",
76
+ data: BytesLike
77
+ ): Result;
78
+ decodeFunctionResult(
79
+ functionFragment: "increaseAllowance",
80
+ data: BytesLike
81
+ ): Result;
82
+ decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
83
+ decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
84
+ decodeFunctionResult(
85
+ functionFragment: "totalSupply",
86
+ data: BytesLike
87
+ ): Result;
88
+ decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
89
+ decodeFunctionResult(
90
+ functionFragment: "transferFrom",
91
+ data: BytesLike
92
+ ): Result;
93
+
94
+ events: {
95
+ "Approval(address,address,uint256)": EventFragment;
96
+ "Transfer(address,address,uint256)": EventFragment;
97
+ };
98
+
99
+ getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
100
+ getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
101
+ }
102
+
103
+ export type ApprovalEvent = TypedEvent<
104
+ [string, string, BigNumber] & {
105
+ owner: string;
106
+ spender: string;
107
+ value: BigNumber;
108
+ }
109
+ >;
110
+
111
+ export type TransferEvent = TypedEvent<
112
+ [string, string, BigNumber] & { from: string; to: string; value: BigNumber }
113
+ >;
114
+
115
+ export class ERC20 extends BaseContract {
116
+ connect(signerOrProvider: Signer | Provider | string): this;
117
+ attach(addressOrName: string): this;
118
+ deployed(): Promise<this>;
119
+
120
+ listeners<EventArgsArray extends Array<any>, EventArgsObject>(
121
+ eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
122
+ ): Array<TypedListener<EventArgsArray, EventArgsObject>>;
123
+ off<EventArgsArray extends Array<any>, EventArgsObject>(
124
+ eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
125
+ listener: TypedListener<EventArgsArray, EventArgsObject>
126
+ ): this;
127
+ on<EventArgsArray extends Array<any>, EventArgsObject>(
128
+ eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
129
+ listener: TypedListener<EventArgsArray, EventArgsObject>
130
+ ): this;
131
+ once<EventArgsArray extends Array<any>, EventArgsObject>(
132
+ eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
133
+ listener: TypedListener<EventArgsArray, EventArgsObject>
134
+ ): this;
135
+ removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
136
+ eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
137
+ listener: TypedListener<EventArgsArray, EventArgsObject>
138
+ ): this;
139
+ removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
140
+ eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
141
+ ): this;
142
+
143
+ listeners(eventName?: string): Array<Listener>;
144
+ off(eventName: string, listener: Listener): this;
145
+ on(eventName: string, listener: Listener): this;
146
+ once(eventName: string, listener: Listener): this;
147
+ removeListener(eventName: string, listener: Listener): this;
148
+ removeAllListeners(eventName?: string): this;
149
+
150
+ queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
151
+ event: TypedEventFilter<EventArgsArray, EventArgsObject>,
152
+ fromBlockOrBlockhash?: string | number | undefined,
153
+ toBlock?: string | number | undefined
154
+ ): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
155
+
156
+ interface: ERC20Interface;
157
+
158
+ functions: {
159
+ allowance(
160
+ owner: string,
161
+ spender: string,
162
+ overrides?: CallOverrides
163
+ ): Promise<[BigNumber]>;
164
+
165
+ approve(
166
+ spender: string,
167
+ amount: BigNumberish,
168
+ overrides?: Overrides & { from?: string | Promise<string> }
169
+ ): Promise<ContractTransaction>;
170
+
171
+ balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
172
+
173
+ decimals(overrides?: CallOverrides): Promise<[number]>;
174
+
175
+ decreaseAllowance(
176
+ spender: string,
177
+ subtractedValue: BigNumberish,
178
+ overrides?: Overrides & { from?: string | Promise<string> }
179
+ ): Promise<ContractTransaction>;
180
+
181
+ increaseAllowance(
182
+ spender: string,
183
+ addedValue: BigNumberish,
184
+ overrides?: Overrides & { from?: string | Promise<string> }
185
+ ): Promise<ContractTransaction>;
186
+
187
+ name(overrides?: CallOverrides): Promise<[string]>;
188
+
189
+ symbol(overrides?: CallOverrides): Promise<[string]>;
190
+
191
+ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
192
+
193
+ transfer(
194
+ to: string,
195
+ amount: BigNumberish,
196
+ overrides?: Overrides & { from?: string | Promise<string> }
197
+ ): Promise<ContractTransaction>;
198
+
199
+ transferFrom(
200
+ from: string,
201
+ to: string,
202
+ amount: BigNumberish,
203
+ overrides?: Overrides & { from?: string | Promise<string> }
204
+ ): Promise<ContractTransaction>;
205
+ };
206
+
207
+ allowance(
208
+ owner: string,
209
+ spender: string,
210
+ overrides?: CallOverrides
211
+ ): Promise<BigNumber>;
212
+
213
+ approve(
214
+ spender: string,
215
+ amount: BigNumberish,
216
+ overrides?: Overrides & { from?: string | Promise<string> }
217
+ ): Promise<ContractTransaction>;
218
+
219
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
220
+
221
+ decimals(overrides?: CallOverrides): Promise<number>;
222
+
223
+ decreaseAllowance(
224
+ spender: string,
225
+ subtractedValue: BigNumberish,
226
+ overrides?: Overrides & { from?: string | Promise<string> }
227
+ ): Promise<ContractTransaction>;
228
+
229
+ increaseAllowance(
230
+ spender: string,
231
+ addedValue: BigNumberish,
232
+ overrides?: Overrides & { from?: string | Promise<string> }
233
+ ): Promise<ContractTransaction>;
234
+
235
+ name(overrides?: CallOverrides): Promise<string>;
236
+
237
+ symbol(overrides?: CallOverrides): Promise<string>;
238
+
239
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
240
+
241
+ transfer(
242
+ to: string,
243
+ amount: BigNumberish,
244
+ overrides?: Overrides & { from?: string | Promise<string> }
245
+ ): Promise<ContractTransaction>;
246
+
247
+ transferFrom(
248
+ from: string,
249
+ to: string,
250
+ amount: BigNumberish,
251
+ overrides?: Overrides & { from?: string | Promise<string> }
252
+ ): Promise<ContractTransaction>;
253
+
254
+ callStatic: {
255
+ allowance(
256
+ owner: string,
257
+ spender: string,
258
+ overrides?: CallOverrides
259
+ ): Promise<BigNumber>;
260
+
261
+ approve(
262
+ spender: string,
263
+ amount: BigNumberish,
264
+ overrides?: CallOverrides
265
+ ): Promise<boolean>;
266
+
267
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
268
+
269
+ decimals(overrides?: CallOverrides): Promise<number>;
270
+
271
+ decreaseAllowance(
272
+ spender: string,
273
+ subtractedValue: BigNumberish,
274
+ overrides?: CallOverrides
275
+ ): Promise<boolean>;
276
+
277
+ increaseAllowance(
278
+ spender: string,
279
+ addedValue: BigNumberish,
280
+ overrides?: CallOverrides
281
+ ): Promise<boolean>;
282
+
283
+ name(overrides?: CallOverrides): Promise<string>;
284
+
285
+ symbol(overrides?: CallOverrides): Promise<string>;
286
+
287
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
288
+
289
+ transfer(
290
+ to: string,
291
+ amount: BigNumberish,
292
+ overrides?: CallOverrides
293
+ ): Promise<boolean>;
294
+
295
+ transferFrom(
296
+ from: string,
297
+ to: string,
298
+ amount: BigNumberish,
299
+ overrides?: CallOverrides
300
+ ): Promise<boolean>;
301
+ };
302
+
303
+ filters: {
304
+ "Approval(address,address,uint256)"(
305
+ owner?: string | null,
306
+ spender?: string | null,
307
+ value?: null
308
+ ): TypedEventFilter<
309
+ [string, string, BigNumber],
310
+ { owner: string; spender: string; value: BigNumber }
311
+ >;
312
+
313
+ Approval(
314
+ owner?: string | null,
315
+ spender?: string | null,
316
+ value?: null
317
+ ): TypedEventFilter<
318
+ [string, string, BigNumber],
319
+ { owner: string; spender: string; value: BigNumber }
320
+ >;
321
+
322
+ "Transfer(address,address,uint256)"(
323
+ from?: string | null,
324
+ to?: string | null,
325
+ value?: null
326
+ ): TypedEventFilter<
327
+ [string, string, BigNumber],
328
+ { from: string; to: string; value: BigNumber }
329
+ >;
330
+
331
+ Transfer(
332
+ from?: string | null,
333
+ to?: string | null,
334
+ value?: null
335
+ ): TypedEventFilter<
336
+ [string, string, BigNumber],
337
+ { from: string; to: string; value: BigNumber }
338
+ >;
339
+ };
340
+
341
+ estimateGas: {
342
+ allowance(
343
+ owner: string,
344
+ spender: string,
345
+ overrides?: CallOverrides
346
+ ): Promise<BigNumber>;
347
+
348
+ approve(
349
+ spender: string,
350
+ amount: BigNumberish,
351
+ overrides?: Overrides & { from?: string | Promise<string> }
352
+ ): Promise<BigNumber>;
353
+
354
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
355
+
356
+ decimals(overrides?: CallOverrides): Promise<BigNumber>;
357
+
358
+ decreaseAllowance(
359
+ spender: string,
360
+ subtractedValue: BigNumberish,
361
+ overrides?: Overrides & { from?: string | Promise<string> }
362
+ ): Promise<BigNumber>;
363
+
364
+ increaseAllowance(
365
+ spender: string,
366
+ addedValue: BigNumberish,
367
+ overrides?: Overrides & { from?: string | Promise<string> }
368
+ ): Promise<BigNumber>;
369
+
370
+ name(overrides?: CallOverrides): Promise<BigNumber>;
371
+
372
+ symbol(overrides?: CallOverrides): Promise<BigNumber>;
373
+
374
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
375
+
376
+ transfer(
377
+ to: string,
378
+ amount: BigNumberish,
379
+ overrides?: Overrides & { from?: string | Promise<string> }
380
+ ): Promise<BigNumber>;
381
+
382
+ transferFrom(
383
+ from: string,
384
+ to: string,
385
+ amount: BigNumberish,
386
+ overrides?: Overrides & { from?: string | Promise<string> }
387
+ ): Promise<BigNumber>;
388
+ };
389
+
390
+ populateTransaction: {
391
+ allowance(
392
+ owner: string,
393
+ spender: string,
394
+ overrides?: CallOverrides
395
+ ): Promise<PopulatedTransaction>;
396
+
397
+ approve(
398
+ spender: string,
399
+ amount: BigNumberish,
400
+ overrides?: Overrides & { from?: string | Promise<string> }
401
+ ): Promise<PopulatedTransaction>;
402
+
403
+ balanceOf(
404
+ account: string,
405
+ overrides?: CallOverrides
406
+ ): Promise<PopulatedTransaction>;
407
+
408
+ decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
409
+
410
+ decreaseAllowance(
411
+ spender: string,
412
+ subtractedValue: BigNumberish,
413
+ overrides?: Overrides & { from?: string | Promise<string> }
414
+ ): Promise<PopulatedTransaction>;
415
+
416
+ increaseAllowance(
417
+ spender: string,
418
+ addedValue: BigNumberish,
419
+ overrides?: Overrides & { from?: string | Promise<string> }
420
+ ): Promise<PopulatedTransaction>;
421
+
422
+ name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
423
+
424
+ symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
425
+
426
+ totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
427
+
428
+ transfer(
429
+ to: string,
430
+ amount: BigNumberish,
431
+ overrides?: Overrides & { from?: string | Promise<string> }
432
+ ): Promise<PopulatedTransaction>;
433
+
434
+ transferFrom(
435
+ from: string,
436
+ to: string,
437
+ amount: BigNumberish,
438
+ overrides?: Overrides & { from?: string | Promise<string> }
439
+ ): Promise<PopulatedTransaction>;
440
+ };
441
+ }