@argent/x-shared 1.67.4 → 1.69.0
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.
- package/dist/index.cjs +1 -1
- package/dist/index.js +458 -451
- package/dist/src/chains/starknet/address.cjs +1 -1
- package/dist/src/chains/starknet/address.d.ts +2 -0
- package/dist/src/chains/starknet/address.js +68 -60
- package/dist/src/currencyFetchService/CurrencyFetchService.cjs +1 -0
- package/dist/src/currencyFetchService/CurrencyFetchService.d.ts +9 -0
- package/dist/src/currencyFetchService/CurrencyFetchService.js +19 -0
- package/dist/src/currencyFetchService/ICurrencyFetchService.d.ts +4 -0
- package/dist/src/currencyFetchService/index.d.ts +3 -0
- package/dist/src/currencyFetchService/types.ts.cjs +1 -0
- package/dist/src/currencyFetchService/types.ts.d.ts +51 -0
- package/dist/src/currencyFetchService/types.ts.js +13 -0
- package/dist/src/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("lodash-es"),n=require("starknet"),d=require("zod"),v=require("../../utils/base58.cjs"),f=d.z.string().refine(e=>{if(e.toLowerCase()===e)return!0;try{return n.validateChecksumAddress(e)&&B(e)}catch{}return!1},()=>({message:"Invalid address (checksum error)"})),y=d.z.string().refine(e=>{try{return n.validateAndParseAddress(e)}catch{}return!1},()=>({message:"Invalid address (validation error)"})),c=d.z.string().regex(/^0x[0-9a-fA-F]+$/,"Invalid address"),p=c.min(50,"Address must at least be 50 characters long").max(66,"Address must at most be 66 characters long"),P=c.length(66,"Address must be 66 characters long"),h=p.pipe(f).transform(e=>`0x${(e.startsWith("0x")?e.slice(2):e).padStart(64,"0")}`),E=h.or(d.z.literal("")).transform(e=>e===""?void 0:e).optional(),b=c.transform(e=>`0x${e.replace(/^0x/,"").toLowerCase().padStart(64,"0")}`),l=e=>d.z.string().refine(s=>{if(s.toLowerCase()===s)return!0;try{return n.validateChecksumAddress(s)&&B(s)}catch{}return!1},()=>({message:e("validation.address.invalidChecksum")})),x=e=>d.z.string().refine(s=>{try{return n.validateAndParseAddress(s)}catch{}return!1},()=>({message:e("validation.address.validationError")})),o=e=>d.z.string().regex(/^0x[0-9a-fA-F]+$/,e("validation.address.invalidFormat")),u=e=>o(e).min(50,e("validation.address.tooShort")).max(66,e("validation.address.tooLong")),L=e=>o(e).length(66,e("validation.address.exactLength")),g=e=>{const s=u(e),r=l(e);return s.pipe(r).transform(t=>`0x${(t.startsWith("0x")?t.slice(2):t).padStart(64,"0")}`)},w=e=>g(e).or(d.z.literal("")).transform(r=>r===""?void 0:r).optional(),z=e=>o(e).transform(r=>`0x${r.replace(/^0x/,"").toLowerCase().padStart(64,"0")}`),V=e=>({validChecksumAddressSchema:l(e),validateAddressRangeSchema:x(e),addressSchemaBase:o(e),addressSchemaLooseLength:u(e),addressSchemaStrictLength:L(e),addressSchema:g(e),addressOrEmptyUndefinedSchema:w(e),addressSchemaArgentBackend:z(e)}),C=e=>h.safeParse(e).success,$=C,A=e=>n.getChecksumAddress(e),F=e=>{if(!e)return!1;try{const s=v.decodeBase58(e);return $(s)}catch{return!1}},O=e=>{const s=A(e),r=s.slice(0,2),t=s.slice(2,6),a=s.slice(-4);return`${r}${t}…${a}`},T=e=>{const s=A(e),r=s.slice(0,2),a=s.slice(2).match(/.{1,4}/g)||[];return`${r} ${a.join(" ")}`},B=e=>!/^0x[0-9a-f]{63,64}$/.test(e),i=e=>e.toLowerCase().replace(/^[0x]+/,""),m=e=>{try{return/^(0x)?[0-9a-f]+$/i.test(e)}catch{}return!1},k=(e,s)=>{try{return!e||!s||!m(e)||!m(s)?!1:i(e)===i(s)}catch{}return!1},q=e=>{try{return n.num.toBigInt(c.parse(e))===n.constants.ZERO}catch{}return!1},R=(e,s)=>!!(s!=null&&s.some(r=>k(r,e))),U=S.memoize(e=>{const s=e.slice(0,6),r=e.slice(-4);return`${s}…${r}`}),Z=S.memoize((e,s)=>{if(e.length<s)return e;const r=Math.floor((s-1)/2),t=e.slice(0,r),a=e.slice(-r);return`${t}…${a}`});exports.addressOrEmptyUndefinedSchema=E;exports.addressSchema=h;exports.addressSchemaArgentBackend=b;exports.addressSchemaBase=c;exports.addressSchemaLooseLength=p;exports.addressSchemaStrictLength=P;exports.formatFullAddress=T;exports.formatTruncatedAddress=O;exports.formatTruncatedSignerKey=U;exports.formatTruncatedString=Z;exports.getAddressOrEmptyUndefinedSchema=w;exports.getAddressSchema=g;exports.getAddressSchemaArgentBackend=z;exports.getAddressSchemaBase=o;exports.getAddressSchemaLooseLength=u;exports.getAddressSchemaStrictLength=L;exports.getAddressValidationSchemas=V;exports.getValidChecksumAddressSchema=l;exports.getValidateAddressRangeSchema=x;exports.includesAddress=R;exports.isAddress=C;exports.isBase58Address=F;exports.isEqualAddress=k;exports.isValidAddress=$;exports.isValidHexString=m;exports.isZeroAddress=q;exports.normalizeAddress=A;exports.normalizeAddressForCompare=i;exports.validChecksumAddressSchema=f;exports.validateAddressRangeSchema=y;
|
|
@@ -35,6 +35,8 @@ export declare const normalizeAddress: (address: string) => Address;
|
|
|
35
35
|
export declare const isBase58Address: (string?: string) => boolean;
|
|
36
36
|
export declare const formatTruncatedAddress: (address: string) => string;
|
|
37
37
|
export declare const formatFullAddress: (address: string) => string;
|
|
38
|
+
export declare const normalizeAddressForCompare: (address: string) => string;
|
|
39
|
+
export declare const isValidHexString: (address: string) => boolean;
|
|
38
40
|
export declare const isEqualAddress: (a?: string, b?: string) => boolean;
|
|
39
41
|
export declare const isZeroAddress: (address: string) => boolean;
|
|
40
42
|
export declare const includesAddress: (needle: string, haystack?: string[]) => boolean;
|
|
@@ -1,110 +1,118 @@
|
|
|
1
|
-
import { memoize as
|
|
2
|
-
import { validateChecksumAddress as
|
|
1
|
+
import { memoize as m } from "lodash-es";
|
|
2
|
+
import { validateChecksumAddress as h, validateAndParseAddress as l, getChecksumAddress as x, num as L, constants as w } from "starknet";
|
|
3
3
|
import { z as a } from "zod";
|
|
4
|
-
import { decodeBase58 as
|
|
5
|
-
const
|
|
4
|
+
import { decodeBase58 as $ } from "../../utils/base58.js";
|
|
5
|
+
const C = a.string().refine((e) => {
|
|
6
6
|
if (e.toLowerCase() === e)
|
|
7
7
|
return !0;
|
|
8
8
|
try {
|
|
9
|
-
return
|
|
9
|
+
return h(e) && p(e);
|
|
10
10
|
} catch {
|
|
11
11
|
}
|
|
12
12
|
return !1;
|
|
13
|
-
}, () => ({ message: "Invalid address (checksum error)" })),
|
|
13
|
+
}, () => ({ message: "Invalid address (checksum error)" })), Z = a.string().refine((e) => {
|
|
14
14
|
try {
|
|
15
|
-
return
|
|
15
|
+
return l(e);
|
|
16
16
|
} catch {
|
|
17
17
|
}
|
|
18
18
|
return !1;
|
|
19
|
-
}, () => ({ message: "Invalid address (validation error)" })), n = a.string().regex(/^0x[0-9a-fA-F]+$/, "Invalid address"),
|
|
19
|
+
}, () => ({ message: "Invalid address (validation error)" })), n = a.string().regex(/^0x[0-9a-fA-F]+$/, "Invalid address"), B = n.min(50, "Address must at least be 50 characters long").max(66, "Address must at most be 66 characters long"), T = n.length(66, "Address must be 66 characters long"), u = B.pipe(C).transform((e) => `0x${(e.startsWith("0x") ? e.slice(2) : e).padStart(64, "0")}`), U = u.or(a.literal("")).transform((e) => e === "" ? void 0 : e).optional(), W = n.transform((e) => `0x${e.replace(/^0x/, "").toLowerCase().padStart(64, "0")}`), f = (e) => a.string().refine((s) => {
|
|
20
20
|
if (s.toLowerCase() === s)
|
|
21
21
|
return !0;
|
|
22
22
|
try {
|
|
23
|
-
return
|
|
23
|
+
return h(s) && p(s);
|
|
24
24
|
} catch {
|
|
25
25
|
}
|
|
26
26
|
return !1;
|
|
27
|
-
}, () => ({ message: e("validation.address.invalidChecksum") })),
|
|
27
|
+
}, () => ({ message: e("validation.address.invalidChecksum") })), P = (e) => a.string().refine((s) => {
|
|
28
28
|
try {
|
|
29
|
-
return
|
|
29
|
+
return l(s);
|
|
30
30
|
} catch {
|
|
31
31
|
}
|
|
32
32
|
return !1;
|
|
33
|
-
}, () => ({ message: e("validation.address.validationError") })), o = (e) => a.string().regex(/^0x[0-9a-fA-F]+$/, e("validation.address.invalidFormat")),
|
|
34
|
-
const s =
|
|
33
|
+
}, () => ({ message: e("validation.address.validationError") })), o = (e) => a.string().regex(/^0x[0-9a-fA-F]+$/, e("validation.address.invalidFormat")), g = (e) => o(e).min(50, e("validation.address.tooShort")).max(66, e("validation.address.tooLong")), v = (e) => o(e).length(66, e("validation.address.exactLength")), S = (e) => {
|
|
34
|
+
const s = g(e), r = f(e);
|
|
35
35
|
return s.pipe(r).transform((t) => `0x${(t.startsWith("0x") ? t.slice(2) : t).padStart(64, "0")}`);
|
|
36
|
-
},
|
|
37
|
-
validChecksumAddressSchema:
|
|
38
|
-
validateAddressRangeSchema:
|
|
36
|
+
}, k = (e) => S(e).or(a.literal("")).transform((r) => r === "" ? void 0 : r).optional(), b = (e) => o(e).transform((r) => `0x${r.replace(/^0x/, "").toLowerCase().padStart(64, "0")}`), j = (e) => ({
|
|
37
|
+
validChecksumAddressSchema: f(e),
|
|
38
|
+
validateAddressRangeSchema: P(e),
|
|
39
39
|
addressSchemaBase: o(e),
|
|
40
|
-
addressSchemaLooseLength:
|
|
41
|
-
addressSchemaStrictLength:
|
|
42
|
-
addressSchema:
|
|
43
|
-
addressOrEmptyUndefinedSchema:
|
|
44
|
-
addressSchemaArgentBackend:
|
|
45
|
-
}),
|
|
40
|
+
addressSchemaLooseLength: g(e),
|
|
41
|
+
addressSchemaStrictLength: v(e),
|
|
42
|
+
addressSchema: S(e),
|
|
43
|
+
addressOrEmptyUndefinedSchema: k(e),
|
|
44
|
+
addressSchemaArgentBackend: b(e)
|
|
45
|
+
}), y = (e) => u.safeParse(e).success, E = y, A = (e) => x(e), q = (e) => {
|
|
46
46
|
if (!e)
|
|
47
47
|
return !1;
|
|
48
48
|
try {
|
|
49
|
-
const s =
|
|
50
|
-
return
|
|
49
|
+
const s = $(e);
|
|
50
|
+
return E(s);
|
|
51
51
|
} catch {
|
|
52
52
|
return !1;
|
|
53
53
|
}
|
|
54
|
-
},
|
|
55
|
-
const s =
|
|
54
|
+
}, H = (e) => {
|
|
55
|
+
const s = A(e), r = s.slice(0, 2), t = s.slice(2, 6), d = s.slice(-4);
|
|
56
56
|
return `${r}${t}…${d}`;
|
|
57
|
-
},
|
|
58
|
-
const s =
|
|
57
|
+
}, M = (e) => {
|
|
58
|
+
const s = A(e), r = s.slice(0, 2), d = s.slice(2).match(/.{1,4}/g) || [];
|
|
59
59
|
return `${r} ${d.join(" ")}`;
|
|
60
|
-
},
|
|
60
|
+
}, p = (e) => !/^0x[0-9a-f]{63,64}$/.test(e), c = (e) => e.toLowerCase().replace(/^[0x]+/, ""), i = (e) => {
|
|
61
61
|
try {
|
|
62
|
-
return
|
|
62
|
+
return /^(0x)?[0-9a-f]+$/i.test(e);
|
|
63
63
|
} catch {
|
|
64
64
|
}
|
|
65
65
|
return !1;
|
|
66
|
-
},
|
|
66
|
+
}, z = (e, s) => {
|
|
67
67
|
try {
|
|
68
|
-
return
|
|
68
|
+
return !e || !s || !i(e) || !i(s) ? !1 : c(e) === c(s);
|
|
69
69
|
} catch {
|
|
70
70
|
}
|
|
71
71
|
return !1;
|
|
72
|
-
},
|
|
72
|
+
}, D = (e) => {
|
|
73
|
+
try {
|
|
74
|
+
return L.toBigInt(n.parse(e)) === w.ZERO;
|
|
75
|
+
} catch {
|
|
76
|
+
}
|
|
77
|
+
return !1;
|
|
78
|
+
}, G = (e, s) => !!(s != null && s.some((r) => z(r, e))), J = m((e) => {
|
|
73
79
|
const s = e.slice(0, 6), r = e.slice(-4);
|
|
74
80
|
return `${s}…${r}`;
|
|
75
|
-
}),
|
|
81
|
+
}), K = m((e, s) => {
|
|
76
82
|
if (e.length < s)
|
|
77
83
|
return e;
|
|
78
84
|
const r = Math.floor((s - 1) / 2), t = e.slice(0, r), d = e.slice(-r);
|
|
79
85
|
return `${t}…${d}`;
|
|
80
86
|
});
|
|
81
87
|
export {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
U as addressOrEmptyUndefinedSchema,
|
|
89
|
+
u as addressSchema,
|
|
90
|
+
W as addressSchemaArgentBackend,
|
|
85
91
|
n as addressSchemaBase,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
B as addressSchemaLooseLength,
|
|
93
|
+
T as addressSchemaStrictLength,
|
|
94
|
+
M as formatFullAddress,
|
|
95
|
+
H as formatTruncatedAddress,
|
|
96
|
+
J as formatTruncatedSignerKey,
|
|
97
|
+
K as formatTruncatedString,
|
|
98
|
+
k as getAddressOrEmptyUndefinedSchema,
|
|
99
|
+
S as getAddressSchema,
|
|
100
|
+
b as getAddressSchemaArgentBackend,
|
|
95
101
|
o as getAddressSchemaBase,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
g as getAddressSchemaLooseLength,
|
|
103
|
+
v as getAddressSchemaStrictLength,
|
|
104
|
+
j as getAddressValidationSchemas,
|
|
105
|
+
f as getValidChecksumAddressSchema,
|
|
106
|
+
P as getValidateAddressRangeSchema,
|
|
107
|
+
G as includesAddress,
|
|
108
|
+
y as isAddress,
|
|
109
|
+
q as isBase58Address,
|
|
110
|
+
z as isEqualAddress,
|
|
111
|
+
E as isValidAddress,
|
|
112
|
+
i as isValidHexString,
|
|
113
|
+
D as isZeroAddress,
|
|
114
|
+
A as normalizeAddress,
|
|
115
|
+
c as normalizeAddressForCompare,
|
|
116
|
+
C as validChecksumAddressSchema,
|
|
117
|
+
Z as validateAddressRangeSchema
|
|
110
118
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./types.ts.cjs");class s{constructor(r="",e){this.argentCurrencyUrl=r,this.httpService=e}async getCurrencies(){const r=await this.httpService.get(this.argentCurrencyUrl,{headers:{"Content-Type":"application/json"}}),e=t.currenciesDetailsSchema.safeParse(r);if(!e.success)throw new Error("Invalid response from currency API");return e.data}}exports.CurrencyFetchService=s;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IHttpService } from '../http/IHttpService';
|
|
2
|
+
import { ICurrencyFetchService } from './ICurrencyFetchService';
|
|
3
|
+
import { CurrenciesDetails } from './types.ts';
|
|
4
|
+
export declare class CurrencyFetchService implements ICurrencyFetchService {
|
|
5
|
+
private readonly argentCurrencyUrl;
|
|
6
|
+
private readonly httpService;
|
|
7
|
+
constructor(argentCurrencyUrl: string | undefined, httpService: IHttpService);
|
|
8
|
+
getCurrencies(): Promise<CurrenciesDetails>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { currenciesDetailsSchema as s } from "./types.ts.js";
|
|
2
|
+
class n {
|
|
3
|
+
constructor(r = "", e) {
|
|
4
|
+
this.argentCurrencyUrl = r, this.httpService = e;
|
|
5
|
+
}
|
|
6
|
+
async getCurrencies() {
|
|
7
|
+
const r = await this.httpService.get(this.argentCurrencyUrl, {
|
|
8
|
+
headers: {
|
|
9
|
+
"Content-Type": "application/json"
|
|
10
|
+
}
|
|
11
|
+
}), e = s.safeParse(r);
|
|
12
|
+
if (!e.success)
|
|
13
|
+
throw new Error("Invalid response from currency API");
|
|
14
|
+
return e.data;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
n as CurrencyFetchService
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("zod"),c=e.z.object({code:e.z.string(),symbol:e.z.string(),name:e.z.string(),decimals:e.z.number()}),r=e.z.object({currencies:e.z.array(c)});exports.currenciesDetailsSchema=r;exports.currencyDetailsSchema=c;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const currencyDetailsSchema: z.ZodObject<{
|
|
3
|
+
code: z.ZodString;
|
|
4
|
+
symbol: z.ZodString;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
decimals: z.ZodNumber;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
symbol: string;
|
|
9
|
+
code: string;
|
|
10
|
+
name: string;
|
|
11
|
+
decimals: number;
|
|
12
|
+
}, {
|
|
13
|
+
symbol: string;
|
|
14
|
+
code: string;
|
|
15
|
+
name: string;
|
|
16
|
+
decimals: number;
|
|
17
|
+
}>;
|
|
18
|
+
export type CurrencyDetails = z.infer<typeof currencyDetailsSchema>;
|
|
19
|
+
export declare const currenciesDetailsSchema: z.ZodObject<{
|
|
20
|
+
currencies: z.ZodArray<z.ZodObject<{
|
|
21
|
+
code: z.ZodString;
|
|
22
|
+
symbol: z.ZodString;
|
|
23
|
+
name: z.ZodString;
|
|
24
|
+
decimals: z.ZodNumber;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
symbol: string;
|
|
27
|
+
code: string;
|
|
28
|
+
name: string;
|
|
29
|
+
decimals: number;
|
|
30
|
+
}, {
|
|
31
|
+
symbol: string;
|
|
32
|
+
code: string;
|
|
33
|
+
name: string;
|
|
34
|
+
decimals: number;
|
|
35
|
+
}>, "many">;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
currencies: {
|
|
38
|
+
symbol: string;
|
|
39
|
+
code: string;
|
|
40
|
+
name: string;
|
|
41
|
+
decimals: number;
|
|
42
|
+
}[];
|
|
43
|
+
}, {
|
|
44
|
+
currencies: {
|
|
45
|
+
symbol: string;
|
|
46
|
+
code: string;
|
|
47
|
+
name: string;
|
|
48
|
+
decimals: number;
|
|
49
|
+
}[];
|
|
50
|
+
}>;
|
|
51
|
+
export type CurrenciesDetails = z.infer<typeof currenciesDetailsSchema>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z as e } from "zod";
|
|
2
|
+
const r = e.object({
|
|
3
|
+
code: e.string(),
|
|
4
|
+
symbol: e.string(),
|
|
5
|
+
name: e.string(),
|
|
6
|
+
decimals: e.number()
|
|
7
|
+
}), s = e.object({
|
|
8
|
+
currencies: e.array(r)
|
|
9
|
+
});
|
|
10
|
+
export {
|
|
11
|
+
s as currenciesDetailsSchema,
|
|
12
|
+
r as currencyDetailsSchema
|
|
13
|
+
};
|
package/dist/src/index.d.ts
CHANGED