@gardenfi/utils 2.0.4 → 2.0.5

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 (237) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +33 -24
  3. package/dist/index10.cjs +1 -1
  4. package/dist/index10.js +24 -32
  5. package/dist/index100.cjs +1 -0
  6. package/dist/index100.js +9 -0
  7. package/dist/index101.cjs +2 -0
  8. package/dist/index101.js +5 -0
  9. package/dist/index102.cjs +1 -0
  10. package/dist/index102.js +115 -0
  11. package/dist/index103.cjs +1 -0
  12. package/dist/index103.js +81 -0
  13. package/dist/index104.cjs +1 -0
  14. package/dist/index104.js +4 -0
  15. package/dist/index105.cjs +1 -0
  16. package/dist/index105.js +20 -0
  17. package/dist/index106.cjs +1 -0
  18. package/dist/index106.js +21 -0
  19. package/dist/index107.cjs +1 -0
  20. package/dist/index107.js +19 -0
  21. package/dist/index108.cjs +1 -0
  22. package/dist/index108.js +226 -0
  23. package/dist/index109.cjs +1 -0
  24. package/dist/index109.js +37 -0
  25. package/dist/index11.cjs +1 -1
  26. package/dist/index11.js +136 -14
  27. package/dist/index110.cjs +1 -0
  28. package/dist/index110.js +21 -0
  29. package/dist/index111.cjs +1 -0
  30. package/dist/index111.js +72 -0
  31. package/dist/index112.cjs +1 -0
  32. package/dist/index112.js +70 -0
  33. package/dist/index113.cjs +1 -0
  34. package/dist/index113.js +4 -0
  35. package/dist/index114.cjs +1 -0
  36. package/dist/index114.js +43 -0
  37. package/dist/index115.cjs +1 -0
  38. package/dist/index115.js +646 -0
  39. package/dist/index116.cjs +1 -0
  40. package/dist/index116.js +234 -0
  41. package/dist/index117.cjs +1 -0
  42. package/dist/index117.js +175 -0
  43. package/dist/index12.cjs +1 -1
  44. package/dist/index12.js +9 -182
  45. package/dist/index13.cjs +1 -1
  46. package/dist/index13.js +2 -94
  47. package/dist/index14.cjs +1 -16
  48. package/dist/index14.js +32 -112
  49. package/dist/index15.cjs +1 -1
  50. package/dist/index15.js +18 -31
  51. package/dist/index16.cjs +1 -1
  52. package/dist/index16.js +188 -31
  53. package/dist/index17.cjs +1 -1
  54. package/dist/index17.js +93 -17
  55. package/dist/index18.cjs +1 -1
  56. package/dist/index18.js +35 -7
  57. package/dist/index19.cjs +1 -1
  58. package/dist/index19.js +31 -20
  59. package/dist/index20.cjs +16 -1
  60. package/dist/index20.js +113 -21
  61. package/dist/index21.cjs +1 -1
  62. package/dist/index21.js +31 -9
  63. package/dist/index22.cjs +1 -1
  64. package/dist/index22.js +17 -31
  65. package/dist/index23.cjs +1 -1
  66. package/dist/index23.js +7 -26
  67. package/dist/index24.cjs +1 -1
  68. package/dist/index24.js +41 -19
  69. package/dist/index25.cjs +1 -1
  70. package/dist/index25.js +19 -49
  71. package/dist/index26.cjs +1 -1
  72. package/dist/index26.js +8 -12
  73. package/dist/index27.cjs +1 -1
  74. package/dist/index27.js +30 -23
  75. package/dist/index28.cjs +1 -1
  76. package/dist/index28.js +25 -74
  77. package/dist/index29.cjs +2 -1
  78. package/dist/index29.js +62 -20
  79. package/dist/index3.cjs +1 -1
  80. package/dist/index3.js +30 -7
  81. package/dist/index30.cjs +1 -1
  82. package/dist/index30.js +51 -7
  83. package/dist/index31.cjs +1 -1
  84. package/dist/index31.js +12 -32
  85. package/dist/index32.cjs +1 -1
  86. package/dist/index32.js +24 -15
  87. package/dist/index33.cjs +1 -1
  88. package/dist/index33.js +76 -2
  89. package/dist/index34.cjs +1 -1
  90. package/dist/index34.js +23 -8
  91. package/dist/index35.cjs +1 -1
  92. package/dist/index35.js +7 -20
  93. package/dist/index36.cjs +1 -1
  94. package/dist/index36.js +32 -12
  95. package/dist/index37.cjs +1 -1
  96. package/dist/index37.js +15 -34
  97. package/dist/index38.cjs +1 -2
  98. package/dist/index38.js +2 -60
  99. package/dist/index39.cjs +1 -1
  100. package/dist/index39.js +9 -2
  101. package/dist/index4.cjs +1 -1
  102. package/dist/index4.js +2 -2
  103. package/dist/index40.cjs +1 -1
  104. package/dist/index40.js +20 -4
  105. package/dist/index41.cjs +1 -1
  106. package/dist/index41.js +12 -11
  107. package/dist/index42.cjs +1 -1
  108. package/dist/index42.js +34 -3
  109. package/dist/index43.cjs +2 -1
  110. package/dist/index43.js +58 -20
  111. package/dist/index44.cjs +1 -1
  112. package/dist/index44.js +2 -13
  113. package/dist/index45.cjs +1 -1
  114. package/dist/index45.js +5 -54
  115. package/dist/index46.cjs +1 -1
  116. package/dist/index46.js +6 -6
  117. package/dist/index47.cjs +1 -1
  118. package/dist/index47.js +4 -21
  119. package/dist/index48.cjs +1 -1
  120. package/dist/index48.js +11 -11
  121. package/dist/index49.cjs +5 -1
  122. package/dist/index49.js +56 -3
  123. package/dist/index50.cjs +1 -1
  124. package/dist/index50.js +3 -11
  125. package/dist/index51.cjs +2 -1
  126. package/dist/index51.js +33 -18
  127. package/dist/index52.cjs +1 -1
  128. package/dist/index52.js +5 -6
  129. package/dist/index53.cjs +1 -1
  130. package/dist/index53.js +21 -8
  131. package/dist/index54.cjs +1 -1
  132. package/dist/index54.js +11 -103
  133. package/dist/index55.cjs +1 -1
  134. package/dist/index55.js +51 -24
  135. package/dist/index56.cjs +1 -1
  136. package/dist/index56.js +8 -18
  137. package/dist/index57.cjs +1 -1
  138. package/dist/index57.js +20 -37
  139. package/dist/index58.cjs +1 -0
  140. package/dist/index58.js +14 -0
  141. package/dist/index59.cjs +1 -0
  142. package/dist/index59.js +11 -0
  143. package/dist/index60.cjs +1 -0
  144. package/dist/index60.js +13 -0
  145. package/dist/index61.cjs +1 -0
  146. package/dist/index61.js +14 -0
  147. package/dist/index62.cjs +1 -0
  148. package/dist/index62.js +9 -0
  149. package/dist/index63.cjs +1 -0
  150. package/dist/index63.js +16 -0
  151. package/dist/index64.cjs +1 -0
  152. package/dist/index64.js +35 -0
  153. package/dist/index65.cjs +1 -0
  154. package/dist/index65.js +17 -0
  155. package/dist/index66.cjs +1 -0
  156. package/dist/index66.js +67 -0
  157. package/dist/index67.cjs +1 -0
  158. package/dist/index67.js +30 -0
  159. package/dist/index68.cjs +1 -0
  160. package/dist/index68.js +5 -0
  161. package/dist/index69.cjs +1 -0
  162. package/dist/index69.js +8 -0
  163. package/dist/index7.cjs +1 -1
  164. package/dist/index7.js +2 -109
  165. package/dist/index70.cjs +1 -0
  166. package/dist/index70.js +11 -0
  167. package/dist/index71.cjs +1 -0
  168. package/dist/index71.js +6 -0
  169. package/dist/index72.cjs +1 -0
  170. package/dist/index72.js +16 -0
  171. package/dist/index73.cjs +1 -0
  172. package/dist/index73.js +44 -0
  173. package/dist/index74.cjs +1 -0
  174. package/dist/index74.js +106 -0
  175. package/dist/index75.cjs +1 -0
  176. package/dist/index75.js +194 -0
  177. package/dist/index76.cjs +1 -0
  178. package/dist/index76.js +21 -0
  179. package/dist/index77.cjs +1 -0
  180. package/dist/index77.js +14 -0
  181. package/dist/index78.cjs +1 -0
  182. package/dist/index78.js +22 -0
  183. package/dist/index79.cjs +1 -0
  184. package/dist/index79.js +28 -0
  185. package/dist/index8.cjs +1 -1
  186. package/dist/index8.js +95 -10
  187. package/dist/index80.cjs +1 -0
  188. package/dist/index80.js +9 -0
  189. package/dist/index81.cjs +1 -0
  190. package/dist/index81.js +16 -0
  191. package/dist/index82.cjs +1 -0
  192. package/dist/index82.js +18 -0
  193. package/dist/index83.cjs +1 -0
  194. package/dist/index83.js +8 -0
  195. package/dist/index84.cjs +1 -0
  196. package/dist/index84.js +16 -0
  197. package/dist/index85.cjs +1 -0
  198. package/dist/index85.js +13 -0
  199. package/dist/index86.cjs +1 -0
  200. package/dist/index86.js +19 -0
  201. package/dist/index87.cjs +1 -0
  202. package/dist/index87.js +174 -0
  203. package/dist/index88.cjs +1 -0
  204. package/dist/index88.js +11 -0
  205. package/dist/index89.cjs +1 -0
  206. package/dist/index89.js +15 -0
  207. package/dist/index9.cjs +1 -1
  208. package/dist/index9.js +44 -2
  209. package/dist/index90.cjs +1 -0
  210. package/dist/index90.js +107 -0
  211. package/dist/index91.cjs +1 -0
  212. package/dist/index91.js +41 -0
  213. package/dist/index92.cjs +1 -0
  214. package/dist/index92.js +4 -0
  215. package/dist/index93.cjs +1 -0
  216. package/dist/index93.js +7 -0
  217. package/dist/index94.cjs +1 -0
  218. package/dist/index94.js +13 -0
  219. package/dist/index95.cjs +1 -0
  220. package/dist/index95.js +45 -0
  221. package/dist/index96.cjs +1 -0
  222. package/dist/index96.js +23 -0
  223. package/dist/index97.cjs +1 -0
  224. package/dist/index97.js +7 -0
  225. package/dist/index98.cjs +1 -0
  226. package/dist/index98.js +40 -0
  227. package/dist/index99.cjs +1 -0
  228. package/dist/index99.js +130 -0
  229. package/dist/src/lib/auth/apikey/apikey.d.ts +12 -0
  230. package/dist/src/lib/auth/auth.types.d.ts +21 -8
  231. package/dist/src/lib/auth/index.d.ts +5 -1
  232. package/dist/src/lib/auth/passkey/passkey.d.ts +10 -0
  233. package/dist/src/lib/auth/passkey/passkey.types.d.ts +17 -0
  234. package/dist/src/lib/auth/passkey/passkeyLogin.d.ts +37 -0
  235. package/dist/src/lib/auth/{siwe.d.ts → siwe/siwe.d.ts} +4 -15
  236. package/dist/src/lib/utils.d.ts +3 -0
  237. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index101.cjs"),o=require("./index76.cjs"),s=require("./index47.cjs"),r=require("./index24.cjs");function c(e){const t=typeof e=="string"?r.stringToHex(e):typeof e.raw=="string"?e.raw:r.bytesToHex(e.raw),i=r.stringToHex(`${n.presignMessagePrefix}${s.size(t)}`);return o.concat([i,t])}exports.toPrefixedMessage=c;
@@ -0,0 +1,11 @@
1
+ import { presignMessagePrefix as e } from "./index101.js";
2
+ import { concat as n } from "./index76.js";
3
+ import { size as f } from "./index47.js";
4
+ import { stringToHex as o, bytesToHex as p } from "./index24.js";
5
+ function u(r) {
6
+ const t = typeof r == "string" ? o(r) : typeof r.raw == "string" ? r.raw : p(r.raw), i = o(`${e}${f(t)}`);
7
+ return n([i, t]);
8
+ }
9
+ export {
10
+ u as toPrefixedMessage
11
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function r(t,{strict:e=!0}={}){return!t||typeof t!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(t):t.startsWith("0x")}exports.isHex=r;
@@ -0,0 +1,6 @@
1
+ function e(t, { strict: r = !0 } = {}) {
2
+ return !t || typeof t != "string" ? !1 : r ? /^0x[0-9a-fA-F]*$/.test(t) : t.startsWith("0x");
3
+ }
4
+ export {
5
+ e as isHex
6
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./index73.cjs"),n=require("./index34.cjs"),a=require("./index55.cjs");function g({r:i,s:o,to:u="hex",v:e,yParity:r}){const s=(()=>{if(r===0||r===1)return r;if(e&&(e===27n||e===28n||e>=35n))return e%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),t=`0x${new c.secp256k1.Signature(n.hexToBigInt(i),n.hexToBigInt(o)).toCompactHex()}${s===0?"1b":"1c"}`;return u==="hex"?t:a.hexToBytes(t)}exports.serializeSignature=g;
@@ -0,0 +1,16 @@
1
+ import { secp256k1 as f } from "./index73.js";
2
+ import { hexToBigInt as t } from "./index34.js";
3
+ import { hexToBytes as m } from "./index55.js";
4
+ function s({ r: o, s: i, to: u = "hex", v: r, yParity: e }) {
5
+ const a = (() => {
6
+ if (e === 0 || e === 1)
7
+ return e;
8
+ if (r && (r === 27n || r === 28n || r >= 35n))
9
+ return r % 2n === 0n ? 1 : 0;
10
+ throw new Error("Invalid `v` or `yParity` value");
11
+ })(), n = `0x${new f.Signature(t(o), t(i)).toCompactHex()}${a === 0 ? "1b" : "1c"}`;
12
+ return u === "hex" ? n : m(n);
13
+ }
14
+ export {
15
+ s as serializeSignature
16
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./index102.cjs"),C=require("./index107.cjs"),n=require("./index108.cjs");/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const k=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),x=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),G=BigInt(1),w=BigInt(2),h=(t,f)=>(t+f/w)/f;function M(t){const f=k,e=BigInt(3),r=BigInt(6),p=BigInt(11),a=BigInt(22),s=BigInt(23),i=BigInt(44),d=BigInt(88),o=t*t*t%f,c=o*o*t%f,g=n.pow2(c,e,f)*c%f,b=n.pow2(g,e,f)*c%f,l=n.pow2(b,w,f)*o%f,B=n.pow2(l,p,f)*l%f,I=n.pow2(B,a,f)*B%f,_=n.pow2(I,i,f)*I%f,P=n.pow2(_,d,f)*_%f,S=n.pow2(P,i,f)*I%f,v=n.pow2(S,e,f)*c%f,E=n.pow2(v,s,f)*B%f,F=n.pow2(E,r,f)*o%f,q=n.pow2(F,w,f);if(!u.eql(u.sqr(q),t))throw new Error("Cannot find square root");return q}const u=n.Field(k,void 0,void 0,{sqrt:M}),m=C.createCurve({a:BigInt(0),b:BigInt(7),Fp:u,n:x,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const f=x,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-G*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),p=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),a=e,s=BigInt("0x100000000000000000000000000000000"),i=h(a*t,f),d=h(-r*t,f);let o=n.mod(t-i*e-d*p,f),c=n.mod(-i*r-d*a,f);const g=o>s,b=c>s;if(g&&(o=f-o),b&&(c=f-c),o>s||c>s)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:g,k1:o,k2neg:b,k2:c}}}},j.sha256);BigInt(0);m.ProjectivePoint;exports.secp256k1=m;
@@ -0,0 +1,44 @@
1
+ import { sha256 as C } from "./index102.js";
2
+ import { createCurve as G } from "./index107.js";
3
+ import { Field as N, mod as k, pow2 as t } from "./index108.js";
4
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
+ const q = BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"), w = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"), j = BigInt(1), _ = BigInt(2), h = (n, f) => (n + f / _) / f;
6
+ function M(n) {
7
+ const f = q, e = BigInt(3), r = BigInt(6), I = BigInt(11), a = BigInt(22), s = BigInt(23), i = BigInt(44), g = BigInt(88), o = n * n * n % f, c = o * o * n % f, d = t(c, e, f) * c % f, B = t(d, e, f) * c % f, m = t(B, _, f) * o % f, b = t(m, I, f) * m % f, p = t(b, a, f) * b % f, x = t(p, i, f) * p % f, P = t(x, g, f) * x % f, v = t(P, i, f) * p % f, E = t(v, e, f) * c % f, F = t(E, s, f) * b % f, S = t(F, r, f) * o % f, u = t(S, _, f);
8
+ if (!l.eql(l.sqr(u), n))
9
+ throw new Error("Cannot find square root");
10
+ return u;
11
+ }
12
+ const l = N(q, void 0, void 0, { sqrt: M }), O = G({
13
+ a: BigInt(0),
14
+ // equation params: a, b
15
+ b: BigInt(7),
16
+ Fp: l,
17
+ // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n
18
+ n: w,
19
+ // Curve order, total count of valid points in the field
20
+ // Base point (x, y) aka generator point
21
+ Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),
22
+ Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),
23
+ h: BigInt(1),
24
+ // Cofactor
25
+ lowS: !0,
26
+ // Allow only low-S signatures by default in sign() and verify()
27
+ endo: {
28
+ // Endomorphism, see above
29
+ beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),
30
+ splitScalar: (n) => {
31
+ const f = w, e = BigInt("0x3086d221a7d46bcde86c90e49284eb15"), r = -j * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"), I = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"), a = e, s = BigInt("0x100000000000000000000000000000000"), i = h(a * n, f), g = h(-r * n, f);
32
+ let o = k(n - i * e - g * I, f), c = k(-i * r - g * a, f);
33
+ const d = o > s, B = c > s;
34
+ if (d && (o = f - o), B && (c = f - c), o > s || c > s)
35
+ throw new Error("splitScalar: Endomorphism failed, k=" + n);
36
+ return { k1neg: d, k1: o, k2neg: B, k2: c };
37
+ }
38
+ }
39
+ }, C);
40
+ BigInt(0);
41
+ O.ProjectivePoint;
42
+ export {
43
+ O as secp256k1
44
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./index75.cjs"),D=require("./index76.cjs"),f=require("./index24.cjs"),s=require("./index56.cjs"),p=require("./index66.cjs");function b(c){const{domain:t={},message:e,primaryType:n}=c,o={EIP712Domain:p.getTypesForEIP712Domain({domain:t}),...c.types};p.validateTypedData({domain:t,message:e,primaryType:n,types:o});const a=["0x1901"];return t&&a.push(y({domain:t,types:o})),n!=="EIP712Domain"&&a.push(d({data:e,primaryType:n,types:o})),s.keccak256(D.concat(a))}function y({domain:c,types:t}){return d({data:c,primaryType:"EIP712Domain",types:t})}function d({data:c,primaryType:t,types:e}){const n=h({data:c,primaryType:t,types:e});return s.keccak256(n)}function h({data:c,primaryType:t,types:e}){const n=[{type:"bytes32"}],o=[l({primaryType:t,types:e})];for(const a of e[t]){const[r,i]=T({types:e,name:a.name,type:a.type,value:c[a.name]});n.push(r),o.push(i)}return u.encodeAbiParameters(n,o)}function l({primaryType:c,types:t}){const e=f.toHex(m({primaryType:c,types:t}));return s.keccak256(e)}function m({primaryType:c,types:t}){let e="";const n=k({primaryType:c,types:t});n.delete(c);const o=[c,...Array.from(n).sort()];for(const a of o)e+=`${a}(${t[a].map(({name:r,type:i})=>`${i} ${r}`).join(",")})`;return e}function k({primaryType:c,types:t},e=new Set){const n=c.match(/^\w*/u),o=n==null?void 0:n[0];if(e.has(o)||t[o]===void 0)return e;e.add(o);for(const a of t[o])k({primaryType:a.type,types:t},e);return e}function T({types:c,name:t,type:e,value:n}){if(c[e]!==void 0)return[{type:"bytes32"},s.keccak256(h({data:n,primaryType:e,types:c}))];if(e==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},s.keccak256(n)];if(e==="string")return[{type:"bytes32"},s.keccak256(f.toHex(n))];if(e.lastIndexOf("]")===e.length-1){const o=e.slice(0,e.lastIndexOf("[")),a=n.map(r=>T({name:t,type:o,types:c,value:r}));return[{type:"bytes32"},s.keccak256(u.encodeAbiParameters(a.map(([r])=>r),a.map(([,r])=>r)))]}return[{type:e},n]}exports.encodeType=m;exports.hashDomain=y;exports.hashStruct=d;exports.hashTypedData=b;
@@ -0,0 +1,106 @@
1
+ import { encodeAbiParameters as p } from "./index75.js";
2
+ import { concat as h } from "./index76.js";
3
+ import { toHex as d } from "./index24.js";
4
+ import { keccak256 as c } from "./index56.js";
5
+ import { getTypesForEIP712Domain as T, validateTypedData as D } from "./index66.js";
6
+ function k(o) {
7
+ const { domain: t = {}, message: e, primaryType: n } = o, r = {
8
+ EIP712Domain: T({ domain: t }),
9
+ ...o.types
10
+ };
11
+ D({
12
+ domain: t,
13
+ message: e,
14
+ primaryType: n,
15
+ types: r
16
+ });
17
+ const a = ["0x1901"];
18
+ return t && a.push(b({
19
+ domain: t,
20
+ types: r
21
+ })), n !== "EIP712Domain" && a.push(f({
22
+ data: e,
23
+ primaryType: n,
24
+ types: r
25
+ })), c(h(a));
26
+ }
27
+ function b({ domain: o, types: t }) {
28
+ return f({
29
+ data: o,
30
+ primaryType: "EIP712Domain",
31
+ types: t
32
+ });
33
+ }
34
+ function f({ data: o, primaryType: t, types: e }) {
35
+ const n = m({
36
+ data: o,
37
+ primaryType: t,
38
+ types: e
39
+ });
40
+ return c(n);
41
+ }
42
+ function m({ data: o, primaryType: t, types: e }) {
43
+ const n = [{ type: "bytes32" }], r = [l({ primaryType: t, types: e })];
44
+ for (const a of e[t]) {
45
+ const [i, s] = y({
46
+ types: e,
47
+ name: a.name,
48
+ type: a.type,
49
+ value: o[a.name]
50
+ });
51
+ n.push(i), r.push(s);
52
+ }
53
+ return p(n, r);
54
+ }
55
+ function l({ primaryType: o, types: t }) {
56
+ const e = d(x({ primaryType: o, types: t }));
57
+ return c(e);
58
+ }
59
+ function x({ primaryType: o, types: t }) {
60
+ let e = "";
61
+ const n = u({ primaryType: o, types: t });
62
+ n.delete(o);
63
+ const r = [o, ...Array.from(n).sort()];
64
+ for (const a of r)
65
+ e += `${a}(${t[a].map(({ name: i, type: s }) => `${s} ${i}`).join(",")})`;
66
+ return e;
67
+ }
68
+ function u({ primaryType: o, types: t }, e = /* @__PURE__ */ new Set()) {
69
+ const n = o.match(/^\w*/u), r = n == null ? void 0 : n[0];
70
+ if (e.has(r) || t[r] === void 0)
71
+ return e;
72
+ e.add(r);
73
+ for (const a of t[r])
74
+ u({ primaryType: a.type, types: t }, e);
75
+ return e;
76
+ }
77
+ function y({ types: o, name: t, type: e, value: n }) {
78
+ if (o[e] !== void 0)
79
+ return [
80
+ { type: "bytes32" },
81
+ c(m({ data: n, primaryType: e, types: o }))
82
+ ];
83
+ if (e === "bytes")
84
+ return n = `0x${(n.length % 2 ? "0" : "") + n.slice(2)}`, [{ type: "bytes32" }, c(n)];
85
+ if (e === "string")
86
+ return [{ type: "bytes32" }, c(d(n))];
87
+ if (e.lastIndexOf("]") === e.length - 1) {
88
+ const r = e.slice(0, e.lastIndexOf("[")), a = n.map((i) => y({
89
+ name: t,
90
+ type: r,
91
+ types: o,
92
+ value: i
93
+ }));
94
+ return [
95
+ { type: "bytes32" },
96
+ c(p(a.map(([i]) => i), a.map(([, i]) => i)))
97
+ ];
98
+ }
99
+ return [{ type: e }, n];
100
+ }
101
+ export {
102
+ x as encodeType,
103
+ b as hashDomain,
104
+ f as hashStruct,
105
+ k as hashTypedData
106
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./index49.cjs"),g=require("./index54.cjs"),l=require("./index43.cjs"),b=require("./index41.cjs"),x=require("./index58.cjs"),u=require("./index76.cjs"),d=require("./index42.cjs"),y=require("./index47.cjs"),A=require("./index91.cjs"),a=require("./index24.cjs"),z=require("./index68.cjs");function w(e,n){if(e.length!==n.length)throw new f.AbiEncodingLengthMismatchError({expectedLength:e.length,givenLength:n.length});const o=H({params:e,values:n}),t=p(o);return t.length===0?"0x":t}function H({params:e,values:n}){const o=[];for(let t=0;t<e.length;t++)o.push(h({param:e[t],value:n[t]}));return o}function h({param:e,value:n}){const o=m(e.type);if(o){const[t,r]=o;return P(n,{length:t,param:{...e,type:r}})}if(e.type==="tuple")return L(n,{param:e});if(e.type==="address")return E(n);if(e.type==="bool")return q(n);if(e.type.startsWith("uint")||e.type.startsWith("int")){const t=e.type.startsWith("int"),[,,r="256"]=z.integerRegex.exec(e.type)??[];return T(n,{signed:t,size:Number(r)})}if(e.type.startsWith("bytes"))return S(n,{param:e});if(e.type==="string")return I(n);throw new f.InvalidAbiEncodingTypeError(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function p(e){let n=0;for(let i=0;i<e.length;i++){const{dynamic:c,encoded:s}=e[i];c?n+=32:n+=y.size(s)}const o=[],t=[];let r=0;for(let i=0;i<e.length;i++){const{dynamic:c,encoded:s}=e[i];c?(o.push(a.numberToHex(n+r,{size:32})),t.push(s),r+=y.size(s)):o.push(s)}return u.concat([...o,...t])}function E(e){if(!x.isAddress(e))throw new g.InvalidAddressError({address:e});return{dynamic:!1,encoded:d.padHex(e.toLowerCase())}}function P(e,{length:n,param:o}){const t=n===null;if(!Array.isArray(e))throw new f.InvalidArrayError(e);if(!t&&e.length!==n)throw new f.AbiEncodingArrayLengthMismatchError({expectedLength:n,givenLength:e.length,type:`${o.type}[${n}]`});let r=!1;const i=[];for(let c=0;c<e.length;c++){const s=h({param:o,value:e[c]});s.dynamic&&(r=!0),i.push(s)}if(t||r){const c=p(i);if(t){const s=a.numberToHex(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?u.concat([s,c]):s}}if(r)return{dynamic:!0,encoded:c}}return{dynamic:!1,encoded:u.concat(i.map(({encoded:c})=>c))}}function S(e,{param:n}){const[,o]=n.type.split("bytes"),t=y.size(e);if(!o){let r=e;return t%32!==0&&(r=d.padHex(r,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:u.concat([d.padHex(a.numberToHex(t,{size:32})),r])}}if(t!==Number.parseInt(o))throw new f.AbiEncodingBytesSizeMismatchError({expectedSize:Number.parseInt(o),value:e});return{dynamic:!1,encoded:d.padHex(e,{dir:"right"})}}function q(e){if(typeof e!="boolean")throw new l.BaseError(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:d.padHex(a.boolToHex(e))}}function T(e,{signed:n,size:o=256}){if(typeof o=="number"){const t=2n**(BigInt(o)-(n?1n:0n))-1n,r=n?-t-1n:0n;if(e>t||e<r)throw new b.IntegerOutOfRangeError({max:t.toString(),min:r.toString(),signed:n,size:o/8,value:e.toString()})}return{dynamic:!1,encoded:a.numberToHex(e,{size:32,signed:n})}}function I(e){const n=a.stringToHex(e),o=Math.ceil(y.size(n)/32),t=[];for(let r=0;r<o;r++)t.push(d.padHex(A.slice(n,r*32,(r+1)*32),{dir:"right"}));return{dynamic:!0,encoded:u.concat([d.padHex(a.numberToHex(y.size(n),{size:32})),...t])}}function L(e,{param:n}){let o=!1;const t=[];for(let r=0;r<n.components.length;r++){const i=n.components[r],c=Array.isArray(e)?r:i.name,s=h({param:i,value:e[c]});t.push(s),s.dynamic&&(o=!0)}return{dynamic:o,encoded:o?p(t):u.concat(t.map(({encoded:r})=>r))}}function m(e){const n=e.match(/^(.*)\[(\d+)?\]$/);return n?[n[2]?Number(n[2]):null,n[1]]:void 0}exports.encodeAbiParameters=w;exports.getArrayComponents=m;
@@ -0,0 +1,194 @@
1
+ import { AbiEncodingLengthMismatchError as y, InvalidAbiEncodingTypeError as u, InvalidArrayError as g, AbiEncodingArrayLengthMismatchError as l, AbiEncodingBytesSizeMismatchError as b } from "./index49.js";
2
+ import { InvalidAddressError as w } from "./index54.js";
3
+ import { BaseError as A } from "./index43.js";
4
+ import { IntegerOutOfRangeError as x } from "./index41.js";
5
+ import { isAddress as z } from "./index58.js";
6
+ import { concat as f } from "./index76.js";
7
+ import { padHex as d } from "./index42.js";
8
+ import { size as a } from "./index47.js";
9
+ import { slice as E } from "./index91.js";
10
+ import { numberToHex as m, boolToHex as P, stringToHex as S } from "./index24.js";
11
+ import { integerRegex as I } from "./index68.js";
12
+ function K(e, t) {
13
+ if (e.length !== t.length)
14
+ throw new y({
15
+ expectedLength: e.length,
16
+ givenLength: t.length
17
+ });
18
+ const o = L({
19
+ params: e,
20
+ values: t
21
+ }), n = h(o);
22
+ return n.length === 0 ? "0x" : n;
23
+ }
24
+ function L({ params: e, values: t }) {
25
+ const o = [];
26
+ for (let n = 0; n < e.length; n++)
27
+ o.push(p({ param: e[n], value: t[n] }));
28
+ return o;
29
+ }
30
+ function p({ param: e, value: t }) {
31
+ const o = W(e.type);
32
+ if (o) {
33
+ const [n, r] = o;
34
+ return M(t, { length: n, param: { ...e, type: r } });
35
+ }
36
+ if (e.type === "tuple")
37
+ return H(t, {
38
+ param: e
39
+ });
40
+ if (e.type === "address")
41
+ return B(t);
42
+ if (e.type === "bool")
43
+ return T(t);
44
+ if (e.type.startsWith("uint") || e.type.startsWith("int")) {
45
+ const n = e.type.startsWith("int"), [, , r = "256"] = I.exec(e.type) ?? [];
46
+ return $(t, {
47
+ signed: n,
48
+ size: Number(r)
49
+ });
50
+ }
51
+ if (e.type.startsWith("bytes"))
52
+ return N(t, { param: e });
53
+ if (e.type === "string")
54
+ return C(t);
55
+ throw new u(e.type, {
56
+ docsPath: "/docs/contract/encodeAbiParameters"
57
+ });
58
+ }
59
+ function h(e) {
60
+ let t = 0;
61
+ for (let i = 0; i < e.length; i++) {
62
+ const { dynamic: c, encoded: s } = e[i];
63
+ c ? t += 32 : t += a(s);
64
+ }
65
+ const o = [], n = [];
66
+ let r = 0;
67
+ for (let i = 0; i < e.length; i++) {
68
+ const { dynamic: c, encoded: s } = e[i];
69
+ c ? (o.push(m(t + r, { size: 32 })), n.push(s), r += a(s)) : o.push(s);
70
+ }
71
+ return f([...o, ...n]);
72
+ }
73
+ function B(e) {
74
+ if (!z(e))
75
+ throw new w({ address: e });
76
+ return { dynamic: !1, encoded: d(e.toLowerCase()) };
77
+ }
78
+ function M(e, { length: t, param: o }) {
79
+ const n = t === null;
80
+ if (!Array.isArray(e))
81
+ throw new g(e);
82
+ if (!n && e.length !== t)
83
+ throw new l({
84
+ expectedLength: t,
85
+ givenLength: e.length,
86
+ type: `${o.type}[${t}]`
87
+ });
88
+ let r = !1;
89
+ const i = [];
90
+ for (let c = 0; c < e.length; c++) {
91
+ const s = p({ param: o, value: e[c] });
92
+ s.dynamic && (r = !0), i.push(s);
93
+ }
94
+ if (n || r) {
95
+ const c = h(i);
96
+ if (n) {
97
+ const s = m(i.length, { size: 32 });
98
+ return {
99
+ dynamic: !0,
100
+ encoded: i.length > 0 ? f([s, c]) : s
101
+ };
102
+ }
103
+ if (r)
104
+ return { dynamic: !0, encoded: c };
105
+ }
106
+ return {
107
+ dynamic: !1,
108
+ encoded: f(i.map(({ encoded: c }) => c))
109
+ };
110
+ }
111
+ function N(e, { param: t }) {
112
+ const [, o] = t.type.split("bytes"), n = a(e);
113
+ if (!o) {
114
+ let r = e;
115
+ return n % 32 !== 0 && (r = d(r, {
116
+ dir: "right",
117
+ size: Math.ceil((e.length - 2) / 2 / 32) * 32
118
+ })), {
119
+ dynamic: !0,
120
+ encoded: f([d(m(n, { size: 32 })), r])
121
+ };
122
+ }
123
+ if (n !== Number.parseInt(o))
124
+ throw new b({
125
+ expectedSize: Number.parseInt(o),
126
+ value: e
127
+ });
128
+ return { dynamic: !1, encoded: d(e, { dir: "right" }) };
129
+ }
130
+ function T(e) {
131
+ if (typeof e != "boolean")
132
+ throw new A(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);
133
+ return { dynamic: !1, encoded: d(P(e)) };
134
+ }
135
+ function $(e, { signed: t, size: o = 256 }) {
136
+ if (typeof o == "number") {
137
+ const n = 2n ** (BigInt(o) - (t ? 1n : 0n)) - 1n, r = t ? -n - 1n : 0n;
138
+ if (e > n || e < r)
139
+ throw new x({
140
+ max: n.toString(),
141
+ min: r.toString(),
142
+ signed: t,
143
+ size: o / 8,
144
+ value: e.toString()
145
+ });
146
+ }
147
+ return {
148
+ dynamic: !1,
149
+ encoded: m(e, {
150
+ size: 32,
151
+ signed: t
152
+ })
153
+ };
154
+ }
155
+ function C(e) {
156
+ const t = S(e), o = Math.ceil(a(t) / 32), n = [];
157
+ for (let r = 0; r < o; r++)
158
+ n.push(d(E(t, r * 32, (r + 1) * 32), {
159
+ dir: "right"
160
+ }));
161
+ return {
162
+ dynamic: !0,
163
+ encoded: f([
164
+ d(m(a(t), { size: 32 })),
165
+ ...n
166
+ ])
167
+ };
168
+ }
169
+ function H(e, { param: t }) {
170
+ let o = !1;
171
+ const n = [];
172
+ for (let r = 0; r < t.components.length; r++) {
173
+ const i = t.components[r], c = Array.isArray(e) ? r : i.name, s = p({
174
+ param: i,
175
+ value: e[c]
176
+ });
177
+ n.push(s), s.dynamic && (o = !0);
178
+ }
179
+ return {
180
+ dynamic: o,
181
+ encoded: o ? h(n) : f(n.map(({ encoded: r }) => r))
182
+ };
183
+ }
184
+ function W(e) {
185
+ const t = e.match(/^(.*)\[(\d+)?\]$/);
186
+ return t ? (
187
+ // Return `null` if the array is dynamic.
188
+ [t[2] ? Number(t[2]) : null, t[1]]
189
+ ) : void 0;
190
+ }
191
+ export {
192
+ K as encodeAbiParameters,
193
+ W as getArrayComponents
194
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function a(t){return typeof t[0]=="string"?f(t):o(t)}function o(t){let n=0;for(const r of t)n+=r.length;const e=new Uint8Array(n);let c=0;for(const r of t)e.set(r,c),c+=r.length;return e}function f(t){return`0x${t.reduce((n,e)=>n+e.replace("0x",""),"")}`}exports.concat=a;exports.concatBytes=o;exports.concatHex=f;
@@ -0,0 +1,21 @@
1
+ function i(t) {
2
+ return typeof t[0] == "string" ? f(t) : c(t);
3
+ }
4
+ function c(t) {
5
+ let n = 0;
6
+ for (const e of t)
7
+ n += e.length;
8
+ const r = new Uint8Array(n);
9
+ let o = 0;
10
+ for (const e of t)
11
+ r.set(e, o), o += e.length;
12
+ return r;
13
+ }
14
+ function f(t) {
15
+ return `0x${t.reduce((n, r) => n + r.replace("0x", ""), "")}`;
16
+ }
17
+ export {
18
+ i as concat,
19
+ c as concatBytes,
20
+ f as concatHex
21
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index43.cjs");class t extends a.BaseError{constructor(e){const{docsPath:s,field:r,metaMessages:i}=e;super(`Invalid Sign-In with Ethereum message field "${r}".`,{docsPath:s,metaMessages:i,name:"SiweInvalidMessageFieldError"})}}exports.SiweInvalidMessageFieldError=t;
@@ -0,0 +1,14 @@
1
+ import { BaseError as i } from "./index43.js";
2
+ class d extends i {
3
+ constructor(e) {
4
+ const { docsPath: s, field: r, metaMessages: a } = e;
5
+ super(`Invalid Sign-In with Ethereum message field "${r}".`, {
6
+ docsPath: s,
7
+ metaMessages: a,
8
+ name: "SiweInvalidMessageFieldError"
9
+ });
10
+ }
11
+ }
12
+ export {
13
+ d as SiweInvalidMessageFieldError
14
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(e){if(/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(e)||/%[^0-9a-f]/i.test(e)||/%[0-9a-f](:?[^0-9a-f]|$)/i.test(e))return!1;const s=a(e),f=s[1],t=s[2],i=s[3],r=s[4],l=s[5];if(!(f!=null&&f.length&&i.length>=0))return!1;if(t!=null&&t.length){if(!(i.length===0||/^\//.test(i)))return!1}else if(/^\/\//.test(i))return!1;if(!/^[a-z][a-z0-9\+\-\.]*$/.test(f.toLowerCase()))return!1;let n="";return n+=`${f}:`,t!=null&&t.length&&(n+=`//${t}`),n+=i,r!=null&&r.length&&(n+=`?${r}`),l!=null&&l.length&&(n+=`#${l}`),n}function a(e){return e.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/)}exports.isUri=o;
@@ -0,0 +1,22 @@
1
+ function o(e) {
2
+ if (/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(e) || /%[^0-9a-f]/i.test(e) || /%[0-9a-f](:?[^0-9a-f]|$)/i.test(e))
3
+ return !1;
4
+ const s = a(e), f = s[1], t = s[2], i = s[3], r = s[4], l = s[5];
5
+ if (!(f != null && f.length && i.length >= 0))
6
+ return !1;
7
+ if (t != null && t.length) {
8
+ if (!(i.length === 0 || /^\//.test(i)))
9
+ return !1;
10
+ } else if (/^\/\//.test(i))
11
+ return !1;
12
+ if (!/^[a-z][a-z0-9\+\-\.]*$/.test(f.toLowerCase()))
13
+ return !1;
14
+ let n = "";
15
+ return n += `${f}:`, t != null && t.length && (n += `//${t}`), n += i, r != null && r.length && (n += `?${r}`), l != null && l.length && (n += `#${l}`), n;
16
+ }
17
+ function a(e) {
18
+ return e.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/);
19
+ }
20
+ export {
21
+ o as isUri
22
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index54.cjs"),e=require("./index58.cjs");function t(s){if(typeof s=="string"){if(!e.isAddress(s,{strict:!1}))throw new n.InvalidAddressError({address:s});return{address:s,type:"json-rpc"}}if(!e.isAddress(s.address,{strict:!1}))throw new n.InvalidAddressError({address:s.address});return{address:s.address,nonceManager:s.nonceManager,sign:s.sign,experimental_signAuthorization:s.experimental_signAuthorization,signMessage:s.signMessage,signTransaction:s.signTransaction,signTypedData:s.signTypedData,source:"custom",type:"local"}}exports.toAccount=t;
@@ -0,0 +1,28 @@
1
+ import { InvalidAddressError as s } from "./index54.js";
2
+ import { isAddress as a } from "./index58.js";
3
+ function e(n) {
4
+ if (typeof n == "string") {
5
+ if (!a(n, { strict: !1 }))
6
+ throw new s({ address: n });
7
+ return {
8
+ address: n,
9
+ type: "json-rpc"
10
+ };
11
+ }
12
+ if (!a(n.address, { strict: !1 }))
13
+ throw new s({ address: n.address });
14
+ return {
15
+ address: n.address,
16
+ nonceManager: n.nonceManager,
17
+ sign: n.sign,
18
+ experimental_signAuthorization: n.experimental_signAuthorization,
19
+ signMessage: n.signMessage,
20
+ signTransaction: n.signTransaction,
21
+ signTypedData: n.signTypedData,
22
+ source: "custom",
23
+ type: "local"
24
+ };
25
+ }
26
+ export {
27
+ e as toAccount
28
+ };
package/dist/index8.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class r{constructor(){this.memory=new Map}getItem(e){return this.memory.has(e)?this.memory.get(e):null}setItem(e,t){this.memory.set(e,t)}removeItem(e){this.memory.has(e)&&this.memory.delete(e)}}exports.MemoryStorage=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index16.cjs"),f=require("./index12.cjs"),h=require("./index13.cjs"),d=require("viem"),o=require("./index3.cjs"),g=require("./index6.cjs"),w=require("./index18.cjs"),m=require("./index19.cjs"),y=require("./index20.cjs");class c{constructor(n,r,e){this.API=new g.Url("https://api.garden.finance"),this.url=n??this.API,this.walletClient=r,this.domain=(e==null?void 0:e.domain)||"app.garden.finance",this.domain.startsWith("https://")&&(this.domain=this.domain.split("https://")[1]),this.signingStatement=(e==null?void 0:e.signingStatement)??"Garden.fi",this.store=(e==null?void 0:e.store)??new f.MemoryStorage}static fromDigestKey(n,r){const e=d.createWalletClient({account:w.privateKeyToAccount(o.add0x(r)),transport:d.http(),chain:m.mainnet});return new c(n,e)}verifyToken(n,r){try{const e=o.parseJwt(n);if(!e)return t.Ok(!1);const i=Math.floor(Date.now()/1e3)+120;return t.Ok(e.exp>i&&e.user_id.toLowerCase()===r.toLowerCase())}catch{return t.Ok(!1)}}async getToken(){var a;if(!((a=this.walletClient.account)!=null&&a.address))return t.Err("Wallet client does not have an account");const n=this.store.getItem(h.StoreKeys.AUTH_TOKEN);if(n){const s=this.verifyToken(n,this.walletClient.account.address);if(s.ok&&s.val)return t.Ok(n)}const r=await this.signStatement();if(r.error)return t.Err(r.error);const e=await t.Fetcher.post(this.url.endpoint("verify"),{body:JSON.stringify({...r.val}),headers:{"Content-Type":"application/json"}});if(e.error)return t.Err(e.error);const i=e.result;if(!i)return t.Err("Failed to get token");if(!this.verifyToken(i,this.walletClient.account.address).val)throw new Error("Token verification failed");return this.store.setItem(h.StoreKeys.AUTH_TOKEN,i),t.Ok(i)}async signStatement(){var u;if(!((u=this.walletClient.account)!=null&&u.address))return t.Err("Wallet client does not have a valid account");const n=new Date,r=new Date(n.getTime()+300*1e3),i=(await t.Fetcher.get(this.url.endpoint("nonce"))).result;if(!i)return t.Err("Failed to get nonce");const l=await this.walletClient.getChainId(),a=y.createSiweMessage({domain:this.domain,address:this.walletClient.account.address,statement:this.signingStatement,nonce:i,uri:"https://"+this.domain,version:"1",chainId:l,notBefore:r}),s=await this.walletClient.signMessage({account:this.walletClient.account,message:a});return t.Ok({message:a,signature:s,nonce:i})}async getAuthHeaders(){const n=await this.getToken();return n.error?t.Err(n.error):t.Ok({Authorization:o.Authorization(n.val)})}}exports.Siwe=c;
package/dist/index8.js CHANGED
@@ -1,17 +1,102 @@
1
- class m {
2
- constructor() {
3
- this.memory = /* @__PURE__ */ new Map();
1
+ import { Ok as r, Err as a, Fetcher as h } from "./index16.js";
2
+ import { MemoryStorage as u } from "./index12.js";
3
+ import { StoreKeys as m } from "./index13.js";
4
+ import { createWalletClient as f, http as w } from "viem";
5
+ import { add0x as g, parseJwt as p, Authorization as y } from "./index3.js";
6
+ import { Url as v } from "./index6.js";
7
+ import { privateKeyToAccount as T } from "./index18.js";
8
+ import { mainnet as k } from "./index19.js";
9
+ import { createSiweMessage as C } from "./index20.js";
10
+ class d {
11
+ constructor(e, n, t) {
12
+ this.API = new v("https://api.garden.finance"), this.url = e ?? this.API, this.walletClient = n, this.domain = (t == null ? void 0 : t.domain) || "app.garden.finance", this.domain.startsWith("https://") && (this.domain = this.domain.split("https://")[1]), this.signingStatement = (t == null ? void 0 : t.signingStatement) ?? "Garden.fi", this.store = (t == null ? void 0 : t.store) ?? new u();
4
13
  }
5
- getItem(e) {
6
- return this.memory.has(e) ? this.memory.get(e) : null;
14
+ static fromDigestKey(e, n) {
15
+ const t = f({
16
+ account: T(g(n)),
17
+ transport: w(),
18
+ chain: k
19
+ });
20
+ return new d(e, t);
7
21
  }
8
- setItem(e, t) {
9
- this.memory.set(e, t);
22
+ verifyToken(e, n) {
23
+ try {
24
+ const t = p(e);
25
+ if (!t) return r(!1);
26
+ const i = Math.floor(Date.now() / 1e3) + 120;
27
+ return r(
28
+ t.exp > i && t.user_id.toLowerCase() === n.toLowerCase()
29
+ );
30
+ } catch {
31
+ return r(!1);
32
+ }
10
33
  }
11
- removeItem(e) {
12
- this.memory.has(e) && this.memory.delete(e);
34
+ async getToken() {
35
+ var o;
36
+ if (!((o = this.walletClient.account) != null && o.address))
37
+ return a("Wallet client does not have an account");
38
+ const e = this.store.getItem(m.AUTH_TOKEN);
39
+ if (e) {
40
+ const s = this.verifyToken(
41
+ e,
42
+ this.walletClient.account.address
43
+ );
44
+ if (s.ok && s.val) return r(e);
45
+ }
46
+ const n = await this.signStatement();
47
+ if (n.error)
48
+ return a(n.error);
49
+ const t = await h.post(
50
+ this.url.endpoint("verify"),
51
+ {
52
+ body: JSON.stringify({
53
+ ...n.val
54
+ }),
55
+ headers: {
56
+ "Content-Type": "application/json"
57
+ }
58
+ }
59
+ );
60
+ if (t.error) return a(t.error);
61
+ const i = t.result;
62
+ if (!i) return a("Failed to get token");
63
+ if (!this.verifyToken(i, this.walletClient.account.address).val)
64
+ throw new Error("Token verification failed");
65
+ return this.store.setItem(m.AUTH_TOKEN, i), r(i);
66
+ }
67
+ async signStatement() {
68
+ var l;
69
+ if (!((l = this.walletClient.account) != null && l.address))
70
+ return a("Wallet client does not have a valid account");
71
+ const e = /* @__PURE__ */ new Date(), n = new Date(e.getTime() + 300 * 1e3), i = (await h.get(
72
+ this.url.endpoint("nonce")
73
+ )).result;
74
+ if (!i)
75
+ return a("Failed to get nonce");
76
+ const c = await this.walletClient.getChainId(), o = C({
77
+ domain: this.domain,
78
+ address: this.walletClient.account.address,
79
+ statement: this.signingStatement,
80
+ nonce: i,
81
+ uri: "https://" + this.domain,
82
+ version: "1",
83
+ chainId: c,
84
+ notBefore: n
85
+ }), s = await this.walletClient.signMessage({
86
+ account: this.walletClient.account,
87
+ message: o
88
+ });
89
+ return r({
90
+ message: o,
91
+ signature: s,
92
+ nonce: i
93
+ });
94
+ }
95
+ async getAuthHeaders() {
96
+ const e = await this.getToken();
97
+ return e.error ? a(e.error) : r({ Authorization: y(e.val) });
13
98
  }
14
99
  }
15
100
  export {
16
- m as MemoryStorage
101
+ d as Siwe
17
102
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index53.cjs"),c=require("./index56.cjs");function t(e){const s=c.keccak256(`0x${e.substring(4)}`).substring(26);return r.checksumAddress(`0x${s}`)}exports.publicKeyToAddress=t;
@@ -0,0 +1,9 @@
1
+ import { checksumAddress as e } from "./index53.js";
2
+ import { keccak256 as o } from "./index56.js";
3
+ function d(r) {
4
+ const s = o(`0x${r.substring(4)}`).substring(26);
5
+ return e(`0x${s}`);
6
+ }
7
+ export {
8
+ d as publicKeyToAddress
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index73.cjs"),s=require("./index24.cjs"),a=require("./index72.cjs");let l=!1;async function g({hash:t,privateKey:i,to:e="object"}){const{r:u,s:c,recovery:r}=o.secp256k1.sign(t.slice(2),i.slice(2),{lowS:!0,extraEntropy:l}),n={r:s.numberToHex(u,{size:32}),s:s.numberToHex(c,{size:32}),v:r?28n:27n,yParity:r};return e==="bytes"||e==="hex"?a.serializeSignature({...n,to:e}):n}exports.sign=g;