@0xsquid/react-hooks 2.1.8-beta.1 → 2.1.8

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.
@@ -1,7 +1,6 @@
1
1
  import { useQuery } from "@tanstack/react-query";
2
- import { internalSquidApiBaseUrl } from "../../core/constants";
3
2
  import { keys } from "../../core/queries/queries-keys";
4
- const TOKEN_PRICE_API_URL = `${internalSquidApiBaseUrl}/coingecko`;
3
+ const TOKEN_PRICE_API_URL = `https://squid-app-v2-git-chore-wallet-squid-hooks-wiring-0xsquid.vercel.app/api/coingecko`;
5
4
  export const useMultipleTokenPrices = (tokens) => {
6
5
  const coingeckoIds = Array.from(new Set(tokens.map((token) => token.coingeckoId).filter(Boolean)));
7
6
  const coinGeckoQuery = useQuery({
@@ -1 +1 @@
1
- {"version":3,"file":"useMultipleTokenPrices.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultipleTokenPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,MAAM,mBAAmB,GAAG,GAAG,uBAAuB,YAAY,CAAC;AAcnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAoC,EACpC,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACtD,CAAC;IAEd,MAAM,cAAc,GAAG,QAAQ,CAA2B;QACxD,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,aAAa,EAAE,KAAK;gBACpB,mBAAmB,EAAE,MAAM;aAC5B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACR,GAAG,CAAC,EAAE,CAAC,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;aAC9B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,WAAmB,EAA8B,EAAE,CACxE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE3B,OAAO;QACL,WAAW;QACX,aAAa;QACb,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useMultipleTokenPrices.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultipleTokenPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,MAAM,mBAAmB,GAAG,2FAA2F,CAAC;AAcxH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAoC,EACpC,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACtD,CAAC;IAEd,MAAM,cAAc,GAAG,QAAQ,CAA2B;QACxD,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,aAAa,EAAE,KAAK;gBACpB,mBAAmB,EAAE,MAAM;aAC5B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACR,GAAG,CAAC,EAAE,CAAC,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;aAC9B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,WAAmB,EAA8B,EAAE,CACxE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE3B,OAAO;QACL,WAAW;QACX,aAAa;QACb,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Generates an SVG with random colors based on a seed string.
3
- * @param {string} seed - The seed string used to generate the avatar colors.
4
- * @returns {string} The SVG string.
2
+ * Custom hook to return a deterministic avatar image URL based on the provided seed.
3
+ * @param {string} seed - The seed used to determine the avatar.
4
+ * @returns {string} - The selected avatar image URL.
5
5
  */
6
6
  export declare const useAvatar: (seed?: string) => string;
@@ -1,66 +1,43 @@
1
1
  import { useEffect, useState } from "react";
2
- const emptyAddress = "0x0000000000000000000000000000000000000000";
2
+ const zeroAddress = "0x0000000000000000000000000000000000000000";
3
+ const avatarImagesBaseUrl = "https://raw.githubusercontent.com/0xsquid/assets/main/squid-brand-assets/pfps";
4
+ const avatarImages = [
5
+ `${avatarImagesBaseUrl}/pfp1.svg`,
6
+ `${avatarImagesBaseUrl}/pfp15.svg`,
7
+ `${avatarImagesBaseUrl}/pfp2.svg`,
8
+ `${avatarImagesBaseUrl}/pfp22.svg`,
9
+ `${avatarImagesBaseUrl}/pfp29.svg`,
10
+ `${avatarImagesBaseUrl}/pfp3.svg`,
11
+ `${avatarImagesBaseUrl}/pfp36.svg`,
12
+ `${avatarImagesBaseUrl}/pfp4.svg`,
13
+ `${avatarImagesBaseUrl}/pfp41.svg`,
14
+ `${avatarImagesBaseUrl}/pfp5.svg`,
15
+ `${avatarImagesBaseUrl}/pfp6.svg`,
16
+ `${avatarImagesBaseUrl}/pfp8.svg`,
17
+ ];
3
18
  /**
4
- * Scales a byte to a given scale.
5
- * @param {number} byte - The byte value to scale (0-255).
6
- * @param {number} scale - The scale to apply.
7
- * @returns {number} - The scaled value.
19
+ * Simple hash function to create a deterministic index from a given string.
20
+ * @param {string} str - The input string to hash.
21
+ * @param {number} max - The maximum value for the hash.
22
+ * @returns {number} - The index within the array.
8
23
  */
9
- const bscale = (byte, scale) => (byte / 255) * scale;
10
- /**
11
- * Scales a byte to a value within a given range.
12
- * @param {number} byte - The byte value to scale (0-255).
13
- * @param {number} min - The minimum value of the range.
14
- * @param {number} max - The maximum value of the range.
15
- * @returns {number} - The scaled value within the specified range.
16
- */
17
- const bScaleRange = (byte, min, max) => min + (max - min) * (byte / 255);
18
- /**
19
- * Converts a string into a Uint8Array of bytes.
20
- * @param {string} str - The string to convert.
21
- * @returns {Uint8Array} - The resulting array of bytes.
22
- */
23
- const stringToBytes = (str) => {
24
- const hash = new Uint8Array(16);
24
+ const hashStringToIndex = (str, max) => {
25
+ let index = 0;
25
26
  for (let i = 0; i < str.length; i++) {
26
- hash[i % 16] = (hash[i % 16] + str.charCodeAt(i)) % 256;
27
+ index = (index * 31 + str.charCodeAt(i)) % max;
27
28
  }
28
- return hash;
29
- };
30
- /**
31
- * Generates an array of HSL color strings based on a seed string.
32
- * @param {string} seed - The seed string used to generate colors.
33
- * @returns {string[]} - An array of HSL color strings.
34
- */
35
- const generateHSLColors = (seed) => {
36
- const bytes = stringToBytes(seed);
37
- const startHue = bscale(bytes[12], 360);
38
- const startLightness = bScaleRange(bytes[2], 32, 69.5);
39
- const endLightness = (97 + bScaleRange(bytes[8], 72, 97)) / 2;
40
- const startSaturation = bScaleRange(bytes[7], 81, 97);
41
- const endSaturation = Math.min(startSaturation - 10, bScaleRange(bytes[10], 70, 92));
42
- return [0, 0.1, 0.7, 0.9, 1].map((t) => `hsl(${Math.round(startHue)}, ${Math.round(startSaturation - (startSaturation - endSaturation) * (1 - t))}%, ${Math.round(startLightness + (endLightness - startLightness) * (1 - t))}%)`);
29
+ return index;
43
30
  };
44
31
  /**
45
- * Generates an SVG with random colors based on a seed string.
46
- * @param {string} seed - The seed string used to generate the avatar colors.
47
- * @returns {string} The SVG string.
32
+ * Custom hook to return a deterministic avatar image URL based on the provided seed.
33
+ * @param {string} seed - The seed used to determine the avatar.
34
+ * @returns {string} - The selected avatar image URL.
48
35
  */
49
- export const useAvatar = (seed = emptyAddress) => {
36
+ export const useAvatar = (seed = zeroAddress) => {
50
37
  const [avatar, setAvatar] = useState("");
51
38
  useEffect(() => {
52
- const colors = generateHSLColors(seed);
53
- const svgString = `
54
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 110 110">
55
- <defs><linearGradient id="gzr" x1="106.975" y1="136.156" x2="-12.9815" y2="13.5347" gradientUnits="userSpaceOnUse">
56
- ${colors
57
- .map((color, i) => `<stop offset="${i * 0.25}" stop-color="${color}" />`)
58
- .join("")}
59
- </linearGradient></defs>
60
- <rect width="110" height="110" fill="url(#gzr)" />
61
- </svg>
62
- `;
63
- setAvatar(`data:image/svg+xml;base64,${btoa(svgString)}`);
39
+ const index = hashStringToIndex(seed, avatarImages.length);
40
+ setAvatar(avatarImages[index]);
64
41
  }, [seed]);
65
42
  return avatar;
66
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useAvatar.js","sourceRoot":"","sources":["../../../src/hooks/user/useAvatar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAvatar.js","sourceRoot":"","sources":["../../../src/hooks/user/useAvatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,GAAG,4CAA4C,CAAC;AAEjE,MAAM,mBAAmB,GACvB,+EAA+E,CAAC;AAElF,MAAM,YAAY,GAAG;IACnB,GAAG,mBAAmB,WAAW;IACjC,GAAG,mBAAmB,YAAY;IAClC,GAAG,mBAAmB,WAAW;IACjC,GAAG,mBAAmB,YAAY;IAClC,GAAG,mBAAmB,YAAY;IAClC,GAAG,mBAAmB,WAAW;IACjC,GAAG,mBAAmB,YAAY;IAClC,GAAG,mBAAmB,WAAW;IACjC,GAAG,mBAAmB,YAAY;IAClC,GAAG,mBAAmB,WAAW;IACjC,GAAG,mBAAmB,WAAW;IACjC,GAAG,mBAAmB,WAAW;CAClC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAU,EAAE;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KAChD;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,WAAW,EAAU,EAAE;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3D,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsquid/react-hooks",
3
- "version": "2.1.8-beta.1",
3
+ "version": "2.1.8",
4
4
  "description": "Squid hooks monorepo",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",