@faremeter/rides 0.14.0 → 0.16.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/README.md CHANGED
@@ -25,7 +25,7 @@ pnpm install @faremeter/rides
25
25
 
26
26
  ## Examples
27
27
 
28
- See the [basic example](https://github.com/faremeter/faremeter/blob/main/scripts/rides-example/basic.ts) in the faremeter repository.
28
+ See the [basic example](https://github.com/faremeter/faremeter/blob/main/scripts/rides-example.ts) in the faremeter repository.
29
29
 
30
30
  ## Related Packages
31
31
 
package/dist/src/evm.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { type ContractInfo } from "@faremeter/info/evm";
2
- import { type PaymentHandler } from "@faremeter/types/client";
3
- import { type ChainInfo } from "@faremeter/types/evm";
2
+ import { type WalletAdapter } from "./types.js";
3
+ import { type Chain } from "viem";
4
4
  export declare function findNetworkAssetCombinations(networks: readonly string[], assets: readonly string[]): {
5
- chain: ChainInfo;
5
+ chain: Chain;
6
6
  contractInfo: ContractInfo[];
7
7
  }[];
8
8
  export type CreateAdapterOptions = {
@@ -10,6 +10,6 @@ export type CreateAdapterOptions = {
10
10
  assets: readonly string[];
11
11
  };
12
12
  export declare function createAdapter(opts: CreateAdapterOptions): {
13
- addLocalWallet: (input: unknown) => Promise<PaymentHandler[] | null>;
13
+ addLocalWallet: (input: unknown) => Promise<WalletAdapter[] | null>;
14
14
  } | undefined;
15
15
  //# sourceMappingURL=evm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,sBAAsB,CAAC;AASlE,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,YAAY,EAAE,CAAA;CAAE,EAAE,CAyBtD;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB;4BAQtB,OAAO;cAwBxC"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAA4B,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAa5D,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,YAAY,EAAE,CAAA;CAAE,EAAE,CAyBlD;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB;4BAQtB,OAAO;cAiDxC"}
package/dist/src/evm.js CHANGED
@@ -1,13 +1,19 @@
1
- import { lookupKnownAsset, } from "@faremeter/info/evm";
1
+ import { lookupX402Network, lookupKnownAsset, } from "@faremeter/info/evm";
2
2
  import { createLocalWallet } from "@faremeter/wallet-evm";
3
3
  import { exact } from "@faremeter/payment-evm";
4
+ import { getTokenBalance } from "@faremeter/payment-evm/erc20";
4
5
  import { isValidationError } from "@faremeter/types";
5
- import {} from "@faremeter/types/client";
6
+ import {} from "./types.js";
6
7
  import { PrivateKey } from "@faremeter/types/evm";
8
+ import { createPublicClient, http } from "viem";
7
9
  import * as chains from "viem/chains";
8
10
  const networkAliases = new Map(Object.entries({
9
11
  base: chains.base,
10
12
  "base-sepolia": chains.baseSepolia,
13
+ polygon: chains.polygon,
14
+ "polygon-amoy": chains.polygonAmoy,
15
+ monad: chains.monad,
16
+ "monad-testnet": chains.monadTestnet,
11
17
  }));
12
18
  export function findNetworkAssetCombinations(networks, assets) {
13
19
  const chains = networks
@@ -43,16 +49,40 @@ export function createAdapter(opts) {
43
49
  // We don't know what this private key is.
44
50
  return null;
45
51
  }
46
- const handlers = [];
52
+ const res = [];
47
53
  for (const { chain, contractInfo } of chains) {
54
+ const publicClient = createPublicClient({
55
+ chain,
56
+ transport: http(),
57
+ });
48
58
  for (const asset of contractInfo) {
49
59
  const wallet = await createLocalWallet(chain, privateKey);
50
- handlers.push(exact.createPaymentHandler(wallet, {
51
- asset,
52
- }));
60
+ res.push({
61
+ x402Id: [
62
+ {
63
+ scheme: "exact",
64
+ asset: asset.address,
65
+ network: lookupX402Network(chain.id),
66
+ },
67
+ ],
68
+ paymentHandler: exact.createPaymentHandler(wallet, {
69
+ asset,
70
+ }),
71
+ getBalance: async () => {
72
+ const balance = await getTokenBalance({
73
+ account: wallet.address,
74
+ asset: asset.address,
75
+ client: publicClient,
76
+ });
77
+ return {
78
+ ...balance,
79
+ name: asset.contractName,
80
+ };
81
+ },
82
+ });
53
83
  }
54
84
  }
55
- return handlers;
85
+ return res;
56
86
  },
57
87
  };
58
88
  }
@@ -6,6 +6,7 @@ export interface CreatePayerArgs {
6
6
  fetch?: typeof globalThis.fetch;
7
7
  options?: {
8
8
  fetch?: WrapOpts;
9
+ disableBalanceChecks?: boolean;
9
10
  };
10
11
  }
11
12
  export declare function createPayer(args?: CreatePayerArgs): {
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAEhB,MAAM,SAAS,CAAC;AAKjB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe;4BAiChB,OAAO;mBA2B5B,WAAW,GAAG,GAAG,SACjB,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC;EAKvB;AAED,eAAO,MAAM,KAAK;4BApCgB,OAAO;mBA2B5B,WAAW,GAAG,GAAG,SACjB,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC;CAOU,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAGhB,MAAM,SAAS,CAAC;AAKjB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAMD,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe;4BAuEhB,OAAO;mBAiC5B,WAAW,GAAG,GAAG,SACjB,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC;EAKvB;AAED,eAAO,MAAM,KAAK;4BA1CgB,OAAO;mBAiC5B,WAAW,GAAG,GAAG,SACjB,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC;CAOU,CAAC"}
@@ -1,11 +1,17 @@
1
+ import { x402PaymentId } from "@faremeter/types/x402";
2
+ import {} from "@faremeter/types/client";
3
+ import { wrap as wrapFetch, chooseFirstAvailable, } from "@faremeter/fetch";
1
4
  import {} from "@faremeter/types/client";
2
- import { wrap as wrapFetch } from "@faremeter/fetch";
3
5
  import { KnownNetworks, KnownAssets, } from "./types.js";
4
6
  import * as solana from "./solana.js";
5
7
  import * as evm from "./evm.js";
8
+ function idKey({ network, scheme, asset }) {
9
+ return `${network}\0${scheme}\0${asset}`;
10
+ }
6
11
  export function createPayer(args) {
7
12
  const { networks = KnownNetworks, assets = KnownAssets, fetch = globalThis.fetch, } = args ?? {};
8
13
  const paymentHandlers = [];
14
+ const balanceLookup = new Map();
9
15
  const adapters = [];
10
16
  for (const plugin of [solana, evm]) {
11
17
  const adapter = plugin.createAdapter({ networks, assets });
@@ -13,12 +19,37 @@ export function createPayer(args) {
13
19
  adapters.push(adapter);
14
20
  }
15
21
  }
22
+ const wrapFetchOptions = {
23
+ ...(args?.options?.fetch ?? {}),
24
+ };
25
+ if (!args?.options?.disableBalanceChecks) {
26
+ const finalChooser = args?.options?.fetch?.payerChooser ?? chooseFirstAvailable;
27
+ wrapFetchOptions.payerChooser = async function (execer) {
28
+ const viableOptions = [];
29
+ for (const e of execer) {
30
+ const req = e.requirements;
31
+ const getBalance = balanceLookup.get(idKey(req));
32
+ if (getBalance === undefined) {
33
+ continue;
34
+ }
35
+ const balance = await getBalance();
36
+ // XXX - We need to do a better job of understanding decimals here.
37
+ if (balance.amount < BigInt(req.maxAmountRequired)) {
38
+ // eslint-disable-next-line no-console
39
+ console.log(`Not paying with ${balance.name} on ${req.network} using the ${req.scheme} scheme: balance is ${balance.amount} which is less than ${req.maxAmountRequired}`);
40
+ continue;
41
+ }
42
+ viableOptions.push(e);
43
+ }
44
+ return finalChooser(viableOptions);
45
+ };
46
+ }
16
47
  const setupFetch = () => {
17
48
  if (paymentHandlers.length < 1) {
18
49
  throw new Error("no usable wallets have been attached to enable payment");
19
50
  }
20
51
  return wrapFetch(fetch, {
21
- ...(args?.options?.fetch ?? {}),
52
+ ...wrapFetchOptions,
22
53
  handlers: paymentHandlers,
23
54
  });
24
55
  };
@@ -29,18 +60,23 @@ export function createPayer(args) {
29
60
  throw new Error("undefined is not a valid local wallet");
30
61
  }
31
62
  _fetch = undefined;
32
- const newHandlers = [];
63
+ const newWallets = [];
33
64
  for (const adapter of adapters) {
34
65
  const res = await adapter.addLocalWallet(input);
35
66
  if (res === null) {
36
67
  continue;
37
68
  }
38
- newHandlers.push(...res);
69
+ newWallets.push(...res);
39
70
  }
40
- if (newHandlers.length === 0) {
71
+ if (newWallets.length === 0) {
41
72
  throw new Error("couldn't find any way to use provided local wallet information");
42
73
  }
43
- paymentHandlers.push(...newHandlers);
74
+ paymentHandlers.push(...newWallets.map((x) => x.paymentHandler));
75
+ for (const wallet of newWallets) {
76
+ for (const id of wallet.x402Id) {
77
+ balanceLookup.set(idKey(id), wallet.getBalance);
78
+ }
79
+ }
44
80
  },
45
81
  fetch: async (input, init) => {
46
82
  _fetch ??= setupFetch();
@@ -1,9 +1,11 @@
1
- import { type KnownCluster } from "@faremeter/info/solana";
2
- import { type PaymentHandler } from "@faremeter/types/client";
3
- import { PublicKey, Keypair } from "@solana/web3.js";
1
+ import { type WalletAdapter } from "./types.js";
2
+ import { Keypair } from "@solana/web3.js";
4
3
  export declare function findNetworkMintCombinations(networks: readonly string[], assets: readonly string[]): {
5
- cluster: KnownCluster;
6
- mints: PublicKey[];
4
+ cluster: "testnet" | "devnet" | "mainnet-beta";
5
+ mints: {
6
+ address: string;
7
+ name: "USDC";
8
+ }[];
7
9
  }[];
8
10
  export declare const matchKeyPair: import("arktype/internal/match.ts").Match<unknown, [(In: Uint8Array<ArrayBufferLike>) => Keypair, (In: string) => Keypair, () => undefined]>;
9
11
  export declare function toKeypair(input: unknown): Promise<Keypair | undefined>;
@@ -12,6 +14,6 @@ export type CreateAdapterOptions = {
12
14
  assets: readonly string[];
13
15
  };
14
16
  export declare function createAdapter(opts: CreateAdapterOptions): {
15
- addLocalWallet: (input: unknown) => Promise<PaymentHandler[] | null>;
17
+ addLocalWallet: (input: unknown) => Promise<WalletAdapter[] | null>;
16
18
  } | undefined;
17
19
  //# sourceMappingURL=solana.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAUhF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,EAAE,CA0BjD;AAED,eAAO,MAAM,YAAY,8IAKvB,CAAC;AAEH,wBAAsB,SAAS,CAAC,KAAK,EAAE,OAAO,gCAe7C;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB;4BAQtB,OAAO;cAyBxC"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,EAAa,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAWhF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,MAAM,EAAE,SAAS,MAAM,EAAE;;;;;;IA2B1B;AAED,eAAO,MAAM,YAAY,8IAKvB,CAAC;AAEH,wBAAsB,SAAS,CAAC,KAAK,EAAE,OAAO,gCAe7C;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB;4BAQtB,OAAO;cAwDxC"}
@@ -1,10 +1,12 @@
1
1
  import { match } from "arktype";
2
- import { lookupKnownSPLToken, } from "@faremeter/info/solana";
2
+ import { lookupX402Network, lookupKnownSPLToken, } from "@faremeter/info/solana";
3
3
  import { createLocalWallet } from "@faremeter/wallet-solana";
4
4
  import { exact } from "@faremeter/payment-solana";
5
- import {} from "@faremeter/types/client";
5
+ import {} from "./types.js";
6
+ import { getTokenBalance } from "@faremeter/payment-solana/splToken";
6
7
  import { isValidationError } from "@faremeter/types";
7
8
  import { PublicKey, Keypair, clusterApiUrl, Connection } from "@solana/web3.js";
9
+ import { createSolanaRpc } from "@solana/kit";
8
10
  import { readLocalFile } from "./common.js";
9
11
  const networkAliases = new Map(Object.entries({
10
12
  solana: "mainnet-beta",
@@ -21,7 +23,7 @@ export function findNetworkMintCombinations(networks, assets) {
21
23
  const mints = assets
22
24
  .map((name) => lookupKnownSPLToken(cluster, name))
23
25
  .filter((x) => x !== undefined)
24
- .map((x) => new PublicKey(x.address));
26
+ .map(({ address, name }) => ({ address, name }));
25
27
  if (mints.length === 0) {
26
28
  return [];
27
29
  }
@@ -63,15 +65,39 @@ export function createAdapter(opts) {
63
65
  // We don't know what this private key is.
64
66
  return null;
65
67
  }
66
- const handlers = [];
68
+ const res = [];
67
69
  for (const { cluster, mints } of clusters) {
70
+ const rpcURL = clusterApiUrl(cluster);
71
+ const rpcClient = createSolanaRpc(rpcURL);
68
72
  for (const mint of mints) {
69
73
  const connection = new Connection(clusterApiUrl(cluster), "confirmed");
70
74
  const wallet = await createLocalWallet(cluster, privateKey);
71
- handlers.push(exact.createPaymentHandler(wallet, mint, connection));
75
+ res.push({
76
+ x402Id: lookupX402Network(cluster).map((network) => ({
77
+ scheme: "exact",
78
+ asset: mint.address,
79
+ network,
80
+ })),
81
+ paymentHandler: exact.createPaymentHandler(wallet, new PublicKey(mint.address), connection),
82
+ getBalance: async () => {
83
+ let balance = await getTokenBalance({
84
+ account: privateKey.publicKey.toBase58(),
85
+ asset: mint.address,
86
+ rpcClient,
87
+ });
88
+ balance ??= {
89
+ amount: 0n,
90
+ decimals: 0,
91
+ };
92
+ return {
93
+ ...balance,
94
+ name: mint.name,
95
+ };
96
+ },
97
+ });
72
98
  }
73
99
  }
74
- return handlers;
100
+ return res;
75
101
  },
76
102
  };
77
103
  }
@@ -1,9 +1,21 @@
1
+ import { x402PaymentId } from "@faremeter/types/x402";
1
2
  import { type PaymentHandler } from "@faremeter/types/client";
2
- export declare const KnownNetworks: readonly ["base", "base-sepolia", "solana", "solana-devnet"];
3
+ export declare const KnownNetworks: readonly ["base", "base-sepolia", "monad", "monad-testnet", "polygon", "polygon-amoy", "solana", "solana-devnet"];
3
4
  export type KnownNetwork = (typeof KnownNetworks)[number];
4
5
  export declare const KnownAssets: readonly ["USDC"];
5
6
  export type KnownAsset = (typeof KnownAssets)[number];
7
+ export type Balance = {
8
+ name: string;
9
+ amount: bigint;
10
+ decimals: number;
11
+ };
12
+ export type GetBalance = () => Promise<Balance>;
13
+ export interface WalletAdapter {
14
+ x402Id: x402PaymentId[];
15
+ paymentHandler: PaymentHandler;
16
+ getBalance: GetBalance;
17
+ }
6
18
  export interface PayerAdapter {
7
- addLocalWallet: (input: unknown) => Promise<PaymentHandler[] | null>;
19
+ addLocalWallet: (input: unknown) => Promise<WalletAdapter[] | null>;
8
20
  }
9
21
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,eAAO,MAAM,aAAa,8DAKhB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW,mBAAoB,CAAC;AAC7C,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,eAAO,MAAM,aAAa,mHAShB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW,mBAAoB,CAAC;AAC7C,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;CACrE"}
package/dist/src/types.js CHANGED
@@ -1,7 +1,12 @@
1
+ import { x402PaymentId } from "@faremeter/types/x402";
1
2
  import {} from "@faremeter/types/client";
2
3
  export const KnownNetworks = [
3
4
  "base",
4
5
  "base-sepolia",
6
+ "monad",
7
+ "monad-testnet",
8
+ "polygon",
9
+ "polygon-amoy",
5
10
  "solana",
6
11
  "solana-devnet",
7
12
  ];