@dynamic-labs/multi-wallet 0.15.1-minimal.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/package.json +17 -13
  3. package/src/index.d.ts +1 -0
  4. package/src/index.js +1 -0
  5. package/src/index.js.map +1 -1
  6. package/src/multi-wallet.d.ts +1 -0
  7. package/src/multi-wallet.js +67 -2
  8. package/src/multi-wallet.js.map +1 -1
  9. package/src/types.d.ts +1 -0
  10. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +3 -0
  11. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +30 -0
  12. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js.map +1 -0
  13. package/src/utils/assignConfirmationScreenToProvider/index.d.ts +1 -0
  14. package/src/utils/assignConfirmationScreenToProvider/index.js +6 -0
  15. package/src/utils/assignConfirmationScreenToProvider/index.js.map +1 -0
  16. package/src/wallets/algorand/myalgo.d.ts +34 -0
  17. package/src/wallets/algorand/myalgo.js +178 -0
  18. package/src/wallets/algorand/myalgo.js.map +1 -0
  19. package/src/wallets/algorand/myalgoSigner.d.ts +21 -0
  20. package/src/wallets/algorand/myalgoSigner.js +23 -0
  21. package/src/wallets/algorand/myalgoSigner.js.map +1 -0
  22. package/src/wallets/ethereum/BloctoEvm.d.ts +34 -0
  23. package/src/wallets/ethereum/BloctoEvm.js +135 -0
  24. package/src/wallets/ethereum/BloctoEvm.js.map +1 -0
  25. package/src/wallets/ethereum/MagicLink.d.ts +48 -0
  26. package/src/wallets/ethereum/MagicLink.js +178 -0
  27. package/src/wallets/ethereum/MagicLink.js.map +1 -0
  28. package/src/wallets/ethereum/fortmatic.d.ts +34 -0
  29. package/src/wallets/ethereum/fortmatic.js +93 -0
  30. package/src/wallets/ethereum/fortmatic.js.map +1 -0
  31. package/src/wallets/ethereum/injected/BloctoInjected.d.ts +6 -0
  32. package/src/wallets/ethereum/injected/BloctoInjected.js +13 -0
  33. package/src/wallets/ethereum/injected/BloctoInjected.js.map +1 -0
  34. package/src/wallets/flow/blocto.d.ts +13 -0
  35. package/src/wallets/flow/blocto.js +29 -0
  36. package/src/wallets/flow/blocto.js.map +1 -0
  37. package/src/wallets/flow/dapper.d.ts +13 -0
  38. package/src/wallets/flow/dapper.js +29 -0
  39. package/src/wallets/flow/dapper.js.map +1 -0
  40. package/src/wallets/flow/flow-provider.d.ts +34 -0
  41. package/src/wallets/flow/flow-provider.js +184 -0
  42. package/src/wallets/flow/flow-provider.js.map +1 -0
  43. package/src/wallets/flow/lilico.d.ts +15 -0
  44. package/src/wallets/flow/lilico.js +50 -0
  45. package/src/wallets/flow/lilico.js.map +1 -0
  46. package/src/wallets/solana/CoinbaseSolana.d.ts +26 -0
  47. package/src/wallets/solana/CoinbaseSolana.js +76 -0
  48. package/src/wallets/solana/CoinbaseSolana.js.map +1 -0
  49. package/src/wallets/solana/glow.d.ts +25 -0
  50. package/src/wallets/solana/glow.js +73 -0
  51. package/src/wallets/solana/glow.js.map +1 -0
  52. package/src/wallets/solana/injected/BraveSol.d.ts +6 -0
  53. package/src/wallets/solana/injected/BraveSol.js +17 -0
  54. package/src/wallets/solana/injected/BraveSol.js.map +1 -0
  55. package/src/wallets/solana/injected/ExodusSol.d.ts +5 -0
  56. package/src/wallets/solana/injected/ExodusSol.js +12 -0
  57. package/src/wallets/solana/injected/ExodusSol.js.map +1 -0
  58. package/src/wallets/solana/phantom-ledger.d.ts +16 -0
  59. package/src/wallets/solana/phantom-ledger.js +67 -0
  60. package/src/wallets/solana/phantom-ledger.js.map +1 -0
  61. package/src/wallets/solana/phantom.d.ts +26 -0
  62. package/src/wallets/solana/phantom.js +99 -0
  63. package/src/wallets/solana/phantom.js.map +1 -0
  64. package/src/wallets/solana/slope.d.ts +39 -0
  65. package/src/wallets/solana/slope.js +124 -0
  66. package/src/wallets/solana/slope.js.map +1 -0
  67. package/src/wallets/solana/solProvider.d.ts +16 -0
  68. package/src/wallets/solana/solProvider.js +56 -0
  69. package/src/wallets/solana/solProvider.js.map +1 -0
  70. package/src/wallets/solana/solProviderHelper.d.ts +29 -0
  71. package/src/wallets/solana/solProviderHelper.js +144 -0
  72. package/src/wallets/solana/solProviderHelper.js.map +1 -0
  73. package/src/wallets/solana/solflare.d.ts +26 -0
  74. package/src/wallets/solana/solflare.js +93 -0
  75. package/src/wallets/solana/solflare.js.map +1 -0
  76. package/src/wallets/starknet/argentx.d.ts +6 -0
  77. package/src/wallets/starknet/argentx.js +11 -0
  78. package/src/wallets/starknet/argentx.js.map +1 -0
  79. package/src/wallets/starknet/braavos.d.ts +6 -0
  80. package/src/wallets/starknet/braavos.js +11 -0
  81. package/src/wallets/starknet/braavos.js.map +1 -0
  82. package/src/wallets/starknet/ethereumContractAbi.json +340 -0
  83. package/src/wallets/starknet/starknetProvider.d.ts +31 -0
  84. package/src/wallets/starknet/starknetProvider.js +98 -0
  85. package/src/wallets/starknet/starknetProvider.js.map +1 -0
  86. package/src/wallets/starknet/starknetProviderHelper.d.ts +17 -0
  87. package/src/wallets/starknet/starknetProviderHelper.js +159 -0
  88. package/src/wallets/starknet/starknetProviderHelper.js.map +1 -0
@@ -0,0 +1,34 @@
1
+ import { ethers } from 'ethers';
2
+ import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
+ import { EvmNetwork } from './evm-network';
4
+ import { EthProvider } from './ethProvider';
5
+ import { EthProviderHelper } from './ethProviderHelper';
6
+ declare class BloctoEvm extends EthProvider implements WalletConnector {
7
+ LOCAL_STORAGE_KEY: string;
8
+ private client?;
9
+ name: string;
10
+ canConnectViaQrCode: boolean;
11
+ canConnectViaCustodialService: boolean;
12
+ isWalletConnect: boolean;
13
+ connectedChain: Chain;
14
+ supportedChains: Chain[];
15
+ chainId: number;
16
+ ethProviderHelper: EthProviderHelper;
17
+ supportsNetworkSwitching: () => boolean;
18
+ constructor({ evmNetworks }: {
19
+ evmNetworks: EvmNetwork[];
20
+ });
21
+ get key(): string;
22
+ private getClient;
23
+ getWeb3Provider(): ethers.providers.Web3Provider | undefined;
24
+ fetchPublicAddress(): Promise<string | undefined>;
25
+ connect(): Promise<void>;
26
+ isInstalledOnBrowser(): boolean;
27
+ proveOwnership(messageToSign: string): Promise<string | undefined>;
28
+ signMessage(messageToSign: string): Promise<string | undefined>;
29
+ endSession?(): Promise<void>;
30
+ switchNetwork(): Promise<void>;
31
+ setupEventListeners(): void;
32
+ teardownEventListeners(): void;
33
+ }
34
+ export default BloctoEvm;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const sdk_1 = tslib_1.__importDefault(require("@blocto/sdk"));
5
+ const ethers_1 = require("ethers");
6
+ const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
7
+ const logger_1 = require("../../utils/logger");
8
+ const ethProvider_1 = require("./ethProvider");
9
+ const ethProviderHelper_1 = require("./ethProviderHelper");
10
+ class BloctoEvm extends ethProvider_1.EthProvider {
11
+ constructor({ evmNetworks }) {
12
+ var _a, _b;
13
+ // Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
14
+ const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
15
+ const bloctoSupportedNetworks = evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
16
+ super({ evmNetworks: bloctoSupportedNetworks });
17
+ this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
18
+ this.name = 'bloctoevm';
19
+ this.canConnectViaQrCode = false;
20
+ this.canConnectViaCustodialService = true;
21
+ this.isWalletConnect = false;
22
+ this.connectedChain = 'EVM';
23
+ this.supportedChains = ['EVM', 'ETH'];
24
+ this.ethProviderHelper = new ethProviderHelper_1.EthProviderHelper();
25
+ this.supportsNetworkSwitching = () => false;
26
+ this.chainId =
27
+ Number(localStorage.getItem(this.LOCAL_STORAGE_KEY)) ||
28
+ ((_a = bloctoSupportedNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
29
+ ((_b = bloctoSupportedNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
30
+ }
31
+ get key() {
32
+ return (0, normalizeWalletName_1.normalizeWalletName)(this.name);
33
+ }
34
+ getClient() {
35
+ if (!this.client) {
36
+ const network = this.evmNetworks.find((n) => n.chainId === this.chainId);
37
+ if (network) {
38
+ this.client = new sdk_1.default({
39
+ ethereum: {
40
+ chainId: `0x${this.chainId.toString(16)}`,
41
+ rpc: network.rpcUrls[0],
42
+ },
43
+ });
44
+ }
45
+ else {
46
+ logger_1.logger.error("Couldn't find a configured network for Blocto EVM");
47
+ }
48
+ }
49
+ return this.client;
50
+ }
51
+ getWeb3Provider() {
52
+ const client = this.getClient();
53
+ // If there are no accounts yet, we shouldn't wrap the provider in ethers
54
+ if (client && client.ethereum && client.ethereum.accounts.length > 0) {
55
+ return new ethers_1.ethers.providers.Web3Provider(client.ethereum);
56
+ }
57
+ else {
58
+ return undefined;
59
+ }
60
+ }
61
+ // We are calling the client directly and not via Web3Provider because if we will wrap it in Ethers,
62
+ // Ethers will be making retries on failure. This becomes an issue on the connect step.
63
+ // When Blocto's modal closes prior to receiving a response with the address on the connect step,
64
+ // then ethers would retry and the modal will open again.
65
+ fetchPublicAddress() {
66
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ try {
68
+ const client = this.getClient();
69
+ if (client && client.ethereum) {
70
+ const addresses = yield client.ethereum.request({
71
+ method: 'eth_requestAccounts',
72
+ });
73
+ if (addresses.length > 0) {
74
+ return addresses[0];
75
+ }
76
+ }
77
+ return undefined;
78
+ }
79
+ catch (e) {
80
+ logger_1.logger.error(e);
81
+ return Promise.reject(e);
82
+ }
83
+ });
84
+ }
85
+ connect() {
86
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ yield this.fetchPublicAddress();
88
+ });
89
+ }
90
+ isInstalledOnBrowser() {
91
+ return false;
92
+ }
93
+ proveOwnership(messageToSign) {
94
+ return this.signMessage(messageToSign);
95
+ }
96
+ signMessage(messageToSign) {
97
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
+ try {
99
+ const signer = yield this.getSigner();
100
+ return yield (signer === null || signer === void 0 ? void 0 : signer.signMessage(messageToSign));
101
+ }
102
+ catch (e) {
103
+ if (e.message === 'User declined the signing request') {
104
+ return Promise.reject({ code: '4001' });
105
+ }
106
+ else {
107
+ return Promise.reject(e);
108
+ }
109
+ }
110
+ });
111
+ }
112
+ endSession() {
113
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
114
+ const client = this.getClient();
115
+ localStorage.removeItem('sdk.session');
116
+ if (client && client.ethereum && client.ethereum.accounts.length > 0) {
117
+ yield client.ethereum.request({ method: 'wallet_disconnect' });
118
+ }
119
+ });
120
+ }
121
+ // *********************
122
+ // Unimplemented methods
123
+ // *********************
124
+ switchNetwork() {
125
+ return Promise.resolve();
126
+ }
127
+ setupEventListeners() {
128
+ return;
129
+ }
130
+ teardownEventListeners() {
131
+ return;
132
+ }
133
+ }
134
+ exports.default = BloctoEvm;
135
+ //# sourceMappingURL=BloctoEvm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BloctoEvm.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/BloctoEvm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Magic as MagicClient, MagicUserMetadata } from 'magic-sdk';
2
+ import { ethers } from 'ethers';
3
+ import { Chain, EmailWalletConnector } from '@dynamic-labs/wallet-connector-core';
4
+ import { WalletUiUtils } from '../../types';
5
+ import { EvmNetwork } from './evm-network';
6
+ export declare class MagicConnector implements EmailWalletConnector {
7
+ canConnectViaCustodialService: boolean;
8
+ canConnectViaQrCode: boolean;
9
+ connectedChain: Chain;
10
+ supportedChains: Chain[];
11
+ isWalletConnect: boolean;
12
+ key: string;
13
+ name: string;
14
+ canConnectViaEmail: boolean;
15
+ switchNetworkOnlyFromWallet?: boolean;
16
+ evmNetworks: EvmNetwork[];
17
+ _apiKey: string;
18
+ _email: string | undefined;
19
+ _magicSdk: MagicClient | undefined;
20
+ _walletUiUtils: WalletUiUtils;
21
+ _provider: ethers.providers.Web3Provider | undefined;
22
+ constructor({ apiKey, walletUiUtils, evmNetworks, }: {
23
+ apiKey: string;
24
+ evmNetworks: EvmNetwork[];
25
+ walletUiUtils: WalletUiUtils;
26
+ });
27
+ _getClient(): Promise<MagicClient<import("magic-sdk").MagicSDKExtensionsOption<string>>>;
28
+ get email(): string | undefined;
29
+ setEmail(email: string): void;
30
+ connect(): Promise<void>;
31
+ endSession?(): Promise<void>;
32
+ isLoggedIn(): Promise<boolean>;
33
+ getUserMetadata(): Promise<MagicUserMetadata | undefined>;
34
+ fetchPublicAddress(): Promise<string | undefined>;
35
+ getBalance(): Promise<string | undefined>;
36
+ getConnectedAccounts(): Promise<string[]>;
37
+ getNetwork(): Promise<number | undefined>;
38
+ getRpcProvider(): Promise<void | ethers.providers.JsonRpcProvider | undefined>;
39
+ getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
40
+ getWeb3Provider(): Promise<ethers.providers.Web3Provider>;
41
+ isInstalledOnBrowser(): boolean;
42
+ proveOwnership(messageToSign: string): Promise<string | undefined>;
43
+ setupEventListeners(): void;
44
+ signMessage(messageToSign: string): Promise<string | undefined>;
45
+ supportsNetworkSwitching(): boolean;
46
+ switchNetwork(): Promise<void>;
47
+ teardownEventListeners(): void;
48
+ }
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MagicConnector = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const magic_sdk_1 = require("magic-sdk");
6
+ const ethers_1 = require("ethers");
7
+ const errors_1 = require("../../errors");
8
+ const logger_1 = require("../../utils/logger");
9
+ const assignConfirmationScreenToProvider_1 = require("../../utils/assignConfirmationScreenToProvider");
10
+ class MagicConnector {
11
+ constructor({ apiKey, walletUiUtils, evmNetworks, }) {
12
+ this.canConnectViaCustodialService = true;
13
+ this.canConnectViaQrCode = false;
14
+ this.connectedChain = 'EVM';
15
+ this.supportedChains = ['ETH', 'EVM'];
16
+ this.isWalletConnect = false;
17
+ this.key = 'magiclink';
18
+ this.name = 'Magic Link';
19
+ this.canConnectViaEmail = true;
20
+ this.evmNetworks = [];
21
+ this._magicSdk = undefined;
22
+ this._apiKey = apiKey;
23
+ this._walletUiUtils = walletUiUtils;
24
+ this.evmNetworks = evmNetworks;
25
+ }
26
+ _getClient() {
27
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
+ if (!this._magicSdk) {
29
+ this._magicSdk = new magic_sdk_1.Magic(this._apiKey);
30
+ yield this._magicSdk.preload();
31
+ }
32
+ return this._magicSdk;
33
+ });
34
+ }
35
+ get email() {
36
+ return this._email;
37
+ }
38
+ setEmail(email) {
39
+ this._email = email;
40
+ localStorage.setItem('magic-link-email', email);
41
+ }
42
+ connect() {
43
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
44
+ yield this.fetchPublicAddress();
45
+ });
46
+ }
47
+ endSession() {
48
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
49
+ const client = yield this._getClient();
50
+ yield client.user.logout();
51
+ this.setEmail('');
52
+ });
53
+ }
54
+ isLoggedIn() {
55
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
56
+ const client = yield this._getClient();
57
+ return client.user.isLoggedIn();
58
+ });
59
+ }
60
+ getUserMetadata() {
61
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
+ if (yield this.isLoggedIn()) {
63
+ const client = yield this._getClient();
64
+ return client.user.getMetadata();
65
+ }
66
+ return undefined;
67
+ });
68
+ }
69
+ fetchPublicAddress() {
70
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
+ const client = yield this._getClient();
72
+ try {
73
+ const user = yield this.getUserMetadata();
74
+ if (user && user.publicAddress) {
75
+ this.setEmail((user === null || user === void 0 ? void 0 : user.email) || '');
76
+ return user.publicAddress;
77
+ }
78
+ const { email } = this;
79
+ if (!email)
80
+ return;
81
+ try {
82
+ yield client.auth.loginWithMagicLink({
83
+ email,
84
+ showUI: false,
85
+ });
86
+ }
87
+ catch (err) {
88
+ logger_1.logger.error(err);
89
+ return;
90
+ }
91
+ const metadata = yield client.user.getMetadata();
92
+ if (!metadata || !metadata.publicAddress) {
93
+ throw new Error('No public address');
94
+ }
95
+ return metadata.publicAddress;
96
+ }
97
+ catch (err) {
98
+ return undefined;
99
+ }
100
+ });
101
+ }
102
+ getBalance() {
103
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
104
+ const provider = yield this.getWeb3Provider();
105
+ if (!provider)
106
+ throw new errors_1.DynamicError('No provider');
107
+ const signer = provider.getSigner();
108
+ const userAddress = yield signer.getAddress();
109
+ return ethers_1.ethers.utils.formatEther(yield provider.getBalance(userAddress));
110
+ });
111
+ }
112
+ getConnectedAccounts() {
113
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
114
+ const isLoggedIn = yield this.isLoggedIn();
115
+ if (!isLoggedIn)
116
+ return [];
117
+ const metadata = yield this.getUserMetadata();
118
+ if (!metadata || !(metadata === null || metadata === void 0 ? void 0 : metadata.publicAddress))
119
+ return [];
120
+ return [metadata.publicAddress];
121
+ });
122
+ }
123
+ getNetwork() {
124
+ var _a;
125
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
126
+ return (_a = (yield this.getWeb3Provider())) === null || _a === void 0 ? void 0 : _a.getNetwork().then((network) => network.chainId);
127
+ });
128
+ }
129
+ getRpcProvider() {
130
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
131
+ return undefined;
132
+ });
133
+ }
134
+ getSigner() {
135
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
136
+ const provider = yield this.getWeb3Provider();
137
+ return provider.getSigner();
138
+ });
139
+ }
140
+ getWeb3Provider() {
141
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
142
+ if (this._provider) {
143
+ return this._provider;
144
+ }
145
+ const client = yield this._getClient();
146
+ const provider = new ethers_1.ethers.providers.Web3Provider(client.rpcProvider);
147
+ (0, assignConfirmationScreenToProvider_1.assignConfirmationScreenToProvider)(provider, this._walletUiUtils);
148
+ this._provider = provider;
149
+ return this._provider;
150
+ });
151
+ }
152
+ isInstalledOnBrowser() {
153
+ return false;
154
+ }
155
+ proveOwnership(messageToSign) {
156
+ return this.signMessage(messageToSign);
157
+ }
158
+ setupEventListeners() {
159
+ return;
160
+ }
161
+ signMessage(messageToSign) {
162
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
163
+ const provider = yield this.getWeb3Provider();
164
+ return provider.getSigner().signMessage(messageToSign);
165
+ });
166
+ }
167
+ supportsNetworkSwitching() {
168
+ return false;
169
+ }
170
+ switchNetwork() {
171
+ throw new Error('Method not implemented.');
172
+ }
173
+ teardownEventListeners() {
174
+ return;
175
+ }
176
+ }
177
+ exports.MagicConnector = MagicConnector;
178
+ //# sourceMappingURL=MagicLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MagicLink.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/MagicLink.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { ethers } from 'ethers';
2
+ import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
+ import { EthProviderHelper } from './ethProviderHelper';
4
+ import { EthProvider } from './ethProvider';
5
+ import { EvmNetwork } from './evm-network';
6
+ declare class Fortmatic extends EthProvider implements WalletConnector {
7
+ name: string;
8
+ supportedChains: Chain[];
9
+ connectedChain: Chain;
10
+ canConnectViaQrCode: boolean;
11
+ canConnectViaCustodialService: boolean;
12
+ isWalletConnect: boolean;
13
+ ethProviderHelper: EthProviderHelper;
14
+ publicAddress: string | undefined;
15
+ private apiKey;
16
+ constructor({ evmNetworks, apiKey, }: {
17
+ apiKey: string;
18
+ evmNetworks: EvmNetwork[];
19
+ });
20
+ get key(): string;
21
+ setupEventListeners(): void;
22
+ teardownEventListeners(): void;
23
+ getFortmaticProvider(): import("fortmatic/dist/cjs/src/core/fm-provider").FmProvider;
24
+ getWeb3Provider(): ethers.providers.Web3Provider;
25
+ isInstalledOnBrowser(): boolean;
26
+ connect(): Promise<void>;
27
+ fetchPublicAddress(): Promise<string | undefined>;
28
+ signMessage(messageToSign: string): Promise<string | undefined>;
29
+ proveOwnership(messageToSign: string): Promise<string | undefined>;
30
+ endSession(): Promise<void>;
31
+ supportsNetworkSwitching(): boolean;
32
+ providerSwitchNetwork(): Promise<void>;
33
+ }
34
+ export default Fortmatic;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const ethers_1 = require("ethers");
5
+ const fortmatic_1 = tslib_1.__importDefault(require("fortmatic"));
6
+ const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
7
+ const errors_1 = require("../../errors");
8
+ const logger_1 = require("../../utils/logger");
9
+ const ethProviderHelper_1 = require("./ethProviderHelper");
10
+ const ethProvider_1 = require("./ethProvider");
11
+ class Fortmatic extends ethProvider_1.EthProvider {
12
+ constructor({ evmNetworks, apiKey, }) {
13
+ super({ evmNetworks });
14
+ this.name = 'Fortmatic';
15
+ this.supportedChains = ['ETH', 'EVM'];
16
+ this.connectedChain = 'EVM';
17
+ this.canConnectViaQrCode = false;
18
+ this.canConnectViaCustodialService = true;
19
+ this.isWalletConnect = false;
20
+ this.ethProviderHelper = new ethProviderHelper_1.EthProviderHelper();
21
+ this.apiKey = apiKey;
22
+ }
23
+ get key() {
24
+ return (0, normalizeWalletName_1.normalizeWalletName)(this.name);
25
+ }
26
+ setupEventListeners() {
27
+ return;
28
+ }
29
+ teardownEventListeners() {
30
+ return;
31
+ }
32
+ getFortmaticProvider() {
33
+ const fm = new fortmatic_1.default(this.apiKey);
34
+ return fm.getProvider();
35
+ }
36
+ getWeb3Provider() {
37
+ const provider = new ethers_1.ethers.providers.Web3Provider(this.getFortmaticProvider());
38
+ return provider;
39
+ }
40
+ isInstalledOnBrowser() {
41
+ return false;
42
+ }
43
+ connect() {
44
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
45
+ yield this.fetchPublicAddress();
46
+ });
47
+ }
48
+ fetchPublicAddress() {
49
+ var _a;
50
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
+ const fmProvider = this.getFortmaticProvider();
52
+ try {
53
+ const [address] = yield fmProvider.enable();
54
+ return address;
55
+ }
56
+ catch (error) {
57
+ if ((error === null || error === void 0 ? void 0 : error.code) === -32603 && ((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('User denied'))) {
58
+ error.code = 4001; // hack the error code to be the same as Metamask
59
+ }
60
+ throw error;
61
+ }
62
+ });
63
+ }
64
+ signMessage(messageToSign) {
65
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
66
+ const signer = this.getWeb3Provider().getSigner();
67
+ const signedMessage = yield signer.signMessage(messageToSign);
68
+ logger_1.logger.debug('signedMessage:', signedMessage);
69
+ return signedMessage;
70
+ });
71
+ }
72
+ proveOwnership(messageToSign) {
73
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
+ return this.signMessage(messageToSign);
75
+ });
76
+ }
77
+ endSession() {
78
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
+ const fm = new fortmatic_1.default(this.apiKey);
80
+ fm.user.logout();
81
+ });
82
+ }
83
+ supportsNetworkSwitching() {
84
+ return false;
85
+ }
86
+ providerSwitchNetwork() {
87
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
88
+ throw new errors_1.DynamicError('Not supported');
89
+ });
90
+ }
91
+ }
92
+ exports.default = Fortmatic;
93
+ //# sourceMappingURL=fortmatic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fortmatic.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/fortmatic.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,kEAAwC;AAIxC,yEAAsE;AACtE,yCAA4C;AAC5C,+CAA4C;AAE5C,2DAAwD;AACxD,+CAA4C;AAG5C,MAAM,SAAU,SAAQ,yBAAW;IAcjC,YAAY,EACV,WAAW,EACX,MAAM,GAIP;QACC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QApBzB,SAAI,GAAG,WAAW,CAAC;QAEnB,oBAAe,GAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE1C,mBAAc,GAAU,KAAK,CAAC;QAE9B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,kCAA6B,GAAG,IAAI,CAAC;QACrC,oBAAe,GAAG,KAAK,CAAC;QACxB,sBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QAY1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAA,yCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,mBAAmB;QACjB,OAAO;IACT,CAAC;IAED,sBAAsB;QACpB,OAAO;IACT,CAAC;IAED,oBAAoB;QAClB,MAAM,EAAE,GAAG,IAAI,mBAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAEQ,eAAe;QACtB,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,YAAY,CAChD,IAAI,CAAC,oBAAoB,EAAS,CACnC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oBAAoB;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAEK,OAAO;;YACX,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;KAAA;IAEK,kBAAkB;;;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/C,IAAI;gBACF,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC5C,OAAO,OAAO,CAAC;aAChB;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,CAAC,KAAK,KAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,QAAQ,CAAC,aAAa,CAAC,CAAA,EAAE;oBACrE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,iDAAiD;iBACrE;gBACD,MAAM,KAAK,CAAC;aACb;;KACF;IAEK,WAAW,CAAC,aAAqB;;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC9D,eAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAC9C,OAAO,aAAa,CAAC;QACvB,CAAC;KAAA;IAEK,cAAc,CAAC,aAAqB;;YACxC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,UAAU;;YACd,MAAM,EAAE,GAAG,IAAI,mBAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;KAAA;IAEQ,wBAAwB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAEc,qBAAqB;;YAClC,MAAM,IAAI,qBAAY,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC;KAAA;CACF;AAED,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ import MetaMask from '../meta-mask';
2
+ declare class BloctoInjected extends MetaMask {
3
+ name: string;
4
+ canConnectViaQrCode: boolean;
5
+ }
6
+ export default BloctoInjected;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const meta_mask_1 = tslib_1.__importDefault(require("../meta-mask"));
5
+ class BloctoInjected extends meta_mask_1.default {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'bloctoInjected';
9
+ this.canConnectViaQrCode = false;
10
+ }
11
+ }
12
+ exports.default = BloctoInjected;
13
+ //# sourceMappingURL=BloctoInjected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BloctoInjected.js","sourceRoot":"","sources":["../../../../../../../packages/multi-wallet/src/wallets/ethereum/injected/BloctoInjected.ts"],"names":[],"mappings":";;;AAAA,qEAAoC;AAEpC,MAAM,cAAe,SAAQ,mBAAQ;IAArC;;QACW,SAAI,GAAG,gBAAgB,CAAC;QACxB,wBAAmB,GAAG,KAAK,CAAC;IACvC,CAAC;CAAA;AAED,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ import { FlowProvider } from './flow-provider';
3
+ declare class Blocto extends FlowProvider implements WalletConnector {
4
+ name: string;
5
+ supportedChains: Chain[];
6
+ connectedChain: Chain;
7
+ canConnectViaQrCode: boolean;
8
+ canConnectViaCustodialService: boolean;
9
+ isWalletConnect: boolean;
10
+ get key(): string;
11
+ setupConfig(): void;
12
+ }
13
+ export default Blocto;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fcl_1 = require("@onflow/fcl");
4
+ const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
5
+ const flow_provider_1 = require("./flow-provider");
6
+ class Blocto extends flow_provider_1.FlowProvider {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.name = 'Blocto';
10
+ this.supportedChains = ['FLOW'];
11
+ this.connectedChain = 'FLOW';
12
+ this.canConnectViaQrCode = false;
13
+ this.canConnectViaCustodialService = true;
14
+ this.isWalletConnect = false;
15
+ }
16
+ get key() {
17
+ return (0, normalizeWalletName_1.normalizeWalletName)(this.name);
18
+ }
19
+ setupConfig() {
20
+ super.setupConfig();
21
+ (0, fcl_1.config)()
22
+ .put('challenge.scope', 'email')
23
+ .put('discovery.wallet', 'https://flow-wallet.blocto.app/authn')
24
+ .put('service.OpenID.scopes', 'email!')
25
+ .put('discovery.wallet.method', undefined);
26
+ }
27
+ }
28
+ exports.default = Blocto;
29
+ //# sourceMappingURL=blocto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocto.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/flow/blocto.ts"],"names":[],"mappings":";;AAAA,qCAAqC;AAIrC,yEAAsE;AAEtE,mDAA+C;AAE/C,MAAM,MAAO,SAAQ,4BAAY;IAAjC;;QACE,SAAI,GAAG,QAAQ,CAAC;QAEhB,oBAAe,GAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,mBAAc,GAAU,MAAM,CAAC;QAE/B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,kCAA6B,GAAG,IAAI,CAAC;QACrC,oBAAe,GAAG,KAAK,CAAC;IAe1B,CAAC;IAbC,IAAI,GAAG;QACL,OAAO,IAAA,yCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEQ,WAAW;QAClB,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,IAAA,YAAM,GAAE;aACL,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC;aAC/B,GAAG,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;aAC/D,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC;aACtC,GAAG,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ import { FlowProvider } from './flow-provider';
3
+ declare class Dapper extends FlowProvider implements WalletConnector {
4
+ name: string;
5
+ supportedChains: Chain[];
6
+ connectedChain: Chain;
7
+ canConnectViaQrCode: boolean;
8
+ canConnectViaCustodialService: boolean;
9
+ isWalletConnect: boolean;
10
+ get key(): string;
11
+ setupConfig(): void;
12
+ }
13
+ export default Dapper;