@dynamic-labs/multi-wallet 0.11.20 → 0.11.22
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 -2
- package/src/data/wallet-links.json +14 -0
- package/src/index.d.ts +1 -2
- package/src/index.js +3 -10
- package/src/index.js.map +1 -1
- package/src/multi-wallet.js +39 -38
- package/src/multi-wallet.js.map +1 -1
- package/src/utils/isMobile.d.ts +8 -1
- package/src/utils/isMobile.js +19 -3
- package/src/utils/isMobile.js.map +1 -1
- package/src/utils/message.d.ts +1 -0
- package/src/utils/message.js +26 -5
- package/src/utils/message.js.map +1 -1
- package/src/wallets/ethereum/ethProviderHelper.d.ts +1 -0
- package/src/wallets/ethereum/ethProviderHelper.js +3 -0
- package/src/wallets/ethereum/ethProviderHelper.js.map +1 -1
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +6 -0
- package/src/wallets/ethereum/injected/BloctoInjected.js +15 -0
- package/src/wallets/ethereum/injected/BloctoInjected.js.map +1 -0
- package/src/wallets/window.d.ts +2 -1
- package/src/utils/platform.d.ts +0 -3
- package/src/utils/platform.js +0 -11
- package/src/utils/platform.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/multi-wallet",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.22",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org"
|
|
6
6
|
},
|
|
7
7
|
"repository": "git://github.com/dynamic-labs/WalletKit.git",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"buffer": "^6.0.3",
|
|
10
|
+
"ethers": "^5.6.9",
|
|
10
11
|
"@randlabs/myalgo-connect": "^1.3.0",
|
|
11
12
|
"@solana/web3.js": "^1.50.1",
|
|
12
|
-
"ethers": "^5.6.9",
|
|
13
13
|
"@coinbase/wallet-sdk": "^3.4.0",
|
|
14
14
|
"@walletconnect/client": "^1.8.0",
|
|
15
15
|
"@walletconnect/ethereum-provider": "^1.7.8",
|
|
@@ -97,6 +97,20 @@
|
|
|
97
97
|
"disabled": false
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
|
+
"bloctoinjected": {
|
|
101
|
+
"desktop": {
|
|
102
|
+
"chrome": "",
|
|
103
|
+
"firefox": "",
|
|
104
|
+
"brave": "",
|
|
105
|
+
"edge": "",
|
|
106
|
+
"safari": ""
|
|
107
|
+
},
|
|
108
|
+
"mobile": {
|
|
109
|
+
"android": "",
|
|
110
|
+
"ios": "",
|
|
111
|
+
"disabled": false
|
|
112
|
+
}
|
|
113
|
+
},
|
|
100
114
|
"bravesol": {
|
|
101
115
|
"desktop": {
|
|
102
116
|
"chrome": "",
|
package/src/index.d.ts
CHANGED
|
@@ -5,8 +5,7 @@ export * from './types';
|
|
|
5
5
|
export { Console };
|
|
6
6
|
export type { WalletConnector, Chain, FetchPublicAddressOpts, } from './wallets/wallet-connector';
|
|
7
7
|
export { generateMessageToSign } from './utils/message';
|
|
8
|
-
export { isMobile } from './utils/isMobile';
|
|
9
|
-
export { isAndroid, isPhone, isIPad } from './utils/platform';
|
|
8
|
+
export { isIPad, isIPhone, isMobile } from './utils/isMobile';
|
|
10
9
|
export { normalizeWalletName } from './utils/normalizeWalletName';
|
|
11
10
|
export { walletMetadata, getWalletConnectMetadata, } from './utils/walletConnect';
|
|
12
11
|
export { getWalletLinks } from './utils/walletLinks';
|
package/src/index.js
CHANGED
|
@@ -17,25 +17,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.getWalletLinks = exports.getWalletConnectMetadata = exports.walletMetadata = exports.normalizeWalletName = exports.
|
|
20
|
+
exports.getWalletLinks = exports.getWalletConnectMetadata = exports.walletMetadata = exports.normalizeWalletName = exports.isMobile = exports.isIPhone = exports.isIPad = exports.generateMessageToSign = exports.Console = void 0;
|
|
21
21
|
const console_1 = __importDefault(require("./utils/console"));
|
|
22
22
|
exports.Console = console_1.default;
|
|
23
23
|
require("./polyfills");
|
|
24
|
-
//
|
|
25
|
-
// TODO
|
|
26
|
-
// - README
|
|
27
|
-
// - Tests + Mocked wallet
|
|
28
|
-
//
|
|
29
24
|
__exportStar(require("./multi-wallet"), exports);
|
|
30
25
|
__exportStar(require("./types"), exports);
|
|
31
26
|
var message_1 = require("./utils/message");
|
|
32
27
|
Object.defineProperty(exports, "generateMessageToSign", { enumerable: true, get: function () { return message_1.generateMessageToSign; } });
|
|
33
28
|
var isMobile_1 = require("./utils/isMobile");
|
|
29
|
+
Object.defineProperty(exports, "isIPad", { enumerable: true, get: function () { return isMobile_1.isIPad; } });
|
|
30
|
+
Object.defineProperty(exports, "isIPhone", { enumerable: true, get: function () { return isMobile_1.isIPhone; } });
|
|
34
31
|
Object.defineProperty(exports, "isMobile", { enumerable: true, get: function () { return isMobile_1.isMobile; } });
|
|
35
|
-
var platform_1 = require("./utils/platform");
|
|
36
|
-
Object.defineProperty(exports, "isAndroid", { enumerable: true, get: function () { return platform_1.isAndroid; } });
|
|
37
|
-
Object.defineProperty(exports, "isPhone", { enumerable: true, get: function () { return platform_1.isPhone; } });
|
|
38
|
-
Object.defineProperty(exports, "isIPad", { enumerable: true, get: function () { return platform_1.isIPad; } });
|
|
39
32
|
var normalizeWalletName_1 = require("./utils/normalizeWalletName");
|
|
40
33
|
Object.defineProperty(exports, "normalizeWalletName", { enumerable: true, get: function () { return normalizeWalletName_1.normalizeWalletName; } });
|
|
41
34
|
var walletConnect_1 = require("./utils/walletConnect");
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8DAAsC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8DAAsC;AAM7B,kBANF,iBAAO,CAME;AAJhB,uBAAqB;AAErB,iDAA+B;AAC/B,0CAAwB;AAQxB,2CAAwD;AAA/C,gHAAA,qBAAqB,OAAA;AAC9B,6CAA8D;AAArD,kGAAA,MAAM,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAEnC,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,uDAG+B;AAF7B,+GAAA,cAAc,OAAA;AACd,yHAAA,wBAAwB,OAAA;AAE1B,mDAAqD;AAA5C,6GAAA,cAAc,OAAA;AAGvB,kEAAgD;AAChD,6DAA2C;AAI3C,wDAAsC"}
|
package/src/multi-wallet.js
CHANGED
|
@@ -13,7 +13,6 @@ const glow_1 = __importDefault(require("./wallets/solana/glow"));
|
|
|
13
13
|
const walletConnect_1 = __importDefault(require("./wallets/walletConnect"));
|
|
14
14
|
const blocto_1 = __importDefault(require("./wallets/flow/blocto"));
|
|
15
15
|
const dapper_1 = __importDefault(require("./wallets/flow/dapper"));
|
|
16
|
-
const platform_1 = require("./utils/platform");
|
|
17
16
|
const isMobile_1 = require("./utils/isMobile");
|
|
18
17
|
const walletLinks_1 = require("./utils/walletLinks");
|
|
19
18
|
const normalizeWalletName_1 = require("./utils/normalizeWalletName");
|
|
@@ -26,6 +25,7 @@ const UnknownInjectedWallet_1 = __importDefault(require("./wallets/ethereum/inje
|
|
|
26
25
|
const GameStop_1 = __importDefault(require("./wallets/ethereum/injected/GameStop"));
|
|
27
26
|
const ExodusEvm_1 = __importDefault(require("./wallets/ethereum/injected/ExodusEvm"));
|
|
28
27
|
const ExodusSol_1 = __importDefault(require("./wallets/solana/injected/ExodusSol"));
|
|
28
|
+
const BloctoInjected_1 = __importDefault(require("./wallets/ethereum/injected/BloctoInjected"));
|
|
29
29
|
let wallets = [];
|
|
30
30
|
const getSupportedWallets = ({ appLogoUrl, appName, evmNetworks, skipMemo } = {
|
|
31
31
|
appLogoUrl: '',
|
|
@@ -39,8 +39,6 @@ const getSupportedWallets = ({ appLogoUrl, appName, evmNetworks, skipMemo } = {
|
|
|
39
39
|
const walletConnectWallets = (0, walletConnect_2.fetchWalletConnectWallets)(evmNetworks);
|
|
40
40
|
// temporary hack to filter out metamask, which currently has walletconnect
|
|
41
41
|
// functionality built-in
|
|
42
|
-
// also filter out trust, which has issues with signing
|
|
43
|
-
// follow-up on: https://github.com/trustwallet/wallet-core/issues/2197
|
|
44
42
|
const filtered = walletConnectWallets.filter(({ name }) => name !== 'MetaMask');
|
|
45
43
|
const allWallets = [
|
|
46
44
|
new phantom_1.default(),
|
|
@@ -51,6 +49,7 @@ const getSupportedWallets = ({ appLogoUrl, appName, evmNetworks, skipMemo } = {
|
|
|
51
49
|
new slope_1.default(),
|
|
52
50
|
new dapper_1.default({ appLogoUrl, appName }),
|
|
53
51
|
new blocto_1.default({ appLogoUrl, appName }),
|
|
52
|
+
new BloctoInjected_1.default({ evmNetworks }),
|
|
54
53
|
new walletConnect_1.default({ evmNetworks, walletName: 'WalletConnect' }),
|
|
55
54
|
new BraveSol_1.default(),
|
|
56
55
|
new BraveEvm_1.default({ evmNetworks }),
|
|
@@ -62,53 +61,55 @@ const getSupportedWallets = ({ appLogoUrl, appName, evmNetworks, skipMemo } = {
|
|
|
62
61
|
new myalgo_1.default(),
|
|
63
62
|
...filtered,
|
|
64
63
|
];
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
// Memoize the wallets
|
|
65
|
+
wallets = filterWalletsForPlatform(allWallets);
|
|
66
|
+
return wallets;
|
|
67
|
+
};
|
|
68
|
+
exports.getSupportedWallets = getSupportedWallets;
|
|
69
|
+
const filterWalletsForPlatform = (wallets) => {
|
|
70
|
+
if (!(0, isMobile_1.isMobile)()) {
|
|
71
|
+
// All the wallets are valid on desktop
|
|
72
|
+
return wallets;
|
|
73
|
+
}
|
|
74
|
+
return wallets.filter((wallet) => {
|
|
75
|
+
// For in app wallet browsers where the wallet is being injected.
|
|
76
|
+
if (wallet.isInstalledOnBrowser()) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
70
79
|
const links = (0, walletLinks_1.getWalletLinks)(wallet.name);
|
|
80
|
+
if (links.mobile.disabled)
|
|
81
|
+
return false;
|
|
71
82
|
const walletConnectMetadata = (0, walletConnect_2.getWalletConnectMetadata)(wallet.name);
|
|
72
|
-
/**
|
|
73
|
-
* wallets-links.json is the source of truth for wallet support on mobile platforms.
|
|
74
|
-
* if a wallet has a non-empty value for ios, that means that wallet has an ios app
|
|
75
|
-
* and we support that app. the same goes for android
|
|
76
|
-
*/
|
|
77
|
-
const hasIOSLink = links.mobile.ios !== '';
|
|
78
|
-
const hasAndroidLink = links.mobile.android !== '';
|
|
79
83
|
/**
|
|
80
84
|
* WalletConnect provides a "universal" and "native" deep link. They recommend using
|
|
81
85
|
* the universal deep link over the native one due to UX differences, and our current
|
|
82
86
|
* implementation uses only universal. This means we need to filter for wallets that
|
|
83
87
|
* have a universal deep link available.
|
|
84
88
|
*/
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
89
|
+
const hasWalletConnectLink = walletConnectMetadata &&
|
|
90
|
+
(Boolean(walletConnectMetadata.mobile.universal) ||
|
|
91
|
+
Boolean(walletConnectMetadata.mobile.native));
|
|
92
|
+
const isWalletConnectWallet = walletConnectMetadata !== undefined;
|
|
93
|
+
/**
|
|
94
|
+
* wallets-links.json is the source of truth for wallet support on mobile platforms.
|
|
95
|
+
* if a wallet has a non-empty value for ios, that means that wallet has an ios app
|
|
96
|
+
* and we support that app. the same goes for android
|
|
97
|
+
*/
|
|
98
|
+
if ((0, isMobile_1.isIPad)() || (0, isMobile_1.isIPhone)()) {
|
|
99
|
+
const hasIOSLink = links.mobile.ios !== '';
|
|
100
|
+
return !isWalletConnectWallet
|
|
101
|
+
? hasIOSLink
|
|
102
|
+
: hasIOSLink && hasWalletConnectLink;
|
|
103
|
+
// It is an android device
|
|
98
104
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
: hasAndroidLink;
|
|
105
|
+
else {
|
|
106
|
+
const hasAndroidLink = links.mobile.android !== '';
|
|
107
|
+
return !isWalletConnectWallet
|
|
108
|
+
? hasAndroidLink
|
|
109
|
+
: hasAndroidLink && hasWalletConnectLink;
|
|
105
110
|
}
|
|
106
|
-
return true;
|
|
107
111
|
});
|
|
108
|
-
wallets = filteredWalletsForPlatform;
|
|
109
|
-
return wallets;
|
|
110
112
|
};
|
|
111
|
-
exports.getSupportedWallets = getSupportedWallets;
|
|
112
113
|
const chainStringToChains = {
|
|
113
114
|
'eip155:1': ['ETH', 'EVM'],
|
|
114
115
|
};
|
package/src/multi-wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-wallet.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/multi-wallet.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,6EAAoD;AAEpD,2EAAmD;AACnD,mEAA2C;AAC3C,yEAAiD;AACjD,iEAAyC;AACzC,4EAAoD;AACpD,mEAA2C;AAC3C,mEAA2C;AAE3C,+
|
|
1
|
+
{"version":3,"file":"multi-wallet.js","sourceRoot":"","sources":["../../../../packages/multi-wallet/src/multi-wallet.ts"],"names":[],"mappings":"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"}
|
package/src/utils/isMobile.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Sourced from http://detectmobilebrowsers.com/
|
|
3
3
|
*/
|
|
4
|
-
export declare const isMobile: () => boolean;
|
|
4
|
+
export declare const isMobile: (maxTouchPointsOverride?: number) => boolean;
|
|
5
|
+
export declare const isIPhone: () => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* @param [optional] maxTouchPointsOverride - this is used for testing since
|
|
8
|
+
* it seems that JSDOM doesn't support maxTouchPoints, so it was impossible
|
|
9
|
+
* to mock it
|
|
10
|
+
*/
|
|
11
|
+
export declare const isIPad: (maxTouchPointsOverride?: number) => boolean;
|
package/src/utils/isMobile.js
CHANGED
|
@@ -3,11 +3,27 @@
|
|
|
3
3
|
* Sourced from http://detectmobilebrowsers.com/
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isMobile = void 0;
|
|
6
|
+
exports.isIPad = exports.isIPhone = exports.isMobile = void 0;
|
|
7
7
|
/* eslint-disable max-len, no-useless-escape */
|
|
8
8
|
const userAgentRegex1 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i;
|
|
9
9
|
const userAgentRegex2 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
// This is a regex that covers both iphone, android and any other mobile device.
|
|
11
|
+
const isMobile = (maxTouchPointsOverride) => userAgentRegex1.test(navigator.userAgent) ||
|
|
12
|
+
userAgentRegex2.test(navigator.userAgent.substring(0, 4)) ||
|
|
13
|
+
(0, exports.isIPad)(maxTouchPointsOverride) ||
|
|
14
|
+
(0, exports.isIPhone)();
|
|
12
15
|
exports.isMobile = isMobile;
|
|
16
|
+
const isIPhone = () => /iPhone/.test(navigator.userAgent);
|
|
17
|
+
exports.isIPhone = isIPhone;
|
|
18
|
+
/**
|
|
19
|
+
* @param [optional] maxTouchPointsOverride - this is used for testing since
|
|
20
|
+
* it seems that JSDOM doesn't support maxTouchPoints, so it was impossible
|
|
21
|
+
* to mock it
|
|
22
|
+
*/
|
|
23
|
+
const isIPad = (maxTouchPointsOverride) => {
|
|
24
|
+
const maxTouchPoints = maxTouchPointsOverride || navigator.maxTouchPoints;
|
|
25
|
+
return (/iPad/.test(navigator.userAgent) ||
|
|
26
|
+
(/Mac/.test(navigator.userAgent) && maxTouchPoints === 5));
|
|
27
|
+
};
|
|
28
|
+
exports.isIPad = isIPad;
|
|
13
29
|
//# sourceMappingURL=isMobile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isMobile.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/isMobile.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA+C;AAE/C,MAAM,eAAe,GACnB,qVAAqV,CAAC;AAExV,MAAM,eAAe,GACnB,ykDAAykD,CAAC;
|
|
1
|
+
{"version":3,"file":"isMobile.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/isMobile.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA+C;AAE/C,MAAM,eAAe,GACnB,qVAAqV,CAAC;AAExV,MAAM,eAAe,GACnB,ykDAAykD,CAAC;AAE5kD,gFAAgF;AACzE,MAAM,QAAQ,GAAG,CAAC,sBAA+B,EAAE,EAAE,CAC1D,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IACzC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,IAAA,cAAM,EAAC,sBAAsB,CAAC;IAC9B,IAAA,gBAAQ,GAAE,CAAC;AAJA,QAAA,QAAQ,YAIR;AAEN,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAApD,QAAA,QAAQ,YAA4C;AAEjE;;;;GAIG;AACI,MAAM,MAAM,GAAG,CAAC,sBAA+B,EAAE,EAAE;IACxD,MAAM,cAAc,GAAG,sBAAsB,IAAI,SAAS,CAAC,cAAc,CAAC;IAC1E,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAChC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,MAAM,UAMjB"}
|
package/src/utils/message.d.ts
CHANGED
|
@@ -9,3 +9,4 @@ export interface MessageParameters {
|
|
|
9
9
|
uri: string;
|
|
10
10
|
}
|
|
11
11
|
export declare const generateMessageToSign: ({ chain, domain, nonce, uri, publicKey, issuedAt, statement, requestId, }: MessageParameters) => string;
|
|
12
|
+
export declare const getEip55Address: (publicKey: string, chainId?: string) => string;
|
package/src/utils/message.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getEip55Address = exports.generateMessageToSign = void 0;
|
|
7
|
+
const utils_1 = require("ethers/lib/utils");
|
|
8
|
+
const console_1 = __importDefault(require("./console"));
|
|
2
9
|
// Util class to generate a message to sign, inspired by EIP-4361
|
|
3
10
|
// https://docs.login.xyz/general-information/siwe-overview/eip-4361
|
|
4
11
|
// TODO:
|
|
5
12
|
// - We might need to add prefix: \x19Ethereum Signed Message:\n<length of message> as per EIP-712
|
|
6
13
|
// - This implementation is missing some of the optional values
|
|
7
14
|
// - The work above and more should be covered in DYN-252
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.generateMessageToSign = void 0;
|
|
10
15
|
// internal mapping of blockchain abbrev to full network name
|
|
11
16
|
const networkNames = {
|
|
12
17
|
ALGO: 'Algorand',
|
|
@@ -28,13 +33,14 @@ const generateMessageToSign = ({ chain, domain, nonce, uri, publicKey, issuedAt
|
|
|
28
33
|
// https://docs.login.xyz/general-information/siwe-overview/eip-4361
|
|
29
34
|
const networkName = networkNames[chain.toUpperCase()];
|
|
30
35
|
const header = `${domain} wants you to sign in with your ${networkName} account:`;
|
|
31
|
-
|
|
36
|
+
// This is only required for Ethereum-based wallets
|
|
37
|
+
const chainId = chainIds[chain.toUpperCase()];
|
|
38
|
+
const messageAddress = (0, exports.getEip55Address)(publicKey, chainId);
|
|
39
|
+
const prefix = [header, messageAddress].join('\n');
|
|
32
40
|
const prefixWithStatement = `${[prefix, statement].join('\n\n')}\n`;
|
|
33
41
|
const suffixFields = [];
|
|
34
42
|
suffixFields.push(`URI: ${uri}`);
|
|
35
43
|
suffixFields.push('Version: 1');
|
|
36
|
-
// This is only required for Ethereum-based wallets
|
|
37
|
-
const chainId = chainIds[chain.toUpperCase()];
|
|
38
44
|
if (chainId) {
|
|
39
45
|
suffixFields.push(`Chain ID: ${chainId}`);
|
|
40
46
|
}
|
|
@@ -51,4 +57,19 @@ const generateMessageToSign = ({ chain, domain, nonce, uri, publicKey, issuedAt
|
|
|
51
57
|
return [prefixWithStatement, suffix].join('\n');
|
|
52
58
|
};
|
|
53
59
|
exports.generateMessageToSign = generateMessageToSign;
|
|
60
|
+
// The SIWE parser library used to validate signed messages for EVM/Ethereum
|
|
61
|
+
// checks that an address is in EIP55 format, so make sure we do that here.
|
|
62
|
+
// see: https://eips.ethereum.org/EIPS/eip-55
|
|
63
|
+
const getEip55Address = (publicKey, chainId) => {
|
|
64
|
+
try {
|
|
65
|
+
if (chainId) {
|
|
66
|
+
return (0, utils_1.getAddress)(publicKey);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
console_1.default.log(`Error getting checksum, returning default ${publicKey}`);
|
|
71
|
+
}
|
|
72
|
+
return publicKey;
|
|
73
|
+
};
|
|
74
|
+
exports.getEip55Address = getEip55Address;
|
|
54
75
|
//# sourceMappingURL=message.js.map
|
package/src/utils/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ class EthProviderHelper {
|
|
|
32
32
|
this.OperaProvider = () => this.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
33
33
|
this.GameStopProvider = () => this.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
34
34
|
this.ExodusProvider = () => this.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
35
|
+
this.BloctoProvider = () => this.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
35
36
|
this.UnknownInjectedProvider = () => this.installedProviderLookup([
|
|
36
37
|
{ flag: 'isMetaMask', value: false },
|
|
37
38
|
{ flag: 'isExodus', value: false },
|
|
@@ -39,8 +40,10 @@ class EthProviderHelper {
|
|
|
39
40
|
{ flag: 'isBraveWallet', value: false },
|
|
40
41
|
{ flag: 'isGamestop', value: false },
|
|
41
42
|
{ flag: 'isOpera', value: false },
|
|
43
|
+
{ flag: 'isBlocto', value: false },
|
|
42
44
|
]);
|
|
43
45
|
this.providers = {
|
|
46
|
+
bloctoinjected: this.BloctoProvider,
|
|
44
47
|
braveevm: this.BraveProvider,
|
|
45
48
|
coinbase: this.CoinbaseProvider,
|
|
46
49
|
exodusevm: this.ExodusProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/ethProviderHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAuC;AAGvC,kEAA0C;AAC1C,yEAAsE;AAEtE,6DAA0D;AAC1D,sDAAmD;AAUnD,MAAa,iBAAiB;IAA9B;QACE,qBAAgB,GAAa,GAAG,EAAE;QAChC,6FAA6F;QAC7F,IAAI,CAAC,uBAAuB,CAAC;YAC3B,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;YAClC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;SACpC,CAAC,CAAC;QAEL,kBAAa,GAAa,GAAG,EAAE,CAC7B,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEzE,qBAAgB,GAAa,GAAG,EAAE,CAChC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE5E,kBAAa,GAAa,GAAG,EAAE,CAC7B,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEnE,qBAAgB,GAAa,GAAG,EAAE,CAChC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEtE,mBAAc,GAAa,GAAG,EAAE,CAC9B,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEpE,4BAAuB,GAAa,GAAG,EAAE,CACvC,IAAI,CAAC,uBAAuB,CAAC;YAC3B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;YACpC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;YAClC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE;YAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;YACpC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"ethProviderHelper.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/ethereum/ethProviderHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const meta_mask_1 = __importDefault(require("../meta-mask"));
|
|
7
|
+
class BloctoInjected extends meta_mask_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'bloctoInjected';
|
|
11
|
+
this.canConnectViaQrCode = false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.default = BloctoInjected;
|
|
15
|
+
//# sourceMappingURL=BloctoInjected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BloctoInjected.js","sourceRoot":"","sources":["../../../../../../../packages/multi-wallet/src/wallets/ethereum/injected/BloctoInjected.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,cAAe,SAAQ,mBAAQ;IAArC;;QACW,SAAI,GAAG,gBAAgB,CAAC;QACxB,wBAAmB,GAAG,KAAK,CAAC;IACvC,CAAC;CAAA;AAED,kBAAe,cAAc,CAAC"}
|
package/src/wallets/window.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* and also provider and previousProvider
|
|
7
7
|
*/
|
|
8
8
|
export interface IProvider {
|
|
9
|
+
isBlocto?: boolean;
|
|
9
10
|
isBraveWallet?: boolean;
|
|
10
11
|
isCoinbaseWallet?: boolean;
|
|
11
12
|
isExodus?: boolean;
|
|
@@ -16,7 +17,7 @@ export interface IProvider {
|
|
|
16
17
|
isPhantom?: boolean;
|
|
17
18
|
isSolflare?: boolean;
|
|
18
19
|
}
|
|
19
|
-
export declare type ProviderFlag = 'isBraveWallet' | 'isCoinbaseWallet' | 'isGamestop' | 'isMetaMask' | 'isExodus' | 'isOpera';
|
|
20
|
+
export declare type ProviderFlag = 'isBraveWallet' | 'isCoinbaseWallet' | 'isGamestop' | 'isMetaMask' | 'isExodus' | 'isOpera' | 'isBlocto';
|
|
20
21
|
export declare type ProviderCondition = {
|
|
21
22
|
flag: ProviderFlag | SolProviderFlag;
|
|
22
23
|
value: boolean;
|
package/src/utils/platform.d.ts
DELETED
package/src/utils/platform.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isIPad = exports.isAndroid = exports.isPhone = void 0;
|
|
4
|
-
const isPhone = () => /iPhone/.test(navigator.userAgent);
|
|
5
|
-
exports.isPhone = isPhone;
|
|
6
|
-
const isAndroid = () => /Android/.test(navigator.userAgent);
|
|
7
|
-
exports.isAndroid = isAndroid;
|
|
8
|
-
const isIPad = () => /iPad/.test(navigator.userAgent) ||
|
|
9
|
-
(/Mac/.test(navigator.userAgent) && navigator.maxTouchPoints === 5);
|
|
10
|
-
exports.isIPad = isIPad;
|
|
11
|
-
//# sourceMappingURL=platform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/platform.ts"],"names":[],"mappings":";;;AAAO,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAAnD,QAAA,OAAO,WAA4C;AACzD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAAtD,QAAA,SAAS,aAA6C;AAE5D,MAAM,MAAM,GAAG,GAAG,EAAE,CACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAChC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC;AAFzD,QAAA,MAAM,UAEmD"}
|