@pushchain/ui-kit 5.2.0-alpha.0 → 5.2.0-alpha.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.
- package/CHANGELOG.md +18 -0
- package/package.json +2 -2
- package/src/lib/components/LoginModal/index.js +20 -19
- package/src/lib/components/LoginModal/index.js.map +1 -1
- package/src/lib/components/LoginModal/useSmartModalPosition.js +1 -2
- package/src/lib/components/LoginModal/useSmartModalPosition.js.map +1 -1
- package/src/lib/components/PushUniversalAccountButton/index.js +9 -8
- package/src/lib/components/PushUniversalAccountButton/index.js.map +1 -1
- 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.js +1 -4
- package/src/lib/components/common/Button.js.map +1 -1
- package/src/lib/constants/environment.js +2 -2
- package/src/lib/constants/environment.js.map +1 -1
- package/src/lib/context/PushChainContext.d.ts +34 -0
- package/src/lib/context/PushChainContext.js +139 -0
- package/src/lib/context/PushChainContext.js.map +1 -0
- package/src/lib/context/WalletContext.js +102 -88
- package/src/lib/context/WalletContext.js.map +1 -1
- package/src/lib/helpers/txnAuthGuard.js +16 -17
- package/src/lib/helpers/txnAuthGuard.js.map +1 -1
- package/src/lib/hooks/useAppMetadata.js +1 -1
- package/src/lib/hooks/useAppMetadata.js.map +1 -1
- package/src/lib/hooks/usePushChainClient.d.ts +1 -2
- package/src/lib/hooks/usePushChainClient.js +5 -112
- package/src/lib/hooks/usePushChainClient.js.map +1 -1
- package/src/lib/polyfills/index.d.ts +0 -4
- package/src/lib/polyfills/index.js +14 -11
- package/src/lib/polyfills/index.js.map +1 -1
- package/src/lib/providers/PushWalletProvider.js +28 -6
- package/src/lib/providers/PushWalletProvider.js.map +1 -1
- package/src/lib/providers/waap/useWaapAuth.js +18 -19
- package/src/lib/providers/waap/useWaapAuth.js.map +1 -1
- package/src/lib/providers/waap/waap.config.js +2 -4
- package/src/lib/providers/waap/waap.config.js.map +1 -1
- package/src/lib/providers/waap/waapEvents.js +3 -3
- package/src/lib/providers/waap/waapEvents.js.map +1 -1
- package/src/lib/providers/waap/waapProvider.js +28 -31
- package/src/lib/providers/waap/waapProvider.js.map +1 -1
- package/src/lib/providers/walletProviders/BaseWalletProvider.js +3 -0
- package/src/lib/providers/walletProviders/BaseWalletProvider.js.map +1 -1
- package/src/lib/providers/walletProviders/WalletProviderRegistry.js +3 -4
- package/src/lib/providers/walletProviders/WalletProviderRegistry.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/chains.js +4 -1
- package/src/lib/providers/walletProviders/ethereum/chains.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/metamask.js +183 -183
- package/src/lib/providers/walletProviders/ethereum/metamask.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/rabby.js +157 -156
- package/src/lib/providers/walletProviders/ethereum/rabby.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/walletConnect.js +155 -157
- package/src/lib/providers/walletProviders/ethereum/walletConnect.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/zerion.js +157 -156
- package/src/lib/providers/walletProviders/ethereum/zerion.js.map +1 -1
- package/src/lib/providers/walletProviders/solana/phantom.js +210 -215
- package/src/lib/providers/walletProviders/solana/phantom.js.map +1 -1
- package/src/lib/providers/walletProviders/utils/eip6963.js +2 -4
- package/src/lib/providers/walletProviders/utils/eip6963.js.map +1 -1
- package/src/lib/styles/token.js +5 -1
- package/src/lib/styles/token.js.map +1 -1
|
@@ -9,181 +9,179 @@ const wallet_types_1 = require("../../../types/wallet.types");
|
|
|
9
9
|
const chains = tslib_1.__importStar(require("viem/chains"));
|
|
10
10
|
const viem_1 = require("viem");
|
|
11
11
|
class WalletConnectProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
12
|
+
provider = null;
|
|
12
13
|
constructor() {
|
|
13
14
|
super('WalletConnect', 'https://walletconnect.com/walletconnect-logo.svg', [
|
|
14
15
|
wallet_types_1.ChainType.WALLET_CONNECT,
|
|
15
16
|
]);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
}
|
|
18
|
+
isInstalled = async () => {
|
|
19
|
+
return true; // WalletConnect doesn't require installation
|
|
20
|
+
};
|
|
21
|
+
getProvider = () => {
|
|
22
|
+
if (!this.provider) {
|
|
23
|
+
throw new Error('WalletConnect provider not initialized');
|
|
24
|
+
}
|
|
25
|
+
return this.provider;
|
|
26
|
+
};
|
|
27
|
+
async initProvider(chainId) {
|
|
28
|
+
console.log('Provder >>', this.provider);
|
|
29
|
+
if (this.provider) {
|
|
30
|
+
const hasSession = this.provider.session
|
|
31
|
+
&& this.provider.session?.topic;
|
|
32
|
+
if (hasSession) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
await this.provider.disconnect();
|
|
36
|
+
this.provider = null;
|
|
37
|
+
}
|
|
38
|
+
this.provider = await ethereum_provider_1.EthereumProvider.init({
|
|
39
|
+
projectId: 'd73cf3ac4a677153d241b2bd5092fb1d',
|
|
40
|
+
chains: [chainId],
|
|
41
|
+
methods: ['eth_sendTransaction', 'personal_sign', 'eth_signTypedData_v4', 'eth_requestAccounts', 'eth_chainId', 'eth_accounts'],
|
|
42
|
+
showQrModal: true,
|
|
43
|
+
rpcMap: {
|
|
44
|
+
'11155111': 'https://sepolia.gateway.tenderly.co/',
|
|
45
|
+
},
|
|
46
|
+
optionalChains: [],
|
|
19
47
|
});
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
48
|
+
await this.provider.enable();
|
|
49
|
+
}
|
|
50
|
+
async connect() {
|
|
51
|
+
try {
|
|
52
|
+
const chain = chains['sepolia'];
|
|
53
|
+
const chainId = chain.id;
|
|
54
|
+
await this.initProvider(chainId);
|
|
55
|
+
const accounts = (await this.provider.request({
|
|
56
|
+
method: 'eth_requestAccounts',
|
|
57
|
+
}));
|
|
58
|
+
if (!accounts || accounts.length === 0) {
|
|
59
|
+
throw new Error('No connected account');
|
|
23
60
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
61
|
+
const rawAddress = accounts[0];
|
|
62
|
+
const checksumAddress = (0, ethers_1.getAddress)(rawAddress);
|
|
63
|
+
const caipAddress = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
|
|
64
|
+
return caipAddress;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error('Failed to connect to MetaMask:', error);
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
getChainId = async () => {
|
|
72
|
+
const provider = this.getProvider();
|
|
73
|
+
if (!provider) {
|
|
74
|
+
throw new Error('Provider is undefined');
|
|
75
|
+
}
|
|
76
|
+
const hexChainId = (await provider.request({
|
|
77
|
+
method: 'eth_chainId',
|
|
78
|
+
params: [],
|
|
79
|
+
}));
|
|
80
|
+
const chainId = parseInt(hexChainId.toString(), 16);
|
|
81
|
+
return chainId;
|
|
82
|
+
};
|
|
83
|
+
signAndSendTransaction = async (txn) => {
|
|
84
|
+
try {
|
|
27
85
|
const provider = this.getProvider();
|
|
28
86
|
if (!provider) {
|
|
29
87
|
throw new Error('Provider is undefined');
|
|
30
88
|
}
|
|
31
|
-
const
|
|
32
|
-
method: '
|
|
33
|
-
params: [],
|
|
89
|
+
const accounts = (await provider.request({
|
|
90
|
+
method: 'eth_accounts',
|
|
34
91
|
}));
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
38
|
-
this.signAndSendTransaction = (txn) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
try {
|
|
40
|
-
const provider = this.getProvider();
|
|
41
|
-
if (!provider) {
|
|
42
|
-
throw new Error('Provider is undefined');
|
|
43
|
-
}
|
|
44
|
-
const accounts = (yield provider.request({
|
|
45
|
-
method: 'eth_accounts',
|
|
46
|
-
}));
|
|
47
|
-
if (!accounts || accounts.length === 0) {
|
|
48
|
-
throw new Error('No connected account');
|
|
49
|
-
}
|
|
50
|
-
const hex = (0, viem_1.bytesToHex)(txn);
|
|
51
|
-
const parsed = (0, viem_1.parseTransaction)(hex);
|
|
52
|
-
const txParams = {
|
|
53
|
-
from: accounts[0],
|
|
54
|
-
to: parsed.to,
|
|
55
|
-
value: parsed.value ? '0x' + parsed.value.toString(16) : undefined,
|
|
56
|
-
data: parsed.data,
|
|
57
|
-
gas: parsed.gas ? '0x' + parsed.gas.toString(16) : undefined,
|
|
58
|
-
maxPriorityFeePerGas: parsed.maxPriorityFeePerGas
|
|
59
|
-
? '0x' + parsed.maxPriorityFeePerGas.toString(16)
|
|
60
|
-
: undefined,
|
|
61
|
-
maxFeePerGas: parsed.maxFeePerGas
|
|
62
|
-
? '0x' + parsed.maxFeePerGas.toString(16)
|
|
63
|
-
: undefined,
|
|
64
|
-
};
|
|
65
|
-
const signature = yield provider.request({
|
|
66
|
-
method: 'eth_sendTransaction',
|
|
67
|
-
params: [txParams],
|
|
68
|
-
});
|
|
69
|
-
return (0, viem_1.hexToBytes)(signature);
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.error('MetaMask signing error:', error);
|
|
73
|
-
throw error;
|
|
92
|
+
if (!accounts || accounts.length === 0) {
|
|
93
|
+
throw new Error('No connected account');
|
|
74
94
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (!provider) {
|
|
104
|
-
throw new Error('Provider is undefined');
|
|
105
|
-
}
|
|
106
|
-
const accounts = (yield provider.request({
|
|
107
|
-
method: 'eth_accounts',
|
|
108
|
-
}));
|
|
109
|
-
if (!accounts || accounts.length === 0) {
|
|
110
|
-
throw new Error('No connected account');
|
|
111
|
-
}
|
|
112
|
-
typedData.types = Object.assign({ EIP712Domain: [
|
|
113
|
-
{ name: 'version', type: 'string' },
|
|
114
|
-
{ name: 'chainId', type: 'uint256' },
|
|
115
|
-
{ name: 'verifyingContract', type: 'address' },
|
|
116
|
-
] }, (typedData.primaryType === 'MigrationPayload'
|
|
117
|
-
? { MigrationPayload: typedData.types['MigrationPayload'] }
|
|
118
|
-
: { UniversalPayload: typedData.types['UniversalPayload'] }));
|
|
119
|
-
const signature = yield provider.request({
|
|
120
|
-
method: 'eth_signTypedData_v4',
|
|
121
|
-
params: [accounts[0], JSON.stringify(typedData)],
|
|
122
|
-
});
|
|
123
|
-
return (0, viem_1.hexToBytes)(signature);
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
console.error('MetaMask signing error:', error);
|
|
127
|
-
throw error;
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
this.disconnect = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const hex = (0, viem_1.bytesToHex)(txn);
|
|
96
|
+
const parsed = (0, viem_1.parseTransaction)(hex);
|
|
97
|
+
const txParams = {
|
|
98
|
+
from: accounts[0],
|
|
99
|
+
to: parsed.to,
|
|
100
|
+
value: parsed.value ? '0x' + parsed.value.toString(16) : undefined,
|
|
101
|
+
data: parsed.data,
|
|
102
|
+
gas: parsed.gas ? '0x' + parsed.gas.toString(16) : undefined,
|
|
103
|
+
maxPriorityFeePerGas: parsed.maxPriorityFeePerGas
|
|
104
|
+
? '0x' + parsed.maxPriorityFeePerGas.toString(16)
|
|
105
|
+
: undefined,
|
|
106
|
+
maxFeePerGas: parsed.maxFeePerGas
|
|
107
|
+
? '0x' + parsed.maxFeePerGas.toString(16)
|
|
108
|
+
: undefined,
|
|
109
|
+
};
|
|
110
|
+
const signature = await provider.request({
|
|
111
|
+
method: 'eth_sendTransaction',
|
|
112
|
+
params: [txParams],
|
|
113
|
+
});
|
|
114
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
console.error('MetaMask signing error:', error);
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
signMessage = async (message) => {
|
|
122
|
+
try {
|
|
131
123
|
const provider = this.getProvider();
|
|
132
|
-
if (provider
|
|
133
|
-
|
|
124
|
+
if (!provider) {
|
|
125
|
+
throw new Error('Provider is undefined');
|
|
134
126
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
var _a;
|
|
141
|
-
console.log('Provder >>', this.provider);
|
|
142
|
-
if (this.provider) {
|
|
143
|
-
const hasSession = this.provider.session
|
|
144
|
-
&& ((_a = this.provider.session) === null || _a === void 0 ? void 0 : _a.topic);
|
|
145
|
-
if (hasSession) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
yield this.provider.disconnect();
|
|
149
|
-
this.provider = null;
|
|
127
|
+
const accounts = (await provider.request({
|
|
128
|
+
method: 'eth_accounts',
|
|
129
|
+
}));
|
|
130
|
+
if (!accounts || accounts.length === 0) {
|
|
131
|
+
throw new Error('No connected account');
|
|
150
132
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
showQrModal: true,
|
|
156
|
-
rpcMap: {
|
|
157
|
-
'11155111': 'https://sepolia.gateway.tenderly.co/',
|
|
158
|
-
},
|
|
159
|
-
optionalChains: [],
|
|
133
|
+
const hexMessage = (0, viem_1.bytesToHex)(message);
|
|
134
|
+
const signature = await provider.request({
|
|
135
|
+
method: 'personal_sign',
|
|
136
|
+
params: [hexMessage, accounts[0]],
|
|
160
137
|
});
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (!accounts || accounts.length === 0) {
|
|
174
|
-
throw new Error('No connected account');
|
|
175
|
-
}
|
|
176
|
-
const rawAddress = accounts[0];
|
|
177
|
-
const checksumAddress = (0, ethers_1.getAddress)(rawAddress);
|
|
178
|
-
const caipAddress = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
|
|
179
|
-
return caipAddress;
|
|
138
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.error('MetaMask signing error:', error);
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
signTypedData = async (typedData) => {
|
|
146
|
+
try {
|
|
147
|
+
const provider = this.getProvider();
|
|
148
|
+
if (!provider) {
|
|
149
|
+
throw new Error('Provider is undefined');
|
|
180
150
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
151
|
+
const accounts = (await provider.request({
|
|
152
|
+
method: 'eth_accounts',
|
|
153
|
+
}));
|
|
154
|
+
if (!accounts || accounts.length === 0) {
|
|
155
|
+
throw new Error('No connected account');
|
|
184
156
|
}
|
|
185
|
-
|
|
186
|
-
|
|
157
|
+
typedData.types = {
|
|
158
|
+
EIP712Domain: [
|
|
159
|
+
{ name: 'version', type: 'string' },
|
|
160
|
+
{ name: 'chainId', type: 'uint256' },
|
|
161
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
162
|
+
],
|
|
163
|
+
...(typedData.primaryType === 'MigrationPayload'
|
|
164
|
+
? { MigrationPayload: typedData.types['MigrationPayload'] }
|
|
165
|
+
: { UniversalPayload: typedData.types['UniversalPayload'] }),
|
|
166
|
+
};
|
|
167
|
+
const signature = await provider.request({
|
|
168
|
+
method: 'eth_signTypedData_v4',
|
|
169
|
+
params: [accounts[0], JSON.stringify(typedData)],
|
|
170
|
+
});
|
|
171
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
console.error('MetaMask signing error:', error);
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
disconnect = async () => {
|
|
179
|
+
const provider = this.getProvider();
|
|
180
|
+
if (provider && typeof provider.disconnect === 'function') {
|
|
181
|
+
await provider.disconnect();
|
|
182
|
+
}
|
|
183
|
+
this.provider = null;
|
|
184
|
+
};
|
|
187
185
|
}
|
|
188
186
|
exports.WalletConnectProvider = WalletConnectProvider;
|
|
189
187
|
//# sourceMappingURL=walletConnect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/walletConnect.ts"],"names":[],"mappings":";;;;AAAA,wEAAoE;AACpE,mCAAoC;AACpC,8DAA2D;AAC3D,8DAAoE;AACpE,4DAAsC;AACtC,+BAAuE;AAGvE,MAAa,qBAAsB,SAAQ,uCAAkB;
|
|
1
|
+
{"version":3,"file":"walletConnect.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/walletConnect.ts"],"names":[],"mappings":"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"}
|