@huma-finance/widgets 0.0.6-alpha.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 (203) hide show
  1. package/.env.example +3 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.js +64 -0
  4. package/.prettierignore +4 -0
  5. package/.prettierrc.js +16 -0
  6. package/API.md +331 -0
  7. package/LICENSE +661 -0
  8. package/README.md +48 -0
  9. package/babel.config.js +15 -0
  10. package/config-overrides.js +9 -0
  11. package/cosmos.config.json +7 -0
  12. package/cypress/e2e/01-invoice-factoring-borrow.test.ts +62 -0
  13. package/cypress/support/e2e.ts +76 -0
  14. package/cypress/support/ethereum.ts +142 -0
  15. package/cypress/tsconfig.json +9 -0
  16. package/cypress/utils/index.ts +54 -0
  17. package/cypress.config.ts +20 -0
  18. package/dist/assets/output-15e10f9f.css +44 -0
  19. package/dist/cjs/assets/output-15e10f9f.css +44 -0
  20. package/dist/cjs/index.cjs +17576 -0
  21. package/dist/cjs/index.cjs.map +1 -0
  22. package/dist/index.d.ts +211 -0
  23. package/dist/index.js +17529 -0
  24. package/dist/index.js.map +1 -0
  25. package/jsdoc2md.json +20 -0
  26. package/package.json +193 -0
  27. package/public/favicon.ico +0 -0
  28. package/public/index.html +40 -0
  29. package/public/logo192.png +0 -0
  30. package/public/logo512.png +0 -0
  31. package/public/manifest.json +25 -0
  32. package/public/robots.txt +3 -0
  33. package/rollup.config.js +81 -0
  34. package/src/components/Activity.tsx +123 -0
  35. package/src/components/AllowListModal.tsx +113 -0
  36. package/src/components/ApolloWrapper.tsx +15 -0
  37. package/src/components/ApproveAllowanceModal.tsx +118 -0
  38. package/src/components/BottomButton.tsx +31 -0
  39. package/src/components/ChooseAmountModal.tsx +315 -0
  40. package/src/components/CreditLine/borrow/1-Evaluation.tsx +159 -0
  41. package/src/components/CreditLine/borrow/2-AllowList.tsx +34 -0
  42. package/src/components/CreditLine/borrow/3-ChooseAmount.tsx +74 -0
  43. package/src/components/CreditLine/borrow/4-ApproveAllowance.tsx +29 -0
  44. package/src/components/CreditLine/borrow/5-Transfer.tsx +30 -0
  45. package/src/components/CreditLine/borrow/6-Success.tsx +30 -0
  46. package/src/components/CreditLine/borrow/index.tsx +119 -0
  47. package/src/components/CreditLine/payment/1-ChooseAmount.tsx +67 -0
  48. package/src/components/CreditLine/payment/2-ApproveAllowance.tsx +23 -0
  49. package/src/components/CreditLine/payment/3-Transfer.tsx +34 -0
  50. package/src/components/CreditLine/payment/4-Success.tsx +39 -0
  51. package/src/components/CreditLine/payment/index.tsx +94 -0
  52. package/src/components/ErrorModal.tsx +132 -0
  53. package/src/components/Factoring/FactoredList.tsx +143 -0
  54. package/src/components/Factoring/UpcomingList.tsx +90 -0
  55. package/src/components/Factoring/index.ts +2 -0
  56. package/src/components/HumaLoading.tsx +68 -0
  57. package/src/components/HumaTable.tsx +158 -0
  58. package/src/components/InvoiceFactoring/borrow/1-Evaluation.tsx +46 -0
  59. package/src/components/InvoiceFactoring/borrow/2-AllowList.tsx +34 -0
  60. package/src/components/InvoiceFactoring/borrow/3-ChooseAmount.tsx +92 -0
  61. package/src/components/InvoiceFactoring/borrow/4-ConfirmTransfer.tsx +104 -0
  62. package/src/components/InvoiceFactoring/borrow/5-ApproveNFT.tsx +55 -0
  63. package/src/components/InvoiceFactoring/borrow/6-Transfer.tsx +34 -0
  64. package/src/components/InvoiceFactoring/borrow/7-Success.tsx +20 -0
  65. package/src/components/InvoiceFactoring/borrow/index.tsx +96 -0
  66. package/src/components/InvoiceFactoring/payment/1-ChooseAmount.tsx +67 -0
  67. package/src/components/InvoiceFactoring/payment/2-ApproveAllowance.tsx +23 -0
  68. package/src/components/InvoiceFactoring/payment/3-Transfer.tsx +34 -0
  69. package/src/components/InvoiceFactoring/payment/4-Success.tsx +23 -0
  70. package/src/components/InvoiceFactoring/payment/index.tsx +86 -0
  71. package/src/components/Lend/supply/1-Evaluation.tsx +86 -0
  72. package/src/components/Lend/supply/2-ChooseAmount.tsx +70 -0
  73. package/src/components/Lend/supply/3-ApproveAllowance.tsx +25 -0
  74. package/src/components/Lend/supply/4-ConfirmTransfer.tsx +104 -0
  75. package/src/components/Lend/supply/6-Transfer.tsx +32 -0
  76. package/src/components/Lend/supply/7-Success.tsx +49 -0
  77. package/src/components/Lend/supply/index.tsx +144 -0
  78. package/src/components/Lend/withdraw/1-CheckWithdrawble.tsx +73 -0
  79. package/src/components/Lend/withdraw/2-ChooseAmount.tsx +50 -0
  80. package/src/components/Lend/withdraw/3-Transfer.tsx +32 -0
  81. package/src/components/Lend/withdraw/4-Success.tsx +49 -0
  82. package/src/components/Lend/withdraw/index.tsx +101 -0
  83. package/src/components/LoadingModal.tsx +49 -0
  84. package/src/components/StreamFactoring/borrow/1-Evaluation.tsx +57 -0
  85. package/src/components/StreamFactoring/borrow/2-ChooseAmount.tsx +124 -0
  86. package/src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx +104 -0
  87. package/src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx +65 -0
  88. package/src/components/StreamFactoring/borrow/5-Permit.tsx +144 -0
  89. package/src/components/StreamFactoring/borrow/6-Transfer.tsx +37 -0
  90. package/src/components/StreamFactoring/borrow/7-Success.tsx +20 -0
  91. package/src/components/StreamFactoring/borrow/index.tsx +95 -0
  92. package/src/components/StreamFactoring/payment/ChooseAmount.tsx +54 -0
  93. package/src/components/StreamFactoring/payment/Success.tsx +23 -0
  94. package/src/components/StreamFactoring/payment/Transfer.tsx +34 -0
  95. package/src/components/StreamFactoring/payment/index.tsx +66 -0
  96. package/src/components/SuperfluidFactoring/SuperfluidFactoredList.tsx +61 -0
  97. package/src/components/SuperfluidFactoring/SuperfluidUpcomingList.tsx +185 -0
  98. package/src/components/SuperfluidFactoring/index.tsx +85 -0
  99. package/src/components/TxDoneModal.tsx +83 -0
  100. package/src/components/TxSendModal.tsx +59 -0
  101. package/src/components/ViewOnExplorer.tsx +26 -0
  102. package/src/components/WidgetWrapper.tsx +74 -0
  103. package/src/components/WrapperModal.tsx +54 -0
  104. package/src/components/buttons/TableActionButton.tsx +36 -0
  105. package/src/components/buttons/index.ts +1 -0
  106. package/src/components/humaModal/HumaModal.tsx +68 -0
  107. package/src/components/humaModal/HumaModalHeader.tsx +70 -0
  108. package/src/components/humaModal/index.tsx +2 -0
  109. package/src/components/icons/approve-lender.svg +30 -0
  110. package/src/components/icons/auto-payback.svg +40 -0
  111. package/src/components/icons/check-circle.svg +3 -0
  112. package/src/components/icons/check-green.svg +3 -0
  113. package/src/components/icons/check.svg +10 -0
  114. package/src/components/icons/donut.svg +904 -0
  115. package/src/components/icons/ellipse.svg +3 -0
  116. package/src/components/icons/ethereum.svg +1 -0
  117. package/src/components/icons/huma-full.svg +22 -0
  118. package/src/components/icons/huma.svg +15 -0
  119. package/src/components/icons/index.tsx +93 -0
  120. package/src/components/icons/loader.svg +229 -0
  121. package/src/components/icons/metamask.svg +31 -0
  122. package/src/components/icons/polygon.svg +16 -0
  123. package/src/components/icons/receipt.svg +3 -0
  124. package/src/components/icons/separator.svg +3 -0
  125. package/src/components/icons/sorry.svg +31 -0
  126. package/src/components/icons/spinner.gif +0 -0
  127. package/src/components/icons/usdc.svg +5 -0
  128. package/src/components/icons/wallet-connect.svg +12 -0
  129. package/src/cosmos/CreditLineBorrow.fixture.tsx +85 -0
  130. package/src/cosmos/CreditLinePayment.fixture.tsx +49 -0
  131. package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +111 -0
  132. package/src/cosmos/InvoiceFactoringPayment.fixture.tsx +67 -0
  133. package/src/cosmos/LendSupply.fixture.tsx +75 -0
  134. package/src/cosmos/LendWithdraw.fixture.tsx +43 -0
  135. package/src/cosmos/SDKTesting.fixture.tsx +507 -0
  136. package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +12 -0
  137. package/src/cosmos/WalletWrapper.tsx +52 -0
  138. package/src/cosmos/abis/InvoiceNFT.json +644 -0
  139. package/src/cosmos/abis/ReceivableFactoringPool.json +1529 -0
  140. package/src/cosmos/utils/index.ts +169 -0
  141. package/src/fonts/Inter/Inter-Black.ttf +0 -0
  142. package/src/fonts/Inter/Inter-Bold.ttf +0 -0
  143. package/src/fonts/Inter/Inter-ExtraBold.ttf +0 -0
  144. package/src/fonts/Inter/Inter-ExtraLight.ttf +0 -0
  145. package/src/fonts/Inter/Inter-Light.ttf +0 -0
  146. package/src/fonts/Inter/Inter-Medium.ttf +0 -0
  147. package/src/fonts/Inter/Inter-Regular.ttf +0 -0
  148. package/src/fonts/Inter/Inter-SemiBold.ttf +0 -0
  149. package/src/fonts/Inter/Inter-Thin.ttf +0 -0
  150. package/src/fonts/Recoleta/Recoleta-Black.otf +0 -0
  151. package/src/fonts/Recoleta/Recoleta-Bold.otf +0 -0
  152. package/src/fonts/Recoleta/Recoleta-Light.otf +0 -0
  153. package/src/fonts/Recoleta/Recoleta-Medium.otf +0 -0
  154. package/src/fonts/Recoleta/Recoleta-Regular.otf +0 -0
  155. package/src/fonts/Recoleta/Recoleta-RegularDEMO.otf +0 -0
  156. package/src/fonts/Recoleta/Recoleta-SemiBold.otf +0 -0
  157. package/src/fonts/Recoleta/Recoleta-Thin.otf +0 -0
  158. package/src/fonts/Roboto/LICENSE.txt +202 -0
  159. package/src/fonts/Roboto/Roboto-Black.ttf +0 -0
  160. package/src/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  161. package/src/fonts/Roboto/Roboto-Bold.ttf +0 -0
  162. package/src/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  163. package/src/fonts/Roboto/Roboto-Italic.ttf +0 -0
  164. package/src/fonts/Roboto/Roboto-Light.ttf +0 -0
  165. package/src/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  166. package/src/fonts/Roboto/Roboto-Medium.ttf +0 -0
  167. package/src/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  168. package/src/fonts/Roboto/Roboto-Regular.ttf +0 -0
  169. package/src/fonts/Roboto/Roboto-Thin.ttf +0 -0
  170. package/src/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  171. package/src/fonts/UniNeue/UniNeue-Black.ttf +0 -0
  172. package/src/fonts/UniNeue/UniNeue-Bold.ttf +0 -0
  173. package/src/fonts/UniNeue/UniNeue-Book.ttf +0 -0
  174. package/src/fonts/UniNeue/UniNeue-Heavy.ttf +0 -0
  175. package/src/fonts/UniNeue/UniNeue-Light.ttf +0 -0
  176. package/src/fonts/UniNeue/UniNeue-Regular.ttf +0 -0
  177. package/src/fonts/UniNeue/UniNeue-Thin.ttf +0 -0
  178. package/src/hooks/useEA.ts +70 -0
  179. package/src/hooks/useRedux.ts +6 -0
  180. package/src/index.css +61 -0
  181. package/src/index.tsx +219 -0
  182. package/src/react-app-env.d.ts +1 -0
  183. package/src/reportWebVitals.ts +15 -0
  184. package/src/setupTests.ts +6 -0
  185. package/src/store/index.ts +27 -0
  186. package/src/store/widgets.reducers.ts +120 -0
  187. package/src/store/widgets.selectors.ts +3 -0
  188. package/src/store/widgets.store.ts +55 -0
  189. package/src/theme/breakpoints.ts +10 -0
  190. package/src/theme/components.ts +70 -0
  191. package/src/theme/coreThemeConstants.ts +29 -0
  192. package/src/theme/cssMixins.ts +92 -0
  193. package/src/theme/hooks/useGetSizes.ts +34 -0
  194. package/src/theme/index.ts +24 -0
  195. package/src/theme/palette.ts +150 -0
  196. package/src/theme/shape.ts +7 -0
  197. package/src/theme/theme.types.ts +80 -0
  198. package/src/theme/typography.ts +117 -0
  199. package/src/utilTypes.d.ts +29 -0
  200. package/src/utils/env.ts +9 -0
  201. package/tsconfig.build.json +7 -0
  202. package/tsconfig.json +32 -0
  203. package/webpack.cosmos.js +54 -0
@@ -0,0 +1,85 @@
1
+ /* eslint-disable react/jsx-boolean-value */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Box, Button } from '@mui/material'
4
+ import { ethers } from 'ethers'
5
+ import { useEffect, useState } from 'react'
6
+
7
+ import { useAccount } from 'wagmi'
8
+ import { CreditLineBorrowWidget } from '..'
9
+ import { getInjectedMetamask } from './utils'
10
+ import { WalletWrapper } from './WalletWrapper'
11
+
12
+ function Fixture() {
13
+ const [showModal, setShowModal] = useState(false)
14
+ const [showModalRandom, setShowModalRandom] = useState(false)
15
+ const [testPrivateKeyRandom, setTestPrivateKeyRandom] = useState<string>()
16
+ const [testAccountRandom, setTestAccountRandom] = useState<string>()
17
+ const { isConnected } = useAccount()
18
+ const PoolAddress = '0xA22D20FB0c9980fb96A9B0B5679C061aeAf5dDE4'
19
+
20
+ useEffect(() => {
21
+ const wallet = ethers.Wallet.createRandom()
22
+ setTestPrivateKeyRandom(wallet.privateKey)
23
+ setTestAccountRandom(wallet.address)
24
+ }, [])
25
+
26
+ const handleBorrow = () => {
27
+ setShowModal(true)
28
+ }
29
+
30
+ const handleBorrowRandom = () => {
31
+ // @ts-ignore
32
+ window.ethereum = getInjectedMetamask(testPrivateKeyRandom)
33
+ setShowModalRandom(true)
34
+ }
35
+
36
+ const handleApprove = () => {}
37
+
38
+ const handleClose = () => {
39
+ setShowModal(false)
40
+ setShowModalRandom(false)
41
+ window.ethereum = undefined
42
+ }
43
+
44
+ return (
45
+ <>
46
+ <Box>Pool: {PoolAddress}</Box>
47
+ <Box>Pool Name: HumaCreditLine</Box>
48
+ <Button
49
+ variant='contained'
50
+ onClick={handleBorrow}
51
+ disabled={!isConnected}
52
+ >
53
+ Borrow Without EA Check
54
+ </Button>
55
+ {showModal && (
56
+ <CreditLineBorrowWidget
57
+ poolName='HumaCreditLine'
58
+ poolType='CreditLine'
59
+ handleClose={handleClose}
60
+ handleApprove={handleApprove}
61
+ />
62
+ )}
63
+ <Box marginTop={5}>Account: {testAccountRandom}</Box>
64
+ <Box>Pool: {PoolAddress}</Box>
65
+ <Box>Pool Name: HumaCreditLine</Box>
66
+ <Button variant='contained' onClick={handleBorrowRandom}>
67
+ Borrow With EA Check
68
+ </Button>
69
+ {showModalRandom && (
70
+ <CreditLineBorrowWidget
71
+ poolName='HumaCreditLine'
72
+ poolType='CreditLine'
73
+ handleClose={handleClose}
74
+ handleApprove={handleApprove}
75
+ />
76
+ )}
77
+ </>
78
+ )
79
+ }
80
+
81
+ export default (
82
+ <WalletWrapper>
83
+ <Fixture />
84
+ </WalletWrapper>
85
+ )
@@ -0,0 +1,49 @@
1
+ /* eslint-disable react/jsx-boolean-value */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Box, Button } from '@mui/material'
4
+ import { useState } from 'react'
5
+
6
+ import { useAccount } from 'wagmi'
7
+ import { CreditLinePaymentWidget } from '..'
8
+ import { WalletWrapper } from './WalletWrapper'
9
+
10
+ function Fixture() {
11
+ const [showModal, setShowModal] = useState(false)
12
+ const { isConnected } = useAccount()
13
+ const PoolAddress = '0xA22D20FB0c9980fb96A9B0B5679C061aeAf5dDE4'
14
+
15
+ const handlePayment = () => {
16
+ setShowModal(true)
17
+ }
18
+
19
+ const handleClose = () => {
20
+ setShowModal(false)
21
+ }
22
+
23
+ return (
24
+ <>
25
+ <Box>Pool: {PoolAddress}</Box>
26
+ <Box>Pool Name: HumaCreditLine</Box>
27
+ <Button
28
+ variant='contained'
29
+ onClick={handlePayment}
30
+ disabled={!isConnected}
31
+ >
32
+ Make Payment
33
+ </Button>
34
+ {showModal && (
35
+ <CreditLinePaymentWidget
36
+ poolName='HumaCreditLine'
37
+ poolType='CreditLine'
38
+ handleClose={handleClose}
39
+ />
40
+ )}
41
+ </>
42
+ )
43
+ }
44
+
45
+ export default (
46
+ <WalletWrapper>
47
+ <Fixture />
48
+ </WalletWrapper>
49
+ )
@@ -0,0 +1,111 @@
1
+ /* eslint-disable react/jsx-boolean-value */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Box, Button } from '@mui/material'
4
+ import { BigNumber } from 'ethers'
5
+ import { useState } from 'react'
6
+ import { useAccount, useContractRead } from 'wagmi'
7
+
8
+ import { InvoiceFactoringBorrowWidget } from '..'
9
+ import InvoiceNFTAbi from './abis/InvoiceNFT.json'
10
+ import RFPoolAbi from './abis/ReceivableFactoringPool.json'
11
+ import { WalletWrapper } from './WalletWrapper'
12
+
13
+ function Fixture() {
14
+ const [showModal, setShowModal] = useState(false)
15
+ const [tokenId, setTokenId] = useState<string>()
16
+ const [paymentMade, setPaymentMade] = useState<'loading' | 'true' | 'false'>(
17
+ 'loading',
18
+ )
19
+ const NFTAddress = '0xC2AC172a293d68f548ea343414584aA37eb29Dcd'
20
+ const PoolAddress = '0x11672c0bBFF498c72BC2200f42461c0414855042'
21
+ const { address } = useAccount()
22
+
23
+ useContractRead({
24
+ address: NFTAddress,
25
+ abi: InvoiceNFTAbi,
26
+ functionName: 'getTokenIds',
27
+ args: [address],
28
+ onSuccess(tokenIds: BigNumber[]) {
29
+ if (tokenIds.length) {
30
+ setTokenId(tokenIds[tokenIds.length - 1].toString())
31
+ } else {
32
+ setTokenId('empty')
33
+ }
34
+ },
35
+ })
36
+
37
+ useContractRead({
38
+ address: PoolAddress,
39
+ abi: RFPoolAbi,
40
+ functionName: 'creditRecordMapping',
41
+ args: [address],
42
+ onSuccess(creditRecord: any) {
43
+ if (creditRecord.state > 2) {
44
+ setPaymentMade('false')
45
+ } else {
46
+ setPaymentMade('true')
47
+ }
48
+ },
49
+ })
50
+
51
+ const handleClose = () => {
52
+ setShowModal(false)
53
+ }
54
+
55
+ if (!tokenId || paymentMade === 'loading') {
56
+ return <div>Loading token id and making payment...</div>
57
+ }
58
+
59
+ if (tokenId === 'empty') {
60
+ return (
61
+ <>
62
+ <div>Please create invoice first.</div>
63
+ <Button
64
+ type='link'
65
+ variant='contained'
66
+ href={
67
+ process.env.REACT_APP_CREATE_INVOICE_URL ??
68
+ 'https://huma-request-apps-create.netlify.app/'
69
+ }
70
+ target='_blank'
71
+ >
72
+ CREATE INVOICE
73
+ </Button>
74
+ </>
75
+ )
76
+ }
77
+
78
+ if (paymentMade === 'false') {
79
+ return (
80
+ <div>
81
+ Please go to InvoiceFactoringPayment Fixture to make the payment first.
82
+ </div>
83
+ )
84
+ }
85
+
86
+ return (
87
+ <>
88
+ <Box>Pool: {PoolAddress}</Box>
89
+ <Box>NFT: {NFTAddress}</Box>
90
+ <Box>Pool Name: RequestNetwork</Box>
91
+ <Box>Token Id: {tokenId}</Box>
92
+ <Button variant='contained' onClick={() => setShowModal(true)}>
93
+ Get Paid Now
94
+ </Button>
95
+ {showModal && (
96
+ <InvoiceFactoringBorrowWidget
97
+ poolName='RequestNetwork'
98
+ poolType='Invoice'
99
+ tokenId={tokenId}
100
+ handleClose={handleClose}
101
+ />
102
+ )}
103
+ </>
104
+ )
105
+ }
106
+
107
+ export default (
108
+ <WalletWrapper>
109
+ <Fixture />
110
+ </WalletWrapper>
111
+ )
@@ -0,0 +1,67 @@
1
+ /* eslint-disable react/jsx-boolean-value */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Box, Button } from '@mui/material'
4
+ import { useState } from 'react'
5
+ import { useAccount, useContractRead } from 'wagmi'
6
+
7
+ import { InvoiceFactoringPaymentWidget } from '..'
8
+ import RFPoolAbi from './abis/ReceivableFactoringPool.json'
9
+ import { WalletWrapper } from './WalletWrapper'
10
+
11
+ function Fixture() {
12
+ const [showModal, setShowModal] = useState(false)
13
+ const [isInDebt, setIsInDebt] = useState(false)
14
+ const { address } = useAccount()
15
+ const PoolAddress = '0x11672c0bBFF498c72BC2200f42461c0414855042'
16
+
17
+ useContractRead({
18
+ address: PoolAddress,
19
+ abi: RFPoolAbi,
20
+ functionName: 'creditRecordMapping',
21
+ args: [address],
22
+ onSuccess(creditRecord: any) {
23
+ if (creditRecord.state > 2) {
24
+ setIsInDebt(true)
25
+ }
26
+ },
27
+ })
28
+
29
+ const handleClose = () => {
30
+ setShowModal(false)
31
+ }
32
+
33
+ if (!isInDebt) {
34
+ return (
35
+ <>
36
+ <Box>Pool: {PoolAddress}</Box>
37
+ <Box>Pool Name: RequestNetwork</Box>
38
+ <Button variant='contained' disabled>
39
+ Not in state to make payment
40
+ </Button>
41
+ </>
42
+ )
43
+ }
44
+
45
+ return (
46
+ <>
47
+ <Box>Pool: {PoolAddress}</Box>
48
+ <Box>Pool Name: RequestNetwork</Box>
49
+ <Button variant='contained' onClick={() => setShowModal(true)}>
50
+ Make Payment
51
+ </Button>
52
+ {showModal && (
53
+ <InvoiceFactoringPaymentWidget
54
+ poolName='RequestNetwork'
55
+ poolType='Invoice'
56
+ handleClose={handleClose}
57
+ />
58
+ )}
59
+ </>
60
+ )
61
+ }
62
+
63
+ export default (
64
+ <WalletWrapper>
65
+ <Fixture />
66
+ </WalletWrapper>
67
+ )
@@ -0,0 +1,75 @@
1
+ /* eslint-disable react/jsx-boolean-value */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Box, Button } from '@mui/material'
4
+ import { ethers } from 'ethers'
5
+ import { useEffect, useState } from 'react'
6
+
7
+ import { LendSupplyWidget } from '..'
8
+ import { getInjectedMetamask } from './utils'
9
+ import { WalletWrapper } from './WalletWrapper'
10
+
11
+ function Fixture() {
12
+ const [showModal, setShowModal] = useState(false)
13
+ const [showModalRandom, setShowModalRandom] = useState(false)
14
+ const [testPrivateKeyRandom, setTestPrivateKeyRandom] = useState<string>()
15
+ const [testAccountRandom, setTestAccountRandom] = useState<string>()
16
+ const PoolAddress = '0xA22D20FB0c9980fb96A9B0B5679C061aeAf5dDE4'
17
+
18
+ useEffect(() => {
19
+ const wallet = ethers.Wallet.createRandom()
20
+ setTestPrivateKeyRandom(wallet.privateKey)
21
+ setTestAccountRandom(wallet.address)
22
+ }, [])
23
+
24
+ const handleSupply = () => {
25
+ setShowModal(true)
26
+ }
27
+
28
+ const handleSupplyRandom = () => {
29
+ // @ts-ignore
30
+ window.ethereum = getInjectedMetamask(testPrivateKeyRandom)
31
+ setShowModalRandom(true)
32
+ }
33
+
34
+ const handleClose = () => {
35
+ setShowModal(false)
36
+ setShowModalRandom(false)
37
+ window.ethereum = undefined
38
+ }
39
+
40
+ return (
41
+ <>
42
+ <Box>Pool: {PoolAddress}</Box>
43
+ <Box>Pool Name: HumaCreditLine</Box>
44
+ <Button variant='contained' onClick={handleSupply}>
45
+ Supply Without EA Check
46
+ </Button>
47
+ {showModal && (
48
+ <LendSupplyWidget
49
+ poolName='HumaCreditLine'
50
+ poolType='CreditLine'
51
+ handleClose={handleClose}
52
+ />
53
+ )}
54
+ <Box marginTop={5}>Account: {testAccountRandom}</Box>
55
+ <Box>Pool: {PoolAddress}</Box>
56
+ <Box>Pool Name: HumaCreditLine</Box>
57
+ <Button variant='contained' onClick={handleSupplyRandom}>
58
+ Supply With EA Check
59
+ </Button>
60
+ {showModalRandom && (
61
+ <LendSupplyWidget
62
+ poolName='HumaCreditLine'
63
+ poolType='CreditLine'
64
+ handleClose={handleClose}
65
+ />
66
+ )}
67
+ </>
68
+ )
69
+ }
70
+
71
+ export default (
72
+ <WalletWrapper>
73
+ <Fixture />
74
+ </WalletWrapper>
75
+ )
@@ -0,0 +1,43 @@
1
+ /* eslint-disable react/jsx-boolean-value */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Box, Button } from '@mui/material'
4
+ import { useState } from 'react'
5
+
6
+ import { LendWithdrawWidget } from '..'
7
+ import { WalletWrapper } from './WalletWrapper'
8
+
9
+ function Fixture() {
10
+ const [showModal, setShowModal] = useState(false)
11
+ const PoolAddress = '0xA22D20FB0c9980fb96A9B0B5679C061aeAf5dDE4'
12
+
13
+ const handleSupply = () => {
14
+ setShowModal(true)
15
+ }
16
+
17
+ const handleClose = () => {
18
+ setShowModal(false)
19
+ }
20
+
21
+ return (
22
+ <>
23
+ <Box>Pool: {PoolAddress}</Box>
24
+ <Box>Pool Name: HumaCreditLine</Box>
25
+ <Button variant='contained' onClick={handleSupply}>
26
+ Withdraw
27
+ </Button>
28
+ {showModal && (
29
+ <LendWithdrawWidget
30
+ poolName='HumaCreditLine'
31
+ poolType='CreditLine'
32
+ handleClose={handleClose}
33
+ />
34
+ )}
35
+ </>
36
+ )
37
+ }
38
+
39
+ export default (
40
+ <WalletWrapper>
41
+ <Fixture />
42
+ </WalletWrapper>
43
+ )