@dynamic-labs/multi-wallet 0.10.2 → 0.10.5
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/data/wallet-links.json +2 -2
- package/src/multi-wallet.js +7 -3
- package/src/multi-wallet.js.map +1 -1
- package/src/utils/message.d.ts +2 -1
- package/src/utils/message.js +8 -1
- package/src/utils/message.js.map +1 -1
- package/src/wallets/solana/phantom.js +7 -1
- package/src/wallets/solana/phantom.js.map +1 -1
- package/src/wallets/window.d.ts +1 -0
package/package.json
CHANGED
|
@@ -2075,8 +2075,8 @@
|
|
|
2075
2075
|
"safari": ""
|
|
2076
2076
|
},
|
|
2077
2077
|
"mobile": {
|
|
2078
|
-
"android": "",
|
|
2079
|
-
"ios": ""
|
|
2078
|
+
"android": "https://play.google.com/store/apps/details?id=app.phantom",
|
|
2079
|
+
"ios": "https://apps.apple.com/us/app/phantom-solana-wallet/id1598432977"
|
|
2080
2080
|
}
|
|
2081
2081
|
},
|
|
2082
2082
|
"glow": {
|
package/src/multi-wallet.js
CHANGED
|
@@ -62,15 +62,19 @@ const getSupportedWallets = ({ appLogoUrl, appName } = { appLogoUrl: '', appName
|
|
|
62
62
|
* implementation uses only universal. This means we need to filter for wallets that
|
|
63
63
|
* have a universal deep link available.
|
|
64
64
|
*/
|
|
65
|
-
const hasUniversalLink =
|
|
65
|
+
const hasUniversalLink = walletConnectMetadata && walletConnectMetadata.mobile.universal !== '';
|
|
66
66
|
// for now, treat ipad the same as iphone
|
|
67
67
|
// in the future, we may want to only show wallets that can connect via qrcode,
|
|
68
68
|
// or that have a safari extension
|
|
69
69
|
if ((0, platform_1.isPhone)() || (0, platform_1.isIPad)()) {
|
|
70
|
-
return
|
|
70
|
+
return walletConnectMetadata
|
|
71
|
+
? hasIOSLink && hasUniversalLink
|
|
72
|
+
: hasIOSLink;
|
|
71
73
|
}
|
|
72
74
|
if ((0, isMobile_1.isMobile)()) {
|
|
73
|
-
return
|
|
75
|
+
return walletConnectMetadata
|
|
76
|
+
? hasAndroidLink && hasUniversalLink
|
|
77
|
+
: hasAndroidLink;
|
|
74
78
|
}
|
|
75
79
|
return true;
|
|
76
80
|
});
|
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,yEAAiD;AACjD,mEAA2C;AAC3C,yEAAiD;AACjD,iEAAyC;AACzC,8EAAqD;AACrD,mEAA2C;AAE3C,+CAAmD;AACnD,+CAA4C;AAC5C,qDAAqD;AACrD,qEAAkE;AAClE,yDAG+B;AAE/B,sEAAsE;AAEtE,IAAI,OAAO,GAAsB,EAAE,CAAC;AAC7B,MAAM,mBAAmB,GAAwB,CACtD,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EACzD,EAAE;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC;KAChB;IAED,MAAM,oBAAoB,GAAG,IAAA,yCAAyB,GAAE,CAAC;IAEzD,2EAA2E;IAC3E,yBAAyB;IACzB,uDAAuD;IACvD,uEAAuE;IACvE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAC1C,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,OAAO,CAC1E,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,IAAI,iBAAO,EAAE;QACb,IAAI,mBAAQ,EAAE;QACd,IAAI,kBAAQ,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACrC,IAAI,iBAAO,EAAE;QACb,IAAI,kBAAQ,EAAE;QACd,IAAI,cAAI,EAAE;QACV,IAAI,eAAK,EAAE;QACX,IAAI,gBAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACnC,IAAI,wBAAa,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;QAClD,GAAG,QAAQ;KACZ,CAAC;IAEF;;;OAGG;IACH,MAAM,0BAA0B,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,IAAA,4BAAc,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,qBAAqB,GAAG,IAAA,wCAAwB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpE;;;;WAIG;QACH,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;QAEnD;;;;;WAKG;QACH,MAAM,gBAAgB,
|
|
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/message.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ export interface MessageParameters {
|
|
|
4
4
|
issuedAt?: string;
|
|
5
5
|
nonce: string;
|
|
6
6
|
publicKey: string;
|
|
7
|
+
requestId?: string;
|
|
7
8
|
statement?: string;
|
|
8
9
|
uri: string;
|
|
9
10
|
}
|
|
10
|
-
export declare const generateMessageToSign: ({ chain, domain, nonce, uri, publicKey, issuedAt, statement, }: MessageParameters) => string;
|
|
11
|
+
export declare const generateMessageToSign: ({ chain, domain, nonce, uri, publicKey, issuedAt, statement, requestId, }: MessageParameters) => string;
|
package/src/utils/message.js
CHANGED
|
@@ -18,7 +18,7 @@ const chainIds = {
|
|
|
18
18
|
ETH: '1',
|
|
19
19
|
SOL: undefined,
|
|
20
20
|
};
|
|
21
|
-
const generateMessageToSign = ({ chain, domain, nonce, uri, publicKey, issuedAt = new Date().toISOString(), statement, }) => {
|
|
21
|
+
const generateMessageToSign = ({ chain, domain, nonce, uri, publicKey, issuedAt = new Date().toISOString(), statement, requestId, }) => {
|
|
22
22
|
// This format follows the sign-in with ethereum (SIWE) standard,
|
|
23
23
|
// but we are using it also for non-ethereum wallets for now (eg. Solana)
|
|
24
24
|
// for more context on format and fields, please see:
|
|
@@ -35,8 +35,15 @@ const generateMessageToSign = ({ chain, domain, nonce, uri, publicKey, issuedAt
|
|
|
35
35
|
if (chainId) {
|
|
36
36
|
suffixFields.push(`Chain ID: ${chainId}`);
|
|
37
37
|
}
|
|
38
|
+
// Add 1 hour to the issuedAt date to make sure the message is valid
|
|
39
|
+
const expiryDate = new Date(issuedAt).setHours(new Date(issuedAt).getHours() + 1);
|
|
40
|
+
const expiryDateString = new Date(expiryDate).toISOString();
|
|
38
41
|
suffixFields.push(`Nonce: ${nonce}`);
|
|
39
42
|
suffixFields.push(`Issued At: ${issuedAt}`);
|
|
43
|
+
suffixFields.push(`Expiration Time: ${expiryDateString}`);
|
|
44
|
+
if (requestId) {
|
|
45
|
+
suffixFields.push(`Request ID: ${requestId}`);
|
|
46
|
+
}
|
|
40
47
|
const suffix = suffixFields.join('\n');
|
|
41
48
|
return [prefixWithStatement, suffix].join('\n');
|
|
42
49
|
};
|
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":";AAAA,iEAAiE;AACjE,oEAAoE;AACpE,QAAQ;AACR,mGAAmG;AACnG,+DAA+D;AAC/D,yDAAyD;;;AAEzD,6DAA6D;AAC7D,MAAM,YAAY,GAA8B;IAC9C,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF,gEAAgE;AAChE,qEAAqE;AACrE,MAAM,QAAQ,GAA0C;IACtD,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,SAAS;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/message.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,oEAAoE;AACpE,QAAQ;AACR,mGAAmG;AACnG,+DAA+D;AAC/D,yDAAyD;;;AAEzD,6DAA6D;AAC7D,MAAM,YAAY,GAA8B;IAC9C,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF,gEAAgE;AAChE,qEAAqE;AACrE,MAAM,QAAQ,GAA0C;IACtD,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,SAAS;CACf,CAAC;AAaK,MAAM,qBAAqB,GAAG,CAAC,EACpC,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,SAAS,EACT,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACnC,SAAS,EACT,SAAS,GACS,EAAU,EAAE;IAC9B,iEAAiE;IACjE,yEAAyE;IACzE,qDAAqD;IACrD,oEAAoE;IACpE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,GAAG,MAAM,mCAAmC,WAAW,WAAW,CAAC;IAClF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAEpE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACjC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEhC,mDAAmD;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,IAAI,OAAO,EAAE;QACX,YAAY,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;KAC3C;IAED,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAClC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5D,YAAY,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;IACrC,YAAY,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;IAC5C,YAAY,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,EAAE,CAAC,CAAC;IAE1D,IAAI,SAAS,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;KAC/C;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AA/CW,QAAA,qBAAqB,yBA+ChC"}
|
|
@@ -37,7 +37,13 @@ class Phantom extends sol_providers_1.SolProvider {
|
|
|
37
37
|
}
|
|
38
38
|
fetchPublicAddress() {
|
|
39
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
|
|
40
|
+
if (this.isInstalledOnBrowser()) {
|
|
41
|
+
return this.fetchPublicAddressWithName(this.name);
|
|
42
|
+
}
|
|
43
|
+
const url = encodeURIComponent(window.location.toString());
|
|
44
|
+
const ref = encodeURIComponent(window.location.origin);
|
|
45
|
+
window.location.assign(`https://phantom.app/ul/browse/${url}?ref=${ref}`);
|
|
46
|
+
return;
|
|
41
47
|
});
|
|
42
48
|
}
|
|
43
49
|
signMessage(messageToSign) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/solana/phantom.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,mDAA8C;AAI9C,MAAM,OAAQ,SAAQ,2BAAW;IAAjC;;QACE,SAAI,GAAG,SAAS,CAAC;QAEjB,oBAAe,GAAY,CAAC,KAAK,CAAC,CAAC;QAEnC,mBAAc,GAAU,KAAK,CAAC;QAE9B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,kCAA6B,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/solana/phantom.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,mDAA8C;AAI9C,MAAM,OAAQ,SAAQ,2BAAW;IAAjC;;QACE,SAAI,GAAG,SAAS,CAAC;QAEjB,oBAAe,GAAY,CAAC,KAAK,CAAC,CAAC;QAEnC,mBAAc,GAAU,KAAK,CAAC;QAE9B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,kCAA6B,GAAG,KAAK,CAAC;IAwCxC,CAAC;IAtCC,mBAAmB;QACjB,OAAO;IACT,CAAC;IAED,eAAe;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oBAAoB;;QAClB;;;;;WAKG;QACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,CAAA,CAAC;IACrE,CAAC;IAEK,kBAAkB;;YACtB,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnD;YAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEvD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,iCAAiC,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC;YAE1E,OAAO;QACT,CAAC;KAAA;IAEK,WAAW,CAAC,aAAqB;;YACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;KAAA;IAEK,cAAc,CAAC,aAAqB;;YACxC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;KAAA;CACF;AAED,kBAAe,OAAO,CAAC"}
|