@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.
Files changed (59) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +2 -2
  3. package/src/lib/components/LoginModal/index.js +20 -19
  4. package/src/lib/components/LoginModal/index.js.map +1 -1
  5. package/src/lib/components/LoginModal/useSmartModalPosition.js +1 -2
  6. package/src/lib/components/LoginModal/useSmartModalPosition.js.map +1 -1
  7. package/src/lib/components/PushUniversalAccountButton/index.js +9 -8
  8. package/src/lib/components/PushUniversalAccountButton/index.js.map +1 -1
  9. package/src/lib/components/PushWalletToast/index.js +2 -2
  10. package/src/lib/components/PushWalletToast/index.js.map +1 -1
  11. package/src/lib/components/common/Button.js +1 -4
  12. package/src/lib/components/common/Button.js.map +1 -1
  13. package/src/lib/constants/environment.js +2 -2
  14. package/src/lib/constants/environment.js.map +1 -1
  15. package/src/lib/context/PushChainContext.d.ts +34 -0
  16. package/src/lib/context/PushChainContext.js +139 -0
  17. package/src/lib/context/PushChainContext.js.map +1 -0
  18. package/src/lib/context/WalletContext.js +102 -88
  19. package/src/lib/context/WalletContext.js.map +1 -1
  20. package/src/lib/helpers/txnAuthGuard.js +16 -17
  21. package/src/lib/helpers/txnAuthGuard.js.map +1 -1
  22. package/src/lib/hooks/useAppMetadata.js +1 -1
  23. package/src/lib/hooks/useAppMetadata.js.map +1 -1
  24. package/src/lib/hooks/usePushChainClient.d.ts +1 -2
  25. package/src/lib/hooks/usePushChainClient.js +5 -112
  26. package/src/lib/hooks/usePushChainClient.js.map +1 -1
  27. package/src/lib/polyfills/index.d.ts +0 -4
  28. package/src/lib/polyfills/index.js +14 -11
  29. package/src/lib/polyfills/index.js.map +1 -1
  30. package/src/lib/providers/PushWalletProvider.js +28 -6
  31. package/src/lib/providers/PushWalletProvider.js.map +1 -1
  32. package/src/lib/providers/waap/useWaapAuth.js +18 -19
  33. package/src/lib/providers/waap/useWaapAuth.js.map +1 -1
  34. package/src/lib/providers/waap/waap.config.js +2 -4
  35. package/src/lib/providers/waap/waap.config.js.map +1 -1
  36. package/src/lib/providers/waap/waapEvents.js +3 -3
  37. package/src/lib/providers/waap/waapEvents.js.map +1 -1
  38. package/src/lib/providers/waap/waapProvider.js +28 -31
  39. package/src/lib/providers/waap/waapProvider.js.map +1 -1
  40. package/src/lib/providers/walletProviders/BaseWalletProvider.js +3 -0
  41. package/src/lib/providers/walletProviders/BaseWalletProvider.js.map +1 -1
  42. package/src/lib/providers/walletProviders/WalletProviderRegistry.js +3 -4
  43. package/src/lib/providers/walletProviders/WalletProviderRegistry.js.map +1 -1
  44. package/src/lib/providers/walletProviders/ethereum/chains.js +4 -1
  45. package/src/lib/providers/walletProviders/ethereum/chains.js.map +1 -1
  46. package/src/lib/providers/walletProviders/ethereum/metamask.js +183 -183
  47. package/src/lib/providers/walletProviders/ethereum/metamask.js.map +1 -1
  48. package/src/lib/providers/walletProviders/ethereum/rabby.js +157 -156
  49. package/src/lib/providers/walletProviders/ethereum/rabby.js.map +1 -1
  50. package/src/lib/providers/walletProviders/ethereum/walletConnect.js +155 -157
  51. package/src/lib/providers/walletProviders/ethereum/walletConnect.js.map +1 -1
  52. package/src/lib/providers/walletProviders/ethereum/zerion.js +157 -156
  53. package/src/lib/providers/walletProviders/ethereum/zerion.js.map +1 -1
  54. package/src/lib/providers/walletProviders/solana/phantom.js +210 -215
  55. package/src/lib/providers/walletProviders/solana/phantom.js.map +1 -1
  56. package/src/lib/providers/walletProviders/utils/eip6963.js +2 -4
  57. package/src/lib/providers/walletProviders/utils/eip6963.js.map +1 -1
  58. package/src/lib/styles/token.js +5 -1
  59. package/src/lib/styles/token.js.map +1 -1
@@ -7,9 +7,9 @@ const rabby_1 = require("./ethereum/rabby");
7
7
  const zerion_1 = require("./ethereum/zerion");
8
8
  const walletConnect_1 = require("./ethereum/walletConnect");
9
9
  class WalletProviderRegistry {
10
+ providers = new Map();
11
+ chainProviders = new Map();
10
12
  constructor() {
11
- this.providers = new Map();
12
- this.chainProviders = new Map();
13
13
  this.registerProvider(new metamask_1.MetamaskProvider());
14
14
  this.registerProvider(new phantom_1.PhantomProvider());
15
15
  this.registerProvider(new walletConnect_1.WalletConnectProvider());
@@ -19,11 +19,10 @@ class WalletProviderRegistry {
19
19
  registerProvider(provider) {
20
20
  this.providers.set(provider.name, provider);
21
21
  provider.supportedChains.forEach((chain) => {
22
- var _a;
23
22
  if (!this.chainProviders.has(chain)) {
24
23
  this.chainProviders.set(chain, []);
25
24
  }
26
- (_a = this.chainProviders.get(chain)) === null || _a === void 0 ? void 0 : _a.push(provider);
25
+ this.chainProviders.get(chain)?.push(provider);
27
26
  });
28
27
  }
29
28
  getProvider(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"WalletProviderRegistry.js","sourceRoot":"","sources":["../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/WalletProviderRegistry.ts"],"names":[],"mappings":";;;AAAA,kDAAuD;AACvD,8CAAmD;AACnD,4CAAiD;AACjD,8CAAmD;AAEnD,4DAAiE;AAEjE,MAAM,sBAAsB;IAI1B;QAHQ,cAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;QACpD,mBAAc,GAAsC,IAAI,GAAG,EAAE,CAAC;QAGpE,IAAI,CAAC,gBAAgB,CAAC,IAAI,2BAAgB,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,yBAAe,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,qCAAqB,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,IAAI,qBAAa,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,uBAAc,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB,CAAC,QAAyB;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE5C,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;YACzC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,KAAgB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAEY,QAAA,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"WalletProviderRegistry.js","sourceRoot":"","sources":["../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/WalletProviderRegistry.ts"],"names":[],"mappings":";;;AAAA,kDAAuD;AACvD,8CAAmD;AACnD,4CAAiD;AACjD,8CAAmD;AAEnD,4DAAiE;AAEjE,MAAM,sBAAsB;IAClB,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IACpD,cAAc,GAAsC,IAAI,GAAG,EAAE,CAAC;IAEtE;QACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,2BAAgB,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,yBAAe,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,qCAAqB,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,IAAI,qBAAa,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,uBAAc,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB,CAAC,QAAyB;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE5C,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB,CAAC,KAAgB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAEY,QAAA,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
@@ -22,5 +22,8 @@ exports.pushWalletDonut = (0, viem_1.defineChain)({
22
22
  default: { name: 'Push Testnet Explorer', url: 'https://donut.push.network/' },
23
23
  },
24
24
  });
25
- exports.chains = Object.assign(Object.assign({}, viemChains), { pushWalletDonut: exports.pushWalletDonut });
25
+ exports.chains = {
26
+ ...viemChains,
27
+ pushWalletDonut: exports.pushWalletDonut,
28
+ };
26
29
  //# sourceMappingURL=chains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/chains.ts"],"names":[],"mappings":";;;;AAAA,+BAAmC;AACnC,gEAA0C;AAI7B,QAAA,eAAe,GAAG,IAAA,kBAAW,EAAC;IACzC,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,oBAAoB;IAC1B,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,IAAI;KACb;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,iCAAiC,CAAC;YACzC,SAAS,EAAE,CAAC,8BAA8B,CAAC;SAC5C;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,6BAA6B,EAAE;KAC/E;CACF,CAAC,CAAC;AAEU,QAAA,MAAM,mCACd,UAAU,KACb,eAAe,EAAf,uBAAe,IACf"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/chains.ts"],"names":[],"mappings":";;;;AAAA,+BAAmC;AACnC,gEAA0C;AAI7B,QAAA,eAAe,GAAG,IAAA,kBAAW,EAAC;IACzC,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,oBAAoB;IAC1B,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,IAAI;KACb;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,iCAAiC,CAAC;YACzC,SAAS,EAAE,CAAC,8BAA8B,CAAC;SAC5C;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,6BAA6B,EAAE;KAC/E;CACF,CAAC,CAAC;AAEU,QAAA,MAAM,GAAc;IAC/B,GAAG,UAAU;IACb,eAAe,EAAf,uBAAe;CAChB,CAAC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MetamaskProvider = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const sdk_1 = require("@metamask/sdk");
6
5
  const BaseWalletProvider_1 = require("../BaseWalletProvider");
7
6
  const wallet_types_1 = require("../../../types/wallet.types");
@@ -9,6 +8,7 @@ const ethers_1 = require("ethers");
9
8
  const chains_1 = require("./chains");
10
9
  const viem_1 = require("viem");
11
10
  class MetamaskProvider extends BaseWalletProvider_1.BaseWalletProvider {
11
+ sdk;
12
12
  constructor() {
13
13
  super('MetaMask', 'https://metamask.io/images/metamask-fox.svg', [
14
14
  wallet_types_1.ChainType.ETHEREUM,
@@ -17,205 +17,205 @@ class MetamaskProvider extends BaseWalletProvider_1.BaseWalletProvider {
17
17
  wallet_types_1.ChainType.BINANCE,
18
18
  wallet_types_1.ChainType.PUSH_WALLET,
19
19
  ]);
20
- this.isInstalled = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
21
- const provider = this.sdk.getProvider();
22
- return !!provider;
23
- });
24
- this.getProvider = () => {
25
- return this.sdk.getProvider();
26
- };
27
- this.getSigner = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
28
- const sdkProvider = this.sdk.getProvider();
29
- if (!sdkProvider) {
30
- throw new Error('Provider is undefined');
31
- }
32
- const browserProvider = new ethers_1.BrowserProvider(sdkProvider);
33
- return yield browserProvider.getSigner();
34
- });
35
- this.getChainId = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
36
- const provider = this.getProvider();
37
- if (!provider) {
38
- throw new Error('Provider is undefined');
39
- }
40
- const hexChainId = (yield provider.request({
41
- method: 'eth_chainId',
42
- params: [],
43
- }));
44
- const chainId = parseInt(hexChainId.toString(), 16);
45
- return chainId;
46
- });
47
- this.switchNetwork = (chainName) => tslib_1.__awaiter(this, void 0, void 0, function* () {
48
- var _a;
49
- const network = chains_1.chains[chainName];
50
- const provider = this.getProvider();
51
- if (!provider)
52
- throw new Error('Provider not found while switching network');
53
- const hexNetworkId = (0, viem_1.toHex)(network.id);
54
- try {
55
- // Try to switch to the network
56
- yield provider.request({
57
- method: 'wallet_switchEthereumChain',
58
- params: [{ chainId: hexNetworkId }],
59
- });
60
- }
61
- catch (err) {
62
- // If the error code is 4902, the network needs to be added
63
- if (err.code === 4902) {
64
- try {
65
- yield provider.request({
66
- method: 'wallet_addEthereumChain',
67
- params: [
68
- {
69
- chainId: hexNetworkId,
70
- chainName: network.name,
71
- rpcUrls: network.rpcUrls.default.http,
72
- nativeCurrency: network.nativeCurrency,
73
- blockExplorerUrls: (_a = network.blockExplorers) === null || _a === void 0 ? void 0 : _a.default.url,
74
- },
75
- ],
76
- });
77
- }
78
- catch (addError) {
79
- console.error('Error adding network:', addError);
80
- throw addError;
81
- }
82
- }
83
- else {
84
- console.error('Error switching network:', err);
85
- throw err;
86
- }
20
+ this.sdk = new sdk_1.MetaMaskSDK({
21
+ dappMetadata: {
22
+ url: 'https://push.org/',
87
23
  }
88
24
  });
89
- this.signAndSendTransaction = (txn) => tslib_1.__awaiter(this, void 0, void 0, function* () {
90
- try {
91
- const provider = this.getProvider();
92
- if (!provider) {
93
- throw new Error('Provider is undefined');
25
+ }
26
+ isInstalled = async () => {
27
+ const provider = this.sdk.getProvider();
28
+ return !!provider;
29
+ };
30
+ getProvider = () => {
31
+ return this.sdk.getProvider();
32
+ };
33
+ getSigner = async () => {
34
+ const sdkProvider = this.sdk.getProvider();
35
+ if (!sdkProvider) {
36
+ throw new Error('Provider is undefined');
37
+ }
38
+ const browserProvider = new ethers_1.BrowserProvider(sdkProvider);
39
+ return await browserProvider.getSigner();
40
+ };
41
+ async connect(chainType) {
42
+ try {
43
+ const accounts = await this.sdk.connect();
44
+ const rawAddress = accounts[0];
45
+ const checksumAddress = (0, ethers_1.getAddress)(rawAddress);
46
+ await this.switchNetwork(chainType);
47
+ const chainId = await this.getChainId();
48
+ const addressincaip = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
49
+ return addressincaip;
50
+ }
51
+ catch (error) {
52
+ console.error('Failed to connect to MetaMask:', error);
53
+ throw error;
54
+ }
55
+ }
56
+ getChainId = async () => {
57
+ const provider = this.getProvider();
58
+ if (!provider) {
59
+ throw new Error('Provider is undefined');
60
+ }
61
+ const hexChainId = (await provider.request({
62
+ method: 'eth_chainId',
63
+ params: [],
64
+ }));
65
+ const chainId = parseInt(hexChainId.toString(), 16);
66
+ return chainId;
67
+ };
68
+ switchNetwork = async (chainName) => {
69
+ const network = chains_1.chains[chainName];
70
+ const provider = this.getProvider();
71
+ if (!provider)
72
+ throw new Error('Provider not found while switching network');
73
+ const hexNetworkId = (0, viem_1.toHex)(network.id);
74
+ try {
75
+ // Try to switch to the network
76
+ await provider.request({
77
+ method: 'wallet_switchEthereumChain',
78
+ params: [{ chainId: hexNetworkId }],
79
+ });
80
+ }
81
+ catch (err) {
82
+ // If the error code is 4902, the network needs to be added
83
+ if (err.code === 4902) {
84
+ try {
85
+ await provider.request({
86
+ method: 'wallet_addEthereumChain',
87
+ params: [
88
+ {
89
+ chainId: hexNetworkId,
90
+ chainName: network.name,
91
+ rpcUrls: network.rpcUrls.default.http,
92
+ nativeCurrency: network.nativeCurrency,
93
+ blockExplorerUrls: network.blockExplorers?.default.url,
94
+ },
95
+ ],
96
+ });
94
97
  }
95
- const accounts = (yield provider.request({
96
- method: 'eth_accounts',
97
- }));
98
- if (!accounts || accounts.length === 0) {
99
- throw new Error('No connected account');
98
+ catch (addError) {
99
+ console.error('Error adding network:', addError);
100
+ throw addError;
100
101
  }
101
- const hex = (0, viem_1.bytesToHex)(txn);
102
- const parsed = (0, viem_1.parseTransaction)(hex);
103
- const txParams = {
104
- from: accounts[0],
105
- to: parsed.to,
106
- value: parsed.value ? '0x' + parsed.value.toString(16) : undefined,
107
- data: parsed.data,
108
- gas: parsed.gas ? '0x' + parsed.gas.toString(16) : undefined,
109
- maxPriorityFeePerGas: parsed.maxPriorityFeePerGas
110
- ? '0x' + parsed.maxPriorityFeePerGas.toString(16)
111
- : undefined,
112
- maxFeePerGas: parsed.maxFeePerGas
113
- ? '0x' + parsed.maxFeePerGas.toString(16)
114
- : undefined,
115
- };
116
- const signature = yield provider.request({
117
- method: 'eth_sendTransaction',
118
- params: [txParams],
119
- });
120
- return (0, viem_1.hexToBytes)(signature);
121
102
  }
122
- catch (error) {
123
- console.error('MetaMask signing error:', error);
124
- throw error;
103
+ else {
104
+ console.error('Error switching network:', err);
105
+ throw err;
125
106
  }
126
- });
127
- this.signMessage = (message) => tslib_1.__awaiter(this, void 0, void 0, function* () {
128
- try {
129
- const provider = this.getProvider();
130
- if (!provider) {
131
- throw new Error('Provider is undefined');
132
- }
133
- const accounts = (yield provider.request({
134
- method: 'eth_accounts',
135
- }));
136
- if (!accounts || accounts.length === 0) {
137
- throw new Error('No connected account');
138
- }
139
- const hexMessage = (0, viem_1.bytesToHex)(message);
140
- const signature = yield provider.request({
141
- method: 'personal_sign',
142
- params: [hexMessage, accounts[0]],
143
- });
144
- return (0, viem_1.hexToBytes)(signature);
107
+ }
108
+ };
109
+ signAndSendTransaction = async (txn) => {
110
+ try {
111
+ const provider = this.getProvider();
112
+ if (!provider) {
113
+ throw new Error('Provider is undefined');
145
114
  }
146
- catch (error) {
147
- console.error('MetaMask signing error:', error);
148
- throw error;
115
+ const accounts = (await provider.request({
116
+ method: 'eth_accounts',
117
+ }));
118
+ if (!accounts || accounts.length === 0) {
119
+ throw new Error('No connected account');
149
120
  }
150
- });
151
- this.signTypedData = (typedData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
152
- try {
153
- const provider = this.getProvider();
154
- if (!provider) {
155
- throw new Error('Provider is undefined');
156
- }
157
- const accounts = (yield provider.request({
158
- method: 'eth_accounts',
159
- }));
160
- if (!accounts || accounts.length === 0) {
161
- throw new Error('No connected account');
162
- }
163
- typedData.types = Object.assign({ EIP712Domain: [
164
- { name: 'version', type: 'string' },
165
- { name: 'chainId', type: 'uint256' },
166
- { name: 'verifyingContract', type: 'address' },
167
- ] }, (typedData.primaryType === 'MigrationPayload'
168
- ? { MigrationPayload: typedData.types['MigrationPayload'] }
169
- : { UniversalPayload: typedData.types['UniversalPayload'] }));
170
- const safeTypedData = JSON.parse(JSON.stringify(typedData, (_key, value) => typeof value === 'bigint' ? value.toString() : value));
171
- const signature = yield provider.request({
172
- method: 'eth_signTypedData_v4',
173
- params: [accounts[0], JSON.stringify(safeTypedData)],
174
- });
175
- return (0, viem_1.hexToBytes)(signature);
121
+ const hex = (0, viem_1.bytesToHex)(txn);
122
+ const parsed = (0, viem_1.parseTransaction)(hex);
123
+ const txParams = {
124
+ from: accounts[0],
125
+ to: parsed.to,
126
+ value: parsed.value ? '0x' + parsed.value.toString(16) : undefined,
127
+ data: parsed.data,
128
+ gas: parsed.gas ? '0x' + parsed.gas.toString(16) : undefined,
129
+ maxPriorityFeePerGas: parsed.maxPriorityFeePerGas
130
+ ? '0x' + parsed.maxPriorityFeePerGas.toString(16)
131
+ : undefined,
132
+ maxFeePerGas: parsed.maxFeePerGas
133
+ ? '0x' + parsed.maxFeePerGas.toString(16)
134
+ : undefined,
135
+ };
136
+ const signature = await provider.request({
137
+ method: 'eth_sendTransaction',
138
+ params: [txParams],
139
+ });
140
+ return (0, viem_1.hexToBytes)(signature);
141
+ }
142
+ catch (error) {
143
+ console.error('MetaMask signing error:', error);
144
+ throw error;
145
+ }
146
+ };
147
+ signMessage = async (message) => {
148
+ try {
149
+ const provider = this.getProvider();
150
+ if (!provider) {
151
+ throw new Error('Provider is undefined');
176
152
  }
177
- catch (error) {
178
- console.error('MetaMask signing error:', error);
179
- throw error;
153
+ const accounts = (await provider.request({
154
+ method: 'eth_accounts',
155
+ }));
156
+ if (!accounts || accounts.length === 0) {
157
+ throw new Error('No connected account');
180
158
  }
181
- });
182
- this.disconnect = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
159
+ const hexMessage = (0, viem_1.bytesToHex)(message);
160
+ const signature = await provider.request({
161
+ method: 'personal_sign',
162
+ params: [hexMessage, accounts[0]],
163
+ });
164
+ return (0, viem_1.hexToBytes)(signature);
165
+ }
166
+ catch (error) {
167
+ console.error('MetaMask signing error:', error);
168
+ throw error;
169
+ }
170
+ };
171
+ signTypedData = async (typedData) => {
172
+ try {
183
173
  const provider = this.getProvider();
184
174
  if (!provider) {
185
175
  throw new Error('Provider is undefined');
186
176
  }
187
- yield provider.request({
188
- method: 'wallet_revokePermissions',
189
- params: [
190
- {
191
- eth_accounts: {},
192
- },
177
+ const accounts = (await provider.request({
178
+ method: 'eth_accounts',
179
+ }));
180
+ if (!accounts || accounts.length === 0) {
181
+ throw new Error('No connected account');
182
+ }
183
+ typedData.types = {
184
+ EIP712Domain: [
185
+ { name: 'version', type: 'string' },
186
+ { name: 'chainId', type: 'uint256' },
187
+ { name: 'verifyingContract', type: 'address' },
193
188
  ],
189
+ ...(typedData.primaryType === 'MigrationPayload'
190
+ ? { MigrationPayload: typedData.types['MigrationPayload'] }
191
+ : { UniversalPayload: typedData.types['UniversalPayload'] }),
192
+ };
193
+ const safeTypedData = JSON.parse(JSON.stringify(typedData, (_key, value) => typeof value === 'bigint' ? value.toString() : value));
194
+ const signature = await provider.request({
195
+ method: 'eth_signTypedData_v4',
196
+ params: [accounts[0], JSON.stringify(safeTypedData)],
194
197
  });
198
+ return (0, viem_1.hexToBytes)(signature);
199
+ }
200
+ catch (error) {
201
+ console.error('MetaMask signing error:', error);
202
+ throw error;
203
+ }
204
+ };
205
+ disconnect = async () => {
206
+ const provider = this.getProvider();
207
+ if (!provider) {
208
+ throw new Error('Provider is undefined');
209
+ }
210
+ await provider.request({
211
+ method: 'wallet_revokePermissions',
212
+ params: [
213
+ {
214
+ eth_accounts: {},
215
+ },
216
+ ],
195
217
  });
196
- this.sdk = new sdk_1.MetaMaskSDK({
197
- dappMetadata: {
198
- url: 'https://push.org/',
199
- }
200
- });
201
- }
202
- connect(chainType) {
203
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
204
- try {
205
- const accounts = yield this.sdk.connect();
206
- const rawAddress = accounts[0];
207
- const checksumAddress = (0, ethers_1.getAddress)(rawAddress);
208
- yield this.switchNetwork(chainType);
209
- const chainId = yield this.getChainId();
210
- const addressincaip = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
211
- return addressincaip;
212
- }
213
- catch (error) {
214
- console.error('Failed to connect to MetaMask:', error);
215
- throw error;
216
- }
217
- });
218
- }
218
+ };
219
219
  }
220
220
  exports.MetamaskProvider = MetamaskProvider;
221
221
  //# sourceMappingURL=metamask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metamask.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/metamask.ts"],"names":[],"mappings":";;;;AAAA,uCAA4C;AAC5C,8DAA2D;AAC3D,8DAAoE;AACpE,mCAAqD;AAErD,qCAAkC;AAClC,+BAA8E;AAE9E,MAAa,gBAAiB,SAAQ,uCAAkB;IAGtD;QACE,KAAK,CAAC,UAAU,EAAE,6CAA6C,EAAE;YAC/D,wBAAS,CAAC,QAAQ;YAClB,wBAAS,CAAC,QAAQ;YAClB,wBAAS,CAAC,IAAI;YACd,wBAAS,CAAC,OAAO;YACjB,wBAAS,CAAC,WAAW;SACtB,CAAC,CAAC;QAQL,gBAAW,GAAG,GAA2B,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACxC,OAAO,CAAC,CAAC,QAAQ,CAAC;QACpB,CAAC,CAAA,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC,CAAC;QAEF,cAAS,GAAG,GAAS,EAAE;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,wBAAe,CAAC,WAAW,CAAC,CAAC;YACzD,OAAO,MAAM,eAAe,CAAC,SAAS,EAAE,CAAC;QAC3C,CAAC,CAAA,CAAC;QAyBF,eAAU,GAAG,GAA0B,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,EAAE;aACX,CAAC,CAAc,CAAC;YAEjB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAA,CAAC;QAEF,kBAAa,GAAG,CAAO,SAAoB,EAAE,EAAE;;YAC7C,MAAM,OAAO,GAAG,eAAM,CAAC,SAAS,CAAU,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAEpC,IAAI,CAAC,QAAQ;gBACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAEhE,MAAM,YAAY,GAAG,IAAA,YAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEvC,IAAI,CAAC;gBACH,+BAA+B;gBAC/B,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACrB,MAAM,EAAE,4BAA4B;oBACpC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,2DAA2D;gBAC3D,IAAK,GAAW,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,MAAM,QAAQ,CAAC,OAAO,CAAC;4BACrB,MAAM,EAAE,yBAAyB;4BACjC,MAAM,EAAE;gCACN;oCACE,OAAO,EAAE,YAAY;oCACrB,SAAS,EAAE,OAAO,CAAC,IAAI;oCACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;oCACrC,cAAc,EAAE,OAAO,CAAC,cAAc;oCACtC,iBAAiB,EAAE,MAAA,OAAO,CAAC,cAAc,0CAAE,OAAO,CAAC,GAAG;iCACvD;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;wBACjD,MAAM,QAAQ,CAAC;oBACjB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;oBAC/C,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC,CAAA,CAAC;QAEF,2BAAsB,GAAG,CAAO,GAAe,EAAuB,EAAE;YACtE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAa,CAAC;gBAEhB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,GAAG,GAAG,IAAA,iBAAU,EAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,GAAG,CAAC,CAAC;gBAErC,MAAM,QAAQ,GAAG;oBACf,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACjB,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;oBAClE,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC5D,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;wBAC/C,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACjD,CAAC,CAAC,SAAS;oBACb,YAAY,EAAE,MAAM,CAAC,YAAY;wBAC/B,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzC,CAAC,CAAC,SAAS;iBACd,CAAC;gBAEF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,qBAAqB;oBAC7B,MAAM,EAAE,CAAC,QAAQ,CAAC;iBACnB,CAAC,CAAC;gBAEH,OAAO,IAAA,iBAAU,EAAC,SAA0B,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAA,CAAC;QAEF,gBAAW,GAAG,CAAO,OAAmB,EAAuB,EAAE;YAC/D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAa,CAAC;gBAEhB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,UAAU,GAAG,IAAA,iBAAU,EAAC,OAAO,CAAC,CAAC;gBAEvC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,eAAe;oBACvB,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAClC,CAAC,CAAC;gBAEH,OAAO,IAAA,iBAAU,EAAC,SAA0B,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAA,CAAC;QAEF,kBAAa,GAAG,CAAO,SAAqB,EAAuB,EAAE;YACnE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAa,CAAC;gBAEhB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBAED,SAAS,CAAC,KAAK,mBACb,YAAY,EAAE;wBACZ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC/C,IACE,CAAC,SAAS,CAAC,WAAW,KAAK,kBAAkB;oBAC9C,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;oBAC3D,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAC/D,CAAC;gBAEF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACxC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACrD,CACF,CAAC;gBAEF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,sBAAsB;oBAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBACrD,CAAC,CAAC;gBAEH,OAAO,IAAA,iBAAU,EAAC,SAA0B,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAA,CAAC;QAEF,eAAU,GAAG,GAAS,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,QAAQ,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,0BAA0B;gBAClC,MAAM,EAAE;oBACN;wBACE,YAAY,EAAE,EAAE;qBACjB;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAA,CAAC;QAvOA,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAW,CAAC;YACzB,YAAY,EAAE;gBACZ,GAAG,EAAE,mBAAmB;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IAoBK,OAAO,CAAC,SAAoB;;YAChC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,eAAe,GAAG,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;gBAE/C,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAEpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAExC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CACtC,eAAe,EACf,wBAAS,CAAC,QAAQ,EAClB,OAAO,CACR,CAAC;gBAEF,OAAO,aAAa,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;CA0LF;AAnPD,4CAmPC"}
1
+ {"version":3,"file":"metamask.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/metamask.ts"],"names":[],"mappings":"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"}