@moonwell-fi/moonwell-sdk
Version:
TypeScript Interface for Moonwell
1,139 lines • 84.4 kB
TypeScript
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