@argent/x-shared 1.66.3 → 1.66.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 (30) hide show
  1. package/dist/node_modules/.pnpm/i18next@24.2.3_typescript@5.7.3/node_modules/i18next/dist/esm/i18next.cjs +1 -0
  2. package/dist/node_modules/.pnpm/i18next@24.2.3_typescript@5.7.3/node_modules/i18next/dist/esm/i18next.js +1393 -0
  3. package/dist/node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/defaults.cjs +1 -0
  4. package/dist/node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/defaults.js +20 -0
  5. package/dist/node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/initReactI18next.cjs +1 -0
  6. package/dist/node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/initReactI18next.js +10 -0
  7. package/dist/node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/unescape.cjs +1 -0
  8. package/dist/node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/unescape.js +25 -0
  9. package/dist/src/chains/starknet/address.cjs +1 -1
  10. package/dist/src/chains/starknet/address.js +48 -46
  11. package/dist/src/chains/starknet/getAddressFromArgentName.cjs +1 -1
  12. package/dist/src/chains/starknet/getAddressFromArgentName.js +7 -7
  13. package/dist/src/chains/starknet/services/address/StarknetAddressService.cjs +1 -1
  14. package/dist/src/chains/starknet/services/address/StarknetAddressService.js +9 -9
  15. package/dist/src/features/paymaster/types.cjs +1 -1
  16. package/dist/src/features/paymaster/types.js +1 -1
  17. package/dist/src/i18n/config.d.ts +7 -0
  18. package/dist/src/i18n/lokaliseApi.d.ts +4 -0
  19. package/dist/src/locales/en/translation.json.cjs +1 -0
  20. package/dist/src/locales/en/translation.json.js +7 -0
  21. package/dist/src/scripts/langchain-localize.d.ts +1 -0
  22. package/dist/src/scripts/upload-translation.d.ts +1 -0
  23. package/dist/src/transactions/getTransactionVersion.cjs +1 -1
  24. package/dist/src/transactions/getTransactionVersion.js +5 -5
  25. package/dist/src/transactions/txv3.cjs +1 -1
  26. package/dist/src/transactions/txv3.js +4 -4
  27. package/dist/src/utils/i18n.cjs +1 -0
  28. package/dist/src/utils/i18n.d.ts +2 -0
  29. package/dist/src/utils/i18n.js +21 -0
  30. package/package.json +18 -3
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./unescape.cjs");let e={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:s.unescape};const n=(t={})=>{e={...e,...t}};exports.setDefaults=n;
@@ -0,0 +1,20 @@
1
+ import { unescape as s } from "./unescape.js";
2
+ let e = {
3
+ bindI18n: "languageChanged",
4
+ bindI18nStore: "",
5
+ transEmptyNodeValue: "",
6
+ transSupportBasicHtmlNodes: !0,
7
+ transWrapTextNodes: "",
8
+ transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
9
+ useSuspense: !0,
10
+ unescape: s
11
+ };
12
+ const r = (t = {}) => {
13
+ e = {
14
+ ...e,
15
+ ...t
16
+ };
17
+ };
18
+ export {
19
+ r as setDefaults
20
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./defaults.cjs"),i={type:"3rdParty",init(t){e.setDefaults(t.options.react)}};exports.initReactI18next=i;
@@ -0,0 +1,10 @@
1
+ import { setDefaults as e } from "./defaults.js";
2
+ const o = {
3
+ type: "3rdParty",
4
+ init(t) {
5
+ e(t.options.react);
6
+ }
7
+ };
8
+ export {
9
+ o as initReactI18next
10
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,p={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},n=t=>p[t],o=t=>t.replace(e,n);exports.unescape=o;
@@ -0,0 +1,25 @@
1
+ const p = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g, e = {
2
+ "&amp;": "&",
3
+ "&#38;": "&",
4
+ "&lt;": "<",
5
+ "&#60;": "<",
6
+ "&gt;": ">",
7
+ "&#62;": ">",
8
+ "&apos;": "'",
9
+ "&#39;": "'",
10
+ "&quot;": '"',
11
+ "&#34;": '"',
12
+ "&nbsp;": " ",
13
+ "&#160;": " ",
14
+ "&copy;": "©",
15
+ "&#169;": "©",
16
+ "&reg;": "®",
17
+ "&#174;": "®",
18
+ "&hellip;": "…",
19
+ "&#8230;": "…",
20
+ "&#x2F;": "/",
21
+ "&#47;": "/"
22
+ }, n = (t) => e[t], o = (t) => t.replace(p, n);
23
+ export {
24
+ o as unescape
25
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("lodash-es"),t=require("starknet"),c=require("zod"),S=require("../../utils/base58.cjs"),u=c.z.string().refine(e=>{if(e.toLowerCase()===e)return!0;try{return t.validateChecksumAddress(e)&&T(e)}catch{}return!1},"Invalid address (checksum error)"),g=c.z.string().refine(e=>{try{return t.validateAndParseAddress(e)}catch{}return!1},"Invalid address (validation error)"),n=c.z.string().regex(/^0x[0-9a-fA-F]+$/,"Invalid address"),l=n.min(50,"Addresses must at least be 50 characters long").max(66,"Addresses must at most be 66 characters long"),x=n.length(66,"Address must be 66 characters long"),o=l.pipe(u).transform(e=>`0x${(e.startsWith("0x")?e.slice(2):e).padStart(64,"0")}`),p=o.or(c.z.literal("")).transform(e=>e===""?void 0:e).optional(),$=n.transform(e=>`0x${e.replace(/^0x/,"").toLowerCase().padStart(64,"0")}`),h=e=>o.safeParse(e).success,f=h,i=e=>t.getChecksumAddress(e),z=e=>{if(!e)return!1;try{const s=S.decodeBase58(e);return f(s)}catch{return!1}},L=e=>{const s=i(e),r=s.slice(0,2),a=s.slice(2,6),d=s.slice(-4);return`${r}${a}…${d}`},B=e=>{const s=i(e),r=s.slice(0,2),d=s.slice(2).match(/.{1,4}/g)||[];return`${r} ${d.join(" ")}`},T=e=>!/^0x[0-9a-f]{63,64}$/.test(e),A=(e,s)=>{try{return!e||!s?!1:t.num.hexToDecimalString(e)===t.num.hexToDecimalString(s)}catch{}return!1},w=e=>{try{return t.num.toBigInt(n.parse(e))===t.constants.ZERO}catch{}return!1},C=(e,s)=>!!(s!=null&&s.some(r=>A(r,e))),E=m.memoize(e=>{const s=e.slice(0,6),r=e.slice(-4);return`${s}…${r}`}),P=m.memoize((e,s)=>{if(e.length<s)return e;const r=Math.floor((s-1)/2),a=e.slice(0,r),d=e.slice(-r);return`${a}…${d}`});exports.addressOrEmptyUndefinedSchema=p;exports.addressSchema=o;exports.addressSchemaArgentBackend=$;exports.addressSchemaBase=n;exports.addressSchemaLooseLength=l;exports.addressSchemaStrictLength=x;exports.formatFullAddress=B;exports.formatTruncatedAddress=L;exports.formatTruncatedSignerKey=E;exports.formatTruncatedString=P;exports.includesAddress=C;exports.isAddress=h;exports.isBase58Address=z;exports.isEqualAddress=A;exports.isValidAddress=f;exports.isZeroAddress=w;exports.normalizeAddress=i;exports.validChecksumAddressSchema=u;exports.validateAddressRangeSchema=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("lodash-es"),t=require("starknet"),c=require("zod"),g=require("../../utils/base58.cjs");require("../../utils/i18n.cjs");const d=require("../../../node_modules/.pnpm/i18next@24.2.3_typescript@5.7.3/node_modules/i18next/dist/esm/i18next.cjs"),m=c.z.string().refine(e=>{if(e.toLowerCase()===e)return!0;try{return t.validateChecksumAddress(e)&&T(e)}catch{}return!1},()=>({message:d.default.t("validation.address.invalidChecksum")})),x=c.z.string().refine(e=>{try{return t.validateAndParseAddress(e)}catch{}return!1},()=>({message:d.default.t("validation.address.validationError")})),n=c.z.string().regex(/^0x[0-9a-fA-F]+$/,d.default.t("validation.address.invalidFormat")),f=n.min(50,d.default.t("validation.address.tooShort")).max(66,d.default.t("validation.address.tooLong")),p=n.length(66,d.default.t("validation.address.exactLength")),i=f.pipe(m).transform(e=>`0x${(e.startsWith("0x")?e.slice(2):e).padStart(64,"0")}`),$=i.or(c.z.literal("")).transform(e=>e===""?void 0:e).optional(),L=n.transform(e=>`0x${e.replace(/^0x/,"").toLowerCase().padStart(64,"0")}`),h=e=>i.safeParse(e).success,A=h,l=e=>t.getChecksumAddress(e),v=e=>{if(!e)return!1;try{const s=g.decodeBase58(e);return A(s)}catch{return!1}},z=e=>{const s=l(e),r=s.slice(0,2),o=s.slice(2,6),a=s.slice(-4);return`${r}${o}…${a}`},B=e=>{const s=l(e),r=s.slice(0,2),a=s.slice(2).match(/.{1,4}/g)||[];return`${r} ${a.join(" ")}`},T=e=>!/^0x[0-9a-f]{63,64}$/.test(e),S=(e,s)=>{try{return!e||!s?!1:t.num.hexToDecimalString(e)===t.num.hexToDecimalString(s)}catch{}return!1},q=e=>{try{return t.num.toBigInt(n.parse(e))===t.constants.ZERO}catch{}return!1},w=(e,s)=>!!(s!=null&&s.some(r=>S(r,e))),C=u.memoize(e=>{const s=e.slice(0,6),r=e.slice(-4);return`${s}…${r}`}),E=u.memoize((e,s)=>{if(e.length<s)return e;const r=Math.floor((s-1)/2),o=e.slice(0,r),a=e.slice(-r);return`${o}…${a}`});exports.addressOrEmptyUndefinedSchema=$;exports.addressSchema=i;exports.addressSchemaArgentBackend=L;exports.addressSchemaBase=n;exports.addressSchemaLooseLength=f;exports.addressSchemaStrictLength=p;exports.formatFullAddress=B;exports.formatTruncatedAddress=z;exports.formatTruncatedSignerKey=C;exports.formatTruncatedString=E;exports.includesAddress=w;exports.isAddress=h;exports.isBase58Address=v;exports.isEqualAddress=S;exports.isValidAddress=A;exports.isZeroAddress=q;exports.normalizeAddress=l;exports.validChecksumAddressSchema=m;exports.validateAddressRangeSchema=x;
@@ -1,75 +1,77 @@
1
- import { memoize as a } from "lodash-es";
2
- import { validateChecksumAddress as l, validateAndParseAddress as u, getChecksumAddress as f, num as c, constants as h } from "starknet";
1
+ import { memoize as i } from "lodash-es";
2
+ import { validateChecksumAddress as u, validateAndParseAddress as f, getChecksumAddress as h, num as c, constants as p } from "starknet";
3
3
  import { z as d } from "zod";
4
- import { decodeBase58 as A } from "../../utils/base58.js";
5
- const p = d.string().refine((e) => {
4
+ import { decodeBase58 as x } from "../../utils/base58.js";
5
+ import "../../utils/i18n.js";
6
+ import r from "../../../node_modules/.pnpm/i18next@24.2.3_typescript@5.7.3/node_modules/i18next/dist/esm/i18next.js";
7
+ const A = d.string().refine((e) => {
6
8
  if (e.toLowerCase() === e)
7
9
  return !0;
8
10
  try {
9
- return l(e) && $(e);
11
+ return u(e) && L(e);
10
12
  } catch {
11
13
  }
12
14
  return !1;
13
- }, "Invalid address (checksum error)"), z = d.string().refine((e) => {
15
+ }, () => ({ message: r.t("validation.address.invalidChecksum") })), T = d.string().refine((e) => {
14
16
  try {
15
- return u(e);
17
+ return f(e);
16
18
  } catch {
17
19
  }
18
20
  return !1;
19
- }, "Invalid address (validation error)"), o = d.string().regex(/^0x[0-9a-fA-F]+$/, "Invalid address"), x = o.min(50, "Addresses must at least be 50 characters long").max(66, "Addresses must at most be 66 characters long"), T = o.length(66, "Address must be 66 characters long"), i = x.pipe(p).transform((e) => `0x${(e.startsWith("0x") ? e.slice(2) : e).padStart(64, "0")}`), E = i.or(d.literal("")).transform((e) => e === "" ? void 0 : e).optional(), I = o.transform((e) => `0x${e.replace(/^0x/, "").toLowerCase().padStart(64, "0")}`), S = (e) => i.safeParse(e).success, g = S, m = (e) => f(e), Z = (e) => {
21
+ }, () => ({ message: r.t("validation.address.validationError") })), a = d.string().regex(/^0x[0-9a-fA-F]+$/, r.t("validation.address.invalidFormat")), S = a.min(50, r.t("validation.address.tooShort")).max(66, r.t("validation.address.tooLong")), Z = a.length(66, r.t("validation.address.exactLength")), m = S.pipe(A).transform((e) => `0x${(e.startsWith("0x") ? e.slice(2) : e).padStart(64, "0")}`), F = m.or(d.literal("")).transform((e) => e === "" ? void 0 : e).optional(), k = a.transform((e) => `0x${e.replace(/^0x/, "").toLowerCase().padStart(64, "0")}`), g = (e) => m.safeParse(e).success, $ = g, l = (e) => h(e), y = (e) => {
20
22
  if (!e)
21
23
  return !1;
22
24
  try {
23
- const s = A(e);
24
- return g(s);
25
+ const t = x(e);
26
+ return $(t);
25
27
  } catch {
26
28
  return !1;
27
29
  }
28
- }, v = (e) => {
29
- const s = m(e), r = s.slice(0, 2), n = s.slice(2, 6), t = s.slice(-4);
30
- return `${r}${n}…${t}`;
31
- }, b = (e) => {
32
- const s = m(e), r = s.slice(0, 2), t = s.slice(2).match(/.{1,4}/g) || [];
33
- return `${r} ${t.join(" ")}`;
34
- }, $ = (e) => !/^0x[0-9a-f]{63,64}$/.test(e), w = (e, s) => {
30
+ }, D = (e) => {
31
+ const t = l(e), s = t.slice(0, 2), o = t.slice(2, 6), n = t.slice(-4);
32
+ return `${s}${o}…${n}`;
33
+ }, O = (e) => {
34
+ const t = l(e), s = t.slice(0, 2), n = t.slice(2).match(/.{1,4}/g) || [];
35
+ return `${s} ${n.join(" ")}`;
36
+ }, L = (e) => !/^0x[0-9a-f]{63,64}$/.test(e), v = (e, t) => {
35
37
  try {
36
- return !e || !s ? !1 : c.hexToDecimalString(e) === c.hexToDecimalString(s);
38
+ return !e || !t ? !1 : c.hexToDecimalString(e) === c.hexToDecimalString(t);
37
39
  } catch {
38
40
  }
39
41
  return !1;
40
- }, k = (e) => {
42
+ }, R = (e) => {
41
43
  try {
42
- return c.toBigInt(o.parse(e)) === h.ZERO;
44
+ return c.toBigInt(a.parse(e)) === p.ZERO;
43
45
  } catch {
44
46
  }
45
47
  return !1;
46
- }, y = (e, s) => !!(s != null && s.some((r) => w(r, e))), D = a((e) => {
47
- const s = e.slice(0, 6), r = e.slice(-4);
48
- return `${s}…${r}`;
49
- }), F = a((e, s) => {
50
- if (e.length < s)
48
+ }, j = (e, t) => !!(t != null && t.some((s) => v(s, e))), q = i((e) => {
49
+ const t = e.slice(0, 6), s = e.slice(-4);
50
+ return `${t}…${s}`;
51
+ }), I = i((e, t) => {
52
+ if (e.length < t)
51
53
  return e;
52
- const r = Math.floor((s - 1) / 2), n = e.slice(0, r), t = e.slice(-r);
53
- return `${n}…${t}`;
54
+ const s = Math.floor((t - 1) / 2), o = e.slice(0, s), n = e.slice(-s);
55
+ return `${o}…${n}`;
54
56
  });
55
57
  export {
56
- E as addressOrEmptyUndefinedSchema,
57
- i as addressSchema,
58
- I as addressSchemaArgentBackend,
59
- o as addressSchemaBase,
60
- x as addressSchemaLooseLength,
61
- T as addressSchemaStrictLength,
62
- b as formatFullAddress,
63
- v as formatTruncatedAddress,
64
- D as formatTruncatedSignerKey,
65
- F as formatTruncatedString,
66
- y as includesAddress,
67
- S as isAddress,
68
- Z as isBase58Address,
69
- w as isEqualAddress,
70
- g as isValidAddress,
71
- k as isZeroAddress,
72
- m as normalizeAddress,
73
- p as validChecksumAddressSchema,
74
- z as validateAddressRangeSchema
58
+ F as addressOrEmptyUndefinedSchema,
59
+ m as addressSchema,
60
+ k as addressSchemaArgentBackend,
61
+ a as addressSchemaBase,
62
+ S as addressSchemaLooseLength,
63
+ Z as addressSchemaStrictLength,
64
+ O as formatFullAddress,
65
+ D as formatTruncatedAddress,
66
+ q as formatTruncatedSignerKey,
67
+ I as formatTruncatedString,
68
+ j as includesAddress,
69
+ g as isAddress,
70
+ y as isBase58Address,
71
+ v as isEqualAddress,
72
+ $ as isValidAddress,
73
+ R as isZeroAddress,
74
+ l as normalizeAddress,
75
+ A as validChecksumAddressSchema,
76
+ T as validateAddressRangeSchema
75
77
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("url-join"),s=require("zod"),d=require("./address.cjs"),m=require("./argentName.cjs"),o=require("../../errors/address.cjs"),w=require("../../http/HttpError.cjs"),E=s.z.object({walletAddress:d.addressSchemaArgentBackend,ens:m.argentNameSchema,chain:s.z.enum(["ethereum","starknet"]),deleted:s.z.boolean(),walletDeployed:s.z.boolean()}).or(s.z.object({status:s.z.string()}));async function N(t,n,a,c="starknet"){const i={ens:t,chain:c},l=new URLSearchParams(i),A=u(a,"wallet",`?${l}`);try{const e=await n.get(A),r=e&&"walletAddress"in e?e.walletAddress:void 0;if(!r)throw new o.AddressError({code:"NO_ADDRESS_FROM_ARGENT_NAME"});if(d.isZeroAddress(r))throw new o.AddressError({code:"ARGENT_NAME_NOT_FOUND",message:`${t} not found`});if(!d.isValidAddress(r))throw new o.AddressError({code:"ARGENT_NAME_INVALID_ADDRESS",message:`${t} resolved to an invalid address (${r})`});return d.normalizeAddress(r)}catch(e){throw e instanceof w.HttpError&&e.status===404?new o.AddressError({code:"ARGENT_NAME_NOT_FOUND",message:`${t} not found`}):e}}exports.apiWalletResponseSchema=E;exports.getAddressFromArgentName=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("url-join"),s=require("zod"),o=require("../../errors/address.cjs"),m=require("./argentName.cjs"),d=require("./address.cjs"),w=require("../../http/HttpError.cjs"),E=s.z.object({walletAddress:d.addressSchemaArgentBackend,ens:m.argentNameSchema,chain:s.z.enum(["ethereum","starknet"]),deleted:s.z.boolean(),walletDeployed:s.z.boolean()}).or(s.z.object({status:s.z.string()}));async function N(t,n,a,c="starknet"){const i={ens:t,chain:c},l=new URLSearchParams(i),A=u(a,"wallet",`?${l}`);try{const e=await n.get(A),r=e&&"walletAddress"in e?e.walletAddress:void 0;if(!r)throw new o.AddressError({code:"NO_ADDRESS_FROM_ARGENT_NAME"});if(d.isZeroAddress(r))throw new o.AddressError({code:"ARGENT_NAME_NOT_FOUND",message:`${t} not found`});if(!d.isValidAddress(r))throw new o.AddressError({code:"ARGENT_NAME_INVALID_ADDRESS",message:`${t} resolved to an invalid address (${r})`});return d.normalizeAddress(r)}catch(e){throw e instanceof w.HttpError&&e.status===404?new o.AddressError({code:"ARGENT_NAME_NOT_FOUND",message:`${t} not found`}):e}}exports.apiWalletResponseSchema=E;exports.getAddressFromArgentName=N;
@@ -1,12 +1,12 @@
1
1
  import m from "url-join";
2
2
  import { z as s } from "zod";
3
- import { addressSchemaArgentBackend as A, isZeroAddress as w, isValidAddress as f, normalizeAddress as N } from "./address.js";
4
- import { argentNameSchema as h } from "./argentName.js";
5
3
  import { AddressError as t } from "../../errors/address.js";
4
+ import { argentNameSchema as A } from "./argentName.js";
5
+ import { addressSchemaArgentBackend as w, isZeroAddress as f, isValidAddress as N, normalizeAddress as h } from "./address.js";
6
6
  import { HttpError as _ } from "../../http/HttpError.js";
7
7
  const O = s.object({
8
- walletAddress: A,
9
- ens: h,
8
+ walletAddress: w,
9
+ ens: A,
10
10
  chain: s.enum(["ethereum", "starknet"]),
11
11
  deleted: s.boolean(),
12
12
  walletDeployed: s.boolean()
@@ -24,17 +24,17 @@ async function T(o, n, a, d = "starknet") {
24
24
  throw new t({
25
25
  code: "NO_ADDRESS_FROM_ARGENT_NAME"
26
26
  });
27
- if (w(r))
27
+ if (f(r))
28
28
  throw new t({
29
29
  code: "ARGENT_NAME_NOT_FOUND",
30
30
  message: `${o} not found`
31
31
  });
32
- if (!f(r))
32
+ if (!N(r))
33
33
  throw new t({
34
34
  code: "ARGENT_NAME_INVALID_ADDRESS",
35
35
  message: `${o} resolved to an invalid address (${r})`
36
36
  });
37
- return N(r);
37
+ return h(r);
38
38
  } catch (e) {
39
39
  throw e instanceof _ && e.status === 404 ? new t({
40
40
  code: "ARGENT_NAME_NOT_FOUND",
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../../address.cjs"),a=require("../../argentName.cjs"),o=require("../../getAddressFromArgentName.cjs"),n=require("../../getAddressFromStarkName.cjs"),i=require("../../starknetId.cjs"),s=require("../../../../errors/address.cjs");class A{constructor(e,r,t){this.httpService=e,this.baseUrl=r,this.allowedArgentNameNetworkId=t}async parseAddressOrDomain(e,r,t){if(d.isAddress(e))return d.normalizeAddress(e);try{return await this.getAddressFromDomainName(e,r,t)}catch{throw new s.AddressError({code:"NOT_VALID"})}}async getAddressFromDomainName(e,r,t){if(i.isStarknetId(e))return n.getAddressFromStarkName(e,r,t);if(a.isArgentName(e)){if(r!==this.allowedArgentNameNetworkId)throw new s.AddressError({code:"ARGENT_NAME_INVALID_NETWORK",message:`Argent name is only enabled on "${this.allowedArgentNameNetworkId}"`});return o.getAddressFromArgentName(e,this.httpService,this.baseUrl)}throw new s.AddressError({code:"NO_ADDRESS_FROM_DOMAIN"})}}exports.StarknetAddressService=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../errors/address.cjs"),d=require("../../address.cjs"),a=require("../../starknetId.cjs"),o=require("../../getAddressFromStarkName.cjs"),n=require("../../argentName.cjs"),i=require("../../getAddressFromArgentName.cjs");class A{constructor(e,r,t){this.httpService=e,this.baseUrl=r,this.allowedArgentNameNetworkId=t}async parseAddressOrDomain(e,r,t){if(d.isAddress(e))return d.normalizeAddress(e);try{return await this.getAddressFromDomainName(e,r,t)}catch{throw new s.AddressError({code:"NOT_VALID"})}}async getAddressFromDomainName(e,r,t){if(a.isStarknetId(e))return o.getAddressFromStarkName(e,r,t);if(n.isArgentName(e)){if(r!==this.allowedArgentNameNetworkId)throw new s.AddressError({code:"ARGENT_NAME_INVALID_NETWORK",message:`Argent name is only enabled on "${this.allowedArgentNameNetworkId}"`});return i.getAddressFromArgentName(e,this.httpService,this.baseUrl)}throw new s.AddressError({code:"NO_ADDRESS_FROM_DOMAIN"})}}exports.StarknetAddressService=A;
@@ -1,9 +1,9 @@
1
- import { isAddress as o, normalizeAddress as i } from "../../address.js";
2
- import { isArgentName as m } from "../../argentName.js";
3
- import { getAddressFromArgentName as a } from "../../getAddressFromArgentName.js";
4
- import { getAddressFromStarkName as d } from "../../getAddressFromStarkName.js";
5
- import { isStarknetId as n } from "../../starknetId.js";
6
1
  import { AddressError as s } from "../../../../errors/address.js";
2
+ import { isAddress as o, normalizeAddress as i } from "../../address.js";
3
+ import { isStarknetId as m } from "../../starknetId.js";
4
+ import { getAddressFromStarkName as a } from "../../getAddressFromStarkName.js";
5
+ import { isArgentName as d } from "../../argentName.js";
6
+ import { getAddressFromArgentName as n } from "../../getAddressFromArgentName.js";
7
7
  class p {
8
8
  constructor(e, r, t) {
9
9
  this.httpService = e, this.baseUrl = r, this.allowedArgentNameNetworkId = t;
@@ -18,15 +18,15 @@ class p {
18
18
  }
19
19
  }
20
20
  async getAddressFromDomainName(e, r, t) {
21
- if (n(e))
22
- return d(e, r, t);
23
- if (m(e)) {
21
+ if (m(e))
22
+ return a(e, r, t);
23
+ if (d(e)) {
24
24
  if (r !== this.allowedArgentNameNetworkId)
25
25
  throw new s({
26
26
  code: "ARGENT_NAME_INVALID_NETWORK",
27
27
  message: `Argent name is only enabled on "${this.allowedArgentNameNetworkId}"`
28
28
  });
29
- return a(e, this.httpService, this.baseUrl);
29
+ return n(e, this.httpService, this.baseUrl);
30
30
  }
31
31
  throw new s({
32
32
  code: "NO_ADDRESS_FROM_DOMAIN"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("zod"),t=require("../../chains/starknet/address.cjs"),r=require("../../utils/starknet/starknet.cjs"),e=require("../../backend/schema.cjs"),s=a.z.object({calls:a.z.array(r.callSchema),accountAddress:t.addressSchema,networkId:e.argentNetworkIdSchema.or(e.argentBackendNetworkIdSchema).optional(),feeTokenAddress:t.addressSchema,maxFee:r.bigNumberishSchema,accountClassHash:a.z.string().optional()}),o=a.z.object({signature:a.z.string().array(),accountAddress:t.addressSchema,typedData:r.typedDataSchema,networkId:e.argentNetworkIdSchema.or(e.argentBackendNetworkIdSchema).optional(),deploymentData:a.z.object({class_hash:a.z.string().optional(),salt:a.z.string().or(a.z.number()).or(a.z.bigint()).optional(),unique:a.z.string(),calldata:a.z.array(a.z.string())}).optional()}),n=a.z.object({transactionHash:a.z.string()});exports.paymasterExecuteParams=o;exports.paymasterExecuteResponse=n;exports.paymasterExecutionDataParams=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("zod"),t=require("../../utils/starknet/starknet.cjs"),e=require("../../backend/schema.cjs"),r=require("../../chains/starknet/address.cjs"),s=a.z.object({calls:a.z.array(t.callSchema),accountAddress:r.addressSchema,networkId:e.argentNetworkIdSchema.or(e.argentBackendNetworkIdSchema).optional(),feeTokenAddress:r.addressSchema,maxFee:t.bigNumberishSchema,accountClassHash:a.z.string().optional()}),o=a.z.object({signature:a.z.string().array(),accountAddress:r.addressSchema,typedData:t.typedDataSchema,networkId:e.argentNetworkIdSchema.or(e.argentBackendNetworkIdSchema).optional(),deploymentData:a.z.object({class_hash:a.z.string().optional(),salt:a.z.string().or(a.z.number()).or(a.z.bigint()).optional(),unique:a.z.string(),calldata:a.z.array(a.z.string())}).optional()}),n=a.z.object({transactionHash:a.z.string()});exports.paymasterExecuteParams=o;exports.paymasterExecuteResponse=n;exports.paymasterExecutionDataParams=s;
@@ -1,7 +1,7 @@
1
1
  import { z as a } from "zod";
2
- import { addressSchema as t } from "../../chains/starknet/address.js";
3
2
  import { bigNumberishSchema as o, callSchema as s, typedDataSchema as n } from "../../utils/starknet/starknet.js";
4
3
  import { argentNetworkIdSchema as e, argentBackendNetworkIdSchema as r } from "../../backend/schema.js";
4
+ import { addressSchema as t } from "../../chains/starknet/address.js";
5
5
  const d = a.object({
6
6
  calls: a.array(s),
7
7
  accountAddress: t,
@@ -0,0 +1,7 @@
1
+ export declare const config: {
2
+ inputDir: string;
3
+ outputDir: string;
4
+ lng: string;
5
+ defaultNS: string;
6
+ };
7
+ export declare const defaultTranslationFilePath: string;
@@ -0,0 +1,4 @@
1
+ import { LokaliseApi } from '@lokalise/node-api';
2
+ declare const LOKALISE_API_TOKEN: string | undefined, LOKALISE_PROJECT_ID: string | undefined;
3
+ export declare const getLokaliseApi: () => LokaliseApi;
4
+ export { LOKALISE_API_TOKEN, LOKALISE_PROJECT_ID };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={address:{invalidChecksum:"Invalid address (checksum error)",validationError:"Invalid address (validation error)",invalidFormat:"Invalid address",tooShort:"Addresses must at least be 50 characters long",tooLong:"Addresses must at most be 66 characters long",exactLength:"Address must be 66 characters long"}},a={validation:e};exports.default=a;exports.validation=e;
@@ -0,0 +1,7 @@
1
+ const a = { address: { invalidChecksum: "Invalid address (checksum error)", validationError: "Invalid address (validation error)", invalidFormat: "Invalid address", tooShort: "Addresses must at least be 50 characters long", tooLong: "Addresses must at most be 66 characters long", exactLength: "Address must be 66 characters long" } }, s = {
2
+ validation: a
3
+ };
4
+ export {
5
+ s as default,
6
+ a as validation
7
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function uploadTranslation(): Promise<void>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("starknet"),r=require("../chains/starknet/address.cjs"),o=require("../chains/starknet/constants.cjs"),s=require("./txv3.cjs");function T(e){return r.isEqualAddress(e,o.ETH_TOKEN_ADDRESS)?t.constants.TRANSACTION_VERSION.V1:t.constants.TRANSACTION_VERSION.V3}function c(e){return r.isEqualAddress(e,o.ETH_TOKEN_ADDRESS)?t.constants.TRANSACTION_VERSION.F1:t.constants.TRANSACTION_VERSION.F3}function N(e,n){return t.isSierra(n.contract)?r.isEqualAddress(e,o.ETH_TOKEN_ADDRESS)?t.constants.TRANSACTION_VERSION.V2:t.constants.TRANSACTION_VERSION.V3:t.constants.TRANSACTION_VERSION.V1}const S=({classHash:e})=>e&&!s.classHashSupportsTxV3(e)?t.constants.TRANSACTION_VERSION.V1:t.constants.TRANSACTION_VERSION.V3,a=({classHash:e},n)=>t.isSierra(n.contract)?e&&!s.classHashSupportsTxV3(e)?t.constants.TRANSACTION_VERSION.V2:t.constants.TRANSACTION_VERSION.V3:t.constants.TRANSACTION_VERSION.V1;exports.getAccountTxVersion=S;exports.getSimulationTxVersionFromFeeToken=c;exports.getTxVersionForDeclareContract=a;exports.getTxVersionFromFeeToken=T;exports.getTxVersionFromFeeTokenForDeclareContract=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("starknet"),s=require("./txv3.cjs"),r=require("../chains/starknet/constants.cjs"),o=require("../chains/starknet/address.cjs");function T(e){return o.isEqualAddress(e,r.ETH_TOKEN_ADDRESS)?t.constants.TRANSACTION_VERSION.V1:t.constants.TRANSACTION_VERSION.V3}function c(e){return o.isEqualAddress(e,r.ETH_TOKEN_ADDRESS)?t.constants.TRANSACTION_VERSION.F1:t.constants.TRANSACTION_VERSION.F3}function N(e,n){return t.isSierra(n.contract)?o.isEqualAddress(e,r.ETH_TOKEN_ADDRESS)?t.constants.TRANSACTION_VERSION.V2:t.constants.TRANSACTION_VERSION.V3:t.constants.TRANSACTION_VERSION.V1}const S=({classHash:e})=>e&&!s.classHashSupportsTxV3(e)?t.constants.TRANSACTION_VERSION.V1:t.constants.TRANSACTION_VERSION.V3,a=({classHash:e},n)=>t.isSierra(n.contract)?e&&!s.classHashSupportsTxV3(e)?t.constants.TRANSACTION_VERSION.V2:t.constants.TRANSACTION_VERSION.V3:t.constants.TRANSACTION_VERSION.V1;exports.getAccountTxVersion=S;exports.getSimulationTxVersionFromFeeToken=c;exports.getTxVersionForDeclareContract=a;exports.getTxVersionFromFeeToken=T;exports.getTxVersionFromFeeTokenForDeclareContract=N;
@@ -1,15 +1,15 @@
1
1
  import { constants as r, isSierra as e } from "starknet";
2
- import { isEqualAddress as o } from "../chains/starknet/address.js";
3
- import { ETH_TOKEN_ADDRESS as T } from "../chains/starknet/constants.js";
4
2
  import { classHashSupportsTxV3 as n } from "./txv3.js";
3
+ import { ETH_TOKEN_ADDRESS as o } from "../chains/starknet/constants.js";
4
+ import { isEqualAddress as T } from "../chains/starknet/address.js";
5
5
  function R(N) {
6
- return o(N, T) ? r.TRANSACTION_VERSION.V1 : r.TRANSACTION_VERSION.V3;
6
+ return T(N, o) ? r.TRANSACTION_VERSION.V1 : r.TRANSACTION_VERSION.V3;
7
7
  }
8
8
  function I(N) {
9
- return o(N, T) ? r.TRANSACTION_VERSION.F1 : r.TRANSACTION_VERSION.F3;
9
+ return T(N, o) ? r.TRANSACTION_VERSION.F1 : r.TRANSACTION_VERSION.F3;
10
10
  }
11
11
  function i(N, t) {
12
- return e(t.contract) ? o(N, T) ? r.TRANSACTION_VERSION.V2 : r.TRANSACTION_VERSION.V3 : r.TRANSACTION_VERSION.V1;
12
+ return e(t.contract) ? T(N, o) ? r.TRANSACTION_VERSION.V2 : r.TRANSACTION_VERSION.V3 : r.TRANSACTION_VERSION.V1;
13
13
  }
14
14
  const E = ({ classHash: N }) => N && !n(N) ? r.TRANSACTION_VERSION.V1 : r.TRANSACTION_VERSION.V3, c = ({ classHash: N }, t) => e(t.contract) ? N && !n(N) ? r.TRANSACTION_VERSION.V2 : r.TRANSACTION_VERSION.V3 : r.TRANSACTION_VERSION.V1;
15
15
  export {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../chains/starknet/address.cjs"),r=require("../chains/starknet/constants.cjs"),o=require("../chains/starknet/services/deploymentData/getAccountClassHash.cjs"),u=[r.STRK_TOKEN_ADDRESS];function n({address:e}){return u.some(s=>t.isEqualAddress(e,s))}function a(e){return e?o.getArgentAccountClassHashesWithTxV3Support().some(s=>t.isEqualAddress(s,e)):!1}exports.classHashSupportsTxV3=a;exports.feeTokenNeedsTxV3Support=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../chains/starknet/services/deploymentData/getAccountClassHash.cjs"),o=require("../chains/starknet/constants.cjs"),t=require("../chains/starknet/address.cjs"),u=[o.STRK_TOKEN_ADDRESS];function n({address:e}){return u.some(s=>t.isEqualAddress(e,s))}function a(e){return e?r.getArgentAccountClassHashesWithTxV3Support().some(s=>t.isEqualAddress(s,e)):!1}exports.classHashSupportsTxV3=a;exports.feeTokenNeedsTxV3Support=n;
@@ -1,12 +1,12 @@
1
+ import { getArgentAccountClassHashesWithTxV3Support as t } from "../chains/starknet/services/deploymentData/getAccountClassHash.js";
2
+ import { STRK_TOKEN_ADDRESS as s } from "../chains/starknet/constants.js";
1
3
  import { isEqualAddress as o } from "../chains/starknet/address.js";
2
- import { STRK_TOKEN_ADDRESS as t } from "../chains/starknet/constants.js";
3
- import { getArgentAccountClassHashesWithTxV3Support as s } from "../chains/starknet/services/deploymentData/getAccountClassHash.js";
4
- const n = [t];
4
+ const n = [s];
5
5
  function f({ address: r }) {
6
6
  return n.some((e) => o(r, e));
7
7
  }
8
8
  function m(r) {
9
- return r ? s().some((e) => o(e, r)) : !1;
9
+ return r ? t().some((e) => o(e, r)) : !1;
10
10
  }
11
11
  export {
12
12
  m as classHashSupportsTxV3,
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../node_modules/.pnpm/i18next@24.2.3_typescript@5.7.3/node_modules/i18next/dist/esm/i18next.cjs"),t=require("../locales/en/translation.json.cjs"),n=require("../../node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/initReactI18next.cjs"),a={en:{translation:t.default}};e.default.use(n.initReactI18next).init({resources:a,lng:"en",fallbackLng:"en",interpolation:{escapeValue:!1}});exports.default=e.default;
@@ -0,0 +1,2 @@
1
+ import { default as i18next } from 'i18next';
2
+ export default i18next;
@@ -0,0 +1,21 @@
1
+ import n from "../../node_modules/.pnpm/i18next@24.2.3_typescript@5.7.3/node_modules/i18next/dist/esm/i18next.js";
2
+ import e from "../locales/en/translation.json.js";
3
+ import { initReactI18next as t } from "../../node_modules/.pnpm/react-i18next@15.4.1_i18next@24.2.3_typescript@5.7.3__react@19.1.0/node_modules/react-i18next/dist/es/initReactI18next.js";
4
+ const a = {
5
+ en: {
6
+ translation: e
7
+ }
8
+ };
9
+ n.use(t).init({
10
+ resources: a,
11
+ lng: "en",
12
+ // Default language
13
+ fallbackLng: "en",
14
+ interpolation: {
15
+ escapeValue: !1
16
+ // React already escapes values
17
+ }
18
+ });
19
+ export {
20
+ n as default
21
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@argent/x-shared",
3
- "version": "1.66.3",
3
+ "version": "1.66.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/argentlabs/x-shared.git"
@@ -50,7 +50,9 @@
50
50
  "test": "vitest run",
51
51
  "test:watch": "vitest",
52
52
  "prepare": "husky",
53
- "format:fix": "prettier . --ignore-unknown --write"
53
+ "format:fix": "prettier . --ignore-unknown --write",
54
+ "i18n:langchain": "node --loader ts-node/esm --experimental-specifier-resolution=node --no-warnings src/scripts/langchain-localize.ts",
55
+ "i18n:upload": "node --loader ts-node/esm --experimental-specifier-resolution=node --no-warnings src/scripts/upload-translation.ts"
54
56
  },
55
57
  "devDependencies": {
56
58
  "@amplitude/analytics-types": "2.8.4",
@@ -64,6 +66,8 @@
64
66
  "@types/ua-parser-js": "0.7.39",
65
67
  "@typescript-eslint/eslint-plugin": "8.23.0",
66
68
  "@typescript-eslint/parser": "8.23.0",
69
+ "esbuild": "^0.20.0",
70
+ "esbuild-register": "^3.5.0",
67
71
  "eslint": "8.57.1",
68
72
  "eslint-config-prettier": "10.0.1",
69
73
  "eslint-plugin-import": "2.31.0",
@@ -72,7 +76,9 @@
72
76
  "msw": "2.7.0",
73
77
  "prettier": "3.4.2",
74
78
  "semantic-release": "24.2.1",
79
+ "ts-node": "^10.9.2",
75
80
  "ts-to-zod": "3.15.0",
81
+ "tsx": "^4.7.0",
76
82
  "typescript": "5.7.3",
77
83
  "vite": "6.0.11",
78
84
  "vite-plugin-dts": "4.5.0",
@@ -80,14 +86,23 @@
80
86
  },
81
87
  "dependencies": {
82
88
  "@argent/x-multicall": "^7.1.0",
89
+ "@langchain/core": "^0.3.43",
90
+ "@langchain/google-genai": "^0.2.2",
91
+ "@lokalise/node-api": "^14.2.1",
83
92
  "@noble/hashes": "^1.3.1",
84
93
  "@starknet-io/types-js": "^0.7.7",
94
+ "@types/fs-extra": "^11.0.4",
85
95
  "big-decimal-number": "npm:bignumber.js@^9.1.2",
96
+ "dotenv": "^16.4.7",
97
+ "fs-extra": "^11.3.0",
98
+ "i18next": "^24.2.3",
86
99
  "micro-starknet": "^0.2.3",
87
100
  "numeral": "2.0.6",
101
+ "react-i18next": "^15.4.1",
88
102
  "starknet": "6.21.1",
89
103
  "starknet4-deprecated": "npm:starknet@4.4.0",
90
- "starknet5": "npm:starknet@5.25.0"
104
+ "starknet5": "npm:starknet@5.25.0",
105
+ "zod-to-json-schema": "^3.24.5"
91
106
  },
92
107
  "peerDependencies": {
93
108
  "@scure/base": "^1.1.1",