@gardenfi/utils 2.4.1 → 2.4.2

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 (175) hide show
  1. package/dist/index10.cjs +1 -1
  2. package/dist/index10.js +4 -4
  3. package/dist/index107.cjs +1 -1
  4. package/dist/index107.js +1 -1
  5. package/dist/index110.cjs +1 -1
  6. package/dist/index110.js +1 -1
  7. package/dist/index111.cjs +1 -1
  8. package/dist/index111.js +4 -4
  9. package/dist/index113.cjs +1 -1
  10. package/dist/index113.js +1 -1
  11. package/dist/index114.cjs +1 -1
  12. package/dist/index114.js +1 -1
  13. package/dist/index115.cjs +1 -1
  14. package/dist/index115.js +1 -1
  15. package/dist/index116.cjs +1 -1
  16. package/dist/index116.js +1 -1
  17. package/dist/index16.cjs +1 -1
  18. package/dist/index16.js +4 -4
  19. package/dist/index18.cjs +1 -1
  20. package/dist/index18.js +2 -2
  21. package/dist/index23.cjs +1 -1
  22. package/dist/index23.js +6 -6
  23. package/dist/index233.cjs +1 -1
  24. package/dist/index233.js +25 -10
  25. package/dist/index234.cjs +1 -1
  26. package/dist/index234.js +13 -16
  27. package/dist/index235.cjs +1 -1
  28. package/dist/index235.js +14 -21
  29. package/dist/index236.cjs +1 -1
  30. package/dist/index236.js +5 -30
  31. package/dist/index237.cjs +1 -1
  32. package/dist/index237.js +14 -2
  33. package/dist/index238.cjs +1 -1
  34. package/dist/index238.js +9 -12
  35. package/dist/index239.cjs +1 -1
  36. package/dist/index239.js +16 -12
  37. package/dist/index24.cjs +1 -1
  38. package/dist/index24.js +31 -13
  39. package/dist/index240.cjs +1 -1
  40. package/dist/index240.js +10 -47
  41. package/dist/index241.cjs +1 -1
  42. package/dist/index241.js +15 -10
  43. package/dist/index242.cjs +1 -1
  44. package/dist/index242.js +22 -7
  45. package/dist/index243.cjs +1 -1
  46. package/dist/index243.js +30 -9
  47. package/dist/index244.cjs +1 -1
  48. package/dist/index244.js +2 -14
  49. package/dist/index245.cjs +1 -1
  50. package/dist/index245.js +13 -14
  51. package/dist/index246.cjs +1 -1
  52. package/dist/index246.js +12 -9
  53. package/dist/index247.cjs +1 -1
  54. package/dist/index247.js +47 -24
  55. package/dist/index248.cjs +1 -1
  56. package/dist/index248.js +11 -12
  57. package/dist/index249.cjs +1 -1
  58. package/dist/index249.js +7 -24
  59. package/dist/index25.cjs +1 -1
  60. package/dist/index25.js +32 -58
  61. package/dist/index250.cjs +1 -1
  62. package/dist/index250.js +8 -12
  63. package/dist/index251.cjs +1 -1
  64. package/dist/index251.js +13 -15
  65. package/dist/index252.cjs +1 -2
  66. package/dist/index252.js +11 -21
  67. package/dist/index253.cjs +1 -1
  68. package/dist/index253.js +9 -52
  69. package/dist/index254.cjs +1 -1
  70. package/dist/index254.js +24 -25
  71. package/dist/index255.cjs +1 -1
  72. package/dist/index255.js +12 -13
  73. package/dist/index256.cjs +1 -1
  74. package/dist/index256.js +24 -15
  75. package/dist/index257.cjs +1 -1
  76. package/dist/index257.js +13 -5
  77. package/dist/index258.cjs +1 -1
  78. package/dist/index258.js +15 -13
  79. package/dist/index259.cjs +2 -1
  80. package/dist/index259.js +24 -10
  81. package/dist/index26.cjs +1 -16
  82. package/dist/index26.js +11 -113
  83. package/dist/index260.cjs +1 -1
  84. package/dist/index260.js +52 -16
  85. package/dist/index27.cjs +1 -1
  86. package/dist/index27.js +58 -32
  87. package/dist/index28.cjs +1 -1
  88. package/dist/index28.js +12 -26
  89. package/dist/index280.cjs +1 -1
  90. package/dist/index280.js +1 -1
  91. package/dist/index282.cjs +1 -1
  92. package/dist/index282.js +1 -1
  93. package/dist/index287.cjs +1 -1
  94. package/dist/index287.js +1 -1
  95. package/dist/index288.cjs +1 -1
  96. package/dist/index288.js +139 -3
  97. package/dist/index289.cjs +1 -1
  98. package/dist/index289.js +39 -137
  99. package/dist/index29.cjs +16 -1
  100. package/dist/index29.js +113 -7
  101. package/dist/index290.cjs +1 -1
  102. package/dist/index290.js +72 -149
  103. package/dist/index291.cjs +1 -1
  104. package/dist/index291.js +2 -10
  105. package/dist/index292.cjs +1 -1
  106. package/dist/index292.js +3 -113
  107. package/dist/index293.cjs +1 -2
  108. package/dist/index293.js +128 -122
  109. package/dist/index294.cjs +1 -1
  110. package/dist/index294.js +153 -137
  111. package/dist/index295.cjs +1 -1
  112. package/dist/index295.js +9 -42
  113. package/dist/index296.cjs +1 -1
  114. package/dist/index296.js +107 -72
  115. package/dist/index297.cjs +2 -1
  116. package/dist/index297.js +135 -2
  117. package/dist/index30.cjs +1 -1
  118. package/dist/index30.js +27 -31
  119. package/dist/index301.cjs +1 -1
  120. package/dist/index301.js +2 -2
  121. package/dist/index302.cjs +1 -1
  122. package/dist/index302.js +1 -1
  123. package/dist/index305.cjs +1 -1
  124. package/dist/index305.js +1 -1
  125. package/dist/index306.cjs +1 -1
  126. package/dist/index306.js +1 -1
  127. package/dist/index31.cjs +1 -1
  128. package/dist/index31.js +8 -12
  129. package/dist/index310.cjs +1 -1
  130. package/dist/index310.js +2 -2
  131. package/dist/index311.cjs +1 -1
  132. package/dist/index311.js +1 -1
  133. package/dist/index33.cjs +1 -1
  134. package/dist/index33.js +1 -1
  135. package/dist/index39.cjs +1 -1
  136. package/dist/index39.js +1 -1
  137. package/dist/index56.cjs +1 -1
  138. package/dist/index56.js +2 -2
  139. package/dist/index57.cjs +1 -1
  140. package/dist/index57.js +1 -1
  141. package/dist/index58.cjs +1 -1
  142. package/dist/index58.js +2 -2
  143. package/dist/index59.cjs +1 -1
  144. package/dist/index59.js +1 -1
  145. package/dist/index60.cjs +1 -1
  146. package/dist/index60.js +2 -2
  147. package/dist/index61.cjs +1 -1
  148. package/dist/index61.js +6 -6
  149. package/dist/index62.cjs +1 -1
  150. package/dist/index62.js +2 -2
  151. package/dist/index63.cjs +1 -1
  152. package/dist/index63.js +1 -1
  153. package/dist/index64.cjs +1 -1
  154. package/dist/index64.js +1 -1
  155. package/dist/index65.cjs +1 -1
  156. package/dist/index65.js +1 -1
  157. package/dist/index67.cjs +1 -1
  158. package/dist/index67.js +4 -4
  159. package/dist/index76.cjs +1 -1
  160. package/dist/index76.js +1 -1
  161. package/dist/index77.cjs +1 -1
  162. package/dist/index77.js +1 -1
  163. package/dist/index82.cjs +1 -1
  164. package/dist/index82.js +1 -1
  165. package/dist/index88.cjs +1 -1
  166. package/dist/index88.js +3 -3
  167. package/dist/index89.cjs +1 -1
  168. package/dist/index89.js +2 -2
  169. package/dist/index91.cjs +1 -1
  170. package/dist/index91.js +1 -1
  171. package/dist/index92.cjs +1 -1
  172. package/dist/index92.js +1 -1
  173. package/dist/index98.cjs +1 -1
  174. package/dist/index98.js +1 -1
  175. package/package.json +1 -1
package/dist/index292.js CHANGED
@@ -1,116 +1,6 @@
1
- import { BaseError as y } from "./index303.js";
2
- import { keccak256 as v } from "./index306.js";
3
- import { validate as $, slice as A, fromString as S } from "./index290.js";
4
- import { isArgOfType as E, normalizeSignature as p, getAmbiguousTypes as B } from "./index307.js";
5
- import { parseAbiItem as l } from "./index270.js";
6
- import { formatAbiItem as h } from "./index263.js";
7
- function H(e, r = {}) {
8
- const { prepare: i = !0 } = r, n = Array.isArray(e) ? l(e) : typeof e == "string" ? l(e) : e;
9
- return {
10
- ...n,
11
- ...i ? { hash: s(n) } : {}
12
- };
13
- }
14
- function M(e, r, i) {
15
- const { args: n = [], prepare: f = !0 } = i ?? {}, b = $(r, { strict: !1 }), u = e.filter((t) => b ? t.type === "function" || t.type === "error" ? T(t) === A(r, 0, 4) : t.type === "event" ? s(t) === r : !1 : "name" in t && t.name === r);
16
- if (u.length === 0)
17
- throw new d({ name: r });
18
- if (u.length === 1)
19
- return {
20
- ...u[0],
21
- ...f ? { hash: s(u[0]) } : {}
22
- };
23
- let o;
24
- for (const t of u) {
25
- if (!("inputs" in t))
26
- continue;
27
- if (!n || n.length === 0) {
28
- if (!t.inputs || t.inputs.length === 0)
29
- return {
30
- ...t,
31
- ...f ? { hash: s(t) } : {}
32
- };
33
- continue;
34
- }
35
- if (!t.inputs || t.inputs.length === 0 || t.inputs.length !== n.length)
36
- continue;
37
- if (n.every((a, w) => {
38
- const g = "inputs" in t && t.inputs[w];
39
- return g ? E(a, g) : !1;
40
- })) {
41
- if (o && "inputs" in o && o.inputs) {
42
- const a = B(t.inputs, o.inputs, n);
43
- if (a)
44
- throw new O({
45
- abiItem: t,
46
- type: a[0]
47
- }, {
48
- abiItem: o,
49
- type: a[1]
50
- });
51
- }
52
- o = t;
53
- }
54
- }
55
- const c = (() => {
56
- if (o)
57
- return o;
58
- const [t, ...m] = u;
59
- return { ...t, overloads: m };
60
- })();
61
- if (!c)
62
- throw new d({ name: r });
63
- return {
64
- ...c,
65
- ...f ? { hash: s(c) } : {}
66
- };
67
- }
68
- function T(e) {
69
- return A(s(e), 0, 4);
70
- }
71
- function F(e) {
72
- const r = typeof e == "string" ? e : h(e);
73
- return p(r);
74
- }
75
- function s(e) {
76
- return typeof e != "string" && "hash" in e && e.hash ? e.hash : v(S(F(e)));
77
- }
78
- class O extends y {
79
- constructor(r, i) {
80
- super("Found ambiguous types in overloaded ABI Items.", {
81
- metaMessages: [
82
- // TODO: abitype to add support for signature-formatted ABI items.
83
- `\`${r.type}\` in \`${p(h(r.abiItem))}\`, and`,
84
- `\`${i.type}\` in \`${p(h(i.abiItem))}\``,
85
- "",
86
- "These types encode differently and cannot be distinguished at runtime.",
87
- "Remove one of the ambiguous items in the ABI."
88
- ]
89
- }), Object.defineProperty(this, "name", {
90
- enumerable: !0,
91
- configurable: !0,
92
- writable: !0,
93
- value: "AbiItem.AmbiguityError"
94
- });
95
- }
96
- }
97
- class d extends y {
98
- constructor({ name: r, data: i, type: n = "item" }) {
99
- const f = r ? ` with name "${r}"` : i ? ` with data "${i}"` : "";
100
- super(`ABI ${n}${f} not found.`), Object.defineProperty(this, "name", {
101
- enumerable: !0,
102
- configurable: !0,
103
- writable: !0,
104
- value: "AbiItem.NotFoundError"
105
- });
106
- }
1
+ function n(e) {
2
+ return `[${e.slice(2)}]`;
107
3
  }
108
4
  export {
109
- O as AmbiguityError,
110
- d as NotFoundError,
111
- H as from,
112
- M as fromAbi,
113
- T as getSelector,
114
- F as getSignature,
115
- s as getSignatureHash
5
+ n as encodeLabelhash
116
6
  };
package/dist/index293.cjs CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("./index308.cjs"),d=require("./index303.cjs"),a=require("./index290.cjs"),g=require("./index309.cjs"),p=require("./index310.cjs");function P(n,e,t){const{checksumAddress:r=!1}={};if(n.length!==e.length)throw new m({expectedLength:n.length,givenLength:e.length});const s=p.prepareParameters({checksumAddress:r,parameters:n,values:e}),o=p.encode(s);return o.length===0?"0x":o}function l(n,e){if(n.length!==e.length)throw new m({expectedLength:n.length,givenLength:e.length});const t=[];for(let r=0;r<n.length;r++){const s=n[r],o=e[r];t.push(l.encode(s,o))}return a.concat(...t)}(function(n){function e(t,r,s=!1){if(t==="address"){const c=r;return x.assert(c),a.padLeft(c.toLowerCase(),s?32:0)}if(t==="string")return a.fromString(r);if(t==="bytes")return r;if(t==="bool")return a.padLeft(a.fromBoolean(r),s?32:1);const o=t.match(g.integerRegex);if(o){const[c,i,u="256"]=o,h=Number.parseInt(u)/8;return a.fromNumber(r,{size:s?32:h,signed:i==="int"})}const b=t.match(g.bytesRegex);if(b){const[c,i]=b;if(Number.parseInt(i)!==(r.length-2)/2)throw new y({expectedSize:Number.parseInt(i),value:r});return a.padRight(r,s?32:0)}const f=t.match(g.arrayRegex);if(f&&Array.isArray(r)){const[c,i]=f,u=[];for(let h=0;h<r.length;h++)u.push(e(i,r[h],!0));return u.length===0?"0x":a.concat(...u)}throw new E(t)}n.encode=e})(l||(l={}));class A extends d.BaseError{constructor({expectedLength:e,givenLength:t,type:r}){super(`Array length mismatch for type \`${r}\`. Expected: \`${e}\`. Given: \`${t}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class y extends d.BaseError{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${a.size(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class m extends d.BaseError{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${t}`].join(`
2
- `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class w extends d.BaseError{constructor(e){super(`Value \`${e}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class E extends d.BaseError{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}exports.ArrayLengthMismatchError=A;exports.BytesSizeMismatchError=y;exports.InvalidArrayError=w;exports.InvalidTypeError=E;exports.LengthMismatchError=m;exports.encode=P;exports.encodePacked=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./index36.cjs"),a=require("./index144.cjs"),w=/(?<protocol>https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,b=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,N=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,C=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function I(t){try{const e=await fetch(t,{method:"HEAD"});if(e.status===200){const r=e.headers.get("content-type");return r==null?void 0:r.startsWith("image/")}return!1}catch(e){return typeof e=="object"&&typeof e.response<"u"||!globalThis.hasOwnProperty("Image")?!1:new Promise(r=>{const n=new Image;n.onload=()=>{r(!0)},n.onerror=()=>{r(!1)},n.src=t})}}function d(t,e){return t?t.endsWith("/")?t.slice(0,-1):t:e}function A({uri:t,gatewayUrls:e}){const r=N.test(t);if(r)return{uri:t,isOnChain:!0,isEncoded:r};const n=d(e==null?void 0:e.ipfs,"https://ipfs.io"),s=d(e==null?void 0:e.arweave,"https://arweave.net"),o=t.match(w),{protocol:c,subpath:p,target:i,subtarget:h=""}=(o==null?void 0:o.groups)||{},u=c==="ipns:/"||p==="ipns/",m=c==="ipfs:/"||p==="ipfs/"||b.test(t);if(t.startsWith("http")&&!u&&!m){let v=t;return e!=null&&e.arweave&&(v=t.replace(/https:\/\/arweave.net/g,e==null?void 0:e.arweave)),{uri:v,isOnChain:!1,isEncoded:!1}}if((u||m)&&i)return{uri:`${n}/${u?"ipns":"ipfs"}/${i}${h}`,isOnChain:!1,isEncoded:!1};if(c==="ar:/"&&i)return{uri:`${s}/${i}${h||""}`,isOnChain:!1,isEncoded:!1};let f=t.replace(C,"");if(f.startsWith("<svg")&&(f=`data:image/svg+xml;base64,${btoa(f)}`),f.startsWith("data:")||f.startsWith("{"))return{uri:f,isOnChain:!0,isEncoded:!1};throw new a.EnsAvatarUriResolutionError({uri:t})}function l(t){if(typeof t!="object"||!("image"in t)&&!("image_url"in t)&&!("image_data"in t))throw new a.EnsAvatarInvalidMetadataError({data:t});return t.image||t.image_url||t.image_data}async function k({gatewayUrls:t,uri:e}){try{const r=await fetch(e).then(s=>s.json());return await E({gatewayUrls:t,uri:l(r)})}catch{throw new a.EnsAvatarUriResolutionError({uri:e})}}async function E({gatewayUrls:t,uri:e}){const{uri:r,isOnChain:n}=A({uri:e,gatewayUrls:t});if(n||await I(r))return r;throw new a.EnsAvatarUriResolutionError({uri:e})}function R(t){let e=t;e.startsWith("did:nft:")&&(e=e.replace("did:nft:","").replace(/_/g,"/"));const[r,n,s]=e.split("/"),[o,c]=r.split(":"),[p,i]=n.split(":");if(!o||o.toLowerCase()!=="eip155")throw new a.EnsAvatarInvalidNftUriError({reason:"Only EIP-155 supported"});if(!c)throw new a.EnsAvatarInvalidNftUriError({reason:"Chain ID not found"});if(!i)throw new a.EnsAvatarInvalidNftUriError({reason:"Contract address not found"});if(!s)throw new a.EnsAvatarInvalidNftUriError({reason:"Token ID not found"});if(!p)throw new a.EnsAvatarInvalidNftUriError({reason:"ERC namespace not found"});return{chainID:Number.parseInt(c),namespace:p.toLowerCase(),contractAddress:i,tokenID:s}}async function O(t,{nft:e}){if(e.namespace==="erc721")return g.readContract(t,{address:e.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(e.tokenID)]});if(e.namespace==="erc1155")return g.readContract(t,{address:e.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(e.tokenID)]});throw new a.EnsAvatarUnsupportedNamespaceError({namespace:e.namespace})}exports.getGateway=d;exports.getJsonImage=l;exports.getMetadataAvatarUri=k;exports.getNftTokenUri=O;exports.isImageUri=I;exports.parseAvatarUri=E;exports.parseNftUri=R;exports.resolveAvatarUri=A;
package/dist/index293.js CHANGED
@@ -1,137 +1,143 @@
1
- import { assert as p } from "./index308.js";
2
- import { BaseError as u } from "./index303.js";
3
- import { size as y, padLeft as f, fromString as x, fromBoolean as w, fromNumber as E, padRight as P, concat as g } from "./index290.js";
4
- import { integerRegex as A, bytesRegex as $, arrayRegex as L } from "./index309.js";
5
- import { prepareParameters as z, encode as I } from "./index310.js";
6
- function N(n, e, t) {
7
- const { checksumAddress: r = !1 } = {};
8
- if (n.length !== e.length)
9
- throw new b({
10
- expectedLength: n.length,
11
- givenLength: e.length
12
- });
13
- const a = z({
14
- checksumAddress: r,
15
- parameters: n,
16
- values: e
17
- }), s = I(a);
18
- return s.length === 0 ? "0x" : s;
19
- }
20
- function m(n, e) {
21
- if (n.length !== e.length)
22
- throw new b({
23
- expectedLength: n.length,
24
- givenLength: e.length
25
- });
26
- const t = [];
27
- for (let r = 0; r < n.length; r++) {
28
- const a = n[r], s = e[r];
29
- t.push(m.encode(a, s));
30
- }
31
- return g(...t);
32
- }
33
- (function(n) {
34
- function e(t, r, a = !1) {
35
- if (t === "address") {
36
- const i = r;
37
- return p(i), f(i.toLowerCase(), a ? 32 : 0);
38
- }
39
- if (t === "string")
40
- return x(r);
41
- if (t === "bytes")
42
- return r;
43
- if (t === "bool")
44
- return f(w(r), a ? 32 : 1);
45
- const s = t.match(A);
46
- if (s) {
47
- const [i, o, c = "256"] = s, h = Number.parseInt(c) / 8;
48
- return E(r, {
49
- size: a ? 32 : h,
50
- signed: o === "int"
51
- });
52
- }
53
- const d = t.match($);
54
- if (d) {
55
- const [i, o] = d;
56
- if (Number.parseInt(o) !== (r.length - 2) / 2)
57
- throw new M({
58
- expectedSize: Number.parseInt(o),
59
- value: r
60
- });
61
- return P(r, a ? 32 : 0);
62
- }
63
- const l = t.match(L);
64
- if (l && Array.isArray(r)) {
65
- const [i, o] = l, c = [];
66
- for (let h = 0; h < r.length; h++)
67
- c.push(e(o, r[h], !0));
68
- return c.length === 0 ? "0x" : g(...c);
1
+ import { readContract as g } from "./index36.js";
2
+ import { EnsAvatarUriResolutionError as d, EnsAvatarInvalidNftUriError as f, EnsAvatarUnsupportedNamespaceError as v, EnsAvatarInvalidMetadataError as A } from "./index144.js";
3
+ const b = /(?<protocol>https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/, l = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/, E = /^data:([a-zA-Z\-/+]*);base64,([^"].*)/, C = /^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;
4
+ async function k(t) {
5
+ try {
6
+ const e = await fetch(t, { method: "HEAD" });
7
+ if (e.status === 200) {
8
+ const n = e.headers.get("content-type");
9
+ return n == null ? void 0 : n.startsWith("image/");
69
10
  }
70
- throw new j(t);
71
- }
72
- n.encode = e;
73
- })(m || (m = {}));
74
- class R extends u {
75
- constructor({ expectedLength: e, givenLength: t, type: r }) {
76
- super(`Array length mismatch for type \`${r}\`. Expected: \`${e}\`. Given: \`${t}\`.`), Object.defineProperty(this, "name", {
77
- enumerable: !0,
78
- configurable: !0,
79
- writable: !0,
80
- value: "AbiParameters.ArrayLengthMismatchError"
11
+ return !1;
12
+ } catch (e) {
13
+ return typeof e == "object" && typeof e.response < "u" || !globalThis.hasOwnProperty("Image") ? !1 : new Promise((n) => {
14
+ const r = new Image();
15
+ r.onload = () => {
16
+ n(!0);
17
+ }, r.onerror = () => {
18
+ n(!1);
19
+ }, r.src = t;
81
20
  });
82
21
  }
83
22
  }
84
- class M extends u {
85
- constructor({ expectedSize: e, value: t }) {
86
- super(`Size of bytes "${t}" (bytes${y(t)}) does not match expected size (bytes${e}).`), Object.defineProperty(this, "name", {
87
- enumerable: !0,
88
- configurable: !0,
89
- writable: !0,
90
- value: "AbiParameters.BytesSizeMismatchError"
91
- });
23
+ function w(t, e) {
24
+ return t ? t.endsWith("/") ? t.slice(0, -1) : t : e;
25
+ }
26
+ function N({ uri: t, gatewayUrls: e }) {
27
+ const n = E.test(t);
28
+ if (n)
29
+ return { uri: t, isOnChain: !0, isEncoded: n };
30
+ const r = w(e == null ? void 0 : e.ipfs, "https://ipfs.io"), a = w(e == null ? void 0 : e.arweave, "https://arweave.net"), i = t.match(b), { protocol: o, subpath: p, target: s, subtarget: m = "" } = (i == null ? void 0 : i.groups) || {}, u = o === "ipns:/" || p === "ipns/", h = o === "ipfs:/" || p === "ipfs/" || l.test(t);
31
+ if (t.startsWith("http") && !u && !h) {
32
+ let I = t;
33
+ return e != null && e.arweave && (I = t.replace(/https:\/\/arweave.net/g, e == null ? void 0 : e.arweave)), { uri: I, isOnChain: !1, isEncoded: !1 };
92
34
  }
35
+ if ((u || h) && s)
36
+ return {
37
+ uri: `${r}/${u ? "ipns" : "ipfs"}/${s}${m}`,
38
+ isOnChain: !1,
39
+ isEncoded: !1
40
+ };
41
+ if (o === "ar:/" && s)
42
+ return {
43
+ uri: `${a}/${s}${m || ""}`,
44
+ isOnChain: !1,
45
+ isEncoded: !1
46
+ };
47
+ let c = t.replace(C, "");
48
+ if (c.startsWith("<svg") && (c = `data:image/svg+xml;base64,${btoa(c)}`), c.startsWith("data:") || c.startsWith("{"))
49
+ return {
50
+ uri: c,
51
+ isOnChain: !0,
52
+ isEncoded: !1
53
+ };
54
+ throw new d({ uri: t });
55
+ }
56
+ function R(t) {
57
+ if (typeof t != "object" || !("image" in t) && !("image_url" in t) && !("image_data" in t))
58
+ throw new A({ data: t });
59
+ return t.image || t.image_url || t.image_data;
93
60
  }
94
- class b extends u {
95
- constructor({ expectedLength: e, givenLength: t }) {
96
- super([
97
- "ABI encoding parameters/values length mismatch.",
98
- `Expected length (parameters): ${e}`,
99
- `Given length (values): ${t}`
100
- ].join(`
101
- `)), Object.defineProperty(this, "name", {
102
- enumerable: !0,
103
- configurable: !0,
104
- writable: !0,
105
- value: "AbiParameters.LengthMismatchError"
61
+ async function O({ gatewayUrls: t, uri: e }) {
62
+ try {
63
+ const n = await fetch(e).then((a) => a.json());
64
+ return await _({
65
+ gatewayUrls: t,
66
+ uri: R(n)
106
67
  });
68
+ } catch {
69
+ throw new d({ uri: e });
107
70
  }
108
71
  }
109
- class _ extends u {
110
- constructor(e) {
111
- super(`Value \`${e}\` is not a valid array.`), Object.defineProperty(this, "name", {
112
- enumerable: !0,
113
- configurable: !0,
114
- writable: !0,
115
- value: "AbiParameters.InvalidArrayError"
72
+ async function _({ gatewayUrls: t, uri: e }) {
73
+ const { uri: n, isOnChain: r } = N({ uri: e, gatewayUrls: t });
74
+ if (r || await k(n))
75
+ return n;
76
+ throw new d({ uri: e });
77
+ }
78
+ function z(t) {
79
+ let e = t;
80
+ e.startsWith("did:nft:") && (e = e.replace("did:nft:", "").replace(/_/g, "/"));
81
+ const [n, r, a] = e.split("/"), [i, o] = n.split(":"), [p, s] = r.split(":");
82
+ if (!i || i.toLowerCase() !== "eip155")
83
+ throw new f({ reason: "Only EIP-155 supported" });
84
+ if (!o)
85
+ throw new f({ reason: "Chain ID not found" });
86
+ if (!s)
87
+ throw new f({
88
+ reason: "Contract address not found"
116
89
  });
117
- }
90
+ if (!a)
91
+ throw new f({ reason: "Token ID not found" });
92
+ if (!p)
93
+ throw new f({ reason: "ERC namespace not found" });
94
+ return {
95
+ chainID: Number.parseInt(o),
96
+ namespace: p.toLowerCase(),
97
+ contractAddress: s,
98
+ tokenID: a
99
+ };
118
100
  }
119
- class j extends u {
120
- constructor(e) {
121
- super(`Type \`${e}\` is not a valid ABI Type.`), Object.defineProperty(this, "name", {
122
- enumerable: !0,
123
- configurable: !0,
124
- writable: !0,
125
- value: "AbiParameters.InvalidTypeError"
101
+ async function P(t, { nft: e }) {
102
+ if (e.namespace === "erc721")
103
+ return g(t, {
104
+ address: e.contractAddress,
105
+ abi: [
106
+ {
107
+ name: "tokenURI",
108
+ type: "function",
109
+ stateMutability: "view",
110
+ inputs: [{ name: "tokenId", type: "uint256" }],
111
+ outputs: [{ name: "", type: "string" }]
112
+ }
113
+ ],
114
+ functionName: "tokenURI",
115
+ args: [BigInt(e.tokenID)]
126
116
  });
127
- }
117
+ if (e.namespace === "erc1155")
118
+ return g(t, {
119
+ address: e.contractAddress,
120
+ abi: [
121
+ {
122
+ name: "uri",
123
+ type: "function",
124
+ stateMutability: "view",
125
+ inputs: [{ name: "_id", type: "uint256" }],
126
+ outputs: [{ name: "", type: "string" }]
127
+ }
128
+ ],
129
+ functionName: "uri",
130
+ args: [BigInt(e.tokenID)]
131
+ });
132
+ throw new v({ namespace: e.namespace });
128
133
  }
129
134
  export {
130
- R as ArrayLengthMismatchError,
131
- M as BytesSizeMismatchError,
132
- _ as InvalidArrayError,
133
- j as InvalidTypeError,
134
- b as LengthMismatchError,
135
- N as encode,
136
- m as encodePacked
135
+ w as getGateway,
136
+ R as getJsonImage,
137
+ O as getMetadataAvatarUri,
138
+ P as getNftTokenUri,
139
+ k as isImageUri,
140
+ _ as parseAvatarUri,
141
+ z as parseNftUri,
142
+ N as resolveAvatarUri
137
143
  };
package/dist/index294.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index287.cjs");/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const d=BigInt(0),g=BigInt(1);function T(e,t){if(typeof t!="boolean")throw new Error(e+" boolean expected, got "+t)}function x(e){const t=e.toString(16);return t.length&1?"0"+t:t}function w(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?d:BigInt("0x"+e)}function v(e){return w(i.bytesToHex(e))}function U(e){return i.abytes(e),w(i.bytesToHex(Uint8Array.from(e).reverse()))}function h(e,t){return i.hexToBytes(e.toString(16).padStart(t*2,"0"))}function H(e,t){return h(e,t).reverse()}function A(e,t,r){let o;if(typeof t=="string")try{o=i.hexToBytes(t)}catch(n){throw new Error(e+" must be hex string or Uint8Array, cause: "+n)}else if(i.isBytes(t))o=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=o.length;if(typeof r=="number"&&s!==r)throw new Error(e+" of length "+r+" expected, got "+s);return o}const m=e=>typeof e=="bigint"&&d<=e;function p(e,t,r){return m(e)&&m(t)&&m(r)&&t<=e&&e<r}function I(e,t,r,o){if(!p(t,r,o))throw new Error("expected valid "+e+": "+r+" <= n < "+o+", got "+t)}function j(e){let t;for(t=0;e>d;e>>=g,t+=1);return t}const k=e=>(g<<BigInt(e))-g;function N(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");const o=u=>new Uint8Array(u),s=u=>Uint8Array.of(u);let n=o(e),c=o(e),f=0;const a=()=>{n.fill(1),c.fill(0),f=0},b=(...u)=>r(c,n,...u),B=(u=o(0))=>{c=b(s(0),u),n=b(),u.length!==0&&(c=b(s(1),u),n=b())},E=()=>{if(f++>=1e3)throw new Error("drbg: tried 1000 values");let u=0;const y=[];for(;u<t;){n=b();const l=n.slice();y.push(l),u+=n.length}return i.concatBytes(...y)};return(u,y)=>{a(),B(u);let l;for(;!(l=y(E()));)B();return a(),l}}function O(e,t,r={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function o(s,n,c){const f=e[s];if(c&&f===void 0)return;const a=typeof f;if(a!==n||f===null)throw new Error(`param "${s}" is invalid: expected ${n}, got ${a}`)}Object.entries(t).forEach(([s,n])=>o(s,n,!1)),Object.entries(r).forEach(([s,n])=>o(s,n,!0))}function S(e){const t=new WeakMap;return(r,...o)=>{const s=t.get(r);if(s!==void 0)return s;const n=e(r,...o);return t.set(r,n),n}}exports.abytes=i.abytes;exports.anumber=i.anumber;exports.bytesToHex=i.bytesToHex;exports.concatBytes=i.concatBytes;exports.hexToBytes=i.hexToBytes;exports.isBytes=i.isBytes;exports.randomBytes=i.randomBytes;exports.utf8ToBytes=i.utf8ToBytes;exports._validateObject=O;exports.aInRange=I;exports.abool=T;exports.bitLen=j;exports.bitMask=k;exports.bytesToNumberBE=v;exports.bytesToNumberLE=U;exports.createHmacDrbg=N;exports.ensureBytes=A;exports.hexToNumber=w;exports.inRange=p;exports.memoized=S;exports.numberToBytesBE=h;exports.numberToBytesLE=H;exports.numberToHexUnpadded=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index303.cjs"),$=require("./index304.cjs"),o=require("./index305.cjs"),E=new TextEncoder,h=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function x(r,e={}){const{strict:t=!1}=e;if(!r)throw new c(r);if(typeof r!="string")throw new c(r);if(t&&!/^0x[0-9a-fA-F]*$/.test(r))throw new f(r);if(!r.startsWith("0x"))throw new f(r)}function y(...r){return`0x${r.reduce((e,t)=>e+t.replace("0x",""),"")}`}function O(r,e={}){const t=`0x${Number(r)}`;return typeof e.size=="number"?(o.assertSize(t,e.size),l(t,e.size)):t}function b(r,e={}){let t="";for(let i=0;i<r.length;i++)t+=h[r[i]];const n=`0x${t}`;return typeof e.size=="number"?(o.assertSize(n,e.size),m(n,e.size)):n}function S(r,e={}){const{signed:t,size:n}=e,i=BigInt(r);let s;n?t?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof r=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));const d=typeof s=="bigint"&&t?-s-1n:0;if(s&&i>s||i<d){const u=typeof r=="bigint"?"n":"";throw new p({max:s?`${s}${u}`:void 0,min:`${d}${u}`,signed:t,size:n,value:`${r}${u}`})}const g=`0x${(t&&i<0?(1n<<BigInt(n*8))+BigInt(i):i).toString(16)}`;return n?l(g,n):g}function z(r,e={}){return b(E.encode(r),e)}function l(r,e){return o.pad(r,{dir:"left",size:e})}function m(r,e){return o.pad(r,{dir:"right",size:e})}function w(r,e,t,n={}){const{strict:i}=n;o.assertStartOffset(r,e);const s=`0x${r.replace("0x","").slice((e??0)*2,(t??r.length)*2)}`;return i&&o.assertEndOffset(s,e,t),s}function B(r){return Math.ceil((r.length-2)/2)}function I(r,e={}){const{strict:t=!1}=e;try{return x(r,{strict:t}),!0}catch{return!1}}class p extends a.BaseError{constructor({max:e,min:t,signed:n,size:i,value:s}){super(`Number \`${s}\` is not in safe${i?` ${i*8}-bit`:""}${n?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class c extends a.BaseError{constructor(e){super(`Value \`${typeof e=="object"?$.stringify(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class f extends a.BaseError{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class H extends a.BaseError{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class v extends a.BaseError{constructor({offset:e,position:t,size:n}){super(`Slice ${t==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class P extends a.BaseError{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}exports.IntegerOutOfRangeError=p;exports.InvalidHexTypeError=c;exports.InvalidHexValueError=f;exports.SizeExceedsPaddingSizeError=P;exports.SizeOverflowError=H;exports.SliceOffsetOutOfBoundsError=v;exports.assert=x;exports.concat=y;exports.fromBoolean=O;exports.fromBytes=b;exports.fromNumber=S;exports.fromString=z;exports.padLeft=l;exports.padRight=m;exports.size=B;exports.slice=w;exports.validate=I;