@pushchain/ui-kit 5.1.0 → 5.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/index.d.ts +2 -0
- package/src/lib/components/LoginModal/index.d.ts +23 -0
- package/src/lib/components/LoginModal/index.js +18 -19
- package/src/lib/components/LoginModal/index.js.map +1 -1
- package/src/lib/components/LoginModal/useSmartModalPosition.d.ts +6 -0
- package/src/lib/components/LoginModal/useSmartModalPosition.js +2 -1
- package/src/lib/components/LoginModal/useSmartModalPosition.js.map +1 -1
- package/src/lib/components/PushUniversalAccountButton/ConnectWalletButton.d.ts +11 -0
- package/src/lib/components/PushUniversalAccountButton/TogglePushWalletButton.d.ts +11 -0
- package/src/lib/components/PushUniversalAccountButton/index.d.ts +17 -0
- package/src/lib/components/PushUniversalAccountButton/index.js +8 -9
- package/src/lib/components/PushUniversalAccountButton/index.js.map +1 -1
- package/src/lib/components/PushWalletToast/index.d.ts +8 -0
- package/src/lib/components/PushWalletToast/index.js +2 -2
- package/src/lib/components/PushWalletToast/index.js.map +1 -1
- package/src/lib/components/common/Button.d.ts +23 -0
- package/src/lib/components/common/Button.js +4 -1
- package/src/lib/components/common/Button.js.map +1 -1
- package/src/lib/components/common/Spinner.d.ts +6 -0
- package/src/lib/components/common/icons/ArbitrumMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/AvalancheMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/BaseMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/BnbMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/CaretDown.d.ts +6 -0
- package/src/lib/components/common/icons/CaretUp.d.ts +6 -0
- package/src/lib/components/common/icons/CrossIcon.d.ts +6 -0
- package/src/lib/components/common/icons/DashIcon.d.ts +2 -0
- package/src/lib/components/common/icons/EllipseIcon.d.ts +2 -0
- package/src/lib/components/common/icons/EthereumMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/OptimismMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/PolygonMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/PushLogo.d.ts +2 -0
- package/src/lib/components/common/icons/PushMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/SolanaMonotone.d.ts +2 -0
- package/src/lib/components/common/icons/TickIcon.d.ts +2 -0
- package/src/lib/components/common/icons/WarningIcon.d.ts +2 -0
- package/src/lib/components/common/icons/index.d.ts +14 -0
- package/src/lib/components/common/index.d.ts +3 -0
- package/src/lib/constants/environment.d.ts +15 -0
- package/src/lib/constants/environment.js +2 -2
- package/src/lib/constants/environment.js.map +1 -1
- package/src/lib/constants/index.d.ts +75 -0
- package/src/lib/constants/index.js +3 -0
- package/src/lib/constants/index.js.map +1 -1
- package/src/lib/context/WalletContext.d.ts +43 -0
- package/src/lib/context/WalletContext.js +141 -161
- package/src/lib/context/WalletContext.js.map +1 -1
- package/src/lib/context/WalletContextMap.d.ts +2 -0
- package/src/lib/helpers/index.d.ts +1 -0
- package/src/lib/helpers/txnAuthGuard.d.ts +10 -0
- package/src/lib/helpers/txnAuthGuard.js +19 -18
- package/src/lib/helpers/txnAuthGuard.js.map +1 -1
- package/src/lib/helpers/wallet.helpers.d.ts +8 -0
- package/src/lib/hooks/useAppMetadata.d.ts +1 -0
- package/src/lib/hooks/useAppMetadata.js +1 -1
- package/src/lib/hooks/useAppMetadata.js.map +1 -1
- package/src/lib/hooks/usePushChain.d.ts +4 -0
- package/src/lib/hooks/usePushChainClient.d.ts +6 -0
- package/src/lib/hooks/usePushChainClient.js +14 -12
- package/src/lib/hooks/usePushChainClient.js.map +1 -1
- package/src/lib/hooks/usePushWallet.d.ts +2 -0
- package/src/lib/index.d.ts +7 -0
- package/src/lib/polyfills/index.d.ts +4 -0
- package/src/lib/providers/PushWalletProvider.d.ts +3 -0
- package/src/lib/providers/PushWalletProvider.js +8 -28
- package/src/lib/providers/PushWalletProvider.js.map +1 -1
- package/src/lib/providers/theme/ThemeContext.d.ts +0 -0
- package/src/lib/providers/theme/ThemeContext.js +1 -0
- package/src/lib/providers/waap/initWaap.d.ts +2 -0
- package/src/lib/providers/waap/initWaap.js +16 -0
- package/src/lib/providers/waap/initWaap.js.map +1 -0
- package/src/lib/providers/waap/useWaapAuth.d.ts +13 -0
- package/src/lib/providers/waap/useWaapAuth.js +69 -0
- package/src/lib/providers/waap/useWaapAuth.js.map +1 -0
- package/src/lib/providers/waap/waap.config.d.ts +4 -0
- package/src/lib/providers/waap/waap.config.js +64 -0
- package/src/lib/providers/waap/waap.config.js.map +1 -0
- package/src/lib/providers/waap/waapEvents.d.ts +7 -0
- package/src/lib/providers/waap/waapEvents.js +44 -0
- package/src/lib/providers/waap/waapEvents.js.map +1 -0
- package/src/lib/providers/waap/waapProvider.d.ts +8 -0
- package/src/lib/providers/waap/waapProvider.js +145 -0
- package/src/lib/providers/waap/waapProvider.js.map +1 -0
- package/src/lib/providers/walletProviders/BaseWalletProvider.d.ts +19 -0
- package/src/lib/providers/walletProviders/WalletProviderRegistry.d.ts +13 -0
- package/src/lib/providers/walletProviders/WalletProviderRegistry.js +2 -1
- package/src/lib/providers/walletProviders/WalletProviderRegistry.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/chains.d.ts +42 -0
- package/src/lib/providers/walletProviders/ethereum/chains.js +1 -4
- package/src/lib/providers/walletProviders/ethereum/chains.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/metamask.d.ts +18 -0
- package/src/lib/providers/walletProviders/ethereum/metamask.js +50 -49
- package/src/lib/providers/walletProviders/ethereum/metamask.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/rabby.d.ts +17 -0
- package/src/lib/providers/walletProviders/ethereum/rabby.js +44 -45
- package/src/lib/providers/walletProviders/ethereum/rabby.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/walletConnect.d.ts +17 -0
- package/src/lib/providers/walletProviders/ethereum/walletConnect.js +68 -66
- package/src/lib/providers/walletProviders/ethereum/walletConnect.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/zerion.d.ts +17 -0
- package/src/lib/providers/walletProviders/ethereum/zerion.js +44 -45
- package/src/lib/providers/walletProviders/ethereum/zerion.js.map +1 -1
- package/src/lib/providers/walletProviders/helpers/address.d.ts +11 -0
- package/src/lib/providers/walletProviders/solana/phantom.d.ts +46 -0
- package/src/lib/providers/walletProviders/solana/phantom.js +60 -56
- package/src/lib/providers/walletProviders/solana/phantom.js.map +1 -1
- package/src/lib/providers/walletProviders/utils/eip6963.d.ts +12 -0
- package/src/lib/providers/walletProviders/utils/eip6963.js +4 -2
- package/src/lib/providers/walletProviders/utils/eip6963.js.map +1 -1
- package/src/lib/styles/token.d.ts +76 -0
- package/src/lib/styles/token.js +1 -5
- package/src/lib/styles/token.js.map +1 -1
- package/src/lib/types/PushWalletProvider.types.d.ts +71 -0
- package/src/lib/types/index.d.ts +2 -0
- package/src/lib/types/wallet.types.d.ts +52 -0
- package/src/lib/utils/theme.d.ts +2 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZerionProvider = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const ethers_1 = require("ethers");
|
|
5
6
|
const viem_1 = require("viem");
|
|
6
7
|
const BaseWalletProvider_1 = require("../BaseWalletProvider");
|
|
@@ -16,14 +17,14 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
16
17
|
wallet_types_1.ChainType.BINANCE,
|
|
17
18
|
wallet_types_1.ChainType.PUSH_WALLET,
|
|
18
19
|
]);
|
|
19
|
-
this.isInstalled =
|
|
20
|
+
this.isInstalled = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
21
|
try {
|
|
21
22
|
return !!this.getProvider();
|
|
22
23
|
}
|
|
23
|
-
catch {
|
|
24
|
+
catch (_a) {
|
|
24
25
|
return false;
|
|
25
26
|
}
|
|
26
|
-
};
|
|
27
|
+
});
|
|
27
28
|
this.getProvider = () => {
|
|
28
29
|
const provider = (0, eip6963_1.getEIP6963ProviderByRdns)('io.zerion.wallet');
|
|
29
30
|
if (!provider) {
|
|
@@ -31,22 +32,22 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
31
32
|
}
|
|
32
33
|
return provider;
|
|
33
34
|
};
|
|
34
|
-
this.getSigner =
|
|
35
|
+
this.getSigner = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
36
|
const provider = this.getProvider();
|
|
36
37
|
const browserProvider = new ethers_1.BrowserProvider(provider);
|
|
37
|
-
return
|
|
38
|
-
};
|
|
39
|
-
this.getChainId =
|
|
38
|
+
return yield browserProvider.getSigner();
|
|
39
|
+
});
|
|
40
|
+
this.getChainId = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
40
41
|
const provider = this.getProvider();
|
|
41
|
-
const hexChainId =
|
|
42
|
+
const hexChainId = yield provider.request({
|
|
42
43
|
method: 'eth_chainId',
|
|
43
44
|
params: [],
|
|
44
45
|
});
|
|
45
46
|
return parseInt(hexChainId.toString(), 16);
|
|
46
|
-
};
|
|
47
|
-
this.connect =
|
|
47
|
+
});
|
|
48
|
+
this.connect = (chainType) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
49
|
const provider = this.getProvider();
|
|
49
|
-
const accounts = (
|
|
50
|
+
const accounts = (yield provider.request({
|
|
50
51
|
method: 'eth_requestAccounts',
|
|
51
52
|
params: [],
|
|
52
53
|
}));
|
|
@@ -54,32 +55,33 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
54
55
|
throw new Error('No Zerion account returned');
|
|
55
56
|
}
|
|
56
57
|
const checksumAddress = (0, ethers_1.getAddress)(accounts[0]);
|
|
57
|
-
|
|
58
|
-
const chainId =
|
|
58
|
+
yield this.switchNetwork(chainType);
|
|
59
|
+
const chainId = yield this.getChainId();
|
|
59
60
|
const caipAddress = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
|
|
60
61
|
return caipAddress;
|
|
61
|
-
};
|
|
62
|
-
this.switchNetwork =
|
|
62
|
+
});
|
|
63
|
+
this.switchNetwork = (chainName) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
var _a, _b, _c;
|
|
63
65
|
const network = chains_1.chains[chainName];
|
|
64
66
|
const provider = this.getProvider();
|
|
65
67
|
const hexNetworkId = (0, viem_1.toHex)(network.id);
|
|
66
68
|
try {
|
|
67
|
-
|
|
69
|
+
yield provider.request({
|
|
68
70
|
method: 'wallet_switchEthereumChain',
|
|
69
71
|
params: [{ chainId: hexNetworkId }],
|
|
70
72
|
});
|
|
71
73
|
}
|
|
72
74
|
catch (err) {
|
|
73
|
-
const msg = String(err
|
|
74
|
-
const needAdd = err
|
|
75
|
-
err
|
|
75
|
+
const msg = String((_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '');
|
|
76
|
+
const needAdd = (err === null || err === void 0 ? void 0 : err.code) === 4902 ||
|
|
77
|
+
(err === null || err === void 0 ? void 0 : err.code) === -32603 ||
|
|
76
78
|
msg.includes('Unrecognized chain ID');
|
|
77
79
|
if (!needAdd) {
|
|
78
80
|
console.error('Zerion: error switching network:', err);
|
|
79
81
|
throw err;
|
|
80
82
|
}
|
|
81
83
|
try {
|
|
82
|
-
|
|
84
|
+
yield provider.request({
|
|
83
85
|
method: 'wallet_addEthereumChain',
|
|
84
86
|
params: [
|
|
85
87
|
{
|
|
@@ -87,13 +89,13 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
87
89
|
chainName: network.name,
|
|
88
90
|
rpcUrls: network.rpcUrls.default.http,
|
|
89
91
|
nativeCurrency: network.nativeCurrency,
|
|
90
|
-
blockExplorerUrls: network.blockExplorers
|
|
92
|
+
blockExplorerUrls: ((_c = (_b = network.blockExplorers) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.url)
|
|
91
93
|
? [network.blockExplorers.default.url]
|
|
92
94
|
: [],
|
|
93
95
|
},
|
|
94
96
|
],
|
|
95
97
|
});
|
|
96
|
-
|
|
98
|
+
yield provider.request({
|
|
97
99
|
method: 'wallet_switchEthereumChain',
|
|
98
100
|
params: [{ chainId: hexNetworkId }],
|
|
99
101
|
});
|
|
@@ -103,10 +105,10 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
103
105
|
throw addError;
|
|
104
106
|
}
|
|
105
107
|
}
|
|
106
|
-
};
|
|
107
|
-
this.signAndSendTransaction =
|
|
108
|
+
});
|
|
109
|
+
this.signAndSendTransaction = (txn) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
108
110
|
const provider = this.getProvider();
|
|
109
|
-
const accounts = (
|
|
111
|
+
const accounts = (yield provider.request({
|
|
110
112
|
method: 'eth_accounts',
|
|
111
113
|
}));
|
|
112
114
|
if (!accounts || accounts.length === 0) {
|
|
@@ -127,57 +129,54 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
127
129
|
? '0x' + parsed.maxFeePerGas.toString(16)
|
|
128
130
|
: undefined,
|
|
129
131
|
};
|
|
130
|
-
const txHash =
|
|
132
|
+
const txHash = yield provider.request({
|
|
131
133
|
method: 'eth_sendTransaction',
|
|
132
134
|
params: [txParams],
|
|
133
135
|
});
|
|
134
136
|
return (0, viem_1.hexToBytes)(txHash);
|
|
135
|
-
};
|
|
136
|
-
this.signMessage =
|
|
137
|
+
});
|
|
138
|
+
this.signMessage = (message) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
137
139
|
const provider = this.getProvider();
|
|
138
|
-
const accounts = (
|
|
140
|
+
const accounts = (yield provider.request({
|
|
139
141
|
method: 'eth_accounts',
|
|
140
142
|
}));
|
|
141
143
|
if (!accounts || accounts.length === 0) {
|
|
142
144
|
throw new Error('No connected Zerion account');
|
|
143
145
|
}
|
|
144
146
|
const hexMessage = (0, viem_1.bytesToHex)(message);
|
|
145
|
-
const signature =
|
|
147
|
+
const signature = yield provider.request({
|
|
146
148
|
method: 'personal_sign',
|
|
147
149
|
params: [hexMessage, accounts[0]],
|
|
148
150
|
});
|
|
149
151
|
return (0, viem_1.hexToBytes)(signature);
|
|
150
|
-
};
|
|
151
|
-
this.signTypedData =
|
|
152
|
+
});
|
|
153
|
+
this.signTypedData = (typedData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
152
154
|
const provider = this.getProvider();
|
|
153
|
-
const accounts = (
|
|
155
|
+
const accounts = (yield provider.request({
|
|
154
156
|
method: 'eth_accounts',
|
|
155
157
|
}));
|
|
156
158
|
if (!accounts || accounts.length === 0) {
|
|
157
159
|
throw new Error('No connected Zerion account');
|
|
158
160
|
}
|
|
159
|
-
typedData.types = {
|
|
160
|
-
EIP712Domain: [
|
|
161
|
+
typedData.types = Object.assign({ EIP712Domain: [
|
|
161
162
|
{ name: 'version', type: 'string' },
|
|
162
163
|
{ name: 'chainId', type: 'uint256' },
|
|
163
164
|
{ name: 'verifyingContract', type: 'address' },
|
|
164
|
-
],
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
: { UniversalPayload: typedData.types['UniversalPayload'] }),
|
|
168
|
-
};
|
|
165
|
+
] }, (typedData.primaryType === 'MigrationPayload'
|
|
166
|
+
? { MigrationPayload: typedData.types['MigrationPayload'] }
|
|
167
|
+
: { UniversalPayload: typedData.types['UniversalPayload'] }));
|
|
169
168
|
const safeTypedData = JSON.parse(JSON.stringify(typedData, (_key, value) => typeof value === 'bigint' ? value.toString() : value));
|
|
170
|
-
const signature =
|
|
169
|
+
const signature = yield provider.request({
|
|
171
170
|
method: 'eth_signTypedData_v4',
|
|
172
171
|
params: [accounts[0], JSON.stringify(safeTypedData)],
|
|
173
172
|
});
|
|
174
173
|
return (0, viem_1.hexToBytes)(signature);
|
|
175
|
-
};
|
|
176
|
-
this.disconnect =
|
|
174
|
+
});
|
|
175
|
+
this.disconnect = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
177
176
|
const provider = (0, eip6963_1.getEIP6963ProviderByRdns)('io.zerion.wallet');
|
|
178
177
|
if (!provider)
|
|
179
178
|
return;
|
|
180
|
-
|
|
179
|
+
yield provider.request({
|
|
181
180
|
method: 'wallet_revokePermissions',
|
|
182
181
|
params: [
|
|
183
182
|
{
|
|
@@ -185,7 +184,7 @@ class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
185
184
|
},
|
|
186
185
|
],
|
|
187
186
|
});
|
|
188
|
-
};
|
|
187
|
+
});
|
|
189
188
|
}
|
|
190
189
|
}
|
|
191
190
|
exports.ZerionProvider = ZerionProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zerion.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/zerion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zerion.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/zerion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChainType } from '../../../types/wallet.types';
|
|
2
|
+
export declare const chainToNamespace: {
|
|
3
|
+
EVM: string;
|
|
4
|
+
SOL: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function fromCAIPFormat(caipAddress: string): {
|
|
7
|
+
chain: ChainType.ETHEREUM | ChainType.SOLANA | ChainType.BINANCE | ChainType.ARBITRUM | ChainType.AVALANCHE;
|
|
8
|
+
chainId: string;
|
|
9
|
+
rawAddress: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function toCAIPFormat(rawAddress: string, chain: ChainType, chainId: number | string): string;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseWalletProvider } from '../BaseWalletProvider';
|
|
2
|
+
import { ChainType, ITypedData } from '../../../types/wallet.types';
|
|
3
|
+
import { Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
phantom?: {
|
|
7
|
+
ethereum?: {
|
|
8
|
+
isConnected?: boolean;
|
|
9
|
+
request: (args: {
|
|
10
|
+
method: string;
|
|
11
|
+
params?: any[];
|
|
12
|
+
}) => Promise<any>;
|
|
13
|
+
};
|
|
14
|
+
solana?: {
|
|
15
|
+
isConnected?: boolean;
|
|
16
|
+
chainId?: number;
|
|
17
|
+
connect: () => Promise<{
|
|
18
|
+
publicKey: {
|
|
19
|
+
toString: () => string;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
22
|
+
disconnect: () => Promise<void>;
|
|
23
|
+
signMessage: (message: Uint8Array, encoding: string) => Promise<{
|
|
24
|
+
signature: Uint8Array;
|
|
25
|
+
}>;
|
|
26
|
+
signAndSendTransaction: (txn: Transaction | VersionedTransaction) => Promise<string>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
ethereum?: any;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export declare class PhantomProvider extends BaseWalletProvider {
|
|
33
|
+
constructor();
|
|
34
|
+
private connectedChainType;
|
|
35
|
+
isInstalled: () => Promise<boolean>;
|
|
36
|
+
private connectEthereum;
|
|
37
|
+
private connectSolana;
|
|
38
|
+
connect: (chainType?: ChainType) => Promise<{
|
|
39
|
+
caipAddress: string;
|
|
40
|
+
}>;
|
|
41
|
+
getChainId: (chainType?: ChainType) => Promise<number>;
|
|
42
|
+
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
|
|
43
|
+
signAndSendTransaction: (txn: Uint8Array) => Promise<Uint8Array>;
|
|
44
|
+
signTypedData: (typedData: ITypedData) => Promise<Uint8Array>;
|
|
45
|
+
disconnect: () => Promise<void>;
|
|
46
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PhantomProvider = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const ethers_1 = require("ethers");
|
|
5
6
|
const BaseWalletProvider_1 = require("../BaseWalletProvider");
|
|
6
7
|
const wallet_types_1 = require("../../../types/wallet.types");
|
|
@@ -15,34 +16,36 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
15
16
|
wallet_types_1.ChainType.SOLANA,
|
|
16
17
|
]);
|
|
17
18
|
this.connectedChainType = null;
|
|
18
|
-
this.isInstalled =
|
|
19
|
+
this.isInstalled = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
20
|
return (typeof window !== 'undefined' && typeof window.phantom !== 'undefined');
|
|
20
|
-
};
|
|
21
|
-
this.connectEthereum =
|
|
22
|
-
|
|
21
|
+
});
|
|
22
|
+
this.connectEthereum = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
if (!((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.ethereum)) {
|
|
23
25
|
throw new Error('Phantom not installed for Ethereum');
|
|
24
26
|
}
|
|
25
|
-
const provider = window.phantom
|
|
26
|
-
const accounts =
|
|
27
|
+
const provider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum;
|
|
28
|
+
const accounts = yield provider.request({ method: 'eth_requestAccounts' });
|
|
27
29
|
const rawAddress = accounts[0];
|
|
28
30
|
const checksumAddress = (0, ethers_1.getAddress)(rawAddress);
|
|
29
|
-
const chainId =
|
|
31
|
+
const chainId = yield this.getChainId(wallet_types_1.ChainType.ETHEREUM);
|
|
30
32
|
this.connectedChainType = wallet_types_1.ChainType.ETHEREUM;
|
|
31
33
|
const caipAddress = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
|
|
32
34
|
return caipAddress;
|
|
33
|
-
};
|
|
34
|
-
this.connectSolana =
|
|
35
|
-
|
|
35
|
+
});
|
|
36
|
+
this.connectSolana = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
if (!((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana)) {
|
|
36
39
|
throw new Error('Phantom not installed for Solana');
|
|
37
40
|
}
|
|
38
|
-
const provider = window.phantom
|
|
39
|
-
const accounts =
|
|
40
|
-
const chainId =
|
|
41
|
+
const provider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.solana;
|
|
42
|
+
const accounts = yield provider.connect();
|
|
43
|
+
const chainId = yield this.getChainId(wallet_types_1.ChainType.SOLANA);
|
|
41
44
|
this.connectedChainType = wallet_types_1.ChainType.SOLANA;
|
|
42
45
|
const caipAddress = this.formatAddress(accounts.publicKey.toString(), wallet_types_1.ChainType.SOLANA, chainId);
|
|
43
46
|
return caipAddress;
|
|
44
|
-
};
|
|
45
|
-
this.connect =
|
|
47
|
+
});
|
|
48
|
+
this.connect = (chainType) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
46
49
|
let account;
|
|
47
50
|
if (!chainType || chainType === wallet_types_1.ChainType.SOLANA) {
|
|
48
51
|
account = this.connectSolana();
|
|
@@ -54,32 +57,34 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
54
57
|
throw new Error('Error in connecting to phantom');
|
|
55
58
|
}
|
|
56
59
|
return account;
|
|
57
|
-
};
|
|
58
|
-
this.getChainId =
|
|
60
|
+
});
|
|
61
|
+
this.getChainId = (chainType) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
var _a, _b;
|
|
59
63
|
if (chainType === wallet_types_1.ChainType.ETHEREUM) {
|
|
60
|
-
const provider = window.phantom
|
|
64
|
+
const provider = (_a = window.phantom) === null || _a === void 0 ? void 0 : _a.ethereum;
|
|
61
65
|
if (!provider)
|
|
62
66
|
throw new Error('No Phantom Ethereum wallet connected');
|
|
63
|
-
const chainId =
|
|
67
|
+
const chainId = yield provider.request({ method: 'eth_chainId' });
|
|
64
68
|
return parseInt(chainId, 16);
|
|
65
69
|
}
|
|
66
70
|
else if (chainType === wallet_types_1.ChainType.SOLANA) {
|
|
67
|
-
const provider = window.phantom
|
|
71
|
+
const provider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.solana;
|
|
68
72
|
if (!provider)
|
|
69
73
|
throw new Error('No Phantom Solana wallet connected');
|
|
70
74
|
return provider.chainId || 1;
|
|
71
75
|
}
|
|
72
76
|
throw new Error('No Phantom wallet connected');
|
|
73
|
-
};
|
|
74
|
-
this.signMessage =
|
|
77
|
+
});
|
|
78
|
+
this.signMessage = (message) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
var _a, _b, _c, _d;
|
|
75
80
|
const isInstalled = this.isInstalled();
|
|
76
81
|
if (!isInstalled) {
|
|
77
82
|
throw new Error('No Phantom wallet installed');
|
|
78
83
|
}
|
|
79
|
-
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && window.phantom
|
|
84
|
+
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana)) {
|
|
80
85
|
try {
|
|
81
|
-
const provider = window.phantom
|
|
82
|
-
const signedMessage =
|
|
86
|
+
const provider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.solana;
|
|
87
|
+
const signedMessage = yield provider.signMessage(message, 'utf8');
|
|
83
88
|
return signedMessage.signature;
|
|
84
89
|
}
|
|
85
90
|
catch (error) {
|
|
@@ -87,17 +92,17 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
87
92
|
throw error;
|
|
88
93
|
}
|
|
89
94
|
}
|
|
90
|
-
else if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && window.phantom
|
|
95
|
+
else if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && ((_c = window.phantom) === null || _c === void 0 ? void 0 : _c.ethereum)) {
|
|
91
96
|
try {
|
|
92
|
-
const provider = window.phantom
|
|
93
|
-
const accounts =
|
|
97
|
+
const provider = (_d = window.phantom) === null || _d === void 0 ? void 0 : _d.ethereum;
|
|
98
|
+
const accounts = yield provider.request({
|
|
94
99
|
method: 'eth_accounts',
|
|
95
100
|
});
|
|
96
101
|
if (!accounts || accounts.length === 0) {
|
|
97
102
|
throw new Error('No connected account');
|
|
98
103
|
}
|
|
99
104
|
const hexMessage = (0, viem_1.bytesToHex)(message);
|
|
100
|
-
const signature =
|
|
105
|
+
const signature = yield provider.request({
|
|
101
106
|
method: 'personal_sign',
|
|
102
107
|
params: [hexMessage, accounts[0]],
|
|
103
108
|
});
|
|
@@ -111,15 +116,16 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
111
116
|
else {
|
|
112
117
|
throw new Error('No Phantom wallet connected');
|
|
113
118
|
}
|
|
114
|
-
};
|
|
115
|
-
this.signAndSendTransaction =
|
|
119
|
+
});
|
|
120
|
+
this.signAndSendTransaction = (txn) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
var _a, _b, _c, _d;
|
|
116
122
|
const isInstalled = this.isInstalled();
|
|
117
123
|
if (!isInstalled) {
|
|
118
124
|
throw new Error('No Phantom wallet installed');
|
|
119
125
|
}
|
|
120
|
-
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && window.phantom
|
|
126
|
+
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana)) {
|
|
121
127
|
try {
|
|
122
|
-
const provider = window.phantom
|
|
128
|
+
const provider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.solana;
|
|
123
129
|
// VersionedTransaction.deserialize handles both legacy and v0 transactions.
|
|
124
130
|
// Check the deserialized message version to decide the appropriate type
|
|
125
131
|
// for Phantom's signAndSendTransaction.
|
|
@@ -131,7 +137,7 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
131
137
|
else {
|
|
132
138
|
transaction = deserialized;
|
|
133
139
|
}
|
|
134
|
-
const signedTransaction =
|
|
140
|
+
const signedTransaction = yield provider.signAndSendTransaction(transaction);
|
|
135
141
|
return bytes_1.bs58.decode(signedTransaction.signature);
|
|
136
142
|
}
|
|
137
143
|
catch (error) {
|
|
@@ -139,10 +145,10 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
139
145
|
throw error;
|
|
140
146
|
}
|
|
141
147
|
}
|
|
142
|
-
else if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && window.phantom
|
|
148
|
+
else if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && ((_c = window.phantom) === null || _c === void 0 ? void 0 : _c.ethereum)) {
|
|
143
149
|
try {
|
|
144
|
-
const provider = window.phantom
|
|
145
|
-
const accounts =
|
|
150
|
+
const provider = (_d = window.phantom) === null || _d === void 0 ? void 0 : _d.ethereum;
|
|
151
|
+
const accounts = yield provider.request({
|
|
146
152
|
method: 'eth_accounts',
|
|
147
153
|
});
|
|
148
154
|
if (!accounts || accounts.length === 0) {
|
|
@@ -163,7 +169,7 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
163
169
|
? '0x' + parsed.maxFeePerGas.toString(16)
|
|
164
170
|
: undefined,
|
|
165
171
|
};
|
|
166
|
-
const signature =
|
|
172
|
+
const signature = yield provider.request({
|
|
167
173
|
method: 'eth_sendTransaction',
|
|
168
174
|
params: [txParams],
|
|
169
175
|
});
|
|
@@ -177,32 +183,29 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
177
183
|
else {
|
|
178
184
|
throw new Error('No Phantom wallet connected');
|
|
179
185
|
}
|
|
180
|
-
};
|
|
181
|
-
this.signTypedData =
|
|
186
|
+
});
|
|
187
|
+
this.signTypedData = (typedData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
var _a, _b;
|
|
182
189
|
const isInstalled = this.isInstalled();
|
|
183
190
|
if (!isInstalled) {
|
|
184
191
|
throw new Error('No Phantom wallet installed');
|
|
185
192
|
}
|
|
186
|
-
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && window.phantom
|
|
193
|
+
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana)) {
|
|
187
194
|
throw new Error('signTypedData is not implemented for this provider');
|
|
188
195
|
}
|
|
189
|
-
else if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && window.phantom
|
|
196
|
+
else if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && ((_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum)) {
|
|
190
197
|
try {
|
|
191
198
|
const walletClient = (0, viem_1.createWalletClient)({
|
|
192
199
|
chain: chains_1.sepolia,
|
|
193
200
|
transport: (0, viem_1.custom)(window.ethereum),
|
|
194
201
|
});
|
|
195
|
-
const accounts =
|
|
202
|
+
const accounts = yield walletClient.request({
|
|
196
203
|
method: 'eth_accounts',
|
|
197
|
-
params: [],
|
|
198
204
|
});
|
|
199
|
-
if (!accounts ||
|
|
205
|
+
if (!accounts || accounts.length === 0) {
|
|
200
206
|
throw new Error('No connected account');
|
|
201
207
|
}
|
|
202
|
-
const signature =
|
|
203
|
-
account: accounts[0],
|
|
204
|
-
...typedData
|
|
205
|
-
});
|
|
208
|
+
const signature = yield walletClient.signTypedData(Object.assign({ account: accounts[0] }, typedData));
|
|
206
209
|
return (0, viem_1.hexToBytes)(signature);
|
|
207
210
|
}
|
|
208
211
|
catch (error) {
|
|
@@ -213,22 +216,23 @@ class PhantomProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
213
216
|
else {
|
|
214
217
|
throw new Error('No Phantom wallet connected');
|
|
215
218
|
}
|
|
216
|
-
};
|
|
217
|
-
this.disconnect =
|
|
219
|
+
});
|
|
220
|
+
this.disconnect = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
221
|
+
var _a, _b, _c;
|
|
218
222
|
const isInstalled = this.isInstalled();
|
|
219
223
|
if (!isInstalled)
|
|
220
224
|
return;
|
|
221
|
-
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && window.phantom
|
|
222
|
-
const provider = window.phantom
|
|
225
|
+
if (this.connectedChainType === wallet_types_1.ChainType.SOLANA && ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana)) {
|
|
226
|
+
const provider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.solana;
|
|
223
227
|
this.connectedChainType = null;
|
|
224
|
-
|
|
228
|
+
yield provider.disconnect();
|
|
225
229
|
}
|
|
226
|
-
if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && window.phantom
|
|
230
|
+
if (this.connectedChainType === wallet_types_1.ChainType.ETHEREUM && ((_c = window.phantom) === null || _c === void 0 ? void 0 : _c.ethereum)) {
|
|
227
231
|
this.connectedChainType = null;
|
|
228
232
|
//TOOD: find how to disconnect ethereum
|
|
229
233
|
}
|
|
230
234
|
return Promise.resolve();
|
|
231
|
-
};
|
|
235
|
+
});
|
|
232
236
|
}
|
|
233
237
|
}
|
|
234
238
|
exports.PhantomProvider = PhantomProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/solana/phantom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/solana/phantom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type EIP6963ProviderDetail = {
|
|
2
|
+
info: {
|
|
3
|
+
uuid: string;
|
|
4
|
+
name: string;
|
|
5
|
+
icon: string;
|
|
6
|
+
rdns: string;
|
|
7
|
+
};
|
|
8
|
+
provider: any;
|
|
9
|
+
};
|
|
10
|
+
export declare function startEIP6963Listener(): void;
|
|
11
|
+
export declare function getEIP6963ProviderByRdns(rdns: string): any;
|
|
12
|
+
export declare function getAllEIP6963Providers(): EIP6963ProviderDetail[];
|
|
@@ -10,8 +10,9 @@ function startEIP6963Listener() {
|
|
|
10
10
|
return;
|
|
11
11
|
isListening = true;
|
|
12
12
|
window.addEventListener("eip6963:announceProvider", ((event) => {
|
|
13
|
+
var _a;
|
|
13
14
|
const detail = event.detail;
|
|
14
|
-
if (!detail
|
|
15
|
+
if (!((_a = detail === null || detail === void 0 ? void 0 : detail.info) === null || _a === void 0 ? void 0 : _a.rdns))
|
|
15
16
|
return;
|
|
16
17
|
providers.set(detail.info.rdns, detail);
|
|
17
18
|
}));
|
|
@@ -19,7 +20,8 @@ function startEIP6963Listener() {
|
|
|
19
20
|
window.dispatchEvent(requestEvent);
|
|
20
21
|
}
|
|
21
22
|
function getEIP6963ProviderByRdns(rdns) {
|
|
22
|
-
|
|
23
|
+
var _a;
|
|
24
|
+
return (_a = providers.get(rdns)) === null || _a === void 0 ? void 0 : _a.provider;
|
|
23
25
|
}
|
|
24
26
|
function getAllEIP6963Providers() {
|
|
25
27
|
return Array.from(providers.values());
|