@safe-global/protocol-kit 5.1.0 → 5.2.0

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.
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateHash = void 0;
4
+ const viem_1 = require("viem");
5
+ /**
6
+ * Generates a hash from the given input string and truncates it to the specified size.
7
+ *
8
+ * @param {string} input - The input string to be hashed.
9
+ * @param {number} size - The number of bytes to take from the end of the hash.
10
+ * @returns {string} A hexadecimal string representation of the truncated hash, without the `0x` prefix.
11
+ */
12
+ function generateHash(input, size) {
13
+ const fullHash = (0, viem_1.keccak256)((0, viem_1.toHex)(input));
14
+ return (0, viem_1.toHex)(fullHash.slice(-size)).replace('0x', ''); // Take the last X bytes
15
+ }
16
+ exports.generateHash = generateHash;
17
+ /**
18
+ * Generates an on-chain identifier for tracking transactions on the blockchain.
19
+ * This identifier includes hashed metadata such as the project name, platform, tool, and tool version.
20
+ *
21
+ * @param {Object} params - An object containing the metadata for generating the on-chain identifier.
22
+ * @param {string} params.project - The name of the project initiating the transaction.
23
+ * @param {string} [params.platform='Web'] - The platform from which the transaction originates (e.g., "Web", "Mobile", "Safe App", "Widget"...).
24
+ * @param {string} params.tool - The tool used to generate the transaction (e.g., "protocol-kit").
25
+ * @param {string} params.toolVersion - The version of the tool used to generate the transaction.
26
+ * @returns {string} A string representing the on-chain identifier, composed of multiple hashed segments.
27
+ *
28
+ * @example
29
+ * const identifier = generateOnChainIdentifier({
30
+ * project: 'MyProject',
31
+ * platform: 'Mobile',
32
+ * tool: 'protocol-kit',
33
+ * toolVersion: '4.0.0'
34
+ * })
35
+ */
36
+ function generateOnChainIdentifier({ project, platform = 'Web', tool, toolVersion }) {
37
+ const identifierPrefix = '5afe';
38
+ const identifierVersion = '00'; // first version
39
+ const projectHash = generateHash(project, 20); // Take the last 20 bytes
40
+ const platformHash = generateHash(platform, 3); // Take the last 3 bytes
41
+ const toolHash = generateHash(tool, 3); // Take the last 3 bytes
42
+ const toolVersionHash = generateHash(toolVersion, 3); // Take the last 3 bytes
43
+ return `${identifierPrefix}${identifierVersion}${projectHash}${platformHash}${toolHash}${toolVersionHash}`;
44
+ }
45
+ exports.default = generateOnChainIdentifier;
46
+ //# sourceMappingURL=generateOnChainIdentifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateOnChainIdentifier.js","sourceRoot":"","sources":["../../../../src/utils/on-chain-tracking/generateOnChainIdentifier.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AAEvC;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,KAAa,EAAE,IAAY;IACtD,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,IAAA,YAAK,EAAC,KAAK,CAAC,CAAC,CAAA;IACxC,OAAO,IAAA,YAAK,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,CAAC,wBAAwB;AAChF,CAAC;AAHD,oCAGC;AASD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,yBAAyB,CAAC,EACjC,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,WAAW,EACiB;IAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAA;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAA,CAAC,gBAAgB;IAC/C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC,yBAAyB;IACvE,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA,CAAC,wBAAwB;IACvE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA,CAAC,wBAAwB;IAC/D,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA,CAAC,wBAAwB;IAE7E,OAAO,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,eAAe,EAAE,CAAA;AAC5G,CAAC;AAED,kBAAe,yBAAyB,CAAA"}
@@ -133,7 +133,7 @@ function extractClientDataFields(clientDataJSON) {
133
133
  * Extracts the numeric values r and s from a DER-encoded ECDSA signature.
134
134
  * This function decodes the signature based on a specific format and validates the encoding at each step.
135
135
  *
136
- * @param {ArrayBuffer} signature - The DER-encoded signature to be decoded.
136
+ * @param {ArrayBuffer | Uint8Array | Array<number>} signature - The DER-encoded signature to be decoded. The WebAuthn standard expects the signature to be an ArrayBuffer, but some password managers (including Bitwarden) provide a Uint8Array or an array of numbers instead.
137
137
  * @returns {[bigint, bigint]} A tuple containing two BigInt values, r and s, which are the numeric values extracted from the signature.
138
138
  * @throws {Error} Throws an error if the signature encoding is invalid or does not meet expected conditions.
139
139
  */
@@ -146,7 +146,11 @@ function extractSignature(signature) {
146
146
  // Decode the DER signature. Note that we assume that all lengths fit into 8-bit integers,
147
147
  // which is true for the kinds of signatures we are decoding but generally false. I.e. this
148
148
  // code should not be used in any serious application.
149
- const view = new DataView(signature);
149
+ const view = new DataView(signature instanceof ArrayBuffer
150
+ ? signature
151
+ : signature instanceof Uint8Array
152
+ ? signature.buffer
153
+ : new Uint8Array(signature).buffer);
150
154
  // check that the sequence header is valid
151
155
  check(view.getUint8(0) === 0x30);
152
156
  check(view.getUint8(1) === view.byteLength - 2);
@@ -1 +1 @@
1
- {"version":3,"file":"PasskeyClient.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/PasskeyClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PasskeyClient.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/PasskeyClient.ts"],"names":[],"mappings":"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"}