@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,520 +1,560 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
}
|
|
1
|
+
// import {
|
|
2
|
+
// Adapter,
|
|
3
|
+
// AdapterState,
|
|
4
|
+
// isInBrowser,
|
|
5
|
+
// WalletReadyState,
|
|
6
|
+
// WalletSignMessageError,
|
|
7
|
+
// WalletNotFoundError,
|
|
8
|
+
// WalletDisconnectedError,
|
|
9
|
+
// WalletConnectionError,
|
|
10
|
+
// WalletSignTransactionError,
|
|
11
|
+
// WalletSwitchChainError,
|
|
12
|
+
// WalletGetNetworkError,
|
|
13
|
+
// isInMobileBrowser,
|
|
14
|
+
// NetworkType,
|
|
15
|
+
// } from '@tronweb3/tronwallet-abstract-adapter';
|
|
16
|
+
// import type {
|
|
17
|
+
// Transaction,
|
|
18
|
+
// SignedTransaction,
|
|
19
|
+
// AdapterName,
|
|
20
|
+
// BaseAdapterConfig,
|
|
21
|
+
// Network,
|
|
22
|
+
// } from '@tronweb3/tronwallet-abstract-adapter';
|
|
23
|
+
// import type {
|
|
24
|
+
// AccountsChangedEventData,
|
|
25
|
+
// NetworkChangedEventData,
|
|
26
|
+
// ReqestAccountsResponse,
|
|
27
|
+
// Tron,
|
|
28
|
+
// TronAccountsChangedCallback,
|
|
29
|
+
// TronChainChangedCallback,
|
|
30
|
+
// TronLinkMessageEvent,
|
|
31
|
+
// TronWeb,
|
|
32
|
+
// } from './types';
|
|
33
|
+
// import { openTronLink, supportTron, supportTronLink, waitTronwebReady } from './utils';
|
|
34
|
+
// export interface TronLinkWallet {
|
|
35
|
+
// ready: boolean;
|
|
36
|
+
// tronWeb: TronWeb;
|
|
37
|
+
// request(config: Record<string, unknown>): Promise<ReqestAccountsResponse | null>;
|
|
38
|
+
// }
|
|
39
|
+
// export const chainIdNetworkMap: Record<string, NetworkType> = {
|
|
40
|
+
// '0x2b6653dc': NetworkType.Mainnet,
|
|
41
|
+
// '0x94a9059e': NetworkType.Shasta,
|
|
42
|
+
// '0xcd8690dc': NetworkType.Nile,
|
|
43
|
+
// };
|
|
44
|
+
// export async function getNetworkInfoByTronWeb(tronWeb: TronWeb) {
|
|
45
|
+
// const { blockID = '' } = await tronWeb.trx.getBlockByNumber(0);
|
|
46
|
+
// const chainId = `0x${blockID.slice(-8)}`;
|
|
47
|
+
// return {
|
|
48
|
+
// networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown,
|
|
49
|
+
// chainId,
|
|
50
|
+
// fullNode: tronWeb.fullNode?.host || '',
|
|
51
|
+
// solidityNode: tronWeb.solidityNode?.host || '',
|
|
52
|
+
// eventServer: tronWeb.eventServer?.host || '',
|
|
53
|
+
// };
|
|
54
|
+
// }
|
|
55
|
+
// declare global {
|
|
56
|
+
// interface Window {
|
|
57
|
+
// tronLink?: TronLinkWallet;
|
|
58
|
+
// tronWeb?: TronWeb & { ready?: boolean };
|
|
59
|
+
// // @ts-ignore
|
|
60
|
+
// tron?: Tron;
|
|
61
|
+
// }
|
|
62
|
+
// }
|
|
63
|
+
// export interface TronLinkAdapterConfig extends BaseAdapterConfig {
|
|
64
|
+
// /**
|
|
65
|
+
// * Timeout in millisecond for checking if TronLink wallet exists.
|
|
66
|
+
// * Default is 30 * 1000ms
|
|
67
|
+
// */
|
|
68
|
+
// checkTimeout?: number;
|
|
69
|
+
// /**
|
|
70
|
+
// * Set if open TronLink app using DeepLink.
|
|
71
|
+
// * Default is true.
|
|
72
|
+
// */
|
|
73
|
+
// openTronLinkAppOnMobile?: boolean;
|
|
74
|
+
// /**
|
|
75
|
+
// * The icon of your dapp. Used when open TronLink app in mobile device browsers.
|
|
76
|
+
// */
|
|
77
|
+
// dappIcon?: string;
|
|
78
|
+
// /**
|
|
79
|
+
// * The name of your dapp. Used when open TronLink app in mobile device browsers.
|
|
80
|
+
// */
|
|
81
|
+
// dappName?: string;
|
|
82
|
+
// }
|
|
83
|
+
// export const TronLinkAdapterName = 'TronLink' as AdapterName<'TronLink'>;
|
|
84
|
+
// export class TronLinkAdapter extends Adapter {
|
|
85
|
+
// name = TronLinkAdapterName;
|
|
86
|
+
// url = 'https://www.tronlink.org/';
|
|
87
|
+
// icon =
|
|
88
|
+
// 'data:image/png;base64,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';
|
|
89
|
+
// config: Required<TronLinkAdapterConfig>;
|
|
90
|
+
// private _readyState: WalletReadyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound;
|
|
91
|
+
// private _state: AdapterState = AdapterState.Loading;
|
|
92
|
+
// private _connecting: boolean;
|
|
93
|
+
// private _wallet: TronLinkWallet | Tron | null;
|
|
94
|
+
// private _address: string | null;
|
|
95
|
+
// // https://github.com/tronprotocol/tips/blob/master/tip-1193.md
|
|
96
|
+
// private _supportNewTronProtocol = false;
|
|
97
|
+
// // record if first connect event has emitted or not
|
|
98
|
+
// constructor(config: TronLinkAdapterConfig = {}) {
|
|
99
|
+
// super();
|
|
100
|
+
// const {
|
|
101
|
+
// checkTimeout = 30 * 1000,
|
|
102
|
+
// dappIcon = '',
|
|
103
|
+
// dappName = '',
|
|
104
|
+
// openUrlWhenWalletNotFound = true,
|
|
105
|
+
// openTronLinkAppOnMobile = true,
|
|
106
|
+
// } = config;
|
|
107
|
+
// if (typeof checkTimeout !== 'number') {
|
|
108
|
+
// throw new Error('[TronLinkAdapter] config.checkTimeout should be a number');
|
|
109
|
+
// }
|
|
110
|
+
// this.config = {
|
|
111
|
+
// checkTimeout,
|
|
112
|
+
// openTronLinkAppOnMobile,
|
|
113
|
+
// openUrlWhenWalletNotFound,
|
|
114
|
+
// dappIcon,
|
|
115
|
+
// dappName,
|
|
116
|
+
// };
|
|
117
|
+
// this._connecting = false;
|
|
118
|
+
// this._wallet = null;
|
|
119
|
+
// this._address = null;
|
|
120
|
+
// if (!isInBrowser()) {
|
|
121
|
+
// this._readyState = WalletReadyState.NotFound;
|
|
122
|
+
// this.setState(AdapterState.NotFound);
|
|
123
|
+
// return;
|
|
124
|
+
// }
|
|
125
|
+
// if (supportTron() || (isInMobileBrowser() && (window.tronLink || window.tronWeb))) {
|
|
126
|
+
// this._readyState = WalletReadyState.Found;
|
|
127
|
+
// this._updateWallet();
|
|
128
|
+
// } else {
|
|
129
|
+
// this._checkWallet().then(() => {
|
|
130
|
+
// if (this.connected) {
|
|
131
|
+
// this.emit('connect', this.address || '');
|
|
132
|
+
// }
|
|
133
|
+
// });
|
|
134
|
+
// }
|
|
135
|
+
// }
|
|
136
|
+
// get address() {
|
|
137
|
+
// return this._address;
|
|
138
|
+
// }
|
|
139
|
+
// get state() {
|
|
140
|
+
// return this._state;
|
|
141
|
+
// }
|
|
142
|
+
// get readyState() {
|
|
143
|
+
// return this._readyState;
|
|
144
|
+
// }
|
|
145
|
+
// get connecting() {
|
|
146
|
+
// return this._connecting;
|
|
147
|
+
// }
|
|
148
|
+
// /**
|
|
149
|
+
// * Get network information used by TronLink.
|
|
150
|
+
// * @returns {Network} Current network information.
|
|
151
|
+
// */
|
|
152
|
+
// async network(): Promise<Network> {
|
|
153
|
+
// try {
|
|
154
|
+
// await this._checkWallet();
|
|
155
|
+
// if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError();
|
|
156
|
+
// const tronWeb = this._wallet?.tronWeb || window.tronWeb;
|
|
157
|
+
// if (!tronWeb) throw new WalletDisconnectedError();
|
|
158
|
+
// try {
|
|
159
|
+
// return await getNetworkInfoByTronWeb(tronWeb);
|
|
160
|
+
// } catch (e: any) {
|
|
161
|
+
// throw new WalletGetNetworkError(e?.message, e);
|
|
162
|
+
// }
|
|
163
|
+
// } catch (e: any) {
|
|
164
|
+
// this.emit('error', e);
|
|
165
|
+
// throw e;
|
|
166
|
+
// }
|
|
167
|
+
// }
|
|
168
|
+
// async connect(): Promise<void> {
|
|
169
|
+
// try {
|
|
170
|
+
// this.checkIfOpenTronLink();
|
|
171
|
+
// if (this.connected || this.connecting) return;
|
|
172
|
+
// await this._checkWallet();
|
|
173
|
+
// if (this.state === AdapterState.NotFound) {
|
|
174
|
+
// if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) {
|
|
175
|
+
// window.open(this.url, '_blank');
|
|
176
|
+
// }
|
|
177
|
+
// throw new WalletNotFoundError();
|
|
178
|
+
// }
|
|
179
|
+
// // lower version only support window.tronWeb, no window.tronLink
|
|
180
|
+
// if (!this._wallet) return;
|
|
181
|
+
// this._connecting = true;
|
|
182
|
+
// if (this._supportNewTronProtocol) {
|
|
183
|
+
// const wallet = this._wallet as Tron;
|
|
184
|
+
// try {
|
|
185
|
+
// const res = await wallet.request({ method: 'eth_requestAccounts' });
|
|
186
|
+
// const address = res[0];
|
|
187
|
+
// this.setAddress(address);
|
|
188
|
+
// this.setState(AdapterState.Connected);
|
|
189
|
+
// this._listenTronEvent();
|
|
190
|
+
// if (!this._wallet.tronWeb) {
|
|
191
|
+
// await waitTronwebReady(this._wallet as Tron);
|
|
192
|
+
// }
|
|
193
|
+
// } catch (error: any) {
|
|
194
|
+
// let message = error?.message || error || 'Connect TronLink wallet failed.';
|
|
195
|
+
// if (error.code === -32002) {
|
|
196
|
+
// message =
|
|
197
|
+
// 'The same DApp has already initiated a request to connect to TronLink wallet, and the pop-up window has not been closed.';
|
|
198
|
+
// }
|
|
199
|
+
// if (error.code === 4001) {
|
|
200
|
+
// message = 'The user rejected connection.';
|
|
201
|
+
// }
|
|
202
|
+
// throw new WalletConnectionError(message, error);
|
|
203
|
+
// }
|
|
204
|
+
// } else if (window.tronLink) {
|
|
205
|
+
// const wallet = this._wallet as TronLinkWallet;
|
|
206
|
+
// try {
|
|
207
|
+
// const res = await wallet.request({ method: 'tron_requestAccounts' });
|
|
208
|
+
// if (!res) {
|
|
209
|
+
// // 1. wallet is locked
|
|
210
|
+
// // 2. tronlink is first installed and there is no wallet account
|
|
211
|
+
// throw new WalletConnectionError('TronLink wallet is locked or no wallet account is avaliable.');
|
|
212
|
+
// }
|
|
213
|
+
// if (res.code === 4000) {
|
|
214
|
+
// throw new WalletConnectionError(
|
|
215
|
+
// 'The same DApp has already initiated a request to connect to TronLink wallet, and the pop-up window has not been closed.'
|
|
216
|
+
// );
|
|
217
|
+
// }
|
|
218
|
+
// if (res.code === 4001) {
|
|
219
|
+
// throw new WalletConnectionError('The user rejected connection.');
|
|
220
|
+
// }
|
|
221
|
+
// } catch (error: any) {
|
|
222
|
+
// throw new WalletConnectionError(error?.message, error);
|
|
223
|
+
// }
|
|
224
|
+
// const address = wallet.tronWeb.defaultAddress?.base58 || '';
|
|
225
|
+
// this.setAddress(address);
|
|
226
|
+
// this.setState(AdapterState.Connected);
|
|
227
|
+
// this._listenTronLinkEvent();
|
|
228
|
+
// } else if (window.tronWeb) {
|
|
229
|
+
// const wallet = this._wallet as TronLinkWallet;
|
|
230
|
+
// const address = wallet.tronWeb.defaultAddress?.base58 || '';
|
|
231
|
+
// this.setAddress(address);
|
|
232
|
+
// this.setState(AdapterState.Connected);
|
|
233
|
+
// } else {
|
|
234
|
+
// throw new WalletConnectionError('Cannot connect wallet.');
|
|
235
|
+
// }
|
|
236
|
+
// this.connected && this.emit('connect', this.address || '');
|
|
237
|
+
// } catch (error: any) {
|
|
238
|
+
// this.emit('error', error);
|
|
239
|
+
// throw error;
|
|
240
|
+
// } finally {
|
|
241
|
+
// this._connecting = false;
|
|
242
|
+
// }
|
|
243
|
+
// }
|
|
244
|
+
// async disconnect(): Promise<void> {
|
|
245
|
+
// if (this._supportNewTronProtocol) {
|
|
246
|
+
// this._stopListenTronEvent();
|
|
247
|
+
// } else {
|
|
248
|
+
// this._stopListenTronLinkEvent();
|
|
249
|
+
// }
|
|
250
|
+
// if (this.state !== AdapterState.Connected) {
|
|
251
|
+
// return;
|
|
252
|
+
// }
|
|
253
|
+
// this.setAddress(null);
|
|
254
|
+
// this.setState(AdapterState.Disconnect);
|
|
255
|
+
// this.emit('disconnect');
|
|
256
|
+
// }
|
|
257
|
+
// async signTransaction(transaction: Transaction, privateKey?: string): Promise<SignedTransaction> {
|
|
258
|
+
// try {
|
|
259
|
+
// const wallet = await this.checkAndGetWallet();
|
|
260
|
+
// try {
|
|
261
|
+
// return await wallet.tronWeb.trx.sign(transaction, privateKey);
|
|
262
|
+
// } catch (error: any) {
|
|
263
|
+
// if (error instanceof Error) {
|
|
264
|
+
// throw new WalletSignTransactionError(error.message, error);
|
|
265
|
+
// } else {
|
|
266
|
+
// throw new WalletSignTransactionError(error, new Error(error));
|
|
267
|
+
// }
|
|
268
|
+
// }
|
|
269
|
+
// } catch (error: any) {
|
|
270
|
+
// this.emit('error', error);
|
|
271
|
+
// throw error;
|
|
272
|
+
// }
|
|
273
|
+
// }
|
|
274
|
+
// async multiSign(
|
|
275
|
+
// transaction: Transaction,
|
|
276
|
+
// privateKey?: string | false,
|
|
277
|
+
// permissionId?: number
|
|
278
|
+
// ): Promise<SignedTransaction> {
|
|
279
|
+
// try {
|
|
280
|
+
// const wallet = await this.checkAndGetWallet();
|
|
281
|
+
// try {
|
|
282
|
+
// return await wallet.tronWeb.trx.multiSign(transaction, privateKey, permissionId);
|
|
283
|
+
// } catch (error: any) {
|
|
284
|
+
// if (error instanceof Error) {
|
|
285
|
+
// throw new WalletSignTransactionError(error.message, error);
|
|
286
|
+
// } else {
|
|
287
|
+
// throw new WalletSignTransactionError(error, new Error(error));
|
|
288
|
+
// }
|
|
289
|
+
// }
|
|
290
|
+
// } catch (error: any) {
|
|
291
|
+
// this.emit('error', error);
|
|
292
|
+
// throw error;
|
|
293
|
+
// }
|
|
294
|
+
// }
|
|
295
|
+
// async signMessage(message: string, privateKey?: string): Promise<string> {
|
|
296
|
+
// try {
|
|
297
|
+
// const wallet = await this.checkAndGetWallet();
|
|
298
|
+
// try {
|
|
299
|
+
// return await wallet.tronWeb.trx.signMessageV2(message, privateKey);
|
|
300
|
+
// } catch (error: any) {
|
|
301
|
+
// if (error instanceof Error) {
|
|
302
|
+
// throw new WalletSignMessageError(error.message, error);
|
|
303
|
+
// } else {
|
|
304
|
+
// throw new WalletSignMessageError(error, new Error(error));
|
|
305
|
+
// }
|
|
306
|
+
// }
|
|
307
|
+
// } catch (error: any) {
|
|
308
|
+
// this.emit('error', error);
|
|
309
|
+
// throw error;
|
|
310
|
+
// }
|
|
311
|
+
// }
|
|
312
|
+
// /**
|
|
313
|
+
// * Switch to target chain. If current chain is the same as target chain, the call will success immediately.
|
|
314
|
+
// * Available chainIds:
|
|
315
|
+
// * - Mainnet: 0x2b6653dc
|
|
316
|
+
// * - Shasta: 0x94a9059e
|
|
317
|
+
// * - Nile: 0xcd8690dc
|
|
318
|
+
// * @param chainId chainId
|
|
319
|
+
// */
|
|
320
|
+
// async switchChain(chainId: string) {
|
|
321
|
+
// try {
|
|
322
|
+
// await this._checkWallet();
|
|
323
|
+
// if (this.state === AdapterState.NotFound) {
|
|
324
|
+
// if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) {
|
|
325
|
+
// window.open(this.url, '_blank');
|
|
326
|
+
// }
|
|
327
|
+
// throw new WalletNotFoundError();
|
|
328
|
+
// }
|
|
329
|
+
// if (!this._supportNewTronProtocol) {
|
|
330
|
+
// throw new WalletSwitchChainError("Current version of TronLink doesn't support switch chain operation.");
|
|
331
|
+
// }
|
|
332
|
+
// const wallet = this._wallet as Tron;
|
|
333
|
+
// try {
|
|
334
|
+
// await wallet.request({
|
|
335
|
+
// method: 'wallet_switchEthereumChain',
|
|
336
|
+
// params: [{ chainId }],
|
|
337
|
+
// });
|
|
338
|
+
// } catch (e: any) {
|
|
339
|
+
// throw new WalletSwitchChainError(e?.message || e, e instanceof Error ? e : new Error(e));
|
|
340
|
+
// }
|
|
341
|
+
// } catch (error: any) {
|
|
342
|
+
// this.emit('error', error);
|
|
343
|
+
// throw error;
|
|
344
|
+
// }
|
|
345
|
+
// }
|
|
346
|
+
// private async checkAndGetWallet() {
|
|
347
|
+
// this.checkIfOpenTronLink();
|
|
348
|
+
// await this._checkWallet();
|
|
349
|
+
// if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError();
|
|
350
|
+
// const wallet = this._wallet;
|
|
351
|
+
// if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError();
|
|
352
|
+
// return wallet as Tron & { tronWeb: TronWeb };
|
|
353
|
+
// }
|
|
354
|
+
// private _listenTronLinkEvent() {
|
|
355
|
+
// this._stopListenTronLinkEvent();
|
|
356
|
+
// window.addEventListener('message', this._tronLinkMessageHandler);
|
|
357
|
+
// }
|
|
358
|
+
// private _stopListenTronLinkEvent() {
|
|
359
|
+
// window.removeEventListener('message', this._tronLinkMessageHandler);
|
|
360
|
+
// }
|
|
361
|
+
// private _tronLinkMessageHandler = (e: TronLinkMessageEvent) => {
|
|
362
|
+
// const message = e.data?.message;
|
|
363
|
+
// if (!message) {
|
|
364
|
+
// return;
|
|
365
|
+
// }
|
|
366
|
+
// if (message.action === 'accountsChanged') {
|
|
367
|
+
// setTimeout(() => {
|
|
368
|
+
// const preAddr = this.address || '';
|
|
369
|
+
// if ((this._wallet as TronLinkWallet)?.ready) {
|
|
370
|
+
// const address = (message.data as AccountsChangedEventData).address;
|
|
371
|
+
// this.setAddress(address);
|
|
372
|
+
// this.setState(AdapterState.Connected);
|
|
373
|
+
// } else {
|
|
374
|
+
// this.setAddress(null);
|
|
375
|
+
// this.setState(AdapterState.Disconnect);
|
|
376
|
+
// }
|
|
377
|
+
// this.emit('accountsChanged', this.address || '', preAddr);
|
|
378
|
+
// if (!preAddr && this.address) {
|
|
379
|
+
// this.emit('connect', this.address);
|
|
380
|
+
// } else if (preAddr && !this.address) {
|
|
381
|
+
// this.emit('disconnect');
|
|
382
|
+
// }
|
|
383
|
+
// }, 200);
|
|
384
|
+
// } else if (message.action === 'setNode') {
|
|
385
|
+
// this.emit('chainChanged', { chainId: (message.data as NetworkChangedEventData)?.node?.chainId || '' });
|
|
386
|
+
// } else if (message.action === 'connect') {
|
|
387
|
+
// const address = (this._wallet as TronLinkWallet).tronWeb?.defaultAddress?.base58 || '';
|
|
388
|
+
// this.setAddress(address);
|
|
389
|
+
// this.setState(AdapterState.Connected);
|
|
390
|
+
// this.emit('connect', address);
|
|
391
|
+
// } else if (message.action === 'disconnect') {
|
|
392
|
+
// this.setAddress(null);
|
|
393
|
+
// this.setState(AdapterState.Disconnect);
|
|
394
|
+
// this.emit('disconnect');
|
|
395
|
+
// }
|
|
396
|
+
// };
|
|
397
|
+
// private checkIfOpenTronLink() {
|
|
398
|
+
// const { dappName = '', dappIcon = '' } = this.config;
|
|
399
|
+
// if (this.config.openTronLinkAppOnMobile === false) {
|
|
400
|
+
// return;
|
|
401
|
+
// }
|
|
402
|
+
// if (openTronLink({ dappIcon, dappName })) {
|
|
403
|
+
// throw new WalletNotFoundError();
|
|
404
|
+
// }
|
|
405
|
+
// }
|
|
406
|
+
// // following code is for TIP-1193
|
|
407
|
+
// private _listenTronEvent() {
|
|
408
|
+
// this._stopListenTronEvent();
|
|
409
|
+
// this._stopListenTronLinkEvent();
|
|
410
|
+
// const wallet = this._wallet as Tron;
|
|
411
|
+
// wallet.on('chainChanged', this._onChainChanged);
|
|
412
|
+
// wallet.on('accountsChanged', this._onAccountsChanged);
|
|
413
|
+
// }
|
|
414
|
+
// private _stopListenTronEvent() {
|
|
415
|
+
// const wallet = this._wallet as Tron;
|
|
416
|
+
// wallet.removeListener('chainChanged', this._onChainChanged);
|
|
417
|
+
// wallet.removeListener('accountsChanged', this._onAccountsChanged);
|
|
418
|
+
// }
|
|
419
|
+
// private _onChainChanged: TronChainChangedCallback = (data) => {
|
|
420
|
+
// this.emit('chainChanged', data);
|
|
421
|
+
// };
|
|
422
|
+
// private _onAccountsChanged: TronAccountsChangedCallback = () => {
|
|
423
|
+
// const preAddr = this.address || '';
|
|
424
|
+
// const curAddr = (this._wallet?.tronWeb && this._wallet?.tronWeb.defaultAddress?.base58) || '';
|
|
425
|
+
// if (!curAddr) {
|
|
426
|
+
// // change to a new address and if it's disconnected, data will be empty
|
|
427
|
+
// // tronlink will emit accountsChanged many times, only process when connected
|
|
428
|
+
// this.setAddress(null);
|
|
429
|
+
// this.setState(AdapterState.Disconnect);
|
|
430
|
+
// } else {
|
|
431
|
+
// const address = curAddr as string;
|
|
432
|
+
// this.setAddress(address);
|
|
433
|
+
// this.setState(AdapterState.Connected);
|
|
434
|
+
// }
|
|
435
|
+
// this.emit('accountsChanged', this.address || '', preAddr);
|
|
436
|
+
// if (!preAddr && this.address) {
|
|
437
|
+
// this.emit('connect', this.address);
|
|
438
|
+
// } else if (preAddr && !this.address) {
|
|
439
|
+
// this.emit('disconnect');
|
|
440
|
+
// }
|
|
441
|
+
// };
|
|
442
|
+
// private _checkPromise: Promise<boolean> | null = null;
|
|
443
|
+
// /**
|
|
444
|
+
// * check if wallet exists by interval, the promise only resolve when wallet detected or timeout
|
|
445
|
+
// * @returns if wallet exists
|
|
446
|
+
// */
|
|
447
|
+
// private _checkWallet(): Promise<boolean> {
|
|
448
|
+
// if (this.readyState === WalletReadyState.Found) {
|
|
449
|
+
// return Promise.resolve(true);
|
|
450
|
+
// }
|
|
451
|
+
// if (this._checkPromise) {
|
|
452
|
+
// return this._checkPromise;
|
|
453
|
+
// }
|
|
454
|
+
// const interval = 100;
|
|
455
|
+
// const checkTronTimes = Math.floor(2000 / interval);
|
|
456
|
+
// const maxTimes = Math.floor(this.config.checkTimeout / interval);
|
|
457
|
+
// let times = 0,
|
|
458
|
+
// timer: ReturnType<typeof setInterval>;
|
|
459
|
+
// this._checkPromise = new Promise((resolve) => {
|
|
460
|
+
// const check = () => {
|
|
461
|
+
// times++;
|
|
462
|
+
// const isSupport = times < checkTronTimes && !isInMobileBrowser() ? supportTron() : supportTronLink();
|
|
463
|
+
// if (isSupport || times > maxTimes) {
|
|
464
|
+
// timer && clearInterval(timer);
|
|
465
|
+
// this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound;
|
|
466
|
+
// this._updateWallet();
|
|
467
|
+
// this.emit('readyStateChanged', this.readyState);
|
|
468
|
+
// resolve(isSupport);
|
|
469
|
+
// }
|
|
470
|
+
// };
|
|
471
|
+
// timer = setInterval(check, interval);
|
|
472
|
+
// check();
|
|
473
|
+
// });
|
|
474
|
+
// return this._checkPromise;
|
|
475
|
+
// }
|
|
476
|
+
// private _updateWallet = () => {
|
|
477
|
+
// let state = this.state;
|
|
478
|
+
// let address = this.address;
|
|
479
|
+
// if (isInMobileBrowser()) {
|
|
480
|
+
// if (window.tronLink) {
|
|
481
|
+
// this._wallet = window.tronLink;
|
|
482
|
+
// } else {
|
|
483
|
+
// this._wallet = {
|
|
484
|
+
// ready: !!window.tronWeb?.defaultAddress,
|
|
485
|
+
// tronWeb: window.tronWeb,
|
|
486
|
+
// request: () => Promise.resolve(true) as any,
|
|
487
|
+
// } as TronLinkWallet;
|
|
488
|
+
// }
|
|
489
|
+
// address = this._wallet.tronWeb?.defaultAddress?.base58 || null;
|
|
490
|
+
// state = address ? AdapterState.Connected : AdapterState.Disconnect;
|
|
491
|
+
// } else if (window.tron && window.tron.isTronLink) {
|
|
492
|
+
// this._supportNewTronProtocol = true;
|
|
493
|
+
// this._wallet = window.tron;
|
|
494
|
+
// this._listenTronEvent();
|
|
495
|
+
// if (state === AdapterState.Connected) {
|
|
496
|
+
// address = (this._wallet.tronWeb && this._wallet.tronWeb?.defaultAddress?.base58) || null;
|
|
497
|
+
// }
|
|
498
|
+
// state = address ? AdapterState.Connected : AdapterState.Disconnect;
|
|
499
|
+
// } else if (window.tronLink) {
|
|
500
|
+
// this._wallet = window.tronLink;
|
|
501
|
+
// this._listenTronLinkEvent();
|
|
502
|
+
// if (state === AdapterState.Connected) {
|
|
503
|
+
// address = this._wallet.tronWeb.defaultAddress?.base58 || null;
|
|
504
|
+
// }
|
|
505
|
+
// state = this._wallet.ready ? AdapterState.Connected : AdapterState.Disconnect;
|
|
506
|
+
// } else if (window.tronWeb) {
|
|
507
|
+
// // fake tronLink
|
|
508
|
+
// this._wallet = {
|
|
509
|
+
// ready: window.tronWeb.ready,
|
|
510
|
+
// tronWeb: window.tronWeb,
|
|
511
|
+
// request: () => Promise.resolve(true) as any,
|
|
512
|
+
// } as TronLinkWallet;
|
|
513
|
+
// address = this._wallet.tronWeb.defaultAddress?.base58 || null;
|
|
514
|
+
// state = this._wallet.ready ? AdapterState.Connected : AdapterState.Disconnect;
|
|
515
|
+
// } else {
|
|
516
|
+
// // no tronlink support
|
|
517
|
+
// this._wallet = null;
|
|
518
|
+
// address = null;
|
|
519
|
+
// state = AdapterState.NotFound;
|
|
520
|
+
// }
|
|
521
|
+
// // In TronLink App, account should be connected
|
|
522
|
+
// if (isInMobileBrowser() && state === AdapterState.Disconnect) {
|
|
523
|
+
// this.checkForWalletReadyForApp();
|
|
524
|
+
// }
|
|
525
|
+
// this.setAddress(address);
|
|
526
|
+
// this.setState(state);
|
|
527
|
+
// };
|
|
528
|
+
// private checkReadyInterval: ReturnType<typeof setInterval> | null = null;
|
|
529
|
+
// private checkForWalletReadyForApp() {
|
|
530
|
+
// if (this.checkReadyInterval) {
|
|
531
|
+
// return;
|
|
532
|
+
// }
|
|
533
|
+
// let times = 0;
|
|
534
|
+
// const maxTimes = Math.floor(this.config.checkTimeout / 200);
|
|
535
|
+
// const check = () => {
|
|
536
|
+
// if (window.tronLink ? window.tronLink.tronWeb?.defaultAddress : window.tronWeb?.defaultAddress) {
|
|
537
|
+
// this.checkReadyInterval && clearInterval(this.checkReadyInterval);
|
|
538
|
+
// this.checkReadyInterval = null;
|
|
539
|
+
// this._updateWallet();
|
|
540
|
+
// this.emit('connect', this.address || '');
|
|
541
|
+
// } else if (times > maxTimes) {
|
|
542
|
+
// this.checkReadyInterval && clearInterval(this.checkReadyInterval);
|
|
543
|
+
// this.checkReadyInterval = null;
|
|
544
|
+
// } else {
|
|
545
|
+
// times++;
|
|
546
|
+
// }
|
|
547
|
+
// };
|
|
548
|
+
// this.checkReadyInterval = setInterval(check, 200);
|
|
549
|
+
// }
|
|
550
|
+
// private setAddress(address: string | null) {
|
|
551
|
+
// this._address = address;
|
|
552
|
+
// }
|
|
553
|
+
// private setState(state: AdapterState) {
|
|
554
|
+
// const preState = this.state;
|
|
555
|
+
// if (state !== preState) {
|
|
556
|
+
// this._state = state;
|
|
557
|
+
// this.emit('stateChanged', state);
|
|
558
|
+
// }
|
|
559
|
+
// }
|
|
560
|
+
// }
|