@faremeter/payment-evm 0.6.0 → 0.8.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.
@@ -1,7 +1,10 @@
1
1
  import type { PaymentHandler } from "@faremeter/types/client";
2
2
  import type { Hex } from "viem";
3
3
  interface WalletForPayment {
4
- network: string;
4
+ chain: {
5
+ id: number;
6
+ name: string;
7
+ };
5
8
  address: Hex;
6
9
  account: {
7
10
  signTypedData: (params: {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/exact/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAWhC,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE;QACP,aAAa,EAAE,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/B,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAClC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACpB,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CA+G7E"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/exact/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAWhC,UAAU,gBAAgB;IACxB,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE;QACP,aAAa,EAAE,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/B,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAClC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACpB,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CAkG7E"}
@@ -1,22 +1,16 @@
1
1
  import { randomBytes } from "crypto";
2
- import { isKnownNetwork, lookupKnownNetwork, lookupKnownAsset, } from "@faremeter/info/evm";
2
+ import { lookupX402Network, lookupKnownAsset } from "@faremeter/info/evm";
3
3
  import { isAddress } from "viem";
4
4
  import { type } from "arktype";
5
5
  import { X402_EXACT_SCHEME, EIP712_TYPES, eip712Domain, } from "./constants.js";
6
6
  export function createPaymentHandler(wallet) {
7
- if (!isKnownNetwork(wallet.network)) {
8
- throw new Error(`Wallet was created for unsupported network '${wallet.network}'`);
9
- }
10
- const networkInfo = lookupKnownNetwork(wallet.network);
11
- if (!networkInfo) {
12
- throw new Error(`Couldn't look up network info for network '${wallet.network}'`);
13
- }
14
- const assetInfo = lookupKnownAsset(wallet.network, "USDC");
7
+ const x402Network = lookupX402Network(wallet.chain.id);
8
+ const assetInfo = lookupKnownAsset(wallet.chain.id, "USDC");
15
9
  if (!assetInfo) {
16
- throw new Error(`Couldn't look up USDC information on network '${wallet.network}'`);
10
+ throw new Error(`Couldn't look up USDC information on network '${x402Network}'`);
17
11
  }
18
12
  return async function handlePayment(context, accepts) {
19
- const compatibleRequirements = accepts.filter((req) => req.scheme === X402_EXACT_SCHEME && req.network === wallet.network);
13
+ const compatibleRequirements = accepts.filter((req) => req.scheme === X402_EXACT_SCHEME && req.network === x402Network);
20
14
  return compatibleRequirements.map((requirements) => ({
21
15
  requirements,
22
16
  exec: async () => {
@@ -43,19 +37,17 @@ export function createPaymentHandler(wallet) {
43
37
  if (extraResult instanceof type.errors) {
44
38
  throw new Error(`Invalid EIP-712 domain parameters: ${extraResult.summary}`);
45
39
  }
40
+ const verifyingContract = extraResult.verifyingContract ??
41
+ requirements.asset ??
42
+ assetInfo.address;
43
+ if (!isAddress(verifyingContract)) {
44
+ throw new Error(`Invalid verifying contract: ${verifyingContract}`);
45
+ }
46
46
  const domain = {
47
- name: extraResult.name ?? assetInfo.name,
47
+ name: extraResult.name ?? assetInfo.contractName,
48
48
  version: extraResult.version ?? "2",
49
- chainId: extraResult.chainId ?? networkInfo.chainId,
50
- verifyingContract: (() => {
51
- const asset = extraResult.verifyingContract ??
52
- requirements.asset ??
53
- assetInfo.address;
54
- if (!isAddress(asset)) {
55
- throw new Error(`Invalid asset address: ${asset}`);
56
- }
57
- return asset;
58
- })(),
49
+ chainId: extraResult.chainId ?? wallet.chain.id,
50
+ verifyingContract,
59
51
  };
60
52
  const types = EIP712_TYPES;
61
53
  // Message for EIP-712 signing (using BigInt for signing)
@@ -0,0 +1,18 @@
1
+ import type { PublicClient, Hex } from "viem";
2
+ export declare function generateDomain(publicClient: PublicClient, chainId: number, asset: Hex): Promise<{
3
+ name: string;
4
+ version: string;
5
+ chainId: number;
6
+ verifyingContract: `0x${string}`;
7
+ }>;
8
+ export declare function generateForwarderDomain(chainId: number, domainInfo: {
9
+ version: string;
10
+ name: string;
11
+ verifyingContract: `0x${string}`;
12
+ }): {
13
+ chainId: number;
14
+ version: string;
15
+ name: string;
16
+ verifyingContract: `0x${string}`;
17
+ };
18
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/exact/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAI9C,wBAAsB,cAAc,CAClC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG;;;;;GA8BX;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;CAClC;;aAHU,MAAM;UACT,MAAM;uBACO,KAAK,MAAM,EAAE;EAOnC"}
@@ -0,0 +1,36 @@
1
+ import { TRANSFER_WITH_AUTHORIZATION_ABI } from "./constants.js";
2
+ export async function generateDomain(publicClient, chainId, asset) {
3
+ // Read domain parameters from chain
4
+ let tokenName;
5
+ let tokenVersion;
6
+ try {
7
+ [tokenName, tokenVersion] = await Promise.all([
8
+ publicClient.readContract({
9
+ address: asset,
10
+ abi: TRANSFER_WITH_AUTHORIZATION_ABI,
11
+ functionName: "name",
12
+ }),
13
+ publicClient.readContract({
14
+ address: asset,
15
+ abi: TRANSFER_WITH_AUTHORIZATION_ABI,
16
+ functionName: "version",
17
+ }),
18
+ ]);
19
+ }
20
+ catch (cause) {
21
+ throw new Error("Failed to read contract parameters", { cause });
22
+ }
23
+ const domain = {
24
+ name: tokenName,
25
+ version: tokenVersion,
26
+ chainId,
27
+ verifyingContract: asset,
28
+ };
29
+ return domain;
30
+ }
31
+ export function generateForwarderDomain(chainId, domainInfo) {
32
+ return {
33
+ ...domainInfo,
34
+ chainId,
35
+ };
36
+ }
@@ -1,5 +1,4 @@
1
1
  export declare const X402_EXACT_SCHEME = "exact";
2
- export declare const BASE_SEPOLIA_NETWORK = "base-sepolia";
3
2
  export declare const TRANSFER_WITH_AUTHORIZATION_ABI: readonly [{
4
3
  readonly name: "transferWithAuthorization";
5
4
  readonly type: "function";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/exact/constants.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDlC,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;CASf,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;;;;;;MAU3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAErE,eAAO,MAAM,YAAY;;;;;MAKvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/exact/constants.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDlC,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;CASf,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;;;;;;MAU3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAErE,eAAO,MAAM,YAAY;;;;;MAKvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,KAAK,CAAC"}
@@ -7,7 +7,6 @@ const prefixedHexString = type("string").pipe.try((x) => {
7
7
  return toHex(x);
8
8
  });
9
9
  export const X402_EXACT_SCHEME = "exact";
10
- export const BASE_SEPOLIA_NETWORK = "base-sepolia";
11
10
  export const TRANSFER_WITH_AUTHORIZATION_ABI = [
12
11
  {
13
12
  name: "transferWithAuthorization",
@@ -1,4 +1,10 @@
1
1
  import { type FacilitatorHandler } from "@faremeter/types/facilitator";
2
- import type { PublicClient, WalletClient } from "viem";
3
- export declare function createFacilitatorHandler(network: string, publicClient: PublicClient, walletClient: WalletClient, assetName: string): FacilitatorHandler;
2
+ import type { Chain, Transport } from "viem";
3
+ import { type KnownNetwork, type ContractInfo } from "@faremeter/info/evm";
4
+ type CreateFacilitatorHandlerOpts = {
5
+ network?: KnownNetwork;
6
+ transport?: Transport;
7
+ };
8
+ export declare function createFacilitatorHandler(chain: Chain, privateKey: string, assetNameOrInfo: string | ContractInfo, opts?: CreateFacilitatorHandlerOpts): Promise<FacilitatorHandler>;
9
+ export {};
4
10
  //# sourceMappingURL=facilitator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../../src/exact/facilitator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAO,YAAY,EAAW,MAAM,MAAM,CAAC;AAoCrE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAmQpB"}
1
+ {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../../src/exact/facilitator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAgB,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAY3D,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AA8B7B,KAAK,4BAA4B,GAAG;IAClC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AACF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,GAAG,YAAY,EACtC,IAAI,GAAE,4BAAiC,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAsT7B"}
@@ -1,10 +1,12 @@
1
1
  import { isValidationError, caseInsensitiveLiteral } from "@faremeter/types";
2
+ import { isPrivateKey } from "@faremeter/types/evm";
2
3
  import {} from "@faremeter/types/facilitator";
3
4
  import { type } from "arktype";
4
- import { verifyTypedData, encodeFunctionData, isAddress } from "viem";
5
- import { baseSepolia } from "viem/chains";
6
- import { isKnownAsset, lookupKnownAsset, lookupKnownNetwork, } from "@faremeter/info/evm";
7
- import { X402_EXACT_SCHEME, BASE_SEPOLIA_NETWORK, TRANSFER_WITH_AUTHORIZATION_ABI, EIP712_TYPES, x402ExactPayload, } from "./constants.js";
5
+ import { createPublicClient, createWalletClient, http, verifyTypedData, encodeFunctionData, isAddress, } from "viem";
6
+ import { privateKeyToAccount } from "viem/accounts";
7
+ import { isKnownAsset, lookupKnownAsset, lookupX402Network, } from "@faremeter/info/evm";
8
+ import { X402_EXACT_SCHEME, TRANSFER_WITH_AUTHORIZATION_ABI, EIP712_TYPES, x402ExactPayload, } from "./constants.js";
9
+ import { generateDomain, generateForwarderDomain } from "./common.js";
8
10
  function errorResponse(msg) {
9
11
  return {
10
12
  success: false,
@@ -21,25 +23,65 @@ function parseSignature(signature) {
21
23
  const v = parseInt(sig.slice(128, 130), 16);
22
24
  return { v, r, s };
23
25
  }
24
- export function createFacilitatorHandler(network, publicClient, walletClient, assetName) {
25
- if (network !== BASE_SEPOLIA_NETWORK) {
26
- throw new Error(`Unsupported network: ${network}. Only base-sepolia is supported.`);
26
+ export async function createFacilitatorHandler(chain, privateKey, assetNameOrInfo, opts = {}) {
27
+ if (!isPrivateKey(privateKey)) {
28
+ throw new Error(`Invalid private key: ${privateKey}`);
27
29
  }
28
- const networkInfo = lookupKnownNetwork(network);
29
- if (!networkInfo) {
30
- throw new Error(`Couldn't look up information for ${network}`);
31
- }
32
- if (!isKnownAsset(assetName)) {
33
- throw new Error(`Unknown asset: ${assetName}`);
30
+ const network = opts.network ?? lookupX402Network(chain.id);
31
+ const chainId = chain.id;
32
+ let assetInfo;
33
+ if (typeof assetNameOrInfo == "string") {
34
+ if (!isKnownAsset(assetNameOrInfo)) {
35
+ throw new Error(`Unknown asset: ${assetNameOrInfo}`);
36
+ }
37
+ const t = lookupKnownAsset(network, assetNameOrInfo);
38
+ if (!t) {
39
+ throw new Error(`Couldn't look up asset ${assetNameOrInfo} on ${network}`);
40
+ }
41
+ assetInfo = t;
34
42
  }
35
- const assetInfo = lookupKnownAsset(network, assetName);
36
- if (!assetInfo) {
37
- throw new Error(`Couldn't look up asset ${assetName} on ${network}`);
43
+ else {
44
+ assetInfo = assetNameOrInfo;
38
45
  }
39
46
  const asset = assetInfo.address;
47
+ const useForwarder = assetInfo.forwarder !== undefined && assetInfo.forwarderName !== undefined;
40
48
  if (!isAddress(asset)) {
41
49
  throw new Error(`Invalid asset address: ${asset}`);
42
50
  }
51
+ const transport = opts.transport ?? http(chain.rpcUrls.default.http[0]);
52
+ const account = privateKeyToAccount(privateKey);
53
+ const publicClient = createPublicClient({
54
+ chain,
55
+ transport,
56
+ });
57
+ const walletClient = createWalletClient({
58
+ account,
59
+ chain,
60
+ transport,
61
+ });
62
+ let domain;
63
+ if (useForwarder) {
64
+ if (!assetInfo.forwarder) {
65
+ throw new Error("Missing Forwarding Contract");
66
+ }
67
+ if (!assetInfo.forwarderVersion) {
68
+ throw new Error("Missing Forwarding Version");
69
+ }
70
+ if (!assetInfo.forwarderName) {
71
+ throw new Error("Missing Forwarding Name");
72
+ }
73
+ domain = generateForwarderDomain(chainId, {
74
+ version: assetInfo.forwarderVersion,
75
+ name: assetInfo.forwarderName,
76
+ verifyingContract: assetInfo.forwarder,
77
+ });
78
+ }
79
+ else {
80
+ domain = await generateDomain(publicClient, chainId, asset);
81
+ if (domain.name != assetInfo.contractName) {
82
+ throw new Error(`On chain contract name (${domain.name}) doesn't match configured asset name (${assetInfo.contractName})`);
83
+ }
84
+ }
43
85
  const checkTuple = type({
44
86
  scheme: caseInsensitiveLiteral(X402_EXACT_SCHEME),
45
87
  network: caseInsensitiveLiteral(network),
@@ -56,10 +98,10 @@ export function createFacilitatorHandler(network, publicClient, walletClient, as
56
98
  maxTimeoutSeconds: 300,
57
99
  // Provide EIP-712 domain parameters for client signing
58
100
  extra: {
59
- name: assetName,
60
- version: "2",
61
- chainId: networkInfo.chainId,
62
- verifyingContract: asset,
101
+ name: useForwarder ? assetInfo.forwarderName : assetInfo.contractName,
102
+ version: useForwarder ? assetInfo.forwarderVersion : "2",
103
+ chainId,
104
+ verifyingContract: useForwarder ? assetInfo.forwarder : asset,
63
105
  },
64
106
  }));
65
107
  };
@@ -105,7 +147,7 @@ export function createFacilitatorHandler(network, publicClient, walletClient, as
105
147
  let onChainUsed;
106
148
  try {
107
149
  onChainUsed = await publicClient.readContract({
108
- address: asset,
150
+ address: assetInfo.forwarder ?? asset,
109
151
  abi: TRANSFER_WITH_AUTHORIZATION_ABI,
110
152
  functionName: "authorizationState",
111
153
  args: [authorization.from, authorization.nonce],
@@ -117,34 +159,22 @@ export function createFacilitatorHandler(network, publicClient, walletClient, as
117
159
  if (onChainUsed) {
118
160
  return errorResponse("Authorization already used on-chain");
119
161
  }
120
- // Read domain parameters from chain
121
- let tokenName;
122
- let tokenVersion;
123
- let chainId;
124
- try {
125
- [tokenName, tokenVersion, chainId] = await Promise.all([
126
- publicClient.readContract({
127
- address: asset,
128
- abi: TRANSFER_WITH_AUTHORIZATION_ABI,
129
- functionName: "name",
130
- }),
131
- publicClient.readContract({
132
- address: asset,
133
- abi: TRANSFER_WITH_AUTHORIZATION_ABI,
134
- functionName: "version",
135
- }),
136
- publicClient.getChainId(),
137
- ]);
162
+ let domain;
163
+ if (useForwarder) {
164
+ if (!assetInfo.forwarderVersion ||
165
+ !assetInfo.forwarderName ||
166
+ !assetInfo.forwarder) {
167
+ throw new Error("Secondary Forwardign Information Missing");
168
+ }
169
+ domain = generateForwarderDomain(chainId, {
170
+ version: assetInfo.forwarderVersion,
171
+ name: assetInfo.forwarderName,
172
+ verifyingContract: assetInfo.forwarder,
173
+ });
138
174
  }
139
- catch (cause) {
140
- throw new Error("Failed to read contract parameters", { cause });
175
+ else {
176
+ domain = await generateDomain(publicClient, chainId, asset);
141
177
  }
142
- const domain = {
143
- name: tokenName,
144
- version: tokenVersion ?? "2",
145
- chainId,
146
- verifyingContract: asset,
147
- };
148
178
  const types = EIP712_TYPES;
149
179
  const message = {
150
180
  from: authorization.from,
@@ -175,7 +205,7 @@ export function createFacilitatorHandler(network, publicClient, walletClient, as
175
205
  // Verify contract supports EIP-712
176
206
  try {
177
207
  await publicClient.readContract({
178
- address: asset,
208
+ address: useForwarder ? domain.verifyingContract : asset,
179
209
  abi: TRANSFER_WITH_AUTHORIZATION_ABI,
180
210
  functionName: "DOMAIN_SEPARATOR",
181
211
  });
@@ -206,10 +236,10 @@ export function createFacilitatorHandler(network, publicClient, walletClient, as
206
236
  // Build and send the transaction
207
237
  try {
208
238
  const request = await walletClient.prepareTransactionRequest({
209
- to: asset,
239
+ to: useForwarder ? domain.verifyingContract : asset,
210
240
  data,
211
241
  account: acct,
212
- chain: baseSepolia,
242
+ chain: undefined,
213
243
  });
214
244
  const serializedTransaction = await walletClient.signTransaction(request);
215
245
  const txHash = await publicClient.sendRawTransaction({
@@ -226,7 +256,7 @@ export function createFacilitatorHandler(network, publicClient, walletClient, as
226
256
  success: true,
227
257
  error: null,
228
258
  txHash,
229
- networkId: networkInfo.chainId.toString(),
259
+ networkId: chainId.toString(),
230
260
  };
231
261
  }
232
262
  catch (cause) {
@@ -1,4 +1,4 @@
1
1
  export { createPaymentHandler } from "./client.js";
2
2
  export { createFacilitatorHandler } from "./facilitator.js";
3
- export { X402_EXACT_SCHEME, BASE_SEPOLIA_NETWORK, TRANSFER_WITH_AUTHORIZATION_ABI, EIP712_TYPES, x402ExactPayload, eip712Domain, } from "./constants.js";
3
+ export { X402_EXACT_SCHEME, TRANSFER_WITH_AUTHORIZATION_ABI, EIP712_TYPES, x402ExactPayload, eip712Domain, } from "./constants.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exact/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,+BAA+B,EAC/B,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exact/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { createPaymentHandler } from "./client.js";
2
2
  export { createFacilitatorHandler } from "./facilitator.js";
3
- export { X402_EXACT_SCHEME, BASE_SEPOLIA_NETWORK, TRANSFER_WITH_AUTHORIZATION_ABI, EIP712_TYPES, x402ExactPayload, eip712Domain, } from "./constants.js";
3
+ export { X402_EXACT_SCHEME, TRANSFER_WITH_AUTHORIZATION_ABI, EIP712_TYPES, x402ExactPayload, eip712Domain, } from "./constants.js";