@argent/x-shared 1.62.6 → 1.62.7

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("starknet"),l=require("url-join"),y=require("./types.cjs"),h=require("../../utils/starknet/starknet.cjs");class f{constructor(e="",t){this.argentRelayerUrl=e,this.httpService=t}async getExecutionData(e,t={}){const{useAvnu:n,isSubsidised:r}=t,a=l(n?this.getAvnuUrl(e.networkId):this.argentRelayerUrl,"/build-typed-data"),i={calls:n?e.calls.map(c=>({contractAddress:s.num.toHex(c.contractAddress),calldata:s.CallData.toCalldata(c.calldata).map(p=>s.num.toHex(p)),entrypoint:c.entrypoint})):e.calls,userAddress:e.accountAddress,gasTokenAddress:r?null:s.num.toHex(e.feeTokenAddress),maxGasTokenAmount:r?null:s.num.toHex(e.maxFee),accountClassHash:e.accountClassHash},o=await this.httpService.post(a,{body:s.json.stringify(i),headers:{"Content-Type":"application/json"}}),u=h.typedDataSchema.safeParse(o);if(!u.success)throw new Error("Invalid response from paymaster");return u.data}getAvnuUrl(e){if(!e)throw new Error("Network id is required for Avnu paymaster");let t="";if(e==="mainnet"||e==="mainnet-alpha")t="starknet";else if(e==="sepolia"||e==="sepolia-alpha")t="sepolia";else throw new Error("Invalid network id");return`https://${t}.api.avnu.fi/paymaster/v1`}async execute(e,t={}){const{useAvnu:n,isSubsidised:r}=t;let a=l(n?this.getAvnuUrl(e.networkId):this.argentRelayerUrl,"/execute");r&&(a=l(a,"?isSubsidised=true"));const d={signature:e.signature,userAddress:e.accountAddress,typedData:n?s.json.stringify(e.typedData):e.typedData,deploymentData:e.deploymentData},i=await this.httpService.post(a,{body:s.json.stringify(d),headers:{"Content-Type":"application/json"}}),o=y.paymasterExecuteResponse.safeParse(i);if(!o.success)throw new Error("Invalid response from paymaster");return o.data.transactionHash}}exports.PaymasterService=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("starknet"),h=require("url-join"),v=require("./types.cjs"),A=require("../../utils/starknet/starknet.cjs"),d=require("../../utils/url/urlWithQuery.cjs");class f{constructor(e="",t){this.argentRelayerUrl=e,this.httpService=t}async getExecutionData(e,t={}){const{useAvnu:n,isSubsidised:o}=t,{networkId:r}=e,u=r?{network:this.getArgentNetwork(r)}:void 0,a=n?h(this.getAvnuUrl(r),"/build-typed-data"):d.urlWithQuery([this.argentRelayerUrl,"/build-typed-data"],u),l={calls:n?e.calls.map(c=>({contractAddress:s.num.toHex(c.contractAddress),calldata:s.CallData.toCalldata(c.calldata).map(g=>s.num.toHex(g)),entrypoint:c.entrypoint})):e.calls,userAddress:e.accountAddress,gasTokenAddress:o?null:s.num.toHex(e.feeTokenAddress),maxGasTokenAmount:o?null:s.num.toHex(e.maxFee),accountClassHash:e.accountClassHash},i=await this.httpService.post(a,{body:s.json.stringify(l),headers:{"Content-Type":"application/json"}}),y=A.typedDataSchema.safeParse(i);if(!y.success)throw new Error("Invalid response from paymaster");return y.data}getArgentNetwork(e){if(e==="mainnet"||e==="mainnet-alpha")return"MAINNET";if(e==="sepolia"||e==="sepolia-alpha")return"SEPOLIA";throw new Error("Invalid network id")}getAvnuUrl(e){if(!e)throw new Error("Network id is required for Avnu paymaster");let t="";if(e==="mainnet"||e==="mainnet-alpha")t="starknet";else if(e==="sepolia"||e==="sepolia-alpha")t="sepolia";else throw new Error("Invalid network id");return`https://${t}.api.avnu.fi/paymaster/v1`}async execute(e,t={}){const{useAvnu:n,isSubsidised:o}=t,{networkId:r}=e,u=r?{network:this.getArgentNetwork(r)}:void 0;let a=n?h(this.getAvnuUrl(r),"/execute"):d.urlWithQuery([this.argentRelayerUrl,"/execute"],u);o&&(a=d.urlWithQuery(a,{isSubsidised:"true"}));const p={signature:e.signature,userAddress:e.accountAddress,typedData:n?s.json.stringify(e.typedData):e.typedData,deploymentData:e.deploymentData},l=await this.httpService.post(a,{body:s.json.stringify(p),headers:{"Content-Type":"application/json"}}),i=v.paymasterExecuteResponse.safeParse(l);if(!i.success)throw new Error("Invalid response from paymaster");return i.data.transactionHash}}exports.PaymasterService=f;
@@ -7,6 +7,7 @@ export declare class PaymasterService implements IPaymasterService {
7
7
  private readonly httpService;
8
8
  constructor(argentRelayerUrl: string | undefined, httpService: IHttpService);
9
9
  getExecutionData(params: PaymasterExecutionDataParams, options?: PaymasterOptions): Promise<TypedData>;
10
+ getArgentNetwork(networkId: string): string;
10
11
  getAvnuUrl(networkId?: string): string;
11
12
  execute(params: PaymasterExecuteParams, options?: PaymasterOptions): Promise<string>;
12
13
  }
@@ -1,31 +1,39 @@
1
- import { CallData as h, num as o, json as l } from "starknet";
2
- import c from "url-join";
3
- import { paymasterExecuteResponse as f } from "./types.js";
4
- import { typedDataSchema as m } from "../../utils/starknet/starknet.js";
5
- class b {
1
+ import { CallData as A, num as i, json as u } from "starknet";
2
+ import f from "url-join";
3
+ import { paymasterExecuteResponse as g } from "./types.js";
4
+ import { typedDataSchema as v } from "../../utils/starknet/starknet.js";
5
+ import { urlWithQuery as p } from "../../utils/url/urlWithQuery.js";
6
+ class D {
6
7
  constructor(e = "", t) {
7
8
  this.argentRelayerUrl = e, this.httpService = t;
8
9
  }
9
10
  async getExecutionData(e, t = {}) {
10
- const { useAvnu: s, isSubsidised: r } = t, a = c(s ? this.getAvnuUrl(e.networkId) : this.argentRelayerUrl, "/build-typed-data"), i = {
11
- calls: s ? e.calls.map((d) => ({
12
- contractAddress: o.toHex(d.contractAddress),
13
- calldata: h.toCalldata(d.calldata).map((y) => o.toHex(y)),
11
+ const { useAvnu: r, isSubsidised: n } = t, { networkId: s } = e, l = s ? { network: this.getArgentNetwork(s) } : void 0, a = r ? f(this.getAvnuUrl(s), "/build-typed-data") : p([this.argentRelayerUrl, "/build-typed-data"], l), c = {
12
+ calls: r ? e.calls.map((d) => ({
13
+ contractAddress: i.toHex(d.contractAddress),
14
+ calldata: A.toCalldata(d.calldata).map((m) => i.toHex(m)),
14
15
  entrypoint: d.entrypoint
15
16
  })) : e.calls,
16
17
  userAddress: e.accountAddress,
17
- gasTokenAddress: r ? null : o.toHex(e.feeTokenAddress),
18
- maxGasTokenAmount: r ? null : o.toHex(e.maxFee),
18
+ gasTokenAddress: n ? null : i.toHex(e.feeTokenAddress),
19
+ maxGasTokenAmount: n ? null : i.toHex(e.maxFee),
19
20
  accountClassHash: e.accountClassHash
20
- }, n = await this.httpService.post(a, {
21
- body: l.stringify(i),
21
+ }, o = await this.httpService.post(a, {
22
+ body: u.stringify(c),
22
23
  headers: {
23
24
  "Content-Type": "application/json"
24
25
  }
25
- }), p = m.safeParse(n);
26
- if (!p.success)
26
+ }), h = v.safeParse(o);
27
+ if (!h.success)
27
28
  throw new Error("Invalid response from paymaster");
28
- return p.data;
29
+ return h.data;
30
+ }
31
+ getArgentNetwork(e) {
32
+ if (e === "mainnet" || e === "mainnet-alpha")
33
+ return "MAINNET";
34
+ if (e === "sepolia" || e === "sepolia-alpha")
35
+ return "SEPOLIA";
36
+ throw new Error("Invalid network id");
29
37
  }
30
38
  getAvnuUrl(e) {
31
39
  if (!e)
@@ -40,25 +48,27 @@ class b {
40
48
  return `https://${t}.api.avnu.fi/paymaster/v1`;
41
49
  }
42
50
  async execute(e, t = {}) {
43
- const { useAvnu: s, isSubsidised: r } = t;
44
- let a = c(s ? this.getAvnuUrl(e.networkId) : this.argentRelayerUrl, "/execute");
45
- r && (a = c(a, "?isSubsidised=true"));
46
- const u = {
51
+ const { useAvnu: r, isSubsidised: n } = t, { networkId: s } = e, l = s ? { network: this.getArgentNetwork(s) } : void 0;
52
+ let a = r ? f(this.getAvnuUrl(s), "/execute") : p([this.argentRelayerUrl, "/execute"], l);
53
+ n && (a = p(a, {
54
+ isSubsidised: "true"
55
+ }));
56
+ const y = {
47
57
  signature: e.signature,
48
58
  userAddress: e.accountAddress,
49
- typedData: s ? l.stringify(e.typedData) : e.typedData,
59
+ typedData: r ? u.stringify(e.typedData) : e.typedData,
50
60
  deploymentData: e.deploymentData
51
- }, i = await this.httpService.post(a, {
52
- body: l.stringify(u),
61
+ }, c = await this.httpService.post(a, {
62
+ body: u.stringify(y),
53
63
  headers: {
54
64
  "Content-Type": "application/json"
55
65
  }
56
- }), n = f.safeParse(i);
57
- if (!n.success)
66
+ }), o = g.safeParse(c);
67
+ if (!o.success)
58
68
  throw new Error("Invalid response from paymaster");
59
- return n.data.transactionHash;
69
+ return o.data.transactionHash;
60
70
  }
61
71
  }
62
72
  export {
63
- b as PaymasterService
73
+ D as PaymasterService
64
74
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("zod"),e=require("../../chains/starknet/address.cjs"),t=require("../../utils/starknet/starknet.cjs"),r=require("../../backend/schema.cjs"),s=a.z.object({calls:a.z.array(t.callSchema),accountAddress:e.addressSchema,networkId:r.argentNetworkIdSchema.or(r.argentBackendNetworkIdSchema).optional(),feeTokenAddress:e.addressSchema,maxFee:t.bigNumberishSchema,accountClassHash:a.z.string().optional()}),o=a.z.object({signature:a.z.string().array(),accountAddress:e.addressSchema,typedData:t.typedDataSchema,networkId:r.argentNetworkIdSchema.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("../../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;
@@ -96,7 +96,7 @@ export declare const paymasterExecuteParams: z.ZodObject<{
96
96
  primaryType: string;
97
97
  domain: Record<string, unknown>;
98
98
  }>;
99
- networkId: z.ZodOptional<z.ZodEnum<["mainnet-alpha", "sepolia-alpha"]>>;
99
+ networkId: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["mainnet-alpha", "sepolia-alpha"]>, z.ZodEnum<["mainnet", "sepolia"]>]>>;
100
100
  deploymentData: z.ZodOptional<z.ZodObject<{
101
101
  class_hash: z.ZodOptional<z.ZodString>;
102
102
  salt: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodBigInt]>>;
@@ -133,7 +133,7 @@ export declare const paymasterExecuteParams: z.ZodObject<{
133
133
  primaryType: string;
134
134
  domain: Record<string, unknown>;
135
135
  };
136
- networkId?: "mainnet-alpha" | "sepolia-alpha" | undefined;
136
+ networkId?: "mainnet-alpha" | "sepolia-alpha" | "mainnet" | "sepolia" | undefined;
137
137
  deploymentData?: {
138
138
  calldata: string[];
139
139
  unique: string;
@@ -160,7 +160,7 @@ export declare const paymasterExecuteParams: z.ZodObject<{
160
160
  primaryType: string;
161
161
  domain: Record<string, unknown>;
162
162
  };
163
- networkId?: "mainnet-alpha" | "sepolia-alpha" | undefined;
163
+ networkId?: "mainnet-alpha" | "sepolia-alpha" | "mainnet" | "sepolia" | undefined;
164
164
  deploymentData?: {
165
165
  calldata: string[];
166
166
  unique: string;
@@ -1,19 +1,19 @@
1
1
  import { z as a } from "zod";
2
2
  import { addressSchema as t } from "../../chains/starknet/address.js";
3
- import { bigNumberishSchema as r, callSchema as o, typedDataSchema as s } from "../../utils/starknet/starknet.js";
4
- import { argentNetworkIdSchema as e, argentBackendNetworkIdSchema as n } from "../../backend/schema.js";
3
+ import { bigNumberishSchema as o, callSchema as s, typedDataSchema as n } from "../../utils/starknet/starknet.js";
4
+ import { argentNetworkIdSchema as e, argentBackendNetworkIdSchema as r } from "../../backend/schema.js";
5
5
  const d = a.object({
6
- calls: a.array(o),
6
+ calls: a.array(s),
7
7
  accountAddress: t,
8
- networkId: e.or(n).optional(),
8
+ networkId: e.or(r).optional(),
9
9
  feeTokenAddress: t,
10
- maxFee: r,
10
+ maxFee: o,
11
11
  accountClassHash: a.string().optional()
12
12
  }), l = a.object({
13
13
  signature: a.string().array(),
14
14
  accountAddress: t,
15
- typedData: s,
16
- networkId: e.optional(),
15
+ typedData: n,
16
+ networkId: e.or(r).optional(),
17
17
  deploymentData: a.object({
18
18
  class_hash: a.string().optional(),
19
19
  salt: a.string().or(a.number()).or(a.bigint()).optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@argent/x-shared",
3
- "version": "1.62.6",
3
+ "version": "1.62.7",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/argentlabs/x-shared.git"