@dynamic-labs/multi-wallet 0.11.19 → 0.11.21

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dynamic-labs/multi-wallet",
3
- "version": "0.11.19",
3
+ "version": "0.11.21",
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",
@@ -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;
@@ -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
- const prefix = [header, publicKey].join('\n');
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
@@ -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,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF,gEAAgE;AAChE,qEAAqE;AACrE,MAAM,QAAQ,GAA0C;IACtD,GAAG,EAAE,GAAG;IACR,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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../../packages/multi-wallet/src/utils/message.ts"],"names":[],"mappings":"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"}