UNPKG

@moonwell-fi/moonwell-sdk

Version:

TypeScript Interface for Moonwell

1,139 lines 84.4 kB
import type { Chain, Prettify, Transport } from "viem"; import { type GovernanceToken, type GovernanceTokenInfo, GovernanceTokensConfig, type GovernanceTokensType } from "./definitions/governance.js"; import { base, type markets as baseMarkets, type morphoMarkets as baseMorphoMarkets, type tokens as baseTokens, type vaults as baseVaults, createEnvironment as createBaseEnvironment } from "./definitions/base/environment.js"; import { createEnvironment as createMoonbeamEnvironment, type markets as moonbeamMarkets, type tokens as moonbeamTokens } from "./definitions/moonbeam/environment.js"; import { createEnvironment as createMoonriverEnvironment, type markets as moonriverMarkets, type tokens as moonriverTokens } from "./definitions/moonriver/environment.js"; import { createEnvironment as createOptimismEnvironment, type markets as optimismMarkets, type morphoMarkets as optimismMorphoMarkets, type tokens as optimismTokens, type vaults as optimismVaults } from "./definitions/optimism/environment.js"; import { createEnvironment as createEthereumEnvironment, ethereum, type tokens as ethereumTokens } from "./definitions/ethereum/environment.js"; import { avalanche, type tokens as avalancheTokens, createEnvironment as createAvalancheEnvironment } from "./definitions/avalanche/environment.js"; import { arbitrum, type tokens as arbitrumTokens, createEnvironment as createArbitrumEnvironment } from "./definitions/arbitrum/environment.js"; import { createEnvironment as createPolygonEnvironment, polygon, type tokens as polygonTokens } from "./definitions/polygon/environment.js"; import { moonbeam, moonriver, optimism } from "viem/chains"; import type { Environment, TokenConfig } from "./types/config.js"; export { arbitrum, avalanche, base, ethereum, GovernanceTokensConfig, moonbeam, moonriver, optimism, polygon, supportedChains, supportedChainsIds, }; export type { Chain, Environment, GovernanceToken, GovernanceTokenInfo, GovernanceTokensType, Prettify, SupportedChains, SupportedChainsIds, TokenConfig, Transport, }; declare const supportedChainsIds: { [id: number]: keyof typeof supportedChains; }; declare const supportedChains: { base: { blockExplorers: { readonly default: { readonly name: "Basescan"; readonly url: "https://basescan.org"; readonly apiUrl: "https://api.basescan.org/api"; }; }; contracts: { readonly disputeGameFactory: { readonly 1: { readonly address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"; }; }; readonly l2OutputOracle: { readonly 1: { readonly address: "0x56315b90c40730925ec5485cf004d835058518A0"; }; }; readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 5022; }; readonly portal: { readonly 1: { readonly address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e"; readonly blockCreated: 17482143; }; }; readonly l1StandardBridge: { readonly 1: { readonly address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35"; readonly blockCreated: 17482143; }; }; readonly gasPriceOracle: { readonly address: "0x420000000000000000000000000000000000000F"; }; readonly l1Block: { readonly address: "0x4200000000000000000000000000000000000015"; }; readonly l2CrossDomainMessenger: { readonly address: "0x4200000000000000000000000000000000000007"; }; readonly l2Erc721Bridge: { readonly address: "0x4200000000000000000000000000000000000014"; }; readonly l2StandardBridge: { readonly address: "0x4200000000000000000000000000000000000010"; }; readonly l2ToL1MessagePasser: { readonly address: "0x4200000000000000000000000000000000000016"; }; }; ensTlds?: readonly string[] | undefined; id: 8453; name: "Base"; nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://mainnet.base.org"]; }; }; sourceId: 1; testnet: false; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters: { readonly block: { exclude: [] | undefined; format: (args: import("viem/chains").OpStackRpcBlock) => { baseFeePerGas: bigint | null; blobGasUsed: bigint; difficulty: bigint; excessBlobGas: bigint; extraData: import("viem").Hex; gasLimit: bigint; gasUsed: bigint; hash: `0x${string}` | null; logsBloom: `0x${string}` | null; miner: import("viem").Address; mixHash: import("viem").Hash; nonce: `0x${string}` | null; number: bigint | null; parentBeaconBlockRoot?: `0x${string}` | undefined; parentHash: import("viem").Hash; receiptsRoot: import("viem").Hex; sealFields: import("viem").Hex[]; sha3Uncles: import("viem").Hash; size: bigint; stateRoot: import("viem").Hash; timestamp: bigint; totalDifficulty: bigint | null; transactions: `0x${string}`[] | import("viem/chains").OpStackTransaction<boolean>[]; transactionsRoot: import("viem").Hash; uncles: import("viem").Hash[]; withdrawals?: import("viem").Withdrawal[] | undefined | undefined; withdrawalsRoot?: `0x${string}` | undefined; } & {}; type: "block"; }; readonly transaction: { exclude: [] | undefined; format: (args: import("viem/chains").OpStackRpcTransaction) => ({ blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; gasPrice?: undefined | undefined; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: boolean; mint?: bigint | undefined | undefined; sourceHash: import("viem").Hex; type: "deposit"; } | { r: import("viem").Hex; s: import("viem").Hex; v: bigint; to: import("viem").Address | null; from: import("viem").Address; gas: bigint; nonce: number; value: bigint; blockHash: `0x${string}` | null; blockNumber: bigint | null; hash: import("viem").Hash; input: import("viem").Hex; transactionIndex: number | null; typeHex: import("viem").Hex | null; accessList?: undefined | undefined; authorizationList?: undefined | undefined; blobVersionedHashes?: undefined | undefined; chainId?: number | undefined; yParity?: undefined | undefined; type: "legacy"; gasPrice: bigint; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas?: undefined | undefined; maxPriorityFeePerGas?: undefined | undefined; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList?: undefined | undefined; blobVersionedHashes?: undefined | undefined; chainId: number; type: "eip2930"; gasPrice: bigint; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas?: undefined | undefined; maxPriorityFeePerGas?: undefined | undefined; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList?: undefined | undefined; blobVersionedHashes?: undefined | undefined; chainId: number; type: "eip1559"; gasPrice?: undefined | undefined; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList?: undefined | undefined; blobVersionedHashes: readonly import("viem").Hex[]; chainId: number; type: "eip4844"; gasPrice?: undefined | undefined; maxFeePerBlobGas: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList: import("viem").SignedAuthorizationList; blobVersionedHashes?: undefined | undefined; chainId: number; type: "eip7702"; gasPrice?: undefined | undefined; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; }) & {}; type: "transaction"; }; readonly transactionReceipt: { exclude: [] | undefined; format: (args: import("viem/chains").OpStackRpcTransactionReceipt) => { blobGasPrice?: bigint | undefined; blobGasUsed?: bigint | undefined; blockHash: import("viem").Hash; blockNumber: bigint; contractAddress: import("viem").Address | null | undefined; cumulativeGasUsed: bigint; effectiveGasPrice: bigint; from: import("viem").Address; gasUsed: bigint; logs: import("viem").Log<bigint, number, false>[]; logsBloom: import("viem").Hex; root?: `0x${string}` | undefined; status: "success" | "reverted"; to: import("viem").Address | null; transactionHash: import("viem").Hash; transactionIndex: number; type: import("viem").TransactionType; l1GasPrice: bigint | null; l1GasUsed: bigint | null; l1Fee: bigint | null; l1FeeScalar: number | null; } & {}; type: "transactionReceipt"; }; }; serializers: { readonly transaction: typeof import("viem/chains").serializeTransactionOpStack; }; }; optimism: { blockExplorers: { readonly default: { readonly name: "Optimism Explorer"; readonly url: "https://optimistic.etherscan.io"; readonly apiUrl: "https://api-optimistic.etherscan.io/api"; }; }; contracts: { readonly disputeGameFactory: { readonly 1: { readonly address: "0xe5965Ab5962eDc7477C8520243A95517CD252fA9"; }; }; readonly l2OutputOracle: { readonly 1: { readonly address: "0xdfe97868233d1aa22e815a266982f2cf17685a27"; }; }; readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 4286263; }; readonly portal: { readonly 1: { readonly address: "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed"; }; }; readonly l1StandardBridge: { readonly 1: { readonly address: "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1"; }; }; readonly gasPriceOracle: { readonly address: "0x420000000000000000000000000000000000000F"; }; readonly l1Block: { readonly address: "0x4200000000000000000000000000000000000015"; }; readonly l2CrossDomainMessenger: { readonly address: "0x4200000000000000000000000000000000000007"; }; readonly l2Erc721Bridge: { readonly address: "0x4200000000000000000000000000000000000014"; }; readonly l2StandardBridge: { readonly address: "0x4200000000000000000000000000000000000010"; }; readonly l2ToL1MessagePasser: { readonly address: "0x4200000000000000000000000000000000000016"; }; }; ensTlds?: readonly string[] | undefined; id: 10; name: "OP Mainnet"; nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://mainnet.optimism.io"]; }; }; sourceId: 1; testnet?: boolean | undefined | undefined; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters: { readonly block: { exclude: [] | undefined; format: (args: import("viem/chains").OpStackRpcBlock) => { baseFeePerGas: bigint | null; blobGasUsed: bigint; difficulty: bigint; excessBlobGas: bigint; extraData: import("viem").Hex; gasLimit: bigint; gasUsed: bigint; hash: `0x${string}` | null; logsBloom: `0x${string}` | null; miner: import("viem").Address; mixHash: import("viem").Hash; nonce: `0x${string}` | null; number: bigint | null; parentBeaconBlockRoot?: `0x${string}` | undefined; parentHash: import("viem").Hash; receiptsRoot: import("viem").Hex; sealFields: import("viem").Hex[]; sha3Uncles: import("viem").Hash; size: bigint; stateRoot: import("viem").Hash; timestamp: bigint; totalDifficulty: bigint | null; transactions: `0x${string}`[] | import("viem/chains").OpStackTransaction<boolean>[]; transactionsRoot: import("viem").Hash; uncles: import("viem").Hash[]; withdrawals?: import("viem").Withdrawal[] | undefined | undefined; withdrawalsRoot?: `0x${string}` | undefined; } & {}; type: "block"; }; readonly transaction: { exclude: [] | undefined; format: (args: import("viem/chains").OpStackRpcTransaction) => ({ blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; gasPrice?: undefined | undefined; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: boolean; mint?: bigint | undefined | undefined; sourceHash: import("viem").Hex; type: "deposit"; } | { r: import("viem").Hex; s: import("viem").Hex; v: bigint; to: import("viem").Address | null; from: import("viem").Address; gas: bigint; nonce: number; value: bigint; blockHash: `0x${string}` | null; blockNumber: bigint | null; hash: import("viem").Hash; input: import("viem").Hex; transactionIndex: number | null; typeHex: import("viem").Hex | null; accessList?: undefined | undefined; authorizationList?: undefined | undefined; blobVersionedHashes?: undefined | undefined; chainId?: number | undefined; yParity?: undefined | undefined; type: "legacy"; gasPrice: bigint; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas?: undefined | undefined; maxPriorityFeePerGas?: undefined | undefined; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList?: undefined | undefined; blobVersionedHashes?: undefined | undefined; chainId: number; type: "eip2930"; gasPrice: bigint; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas?: undefined | undefined; maxPriorityFeePerGas?: undefined | undefined; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList?: undefined | undefined; blobVersionedHashes?: undefined | undefined; chainId: number; type: "eip1559"; gasPrice?: undefined | undefined; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList?: undefined | undefined; blobVersionedHashes: readonly import("viem").Hex[]; chainId: number; type: "eip4844"; gasPrice?: undefined | undefined; maxFeePerBlobGas: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; } | { blockHash: `0x${string}` | null; blockNumber: bigint | null; from: import("viem").Address; gas: bigint; hash: import("viem").Hash; input: import("viem").Hex; nonce: number; r: import("viem").Hex; s: import("viem").Hex; to: import("viem").Address | null; transactionIndex: number | null; typeHex: import("viem").Hex | null; v: bigint; value: bigint; yParity: number; accessList: import("viem").AccessList; authorizationList: import("viem").SignedAuthorizationList; blobVersionedHashes?: undefined | undefined; chainId: number; type: "eip7702"; gasPrice?: undefined | undefined; maxFeePerBlobGas?: undefined | undefined; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; isSystemTx?: undefined | undefined; mint?: undefined | undefined; sourceHash?: undefined | undefined; }) & {}; type: "transaction"; }; readonly transactionReceipt: { exclude: [] | undefined; format: (args: import("viem/chains").OpStackRpcTransactionReceipt) => { blobGasPrice?: bigint | undefined; blobGasUsed?: bigint | undefined; blockHash: import("viem").Hash; blockNumber: bigint; contractAddress: import("viem").Address | null | undefined; cumulativeGasUsed: bigint; effectiveGasPrice: bigint; from: import("viem").Address; gasUsed: bigint; logs: import("viem").Log<bigint, number, false>[]; logsBloom: import("viem").Hex; root?: `0x${string}` | undefined; status: "success" | "reverted"; to: import("viem").Address | null; transactionHash: import("viem").Hash; transactionIndex: number; type: import("viem").TransactionType; l1GasPrice: bigint | null; l1GasUsed: bigint | null; l1Fee: bigint | null; l1FeeScalar: number | null; } & {}; type: "transactionReceipt"; }; }; serializers: { readonly transaction: typeof import("viem/chains").serializeTransactionOpStack; }; }; moonriver: { blockExplorers: { readonly default: { readonly name: "Moonscan"; readonly url: "https://moonriver.moonscan.io"; readonly apiUrl: "https://api-moonriver.moonscan.io/api"; }; }; contracts: { readonly multicall3: { readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11"; readonly blockCreated: 1597904; }; }; ensTlds?: readonly string[] | undefined; id: 1285; name: "Moonriver"; nativeCurrency: { readonly decimals: 18; readonly name: "MOVR"; readonly symbol: "MOVR"; }; rpcUrls: { readonly default: { readonly http: readonly ["https://moonriver.public.blastapi.io"]; readonly webSocket: readonly ["wss://moonriver.public.blastapi.io"]; }; }; sourceId?: number | undefined | undefined; testnet: false; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters?: undefined; serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined; }; moonbeam: { blockExplorers: { readonly default: { readonly name: "Moonscan"; readonly url: "https://moonscan.io"; readonly apiUrl: "https://api-moonbeam.moonscan.io/api"; }; }; contracts: { readonly multicall3: { readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11"; readonly blockCreated: 609002; }; }; ensTlds?: readonly string[] | undefined; id: 1284; name: "Moonbeam"; nativeCurrency: { readonly decimals: 18; readonly name: "GLMR"; readonly symbol: "GLMR"; }; rpcUrls: { readonly default: { readonly http: readonly ["https://moonbeam.public.blastapi.io"]; readonly webSocket: readonly ["wss://moonbeam.public.blastapi.io"]; }; }; sourceId?: number | undefined | undefined; testnet: false; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters?: undefined; serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined; }; ethereum: { blockExplorers: { readonly default: { readonly name: "Etherscan"; readonly url: "https://etherscan.io"; readonly apiUrl: "https://api.etherscan.io/api"; }; }; contracts: { readonly ensRegistry: { readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"; }; readonly ensUniversalResolver: { readonly address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67"; readonly blockCreated: 19258213; }; readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 14353601; }; }; ensTlds?: readonly string[] | undefined; id: 1; name: "Ethereum"; nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://eth.merkle.io"]; }; }; sourceId?: number | undefined | undefined; testnet?: boolean | undefined | undefined; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters?: undefined; serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined; }; avalanche: { blockExplorers: { readonly default: { readonly name: "SnowTrace"; readonly url: "https://snowtrace.io"; readonly apiUrl: "https://api.snowtrace.io"; }; }; contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 11907934; }; }; ensTlds?: readonly string[] | undefined; id: 43114; name: "Avalanche"; nativeCurrency: { readonly decimals: 18; readonly name: "Avalanche"; readonly symbol: "AVAX"; }; rpcUrls: { readonly default: { readonly http: readonly ["https://api.avax.network/ext/bc/C/rpc"]; }; }; sourceId?: number | undefined | undefined; testnet?: boolean | undefined | undefined; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters?: undefined; serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined; }; arbitrum: { blockExplorers: { readonly default: { readonly name: "Arbiscan"; readonly url: "https://arbiscan.io"; readonly apiUrl: "https://api.arbiscan.io/api"; }; }; contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 7654707; }; }; ensTlds?: readonly string[] | undefined; id: 42161; name: "Arbitrum One"; nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://arb1.arbitrum.io/rpc"]; }; }; sourceId?: number | undefined | undefined; testnet?: boolean | undefined | undefined; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters?: undefined; serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined; }; polygon: { blockExplorers: { readonly default: { readonly name: "PolygonScan"; readonly url: "https://polygonscan.com"; readonly apiUrl: "https://api.polygonscan.com/api"; }; }; contracts: { readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 25770160; }; }; ensTlds?: readonly string[] | undefined; id: 137; name: "Polygon"; nativeCurrency: { readonly name: "POL"; readonly symbol: "POL"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://polygon-rpc.com"]; }; }; sourceId?: number | undefined | undefined; testnet?: boolean | undefined | undefined; custom?: Record<string, unknown> | undefined; fees?: import("viem").ChainFees<undefined> | undefined; formatters?: undefined; serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined; }; }; type SupportedChains = Prettify<keyof typeof supportedChains>; type SupportedChainsIds = Prettify<keyof typeof supportedChainsIds>; export type BaseEnvironment = ReturnType<typeof createBaseEnvironment>; export type MoonbeamEnvironment = ReturnType<typeof createMoonbeamEnvironment>; export type MoonriverEnvironment = ReturnType<typeof createMoonriverEnvironment>; export type OptimismEnvironment = ReturnType<typeof createOptimismEnvironment>; export type EthereumEnvironment = ReturnType<typeof createEthereumEnvironment>; export type AvalancheEnvironment = ReturnType<typeof createAvalancheEnvironment>; export type ArbitrumEnvironment = ReturnType<typeof createArbitrumEnvironment>; export type PolygonEnvironment = ReturnType<typeof createPolygonEnvironment>; export type GetEnvironment<chain> = chain extends typeof base ? BaseEnvironment : chain extends typeof moonbeam ? MoonbeamEnvironment : chain extends typeof moonriver ? MoonriverEnvironment : chain extends typeof optimism ? OptimismEnvironment : chain extends typeof ethereum ? EthereumEnvironment : chain extends typeof avalanche ? AvalancheEnvironment : chain extends typeof arbitrum ? ArbitrumEnvironment : chain extends typeof polygon ? PolygonEnvironment : undefined; export declare const createEnvironment: <const chain extends Chain>(config: { chain: chain; rpcUrls?: string[] | undefined; indexerUrl?: string; }) => GetEnvironment<chain>; export declare const publicEnvironments: { base: Environment<{ readonly ETH: { readonly address: "0x0000000000000000000000000000000000000000"; readonly decimals: 18; readonly name: "Ethereum"; readonly symbol: "ETH"; }; readonly WETH: { readonly address: "0x4200000000000000000000000000000000000006"; readonly decimals: 18; readonly name: "Wrapped Ethereum"; readonly symbol: "WETH"; }; readonly USDC: { readonly address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"; readonly decimals: 6; readonly name: "USD Coin"; readonly symbol: "USDC"; }; readonly MOONWELL_USDC: { readonly address: "0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c22"; readonly decimals: 8; readonly name: "Moonwell USDC"; readonly symbol: "mUSDC"; }; readonly MOONWELL_ETH: { readonly address: "0x628ff693426583D9a7FB391E54366292F509D457"; readonly decimals: 8; readonly name: "Moonwell ETH"; readonly symbol: "mWETH"; }; readonly cbETH: { readonly address: "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22"; readonly decimals: 18; readonly name: "Coinbase Staked Ethereum"; readonly symbol: "cbETH"; }; readonly MOONWELL_cbETH: { readonly address: "0x3bf93770f2d4a794c3d9EBEfBAeBAE2a8f09A5E5"; readonly decimals: 8; readonly name: "Moonwell cbETH"; readonly symbol: "mcbETH"; }; readonly wstETH: { readonly address: "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452"; readonly decimals: 18; readonly name: "Lido Staked Ethereum"; readonly symbol: "wstETH"; }; readonly MOONWELL_wstETH: { readonly address: "0x627Fe393Bc6EdDA28e99AE648fD6fF362514304b"; readonly decimals: 8; readonly name: "Moonwell wstETH"; readonly symbol: "mwstETH"; }; readonly rETH: { readonly address: "0xb6fe221fe9eef5aba221c348ba20a1bf5e73624c"; readonly decimals: 18; readonly name: "Rocket Pool Staked Ethereum"; readonly symbol: "rETH"; }; readonly MOONWELL_rETH: { readonly address: "0xCB1DaCd30638ae38F2B94eA64F066045B7D45f44"; readonly decimals: 8; readonly name: "Moonwell rETH"; readonly symbol: "mrETH"; }; readonly weETH: { readonly address: "0x04c0599ae5a44757c0af6f9ec3b93da8976c150a"; readonly decimals: 18; readonly name: "EtherFi Restaked Ethereum"; readonly symbol: "weETH"; }; readonly MOONWELL_weETH: { readonly address: "0xb8051464C8c92209C92F3a4CD9C73746C4c3CFb3"; readonly decimals: 8; readonly name: "Moonwell weETH"; readonly symbol: "mweETH"; }; readonly cbBTC: { readonly address: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf"; readonly decimals: 8; readonly name: "Coinbase Bitcoin"; readonly symbol: "cbBTC"; }; readonly MOONWELL_cbBTC: { readonly address: "0xF877ACaFA28c19b96727966690b2f44d35aD5976"; readonly decimals: 8; readonly name: "Moonwell cbBTC"; readonly symbol: "mcbBTC"; }; readonly AERO: { readonly address: "0x940181a94A35A4569E4529A3CDfB74e38FD98631"; readonly decimals: 18; readonly name: "Aerodrome"; readonly symbol: "AERO"; }; readonly MOONWELL_AERO: { readonly address: "0x73902f619CEB9B31FD8EFecf435CbDf89E369Ba6"; readonly decimals: 8; readonly name: "Moonwell AERO"; readonly symbol: "mAERO"; }; readonly DAI: { readonly address: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"; readonly decimals: 18; readonly name: "DAI"; readonly symbol: "DAI"; }; readonly MOONWELL_DAI: { readonly address: "0x73b06D8d18De422E269645eaCe15400DE7462417"; readonly decimals: 8; readonly name: "Moonwell DAI"; readonly symbol: "mDAI"; }; readonly USDbC: { readonly address: "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca"; readonly decimals: 6; readonly name: "USD Coin"; readonly symbol: "USDbC"; }; readonly MOONWELL_USDbC: { readonly address: "0x703843C3379b52F9FF486c9f5892218d2a065cC8"; readonly decimals: 8; readonly name: "Moonwell USDbC"; readonly symbol: "mUSDC"; }; readonly EURC: { readonly address: "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42"; readonly decimals: 6; readonly name: "Euro Coin"; readonly symbol: "EURC"; }; readonly MOONWELL_EURC: { readonly address: "0xb682c840B5F4FC58B20769E691A6fa1305A501a2"; readonly decimals: 8; readonly name: "Moonwell EURC"; readonly symbol: "mEURC"; }; readonly mwETH: { readonly address: "0xa0E430870c4604CcfC7B38Ca7845B1FF653D0ff1"; readonly decimals: 18; readonly name: "Moonwell Flagship ETH"; readonly symbol: "mwETH"; }; readonly mwUSDC: { readonly address: "0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca"; readonly decimals: 18; readonly name: "Moonwell Flagship USDC"; readonly symbol: "mwUSDC"; }; readonly mwEURC: { readonly address: "0xf24608E0CCb972b0b0f4A6446a0BBf58c701a026"; readonly decimals: 18; readonly name: "Moonwell Flagship EURC"; readonly symbol: "mwEURC"; }; readonly mwcbBTC: { readonly address: "0x543257eF2161176D7C8cD90BA65C2d4CaEF5a796"; readonly decimals: 18; readonly name: "Moonwell Frontier cbBTC"; readonly symbol: "mwcbBTC"; }; readonly WELL: { readonly address: "0xA88594D404727625A9437C3f886C7643872296AE"; readonly decimals: 18; readonly name: "Moonwell"; readonly symbol: "WELL"; }; readonly WORMHOLE_WELL: { readonly address: "0xFF8adeC2221f9f4D8dfbAFa6B9a297d17603493D"; readonly decimals: 18; readonly name: "WELL (Wormhole)"; readonly symbol: "WELL"; }; readonly stkWELL: { readonly address: "0xe66E3A37C3274Ac24FE8590f7D84A2427194DC17"; readonly decimals: 18; readonly name: "stkWELL"; readonly symbol: "stkWELL"; }; readonly wrsETH: { readonly address: "0xEDfa23602D0EC14714057867A78d01e94176BEA0"; readonly decimals: 18; readonly name: "KelpDAO Restaked Ethereum"; readonly symbol: "wrsETH"; }; readonly MOONWELL_wrsETH: { readonly address: "0xfC41B49d064Ac646015b459C522820DB9472F4B5"; readonly decimals: 8; readonly name: "Moonwell wrsETH"; readonly symbol: "mwrsETH"; }; readonly MOONWELL_WELL: { readonly address: "0xdC7810B47eAAb250De623F0eE07764afa5F71ED1"; readonly decimals: 8; readonly name: "Moonwell WELL"; readonly symbol: "mWELL"; }; readonly PT_LBTC_29MAY2025: { readonly address: "0x5d746848005507DA0b1717C137A10C30AD9ee307"; readonly decimals: 8; readonly name: "PT Lombard LBTC 29MAY2025"; readonly symbol: "PT_LBTC_29MAY2025"; }; readonly LBTC: { readonly address: "0xecAc9C5F704e954931349Da37F60E39f515c11c1"; readonly decimals: 8; readonly name: "Lombard Staked Bitcoin"; readonly symbol: "LBTC"; }; readonly USDS: { readonly address: "0x820C137fa70C8691f0e44Dc420a5e53c168921Dc"; readonly decimals: 18; readonly name: "Sky Dollar"; readonly symbol: "USDS"; }; readonly MOONWELL_USDS: { readonly address: "0xb6419c6C2e60c4025D6D06eE4F913ce89425a357"; readonly decimals: 8; readonly name: "Moonwell USDS"; readonly symbol: "mUSDS"; }; readonly tBTC: { readonly address: "0x236aa50979D5f3De3Bd1Eeb40E81137F22ab794b"; readonly decimals: 18; readonly name: "Threshold Bitcoin"; readonly symbol: "tBTC"; }; readonly MOONWELL_tBTC: { readonly address: "0x9A858ebfF1bEb0D3495BB0e2897c1528eD84A218"; readonly decimals: 8; readonly name: "Moonwell tBTC"; readonly symbol: "mtBTC"; }; readonly MOONWELL_LBTC: { readonly address: "0x10fF57877b79e9bd949B3815220eC87B9fc5D2ee"; readonly decimals: 8; readonly name: "Moonwell LBTC"; readonly symbol: "mLBTC"; }; readonly VIRTUAL: { readonly address: "0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b"; readonly decimals: 18; readonly name: "Virtuals Protocol"; readonly symbol: "VIRTUAL"; }; readonly MOONWELL_VIRTUAL: { readonly address: "0xdE8Df9d942D78edE3Ca06e60712582F79CFfFC64"; readonly decimals: 8; readonly name: "Moonwell Virtual"; readonly symbol: "mVIRTUAL"; }; readonly MORPHO: { readonly address: "0xBAa5CC21fd487B8Fcc2F632f3F4E8D37262a0842"; readonly decimals: 18; readonly name: "Morpho"; readonly symbol: "MORPHO"; }; readonly MOONWELL_MORPHO: { readonly address: "0x6308204872BdB7432dF97b04B42443c714904F3E"; readonly decimals: 8; readonly name: "Moonwell MORPHO"; readonly symbol: "mMORPHO"; }; readonly cbXRP: { readonly address: "0xcb585250f852C6c6bf90434AB21A00f02833a4af"; readonly decimals: 6; readonly name: "Coinbase XRP"; readonly symbol: "cbXRP"; }; readonly MOONWELL_cbXRP: { readonly address: "0xb4fb8fed5b3AaA8434f0B19b1b623d977e07e86d"; readonly decimals: 8; readonly name: "Moonwell cbXRP"; readonly symbol: "mcbXRP"; }; }, { readonly MOONWELL_USDC: { readonly mar