@huma-finance/widgets 0.0.7 → 0.0.10

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 (115) hide show
  1. package/.env.example +2 -2
  2. package/.eslintignore +2 -2
  3. package/.eslintrc.js +64 -64
  4. package/.prettierignore +4 -4
  5. package/.prettierrc.js +16 -16
  6. package/API.md +331 -331
  7. package/LICENSE +660 -660
  8. package/README.md +48 -48
  9. package/babel.config.js +15 -15
  10. package/config-overrides.js +9 -9
  11. package/cosmos.config.json +7 -7
  12. package/cypress/e2e/01-invoice-factoring-borrow.test.ts +62 -62
  13. package/cypress/support/e2e.ts +76 -76
  14. package/cypress/support/ethereum.ts +142 -142
  15. package/cypress/tsconfig.json +9 -9
  16. package/cypress/utils/index.ts +54 -54
  17. package/cypress.config.ts +20 -20
  18. package/jsdoc2md.json +20 -20
  19. package/package.json +4 -4
  20. package/public/index.html +40 -40
  21. package/public/manifest.json +25 -25
  22. package/public/robots.txt +3 -3
  23. package/rollup.config.js +81 -81
  24. package/src/components/ApolloWrapper.tsx +15 -15
  25. package/src/components/BottomButton.tsx +31 -31
  26. package/src/components/Factoring/index.ts +2 -2
  27. package/src/components/HumaLoading.tsx +68 -68
  28. package/src/components/HumaTable.tsx +158 -158
  29. package/src/components/InvoiceFactoring/borrow/3-ChooseAmount.tsx +13 -19
  30. package/src/components/InvoiceFactoring/borrow/4-ConfirmTransfer.tsx +3 -3
  31. package/src/components/InvoiceFactoring/borrow/7-Success.tsx +20 -20
  32. package/src/components/Lend/supply/4-ConfirmTransfer.tsx +3 -3
  33. package/src/components/LoadingModal.tsx +49 -49
  34. package/src/components/StreamFactoring/borrow/2-ChooseAmount.tsx +11 -11
  35. package/src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx +3 -3
  36. package/src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx +2 -2
  37. package/src/components/StreamFactoring/borrow/7-Success.tsx +20 -20
  38. package/src/components/SuperfluidFactoring/SuperfluidUpcomingList.tsx +1 -1
  39. package/src/components/SuperfluidFactoring/index.tsx +1 -1
  40. package/src/components/WrapperModal.tsx +54 -54
  41. package/src/components/buttons/TableActionButton.tsx +36 -36
  42. package/src/components/buttons/index.ts +1 -1
  43. package/src/components/humaModal/HumaModalHeader.tsx +70 -70
  44. package/src/components/humaModal/index.tsx +2 -2
  45. package/src/components/icons/approve-lender.svg +30 -30
  46. package/src/components/icons/auto-payback.svg +40 -40
  47. package/src/components/icons/check-circle.svg +3 -3
  48. package/src/components/icons/check-green.svg +3 -3
  49. package/src/components/icons/check.svg +10 -10
  50. package/src/components/icons/donut.svg +904 -904
  51. package/src/components/icons/ellipse.svg +3 -3
  52. package/src/components/icons/huma-full.svg +22 -22
  53. package/src/components/icons/huma.svg +15 -15
  54. package/src/components/icons/index.tsx +93 -93
  55. package/src/components/icons/loader.svg +229 -229
  56. package/src/components/icons/metamask.svg +31 -31
  57. package/src/components/icons/polygon.svg +16 -16
  58. package/src/components/icons/receipt.svg +3 -3
  59. package/src/components/icons/separator.svg +3 -3
  60. package/src/components/icons/sorry.svg +31 -31
  61. package/src/components/icons/usdc.svg +5 -5
  62. package/src/components/icons/wallet-connect.svg +11 -11
  63. package/src/cosmos/CreditLineBorrow.fixture.tsx +85 -85
  64. package/src/cosmos/CreditLinePayment.fixture.tsx +49 -49
  65. package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +111 -111
  66. package/src/cosmos/InvoiceFactoringPayment.fixture.tsx +67 -67
  67. package/src/cosmos/LendSupply.fixture.tsx +75 -75
  68. package/src/cosmos/LendWithdraw.fixture.tsx +43 -43
  69. package/src/cosmos/SDKTesting.fixture.tsx +32 -23
  70. package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +12 -12
  71. package/src/cosmos/WalletWrapper.tsx +52 -52
  72. package/src/cosmos/abis/InvoiceNFT.json +644 -644
  73. package/src/cosmos/abis/ReceivableFactoringPool.json +1529 -1529
  74. package/src/cosmos/utils/index.ts +169 -169
  75. package/src/fonts/Recoleta/Recoleta-Black.otf +0 -0
  76. package/src/fonts/Recoleta/Recoleta-Bold.otf +0 -0
  77. package/src/fonts/Recoleta/Recoleta-Light.otf +0 -0
  78. package/src/fonts/Recoleta/Recoleta-Medium.otf +0 -0
  79. package/src/fonts/Recoleta/Recoleta-Regular.otf +0 -0
  80. package/src/fonts/Recoleta/Recoleta-RegularDEMO.otf +0 -0
  81. package/src/fonts/Recoleta/Recoleta-SemiBold.otf +0 -0
  82. package/src/fonts/Recoleta/Recoleta-Thin.otf +0 -0
  83. package/src/hooks/useEA.ts +11 -9
  84. package/src/hooks/useRedux.ts +6 -6
  85. package/src/index.css +61 -61
  86. package/src/index.tsx +1 -7
  87. package/src/react-app-env.d.ts +1 -1
  88. package/src/reportWebVitals.ts +15 -15
  89. package/src/setupTests.ts +6 -6
  90. package/src/store/index.ts +27 -27
  91. package/src/store/widgets.reducers.ts +7 -7
  92. package/src/store/widgets.selectors.ts +3 -3
  93. package/src/store/widgets.store.ts +2 -2
  94. package/src/theme/breakpoints.ts +10 -10
  95. package/src/theme/components.ts +70 -70
  96. package/src/theme/coreThemeConstants.ts +29 -29
  97. package/src/theme/cssMixins.ts +92 -92
  98. package/src/theme/hooks/useGetSizes.ts +31 -34
  99. package/src/theme/index.ts +24 -24
  100. package/src/theme/palette.ts +150 -150
  101. package/src/theme/shape.ts +7 -7
  102. package/src/theme/theme.types.ts +80 -80
  103. package/src/theme/typography.ts +117 -117
  104. package/src/utilTypes.d.ts +29 -29
  105. package/src/utils/env.ts +9 -9
  106. package/tsconfig.build.json +7 -7
  107. package/tsconfig.json +32 -32
  108. package/webpack.cosmos.js +54 -54
  109. package/dist/assets/output-15e10f9f.css +0 -44
  110. package/dist/cjs/assets/output-15e10f9f.css +0 -44
  111. package/dist/cjs/index.cjs +0 -17576
  112. package/dist/cjs/index.cjs.map +0 -1
  113. package/dist/index.d.ts +0 -211
  114. package/dist/index.js +0 -17529
  115. package/dist/index.js.map +0 -1
@@ -1,169 +1,169 @@
1
- /* eslint-disable arrow-body-style */
2
- /* eslint-disable @typescript-eslint/lines-between-class-members */
3
- /* eslint-disable prefer-destructuring */
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- /* eslint-disable consistent-return */
6
- /**
7
- * Updates cy.visit() to include an injected window.ethereum provider.
8
- */
9
- import { Eip1193Bridge } from '@ethersproject/experimental/lib/eip1193-bridge'
10
- import { JsonRpcProvider } from '@ethersproject/providers'
11
- import { ethers, Wallet } from 'ethers'
12
- import { deepCopy } from 'ethers/lib/utils'
13
-
14
- export enum ChainEnum {
15
- Goerli = 5,
16
- Mumbai = 80001,
17
- }
18
-
19
- class MetamaskBridge extends Eip1193Bridge {
20
- private walletAddress: string
21
- private chainId: number
22
-
23
- constructor(
24
- signer: ethers.Signer,
25
- provider: ethers.providers.Provider,
26
- walletAddress: string,
27
- chainId = 5,
28
- ) {
29
- super(signer, provider)
30
- this.walletAddress = walletAddress
31
- this.chainId = chainId
32
- }
33
-
34
- async sendAsync(...args: any[]) {
35
- console.debug('sendAsync called', ...args)
36
- return this.send(...args)
37
- }
38
- async send(...args: any[]) {
39
- console.debug('send called', ...args)
40
- const isCallbackForm =
41
- typeof args[0] === 'object' && typeof args[1] === 'function'
42
- let callback
43
- let method
44
- let params
45
- if (isCallbackForm) {
46
- callback = args[1]
47
- method = args[0].method
48
- params = args[0].params
49
- } else {
50
- method = args[0]
51
- params = args[1]
52
- }
53
- if (method === 'eth_requestAccounts' || method === 'eth_accounts') {
54
- if (isCallbackForm) {
55
- callback({ result: [this.walletAddress] })
56
- } else {
57
- return Promise.resolve([this.walletAddress])
58
- }
59
- }
60
- if (method === 'eth_chainId') {
61
- const chainIdHex = ethers.utils.hexlify(this.chainId)
62
- if (isCallbackForm) {
63
- callback(null, { result: chainIdHex })
64
- } else {
65
- return Promise.resolve(chainIdHex)
66
- }
67
- }
68
- // Eip1193Bridge only supports eth_sign
69
- // address is the first param for eth_sign
70
- if (method === 'personal_sign') {
71
- method = 'eth_sign'
72
- const [data, address] = deepCopy(params)
73
- params[0] = address
74
- params[1] = data
75
- }
76
- try {
77
- // Please refer to: https://github.com/ethers-io/ethers.js/issues/1683
78
- // If from is present on eth_call it errors, removing it makes the library set
79
- // from as the connected wallet which works fine
80
- if (params && params.length && method === 'eth_call') {
81
- if (params[0].from) {
82
- delete params[0].from
83
- }
84
- if (params[0].gas) {
85
- delete params[0].gas
86
- }
87
- }
88
-
89
- let result
90
- // For sending a transaction if we call send it will error
91
- // as it wants gasLimit in sendTransaction but hexlify sets the property gas
92
- // to gasLimit which makes send transaction error.
93
- // This have taken the code from the super method for sendTransaction and altered
94
- // it slightly to make it work with the gas limit issues.
95
- if (
96
- params &&
97
- params.length &&
98
- params[0].from &&
99
- method === 'eth_sendTransaction'
100
- ) {
101
- // Hexlify will not take gas, must be gasLimit, set this property to be gasLimit
102
- params[0].gasLimit = params[0].gas
103
- delete params[0].gas
104
- // If from is present on eth_sendTransaction it errors, removing it makes the library set
105
- // from as the connected wallet which works fine
106
- delete params[0].from
107
- const req = ethers.providers.JsonRpcProvider.hexlifyTransaction(
108
- params[0],
109
- )
110
- // Hexlify sets the gasLimit property to be gas again and send transaction requires gasLimit
111
- req.gasLimit = req.gas
112
- delete req.gas
113
- // Send the transaction
114
- const tx = await this.signer.sendTransaction(req)
115
- result = tx.hash
116
- } else {
117
- // All other transactions the base class works for
118
- result = await super.send(method, params)
119
- }
120
- console.debug('result received', method, params, result)
121
- if (isCallbackForm) {
122
- callback(null, { result })
123
- } else {
124
- return result
125
- }
126
- } catch (error) {
127
- console.log(error)
128
- if (isCallbackForm) {
129
- callback(error, null)
130
- } else {
131
- throw error
132
- }
133
- }
134
- }
135
- }
136
-
137
- export const getProvider = (chainId = ChainEnum.Goerli) => {
138
- const rpcUrlMap: { [x: number]: { name: string; url: string } } = {
139
- [ChainEnum.Goerli]: {
140
- name: 'Goerli',
141
- url: `https://goerli.infura.io/v3/${process.env.REACT_APP_INFURA_API_KEY}`,
142
- },
143
- [ChainEnum.Mumbai]: {
144
- name: 'Mumbai',
145
- url: `https://polygon-mumbai.g.alchemy.com/v2/${process.env.REACT_APP_ALCHEMY_API_KEY}`,
146
- },
147
- }
148
- return new JsonRpcProvider(rpcUrlMap[chainId].url, {
149
- name: rpcUrlMap[chainId].name,
150
- chainId,
151
- })
152
- }
153
-
154
- export const getInjectedMetamask = (
155
- testPrivateKey: string,
156
- chainId = ChainEnum.Goerli,
157
- ) => {
158
- const TEST_ADDRESS_NEVER_USE = new Wallet(testPrivateKey).address
159
- const provider = getProvider(chainId)
160
- const signer = new Wallet(testPrivateKey, provider)
161
- return new MetamaskBridge(signer, provider, TEST_ADDRESS_NEVER_USE, chainId)
162
- }
163
-
164
- export const getSigner = (
165
- testPrivateKey: string,
166
- chainId = ChainEnum.Goerli,
167
- ) => {
168
- return new Wallet(testPrivateKey, getProvider(chainId))
169
- }
1
+ /* eslint-disable arrow-body-style */
2
+ /* eslint-disable @typescript-eslint/lines-between-class-members */
3
+ /* eslint-disable prefer-destructuring */
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ /* eslint-disable consistent-return */
6
+ /**
7
+ * Updates cy.visit() to include an injected window.ethereum provider.
8
+ */
9
+ import { Eip1193Bridge } from '@ethersproject/experimental/lib/eip1193-bridge'
10
+ import { JsonRpcProvider } from '@ethersproject/providers'
11
+ import { ethers, Wallet } from 'ethers'
12
+ import { deepCopy } from 'ethers/lib/utils'
13
+
14
+ export enum ChainEnum {
15
+ Goerli = 5,
16
+ Mumbai = 80001,
17
+ }
18
+
19
+ class MetamaskBridge extends Eip1193Bridge {
20
+ private walletAddress: string
21
+ private chainId: number
22
+
23
+ constructor(
24
+ signer: ethers.Signer,
25
+ provider: ethers.providers.Provider,
26
+ walletAddress: string,
27
+ chainId = 5,
28
+ ) {
29
+ super(signer, provider)
30
+ this.walletAddress = walletAddress
31
+ this.chainId = chainId
32
+ }
33
+
34
+ async sendAsync(...args: any[]) {
35
+ console.debug('sendAsync called', ...args)
36
+ return this.send(...args)
37
+ }
38
+ async send(...args: any[]) {
39
+ console.debug('send called', ...args)
40
+ const isCallbackForm =
41
+ typeof args[0] === 'object' && typeof args[1] === 'function'
42
+ let callback
43
+ let method
44
+ let params
45
+ if (isCallbackForm) {
46
+ callback = args[1]
47
+ method = args[0].method
48
+ params = args[0].params
49
+ } else {
50
+ method = args[0]
51
+ params = args[1]
52
+ }
53
+ if (method === 'eth_requestAccounts' || method === 'eth_accounts') {
54
+ if (isCallbackForm) {
55
+ callback({ result: [this.walletAddress] })
56
+ } else {
57
+ return Promise.resolve([this.walletAddress])
58
+ }
59
+ }
60
+ if (method === 'eth_chainId') {
61
+ const chainIdHex = ethers.utils.hexlify(this.chainId)
62
+ if (isCallbackForm) {
63
+ callback(null, { result: chainIdHex })
64
+ } else {
65
+ return Promise.resolve(chainIdHex)
66
+ }
67
+ }
68
+ // Eip1193Bridge only supports eth_sign
69
+ // address is the first param for eth_sign
70
+ if (method === 'personal_sign') {
71
+ method = 'eth_sign'
72
+ const [data, address] = deepCopy(params)
73
+ params[0] = address
74
+ params[1] = data
75
+ }
76
+ try {
77
+ // Please refer to: https://github.com/ethers-io/ethers.js/issues/1683
78
+ // If from is present on eth_call it errors, removing it makes the library set
79
+ // from as the connected wallet which works fine
80
+ if (params && params.length && method === 'eth_call') {
81
+ if (params[0].from) {
82
+ delete params[0].from
83
+ }
84
+ if (params[0].gas) {
85
+ delete params[0].gas
86
+ }
87
+ }
88
+
89
+ let result
90
+ // For sending a transaction if we call send it will error
91
+ // as it wants gasLimit in sendTransaction but hexlify sets the property gas
92
+ // to gasLimit which makes send transaction error.
93
+ // This have taken the code from the super method for sendTransaction and altered
94
+ // it slightly to make it work with the gas limit issues.
95
+ if (
96
+ params &&
97
+ params.length &&
98
+ params[0].from &&
99
+ method === 'eth_sendTransaction'
100
+ ) {
101
+ // Hexlify will not take gas, must be gasLimit, set this property to be gasLimit
102
+ params[0].gasLimit = params[0].gas
103
+ delete params[0].gas
104
+ // If from is present on eth_sendTransaction it errors, removing it makes the library set
105
+ // from as the connected wallet which works fine
106
+ delete params[0].from
107
+ const req = ethers.providers.JsonRpcProvider.hexlifyTransaction(
108
+ params[0],
109
+ )
110
+ // Hexlify sets the gasLimit property to be gas again and send transaction requires gasLimit
111
+ req.gasLimit = req.gas
112
+ delete req.gas
113
+ // Send the transaction
114
+ const tx = await this.signer.sendTransaction(req)
115
+ result = tx.hash
116
+ } else {
117
+ // All other transactions the base class works for
118
+ result = await super.send(method, params)
119
+ }
120
+ console.debug('result received', method, params, result)
121
+ if (isCallbackForm) {
122
+ callback(null, { result })
123
+ } else {
124
+ return result
125
+ }
126
+ } catch (error) {
127
+ console.log(error)
128
+ if (isCallbackForm) {
129
+ callback(error, null)
130
+ } else {
131
+ throw error
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ export const getProvider = (chainId = ChainEnum.Goerli) => {
138
+ const rpcUrlMap: { [x: number]: { name: string; url: string } } = {
139
+ [ChainEnum.Goerli]: {
140
+ name: 'Goerli',
141
+ url: `https://goerli.infura.io/v3/${process.env.REACT_APP_INFURA_API_KEY}`,
142
+ },
143
+ [ChainEnum.Mumbai]: {
144
+ name: 'Mumbai',
145
+ url: `https://polygon-mumbai.g.alchemy.com/v2/${process.env.REACT_APP_ALCHEMY_API_KEY}`,
146
+ },
147
+ }
148
+ return new JsonRpcProvider(rpcUrlMap[chainId].url, {
149
+ name: rpcUrlMap[chainId].name,
150
+ chainId,
151
+ })
152
+ }
153
+
154
+ export const getInjectedMetamask = (
155
+ testPrivateKey: string,
156
+ chainId = ChainEnum.Goerli,
157
+ ) => {
158
+ const TEST_ADDRESS_NEVER_USE = new Wallet(testPrivateKey).address
159
+ const provider = getProvider(chainId)
160
+ const signer = new Wallet(testPrivateKey, provider)
161
+ return new MetamaskBridge(signer, provider, TEST_ADDRESS_NEVER_USE, chainId)
162
+ }
163
+
164
+ export const getSigner = (
165
+ testPrivateKey: string,
166
+ chainId = ChainEnum.Goerli,
167
+ ) => {
168
+ return new Wallet(testPrivateKey, getProvider(chainId))
169
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -9,7 +9,7 @@ import {
9
9
  } from '@huma-finance/shared'
10
10
  import { useCallback } from 'react'
11
11
 
12
- import { setApproveInfo, setError, setStep } from '../store/widgets.reducers'
12
+ import { setApproval, setError, setStep } from '../store/widgets.reducers'
13
13
  import { WIDGET_STEP } from '../store/widgets.store'
14
14
  import { useAppDispatch } from './useRedux'
15
15
  import { envUtil } from '../utils/env'
@@ -30,15 +30,17 @@ const useEA = () => {
30
30
  chainId!,
31
31
  envUtil.checkIsDev(),
32
32
  )
33
- result.creditLimit = downScale<number>(
34
- result.creditLimit,
35
- result.tokenDecimal,
33
+ result.terms.creditLimit = downScale<number>(
34
+ result.terms.creditLimit,
35
+ result.token.decimal,
36
36
  )
37
- result.receivableAmount = downScale<number>(
38
- result.receivableAmount,
39
- result.tokenDecimal,
40
- )
41
- dispatch(setApproveInfo({ ...result, nextStep }))
37
+ if (result.receivable) {
38
+ result.receivable.amount = downScale<number>(
39
+ result.receivable.amount,
40
+ result.token.decimal,
41
+ )
42
+ }
43
+ dispatch(setApproval({ ...result, nextStep }))
42
44
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
45
  } catch (e: any) {
44
46
  if (e instanceof EARejectionError) {
@@ -1,6 +1,6 @@
1
- import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
2
- import type { RootState, AppDispatch } from '../store'
3
-
4
- // Use throughout your app instead of plain `useDispatch` and `useSelector`
5
- export const useAppDispatch = () => useDispatch<AppDispatch>()
6
- export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
1
+ import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
2
+ import type { RootState, AppDispatch } from '../store'
3
+
4
+ // Use throughout your app instead of plain `useDispatch` and `useSelector`
5
+ export const useAppDispatch = () => useDispatch<AppDispatch>()
6
+ export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
package/src/index.css CHANGED
@@ -1,61 +1,61 @@
1
- @font-face {
2
- font-family: 'Recoleta-Medium';
3
- src: local('Recoleta-Medium'),
4
- url(./fonts/Recoleta/Recoleta-Medium.otf) format('truetype');
5
- font-weight: 500;
6
- }
7
-
8
- @font-face {
9
- font-family: 'Roboto-Medium';
10
- src: local('Roboto-Medium'),
11
- url(./fonts/Roboto/Roboto-Medium.ttf) format('truetype');
12
- font-weight: 500;
13
- }
14
-
15
- @font-face {
16
- font-family: 'Roboto-Regular';
17
- src: local('Roboto-Regular'),
18
- url(./fonts/Roboto/Roboto-Regular.ttf) format('truetype');
19
- font-weight: 400;
20
- }
21
-
22
- @font-face {
23
- font-family: 'Inter-Bold';
24
- src: local('Inter-Bold'), url(./fonts/Inter/Inter-Bold.ttf) format('truetype');
25
- font-weight: 700;
26
- }
27
-
28
- @font-face {
29
- font-family: 'Inter-Medium';
30
- src: local('Inter-Medium'),
31
- url(./fonts/Inter/Inter-Medium.ttf) format('truetype');
32
- font-weight: 500;
33
- }
34
-
35
- @font-face {
36
- font-family: 'Inter-Regular';
37
- src: local('Inter-Regular'),
38
- url(./fonts/Inter/Inter-Regular.ttf) format('truetype');
39
- font-weight: 400;
40
- }
41
-
42
- @font-face {
43
- font-family: 'Uni-Neue-Black';
44
- src: local('Uni-Neue-Black'),
45
- url(./fonts/UniNeue/UniNeue-Black.ttf) format('truetype');
46
- font-weight: 800;
47
- }
48
-
49
- @font-face {
50
- font-family: 'Uni-Neue-Bold';
51
- src: local('Uni-Neue-Bold'),
52
- url(./fonts/UniNeue/UniNeue-Bold.ttf) format('truetype');
53
- font-weight: 700;
54
- }
55
-
56
- @font-face {
57
- font-family: 'Uni-Neue-Regular';
58
- src: local('Uni-Neue-Regular'),
59
- url(./fonts/UniNeue/UniNeue-Regular.ttf) format('truetype');
60
- font-weight: 400;
61
- }
1
+ @font-face {
2
+ font-family: 'Recoleta-Medium';
3
+ src: local('Recoleta-Medium'),
4
+ url(./fonts/Recoleta/Recoleta-Medium.otf) format('truetype');
5
+ font-weight: 500;
6
+ }
7
+
8
+ @font-face {
9
+ font-family: 'Roboto-Medium';
10
+ src: local('Roboto-Medium'),
11
+ url(./fonts/Roboto/Roboto-Medium.ttf) format('truetype');
12
+ font-weight: 500;
13
+ }
14
+
15
+ @font-face {
16
+ font-family: 'Roboto-Regular';
17
+ src: local('Roboto-Regular'),
18
+ url(./fonts/Roboto/Roboto-Regular.ttf) format('truetype');
19
+ font-weight: 400;
20
+ }
21
+
22
+ @font-face {
23
+ font-family: 'Inter-Bold';
24
+ src: local('Inter-Bold'), url(./fonts/Inter/Inter-Bold.ttf) format('truetype');
25
+ font-weight: 700;
26
+ }
27
+
28
+ @font-face {
29
+ font-family: 'Inter-Medium';
30
+ src: local('Inter-Medium'),
31
+ url(./fonts/Inter/Inter-Medium.ttf) format('truetype');
32
+ font-weight: 500;
33
+ }
34
+
35
+ @font-face {
36
+ font-family: 'Inter-Regular';
37
+ src: local('Inter-Regular'),
38
+ url(./fonts/Inter/Inter-Regular.ttf) format('truetype');
39
+ font-weight: 400;
40
+ }
41
+
42
+ @font-face {
43
+ font-family: 'Uni-Neue-Black';
44
+ src: local('Uni-Neue-Black'),
45
+ url(./fonts/UniNeue/UniNeue-Black.ttf) format('truetype');
46
+ font-weight: 800;
47
+ }
48
+
49
+ @font-face {
50
+ font-family: 'Uni-Neue-Bold';
51
+ src: local('Uni-Neue-Bold'),
52
+ url(./fonts/UniNeue/UniNeue-Bold.ttf) format('truetype');
53
+ font-weight: 700;
54
+ }
55
+
56
+ @font-face {
57
+ font-family: 'Uni-Neue-Regular';
58
+ src: local('Uni-Neue-Regular'),
59
+ url(./fonts/UniNeue/UniNeue-Regular.ttf) format('truetype');
60
+ font-weight: 400;
61
+ }
package/src/index.tsx CHANGED
@@ -3,10 +3,6 @@ import './index.css'
3
3
  import { JsonRpcProvider } from '@ethersproject/providers'
4
4
  import { ThemeProvider } from '@mui/material'
5
5
  import { Provider as Eip1193Provider } from '@web3-react/types'
6
- import {
7
- Provider as Web3Provider,
8
- ProviderProps as Web3Props,
9
- } from '@huma-finance/shared'
10
6
  import { Provider as AtomProvider } from 'jotai'
11
7
  import { Provider as ReduxProvider } from 'react-redux'
12
8
 
@@ -58,9 +54,7 @@ function Widget(props: WCProps<WidgetProps>) {
58
54
  return (
59
55
  <ThemeProvider theme={themeHuma}>
60
56
  <ReduxProvider store={store}>
61
- <Web3Provider {...(props as Web3Props)}>
62
- <AtomProvider>{children}</AtomProvider>
63
- </Web3Provider>
57
+ <AtomProvider>{children}</AtomProvider>
64
58
  </ReduxProvider>
65
59
  </ThemeProvider>
66
60
  )
@@ -1 +1 @@
1
- /// <reference types="react-scripts" />
1
+ /// <reference types="react-scripts" />
@@ -1,15 +1,15 @@
1
- import { ReportHandler } from 'web-vitals';
2
-
3
- const reportWebVitals = (onPerfEntry?: ReportHandler) => {
4
- if (onPerfEntry && onPerfEntry instanceof Function) {
5
- import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
6
- getCLS(onPerfEntry);
7
- getFID(onPerfEntry);
8
- getFCP(onPerfEntry);
9
- getLCP(onPerfEntry);
10
- getTTFB(onPerfEntry);
11
- });
12
- }
13
- };
14
-
15
- export default reportWebVitals;
1
+ import { ReportHandler } from 'web-vitals';
2
+
3
+ const reportWebVitals = (onPerfEntry?: ReportHandler) => {
4
+ if (onPerfEntry && onPerfEntry instanceof Function) {
5
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
6
+ getCLS(onPerfEntry);
7
+ getFID(onPerfEntry);
8
+ getFCP(onPerfEntry);
9
+ getLCP(onPerfEntry);
10
+ getTTFB(onPerfEntry);
11
+ });
12
+ }
13
+ };
14
+
15
+ export default reportWebVitals;
package/src/setupTests.ts CHANGED
@@ -1,6 +1,6 @@
1
- /* eslint-disable import/no-extraneous-dependencies */
2
- // jest-dom adds custom jest matchers for asserting on DOM nodes.
3
- // allows you to do things like:
4
- // expect(element).toHaveTextContent(/react/i)
5
- // learn more: https://github.com/testing-library/jest-dom
6
- import '@testing-library/jest-dom/extend-expect'
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ // jest-dom adds custom jest matchers for asserting on DOM nodes.
3
+ // allows you to do things like:
4
+ // expect(element).toHaveTextContent(/react/i)
5
+ // learn more: https://github.com/testing-library/jest-dom
6
+ import '@testing-library/jest-dom/extend-expect'
@@ -1,27 +1,27 @@
1
- import {
2
- Action,
3
- ActionCreator,
4
- AnyAction,
5
- configureStore,
6
- ThunkAction,
7
- } from '@reduxjs/toolkit'
8
-
9
- import widgetsReducers from './widgets.reducers'
10
-
11
- export const store = configureStore({
12
- reducer: {
13
- widget: widgetsReducers,
14
- },
15
- })
16
-
17
- export type AppDispatch = typeof store.dispatch
18
- export type RootState = ReturnType<typeof store.getState>
19
- export type AppThunk<ReturnType = void> = ThunkAction<
20
- ReturnType,
21
- RootState,
22
- unknown,
23
- Action<string>
24
- >
25
- export type AppActionThunk<ReturnType = void> = ActionCreator<
26
- ThunkAction<ReturnType, RootState, unknown, AnyAction>
27
- >
1
+ import {
2
+ Action,
3
+ ActionCreator,
4
+ AnyAction,
5
+ configureStore,
6
+ ThunkAction,
7
+ } from '@reduxjs/toolkit'
8
+
9
+ import widgetsReducers from './widgets.reducers'
10
+
11
+ export const store = configureStore({
12
+ reducer: {
13
+ widget: widgetsReducers,
14
+ },
15
+ })
16
+
17
+ export type AppDispatch = typeof store.dispatch
18
+ export type RootState = ReturnType<typeof store.getState>
19
+ export type AppThunk<ReturnType = void> = ThunkAction<
20
+ ReturnType,
21
+ RootState,
22
+ unknown,
23
+ Action<string>
24
+ >
25
+ export type AppActionThunk<ReturnType = void> = ActionCreator<
26
+ ThunkAction<ReturnType, RootState, unknown, AnyAction>
27
+ >