@pushchain/ui-kit 4.0.0 → 4.0.1-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/package.json +1 -1
- package/src/lib/constants/environment.js +2 -2
- package/src/lib/constants/environment.js.map +1 -1
- package/src/lib/providers/PushWalletProvider.js +2 -0
- package/src/lib/providers/PushWalletProvider.js.map +1 -1
- package/src/lib/providers/walletProviders/WalletProviderRegistry.js +4 -0
- package/src/lib/providers/walletProviders/WalletProviderRegistry.js.map +1 -1
- package/src/lib/providers/walletProviders/ethereum/metamask.js +2 -3
- 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 +192 -0
- package/src/lib/providers/walletProviders/ethereum/rabby.js.map +1 -0
- package/src/lib/providers/walletProviders/ethereum/zerion.d.ts +17 -0
- package/src/lib/providers/walletProviders/ethereum/zerion.js +192 -0
- package/src/lib/providers/walletProviders/ethereum/zerion.js.map +1 -0
- package/src/lib/providers/walletProviders/utils/eip6963.d.ts +12 -0
- package/src/lib/providers/walletProviders/utils/eip6963.js +29 -0
- package/src/lib/providers/walletProviders/utils/eip6963.js.map +1 -0
package/package.json
CHANGED
|
@@ -4,8 +4,8 @@ exports.WALLET_CONFIG_URL = void 0;
|
|
|
4
4
|
const enums_1 = require("@pushchain/core/src/lib/constants/enums");
|
|
5
5
|
exports.WALLET_CONFIG_URL = {
|
|
6
6
|
[enums_1.PUSH_NETWORK.MAINNET]: 'https://wallet.push.org',
|
|
7
|
-
[enums_1.PUSH_NETWORK.TESTNET]: 'https://wallet.push.org',
|
|
8
|
-
[enums_1.PUSH_NETWORK.TESTNET_DONUT]: 'https://wallet.push.org',
|
|
7
|
+
[enums_1.PUSH_NETWORK.TESTNET]: 'https://wallet-alpha.push.org',
|
|
8
|
+
[enums_1.PUSH_NETWORK.TESTNET_DONUT]: 'https://wallet-alpha.push.org',
|
|
9
9
|
[enums_1.PUSH_NETWORK.LOCALNET]: 'http://localhost:5173',
|
|
10
10
|
};
|
|
11
11
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../../../packages/ui-kit/src/lib/constants/environment.ts"],"names":[],"mappings":";;;AAAA,mEAAuE;AAW1D,QAAA,iBAAiB,GAAG;IAC/B,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,yBAAyB;IACjD,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../../../packages/ui-kit/src/lib/constants/environment.ts"],"names":[],"mappings":";;;AAAA,mEAAuE;AAW1D,QAAA,iBAAiB,GAAG;IAC/B,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,yBAAyB;IACjD,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,+BAA+B;IACvD,CAAC,oBAAY,CAAC,aAAa,CAAC,EAAE,+BAA+B;IAC7D,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,uBAAuB;CACjD,CAAC"}
|
|
@@ -8,6 +8,7 @@ const constants_1 = require("../constants");
|
|
|
8
8
|
const styled_components_1 = require("styled-components");
|
|
9
9
|
const token_1 = require("../styles/token");
|
|
10
10
|
const theme_1 = require("../utils/theme");
|
|
11
|
+
const eip6963_1 = require("./walletProviders/utils/eip6963");
|
|
11
12
|
const loginDefaultConfig = {
|
|
12
13
|
email: true,
|
|
13
14
|
google: true,
|
|
@@ -47,6 +48,7 @@ const GlobalStyle = (0, styled_components_1.createGlobalStyle) `
|
|
|
47
48
|
`;
|
|
48
49
|
const PushUniversalWalletProvider = ({ config, app, themeMode = constants_1.PushUI.CONSTANTS.THEME.LIGHT, themeOverrides = {}, children, }) => {
|
|
49
50
|
var _a;
|
|
51
|
+
(0, eip6963_1.startEIP6963Listener)();
|
|
50
52
|
const mergedConfig = Object.assign(Object.assign(Object.assign({}, PushWalletConfigDefault), config), { login: Object.assign(Object.assign(Object.assign({}, loginDefaultConfig), ((config === null || config === void 0 ? void 0 : config.login) || {})), { wallet: Object.assign(Object.assign({}, loginDefaultConfig.wallet), (((_a = config === null || config === void 0 ? void 0 : config.login) === null || _a === void 0 ? void 0 : _a.wallet) || {})) }), modal: Object.assign(Object.assign({}, PushWalletConfigDefault.modal), config.modal) });
|
|
51
53
|
return ((0, jsx_runtime_1.jsxs)(styled_components_1.ThemeProvider, { theme: { themeMode, themeOverrides }, children: [(0, jsx_runtime_1.jsx)(GlobalStyle, { uid: mergedConfig.uid }), (0, jsx_runtime_1.jsx)("div", { "data-pw-wrapper": mergedConfig.uid, children: (0, jsx_runtime_1.jsx)(WalletContext_1.WalletContextProvider, { config: mergedConfig, app: app, themeMode: themeMode, themeOverrides: themeOverrides, children: children }) })] }));
|
|
52
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PushWalletProvider.js","sourceRoot":"","sources":["../../../../../../packages/ui-kit/src/lib/providers/PushWalletProvider.tsx"],"names":[],"mappings":";;;;;AAGA,4DAAiE;AACjE,4CAAsC;AACtC,yDAI2B;AAC3B,2CAMyB;AACzB,0CAA8C;
|
|
1
|
+
{"version":3,"file":"PushWalletProvider.js","sourceRoot":"","sources":["../../../../../../packages/ui-kit/src/lib/providers/PushWalletProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.walletRegistry = void 0;
|
|
4
4
|
const metamask_1 = require("./ethereum/metamask");
|
|
5
5
|
const phantom_1 = require("./solana/phantom");
|
|
6
|
+
const rabby_1 = require("./ethereum/rabby");
|
|
7
|
+
const zerion_1 = require("./ethereum/zerion");
|
|
6
8
|
const walletConnect_1 = require("./ethereum/walletConnect");
|
|
7
9
|
class WalletProviderRegistry {
|
|
8
10
|
constructor() {
|
|
@@ -11,6 +13,8 @@ class WalletProviderRegistry {
|
|
|
11
13
|
this.registerProvider(new metamask_1.MetamaskProvider());
|
|
12
14
|
this.registerProvider(new phantom_1.PhantomProvider());
|
|
13
15
|
this.registerProvider(new walletConnect_1.WalletConnectProvider());
|
|
16
|
+
this.registerProvider(new rabby_1.RabbyProvider());
|
|
17
|
+
this.registerProvider(new zerion_1.ZerionProvider());
|
|
14
18
|
}
|
|
15
19
|
registerProvider(provider) {
|
|
16
20
|
this.providers.set(provider.name, provider);
|
|
@@ -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;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;
|
|
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"}
|
|
@@ -8,7 +8,6 @@ const wallet_types_1 = require("../../../types/wallet.types");
|
|
|
8
8
|
const ethers_1 = require("ethers");
|
|
9
9
|
const chains_1 = require("./chains");
|
|
10
10
|
const viem_1 = require("viem");
|
|
11
|
-
const viem_2 = require("viem");
|
|
12
11
|
class MetamaskProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
13
12
|
constructor() {
|
|
14
13
|
super('MetaMask', 'https://metamask.io/images/metamask-fox.svg', [
|
|
@@ -51,7 +50,7 @@ class MetamaskProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
51
50
|
const provider = this.getProvider();
|
|
52
51
|
if (!provider)
|
|
53
52
|
throw new Error('Provider not found while switching network');
|
|
54
|
-
const hexNetworkId = (0,
|
|
53
|
+
const hexNetworkId = (0, viem_1.toHex)(network.id);
|
|
55
54
|
try {
|
|
56
55
|
// Try to switch to the network
|
|
57
56
|
yield provider.request({
|
|
@@ -100,7 +99,7 @@ class MetamaskProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
|
100
99
|
throw new Error('No connected account');
|
|
101
100
|
}
|
|
102
101
|
const hex = (0, viem_1.bytesToHex)(txn);
|
|
103
|
-
const parsed = (0,
|
|
102
|
+
const parsed = (0, viem_1.parseTransaction)(hex);
|
|
104
103
|
const txParams = {
|
|
105
104
|
from: accounts[0],
|
|
106
105
|
to: parsed.to,
|
|
@@ -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,+
|
|
1
|
+
{"version":3,"file":"metamask.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/metamask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseWalletProvider } from '../BaseWalletProvider';
|
|
2
|
+
import { ChainType, ITypedData } from '../../../types/wallet.types';
|
|
3
|
+
export declare class RabbyProvider extends BaseWalletProvider {
|
|
4
|
+
constructor();
|
|
5
|
+
isInstalled: () => Promise<boolean>;
|
|
6
|
+
private getProvider;
|
|
7
|
+
getSigner: () => Promise<import("ethers").JsonRpcSigner>;
|
|
8
|
+
getChainId: () => Promise<number>;
|
|
9
|
+
connect: (chainType: ChainType) => Promise<{
|
|
10
|
+
caipAddress: string;
|
|
11
|
+
}>;
|
|
12
|
+
switchNetwork: (chainName: ChainType) => Promise<void>;
|
|
13
|
+
signAndSendTransaction: (txn: Uint8Array) => Promise<Uint8Array>;
|
|
14
|
+
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
|
|
15
|
+
signTypedData: (typedData: ITypedData) => Promise<Uint8Array>;
|
|
16
|
+
disconnect: () => Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RabbyProvider = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const viem_1 = require("viem");
|
|
7
|
+
const BaseWalletProvider_1 = require("../BaseWalletProvider");
|
|
8
|
+
const wallet_types_1 = require("../../../types/wallet.types");
|
|
9
|
+
const chains_1 = require("./chains");
|
|
10
|
+
const eip6963_1 = require("../utils/eip6963");
|
|
11
|
+
class RabbyProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
12
|
+
constructor() {
|
|
13
|
+
super('Rabby', 'https://rabby.io/logo.svg', [
|
|
14
|
+
wallet_types_1.ChainType.ETHEREUM,
|
|
15
|
+
wallet_types_1.ChainType.ARBITRUM,
|
|
16
|
+
wallet_types_1.ChainType.BASE,
|
|
17
|
+
wallet_types_1.ChainType.BINANCE,
|
|
18
|
+
wallet_types_1.ChainType.PUSH_WALLET,
|
|
19
|
+
]);
|
|
20
|
+
this.isInstalled = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
try {
|
|
22
|
+
return !!this.getProvider();
|
|
23
|
+
}
|
|
24
|
+
catch (_a) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
this.getProvider = () => {
|
|
29
|
+
const provider = (0, eip6963_1.getEIP6963ProviderByRdns)('io.rabby');
|
|
30
|
+
if (!provider) {
|
|
31
|
+
throw new Error('Rabby provider not found via EIP-6963');
|
|
32
|
+
}
|
|
33
|
+
return provider;
|
|
34
|
+
};
|
|
35
|
+
this.getSigner = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const provider = this.getProvider();
|
|
37
|
+
const browserProvider = new ethers_1.BrowserProvider(provider);
|
|
38
|
+
return yield browserProvider.getSigner();
|
|
39
|
+
});
|
|
40
|
+
this.getChainId = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const provider = this.getProvider();
|
|
42
|
+
const hexChainId = yield provider.request({
|
|
43
|
+
method: 'eth_chainId',
|
|
44
|
+
params: [],
|
|
45
|
+
});
|
|
46
|
+
return parseInt(hexChainId.toString(), 16);
|
|
47
|
+
});
|
|
48
|
+
this.connect = (chainType) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const provider = this.getProvider();
|
|
50
|
+
const accounts = (yield provider.request({
|
|
51
|
+
method: 'eth_requestAccounts',
|
|
52
|
+
params: [],
|
|
53
|
+
}));
|
|
54
|
+
if (!accounts || accounts.length === 0) {
|
|
55
|
+
throw new Error('No Rabby account returned');
|
|
56
|
+
}
|
|
57
|
+
const checksumAddress = (0, ethers_1.getAddress)(accounts[0]);
|
|
58
|
+
yield this.switchNetwork(chainType);
|
|
59
|
+
const chainId = yield this.getChainId();
|
|
60
|
+
const caipAddress = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
|
|
61
|
+
return caipAddress;
|
|
62
|
+
});
|
|
63
|
+
this.switchNetwork = (chainName) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
var _a, _b, _c;
|
|
65
|
+
const network = chains_1.chains[chainName];
|
|
66
|
+
const provider = this.getProvider();
|
|
67
|
+
const hexNetworkId = (0, viem_1.toHex)(network.id);
|
|
68
|
+
try {
|
|
69
|
+
yield provider.request({
|
|
70
|
+
method: 'wallet_switchEthereumChain',
|
|
71
|
+
params: [{ chainId: hexNetworkId }],
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (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 ||
|
|
78
|
+
msg.includes('Unrecognized chain ID');
|
|
79
|
+
if (!needAdd) {
|
|
80
|
+
console.error('Rabby: error switching network:', err);
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
yield provider.request({
|
|
85
|
+
method: 'wallet_addEthereumChain',
|
|
86
|
+
params: [
|
|
87
|
+
{
|
|
88
|
+
chainId: hexNetworkId,
|
|
89
|
+
chainName: network.name,
|
|
90
|
+
rpcUrls: network.rpcUrls.default.http,
|
|
91
|
+
nativeCurrency: network.nativeCurrency,
|
|
92
|
+
blockExplorerUrls: ((_c = (_b = network.blockExplorers) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.url)
|
|
93
|
+
? [network.blockExplorers.default.url]
|
|
94
|
+
: [],
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
});
|
|
98
|
+
yield provider.request({
|
|
99
|
+
method: 'wallet_switchEthereumChain',
|
|
100
|
+
params: [{ chainId: hexNetworkId }],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (addError) {
|
|
104
|
+
console.error('Rabby: error adding network:', addError);
|
|
105
|
+
throw addError;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
this.signAndSendTransaction = (txn) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
const provider = this.getProvider();
|
|
111
|
+
const accounts = (yield provider.request({
|
|
112
|
+
method: 'eth_accounts',
|
|
113
|
+
}));
|
|
114
|
+
if (!accounts || accounts.length === 0) {
|
|
115
|
+
throw new Error('No connected Rabby account');
|
|
116
|
+
}
|
|
117
|
+
const hex = (0, viem_1.bytesToHex)(txn);
|
|
118
|
+
const parsed = (0, viem_1.parseTransaction)(hex);
|
|
119
|
+
const txParams = {
|
|
120
|
+
from: accounts[0],
|
|
121
|
+
to: parsed.to,
|
|
122
|
+
value: parsed.value ? '0x' + parsed.value.toString(16) : undefined,
|
|
123
|
+
data: parsed.data,
|
|
124
|
+
gas: parsed.gas ? '0x' + parsed.gas.toString(16) : undefined,
|
|
125
|
+
maxPriorityFeePerGas: parsed.maxPriorityFeePerGas
|
|
126
|
+
? '0x' + parsed.maxPriorityFeePerGas.toString(16)
|
|
127
|
+
: undefined,
|
|
128
|
+
maxFeePerGas: parsed.maxFeePerGas
|
|
129
|
+
? '0x' + parsed.maxFeePerGas.toString(16)
|
|
130
|
+
: undefined,
|
|
131
|
+
};
|
|
132
|
+
const txHash = yield provider.request({
|
|
133
|
+
method: 'eth_sendTransaction',
|
|
134
|
+
params: [txParams],
|
|
135
|
+
});
|
|
136
|
+
return (0, viem_1.hexToBytes)(txHash);
|
|
137
|
+
});
|
|
138
|
+
this.signMessage = (message) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
const provider = this.getProvider();
|
|
140
|
+
const accounts = (yield provider.request({
|
|
141
|
+
method: 'eth_accounts',
|
|
142
|
+
}));
|
|
143
|
+
if (!accounts || accounts.length === 0) {
|
|
144
|
+
throw new Error('No connected Rabby account');
|
|
145
|
+
}
|
|
146
|
+
const hexMessage = (0, viem_1.bytesToHex)(message);
|
|
147
|
+
const signature = yield provider.request({
|
|
148
|
+
method: 'personal_sign',
|
|
149
|
+
params: [hexMessage, accounts[0]],
|
|
150
|
+
});
|
|
151
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
152
|
+
});
|
|
153
|
+
this.signTypedData = (typedData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const provider = this.getProvider();
|
|
155
|
+
const accounts = (yield provider.request({
|
|
156
|
+
method: 'eth_accounts',
|
|
157
|
+
}));
|
|
158
|
+
if (!accounts || accounts.length === 0) {
|
|
159
|
+
throw new Error('No connected Rabby account');
|
|
160
|
+
}
|
|
161
|
+
typedData.types = {
|
|
162
|
+
EIP712Domain: [
|
|
163
|
+
{ name: 'version', type: 'string' },
|
|
164
|
+
{ name: 'chainId', type: 'uint256' },
|
|
165
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
166
|
+
],
|
|
167
|
+
UniversalPayload: typedData.types['UniversalPayload'],
|
|
168
|
+
};
|
|
169
|
+
const safeTypedData = JSON.parse(JSON.stringify(typedData, (_key, value) => typeof value === 'bigint' ? value.toString() : value));
|
|
170
|
+
const signature = yield provider.request({
|
|
171
|
+
method: 'eth_signTypedData_v4',
|
|
172
|
+
params: [accounts[0], JSON.stringify(safeTypedData)],
|
|
173
|
+
});
|
|
174
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
175
|
+
});
|
|
176
|
+
this.disconnect = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
const provider = (0, eip6963_1.getEIP6963ProviderByRdns)('io.rabby');
|
|
178
|
+
if (!provider)
|
|
179
|
+
return;
|
|
180
|
+
yield provider.request({
|
|
181
|
+
method: 'wallet_revokePermissions',
|
|
182
|
+
params: [
|
|
183
|
+
{
|
|
184
|
+
eth_accounts: {},
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.RabbyProvider = RabbyProvider;
|
|
192
|
+
//# sourceMappingURL=rabby.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rabby.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/ethereum/rabby.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseWalletProvider } from '../BaseWalletProvider';
|
|
2
|
+
import { ChainType, ITypedData } from '../../../types/wallet.types';
|
|
3
|
+
export declare class ZerionProvider extends BaseWalletProvider {
|
|
4
|
+
constructor();
|
|
5
|
+
isInstalled: () => Promise<boolean>;
|
|
6
|
+
private getProvider;
|
|
7
|
+
getSigner: () => Promise<import("ethers").JsonRpcSigner>;
|
|
8
|
+
getChainId: () => Promise<number>;
|
|
9
|
+
connect: (chainType: ChainType) => Promise<{
|
|
10
|
+
caipAddress: string;
|
|
11
|
+
}>;
|
|
12
|
+
switchNetwork: (chainName: ChainType) => Promise<void>;
|
|
13
|
+
signAndSendTransaction: (txn: Uint8Array) => Promise<Uint8Array>;
|
|
14
|
+
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
|
|
15
|
+
signTypedData: (typedData: ITypedData) => Promise<Uint8Array>;
|
|
16
|
+
disconnect: () => Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZerionProvider = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const viem_1 = require("viem");
|
|
7
|
+
const BaseWalletProvider_1 = require("../BaseWalletProvider");
|
|
8
|
+
const wallet_types_1 = require("../../../types/wallet.types");
|
|
9
|
+
const chains_1 = require("./chains");
|
|
10
|
+
const eip6963_1 = require("../utils/eip6963");
|
|
11
|
+
class ZerionProvider extends BaseWalletProvider_1.BaseWalletProvider {
|
|
12
|
+
constructor() {
|
|
13
|
+
super('Zerion', 'https://zerion.io/favicon.ico', [
|
|
14
|
+
wallet_types_1.ChainType.ETHEREUM,
|
|
15
|
+
wallet_types_1.ChainType.ARBITRUM,
|
|
16
|
+
wallet_types_1.ChainType.BASE,
|
|
17
|
+
wallet_types_1.ChainType.BINANCE,
|
|
18
|
+
wallet_types_1.ChainType.PUSH_WALLET,
|
|
19
|
+
]);
|
|
20
|
+
this.isInstalled = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
try {
|
|
22
|
+
return !!this.getProvider();
|
|
23
|
+
}
|
|
24
|
+
catch (_a) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
this.getProvider = () => {
|
|
29
|
+
const provider = (0, eip6963_1.getEIP6963ProviderByRdns)('io.zerion.wallet');
|
|
30
|
+
if (!provider) {
|
|
31
|
+
throw new Error('Zerion provider not found via EIP-6963');
|
|
32
|
+
}
|
|
33
|
+
return provider;
|
|
34
|
+
};
|
|
35
|
+
this.getSigner = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const provider = this.getProvider();
|
|
37
|
+
const browserProvider = new ethers_1.BrowserProvider(provider);
|
|
38
|
+
return yield browserProvider.getSigner();
|
|
39
|
+
});
|
|
40
|
+
this.getChainId = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const provider = this.getProvider();
|
|
42
|
+
const hexChainId = yield provider.request({
|
|
43
|
+
method: 'eth_chainId',
|
|
44
|
+
params: [],
|
|
45
|
+
});
|
|
46
|
+
return parseInt(hexChainId.toString(), 16);
|
|
47
|
+
});
|
|
48
|
+
this.connect = (chainType) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const provider = this.getProvider();
|
|
50
|
+
const accounts = (yield provider.request({
|
|
51
|
+
method: 'eth_requestAccounts',
|
|
52
|
+
params: [],
|
|
53
|
+
}));
|
|
54
|
+
if (!accounts || accounts.length === 0) {
|
|
55
|
+
throw new Error('No Zerion account returned');
|
|
56
|
+
}
|
|
57
|
+
const checksumAddress = (0, ethers_1.getAddress)(accounts[0]);
|
|
58
|
+
yield this.switchNetwork(chainType);
|
|
59
|
+
const chainId = yield this.getChainId();
|
|
60
|
+
const caipAddress = this.formatAddress(checksumAddress, wallet_types_1.ChainType.ETHEREUM, chainId);
|
|
61
|
+
return caipAddress;
|
|
62
|
+
});
|
|
63
|
+
this.switchNetwork = (chainName) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
var _a, _b, _c;
|
|
65
|
+
const network = chains_1.chains[chainName];
|
|
66
|
+
const provider = this.getProvider();
|
|
67
|
+
const hexNetworkId = (0, viem_1.toHex)(network.id);
|
|
68
|
+
try {
|
|
69
|
+
yield provider.request({
|
|
70
|
+
method: 'wallet_switchEthereumChain',
|
|
71
|
+
params: [{ chainId: hexNetworkId }],
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (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 ||
|
|
78
|
+
msg.includes('Unrecognized chain ID');
|
|
79
|
+
if (!needAdd) {
|
|
80
|
+
console.error('Zerion: error switching network:', err);
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
yield provider.request({
|
|
85
|
+
method: 'wallet_addEthereumChain',
|
|
86
|
+
params: [
|
|
87
|
+
{
|
|
88
|
+
chainId: hexNetworkId,
|
|
89
|
+
chainName: network.name,
|
|
90
|
+
rpcUrls: network.rpcUrls.default.http,
|
|
91
|
+
nativeCurrency: network.nativeCurrency,
|
|
92
|
+
blockExplorerUrls: ((_c = (_b = network.blockExplorers) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.url)
|
|
93
|
+
? [network.blockExplorers.default.url]
|
|
94
|
+
: [],
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
});
|
|
98
|
+
yield provider.request({
|
|
99
|
+
method: 'wallet_switchEthereumChain',
|
|
100
|
+
params: [{ chainId: hexNetworkId }],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (addError) {
|
|
104
|
+
console.error('Zerion: error adding network:', addError);
|
|
105
|
+
throw addError;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
this.signAndSendTransaction = (txn) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
const provider = this.getProvider();
|
|
111
|
+
const accounts = (yield provider.request({
|
|
112
|
+
method: 'eth_accounts',
|
|
113
|
+
}));
|
|
114
|
+
if (!accounts || accounts.length === 0) {
|
|
115
|
+
throw new Error('No connected Zerion account');
|
|
116
|
+
}
|
|
117
|
+
const hex = (0, viem_1.bytesToHex)(txn);
|
|
118
|
+
const parsed = (0, viem_1.parseTransaction)(hex);
|
|
119
|
+
const txParams = {
|
|
120
|
+
from: accounts[0],
|
|
121
|
+
to: parsed.to,
|
|
122
|
+
value: parsed.value ? '0x' + parsed.value.toString(16) : undefined,
|
|
123
|
+
data: parsed.data,
|
|
124
|
+
gas: parsed.gas ? '0x' + parsed.gas.toString(16) : undefined,
|
|
125
|
+
maxPriorityFeePerGas: parsed.maxPriorityFeePerGas
|
|
126
|
+
? '0x' + parsed.maxPriorityFeePerGas.toString(16)
|
|
127
|
+
: undefined,
|
|
128
|
+
maxFeePerGas: parsed.maxFeePerGas
|
|
129
|
+
? '0x' + parsed.maxFeePerGas.toString(16)
|
|
130
|
+
: undefined,
|
|
131
|
+
};
|
|
132
|
+
const txHash = yield provider.request({
|
|
133
|
+
method: 'eth_sendTransaction',
|
|
134
|
+
params: [txParams],
|
|
135
|
+
});
|
|
136
|
+
return (0, viem_1.hexToBytes)(txHash);
|
|
137
|
+
});
|
|
138
|
+
this.signMessage = (message) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
const provider = this.getProvider();
|
|
140
|
+
const accounts = (yield provider.request({
|
|
141
|
+
method: 'eth_accounts',
|
|
142
|
+
}));
|
|
143
|
+
if (!accounts || accounts.length === 0) {
|
|
144
|
+
throw new Error('No connected Zerion account');
|
|
145
|
+
}
|
|
146
|
+
const hexMessage = (0, viem_1.bytesToHex)(message);
|
|
147
|
+
const signature = yield provider.request({
|
|
148
|
+
method: 'personal_sign',
|
|
149
|
+
params: [hexMessage, accounts[0]],
|
|
150
|
+
});
|
|
151
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
152
|
+
});
|
|
153
|
+
this.signTypedData = (typedData) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const provider = this.getProvider();
|
|
155
|
+
const accounts = (yield provider.request({
|
|
156
|
+
method: 'eth_accounts',
|
|
157
|
+
}));
|
|
158
|
+
if (!accounts || accounts.length === 0) {
|
|
159
|
+
throw new Error('No connected Zerion account');
|
|
160
|
+
}
|
|
161
|
+
typedData.types = {
|
|
162
|
+
EIP712Domain: [
|
|
163
|
+
{ name: 'version', type: 'string' },
|
|
164
|
+
{ name: 'chainId', type: 'uint256' },
|
|
165
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
166
|
+
],
|
|
167
|
+
UniversalPayload: typedData.types['UniversalPayload'],
|
|
168
|
+
};
|
|
169
|
+
const safeTypedData = JSON.parse(JSON.stringify(typedData, (_key, value) => typeof value === 'bigint' ? value.toString() : value));
|
|
170
|
+
const signature = yield provider.request({
|
|
171
|
+
method: 'eth_signTypedData_v4',
|
|
172
|
+
params: [accounts[0], JSON.stringify(safeTypedData)],
|
|
173
|
+
});
|
|
174
|
+
return (0, viem_1.hexToBytes)(signature);
|
|
175
|
+
});
|
|
176
|
+
this.disconnect = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
const provider = (0, eip6963_1.getEIP6963ProviderByRdns)('io.zerion.wallet');
|
|
178
|
+
if (!provider)
|
|
179
|
+
return;
|
|
180
|
+
yield provider.request({
|
|
181
|
+
method: 'wallet_revokePermissions',
|
|
182
|
+
params: [
|
|
183
|
+
{
|
|
184
|
+
eth_accounts: {},
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.ZerionProvider = ZerionProvider;
|
|
192
|
+
//# sourceMappingURL=zerion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,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[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startEIP6963Listener = startEIP6963Listener;
|
|
4
|
+
exports.getEIP6963ProviderByRdns = getEIP6963ProviderByRdns;
|
|
5
|
+
exports.getAllEIP6963Providers = getAllEIP6963Providers;
|
|
6
|
+
const providers = new Map();
|
|
7
|
+
let isListening = false;
|
|
8
|
+
function startEIP6963Listener() {
|
|
9
|
+
if (isListening || typeof window === "undefined")
|
|
10
|
+
return;
|
|
11
|
+
isListening = true;
|
|
12
|
+
window.addEventListener("eip6963:announceProvider", ((event) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const detail = event.detail;
|
|
15
|
+
if (!((_a = detail === null || detail === void 0 ? void 0 : detail.info) === null || _a === void 0 ? void 0 : _a.rdns))
|
|
16
|
+
return;
|
|
17
|
+
providers.set(detail.info.rdns, detail);
|
|
18
|
+
}));
|
|
19
|
+
const requestEvent = new CustomEvent("eip6963:requestProvider");
|
|
20
|
+
window.dispatchEvent(requestEvent);
|
|
21
|
+
}
|
|
22
|
+
function getEIP6963ProviderByRdns(rdns) {
|
|
23
|
+
var _a;
|
|
24
|
+
return (_a = providers.get(rdns)) === null || _a === void 0 ? void 0 : _a.provider;
|
|
25
|
+
}
|
|
26
|
+
function getAllEIP6963Providers() {
|
|
27
|
+
return Array.from(providers.values());
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=eip6963.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip6963.js","sourceRoot":"","sources":["../../../../../../../../packages/ui-kit/src/lib/providers/walletProviders/utils/eip6963.ts"],"names":[],"mappings":";;AAaA,oDAYC;AAED,4DAEC;AAED,wDAEC;AAvBD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;AAC3D,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,SAAgB,oBAAoB;IAClC,IAAI,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IACzD,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,CAAC,CAAC,KAAU,EAAE,EAAE;;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,MAA+B,CAAC;QACrD,IAAI,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,IAAI,CAAA;YAAE,OAAO;QAChC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAkB,CAAC,CAAC;IAErB,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAChE,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAY;;IACnD,OAAO,MAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,QAAQ,CAAC;AACvC,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC"}
|