@moonwell-fi/moonwell-sdk
Version:
TypeScript Interface for Moonwell
427 lines (383 loc) • 16 kB
text/typescript
import type { Chain } from "viem";
import {
type GetBeamTokenRoutesReturnType,
getBeamTokenRoutes,
} from "../actions/beam/getBeamTokenRoutes.js";
import {
type GetBeamQuoteParameters,
type GetBeamQuoteReturnType,
getBeamQuote,
} from "../actions/beam/getBeamQuote.js";
import {
type GetMarketParameters,
type GetMarketReturnType,
getMarket,
} from "../actions/core/markets/getMarket.js";
import {
type GetMarketsParameters,
type GetMarketsReturnType,
getMarkets,
} from "../actions/core/markets/getMarkets.js";
import type { MoonwellClient } from "./createMoonwellClient.js";
import {
type GetBeamTokenLimitsArgs,
type GetBeamTokenLimitsReturnType,
getBeamTokenLimits,
} from "../actions/beam/getBeamTokenLimits.js";
import {
type GetUserBalancesParameters,
type GetUserBalancesReturnType,
getUserBalances,
} from "../actions/core/getUserBalances.js";
import {
type GetUserPositionParameters,
type GetUserPositionReturnType,
getUserPosition,
} from "../actions/core/user-positions/getUserPosition.js";
import {
type GetUserPositionSnapshotsParameters,
type GetUserPositionSnapshotsReturnType,
getUserPositionSnapshots,
} from "../actions/core/user-positions/getUserPositionSnapshots.js";
import {
type GetUserPositionsParameters,
type GetUserPositionsReturnType,
getUserPositions,
} from "../actions/core/user-positions/getUserPositions.js";
import {
type GetUserRewardParameters,
type GetUserRewardReturnType,
getUserReward,
} from "../actions/core/user-rewards/getUserReward.js";
import {
type GetUserRewardsParameters,
type GetUserRewardsReturnType,
getUserRewards,
} from "../actions/core/user-rewards/getUserRewards.js";
import {
type GetCirculatingSupplySnapshotsParameters,
type GetCirculatingSupplySnapshotsReturnType,
getCirculatingSupplySnapshots,
} from "../actions/governance/getCirculatingSupplySnapshots.js";
import {
type GetDelegatesReturnType,
getDelegates,
} from "../actions/governance/getDelegates.js";
import {
type GetDiscussionsReturnType,
getDiscussions,
} from "../actions/governance/getDiscussions.js";
import {
type GetGovernanceTokenInfoParameters,
type GetGovernanceTokenInfoReturnType,
getGovernanceTokenInfo,
} from "../actions/governance/getGovernanceTokenInfo.js";
import {
type GetStakingInfoParameters,
type GetStakingInfoReturnType,
getStakingInfo,
} from "../actions/governance/getStakingInfo.js";
import {
type GetStakingSnapshotsParameters,
type GetStakingSnapshotsReturnType,
getStakingSnapshots,
} from "../actions/governance/getStakingSnapshots.js";
import {
type GetUserStakingInfoParameters,
type GetUserStakingInfoReturnType,
getUserStakingInfo,
} from "../actions/governance/getUserStakingInfo.js";
import {
type GetUserVoteReceiptParameters,
type GetUserVoteReceiptReturnType,
getUserVoteReceipt,
} from "../actions/governance/getUserVoteReceipt.js";
import {
type GetUserVotingPowersParameters,
type GetUserVotingPowersReturnType,
getUserVotingPowers,
} from "../actions/governance/getUserVotingPowers.js";
import {
type GetProposalParameters,
type GetProposalReturnType,
getProposal,
} from "../actions/governance/proposals/getProposal.js";
import {
type GetProposalsParameters,
type GetProposalsReturnType,
getProposals,
} from "../actions/governance/proposals/getProposals.js";
import {
type GetSnapshotProposalParameters,
type GetSnapshotProposalReturnType,
getSnapshotProposal,
} from "../actions/governance/snapshot/getSnapshotProposal.js";
import {
type GetSnapshotProposalsParameters,
type GetSnapshotProposalsReturnType,
getSnapshotProposals,
} from "../actions/governance/snapshot/getSnapshotProposals.js";
import {
type GetMarketSnapshotsParameters,
type GetMarketSnapshotsReturnType,
type GetMorphoVaultUserPositionSnapshotsParameters,
type GetMorphoVaultUserPositionSnapshotsReturnType,
getMarketSnapshots,
getMorphoVaultUserPositionSnapshots,
} from "../actions/index.js";
import {
type GetMorphoUserBalancesParameters,
type GetMorphoUserBalancesReturnType,
getMorphoUserBalances,
} from "../actions/morpho/getMorphoUserBalances.js";
import {
type GetMorphoMarketParameters,
type GetMorphoMarketReturnType,
getMorphoMarket,
} from "../actions/morpho/markets/getMorphoMarket.js";
import {
type GetMorphoMarketsParameters,
type GetMorphoMarketsReturnType,
getMorphoMarkets,
} from "../actions/morpho/markets/getMorphoMarkets.js";
import {
type GetMorphoMarketUserPositionParameters,
type GetMorphoMarketUserPositionReturnType,
getMorphoMarketUserPosition,
} from "../actions/morpho/user-positions/getMorphoMarketUserPosition.js";
import {
type GetMorphoMarketUserPositionsParameters,
type GetMorphoMarketUserPositionsReturnType,
getMorphoMarketUserPositions,
} from "../actions/morpho/user-positions/getMorphoMarketUserPositions.js";
import {
type GetMorphoVaultUserPositionParameters,
type GetMorphoVaultUserPositionReturnType,
getMorphoVaultUserPosition,
} from "../actions/morpho/user-positions/getMorphoVaultUserPosition.js";
import {
type GetMorphoVaultUserPositionsParameters,
type GetMorphoVaultUserPositionsReturnType,
getMorphoVaultUserPositions,
} from "../actions/morpho/user-positions/getMorphoVaultUserPositions.js";
import {
type GetMorphoUserRewardsParameters,
type GetMorphoUserRewardsReturnType,
getMorphoUserRewards,
} from "../actions/morpho/user-rewards/getMorphoUserRewards.js";
import {
type GetMorphoUserStakingRewardsParameters,
type GetMorphoUserStakingRewardsReturnType,
getMorphoUserStakingRewards,
} from "../actions/morpho/user-rewards/getMorphoUserStakingRewards.js";
import {
type GetMorphoVaultParameters,
type GetMorphoVaultReturnType,
getMorphoVault,
} from "../actions/morpho/vaults/getMorphoVault.js";
import {
type GetMorphoVaultSnapshotsParameters,
type GetMorphoVaultSnapshotsReturnType,
getMorphoVaultSnapshots,
} from "../actions/morpho/vaults/getMorphoVaultSnapshots.js";
import {
type GetMorphoVaultStakingSnapshotsParameters,
type GetMorphoVaultStakingSnapshotsReturnType,
getMorphoVaultStakingSnapshots,
} from "../actions/morpho/vaults/getMorphoVaultStakingSnapshots.js";
import {
type GetMorphoVaultsParameters,
type GetMorphoVaultsReturnType,
getMorphoVaults,
} from "../actions/morpho/vaults/getMorphoVaults.js";
import type { Environment, SupportedChains } from "../environments/index.js";
export type Actions<
environments extends { [name in SupportedChains]?: Environment },
> = {
getBeamQuote: <chain extends Chain | undefined = Chain | undefined>(
args: GetBeamQuoteParameters<environments, chain>,
) => GetBeamQuoteReturnType;
getBeamTokenRoutes: () => GetBeamTokenRoutesReturnType;
getBeamTokenLimits: (
args: GetBeamTokenLimitsArgs,
) => GetBeamTokenLimitsReturnType;
getMarket: <chain extends Chain | undefined = Chain | undefined>(
args: GetMarketParameters<environments, chain>,
) => GetMarketReturnType;
getMarkets: <chain extends Chain | undefined = Chain | undefined>(
args?: GetMarketsParameters<environments, chain>,
) => GetMarketsReturnType;
getUserPosition: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserPositionParameters<environments, chain>,
) => GetUserPositionReturnType;
getUserPositions: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserPositionsParameters<environments, chain>,
) => GetUserPositionsReturnType;
getUserReward: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserRewardParameters<environments, chain>,
) => GetUserRewardReturnType;
getUserRewards: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserRewardsParameters<environments, chain>,
) => GetUserRewardsReturnType;
getUserBalances: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserBalancesParameters<environments, chain>,
) => GetUserBalancesReturnType;
getProposal: <chain extends Chain | undefined = Chain | undefined>(
args: GetProposalParameters<environments, chain>,
) => GetProposalReturnType;
getProposals: <chain extends Chain | undefined = Chain | undefined>(
args?: GetProposalsParameters<environments, chain>,
) => GetProposalsReturnType;
getSnapshotProposal: <chain extends Chain | undefined = Chain | undefined>(
args: GetSnapshotProposalParameters<environments, chain>,
) => GetSnapshotProposalReturnType;
getSnapshotProposals: <chain extends Chain | undefined = Chain | undefined>(
args?: GetSnapshotProposalsParameters<environments, chain>,
) => GetSnapshotProposalsReturnType;
getDelegates: () => GetDelegatesReturnType;
getDiscussions: () => GetDiscussionsReturnType;
getGovernanceTokenInfo: (
args: GetGovernanceTokenInfoParameters,
) => GetGovernanceTokenInfoReturnType;
getStakingInfo: <chain extends Chain | undefined = Chain | undefined>(
args?: GetStakingInfoParameters<environments, chain>,
) => GetStakingInfoReturnType;
getStakingSnapshots: <chain extends Chain | undefined = Chain | undefined>(
args?: GetStakingSnapshotsParameters<environments, chain>,
) => GetStakingSnapshotsReturnType;
getUserStakingInfo: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserStakingInfoParameters<environments, chain>,
) => GetUserStakingInfoReturnType;
getUserVoteReceipt: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserVoteReceiptParameters<environments, chain>,
) => GetUserVoteReceiptReturnType;
getUserVotingPowers: <chain extends Chain | undefined = Chain | undefined>(
args: GetUserVotingPowersParameters<environments, chain>,
) => GetUserVotingPowersReturnType;
getMorphoMarket: <chain extends Chain | undefined = Chain | undefined>(
args: GetMorphoMarketParameters<environments, chain>,
) => GetMorphoMarketReturnType;
getMorphoMarkets: <chain extends Chain | undefined = Chain | undefined>(
args?: GetMorphoMarketsParameters<environments, chain>,
) => GetMorphoMarketsReturnType;
getMorphoMarketUserPosition: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoMarketUserPositionParameters<environments, chain>,
) => GetMorphoMarketUserPositionReturnType;
getMorphoMarketUserPositions: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoMarketUserPositionsParameters<environments, chain>,
) => GetMorphoMarketUserPositionsReturnType;
getMorphoVaultUserPosition: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoVaultUserPositionParameters<environments, chain>,
) => GetMorphoVaultUserPositionReturnType;
getMorphoVaultUserPositions: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoVaultUserPositionsParameters<environments, chain>,
) => GetMorphoVaultUserPositionsReturnType;
getMorphoUserRewards: <chain extends Chain | undefined = Chain | undefined>(
args: GetMorphoUserRewardsParameters<environments, chain>,
) => GetMorphoUserRewardsReturnType;
getMorphoUserStakingRewards: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoUserStakingRewardsParameters<environments, chain>,
) => GetMorphoUserStakingRewardsReturnType;
getMorphoVault: <chain extends Chain | undefined = Chain | undefined>(
args: GetMorphoVaultParameters<environments, chain>,
) => GetMorphoVaultReturnType;
getMorphoVaults: <chain extends Chain | undefined = Chain | undefined>(
args?: GetMorphoVaultsParameters<environments, chain>,
) => GetMorphoVaultsReturnType;
getMorphoUserBalances: <chain extends Chain | undefined = Chain | undefined>(
args: GetMorphoUserBalancesParameters<environments, chain>,
) => GetMorphoUserBalancesReturnType;
getCirculatingSupplySnapshots: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetCirculatingSupplySnapshotsParameters<environments, chain>,
) => GetCirculatingSupplySnapshotsReturnType;
getMarketSnapshots: <chain extends Chain | undefined = Chain | undefined>(
args: GetMarketSnapshotsParameters<environments, chain>,
) => GetMarketSnapshotsReturnType;
getMorphoVaultSnapshots: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoVaultSnapshotsParameters<environments, chain>,
) => GetMorphoVaultSnapshotsReturnType;
getMorphoVaultStakingSnapshots: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoVaultStakingSnapshotsParameters<environments, chain>,
) => GetMorphoVaultStakingSnapshotsReturnType;
getUserPositionSnapshots: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetUserPositionSnapshotsParameters<environments, chain>,
) => GetUserPositionSnapshotsReturnType;
getMorphoVaultUserPositionSnapshots: <
chain extends Chain | undefined = Chain | undefined,
>(
args: GetMorphoVaultUserPositionSnapshotsParameters<environments, chain>,
) => GetMorphoVaultUserPositionSnapshotsReturnType;
};
export const actions = <
environments extends { [name in SupportedChains]?: Environment },
>(
client: MoonwellClient<environments>,
): Actions<environments> => {
return {
getBeamTokenLimits: (args) => getBeamTokenLimits(args),
getBeamQuote: (args) => getBeamQuote(client, args),
getBeamTokenRoutes: () => getBeamTokenRoutes(client),
getMarket: (args) => getMarket(client, args),
getMarkets: (args) => getMarkets(client, args),
getUserPosition: (args) => getUserPosition(client, args),
getUserPositions: (args) => getUserPositions(client, args),
getUserReward: (args) => getUserReward(client, args),
getUserRewards: (args) => getUserRewards(client, args),
getUserBalances: (args) => getUserBalances(client, args),
getProposal: (args) => getProposal(client, args),
getProposals: (args) => getProposals(client, args),
getSnapshotProposal: (args) => getSnapshotProposal(client, args),
getSnapshotProposals: (args) => getSnapshotProposals(client, args),
getDelegates: () => getDelegates(client),
getDiscussions: () => getDiscussions(client),
getGovernanceTokenInfo: (args) => getGovernanceTokenInfo(client, args),
getStakingInfo: (args) => getStakingInfo(client, args),
getStakingSnapshots: (args) => getStakingSnapshots(client, args),
getUserStakingInfo: (args) => getUserStakingInfo(client, args),
getUserVoteReceipt: (args) => getUserVoteReceipt(client, args),
getUserVotingPowers: (args) => getUserVotingPowers(client, args),
getMorphoMarket: (args) => getMorphoMarket(client, args),
getMorphoMarkets: (args) => getMorphoMarkets(client, args),
getMorphoMarketUserPosition: (args) =>
getMorphoMarketUserPosition(client, args),
getMorphoMarketUserPositions: (args) =>
getMorphoMarketUserPositions(client, args),
getMorphoVaultUserPosition: (args) =>
getMorphoVaultUserPosition(client, args),
getMorphoVaultUserPositions: (args) =>
getMorphoVaultUserPositions(client, args),
getMorphoUserRewards: (args) => getMorphoUserRewards(client, args),
getMorphoUserStakingRewards: (args) =>
getMorphoUserStakingRewards(client, args),
getMorphoVault: (args) => getMorphoVault(client, args),
getMorphoVaults: (args) => getMorphoVaults(client, args),
getMorphoUserBalances: (args) => getMorphoUserBalances(client, args),
getCirculatingSupplySnapshots: (args) =>
getCirculatingSupplySnapshots(client, args),
getMarketSnapshots: (args) => getMarketSnapshots(client, args),
getMorphoVaultSnapshots: (args) => getMorphoVaultSnapshots(client, args),
getMorphoVaultStakingSnapshots: (args) =>
getMorphoVaultStakingSnapshots(client, args),
getUserPositionSnapshots: (args) => getUserPositionSnapshots(client, args),
getMorphoVaultUserPositionSnapshots: (args) =>
getMorphoVaultUserPositionSnapshots(client, args),
};
};