@layerswap/widget 0.1.4 → 0.1.14
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.
- package/README.md +78 -3
- package/dist/Models/Theme.d.ts +7 -6
- package/dist/Models/Theme.js +7 -7
- package/dist/Models/WalletProvider.d.ts +0 -4
- package/dist/Models/WalletProvider.js +2 -0
- package/dist/components/Buttons/copyButton.js +4 -3
- package/dist/components/ColorSchema.js +79 -45
- package/dist/components/Common/AddressIcon.js +1 -0
- package/dist/components/Common/AverageCompletionTime.js +1 -1
- package/dist/components/Common/CountDownTimer.js +2 -2
- package/dist/components/Common/FormattedAverageCompletionTime.js +1 -1
- package/dist/components/HeaderWithMenu/index.js +1 -8
- package/dist/components/Input/Address/AddressNote.js +3 -2
- package/dist/components/Input/Address/AddressPicker/AddressWithIcon.js +2 -2
- package/dist/components/Input/Address/AddressPicker/ConnectedWallets/ConnectWalletButton.js +12 -5
- package/dist/components/Input/Address/AddressPicker/ExchangeNote.d.ts +1 -1
- package/dist/components/Input/Address/AddressPicker/ExchangeNote.js +1 -1
- package/dist/components/Input/RouteIcon.js +1 -1
- package/dist/components/LayerswapMenu/MenuList.js +2 -56
- package/dist/components/Pages/404/index.js +1 -0
- package/dist/components/Pages/Auth/Steps/CodeStep/VerifyEmailCode.js +1 -0
- package/dist/components/Pages/Auth/index.d.ts +1 -1
- package/dist/components/Pages/Auth/index.js +3 -2
- package/dist/components/Pages/Campaigns/Details/Leaderboard.js +1 -0
- package/dist/components/Pages/Campaigns/Details/index.d.ts +1 -1
- package/dist/components/Pages/Campaigns/Details/index.js +3 -2
- package/dist/components/Pages/Campaigns/index.d.ts +1 -1
- package/dist/components/Pages/Campaigns/index.js +3 -2
- package/dist/components/Pages/Maintanance/index.js +1 -0
- package/dist/components/Pages/NoCookies/index.js +1 -0
- package/dist/components/Pages/SwapHistory/History.js +1 -2
- package/dist/components/Pages/SwapHistory/index.d.ts +1 -1
- package/dist/components/Pages/SwapHistory/index.js +4 -3
- package/dist/components/Pages/SwapPages/Form/FeeDetails/Campaign.js +1 -0
- package/dist/components/Pages/SwapPages/Form/Form.js +1 -4
- package/dist/components/Pages/SwapPages/Form/SecondaryComponents/ValidationError.js +1 -1
- package/dist/components/Pages/SwapPages/Form/Select/Popover/PopoverSelect.js +1 -1
- package/dist/components/Pages/SwapPages/Form/index.js +1 -0
- package/dist/components/Pages/SwapPages/Withdraw/Coinbase/Carousel.js +8 -6
- package/dist/components/Pages/SwapPages/Withdraw/Processing/Processing.js +2 -2
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/FuelWalletWithdrawal.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/FuelWalletWithdrawal.js +159 -125
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/ImtblxWalletWithdrawStep.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/ImtblxWalletWithdrawStep.js +69 -51
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/ActivationTokentPicker.d.ts +0 -8
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/ActivationTokentPicker.js +87 -45
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/hooks.d.ts +0 -40
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/hooks.js +73 -46
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/index.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/index.js +175 -128
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/index.d.ts +0 -7
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/index.js +138 -116
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/transactionSender.d.ts +0 -8
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/transactionSender.js +96 -75
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/SophonWalletWithdraw.js +2 -2
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/StarknetWalletWithdraw.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/StarknetWalletWithdraw.js +88 -71
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/TonWalletWithdraw.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/TonWalletWithdraw.js +146 -136
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/TronWalletWithdraw.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/TronWalletWithdraw.js +120 -99
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/TransferToken.js +3 -3
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/buttons.js +1 -0
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/index.js +1 -1
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/transactionMessage.js +2 -2
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransferContent.js +101 -33
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Evm.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Evm.js +60 -55
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Starknet.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Starknet.js +71 -55
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/buttons.js +1 -0
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/index.d.ts +0 -4
- package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/index.js +56 -52
- package/dist/components/Pages/SwapPages/Withdraw/index.d.ts +1 -1
- package/dist/components/Pages/SwapPages/Withdraw/index.js +3 -2
- package/dist/components/Wallet/WalletModal/Connector.js +1 -1
- package/dist/components/Wallet/WalletProviders/FuelProvider.d.ts +0 -5
- package/dist/components/Wallet/WalletProviders/FuelProvider.js +25 -20
- package/dist/components/Wallet/WalletProviders/ImtblPassportProvider.d.ts +0 -5
- package/dist/components/Wallet/WalletProviders/ImtblPassportProvider.js +39 -36
- package/dist/components/Wallet/WalletProviders/SolanaProvider.d.ts +0 -5
- package/dist/components/Wallet/WalletProviders/SolanaProvider.js +49 -38
- package/dist/components/Wallet/WalletProviders/StarknetProvider.d.ts +0 -5
- package/dist/components/Wallet/WalletProviders/StarknetProvider.js +112 -117
- package/dist/components/Wallet/WalletProviders/TonConnectProvider.d.ts +0 -6
- package/dist/components/Wallet/WalletProviders/TonConnectProvider.js +58 -50
- package/dist/components/Wallet/WalletProviders/TronProvider.d.ts +0 -3
- package/dist/components/Wallet/WalletProviders/TronProvider.js +23 -15
- package/dist/components/Wallet/WalletProviders/Wagmi.d.ts +1 -1
- package/dist/components/Wallet/WalletProviders/Wagmi.js +20 -10
- package/dist/components/Wallet/WalletProviders/index.js +13 -6
- package/dist/components/Widget/Footer.d.ts +2 -1
- package/dist/components/Widget/Footer.js +13 -4
- package/dist/components/Widget/Index.d.ts +1 -1
- package/dist/components/Widget/Index.js +1 -1
- package/dist/components/WidgetLoading.d.ts +1 -0
- package/dist/components/WidgetLoading.js +5 -0
- package/dist/components/Wizard/Wizard.js +1 -1
- package/dist/components/shadcn/command.js +1 -1
- package/dist/components/themeWrapper.js +3 -2
- package/dist/context/{LayerswapContext.d.ts → LayerswapProvider.d.ts} +3 -8
- package/dist/context/{LayerswapContext.js → LayerswapProvider.js} +8 -9
- package/dist/context/authContext.js +1 -0
- package/dist/context/walletHooksProvider.js +1 -0
- package/dist/hooks/useWallet.js +10 -14
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.js +2 -4
- package/dist/index.mjs +19 -0
- package/dist/lib/AppSettings.d.ts +7 -3
- package/dist/lib/AppSettings.js +8 -7
- package/dist/lib/address/formatter/index.js +8 -9
- package/dist/lib/address/validator/index.js +18 -20
- package/dist/lib/axiosInterceptor.js +1 -2
- package/dist/lib/balances/balanceResolver.js +16 -16
- package/dist/lib/balances/providers/evmBalanceProvider.js +3 -3
- package/dist/lib/balances/providers/loopringBalanceProvider.d.ts +0 -6
- package/dist/lib/balances/providers/loopringBalanceProvider.js +56 -43
- package/dist/lib/balances/providers/paradexBalanceProvider.d.ts +0 -6
- package/dist/lib/balances/providers/paradexBalanceProvider.js +42 -42
- package/dist/lib/balances/providers/solanaBalanceProvider.d.ts +0 -6
- package/dist/lib/balances/providers/solanaBalanceProvider.js +70 -71
- package/dist/lib/balances/providers/starknetBalanceProvider.d.ts +0 -6
- package/dist/lib/balances/providers/starknetBalanceProvider.js +48 -45
- package/dist/lib/balances/providers/tonBalanceProvider.d.ts +0 -18
- package/dist/lib/balances/providers/tonBalanceProvider.js +104 -100
- package/dist/lib/balances/providers/tronBalanceResolver.js +2 -3
- package/dist/lib/fuels/common/FakeAccount.d.ts +0 -24
- package/dist/lib/fuels/common/FakeAccount.js +58 -36
- package/dist/lib/fuels/common/PredicateConnector.d.ts +0 -54
- package/dist/lib/fuels/common/PredicateConnector.js +292 -205
- package/dist/lib/fuels/common/PredicateFactory.d.ts +0 -29
- package/dist/lib/fuels/common/PredicateFactory.js +123 -76
- package/dist/lib/fuels/common/PredicateWalletAdapter.d.ts +0 -17
- package/dist/lib/fuels/common/PredicateWalletAdapter.js +44 -29
- package/dist/lib/fuels/common/index.d.ts +0 -4
- package/dist/lib/fuels/common/index.js +4 -4
- package/dist/lib/fuels/connectors/fuel-wallet/FuelWalletConnector.d.ts +0 -51
- package/dist/lib/fuels/connectors/fuel-wallet/FuelWalletConnector.js +268 -234
- package/dist/lib/fuels/connectors/fuel-wallet/index.d.ts +0 -2
- package/dist/lib/fuels/connectors/fuel-wallet/index.js +2 -2
- package/dist/lib/fuels/connectors/fuel-wallet/types.d.ts +0 -50
- package/dist/lib/fuels/connectors/fuel-wallet/types.js +53 -9
- package/dist/lib/fuels/connectors/fuelet-wallet/FueletWalletConnector.d.ts +0 -7
- package/dist/lib/fuels/connectors/fuelet-wallet/FueletWalletConnector.js +20 -19
- package/dist/lib/fuels/connectors/fuelet-wallet/index.d.ts +0 -1
- package/dist/lib/fuels/connectors/fuelet-wallet/index.js +1 -1
- package/dist/lib/gases/gasResolver.d.ts +1 -1
- package/dist/lib/gases/gasResolver.js +10 -10
- package/dist/lib/gases/providers/evmGasProvider.js +5 -4
- package/dist/lib/gases/providers/loopringGasProvider.d.ts +0 -6
- package/dist/lib/gases/providers/loopringGasProvider.js +27 -24
- package/dist/lib/gases/providers/solanaGasProvider.d.ts +0 -7
- package/dist/lib/gases/providers/solanaGasProvider.js +32 -31
- package/dist/lib/gases/providers/starknetGasProvider.d.ts +0 -7
- package/dist/lib/gases/providers/starknetGasProvider.js +34 -33
- package/dist/lib/imtbl.d.ts +0 -69
- package/dist/lib/imtbl.js +63 -60
- package/dist/lib/internalApiClient.d.ts +0 -2
- package/dist/lib/internalApiClient.js +1 -4
- package/dist/lib/layerSwapApiClient.js +3 -3
- package/dist/lib/logError.js +2 -2
- package/dist/lib/nft/nftBalanceResolver.js +1 -2
- package/dist/lib/nft/providers/starknetNftProvider.d.ts +0 -6
- package/dist/lib/nft/providers/starknetNftProvider.js +49 -50
- package/dist/lib/wallets/connectors/EthereumProvider.d.ts +2 -2
- package/dist/lib/wallets/connectors/useSyncProviders/store.d.ts +1 -4
- package/dist/lib/wallets/fuel/Bako.d.ts +0 -15
- package/dist/lib/wallets/fuel/Bako.js +34 -29
- package/dist/lib/wallets/fuel/Basko.d.ts +0 -15
- package/dist/lib/wallets/fuel/Basko.js +34 -29
- package/dist/lib/wallets/fuel/useFuel.d.ts +0 -2
- package/dist/lib/wallets/fuel/useFuel.js +211 -192
- package/dist/lib/wallets/imtblX/useImtblX.d.ts +0 -2
- package/dist/lib/wallets/imtblX/useImtblX.js +87 -87
- package/dist/lib/wallets/paradex/Authorize/Ethereum.d.ts +0 -2
- package/dist/lib/wallets/paradex/Authorize/Ethereum.js +24 -23
- package/dist/lib/wallets/paradex/Authorize/Starknet.d.ts +0 -2
- package/dist/lib/wallets/paradex/Authorize/Starknet.js +14 -13
- package/dist/lib/wallets/paradex/lib/account.d.ts +0 -28
- package/dist/lib/wallets/paradex/lib/account.js +102 -53
- package/dist/lib/wallets/paradex/lib/index.d.ts +0 -24
- package/dist/lib/wallets/paradex/lib/index.js +20 -20
- package/dist/lib/wallets/paradex/lib/paraclear-provider.d.ts +0 -6
- package/dist/lib/wallets/paradex/lib/paraclear-provider.js +13 -9
- package/dist/lib/wallets/paradex/lib/paraclear.d.ts +0 -137
- package/dist/lib/wallets/paradex/lib/paraclear.js +258 -131
- package/dist/lib/wallets/paradex/lib/starknet-account-support.d.ts +0 -22
- package/dist/lib/wallets/paradex/lib/starknet-account-support.js +296 -220
- package/dist/lib/wallets/paradex/lib/starknet-signer.d.ts +0 -15
- package/dist/lib/wallets/paradex/lib/starknet-signer.js +120 -94
- package/dist/lib/wallets/paradex/useParadex.d.ts +0 -7
- package/dist/lib/wallets/paradex/useParadex.js +197 -194
- package/dist/lib/wallets/solana/transactionBuilder.d.ts +0 -4
- package/dist/lib/wallets/solana/transactionBuilder.js +63 -39
- package/dist/lib/wallets/solana/useSVM.d.ts +0 -5
- package/dist/lib/wallets/solana/useSVM.js +139 -142
- package/dist/lib/wallets/starknet/useStarknet.d.ts +0 -2
- package/dist/lib/wallets/starknet/useStarknet.js +139 -139
- package/dist/lib/wallets/ton/client.d.ts +0 -3
- package/dist/lib/wallets/ton/client.js +7 -7
- package/dist/lib/wallets/ton/useTON.d.ts +0 -2
- package/dist/lib/wallets/ton/useTON.js +121 -122
- package/dist/lib/wallets/tron/connectors/bitkeep.d.ts +0 -61
- package/dist/lib/wallets/tron/connectors/bitkeep.js +326 -303
- package/dist/lib/wallets/tron/connectors/index.d.ts +0 -4
- package/dist/lib/wallets/tron/connectors/index.js +4 -4
- package/dist/lib/wallets/tron/connectors/okxWallet.d.ts +0 -66
- package/dist/lib/wallets/tron/connectors/okxWallet.js +364 -336
- package/dist/lib/wallets/tron/connectors/tokenPocket.d.ts +0 -72
- package/dist/lib/wallets/tron/connectors/tokenPocket.js +337 -308
- package/dist/lib/wallets/tron/connectors/tronLink/index.d.ts +0 -102
- package/dist/lib/wallets/tron/connectors/tronLink/index.js +560 -520
- package/dist/lib/wallets/tron/connectors/tronLink/types.d.ts +0 -56
- package/dist/lib/wallets/tron/connectors/tronLink/types.js +53 -1
- package/dist/lib/wallets/tron/connectors/tronLink/utils.d.ts +0 -14
- package/dist/lib/wallets/tron/connectors/tronLink/utils.js +64 -61
- package/dist/lib/wallets/tron/useTron.d.ts +0 -2
- package/dist/lib/wallets/tron/useTron.js +111 -111
- package/dist/lib/wallets/utils/resolveWalletIcon.js +1 -0
- package/package.json +26 -77
- package/dist/hooks/useCopyClipboard.d.ts +0 -1
- package/dist/hooks/useCopyClipboard.js +0 -21
- package/dist/index.cjs +0 -125
- package/dist/lib/abis/ERC20.json +0 -258
- package/dist/lib/fuels/connectors/walletConnect/WalletConnectConnector.d.ts +0 -42
- package/dist/lib/fuels/connectors/walletConnect/WalletConnectConnector.js +0 -357
- package/dist/lib/fuels/connectors/walletConnect/constants.d.ts +0 -6
- package/dist/lib/fuels/connectors/walletConnect/constants.js +0 -7
- package/dist/lib/fuels/connectors/walletConnect/index.d.ts +0 -3
- package/dist/lib/fuels/connectors/walletConnect/index.js +0 -3
- package/dist/lib/fuels/connectors/walletConnect/types.d.ts +0 -12
- package/dist/lib/fuels/connectors/walletConnect/types.js +0 -1
- package/dist/lib/fuels/connectors/walletConnect/utils/index.d.ts +0 -1
- package/dist/lib/fuels/connectors/walletConnect/utils/index.js +0 -1
- package/dist/lib/fuels/connectors/walletConnect/utils/subscribeAndEnforceChain.d.ts +0 -2
- package/dist/lib/fuels/connectors/walletConnect/utils/subscribeAndEnforceChain.js +0 -39
- package/dist/lib/fuels/connectors/walletConnect/web3Modal.d.ts +0 -10
- package/dist/lib/fuels/connectors/walletConnect/web3Modal.js +0 -38
- package/dist/lib/loopring/LoopringAPI.d.ts +0 -12
- package/dist/lib/loopring/LoopringAPI.js +0 -13
- package/dist/lib/loopring/defs.d.ts +0 -425
- package/dist/lib/loopring/defs.js +0 -217
- package/dist/lib/loopring/eddsa.d.ts +0 -29
- package/dist/lib/loopring/eddsa.js +0 -208
- package/dist/lib/loopring/field.d.ts +0 -17
- package/dist/lib/loopring/field.js +0 -61
- package/dist/lib/loopring/formatter.d.ts +0 -137
- package/dist/lib/loopring/formatter.js +0 -516
- package/dist/lib/loopring/helpers.d.ts +0 -36
- package/dist/lib/loopring/helpers.js +0 -140
- package/dist/lib/loopring/jubjub.d.ts +0 -19
- package/dist/lib/loopring/jubjub.js +0 -79
- package/dist/lib/loopring/permutation.d.ts +0 -22
- package/dist/lib/loopring/permutation.js +0 -198
- package/dist/lib/loopring/poseidon/EDDSAUtil.d.ts +0 -14
- package/dist/lib/loopring/poseidon/EDDSAUtil.js +0 -61
- package/dist/lib/loopring/poseidon/babyJub.d.ts +0 -6
- package/dist/lib/loopring/poseidon/babyJub.js +0 -51
- package/dist/lib/loopring/poseidon/eddsa.d.ts +0 -29
- package/dist/lib/loopring/poseidon/eddsa.js +0 -210
- package/dist/lib/loopring/utils.d.ts +0 -76
- package/dist/lib/loopring/utils.js +0 -230
- package/dist/styles/dialog-transition.css +0 -28
- package/dist/styles/globals.css +0 -372
- package/dist/styles/manual-trasnfer-svg.css +0 -299
- package/dist/styles/vaul.css +0 -256
|
@@ -1,192 +1,211 @@
|
|
|
1
|
-
import KnownInternalNames from "../../knownIds";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
1
|
+
// import KnownInternalNames from "../../knownIds";
|
|
2
|
+
// import {
|
|
3
|
+
// useConnectors,
|
|
4
|
+
// useFuel as useGlobalFuel,
|
|
5
|
+
// } from '@fuels/react';
|
|
6
|
+
// import { Connector, useAccount } from "wagmi";
|
|
7
|
+
// import {
|
|
8
|
+
// FuelConnector,
|
|
9
|
+
// Predicate,
|
|
10
|
+
// getPredicateRoot,
|
|
11
|
+
// } from '@fuel-ts/account';
|
|
12
|
+
// import { Address } from '@fuel-ts/address';
|
|
13
|
+
// import shortenAddress from "../../../components/utils/ShortenAddress";
|
|
14
|
+
// import { BAKO_STATE } from "./Basko";
|
|
15
|
+
// import { resolveWalletConnectorIcon } from "../utils/resolveWalletIcon";
|
|
16
|
+
// import { InternalConnector, Wallet, WalletProvider } from "../../../Models/WalletProvider";
|
|
17
|
+
// import { useConnectModal } from "../../../components/Wallet/WalletModal";
|
|
18
|
+
// import { useEffect, useMemo } from "react";
|
|
19
|
+
// import { useWalletStore } from "../../../stores/walletStore";
|
|
20
|
+
// import { useSettingsState } from "../../../context/settings";
|
|
21
|
+
// export default function useFuel(): WalletProvider {
|
|
22
|
+
// const commonSupportedNetworks = [
|
|
23
|
+
// KnownInternalNames.Networks.FuelTestnet,
|
|
24
|
+
// KnownInternalNames.Networks.FuelDevnet,
|
|
25
|
+
// KnownInternalNames.Networks.FuelMainnet
|
|
26
|
+
// ]
|
|
27
|
+
// const name = 'Fuel'
|
|
28
|
+
// const id = 'fuel'
|
|
29
|
+
// const { address: evmAddress, connector: evmConnector } = useAccount()
|
|
30
|
+
// const { connectors } = useConnectors()
|
|
31
|
+
// const { fuel } = useGlobalFuel()
|
|
32
|
+
// const { connect } = useConnectModal()
|
|
33
|
+
// const { networks } = useSettingsState()
|
|
34
|
+
// const wallets = useWalletStore((state) => state.connectedWallets)
|
|
35
|
+
// const addWallet = useWalletStore((state) => state.connectWallet)
|
|
36
|
+
// const removeWallet = useWalletStore((state) => state.disconnectWallet)
|
|
37
|
+
// const connectedWallets = wallets.filter(wallet => wallet.providerName === name)
|
|
38
|
+
// const connectWallet = async () => {
|
|
39
|
+
// try {
|
|
40
|
+
// return await connect(provider)
|
|
41
|
+
// }
|
|
42
|
+
// catch (e) {
|
|
43
|
+
// console.log(e)
|
|
44
|
+
// }
|
|
45
|
+
// }
|
|
46
|
+
// const connectConnector = async ({ connector }: { connector: InternalConnector }) => {
|
|
47
|
+
// try {
|
|
48
|
+
// const fuelConnector = connectors.find(w => w.name === connector.name)
|
|
49
|
+
// BAKO_STATE.state.last_req = undefined
|
|
50
|
+
// BAKO_STATE.period_durtion = 120_000
|
|
51
|
+
// await fuelConnector?.connect()
|
|
52
|
+
// const addresses = (await fuelConnector?.accounts())?.map(a => Address.fromAddressOrString(a).toB256())
|
|
53
|
+
// if (addresses && fuelConnector) {
|
|
54
|
+
// const result = await resolveFuelWallet({
|
|
55
|
+
// address: addresses[0],
|
|
56
|
+
// addresses: addresses,
|
|
57
|
+
// connector: fuelConnector,
|
|
58
|
+
// evmAddress,
|
|
59
|
+
// evmConnector,
|
|
60
|
+
// connectWallet,
|
|
61
|
+
// disconnectWallet,
|
|
62
|
+
// name,
|
|
63
|
+
// commonSupportedNetworks,
|
|
64
|
+
// networkIcon: networks.find(n => commonSupportedNetworks.some(name => name === n.name))?.logo
|
|
65
|
+
// })
|
|
66
|
+
// addWallet(result)
|
|
67
|
+
// await switchAccount(result)
|
|
68
|
+
// return result
|
|
69
|
+
// }
|
|
70
|
+
// }
|
|
71
|
+
// catch (e) {
|
|
72
|
+
// console.log(e)
|
|
73
|
+
// throw new Error(e)
|
|
74
|
+
// }
|
|
75
|
+
// }
|
|
76
|
+
// const disconnectWallet = async (connectorName: string) => {
|
|
77
|
+
// try {
|
|
78
|
+
// const fuelConnector = connectors.find(c => c.name === connectorName)
|
|
79
|
+
// if (!fuelConnector) throw new Error('Connector not found')
|
|
80
|
+
// await fuelConnector.disconnect()
|
|
81
|
+
// }
|
|
82
|
+
// catch (e) {
|
|
83
|
+
// console.log(e)
|
|
84
|
+
// } finally {
|
|
85
|
+
// removeWallet(name, connectorName)
|
|
86
|
+
// }
|
|
87
|
+
// }
|
|
88
|
+
// const disconnectWallets = async () => {
|
|
89
|
+
// try {
|
|
90
|
+
// BAKO_STATE.state.last_req = undefined
|
|
91
|
+
// BAKO_STATE.period_durtion = 10_000
|
|
92
|
+
// for (const connector of connectors.filter(c => c.connected)) {
|
|
93
|
+
// await connector.disconnect()
|
|
94
|
+
// removeWallet(name)
|
|
95
|
+
// }
|
|
96
|
+
// }
|
|
97
|
+
// catch (e) {
|
|
98
|
+
// console.log(e)
|
|
99
|
+
// }
|
|
100
|
+
// }
|
|
101
|
+
// const switchAccount = async (wallet: Wallet) => {
|
|
102
|
+
// try {
|
|
103
|
+
// const res = await fuel.selectConnector(wallet.id)
|
|
104
|
+
// if (!res) throw new Error('Could not switch account')
|
|
105
|
+
// } catch (e) {
|
|
106
|
+
// console.log(e)
|
|
107
|
+
// }
|
|
108
|
+
// }
|
|
109
|
+
// const connectedConnectors = useMemo(() => connectors.filter(w => w.connected), [connectors])
|
|
110
|
+
// useEffect(() => {
|
|
111
|
+
// (async () => {
|
|
112
|
+
// for (const connector of connectedConnectors) {
|
|
113
|
+
// try {
|
|
114
|
+
// const addresses = (await connector.accounts()).map(a => Address.fromAddressOrString(a).toB256())
|
|
115
|
+
// if (connector.connected && addresses.length > 0) {
|
|
116
|
+
// const w = await resolveFuelWallet({
|
|
117
|
+
// address: addresses?.[0],
|
|
118
|
+
// addresses,
|
|
119
|
+
// connector,
|
|
120
|
+
// evmAddress,
|
|
121
|
+
// evmConnector,
|
|
122
|
+
// connectWallet,
|
|
123
|
+
// disconnectWallet,
|
|
124
|
+
// name,
|
|
125
|
+
// commonSupportedNetworks: commonSupportedNetworks,
|
|
126
|
+
// networkIcon: networks.find(n => commonSupportedNetworks.some(name => name === n.name))?.logo
|
|
127
|
+
// })
|
|
128
|
+
// addWallet(w)
|
|
129
|
+
// }
|
|
130
|
+
// } catch (e) {
|
|
131
|
+
// console.log(e)
|
|
132
|
+
// }
|
|
133
|
+
// }
|
|
134
|
+
// })()
|
|
135
|
+
// }, [connectedConnectors])
|
|
136
|
+
// const availableWalletsForConnect: InternalConnector[] = connectors.map(c => {
|
|
137
|
+
// const isInstalled = c.installed && !c['dAppWindow']
|
|
138
|
+
// return {
|
|
139
|
+
// name: c.name,
|
|
140
|
+
// id: c.name,
|
|
141
|
+
// type: isInstalled ? 'injected' : 'other',
|
|
142
|
+
// installUrl: c.installed ? undefined : c.metadata.install.link,
|
|
143
|
+
// }
|
|
144
|
+
// })
|
|
145
|
+
// const provider = {
|
|
146
|
+
// connectWallet,
|
|
147
|
+
// connectConnector,
|
|
148
|
+
// disconnectWallets,
|
|
149
|
+
// switchAccount,
|
|
150
|
+
// availableWalletsForConnect,
|
|
151
|
+
// autofillSupportedNetworks: commonSupportedNetworks,
|
|
152
|
+
// withdrawalSupportedNetworks: commonSupportedNetworks,
|
|
153
|
+
// activeWallet: connectedWallets?.[0],
|
|
154
|
+
// connectedWallets,
|
|
155
|
+
// name,
|
|
156
|
+
// id,
|
|
157
|
+
// }
|
|
158
|
+
// return provider
|
|
159
|
+
// }
|
|
160
|
+
// type ResolveWalletProps = {
|
|
161
|
+
// address: string,
|
|
162
|
+
// addresses: string[],
|
|
163
|
+
// connector: FuelConnector,
|
|
164
|
+
// evmAddress: `0x${string}` | undefined,
|
|
165
|
+
// evmConnector: Connector | undefined,
|
|
166
|
+
// connectWallet: () => Promise<Wallet | undefined>,
|
|
167
|
+
// disconnectWallet: (connectorName: string) => Promise<void>,
|
|
168
|
+
// name: string,
|
|
169
|
+
// commonSupportedNetworks: string[],
|
|
170
|
+
// networkIcon?: string,
|
|
171
|
+
// }
|
|
172
|
+
// const resolveFuelWallet = async ({ address, addresses, commonSupportedNetworks, connectWallet, connector, disconnectWallet, evmAddress, evmConnector, name, networkIcon }: ResolveWalletProps) => {
|
|
173
|
+
// let fuelCurrentConnector: string | undefined = undefined
|
|
174
|
+
// let customConnectorname: string | undefined = undefined
|
|
175
|
+
// const fuelEvmConnector = connector.name === 'Ethereum Wallets' ? connector : undefined
|
|
176
|
+
// // const fuelSolanaConnector = connector.name === 'Solana Wallets' ? connector : undefined
|
|
177
|
+
// if (fuelEvmConnector && evmAddress && fuelEvmConnector.connected && evmConnector) {
|
|
178
|
+
// // @ts-expect-error processPredicateData is only available in the Predicate class
|
|
179
|
+
// const { predicateBytes } = Predicate.processPredicateData(
|
|
180
|
+
// (fuelEvmConnector as any)?.predicateAccount?.bytecode,
|
|
181
|
+
// (fuelEvmConnector as any)?.predicateAccount?.abi,
|
|
182
|
+
// {
|
|
183
|
+
// SIGNER: (fuelEvmConnector as any)?.predicateAccount?.adapter?.convertAddress(evmAddress),
|
|
184
|
+
// },
|
|
185
|
+
// );
|
|
186
|
+
// const convertedAddress = Address.fromB256(getPredicateRoot(predicateBytes)).toString();
|
|
187
|
+
// if (convertedAddress.toLowerCase() === address.toLowerCase()) {
|
|
188
|
+
// fuelCurrentConnector = `${evmConnector.name} (${shortenAddress(evmAddress)})`
|
|
189
|
+
// customConnectorname = evmConnector.name
|
|
190
|
+
// }
|
|
191
|
+
// }
|
|
192
|
+
// const network = await connector.currentNetwork()
|
|
193
|
+
// const chainId = network.chainId || network.url.toLowerCase().includes('testnet') ? 0 : 9889
|
|
194
|
+
// const w: Wallet = {
|
|
195
|
+
// id: connector.name,
|
|
196
|
+
// address: address,
|
|
197
|
+
// addresses: addresses,
|
|
198
|
+
// isActive: true,
|
|
199
|
+
// connect: connectWallet,
|
|
200
|
+
// chainId: chainId,
|
|
201
|
+
// disconnect: () => disconnectWallet(connector.name),
|
|
202
|
+
// displayName: `${fuelCurrentConnector || connector.name} - Fuel`,
|
|
203
|
+
// providerName: name,
|
|
204
|
+
// icon: resolveWalletConnectorIcon({ connector: customConnectorname || connector.name, address: address, iconUrl: typeof connector.metadata.image === 'string' ? connector.metadata.image : (connector.metadata.image?.light.startsWith('data:') ? connector.metadata.image.light : `data:image/svg+xml;base64,${connector.metadata.image && btoa(connector.metadata.image.light)}`) }),
|
|
205
|
+
// autofillSupportedNetworks: commonSupportedNetworks,
|
|
206
|
+
// withdrawalSupportedNetworks: commonSupportedNetworks,
|
|
207
|
+
// asSourceSupportedNetworks: commonSupportedNetworks,
|
|
208
|
+
// networkIcon
|
|
209
|
+
// }
|
|
210
|
+
// return w
|
|
211
|
+
// }
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import { useWalletStore } from "../../../stores/walletStore"
|
|
2
|
-
import ImtblClient from "../../imtbl"
|
|
3
|
-
import KnownInternalNames from "../../knownIds"
|
|
4
|
-
import IMX from "../../../components/Icons/Wallets/IMX"
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
1
|
+
// import { useWalletStore } from "../../../stores/walletStore"
|
|
2
|
+
// import ImtblClient from "../../imtbl"
|
|
3
|
+
// import KnownInternalNames from "../../knownIds"
|
|
4
|
+
// import IMX from "../../../components/Icons/Wallets/IMX"
|
|
5
|
+
// import { InternalConnector, Wallet, WalletProvider } from "../../../Models/WalletProvider"
|
|
6
|
+
// import { useSettingsState } from "../../../context/settings"
|
|
7
|
+
// import { useConnectModal } from "../../../components/Wallet/WalletModal"
|
|
8
|
+
// export default function useImtblX(): WalletProvider {
|
|
9
|
+
// const withdrawalSupportedNetworks = [
|
|
10
|
+
// KnownInternalNames.Networks.ImmutableXMainnet,
|
|
11
|
+
// KnownInternalNames.Networks.ImmutableXGoerli,
|
|
12
|
+
// KnownInternalNames.Networks.ImmutableXSepolia,
|
|
13
|
+
// ]
|
|
14
|
+
// const { networks } = useSettingsState()
|
|
15
|
+
// const name = 'ImmutableX'
|
|
16
|
+
// const id = 'imx'
|
|
17
|
+
// const wallets = useWalletStore((state) => state.connectedWallets)
|
|
18
|
+
// const addWallet = useWalletStore((state) => state.connectWallet)
|
|
19
|
+
// const removeWallet = useWalletStore((state) => state.disconnectWallet)
|
|
20
|
+
// const wallet = wallets.find(wallet => wallet.providerName === id)
|
|
21
|
+
// const { connect } = useConnectModal()
|
|
22
|
+
// const getWallet = () => {
|
|
23
|
+
// if (wallet) {
|
|
24
|
+
// return [wallet]
|
|
25
|
+
// }
|
|
26
|
+
// return undefined
|
|
27
|
+
// }
|
|
28
|
+
// const connectConnector = async () => {
|
|
29
|
+
// const isMainnet = networks?.some(network => network.name === KnownInternalNames.Networks.ImmutableXMainnet)
|
|
30
|
+
// const chain = (isMainnet ? KnownInternalNames.Networks.ImmutableXMainnet : KnownInternalNames.Networks.ImmutableXGoerli)
|
|
31
|
+
// if (!chain) throw new Error('No chain id for imx connect wallet')
|
|
32
|
+
// const networkName = chain == 'testnet' ? KnownInternalNames.Networks.ImmutableXGoerli : KnownInternalNames.Networks.ImmutableXMainnet
|
|
33
|
+
// try {
|
|
34
|
+
// const imtblClient = new ImtblClient(networkName)
|
|
35
|
+
// const res = await imtblClient.ConnectWallet();
|
|
36
|
+
// const wallet: Wallet = {
|
|
37
|
+
// id: 'immutablex',
|
|
38
|
+
// displayName: name,
|
|
39
|
+
// address: res.address,
|
|
40
|
+
// providerName: id,
|
|
41
|
+
// icon: IMX,
|
|
42
|
+
// disconnect: () => disconnectWallet(),
|
|
43
|
+
// isActive: true,
|
|
44
|
+
// addresses: [res.address],
|
|
45
|
+
// withdrawalSupportedNetworks,
|
|
46
|
+
// asSourceSupportedNetworks: withdrawalSupportedNetworks,
|
|
47
|
+
// }
|
|
48
|
+
// addWallet(wallet);
|
|
49
|
+
// return wallet
|
|
50
|
+
// }
|
|
51
|
+
// catch (e) {
|
|
52
|
+
// console.log(e)
|
|
53
|
+
// throw new Error(e)
|
|
54
|
+
// }
|
|
55
|
+
// }
|
|
56
|
+
// const connectWallet = async () => {
|
|
57
|
+
// try {
|
|
58
|
+
// return await connect(provider)
|
|
59
|
+
// }
|
|
60
|
+
// catch (e) {
|
|
61
|
+
// console.log(e)
|
|
62
|
+
// }
|
|
63
|
+
// }
|
|
64
|
+
// const disconnectWallet = () => {
|
|
65
|
+
// return removeWallet(id)
|
|
66
|
+
// }
|
|
67
|
+
// const logo = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAOVBMVEUAAAAeHh7f39/Ly8v5+fkPDw9OTk7///8EBAT8/PyJiYmbm5tgYGDv7+9ycnIvLy89PT23t7erq6tpkv1uAAAACXBIWXMAAAsTAAALEwEAmpwYAAADCklEQVR4nO2Y2Y6kMAxFQwjYAQoI//+xI9vZoKhqthm1RrlPiMVOzPECShUVFRUVFRUV/TUha3v4ruzat9v+vZp+6fu+bxSqig6WQe0urunoYqcUqpmeWMajHkawYGGhww4sAOx7WOianWkdGsCCng7vYQRjDXRktgdjwJCVtVB1YIy1rULV1HTT67h9epj2MCpUuIC1oKu3W8Z4i3J0yK6Oi58BvzxroW429lu+oVOItEmwH8L4UWQWJDSVJg/L2v708ifDVjieZyRmdSXGthbkak2gDWDBQH/Wflhj3cRwcLjT/rz32bzt76iH1jKsGKOQ3uICBuCV4rd5Q0c9jGHzQhVxKB66DQFvjB310DEeHJoEax4xdHQ6Oj6vhU0NK1jZbwSUUDuXAN9hdfRGJrMC9GQCrFXpGAOhit/IADV6QFdwnRfmsM42psM4RUBPJ8DWQ2vIrMtXLBd8zO5YF0PDGlaKOR3vlqhrHrpVWbMUf6mGPpfve+gjLOiA2wSfu5UAaxcu4t7UCdC9NnRRTZ1gdaGC3kyAj7VbCaBXOsBnoc8BJ/Yn/UACbD04hpWDIgFbnh2zmjp1BBdz+zEhk0qAyuFDCZDZH8Mkxmnngaqmx+wPbD8CCjwCYf2qHrI/M5VZi+cK3cMTlUj5ih0aMjegF7mqqJs+glKjs5GCHQCVCDr9SLKhDJGcAdTvU7S4Fd3qZ6yeJwtaKaYJyY9j5OFeQUI/uQigXKelOzxUUgOgvsXLammUyZvCxakrb8jaAyr4+KoRnN1om2GkeKWhhVGi2u2TTeoeF9krEkvQrmdc5gdCudBgaSK4pCwWGFq8yobTAOvl3hPfpvIzaOBlA6u9BOuKx27zERbKd4L15BfgZpHDzgwqc3fIjNMTTPi80VVkddOC/Qv68qF7ElCHe4h9+dD9rhx1vfv0G6ynPgTp14CvlOhoHN1pwcKPSZWVW/ZB+1KhGdDlY0HbVtY42f+sqmWRzWZoh3aY9+9DutYO3PtnfkT91l9q6uB9v+efWlFRUVFRUdH/pz+L+y4G9IRLzwAAAABJRU5ErkJggg=='
|
|
68
|
+
// const availableWalletsForConnect: InternalConnector[] = [{
|
|
69
|
+
// id: id,
|
|
70
|
+
// name: name,
|
|
71
|
+
// icon: logo,
|
|
72
|
+
// }]
|
|
73
|
+
// const provider = {
|
|
74
|
+
// connectedWallets: getWallet(),
|
|
75
|
+
// activeWallet: wallet,
|
|
76
|
+
// connectWallet,
|
|
77
|
+
// connectConnector,
|
|
78
|
+
// disconnectWallets: disconnectWallet,
|
|
79
|
+
// withdrawalSupportedNetworks,
|
|
80
|
+
// asSourceSupportedNetworks: withdrawalSupportedNetworks,
|
|
81
|
+
// name,
|
|
82
|
+
// id,
|
|
83
|
+
// hideFromList: true,
|
|
84
|
+
// availableWalletsForConnect
|
|
85
|
+
// }
|
|
86
|
+
// return provider
|
|
87
|
+
// }
|