thirdweb 5.115.3 → 5.115.4

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.
Files changed (40) hide show
  1. package/dist/cjs/utils/base64/base64.js +4 -2
  2. package/dist/cjs/utils/base64/base64.js.map +1 -1
  3. package/dist/cjs/utils/contract/fetchContractMetadata.js +10 -0
  4. package/dist/cjs/utils/contract/fetchContractMetadata.js.map +1 -1
  5. package/dist/cjs/utils/nft/fetchTokenMetadata.js +10 -0
  6. package/dist/cjs/utils/nft/fetchTokenMetadata.js.map +1 -1
  7. package/dist/cjs/utils/utf8/utf8.js +43 -0
  8. package/dist/cjs/utils/utf8/utf8.js.map +1 -0
  9. package/dist/cjs/version.js +1 -1
  10. package/dist/cjs/wallets/utils/getWalletBalance.js +6 -1
  11. package/dist/cjs/wallets/utils/getWalletBalance.js.map +1 -1
  12. package/dist/esm/utils/base64/base64.js +4 -2
  13. package/dist/esm/utils/base64/base64.js.map +1 -1
  14. package/dist/esm/utils/contract/fetchContractMetadata.js +10 -0
  15. package/dist/esm/utils/contract/fetchContractMetadata.js.map +1 -1
  16. package/dist/esm/utils/nft/fetchTokenMetadata.js +10 -0
  17. package/dist/esm/utils/nft/fetchTokenMetadata.js.map +1 -1
  18. package/dist/esm/utils/utf8/utf8.js +39 -0
  19. package/dist/esm/utils/utf8/utf8.js.map +1 -0
  20. package/dist/esm/version.js +1 -1
  21. package/dist/esm/wallets/utils/getWalletBalance.js +6 -1
  22. package/dist/esm/wallets/utils/getWalletBalance.js.map +1 -1
  23. package/dist/scripts/bridge-widget.js +67 -67
  24. package/dist/types/utils/base64/base64.d.ts +2 -2
  25. package/dist/types/utils/base64/base64.d.ts.map +1 -1
  26. package/dist/types/utils/contract/fetchContractMetadata.d.ts.map +1 -1
  27. package/dist/types/utils/nft/fetchTokenMetadata.d.ts.map +1 -1
  28. package/dist/types/utils/utf8/utf8.d.ts +26 -0
  29. package/dist/types/utils/utf8/utf8.d.ts.map +1 -0
  30. package/dist/types/version.d.ts +1 -1
  31. package/dist/types/wallets/utils/getWalletBalance.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/utils/base64/base64.ts +5 -4
  34. package/src/utils/contract/fetchContractMetadata.ts +13 -0
  35. package/src/utils/nft/fetch-token-metadata.test.ts +38 -0
  36. package/src/utils/nft/fetchTokenMetadata.ts +13 -0
  37. package/src/utils/utf8/utf8.test.ts +93 -0
  38. package/src/utils/utf8/utf8.ts +40 -0
  39. package/src/version.ts +1 -1
  40. package/src/wallets/utils/getWalletBalance.ts +9 -1
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isBase64JSON = isBase64JSON;
4
4
  exports.parseBase64String = parseBase64String;
5
5
  const uint8_array_js_1 = require("../uint8-array.js");
6
+ const Base64Prefix = "data:application/json;base64";
6
7
  /**
7
8
  * Checks if a given string is a base64 encoded JSON string.
8
9
  * @param input - The string to be checked.
@@ -14,7 +15,7 @@ const uint8_array_js_1 = require("../uint8-array.js");
14
15
  * ```
15
16
  */
16
17
  function isBase64JSON(input) {
17
- if (input.startsWith("data:application/json;base64")) {
18
+ if (input.toLowerCase().startsWith(Base64Prefix)) {
18
19
  return true;
19
20
  }
20
21
  return false;
@@ -30,7 +31,8 @@ function isBase64JSON(input) {
30
31
  * ```
31
32
  */
32
33
  function parseBase64String(input) {
33
- const [, base64] = input.split(",");
34
+ const commaIndex = input.indexOf(",");
35
+ const base64 = input.slice(commaIndex + 1);
34
36
  return (0, uint8_array_js_1.base64ToString)(base64);
35
37
  }
36
38
  //# sourceMappingURL=base64.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../src/utils/base64/base64.ts"],"names":[],"mappings":";;AAeA,oCAKC;AAYD,8CAGC;AAnCD,sDAAmD;AAKnD;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAAC,KAAmB;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;IAC9D,OAAO,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../src/utils/base64/base64.ts"],"names":[],"mappings":";;AAeA,oCAKC;AAYD,8CAIC;AApCD,sDAAmD;AAEnD,MAAM,YAAY,GAAG,8BAAuC,CAAC;AAG7D;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAAC,KAAmB;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchContractMetadata = fetchContractMetadata;
4
4
  const base64_js_1 = require("../base64/base64.js");
5
+ const utf8_js_1 = require("../utf8/utf8.js");
5
6
  /**
6
7
  * Fetches the metadata for a token.
7
8
  *
@@ -21,6 +22,15 @@ async function fetchContractMetadata(options) {
21
22
  return undefined;
22
23
  }
23
24
  }
25
+ if ((0, utf8_js_1.isUTF8JSONString)(uri)) {
26
+ try {
27
+ return JSON.parse((0, utf8_js_1.parseUTF8String)(uri));
28
+ }
29
+ catch (e) {
30
+ console.error("Failed to fetch utf8 encoded contract metadata", { uri }, e);
31
+ return undefined;
32
+ }
33
+ }
24
34
  // in all other cases we will need the `download` function from storage
25
35
  const { download } = await Promise.resolve().then(() => require("../../storage/download.js"));
26
36
  return await (await download({ client, uri })).json();
@@ -1 +1 @@
1
- {"version":3,"file":"fetchContractMetadata.js","sourceRoot":"","sources":["../../../../src/utils/contract/fetchContractMetadata.ts"],"names":[],"mappings":";;AAkBA,sDAuBC;AAxCD,mDAAsE;AAUtE;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,OAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,qDAAqD;IACrD,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,6BAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,EAAE,GAAG,EAAE,EACP,CAAC,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,uEAAuE;IAEvE,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,2BAA2B,EAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"fetchContractMetadata.js","sourceRoot":"","sources":["../../../../src/utils/contract/fetchContractMetadata.ts"],"names":[],"mappings":";;AAmBA,sDAmCC;AArDD,mDAAsE;AACtE,6CAAoE;AAUpE;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,OAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,qDAAqD;IACrD,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,6BAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,EAAE,GAAG,EAAE,EACP,CAAC,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,IAAA,0BAAgB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,yBAAe,EAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,gDAAgD,EAChD,EAAE,GAAG,EAAE,EACP,CAAC,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,uEAAuE;IAEvE,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,2BAA2B,EAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchTokenMetadata = fetchTokenMetadata;
4
4
  const base64_js_1 = require("../base64/base64.js");
5
5
  const hex_js_1 = require("../encoding/hex.js");
6
+ const utf8_js_1 = require("../utf8/utf8.js");
6
7
  /**
7
8
  * Fetches the metadata for a token.
8
9
  *
@@ -22,6 +23,15 @@ async function fetchTokenMetadata(options) {
22
23
  throw e;
23
24
  }
24
25
  }
26
+ if ((0, utf8_js_1.isUTF8JSONString)(tokenUri)) {
27
+ try {
28
+ return JSON.parse((0, utf8_js_1.parseUTF8String)(tokenUri));
29
+ }
30
+ catch (e) {
31
+ console.error("Failed to fetch utf8 encoded NFT", { tokenId, tokenUri }, e);
32
+ throw e;
33
+ }
34
+ }
25
35
  // in all other cases we will need the `download` function from storage
26
36
  const { download } = await Promise.resolve().then(() => require("../../storage/download.js"));
27
37
  // handle non-dynamic uris (most common case -> skip the other checks)
@@ -1 +1 @@
1
- {"version":3,"file":"fetchTokenMetadata.js","sourceRoot":"","sources":["../../../../src/utils/nft/fetchTokenMetadata.ts"],"names":[],"mappings":";;AAqBA,gDAyDC;AA7ED,mDAAsE;AACtE,+CAAiD;AAYjD;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC9C,mEAAmE;IACnE,IAAI,IAAA,wBAAY,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,6BAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,oCAAoC,EACpC,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,2BAA2B,EAAC,CAAC;IAE/D,sEAAsE;IACtE,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,CAAC;IACV,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC;QACH,IAAI,CAAC;YACH,8BAA8B;YAC9B,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CACnB,MAAM,EACN,IAAA,oBAAW,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5C;aACF,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAClD,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchTokenMetadata.js","sourceRoot":"","sources":["../../../../src/utils/nft/fetchTokenMetadata.ts"],"names":[],"mappings":";;AAsBA,gDAqEC;AA1FD,mDAAsE;AACtE,+CAAiD;AACjD,6CAAoE;AAYpE;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC9C,mEAAmE;IACnE,IAAI,IAAA,wBAAY,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,6BAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,oCAAoC,EACpC,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,IAAI,IAAA,0BAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,2BAA2B,EAAC,CAAC;IAE/D,sEAAsE;IACtE,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,CAAC;IACV,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC;QACH,IAAI,CAAC;YACH,8BAA8B;YAC9B,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CACnB,MAAM,EACN,IAAA,oBAAW,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5C;aACF,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAClD,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isUTF8JSONString = isUTF8JSONString;
4
+ exports.parseUTF8String = parseUTF8String;
5
+ const UTF8Prefix = "data:application/json;utf-8";
6
+ /**
7
+ * Checks if a given string is a UTF-8 encoded JSON string.
8
+ * @param input - The string to be checked.
9
+ * @returns True if the input string starts with "data:application/json;utf-8", false otherwise.
10
+ * @example
11
+ * ```ts
12
+ * isUTF8JSONString("data:application/json;utf-8,{ \"test\": \"utf8\" }")
13
+ * // true
14
+ * ```
15
+ */
16
+ function isUTF8JSONString(input) {
17
+ if (input.toLowerCase().startsWith(UTF8Prefix)) {
18
+ return true;
19
+ }
20
+ return false;
21
+ }
22
+ /**
23
+ * Parses a UTF-8 string and returns the decoded string.
24
+ * @param input - The UTF-8 string to parse.
25
+ * @returns The decoded string.
26
+ * @example
27
+ * ```ts
28
+ * parseUTF8String("data:application/json;utf-8,{ \"test\": \"utf8\" }")
29
+ * // '{"test":"utf8"}'
30
+ * ```
31
+ */
32
+ function parseUTF8String(input) {
33
+ const commaIndex = input.indexOf(",");
34
+ const utf8 = input.slice(commaIndex + 1);
35
+ try {
36
+ // try to decode the UTF-8 string, if it fails, return the original string
37
+ return decodeURIComponent(utf8);
38
+ }
39
+ catch {
40
+ return utf8;
41
+ }
42
+ }
43
+ //# sourceMappingURL=utf8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../../src/utils/utf8/utf8.ts"],"names":[],"mappings":";;AAaA,4CAKC;AAYD,0CASC;AAvCD,MAAM,UAAU,GAAG,6BAAsC,CAAC;AAG1D;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,KAAiB;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,0EAA0E;QAC1E,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = "5.115.3";
4
+ exports.version = "5.115.4";
5
5
  //# sourceMappingURL=version.js.map
@@ -24,7 +24,12 @@ const units_js_1 = require("../../utils/units.js");
24
24
  * @walletUtils
25
25
  */
26
26
  async function getWalletBalance(options) {
27
- const { address, client, chain, tokenAddress } = options;
27
+ const { address, client, chain } = options;
28
+ // Scipper chain (42429) uses a wrapped native token for balance queries
29
+ const tokenAddress = options.tokenAddress ||
30
+ (chain.id === 42429
31
+ ? "0x20c0000000000000000000000000000000000000"
32
+ : undefined);
28
33
  // erc20 case
29
34
  if (tokenAddress &&
30
35
  (0, address_js_1.getAddress)(tokenAddress) !== (0, address_js_1.getAddress)(addresses_js_1.NATIVE_TOKEN_ADDRESS)) {
@@ -1 +1 @@
1
- {"version":3,"file":"getWalletBalance.js","sourceRoot":"","sources":["../../../../src/wallets/utils/getWalletBalance.ts"],"names":[],"mappings":";;AA0CA,4CAsCC;AA/ED,oDAI+B;AAE/B,+DAAoE;AACpE,4DAAyD;AAEzD,2EAAqE;AACrE,6CAAgD;AAChD,uDAAoD;AACpD,mDAAgD;AAchD;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACzD,aAAa;IACb,IACE,YAAY;QACZ,IAAA,uBAAU,EAAC,YAAY,CAAC,KAAK,IAAA,uBAAU,EAAC,mCAAoB,CAAC,EAC7D,CAAC;QACD,0DAA0D;QAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,2CACrB,2CAA2C,EAC5C,CAAC;QACF,OAAO,UAAU,CAAC;YAChB,OAAO;YACP,QAAQ,EAAE,IAAA,yBAAW,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC,GAC7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,yBAAc,EAAC,KAAK,CAAC;QACrB,IAAA,2BAAgB,EAAC,KAAK,CAAC;QACvB,IAAA,qCAA0B,EAAC,KAAK,CAAC;QACjC,IAAA,kCAAc,EAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC;KACxC,CAAC,CAAC;IAEL,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,IAAA,mBAAQ,EAAC,aAAa,EAAE,cAAc,CAAC;QACrD,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,YAAY,IAAI,mCAAoB;QAClD,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getWalletBalance.js","sourceRoot":"","sources":["../../../../src/wallets/utils/getWalletBalance.ts"],"names":[],"mappings":";;AA0CA,4CA8CC;AAvFD,oDAI+B;AAE/B,+DAAoE;AACpE,4DAAyD;AAEzD,2EAAqE;AACrE,6CAAgD;AAChD,uDAAoD;AACpD,mDAAgD;AAchD;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE3C,wEAAwE;IACxE,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY;QACpB,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK;YACjB,CAAC,CAAC,4CAA4C;YAC9C,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,aAAa;IACb,IACE,YAAY;QACZ,IAAA,uBAAU,EAAC,YAAY,CAAC,KAAK,IAAA,uBAAU,EAAC,mCAAoB,CAAC,EAC7D,CAAC;QACD,0DAA0D;QAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,2CACrB,2CAA2C,EAC5C,CAAC;QACF,OAAO,UAAU,CAAC;YAChB,OAAO;YACP,QAAQ,EAAE,IAAA,yBAAW,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC,GAC7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,yBAAc,EAAC,KAAK,CAAC;QACrB,IAAA,2BAAgB,EAAC,KAAK,CAAC;QACvB,IAAA,qCAA0B,EAAC,KAAK,CAAC;QACjC,IAAA,kCAAc,EAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC;KACxC,CAAC,CAAC;IAEL,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,IAAA,mBAAQ,EAAC,aAAa,EAAE,cAAc,CAAC;QACrD,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,YAAY,IAAI,mCAAoB;QAClD,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { base64ToString } from "../uint8-array.js";
2
+ const Base64Prefix = "data:application/json;base64";
2
3
  /**
3
4
  * Checks if a given string is a base64 encoded JSON string.
4
5
  * @param input - The string to be checked.
@@ -10,7 +11,7 @@ import { base64ToString } from "../uint8-array.js";
10
11
  * ```
11
12
  */
12
13
  export function isBase64JSON(input) {
13
- if (input.startsWith("data:application/json;base64")) {
14
+ if (input.toLowerCase().startsWith(Base64Prefix)) {
14
15
  return true;
15
16
  }
16
17
  return false;
@@ -26,7 +27,8 @@ export function isBase64JSON(input) {
26
27
  * ```
27
28
  */
28
29
  export function parseBase64String(input) {
29
- const [, base64] = input.split(",");
30
+ const commaIndex = input.indexOf(",");
31
+ const base64 = input.slice(commaIndex + 1);
30
32
  return base64ToString(base64);
31
33
  }
32
34
  //# sourceMappingURL=base64.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../src/utils/base64/base64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;IAC9D,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../src/utils/base64/base64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,YAAY,GAAG,8BAAuC,CAAC;AAG7D;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { isBase64JSON, parseBase64String } from "../base64/base64.js";
2
+ import { isUTF8JSONString, parseUTF8String } from "../utf8/utf8.js";
2
3
  /**
3
4
  * Fetches the metadata for a token.
4
5
  *
@@ -18,6 +19,15 @@ export async function fetchContractMetadata(options) {
18
19
  return undefined;
19
20
  }
20
21
  }
22
+ if (isUTF8JSONString(uri)) {
23
+ try {
24
+ return JSON.parse(parseUTF8String(uri));
25
+ }
26
+ catch (e) {
27
+ console.error("Failed to fetch utf8 encoded contract metadata", { uri }, e);
28
+ return undefined;
29
+ }
30
+ }
21
31
  // in all other cases we will need the `download` function from storage
22
32
  const { download } = await import("../../storage/download.js");
23
33
  return await (await download({ client, uri })).json();
@@ -1 +1 @@
1
- {"version":3,"file":"fetchContractMetadata.js","sourceRoot":"","sources":["../../../../src/utils/contract/fetchContractMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUtE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,qDAAqD;IACrD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,EAAE,GAAG,EAAE,EACP,CAAC,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,uEAAuE;IAEvE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"fetchContractMetadata.js","sourceRoot":"","sources":["../../../../src/utils/contract/fetchContractMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,qDAAqD;IACrD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,EAAE,GAAG,EAAE,EACP,CAAC,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,gDAAgD,EAChD,EAAE,GAAG,EAAE,EACP,CAAC,CACF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,uEAAuE;IAEvE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { isBase64JSON, parseBase64String } from "../base64/base64.js";
2
2
  import { numberToHex } from "../encoding/hex.js";
3
+ import { isUTF8JSONString, parseUTF8String } from "../utf8/utf8.js";
3
4
  /**
4
5
  * Fetches the metadata for a token.
5
6
  *
@@ -19,6 +20,15 @@ export async function fetchTokenMetadata(options) {
19
20
  throw e;
20
21
  }
21
22
  }
23
+ if (isUTF8JSONString(tokenUri)) {
24
+ try {
25
+ return JSON.parse(parseUTF8String(tokenUri));
26
+ }
27
+ catch (e) {
28
+ console.error("Failed to fetch utf8 encoded NFT", { tokenId, tokenUri }, e);
29
+ throw e;
30
+ }
31
+ }
22
32
  // in all other cases we will need the `download` function from storage
23
33
  const { download } = await import("../../storage/download.js");
24
34
  // handle non-dynamic uris (most common case -> skip the other checks)
@@ -1 +1 @@
1
- {"version":3,"file":"fetchTokenMetadata.js","sourceRoot":"","sources":["../../../../src/utils/nft/fetchTokenMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYjD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC9C,mEAAmE;IACnE,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,oCAAoC,EACpC,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAE/D,sEAAsE;IACtE,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,CAAC;IACV,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC;QACH,IAAI,CAAC;YACH,8BAA8B;YAC9B,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CACnB,MAAM,EACN,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5C;aACF,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAClD,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchTokenMetadata.js","sourceRoot":"","sources":["../../../../src/utils/nft/fetchTokenMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAYpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC9C,mEAAmE;IACnE,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,oCAAoC,EACpC,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAE/D,sEAAsE;IACtE,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,CAAC;IACV,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC;QACH,IAAI,CAAC;YACH,8BAA8B;YAC9B,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CACnB,MAAM,EACN,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5C;aACF,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,OAAO,MAAM,CACX,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;aAClD,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,39 @@
1
+ const UTF8Prefix = "data:application/json;utf-8";
2
+ /**
3
+ * Checks if a given string is a UTF-8 encoded JSON string.
4
+ * @param input - The string to be checked.
5
+ * @returns True if the input string starts with "data:application/json;utf-8", false otherwise.
6
+ * @example
7
+ * ```ts
8
+ * isUTF8JSONString("data:application/json;utf-8,{ \"test\": \"utf8\" }")
9
+ * // true
10
+ * ```
11
+ */
12
+ export function isUTF8JSONString(input) {
13
+ if (input.toLowerCase().startsWith(UTF8Prefix)) {
14
+ return true;
15
+ }
16
+ return false;
17
+ }
18
+ /**
19
+ * Parses a UTF-8 string and returns the decoded string.
20
+ * @param input - The UTF-8 string to parse.
21
+ * @returns The decoded string.
22
+ * @example
23
+ * ```ts
24
+ * parseUTF8String("data:application/json;utf-8,{ \"test\": \"utf8\" }")
25
+ * // '{"test":"utf8"}'
26
+ * ```
27
+ */
28
+ export function parseUTF8String(input) {
29
+ const commaIndex = input.indexOf(",");
30
+ const utf8 = input.slice(commaIndex + 1);
31
+ try {
32
+ // try to decode the UTF-8 string, if it fails, return the original string
33
+ return decodeURIComponent(utf8);
34
+ }
35
+ catch {
36
+ return utf8;
37
+ }
38
+ }
39
+ //# sourceMappingURL=utf8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../../../src/utils/utf8/utf8.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,6BAAsC,CAAC;AAG1D;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,0EAA0E;QAC1E,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- export const version = "5.115.3";
1
+ export const version = "5.115.4";
2
2
  //# sourceMappingURL=version.js.map
@@ -21,7 +21,12 @@ import { toTokens } from "../../utils/units.js";
21
21
  * @walletUtils
22
22
  */
23
23
  export async function getWalletBalance(options) {
24
- const { address, client, chain, tokenAddress } = options;
24
+ const { address, client, chain } = options;
25
+ // Scipper chain (42429) uses a wrapped native token for balance queries
26
+ const tokenAddress = options.tokenAddress ||
27
+ (chain.id === 42429
28
+ ? "0x20c0000000000000000000000000000000000000"
29
+ : undefined);
25
30
  // erc20 case
26
31
  if (tokenAddress &&
27
32
  getAddress(tokenAddress) !== getAddress(NATIVE_TOKEN_ADDRESS)) {
@@ -1 +1 @@
1
- {"version":3,"file":"getWalletBalance.js","sourceRoot":"","sources":["../../../../src/wallets/utils/getWalletBalance.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACzD,aAAa;IACb,IACE,YAAY;QACZ,UAAU,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,oBAAoB,CAAC,EAC7D,CAAC;QACD,0DAA0D;QAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CACjC,2CAA2C,CAC5C,CAAC;QACF,OAAO,UAAU,CAAC;YAChB,OAAO;YACP,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;IACpB,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC,GAC7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,KAAK,CAAC;QACrB,gBAAgB,CAAC,KAAK,CAAC;QACvB,0BAA0B,CAAC,KAAK,CAAC;QACjC,cAAc,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC;KACxC,CAAC,CAAC;IAEL,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;QACrD,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,YAAY,IAAI,oBAAoB;QAClD,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getWalletBalance.js","sourceRoot":"","sources":["../../../../src/wallets/utils/getWalletBalance.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE3C,wEAAwE;IACxE,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY;QACpB,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK;YACjB,CAAC,CAAC,4CAA4C;YAC9C,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,aAAa;IACb,IACE,YAAY;QACZ,UAAU,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,oBAAoB,CAAC,EAC7D,CAAC;QACD,0DAA0D;QAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CACjC,2CAA2C,CAC5C,CAAC;QACF,OAAO,UAAU,CAAC;YAChB,OAAO;YACP,QAAQ,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;IACpB,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC,GAC7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,KAAK,CAAC;QACrB,gBAAgB,CAAC,KAAK,CAAC;QACvB,0BAA0B,CAAC,KAAK,CAAC;QACjC,cAAc,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC;KACxC,CAAC,CAAC;IAEL,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;QACrD,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,YAAY,IAAI,oBAAoB;QAClD,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC"}