@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,56 @@
1
+ import type { ERC20, ERC20Interface } from "@/contracts/typechain/ERC20";
2
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import { ContractFactory, Overrides, Signer } from "ethers";
4
+ export declare class ERC20__factory extends ContractFactory {
5
+ constructor(...args: [signer: Signer] | ConstructorParameters<typeof ContractFactory>);
6
+ deploy(name_: string, symbol_: string, overrides?: Overrides & {
7
+ from?: string | Promise<string>;
8
+ }): Promise<ERC20>;
9
+ getDeployTransaction(name_: string, symbol_: string, overrides?: Overrides & {
10
+ from?: string | Promise<string>;
11
+ }): TransactionRequest;
12
+ attach(address: string): ERC20;
13
+ connect(signer: Signer): ERC20__factory;
14
+ static readonly bytecode = "0x60806040523480156200001157600080fd5b5060405162000af038038062000af08339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61085e80620002926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c391906106c4565b60405180910390f35b6100df6100da366004610735565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f36600461075f565b61024a565b604051601281526020016100c3565b6100df610131366004610735565b61026e565b6100f361014436600461079b565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df610175366004610735565b61029f565b6100df610188366004610735565b61031f565b6100f361019b3660046107bd565b61032d565b6060600380546101af906107f0565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107f0565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b919061082b565b610358565b6060600480546101af906107f0565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061066b90849061082b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b791815260200190565b60405180910390a36104f0565b600060208083528351808285015260005b818110156106f1578581018301518582016040015282016106d5565b81811115610703576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461073057600080fd5b919050565b6000806040838503121561074857600080fd5b61075183610719565b946020939093013593505050565b60008060006060848603121561077457600080fd5b61077d84610719565b925061078b60208501610719565b9150604084013590509250925092565b6000602082840312156107ad57600080fd5b6107b682610719565b9392505050565b600080604083850312156107d057600080fd5b6107d983610719565b91506107e760208401610719565b90509250929050565b600181811c9082168061080457607f821691505b6020821081141561082557634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561084c57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c634300080b000a";
15
+ static readonly abi: ({
16
+ inputs: {
17
+ internalType: string;
18
+ name: string;
19
+ type: string;
20
+ }[];
21
+ stateMutability: string;
22
+ type: string;
23
+ anonymous?: undefined;
24
+ name?: undefined;
25
+ outputs?: undefined;
26
+ } | {
27
+ anonymous: boolean;
28
+ inputs: {
29
+ indexed: boolean;
30
+ internalType: string;
31
+ name: string;
32
+ type: string;
33
+ }[];
34
+ name: string;
35
+ type: string;
36
+ stateMutability?: undefined;
37
+ outputs?: undefined;
38
+ } | {
39
+ inputs: {
40
+ internalType: string;
41
+ name: string;
42
+ type: string;
43
+ }[];
44
+ name: string;
45
+ outputs: {
46
+ internalType: string;
47
+ name: string;
48
+ type: string;
49
+ }[];
50
+ stateMutability: string;
51
+ type: string;
52
+ anonymous?: undefined;
53
+ })[];
54
+ static createInterface(): ERC20Interface;
55
+ static connect(address: string, signerOrProvider: Signer | Provider): ERC20;
56
+ }
@@ -0,0 +1,340 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import type { ERC20, ERC20Interface } from "@/contracts/typechain/ERC20";
6
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
7
+ import { Contract, ContractFactory, Overrides, Signer, utils } from "ethers";
8
+
9
+ const _abi = [
10
+ {
11
+ inputs: [
12
+ {
13
+ internalType: "string",
14
+ name: "name_",
15
+ type: "string",
16
+ },
17
+ {
18
+ internalType: "string",
19
+ name: "symbol_",
20
+ type: "string",
21
+ },
22
+ ],
23
+ stateMutability: "nonpayable",
24
+ type: "constructor",
25
+ },
26
+ {
27
+ anonymous: false,
28
+ inputs: [
29
+ {
30
+ indexed: true,
31
+ internalType: "address",
32
+ name: "owner",
33
+ type: "address",
34
+ },
35
+ {
36
+ indexed: true,
37
+ internalType: "address",
38
+ name: "spender",
39
+ type: "address",
40
+ },
41
+ {
42
+ indexed: false,
43
+ internalType: "uint256",
44
+ name: "value",
45
+ type: "uint256",
46
+ },
47
+ ],
48
+ name: "Approval",
49
+ type: "event",
50
+ },
51
+ {
52
+ anonymous: false,
53
+ inputs: [
54
+ {
55
+ indexed: true,
56
+ internalType: "address",
57
+ name: "from",
58
+ type: "address",
59
+ },
60
+ {
61
+ indexed: true,
62
+ internalType: "address",
63
+ name: "to",
64
+ type: "address",
65
+ },
66
+ {
67
+ indexed: false,
68
+ internalType: "uint256",
69
+ name: "value",
70
+ type: "uint256",
71
+ },
72
+ ],
73
+ name: "Transfer",
74
+ type: "event",
75
+ },
76
+ {
77
+ inputs: [
78
+ {
79
+ internalType: "address",
80
+ name: "owner",
81
+ type: "address",
82
+ },
83
+ {
84
+ internalType: "address",
85
+ name: "spender",
86
+ type: "address",
87
+ },
88
+ ],
89
+ name: "allowance",
90
+ outputs: [
91
+ {
92
+ internalType: "uint256",
93
+ name: "",
94
+ type: "uint256",
95
+ },
96
+ ],
97
+ stateMutability: "view",
98
+ type: "function",
99
+ },
100
+ {
101
+ inputs: [
102
+ {
103
+ internalType: "address",
104
+ name: "spender",
105
+ type: "address",
106
+ },
107
+ {
108
+ internalType: "uint256",
109
+ name: "amount",
110
+ type: "uint256",
111
+ },
112
+ ],
113
+ name: "approve",
114
+ outputs: [
115
+ {
116
+ internalType: "bool",
117
+ name: "",
118
+ type: "bool",
119
+ },
120
+ ],
121
+ stateMutability: "nonpayable",
122
+ type: "function",
123
+ },
124
+ {
125
+ inputs: [
126
+ {
127
+ internalType: "address",
128
+ name: "account",
129
+ type: "address",
130
+ },
131
+ ],
132
+ name: "balanceOf",
133
+ outputs: [
134
+ {
135
+ internalType: "uint256",
136
+ name: "",
137
+ type: "uint256",
138
+ },
139
+ ],
140
+ stateMutability: "view",
141
+ type: "function",
142
+ },
143
+ {
144
+ inputs: [],
145
+ name: "decimals",
146
+ outputs: [
147
+ {
148
+ internalType: "uint8",
149
+ name: "",
150
+ type: "uint8",
151
+ },
152
+ ],
153
+ stateMutability: "view",
154
+ type: "function",
155
+ },
156
+ {
157
+ inputs: [
158
+ {
159
+ internalType: "address",
160
+ name: "spender",
161
+ type: "address",
162
+ },
163
+ {
164
+ internalType: "uint256",
165
+ name: "subtractedValue",
166
+ type: "uint256",
167
+ },
168
+ ],
169
+ name: "decreaseAllowance",
170
+ outputs: [
171
+ {
172
+ internalType: "bool",
173
+ name: "",
174
+ type: "bool",
175
+ },
176
+ ],
177
+ stateMutability: "nonpayable",
178
+ type: "function",
179
+ },
180
+ {
181
+ inputs: [
182
+ {
183
+ internalType: "address",
184
+ name: "spender",
185
+ type: "address",
186
+ },
187
+ {
188
+ internalType: "uint256",
189
+ name: "addedValue",
190
+ type: "uint256",
191
+ },
192
+ ],
193
+ name: "increaseAllowance",
194
+ outputs: [
195
+ {
196
+ internalType: "bool",
197
+ name: "",
198
+ type: "bool",
199
+ },
200
+ ],
201
+ stateMutability: "nonpayable",
202
+ type: "function",
203
+ },
204
+ {
205
+ inputs: [],
206
+ name: "name",
207
+ outputs: [
208
+ {
209
+ internalType: "string",
210
+ name: "",
211
+ type: "string",
212
+ },
213
+ ],
214
+ stateMutability: "view",
215
+ type: "function",
216
+ },
217
+ {
218
+ inputs: [],
219
+ name: "symbol",
220
+ outputs: [
221
+ {
222
+ internalType: "string",
223
+ name: "",
224
+ type: "string",
225
+ },
226
+ ],
227
+ stateMutability: "view",
228
+ type: "function",
229
+ },
230
+ {
231
+ inputs: [],
232
+ name: "totalSupply",
233
+ outputs: [
234
+ {
235
+ internalType: "uint256",
236
+ name: "",
237
+ type: "uint256",
238
+ },
239
+ ],
240
+ stateMutability: "view",
241
+ type: "function",
242
+ },
243
+ {
244
+ inputs: [
245
+ {
246
+ internalType: "address",
247
+ name: "to",
248
+ type: "address",
249
+ },
250
+ {
251
+ internalType: "uint256",
252
+ name: "amount",
253
+ type: "uint256",
254
+ },
255
+ ],
256
+ name: "transfer",
257
+ outputs: [
258
+ {
259
+ internalType: "bool",
260
+ name: "",
261
+ type: "bool",
262
+ },
263
+ ],
264
+ stateMutability: "nonpayable",
265
+ type: "function",
266
+ },
267
+ {
268
+ inputs: [
269
+ {
270
+ internalType: "address",
271
+ name: "from",
272
+ type: "address",
273
+ },
274
+ {
275
+ internalType: "address",
276
+ name: "to",
277
+ type: "address",
278
+ },
279
+ {
280
+ internalType: "uint256",
281
+ name: "amount",
282
+ type: "uint256",
283
+ },
284
+ ],
285
+ name: "transferFrom",
286
+ outputs: [
287
+ {
288
+ internalType: "bool",
289
+ name: "",
290
+ type: "bool",
291
+ },
292
+ ],
293
+ stateMutability: "nonpayable",
294
+ type: "function",
295
+ },
296
+ ];
297
+
298
+ const _bytecode =
299
+ "0x60806040523480156200001157600080fd5b5060405162000af038038062000af08339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000282565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b602082108114156200027c57634e487b7160e01b600052602260045260246000fd5b50919050565b61085e80620002926000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c391906106c4565b60405180910390f35b6100df6100da366004610735565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f36600461075f565b61024a565b604051601281526020016100c3565b6100df610131366004610735565b61026e565b6100f361014436600461079b565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df610175366004610735565b61029f565b6100df610188366004610735565b61031f565b6100f361019b3660046107bd565b61032d565b6060600380546101af906107f0565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107f0565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b919061082b565b610358565b6060600480546101af906107f0565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610309565b6001600160a01b0382166105bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610309565b6001600160a01b038316600090815260208190526040902054818110156106345760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610309565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061066b90849061082b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b791815260200190565b60405180910390a36104f0565b600060208083528351808285015260005b818110156106f1578581018301518582016040015282016106d5565b81811115610703576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461073057600080fd5b919050565b6000806040838503121561074857600080fd5b61075183610719565b946020939093013593505050565b60008060006060848603121561077457600080fd5b61077d84610719565b925061078b60208501610719565b9150604084013590509250925092565b6000602082840312156107ad57600080fd5b6107b682610719565b9392505050565b600080604083850312156107d057600080fd5b6107d983610719565b91506107e760208401610719565b90509250929050565b600181811c9082168061080457607f821691505b6020821081141561082557634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561084c57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c634300080b000a";
300
+
301
+ export class ERC20__factory extends ContractFactory {
302
+ constructor(
303
+ ...args: [signer: Signer] | ConstructorParameters<typeof ContractFactory>
304
+ ) {
305
+ if (args.length === 1) {
306
+ super(_abi, _bytecode, args[0]);
307
+ } else {
308
+ super(...args);
309
+ }
310
+ }
311
+
312
+ deploy(
313
+ name_: string,
314
+ symbol_: string,
315
+ overrides?: Overrides & { from?: string | Promise<string> }
316
+ ): Promise<ERC20> {
317
+ return super.deploy(name_, symbol_, overrides || {}) as Promise<ERC20>;
318
+ }
319
+ getDeployTransaction(
320
+ name_: string,
321
+ symbol_: string,
322
+ overrides?: Overrides & { from?: string | Promise<string> }
323
+ ): TransactionRequest {
324
+ return super.getDeployTransaction(name_, symbol_, overrides || {});
325
+ }
326
+ attach(address: string): ERC20 {
327
+ return super.attach(address) as ERC20;
328
+ }
329
+ connect(signer: Signer): ERC20__factory {
330
+ return super.connect(signer) as ERC20__factory;
331
+ }
332
+ static readonly bytecode = _bytecode;
333
+ static readonly abi = _abi;
334
+ static createInterface(): ERC20Interface {
335
+ return new utils.Interface(_abi) as ERC20Interface;
336
+ }
337
+ static connect(address: string, signerOrProvider: Signer | Provider): ERC20 {
338
+ return new Contract(address, _abi, signerOrProvider) as ERC20;
339
+ }
340
+ }