From 5972db4f202facb6cb7b56016e936641f6f9deed Mon Sep 17 00:00:00 2001 From: Ryan Gilbert Date: Thu, 30 Jan 2025 21:16:48 -0500 Subject: [PATCH] chore: map chainId to networkId --- .../src/action_providers/action_provider.ts | 2 +- .../basename/basenameActionProvider.ts | 2 +- .../action_providers/cdp/cdpActionProvider.ts | 3 ++- .../erc20/erc20ActionProvider.ts | 2 +- .../erc721/erc721ActionProvider.ts | 3 ++- .../farcaster/farcasterActionProvider.ts | 2 +- .../morpho/morphoActionProvider.ts | 3 ++- .../twitter/twitterActionProvider.ts | 2 +- .../wallet/walletActionProvider.ts | 3 ++- .../weth/wethActionProvider.ts | 2 +- .../action_providers/wow/wowActionProvider.ts | 3 ++- .../typescript/src/network/index.ts | 1 + .../typescript/src/network/network.ts | 15 ++++++++++++++ .../typescript/src/network/types.ts | 19 ++++++++++++++++++ .../wallet_providers/cdp_wallet_provider.ts | 2 +- .../wallet_providers/viem_wallet_provider.ts | 4 +++- .../src/wallet_providers/wallet_provider.ts | 20 +------------------ 17 files changed, 56 insertions(+), 32 deletions(-) create mode 100644 cdp-agentkit-core/typescript/src/network/index.ts create mode 100644 cdp-agentkit-core/typescript/src/network/network.ts create mode 100644 cdp-agentkit-core/typescript/src/network/types.ts diff --git a/cdp-agentkit-core/typescript/src/action_providers/action_provider.ts b/cdp-agentkit-core/typescript/src/action_providers/action_provider.ts index 59df13ba6..028f2529f 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/action_provider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/action_provider.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { WalletProvider } from "../wallet_providers/wallet_provider"; -import { Network } from "../wallet_providers/wallet_provider"; +import { Network } from "../network"; import { StoredActionMetadata, ACTION_DECORATOR_KEY } from "./action_decorator"; /** diff --git a/cdp-agentkit-core/typescript/src/action_providers/basename/basenameActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/basename/basenameActionProvider.ts index 093beaf23..ea6ebb091 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/basename/basenameActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/basename/basenameActionProvider.ts @@ -1,7 +1,7 @@ import { encodeFunctionData, Hex, namehash, parseEther } from "viem"; import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network } from "../../wallet_providers/wallet_provider"; +import { Network } from "../../network"; import { CreateAction } from "../action_decorator"; import { L2_RESOLVER_ADDRESS_MAINNET, diff --git a/cdp-agentkit-core/typescript/src/action_providers/cdp/cdpActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/cdp/cdpActionProvider.ts index beaedcc7f..d271d8a66 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/cdp/cdpActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/cdp/cdpActionProvider.ts @@ -1,9 +1,10 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network, EvmWalletProvider } from "../../wallet_providers"; +import { EvmWalletProvider } from "../../wallet_providers"; import { CreateAction } from "../action_decorator"; import { Coinbase, ExternalAddress } from "@coinbase/coinbase-sdk"; import { AddressReputationSchema, RequestFaucetFundsSchema } from "./schemas"; +import { Network } from "../../network"; /** * Configuration options for the CdpActionProvider. diff --git a/cdp-agentkit-core/typescript/src/action_providers/erc20/erc20ActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/erc20/erc20ActionProvider.ts index d7fba5137..0948feedf 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/erc20/erc20ActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/erc20/erc20ActionProvider.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network } from "../../wallet_providers/wallet_provider"; +import { Network } from "../../network"; import { CreateAction } from "../action_decorator"; import { GetBalanceSchema, TransferSchema } from "./schemas"; import { abi } from "./constants"; diff --git a/cdp-agentkit-core/typescript/src/action_providers/erc721/erc721ActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/erc721/erc721ActionProvider.ts index 35ab8c226..3c15ac2c3 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/erc721/erc721ActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/erc721/erc721ActionProvider.ts @@ -1,10 +1,11 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network, EvmWalletProvider } from "../../wallet_providers"; +import { EvmWalletProvider } from "../../wallet_providers"; import { CreateAction } from "../action_decorator"; import { GetBalanceSchema, MintSchema, TransferSchema } from "./schemas"; import { ERC721_ABI } from "./constants"; import { encodeFunctionData, Hex } from "viem"; +import { Network } from "../../network"; /** * Erc721ActionProvider is an action provider for Erc721 contract interactions. diff --git a/cdp-agentkit-core/typescript/src/action_providers/farcaster/farcasterActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/farcaster/farcasterActionProvider.ts index fcf9ad6fc..247ade95a 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/farcaster/farcasterActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/farcaster/farcasterActionProvider.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network } from "../../wallet_providers"; +import { Network } from "../../network"; import { CreateAction } from "../action_decorator"; import { FarcasterAccountDetailsSchema, FarcasterPostCastSchema } from "./schemas"; diff --git a/cdp-agentkit-core/typescript/src/action_providers/morpho/morphoActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/morpho/morphoActionProvider.ts index ef545a1a5..de595c44b 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/morpho/morphoActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/morpho/morphoActionProvider.ts @@ -3,11 +3,12 @@ import { Decimal } from "decimal.js"; import { encodeFunctionData, parseEther } from "viem"; import { ActionProvider } from "../action_provider"; -import { Network, EvmWalletProvider } from "../../wallet_providers"; +import { EvmWalletProvider } from "../../wallet_providers"; import { CreateAction } from "../action_decorator"; import { approve } from "../../utils"; import { METAMORPHO_ABI } from "./constants"; import { DepositSchema, WithdrawSchema } from "./schemas"; +import { Network } from "../../network"; export const SUPPORTED_NETWORKS = ["base-mainnet", "base-sepolia"]; diff --git a/cdp-agentkit-core/typescript/src/action_providers/twitter/twitterActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/twitter/twitterActionProvider.ts index c5a576f27..d521cb74d 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/twitter/twitterActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/twitter/twitterActionProvider.ts @@ -2,7 +2,7 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; import { CreateAction } from "../action_decorator"; import { TwitterApi, TwitterApiTokens } from "twitter-api-v2"; -import { Network } from "../../wallet_providers/wallet_provider"; +import { Network } from "../../network"; import { TwitterAccountDetailsSchema, TwitterAccountMentionsSchema, diff --git a/cdp-agentkit-core/typescript/src/action_providers/wallet/walletActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/wallet/walletActionProvider.ts index 5569a877e..075da526d 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/wallet/walletActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/wallet/walletActionProvider.ts @@ -1,7 +1,8 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network, WalletProvider } from "../../wallet_providers/wallet_provider"; +import { WalletProvider } from "../../wallet_providers/wallet_provider"; import { CreateAction } from "../action_decorator"; +import { Network } from "../../network"; /** * Schema for the get_wallet_details action. diff --git a/cdp-agentkit-core/typescript/src/action_providers/weth/wethActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/weth/wethActionProvider.ts index cf2b651ed..28db2a0d1 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/weth/wethActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/weth/wethActionProvider.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network } from "../../wallet_providers/wallet_provider"; +import { Network } from "../../network"; import { CreateAction } from "../action_decorator"; import { WrapEthSchema } from "./schemas"; import { WETH_ABI, WETH_ADDRESS } from "./constants"; diff --git a/cdp-agentkit-core/typescript/src/action_providers/wow/wowActionProvider.ts b/cdp-agentkit-core/typescript/src/action_providers/wow/wowActionProvider.ts index 3f767ab33..7e72e71ae 100644 --- a/cdp-agentkit-core/typescript/src/action_providers/wow/wowActionProvider.ts +++ b/cdp-agentkit-core/typescript/src/action_providers/wow/wowActionProvider.ts @@ -1,7 +1,8 @@ import { z } from "zod"; import { ActionProvider } from "../action_provider"; -import { Network, EvmWalletProvider } from "../../wallet_providers"; +import { EvmWalletProvider } from "../../wallet_providers"; import { CreateAction } from "../action_decorator"; +import { Network } from "../../network"; import { SUPPORTED_NETWORKS, WOW_ABI, diff --git a/cdp-agentkit-core/typescript/src/network/index.ts b/cdp-agentkit-core/typescript/src/network/index.ts new file mode 100644 index 000000000..eea524d65 --- /dev/null +++ b/cdp-agentkit-core/typescript/src/network/index.ts @@ -0,0 +1 @@ +export * from "./types"; diff --git a/cdp-agentkit-core/typescript/src/network/network.ts b/cdp-agentkit-core/typescript/src/network/network.ts new file mode 100644 index 000000000..a60be0498 --- /dev/null +++ b/cdp-agentkit-core/typescript/src/network/network.ts @@ -0,0 +1,15 @@ +/** + * Maps EVM chain IDs to Coinbase network IDs + */ +export const CHAIN_ID_TO_NETWORK_ID: Record = { + 1: "ethereum-mainnet", + 11155111: "ethereum-sepolia", + 137: "polygon-mainnet", + 80001: "polygon-mumbai", + 8453: "base-mainnet", + 84532: "base-sepolia", + 42161: "arbitrum-mainnet", + 421614: "arbitrum-sepolia", + 10: "optimism-mainnet", + 11155420: "optimism-sepolia", +}; diff --git a/cdp-agentkit-core/typescript/src/network/types.ts b/cdp-agentkit-core/typescript/src/network/types.ts new file mode 100644 index 000000000..b39cb1244 --- /dev/null +++ b/cdp-agentkit-core/typescript/src/network/types.ts @@ -0,0 +1,19 @@ +/** + * Network is the network that the wallet provider is connected to. + */ +export interface Network { + /** + * The protocol family of the network. + */ + protocolFamily: string; + + /** + * The network ID of the network. + */ + networkId?: string; + + /** + * The chain ID of the network. + */ + chainId?: string; +} diff --git a/cdp-agentkit-core/typescript/src/wallet_providers/cdp_wallet_provider.ts b/cdp-agentkit-core/typescript/src/wallet_providers/cdp_wallet_provider.ts index 61c3ddcd7..b69a8db1a 100644 --- a/cdp-agentkit-core/typescript/src/wallet_providers/cdp_wallet_provider.ts +++ b/cdp-agentkit-core/typescript/src/wallet_providers/cdp_wallet_provider.ts @@ -3,7 +3,7 @@ import { ReadContractParameters, ReadContractReturnType, TransactionRequest } from "viem"; import { EvmWalletProvider } from "./evm_wallet_provider"; -import { Network } from "./wallet_provider"; +import { Network } from "../network"; /** * A wallet provider that uses the Coinbase SDK. diff --git a/cdp-agentkit-core/typescript/src/wallet_providers/viem_wallet_provider.ts b/cdp-agentkit-core/typescript/src/wallet_providers/viem_wallet_provider.ts index b7c32238a..3145dd59b 100644 --- a/cdp-agentkit-core/typescript/src/wallet_providers/viem_wallet_provider.ts +++ b/cdp-agentkit-core/typescript/src/wallet_providers/viem_wallet_provider.ts @@ -11,7 +11,8 @@ import { ReadContractReturnType, } from "viem"; import { EvmWalletProvider } from "./evm_wallet_provider"; -import { Network } from "./wallet_provider"; +import { Network } from "../network"; +import { CHAIN_ID_TO_NETWORK_ID } from "../network/network"; /** * A wallet provider that uses the Viem library. @@ -119,6 +120,7 @@ export class ViemWalletProvider extends EvmWalletProvider { return { protocolFamily: "evm" as const, chainId: this.#walletClient.chain!.id! as any as string, + networkId: CHAIN_ID_TO_NETWORK_ID[this.#walletClient.chain!.id!], }; } diff --git a/cdp-agentkit-core/typescript/src/wallet_providers/wallet_provider.ts b/cdp-agentkit-core/typescript/src/wallet_providers/wallet_provider.ts index 2c89eeb4f..15b1b3939 100644 --- a/cdp-agentkit-core/typescript/src/wallet_providers/wallet_provider.ts +++ b/cdp-agentkit-core/typescript/src/wallet_providers/wallet_provider.ts @@ -1,22 +1,4 @@ -/** - * Network is the network that the wallet provider is connected to. - */ -export interface Network { - /** - * The protocol family of the network. - */ - protocolFamily: string; - - /** - * The network ID of the network. - */ - networkId?: string; - - /** - * The chain ID of the network. - */ - chainId?: string; -} +import { Network } from "../network"; /** * WalletProvider is the abstract base class for all wallet providers.