@dynamic-labs/multi-wallet 0.17.0-RC.0 → 0.17.0-RC.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +137 -0
- package/package.json +11 -14
- package/src/index.cjs +2 -66
- package/src/index.d.ts +1 -16
- package/src/index.js +2 -21
- package/src/multi-wallet.cjs +46 -159
- package/src/multi-wallet.d.ts +0 -3
- package/src/multi-wallet.js +44 -156
- package/src/types.d.ts +9 -49
- package/src/utils/convertors.cjs +0 -7
- package/src/utils/convertors.d.ts +0 -1
- package/src/utils/convertors.js +1 -7
- package/src/utils/getApiProviders.cjs +15 -0
- package/src/utils/getApiProviders.d.ts +10 -0
- package/src/utils/getApiProviders.js +11 -0
- package/src/utils/message.cjs +4 -5
- package/src/utils/message.d.ts +2 -2
- package/src/utils/message.js +2 -3
- package/src/wallets/constants.cjs +0 -2
- package/src/wallets/constants.js +1 -2
- package/src/wallets/cosmos/{keplrWalletConnect.cjs → KeplrWalletConnect.cjs} +27 -43
- package/src/wallets/cosmos/{keplrWalletConnect.d.ts → KeplrWalletConnect.d.ts} +16 -20
- package/src/wallets/cosmos/{keplrWalletConnect.js → KeplrWalletConnect.js} +20 -36
- package/src/wallets/cosmos/{keplr.cjs → KeplrWalletConnector.cjs} +24 -21
- package/src/wallets/cosmos/{keplr.d.ts → KeplrWalletConnector.d.ts} +14 -18
- package/src/wallets/cosmos/{keplr.js → KeplrWalletConnector.js} +23 -20
- package/src/wallets/cosmos/index.d.ts +1 -1
- package/src/wallets/{clients/walletConnect/walletConnect.cjs → cosmos/wcClient.lib.cjs} +38 -101
- package/src/wallets/{clients/walletConnect/walletConnect.d.ts → cosmos/wcClient.lib.d.ts} +8 -10
- package/src/wallets/{clients/walletConnect/walletConnect.js → cosmos/wcClient.lib.js} +36 -97
- package/src/wallets/flow/{flow-provider.cjs → FlowWalletConnector.cjs} +13 -41
- package/src/wallets/flow/{flow-provider.d.ts → FlowWalletConnector.d.ts} +4 -11
- package/src/wallets/flow/{flow-provider.js → FlowWalletConnector.js} +7 -35
- package/src/wallets/flow/blocto.cjs +2 -10
- package/src/wallets/flow/blocto.d.ts +2 -8
- package/src/wallets/flow/blocto.js +2 -10
- package/src/wallets/flow/dapper.cjs +2 -10
- package/src/wallets/flow/dapper.d.ts +2 -8
- package/src/wallets/flow/dapper.js +2 -10
- package/src/wallets/flow/lilico.cjs +4 -13
- package/src/wallets/flow/lilico.d.ts +2 -9
- package/src/wallets/flow/lilico.js +3 -12
- package/src/wallets/starknet/argentx.cjs +2 -2
- package/src/wallets/starknet/argentx.d.ts +1 -1
- package/src/wallets/starknet/argentx.js +2 -2
- package/src/wallets/starknet/braavos.cjs +4 -4
- package/src/wallets/starknet/braavos.d.ts +1 -1
- package/src/wallets/starknet/braavos.js +3 -3
- package/src/wallets/starknet/{starknetProvider.cjs → starknetWalletConnector.cjs} +9 -40
- package/src/wallets/starknet/{starknetProvider.d.ts → starknetWalletConnector.d.ts} +3 -14
- package/src/wallets/starknet/{starknetProvider.js → starknetWalletConnector.js} +5 -36
- package/src/wallets/window.d.ts +0 -77
- package/src/errors.cjs +0 -65
- package/src/errors.d.ts +0 -30
- package/src/errors.js +0 -53
- package/src/rpcProviders.cjs +0 -76
- package/src/rpcProviders.d.ts +0 -5
- package/src/rpcProviders.js +0 -69
- package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
- package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
- package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
- package/src/utils/CancellablePromise/index.d.ts +0 -1
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +0 -54
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +0 -3
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +0 -50
- package/src/utils/assignConfirmationScreenToProvider/index.d.ts +0 -1
- package/src/utils/encoding.cjs +0 -18
- package/src/utils/encoding.d.ts +0 -4
- package/src/utils/encoding.js +0 -12
- package/src/utils/extractNonce.cjs +0 -13
- package/src/utils/extractNonce.d.ts +0 -1
- package/src/utils/extractNonce.js +0 -9
- package/src/utils/getChainInfo/getChainInfo.cjs +0 -59
- package/src/utils/getChainInfo/getChainInfo.d.ts +0 -2
- package/src/utils/getChainInfo/getChainInfo.js +0 -55
- package/src/utils/getChainInfo/index.d.ts +0 -1
- package/src/utils/getWalletConnectorByName.cjs +0 -19
- package/src/utils/getWalletConnectorByName.d.ts +0 -2
- package/src/utils/getWalletConnectorByName.js +0 -15
- package/src/utils/isEmailOTPWalletConnector/index.d.ts +0 -1
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.cjs +0 -7
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +0 -2
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.js +0 -3
- package/src/utils/isEmailWalletConnector/index.d.ts +0 -1
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.cjs +0 -7
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +0 -2
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.js +0 -3
- package/src/utils/isFunction/index.d.ts +0 -1
- package/src/utils/isFunction/isFunction.cjs +0 -8
- package/src/utils/isFunction/isFunction.d.ts +0 -1
- package/src/utils/isFunction/isFunction.js +0 -4
- package/src/utils/isMobile.cjs +0 -54
- package/src/utils/isMobile.d.ts +0 -13
- package/src/utils/isMobile.js +0 -46
- package/src/utils/isSameAddress/index.d.ts +0 -1
- package/src/utils/isSameAddress/isSameAddress.cjs +0 -9
- package/src/utils/isSameAddress/isSameAddress.d.ts +0 -1
- package/src/utils/isSameAddress/isSameAddress.js +0 -5
- package/src/utils/isSameAddress/utils/index.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/index.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.cjs +0 -17
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.js +0 -13
- package/src/utils/isSocialWalletConnector/index.d.ts +0 -1
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.cjs +0 -7
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.d.ts +0 -2
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.js +0 -3
- package/src/utils/isUnsupportedProviderError/index.d.ts +0 -1
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +0 -13
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +0 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +0 -9
- package/src/utils/localStorageAsync.cjs +0 -28
- package/src/utils/localStorageAsync.d.ts +0 -3
- package/src/utils/localStorageAsync.js +0 -22
- package/src/utils/logger.cjs +0 -9
- package/src/utils/logger.d.ts +0 -2
- package/src/utils/logger.js +0 -5
- package/src/utils/normalizeWalletName/index.d.ts +0 -1
- package/src/utils/normalizeWalletName/normalizeWalletName.cjs +0 -7
- package/src/utils/normalizeWalletName/normalizeWalletName.d.ts +0 -1
- package/src/utils/normalizeWalletName/normalizeWalletName.js +0 -3
- package/src/utils/shouldLowercaseAddress.cjs +0 -11
- package/src/utils/shouldLowercaseAddress.d.ts +0 -1
- package/src/utils/shouldLowercaseAddress.js +0 -7
- package/src/utils/walletConnect.cjs +0 -30
- package/src/utils/walletConnect.d.ts +0 -4
- package/src/utils/walletConnect.js +0 -26
- package/src/wallets/ProviderLookup.cjs +0 -18
- package/src/wallets/ProviderLookup.d.ts +0 -4
- package/src/wallets/ProviderLookup.js +0 -14
- package/src/wallets/algorand/myalgo.cjs +0 -187
- package/src/wallets/algorand/myalgo.d.ts +0 -36
- package/src/wallets/algorand/myalgo.js +0 -181
- package/src/wallets/algorand/myalgoSigner.cjs +0 -24
- package/src/wallets/algorand/myalgoSigner.d.ts +0 -21
- package/src/wallets/algorand/myalgoSigner.js +0 -20
- package/src/wallets/clients/coinbase/coinbase.cjs +0 -77
- package/src/wallets/clients/coinbase/coinbase.d.ts +0 -6
- package/src/wallets/clients/coinbase/coinbase.js +0 -66
- package/src/wallets/clients/coinbase/index.d.ts +0 -2
- package/src/wallets/clients/coinbase/types.d.ts +0 -14
- package/src/wallets/clients/walletConnect/index.d.ts +0 -1
- package/src/wallets/clients/walletConnect/types.d.ts +0 -4
- package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
- package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
- package/src/wallets/cosmos/getKeplrConnector.js +0 -14
- package/src/wallets/ethereum/BloctoEvm.cjs +0 -140
- package/src/wallets/ethereum/BloctoEvm.d.ts +0 -34
- package/src/wallets/ethereum/BloctoEvm.js +0 -134
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -58
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +0 -12
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -54
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +0 -62
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +0 -11
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +0 -58
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +0 -103
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +0 -34
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +0 -99
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/index.d.ts +0 -2
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -56
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.d.ts +0 -12
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -52
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +0 -182
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +0 -60
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +0 -178
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/index.d.ts +0 -2
- package/src/wallets/ethereum/MagicConnector/index.d.ts +0 -5
- package/src/wallets/ethereum/coinbase.cjs +0 -81
- package/src/wallets/ethereum/coinbase.d.ts +0 -31
- package/src/wallets/ethereum/coinbase.js +0 -79
- package/src/wallets/ethereum/ethProvider.cjs +0 -171
- package/src/wallets/ethereum/ethProvider.d.ts +0 -35
- package/src/wallets/ethereum/ethProvider.js +0 -167
- package/src/wallets/ethereum/ethProviderHelper.cjs +0 -190
- package/src/wallets/ethereum/ethProviderHelper.d.ts +0 -40
- package/src/wallets/ethereum/ethProviderHelper.js +0 -186
- package/src/wallets/ethereum/evm-network.cjs +0 -20
- package/src/wallets/ethereum/evm-network.d.ts +0 -22
- package/src/wallets/ethereum/evm-network.js +0 -16
- package/src/wallets/ethereum/fortmatic.cjs +0 -98
- package/src/wallets/ethereum/fortmatic.d.ts +0 -34
- package/src/wallets/ethereum/fortmatic.js +0 -92
- package/src/wallets/ethereum/injected/BloctoInjected.cjs +0 -13
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +0 -6
- package/src/wallets/ethereum/injected/BloctoInjected.js +0 -11
- package/src/wallets/ethereum/injected/BraveEvm.cjs +0 -13
- package/src/wallets/ethereum/injected/BraveEvm.d.ts +0 -6
- package/src/wallets/ethereum/injected/BraveEvm.js +0 -11
- package/src/wallets/ethereum/injected/Dawn.cjs +0 -13
- package/src/wallets/ethereum/injected/Dawn.d.ts +0 -6
- package/src/wallets/ethereum/injected/Dawn.js +0 -11
- package/src/wallets/ethereum/injected/ExodusEvm.cjs +0 -13
- package/src/wallets/ethereum/injected/ExodusEvm.d.ts +0 -6
- package/src/wallets/ethereum/injected/ExodusEvm.js +0 -11
- package/src/wallets/ethereum/injected/Frame.cjs +0 -13
- package/src/wallets/ethereum/injected/Frame.d.ts +0 -6
- package/src/wallets/ethereum/injected/Frame.js +0 -11
- package/src/wallets/ethereum/injected/GameStop.cjs +0 -13
- package/src/wallets/ethereum/injected/GameStop.d.ts +0 -6
- package/src/wallets/ethereum/injected/GameStop.js +0 -11
- package/src/wallets/ethereum/injected/Opera.cjs +0 -13
- package/src/wallets/ethereum/injected/Opera.d.ts +0 -6
- package/src/wallets/ethereum/injected/Opera.js +0 -11
- package/src/wallets/ethereum/injected/PhantomEvm.cjs +0 -37
- package/src/wallets/ethereum/injected/PhantomEvm.d.ts +0 -7
- package/src/wallets/ethereum/injected/PhantomEvm.js +0 -35
- package/src/wallets/ethereum/injected/Trust.cjs +0 -13
- package/src/wallets/ethereum/injected/Trust.d.ts +0 -6
- package/src/wallets/ethereum/injected/Trust.js +0 -11
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +0 -13
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +0 -6
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +0 -11
- package/src/wallets/ethereum/injected/Zerion.cjs +0 -13
- package/src/wallets/ethereum/injected/Zerion.d.ts +0 -6
- package/src/wallets/ethereum/injected/Zerion.js +0 -11
- package/src/wallets/ethereum/meta-mask.cjs +0 -70
- package/src/wallets/ethereum/meta-mask.d.ts +0 -30
- package/src/wallets/ethereum/meta-mask.js +0 -68
- package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
- package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -10
- package/src/wallets/getMobileOrInjectedWallet.js +0 -22
- package/src/wallets/getWalletConnectConnector.cjs +0 -18
- package/src/wallets/getWalletConnectConnector.d.ts +0 -7
- package/src/wallets/getWalletConnectConnector.js +0 -14
- package/src/wallets/initializeWalletProviders.cjs +0 -14
- package/src/wallets/initializeWalletProviders.d.ts +0 -6
- package/src/wallets/initializeWalletProviders.js +0 -10
- package/src/wallets/solana/CoinbaseSolana.cjs +0 -77
- package/src/wallets/solana/CoinbaseSolana.d.ts +0 -26
- package/src/wallets/solana/CoinbaseSolana.js +0 -75
- package/src/wallets/solana/glow.cjs +0 -74
- package/src/wallets/solana/glow.d.ts +0 -25
- package/src/wallets/solana/glow.js +0 -72
- package/src/wallets/solana/injected/BraveSol.cjs +0 -18
- package/src/wallets/solana/injected/BraveSol.d.ts +0 -6
- package/src/wallets/solana/injected/BraveSol.js +0 -16
- package/src/wallets/solana/injected/ExodusSol.cjs +0 -12
- package/src/wallets/solana/injected/ExodusSol.d.ts +0 -5
- package/src/wallets/solana/injected/ExodusSol.js +0 -10
- package/src/wallets/solana/phantom-ledger.cjs +0 -71
- package/src/wallets/solana/phantom-ledger.d.ts +0 -16
- package/src/wallets/solana/phantom-ledger.js +0 -65
- package/src/wallets/solana/phantom.cjs +0 -97
- package/src/wallets/solana/phantom.d.ts +0 -26
- package/src/wallets/solana/phantom.js +0 -95
- package/src/wallets/solana/slope.cjs +0 -125
- package/src/wallets/solana/slope.d.ts +0 -39
- package/src/wallets/solana/slope.js +0 -123
- package/src/wallets/solana/solProvider.cjs +0 -62
- package/src/wallets/solana/solProvider.d.ts +0 -18
- package/src/wallets/solana/solProvider.js +0 -58
- package/src/wallets/solana/solProviderHelper.cjs +0 -164
- package/src/wallets/solana/solProviderHelper.d.ts +0 -29
- package/src/wallets/solana/solProviderHelper.js +0 -160
- package/src/wallets/solana/solflare.cjs +0 -94
- package/src/wallets/solana/solflare.d.ts +0 -26
- package/src/wallets/solana/solflare.js +0 -92
- package/src/wallets/walletConnect/index.d.ts +0 -2
- package/src/wallets/walletConnect/walletConnect.cjs +0 -147
- package/src/wallets/walletConnect/walletConnect.d.ts +0 -39
- package/src/wallets/walletConnect/walletConnect.js +0 -141
- package/src/wallets/walletConnect/walletConnectV2.cjs +0 -282
- package/src/wallets/walletConnect/walletConnectV2.d.ts +0 -40
- package/src/wallets/walletConnect/walletConnectV2.js +0 -273
- package/src/wallets/walletConnect/zerion.d.ts +0 -8
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const ProviderLookup = (installedProviders, providerFlags) => {
|
|
2
|
-
if (providerFlags.length === 0) {
|
|
3
|
-
return undefined;
|
|
4
|
-
}
|
|
5
|
-
return installedProviders.find((provider) => {
|
|
6
|
-
const providerFlagMatch = providerFlags.every((condition) => {
|
|
7
|
-
const flagValue = (provider === null || provider === void 0 ? void 0 : provider[condition.flag]) || false;
|
|
8
|
-
return flagValue === condition.value;
|
|
9
|
-
});
|
|
10
|
-
return providerFlagMatch === true;
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export { ProviderLookup };
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var MyAlgoConnect = require('@randlabs/myalgo-connect');
|
|
5
|
-
var errors = require('../../errors.cjs');
|
|
6
|
-
var localStorageAsync = require('../../utils/localStorageAsync.cjs');
|
|
7
|
-
var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
|
|
8
|
-
var myalgoSigner = require('./myalgoSigner.cjs');
|
|
9
|
-
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var MyAlgoConnect__default = /*#__PURE__*/_interopDefaultLegacy(MyAlgoConnect);
|
|
13
|
-
|
|
14
|
-
const HTTP_STATUS_TOO_MANY_REQUESTS = 429;
|
|
15
|
-
const HTTP_STATUS_NOT_FOUND = 404;
|
|
16
|
-
class MyAlgoLocalStorageCache {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.SESSION_STORAGE_KEY = 'algorand_myalgo_currentAddress';
|
|
19
|
-
this.LAST_BALANCE_KEY = 'algorand_myalgo_lastBalance';
|
|
20
|
-
}
|
|
21
|
-
getCurrentAddress() {
|
|
22
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const addr = yield localStorageAsync.getItemAsync(this.SESSION_STORAGE_KEY);
|
|
24
|
-
if (!addr) {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
return addr;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
setCurrentAddress(addr) {
|
|
31
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
localStorageAsync.setItemAsync(this.SESSION_STORAGE_KEY, addr);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
clearCurrentAddress() {
|
|
36
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
localStorageAsync.removeItemAsync(this.SESSION_STORAGE_KEY);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
getLastBalance() {
|
|
41
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
const balance = yield localStorageAsync.getItemAsync(this.LAST_BALANCE_KEY);
|
|
43
|
-
if (!balance) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
return balance;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
setLastBalance(balance) {
|
|
50
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
localStorageAsync.setItemAsync(this.LAST_BALANCE_KEY, balance);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
class MyAlgo {
|
|
56
|
-
constructor() {
|
|
57
|
-
this.name = 'MyAlgo';
|
|
58
|
-
this.canConnectViaSocial = false;
|
|
59
|
-
this.canConnectViaQrCode = false;
|
|
60
|
-
this.canConnectViaCustodialService = true;
|
|
61
|
-
this.isWalletConnect = false;
|
|
62
|
-
this.connectedChain = 'ALGO';
|
|
63
|
-
this.supportedChains = ['ALGO'];
|
|
64
|
-
this.cache = new MyAlgoLocalStorageCache();
|
|
65
|
-
}
|
|
66
|
-
get key() {
|
|
67
|
-
return normalizeWalletName.normalizeWalletName(this.name);
|
|
68
|
-
}
|
|
69
|
-
getClient() {
|
|
70
|
-
if (!this.client) {
|
|
71
|
-
this.client = new MyAlgoConnect__default["default"]();
|
|
72
|
-
}
|
|
73
|
-
return this.client;
|
|
74
|
-
}
|
|
75
|
-
getNetwork() {
|
|
76
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
return undefined;
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
getDeepLink() {
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
83
|
-
fetchPublicAddress() {
|
|
84
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
const currentAddress = yield this.cache.getCurrentAddress();
|
|
86
|
-
if (currentAddress) {
|
|
87
|
-
return currentAddress;
|
|
88
|
-
}
|
|
89
|
-
const accounts = yield this.getClient().connect({
|
|
90
|
-
shouldSelectOneAccount: true,
|
|
91
|
-
});
|
|
92
|
-
if (accounts.length > 0) {
|
|
93
|
-
const [{ address }] = accounts;
|
|
94
|
-
yield this.cache.setCurrentAddress(address);
|
|
95
|
-
return address;
|
|
96
|
-
}
|
|
97
|
-
return '';
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
connect() {
|
|
101
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
yield this.fetchPublicAddress();
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
getSigner() {
|
|
106
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
const address = yield this.fetchPublicAddress();
|
|
108
|
-
if (!address)
|
|
109
|
-
throw new errors.DynamicError('MyAlgo Wallet Connector - Not connected!');
|
|
110
|
-
return new myalgoSigner.MyAlgoSigner(address, this.getClient());
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
signMessage(messageToSign) {
|
|
114
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
115
|
-
const signer = yield this.getSigner();
|
|
116
|
-
const signature = yield signer.signBytes(Buffer.from(messageToSign));
|
|
117
|
-
return Buffer.from(signature).toString('hex');
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
proveOwnership(messageToSign) {
|
|
121
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
122
|
-
return this.signMessage(messageToSign);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
getBalance() {
|
|
126
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
127
|
-
const address = yield this.fetchPublicAddress();
|
|
128
|
-
if (!address)
|
|
129
|
-
throw new errors.DynamicError('getBalance - Not connected!');
|
|
130
|
-
const response = yield fetch(`https://indexer.algoexplorerapi.io/v2/accounts/${address}`);
|
|
131
|
-
if (!response.ok) {
|
|
132
|
-
// if the request fails due to rate limits, return cached value
|
|
133
|
-
if (response.status === HTTP_STATUS_TOO_MANY_REQUESTS) {
|
|
134
|
-
return this.cache.getLastBalance();
|
|
135
|
-
}
|
|
136
|
-
// new accounts not yet indexed will return a 404
|
|
137
|
-
if (response.status === HTTP_STATUS_NOT_FOUND) {
|
|
138
|
-
return '0';
|
|
139
|
-
}
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
const accountInfo = yield response.json();
|
|
143
|
-
if (!accountInfo.account) {
|
|
144
|
-
return undefined;
|
|
145
|
-
}
|
|
146
|
-
const balance = accountInfo.account.amount.toString();
|
|
147
|
-
yield this.cache.setLastBalance(balance.toString());
|
|
148
|
-
return balance.toString();
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
endSession() {
|
|
152
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
yield this.cache.clearCurrentAddress();
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
isInstalledOnBrowser() {
|
|
157
|
-
return false;
|
|
158
|
-
}
|
|
159
|
-
supportsNetworkSwitching() {
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
switchNetwork() {
|
|
163
|
-
throw new errors.DynamicError('switchNetwork - Not supported');
|
|
164
|
-
}
|
|
165
|
-
getWeb3Provider() {
|
|
166
|
-
return undefined;
|
|
167
|
-
}
|
|
168
|
-
getRpcProvider() {
|
|
169
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
170
|
-
return;
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
setupEventListeners() {
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
teardownEventListeners() {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
getConnectedAccounts() {
|
|
180
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
181
|
-
const currentAddress = yield this.cache.getCurrentAddress();
|
|
182
|
-
return currentAddress ? [currentAddress] : [];
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
module.exports = MyAlgo;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Connection } from '@solana/web3.js';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
import { IMyAlgoSigner } from './myalgoSigner';
|
|
5
|
-
declare class MyAlgo implements WalletConnector {
|
|
6
|
-
private client?;
|
|
7
|
-
private cache;
|
|
8
|
-
name: string;
|
|
9
|
-
canConnectViaSocial: boolean;
|
|
10
|
-
canConnectViaQrCode: boolean;
|
|
11
|
-
canConnectViaCustodialService: boolean;
|
|
12
|
-
isWalletConnect: boolean;
|
|
13
|
-
connectedChain: Chain;
|
|
14
|
-
supportedChains: Chain[];
|
|
15
|
-
constructor();
|
|
16
|
-
get key(): string;
|
|
17
|
-
private getClient;
|
|
18
|
-
getNetwork(): Promise<number | undefined>;
|
|
19
|
-
getDeepLink(): string | undefined;
|
|
20
|
-
fetchPublicAddress(): Promise<string | undefined>;
|
|
21
|
-
connect(): Promise<void>;
|
|
22
|
-
getSigner(): Promise<IMyAlgoSigner>;
|
|
23
|
-
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
24
|
-
proveOwnership(messageToSign: string): Promise<string | undefined>;
|
|
25
|
-
getBalance(): Promise<string | undefined>;
|
|
26
|
-
endSession(): Promise<void>;
|
|
27
|
-
isInstalledOnBrowser(): boolean;
|
|
28
|
-
supportsNetworkSwitching(): boolean;
|
|
29
|
-
switchNetwork(): Promise<void>;
|
|
30
|
-
getWeb3Provider(): void | ethers.providers.Web3Provider | Connection | undefined;
|
|
31
|
-
getRpcProvider(): Promise<void>;
|
|
32
|
-
setupEventListeners(): void;
|
|
33
|
-
teardownEventListeners(): void;
|
|
34
|
-
getConnectedAccounts(): Promise<string[]>;
|
|
35
|
-
}
|
|
36
|
-
export default MyAlgo;
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import MyAlgoConnect from '@randlabs/myalgo-connect';
|
|
3
|
-
import { DynamicError } from '../../errors.js';
|
|
4
|
-
import { getItemAsync, setItemAsync, removeItemAsync } from '../../utils/localStorageAsync.js';
|
|
5
|
-
import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
|
|
6
|
-
import { MyAlgoSigner } from './myalgoSigner.js';
|
|
7
|
-
|
|
8
|
-
const HTTP_STATUS_TOO_MANY_REQUESTS = 429;
|
|
9
|
-
const HTTP_STATUS_NOT_FOUND = 404;
|
|
10
|
-
class MyAlgoLocalStorageCache {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.SESSION_STORAGE_KEY = 'algorand_myalgo_currentAddress';
|
|
13
|
-
this.LAST_BALANCE_KEY = 'algorand_myalgo_lastBalance';
|
|
14
|
-
}
|
|
15
|
-
getCurrentAddress() {
|
|
16
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const addr = yield getItemAsync(this.SESSION_STORAGE_KEY);
|
|
18
|
-
if (!addr) {
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
return addr;
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
setCurrentAddress(addr) {
|
|
25
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
setItemAsync(this.SESSION_STORAGE_KEY, addr);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
clearCurrentAddress() {
|
|
30
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
removeItemAsync(this.SESSION_STORAGE_KEY);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
getLastBalance() {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const balance = yield getItemAsync(this.LAST_BALANCE_KEY);
|
|
37
|
-
if (!balance) {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
return balance;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
setLastBalance(balance) {
|
|
44
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
setItemAsync(this.LAST_BALANCE_KEY, balance);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
class MyAlgo {
|
|
50
|
-
constructor() {
|
|
51
|
-
this.name = 'MyAlgo';
|
|
52
|
-
this.canConnectViaSocial = false;
|
|
53
|
-
this.canConnectViaQrCode = false;
|
|
54
|
-
this.canConnectViaCustodialService = true;
|
|
55
|
-
this.isWalletConnect = false;
|
|
56
|
-
this.connectedChain = 'ALGO';
|
|
57
|
-
this.supportedChains = ['ALGO'];
|
|
58
|
-
this.cache = new MyAlgoLocalStorageCache();
|
|
59
|
-
}
|
|
60
|
-
get key() {
|
|
61
|
-
return normalizeWalletName(this.name);
|
|
62
|
-
}
|
|
63
|
-
getClient() {
|
|
64
|
-
if (!this.client) {
|
|
65
|
-
this.client = new MyAlgoConnect();
|
|
66
|
-
}
|
|
67
|
-
return this.client;
|
|
68
|
-
}
|
|
69
|
-
getNetwork() {
|
|
70
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
return undefined;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
getDeepLink() {
|
|
75
|
-
return undefined;
|
|
76
|
-
}
|
|
77
|
-
fetchPublicAddress() {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const currentAddress = yield this.cache.getCurrentAddress();
|
|
80
|
-
if (currentAddress) {
|
|
81
|
-
return currentAddress;
|
|
82
|
-
}
|
|
83
|
-
const accounts = yield this.getClient().connect({
|
|
84
|
-
shouldSelectOneAccount: true,
|
|
85
|
-
});
|
|
86
|
-
if (accounts.length > 0) {
|
|
87
|
-
const [{ address }] = accounts;
|
|
88
|
-
yield this.cache.setCurrentAddress(address);
|
|
89
|
-
return address;
|
|
90
|
-
}
|
|
91
|
-
return '';
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
connect() {
|
|
95
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
yield this.fetchPublicAddress();
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
getSigner() {
|
|
100
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const address = yield this.fetchPublicAddress();
|
|
102
|
-
if (!address)
|
|
103
|
-
throw new DynamicError('MyAlgo Wallet Connector - Not connected!');
|
|
104
|
-
return new MyAlgoSigner(address, this.getClient());
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
signMessage(messageToSign) {
|
|
108
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
const signer = yield this.getSigner();
|
|
110
|
-
const signature = yield signer.signBytes(Buffer.from(messageToSign));
|
|
111
|
-
return Buffer.from(signature).toString('hex');
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
proveOwnership(messageToSign) {
|
|
115
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
-
return this.signMessage(messageToSign);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
getBalance() {
|
|
120
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
const address = yield this.fetchPublicAddress();
|
|
122
|
-
if (!address)
|
|
123
|
-
throw new DynamicError('getBalance - Not connected!');
|
|
124
|
-
const response = yield fetch(`https://indexer.algoexplorerapi.io/v2/accounts/${address}`);
|
|
125
|
-
if (!response.ok) {
|
|
126
|
-
// if the request fails due to rate limits, return cached value
|
|
127
|
-
if (response.status === HTTP_STATUS_TOO_MANY_REQUESTS) {
|
|
128
|
-
return this.cache.getLastBalance();
|
|
129
|
-
}
|
|
130
|
-
// new accounts not yet indexed will return a 404
|
|
131
|
-
if (response.status === HTTP_STATUS_NOT_FOUND) {
|
|
132
|
-
return '0';
|
|
133
|
-
}
|
|
134
|
-
return undefined;
|
|
135
|
-
}
|
|
136
|
-
const accountInfo = yield response.json();
|
|
137
|
-
if (!accountInfo.account) {
|
|
138
|
-
return undefined;
|
|
139
|
-
}
|
|
140
|
-
const balance = accountInfo.account.amount.toString();
|
|
141
|
-
yield this.cache.setLastBalance(balance.toString());
|
|
142
|
-
return balance.toString();
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
endSession() {
|
|
146
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
yield this.cache.clearCurrentAddress();
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
isInstalledOnBrowser() {
|
|
151
|
-
return false;
|
|
152
|
-
}
|
|
153
|
-
supportsNetworkSwitching() {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
switchNetwork() {
|
|
157
|
-
throw new DynamicError('switchNetwork - Not supported');
|
|
158
|
-
}
|
|
159
|
-
getWeb3Provider() {
|
|
160
|
-
return undefined;
|
|
161
|
-
}
|
|
162
|
-
getRpcProvider() {
|
|
163
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
-
return;
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
setupEventListeners() {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
teardownEventListeners() {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
getConnectedAccounts() {
|
|
174
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
-
const currentAddress = yield this.cache.getCurrentAddress();
|
|
176
|
-
return currentAddress ? [currentAddress] : [];
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
export { MyAlgo as default };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
class MyAlgoSigner {
|
|
6
|
-
constructor(connectedAddress, client) {
|
|
7
|
-
this.connectedAddress = connectedAddress;
|
|
8
|
-
this.client = client;
|
|
9
|
-
}
|
|
10
|
-
signBytes(bytes) {
|
|
11
|
-
return this.client.signBytes(bytes, this.connectedAddress);
|
|
12
|
-
}
|
|
13
|
-
signLogicSig(teal) {
|
|
14
|
-
return this.client.signLogicSig(teal, this.connectedAddress);
|
|
15
|
-
}
|
|
16
|
-
signTransaction(txs) {
|
|
17
|
-
return this.client.signTransaction(txs);
|
|
18
|
-
}
|
|
19
|
-
tealSign(data, contractAddress) {
|
|
20
|
-
return this.client.tealSign(data, contractAddress, this.connectedAddress);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
exports.MyAlgoSigner = MyAlgoSigner;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import MyAlgoConnect from '@randlabs/myalgo-connect';
|
|
2
|
-
interface AlgorandSignedTx {
|
|
3
|
-
blob: Uint8Array;
|
|
4
|
-
txID: string;
|
|
5
|
-
}
|
|
6
|
-
export interface IMyAlgoSigner {
|
|
7
|
-
signBytes(bytes: Uint8Array): Promise<Uint8Array>;
|
|
8
|
-
signLogicSig(teal: Uint8Array): Promise<Uint8Array>;
|
|
9
|
-
signTransaction(txs: any[]): Promise<AlgorandSignedTx[]>;
|
|
10
|
-
tealSign(data: Uint8Array, contractAddress: string): Promise<Uint8Array>;
|
|
11
|
-
}
|
|
12
|
-
export declare class MyAlgoSigner implements IMyAlgoSigner {
|
|
13
|
-
private readonly connectedAddress;
|
|
14
|
-
private readonly client;
|
|
15
|
-
constructor(connectedAddress: string, client: MyAlgoConnect);
|
|
16
|
-
signBytes(bytes: Uint8Array): Promise<Uint8Array>;
|
|
17
|
-
signLogicSig(teal: Uint8Array): Promise<Uint8Array>;
|
|
18
|
-
signTransaction(txs: any[]): Promise<AlgorandSignedTx[]>;
|
|
19
|
-
tealSign(data: Uint8Array, contractAddress: string): Promise<Uint8Array>;
|
|
20
|
-
}
|
|
21
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
class MyAlgoSigner {
|
|
2
|
-
constructor(connectedAddress, client) {
|
|
3
|
-
this.connectedAddress = connectedAddress;
|
|
4
|
-
this.client = client;
|
|
5
|
-
}
|
|
6
|
-
signBytes(bytes) {
|
|
7
|
-
return this.client.signBytes(bytes, this.connectedAddress);
|
|
8
|
-
}
|
|
9
|
-
signLogicSig(teal) {
|
|
10
|
-
return this.client.signLogicSig(teal, this.connectedAddress);
|
|
11
|
-
}
|
|
12
|
-
signTransaction(txs) {
|
|
13
|
-
return this.client.signTransaction(txs);
|
|
14
|
-
}
|
|
15
|
-
tealSign(data, contractAddress) {
|
|
16
|
-
return this.client.tealSign(data, contractAddress, this.connectedAddress);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { MyAlgoSigner };
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
var CoinbaseWalletSDK = require('@coinbase/wallet-sdk');
|
|
7
|
-
var utils = require('ethers/lib/utils');
|
|
8
|
-
var errors = require('../../../errors.cjs');
|
|
9
|
-
var constants = require('../../constants.cjs');
|
|
10
|
-
|
|
11
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
|
-
|
|
13
|
-
var CoinbaseWalletSDK__default = /*#__PURE__*/_interopDefaultLegacy(CoinbaseWalletSDK);
|
|
14
|
-
|
|
15
|
-
const jsonRpcUrl = `https://mainnet.infura.io/v3/${constants.infuraId}`;
|
|
16
|
-
const chainId = 1;
|
|
17
|
-
const getCoinbaseProvider = ({ opts: { appLogoUrl, appName = '', evmNetworks = [] } = {}, handlers, }) => {
|
|
18
|
-
var _a, _b;
|
|
19
|
-
const coinbaseWalletSDK = new CoinbaseWalletSDK__default["default"]({
|
|
20
|
-
appLogoUrl,
|
|
21
|
-
appName,
|
|
22
|
-
eventListener: {
|
|
23
|
-
onEvent: (eventType) => {
|
|
24
|
-
if (eventType === 'walletlink_sdk.disconnected') {
|
|
25
|
-
handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
headlessMode: true,
|
|
30
|
-
reloadOnDisconnect: false,
|
|
31
|
-
});
|
|
32
|
-
const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
|
|
33
|
-
const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) || jsonRpcUrl;
|
|
34
|
-
return coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
|
|
35
|
-
};
|
|
36
|
-
const killCoinbaseSession = () => {
|
|
37
|
-
const provider = getCoinbaseProvider({
|
|
38
|
-
opts: { appLogoUrl: '', appName: '' },
|
|
39
|
-
});
|
|
40
|
-
if (provider.connected) {
|
|
41
|
-
provider.close();
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
const fetchPublicAddress = (coinbaseProviderOpts, opts) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
-
var _a;
|
|
46
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
47
|
-
const { qrUrl } = provider;
|
|
48
|
-
if (!qrUrl) {
|
|
49
|
-
throw new errors.DynamicError('no qr url available');
|
|
50
|
-
}
|
|
51
|
-
(_a = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _a === void 0 ? void 0 : _a.call(opts, qrUrl);
|
|
52
|
-
const [address] = yield provider.request({
|
|
53
|
-
method: 'eth_requestAccounts',
|
|
54
|
-
});
|
|
55
|
-
return address;
|
|
56
|
-
});
|
|
57
|
-
const signMessage = (coinbaseProviderOpts, messageToSign) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
59
|
-
const [address] = yield provider.request({
|
|
60
|
-
method: 'eth_requestAccounts',
|
|
61
|
-
});
|
|
62
|
-
try {
|
|
63
|
-
return yield provider.request({
|
|
64
|
-
method: 'personal_sign',
|
|
65
|
-
params: [utils.hexlify(utils.toUtf8Bytes(messageToSign)), address.toLowerCase()],
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
yield provider.close();
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
exports.fetchPublicAddress = fetchPublicAddress;
|
|
75
|
-
exports.getCoinbaseProvider = getCoinbaseProvider;
|
|
76
|
-
exports.killCoinbaseSession = killCoinbaseSession;
|
|
77
|
-
exports.signMessage = signMessage;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { FetchPublicAddressOpts } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
-
import { GetCoinbaseProvider, GetCoinbaseProviderOpts } from './types';
|
|
3
|
-
export declare const getCoinbaseProvider: GetCoinbaseProvider;
|
|
4
|
-
export declare const killCoinbaseSession: () => void;
|
|
5
|
-
export declare const fetchPublicAddress: (coinbaseProviderOpts: GetCoinbaseProviderOpts, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
|
|
6
|
-
export declare const signMessage: (coinbaseProviderOpts: GetCoinbaseProviderOpts, messageToSign: string) => Promise<string | undefined>;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import CoinbaseWalletSDK from '@coinbase/wallet-sdk';
|
|
3
|
-
import { hexlify, toUtf8Bytes } from 'ethers/lib/utils.js';
|
|
4
|
-
import { DynamicError } from '../../../errors.js';
|
|
5
|
-
import { infuraId } from '../../constants.js';
|
|
6
|
-
|
|
7
|
-
const jsonRpcUrl = `https://mainnet.infura.io/v3/${infuraId}`;
|
|
8
|
-
const chainId = 1;
|
|
9
|
-
const getCoinbaseProvider = ({ opts: { appLogoUrl, appName = '', evmNetworks = [] } = {}, handlers, }) => {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const coinbaseWalletSDK = new CoinbaseWalletSDK({
|
|
12
|
-
appLogoUrl,
|
|
13
|
-
appName,
|
|
14
|
-
eventListener: {
|
|
15
|
-
onEvent: (eventType) => {
|
|
16
|
-
if (eventType === 'walletlink_sdk.disconnected') {
|
|
17
|
-
handlers === null || handlers === void 0 ? void 0 : handlers.onDisconnect();
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
headlessMode: true,
|
|
22
|
-
reloadOnDisconnect: false,
|
|
23
|
-
});
|
|
24
|
-
const network = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.find((network) => network.chainId === chainId);
|
|
25
|
-
const rpcUrl = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0]) || jsonRpcUrl;
|
|
26
|
-
return coinbaseWalletSDK.makeWeb3Provider(rpcUrl, chainId);
|
|
27
|
-
};
|
|
28
|
-
const killCoinbaseSession = () => {
|
|
29
|
-
const provider = getCoinbaseProvider({
|
|
30
|
-
opts: { appLogoUrl: '', appName: '' },
|
|
31
|
-
});
|
|
32
|
-
if (provider.connected) {
|
|
33
|
-
provider.close();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const fetchPublicAddress = (coinbaseProviderOpts, opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
var _a;
|
|
38
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
39
|
-
const { qrUrl } = provider;
|
|
40
|
-
if (!qrUrl) {
|
|
41
|
-
throw new DynamicError('no qr url available');
|
|
42
|
-
}
|
|
43
|
-
(_a = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _a === void 0 ? void 0 : _a.call(opts, qrUrl);
|
|
44
|
-
const [address] = yield provider.request({
|
|
45
|
-
method: 'eth_requestAccounts',
|
|
46
|
-
});
|
|
47
|
-
return address;
|
|
48
|
-
});
|
|
49
|
-
const signMessage = (coinbaseProviderOpts, messageToSign) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
const provider = getCoinbaseProvider({ opts: coinbaseProviderOpts });
|
|
51
|
-
const [address] = yield provider.request({
|
|
52
|
-
method: 'eth_requestAccounts',
|
|
53
|
-
});
|
|
54
|
-
try {
|
|
55
|
-
return yield provider.request({
|
|
56
|
-
method: 'personal_sign',
|
|
57
|
-
params: [hexlify(toUtf8Bytes(messageToSign)), address.toLowerCase()],
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
yield provider.close();
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
export { fetchPublicAddress, getCoinbaseProvider, killCoinbaseSession, signMessage };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CoinbaseWalletProvider } from '@coinbase/wallet-sdk';
|
|
2
|
-
import { EvmNetwork } from '../../ethereum/evm-network';
|
|
3
|
-
export type GetCoinbaseProviderOpts = {
|
|
4
|
-
appLogoUrl?: string;
|
|
5
|
-
appName?: string;
|
|
6
|
-
evmNetworks?: EvmNetwork[];
|
|
7
|
-
};
|
|
8
|
-
export type CoinbaseProviderHandlerOpts = {
|
|
9
|
-
onDisconnect(): Promise<void>;
|
|
10
|
-
};
|
|
11
|
-
export type GetCoinbaseProvider = (args: {
|
|
12
|
-
handlers?: CoinbaseProviderHandlerOpts;
|
|
13
|
-
opts?: GetCoinbaseProviderOpts;
|
|
14
|
-
}) => CoinbaseWalletProvider;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './walletConnect';
|