From 6480d4ca5984284ebe1018e7fafbd216c2c2d9f8 Mon Sep 17 00:00:00 2001 From: Petar Todorovic Date: Fri, 8 May 2026 15:43:40 +0200 Subject: [PATCH] feat: schema changes + ci fix --- .github/workflows/ci.yml | 10 +- mise.toml | 4 +- src/api/index.msw.ts | 563 +++++++++++++++--- src/api/index.ts | 32 +- src/api/schemas/campaignPayoutFrequency.ts | 9 + .../schemas/campaignQualificationConfigDto.ts | 12 + src/api/schemas/campaignQualificationType.ts | 6 + src/api/schemas/campaignRewardMode.ts | 7 + src/api/schemas/campaignStatus.ts | 9 + src/api/schemas/index.ts | 36 +- src/api/schemas/networks.ts | 3 + src/api/schemas/rewardDtoYieldSource.ts | 2 +- src/api/schemas/riskParameterDto.ts | 19 - src/api/schemas/riskParameterDtoAsset.ts | 1 - .../schemas/riskParameterDtoIntegrationId.ts | 1 - src/api/schemas/riskParameterDtoProtocol.ts | 1 - src/api/schemas/riskParameterDtoValue.ts | 1 - src/api/schemas/yieldCampaignDto.ts | 46 ++ src/api/schemas/yieldDto.ts | 6 +- src/api/schemas/yieldRiskDto.ts | 4 +- src/api/schemas/yieldRiskEntryDto.ts | 8 + src/api/schemas/yieldRiskEntryDtoSource.ts | 11 + src/api/schemas/yieldRiskStakingRewardsDto.ts | 44 ++ .../yieldRiskStakingRewardsDtoChain.ts | 4 + ...eldRiskStakingRewardsDtoContractAddress.ts | 6 + ...eldRiskStakingRewardsDtoPotentialRating.ts | 6 + ...ieldRiskStakingRewardsDtoPotentialScore.ts | 6 + .../yieldRiskStakingRewardsDtoProfileUrl.ts | 4 + .../yieldRiskStakingRewardsDtoProviderName.ts | 4 + .../yieldRiskStakingRewardsDtoRatedAt.ts | 4 + .../yieldRiskStakingRewardsDtoRatedSince.ts | 4 + .../yieldRiskStakingRewardsDtoRating.ts | 4 + .../yieldRiskStakingRewardsDtoReportUrl.ts | 4 + .../yieldRiskStakingRewardsDtoScore.ts | 4 + .../schemas/yieldRiskStakingRewardsDtoType.ts | 4 + .../yieldRiskStakingRewardsDtoVersion.ts | 4 + .../yieldRiskStakingRewardsMetricsDto.ts | 6 + .../yieldRiskStakingRewardsMetricsDtoUsers.ts | 4 + src/api/schemas/yieldRiskSummaryDto.ts | 6 + .../yieldsControllerGetYieldCampaigns200.ts | 6 + .../yieldsControllerGetYieldCampaigns400.ts | 5 + .../yieldsControllerGetYieldCampaigns401.ts | 5 + .../yieldsControllerGetYieldCampaigns429.ts | 6 + .../yieldsControllerGetYieldCampaigns500.ts | 5 + ...yieldsControllerGetYieldCampaignsParams.ts | 19 + 45 files changed, 832 insertions(+), 123 deletions(-) create mode 100644 src/api/schemas/campaignPayoutFrequency.ts create mode 100644 src/api/schemas/campaignQualificationConfigDto.ts create mode 100644 src/api/schemas/campaignQualificationType.ts create mode 100644 src/api/schemas/campaignRewardMode.ts create mode 100644 src/api/schemas/campaignStatus.ts delete mode 100644 src/api/schemas/riskParameterDto.ts delete mode 100644 src/api/schemas/riskParameterDtoAsset.ts delete mode 100644 src/api/schemas/riskParameterDtoIntegrationId.ts delete mode 100644 src/api/schemas/riskParameterDtoProtocol.ts delete mode 100644 src/api/schemas/riskParameterDtoValue.ts create mode 100644 src/api/schemas/yieldCampaignDto.ts create mode 100644 src/api/schemas/yieldRiskEntryDto.ts create mode 100644 src/api/schemas/yieldRiskEntryDtoSource.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDto.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoChain.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoContractAddress.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoPotentialRating.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoPotentialScore.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoProfileUrl.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoProviderName.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoRatedAt.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoRatedSince.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoRating.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoReportUrl.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoScore.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoType.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsDtoVersion.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsMetricsDto.ts create mode 100644 src/api/schemas/yieldRiskStakingRewardsMetricsDtoUsers.ts create mode 100644 src/api/schemas/yieldRiskSummaryDto.ts create mode 100644 src/api/schemas/yieldsControllerGetYieldCampaigns200.ts create mode 100644 src/api/schemas/yieldsControllerGetYieldCampaigns400.ts create mode 100644 src/api/schemas/yieldsControllerGetYieldCampaigns401.ts create mode 100644 src/api/schemas/yieldsControllerGetYieldCampaigns429.ts create mode 100644 src/api/schemas/yieldsControllerGetYieldCampaigns500.ts create mode 100644 src/api/schemas/yieldsControllerGetYieldCampaignsParams.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e930de..14c1b55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,9 +10,15 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 - - uses: jdx/mise-action@v2 + - name: Install mise + run: | + curl https://mise.run | sh + echo "$HOME/.local/share/mise/bin" >> $GITHUB_PATH + echo "$HOME/.local/share/mise/shims" >> $GITHUB_PATH + mise install - run: pnpm install --frozen-lockfile diff --git a/mise.toml b/mise.toml index 984ab6e..7775577 100644 --- a/mise.toml +++ b/mise.toml @@ -1,3 +1,3 @@ [tools] -node = "24" -pnpm = "10" +node = "24.15.0" +pnpm = "10.33.2" diff --git a/src/api/index.msw.ts b/src/api/index.msw.ts index e859e03..3241c27 100644 --- a/src/api/index.msw.ts +++ b/src/api/index.msw.ts @@ -11,20 +11,24 @@ import type { ProviderDto, ProvidersControllerGetProviders200, RewardRateHistoryResponseDto, - RiskParameterDto, TransactionDto, TvlHistoryResponseDto, YieldBalancesDto, YieldDto, + YieldRiskDto, YieldsControllerGetBalanceHistory200, + YieldsControllerGetYieldCampaigns200, YieldsControllerGetYields200, YieldsControllerGetYieldValidators200, } from "./schemas"; import { BalanceType, + CampaignPayoutFrequency, + CampaignQualificationType, + CampaignRewardMode, + CampaignStatus, ERCStandards, HealthStatus, - Networks, RewardClaiming, RewardSchedule, YieldType, @@ -792,7 +796,7 @@ export const getYieldsControllerGetYieldsResponseMock = "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -856,29 +860,17 @@ export const getYieldsControllerGetYieldsResponseMock = risk: faker.helpers.arrayElement([ { ...{ - updatedAt: faker.string.alpha({ length: { min: 10, max: 20 } }), - exponentialFi: faker.helpers.arrayElement([ - { - poolRating: faker.helpers.arrayElement([{}, undefined]), - poolScore: faker.helpers.arrayElement([{}, undefined]), - ratingDescription: faker.helpers.arrayElement([ - {}, - undefined, - ]), - url: faker.helpers.arrayElement([{}, undefined]), - }, - undefined, - ]), - credora: faker.helpers.arrayElement([ - { - rating: faker.helpers.arrayElement([{}, undefined]), - score: faker.helpers.arrayElement([{}, undefined]), - psl: faker.helpers.arrayElement([{}, undefined]), - publishDate: faker.helpers.arrayElement([{}, undefined]), - curator: faker.helpers.arrayElement([{}, undefined]), - }, - undefined, - ]), + ratings: Array.from( + { length: faker.number.int({ min: 1, max: 10 }) }, + (_, i) => i + 1, + ).map(() => ({ + rating: faker.string.alpha({ length: { min: 10, max: 20 } }), + source: faker.helpers.arrayElement([ + "credora", + "exponential", + "stakingRewards", + ] as const), + })), }, }, undefined, @@ -2880,7 +2872,7 @@ export const getYieldsControllerGetAggregateBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -3222,7 +3214,7 @@ export const getYieldsControllerGetAggregateBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -3999,7 +3991,7 @@ export const getYieldsControllerGetAggregateBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -4355,7 +4347,7 @@ export const getYieldsControllerGetAggregateBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -4828,7 +4820,7 @@ export const getYieldsControllerGetAggregateBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -5597,7 +5589,7 @@ export const getYieldsControllerGetYieldResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -5661,26 +5653,17 @@ export const getYieldsControllerGetYieldResponseMock = ( risk: faker.helpers.arrayElement([ { ...{ - updatedAt: faker.string.alpha({ length: { min: 10, max: 20 } }), - exponentialFi: faker.helpers.arrayElement([ - { - poolRating: faker.helpers.arrayElement([{}, undefined]), - poolScore: faker.helpers.arrayElement([{}, undefined]), - ratingDescription: faker.helpers.arrayElement([{}, undefined]), - url: faker.helpers.arrayElement([{}, undefined]), - }, - undefined, - ]), - credora: faker.helpers.arrayElement([ - { - rating: faker.helpers.arrayElement([{}, undefined]), - score: faker.helpers.arrayElement([{}, undefined]), - psl: faker.helpers.arrayElement([{}, undefined]), - publishDate: faker.helpers.arrayElement([{}, undefined]), - curator: faker.helpers.arrayElement([{}, undefined]), - }, - undefined, - ]), + ratings: Array.from( + { length: faker.number.int({ min: 1, max: 10 }) }, + (_, i) => i + 1, + ).map(() => ({ + rating: faker.string.alpha({ length: { min: 10, max: 20 } }), + source: faker.helpers.arrayElement([ + "credora", + "exponential", + "stakingRewards", + ] as const), + })), }, }, undefined, @@ -7097,27 +7080,53 @@ export const getYieldsControllerGetYieldResponseMock = ( ...overrideResponse, }); -export const getYieldsControllerGetYieldRiskResponseMock = - (): RiskParameterDto[] => - Array.from( - { length: faker.number.int({ min: 1, max: 10 }) }, - (_, i) => i + 1, - ).map(() => ({ - id: faker.string.alpha({ length: { min: 10, max: 20 } }), - category: faker.string.alpha({ length: { min: 10, max: 20 } }), - item: faker.string.alpha({ length: { min: 10, max: 20 } }), - isDynamic: faker.datatype.boolean(), - value: faker.helpers.arrayElement([{}, undefined]), - network: faker.helpers.arrayElement([ - faker.helpers.arrayElement(Object.values(Networks)), +export const getYieldsControllerGetYieldRiskResponseMock = ( + overrideResponse: Partial> = {}, +): YieldRiskDto => ({ + updatedAt: faker.string.alpha({ length: { min: 10, max: 20 } }), + exponentialFi: faker.helpers.arrayElement([ + { + poolRating: faker.helpers.arrayElement([{}, undefined]), + poolScore: faker.helpers.arrayElement([{}, undefined]), + ratingDescription: faker.helpers.arrayElement([{}, undefined]), + url: faker.helpers.arrayElement([{}, undefined]), + }, + undefined, + ]), + credora: faker.helpers.arrayElement([ + { + rating: faker.helpers.arrayElement([{}, undefined]), + score: faker.helpers.arrayElement([{}, undefined]), + psl: faker.helpers.arrayElement([{}, undefined]), + publishDate: faker.helpers.arrayElement([{}, undefined]), + curator: faker.helpers.arrayElement([{}, undefined]), + }, + undefined, + ]), + stakingRewards: faker.helpers.arrayElement([ + { + rating: faker.helpers.arrayElement([{}, undefined]), + score: faker.helpers.arrayElement([{}, undefined]), + potentialRating: faker.helpers.arrayElement([{}, undefined]), + potentialScore: faker.helpers.arrayElement([{}, undefined]), + ratedAt: faker.helpers.arrayElement([{}, undefined]), + ratedSince: faker.helpers.arrayElement([{}, undefined]), + profileUrl: faker.helpers.arrayElement([{}, undefined]), + reportUrl: faker.helpers.arrayElement([{}, undefined]), + providerName: faker.helpers.arrayElement([{}, undefined]), + version: faker.helpers.arrayElement([{}, undefined]), + type: faker.helpers.arrayElement([{}, undefined]), + chain: faker.helpers.arrayElement([{}, undefined]), + contractAddress: faker.helpers.arrayElement([{}, undefined]), + riskMetrics: faker.helpers.arrayElement([ + { users: faker.helpers.arrayElement([{}, undefined]) }, undefined, ]), - asset: faker.helpers.arrayElement([{}, undefined]), - protocol: faker.helpers.arrayElement([{}, undefined]), - integrationId: faker.helpers.arrayElement([{}, undefined]), - createdAt: faker.date.past().toISOString().slice(0, 19) + "Z", - updatedAt: faker.date.past().toISOString().slice(0, 19) + "Z", - })); + }, + undefined, + ]), + ...overrideResponse, +}); export const getYieldsControllerGetBalanceHistoryResponseMock = (): YieldsControllerGetBalanceHistory200 => ({ @@ -7592,7 +7601,7 @@ export const getYieldsControllerGetBalanceHistoryResponseMock = "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -7954,7 +7963,7 @@ export const getYieldsControllerGetBalanceHistoryResponseMock = "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -8736,7 +8745,7 @@ export const getYieldsControllerGetYieldBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -9074,7 +9083,7 @@ export const getYieldsControllerGetYieldBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -9849,7 +9858,7 @@ export const getYieldsControllerGetYieldBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -10197,7 +10206,7 @@ export const getYieldsControllerGetYieldBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -10666,7 +10675,7 @@ export const getYieldsControllerGetYieldBalancesResponseMock = ( "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -10891,7 +10900,7 @@ export const getYieldsControllerGetYieldValidatorsResponseMock = "protocol_incentive", "campaign_incentive", "points", - "lending_interest", + "lending", "mev", "real_world_asset_yield", "vault", @@ -11070,6 +11079,371 @@ export const getYieldsControllerGetYieldValidatorsResponseMock = }, }); +export const getYieldsControllerGetYieldCampaignsResponseMock = + (): YieldsControllerGetYieldCampaigns200 => ({ + ...{ + total: faker.number.float({ fractionDigits: 2 }), + offset: faker.number.float({ fractionDigits: 2 }), + limit: faker.number.float({ fractionDigits: 2 }), + }, + ...{ + items: faker.helpers.arrayElement([ + Array.from( + { length: faker.number.int({ min: 1, max: 10 }) }, + (_, i) => i + 1, + ).map(() => ({ + id: faker.string.alpha({ length: { min: 10, max: 20 } }), + name: faker.helpers.arrayElement([ + faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + null, + ]), + undefined, + ]), + createdAt: faker.date.past().toISOString().slice(0, 19) + "Z", + updatedAt: faker.date.past().toISOString().slice(0, 19) + "Z", + yieldId: faker.string.alpha({ length: { min: 10, max: 20 } }), + status: faker.helpers.arrayElement(Object.values(CampaignStatus)), + rewardMode: faker.helpers.arrayElement( + Object.values(CampaignRewardMode), + ), + rewardRate: { + ...{ + total: faker.number.float({ fractionDigits: 2 }), + rateType: faker.string.alpha({ length: { min: 10, max: 20 } }), + components: Array.from( + { length: faker.number.int({ min: 1, max: 10 }) }, + (_, i) => i + 1, + ).map(() => ({ + rate: faker.number.float({ fractionDigits: 2 }), + rateType: faker.string.alpha({ length: { min: 10, max: 20 } }), + token: { + ...{ + symbol: faker.string.alpha({ + length: { min: 10, max: 20 }, + }), + name: faker.string.alpha({ length: { min: 10, max: 20 } }), + decimals: faker.number.float({ fractionDigits: 2 }), + network: faker.helpers.arrayElement([ + "ethereum", + "ethereum-goerli", + "ethereum-holesky", + "ethereum-sepolia", + "ethereum-hoodi", + "arbitrum", + "base", + "base-sepolia", + "gnosis", + "optimism", + "polygon", + "polygon-amoy", + "starknet", + "zksync", + "linea", + "unichain", + "monad-testnet", + "monad", + "avalanche-c", + "avalanche-c-atomic", + "avalanche-p", + "binance", + "celo", + "fantom", + "harmony", + "moonriver", + "okc", + "viction", + "core", + "sonic", + "plasma", + "katana", + "hyperevm", + "agoric", + "akash", + "axelar", + "band-protocol", + "bitsong", + "canto", + "chihuahua", + "comdex", + "coreum", + "cosmos", + "crescent", + "cronos", + "cudos", + "desmos", + "dydx", + "evmos", + "fetch-ai", + "gravity-bridge", + "injective", + "irisnet", + "juno", + "kava", + "ki-network", + "mars-protocol", + "nym", + "okex-chain", + "onomy", + "osmosis", + "persistence", + "quicksilver", + "regen", + "secret", + "sentinel", + "sommelier", + "stafi", + "stargaze", + "stride", + "teritori", + "tgrade", + "umee", + "sei", + "mantra", + "celestia", + "saga", + "zetachain", + "dymension", + "humansai", + "neutron", + "polkadot", + "kusama", + "westend", + "bittensor", + "aptos", + "binancebeacon", + "cardano", + "near", + "solana", + "solana-devnet", + "stellar", + "stellar-testnet", + "sui", + "tezos", + "tron", + "ton", + "ton-testnet", + "hyperliquid", + ] as const), + address: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + logoURI: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + isPoints: faker.helpers.arrayElement([ + faker.datatype.boolean(), + undefined, + ]), + coinGeckoId: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + }, + }, + yieldSource: faker.helpers.arrayElement([ + "staking", + "restaking", + "protocol_incentive", + "campaign_incentive", + "points", + "lending", + "mev", + "real_world_asset_yield", + "vault", + ] as const), + description: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + })), + }, + }, + totalBudget: faker.string.alpha({ length: { min: 10, max: 20 } }), + distributedBudget: faker.string.alpha({ + length: { min: 10, max: 20 }, + }), + remainingBudget: faker.string.alpha({ length: { min: 10, max: 20 } }), + configuredHourlyEmission: faker.helpers.arrayElement([ + faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + null, + ]), + undefined, + ]), + apyCeiling: faker.helpers.arrayElement([ + faker.helpers.arrayElement([ + faker.number.float({ fractionDigits: 2 }), + null, + ]), + undefined, + ]), + qualificationConfig: { + ...{ + type: faker.helpers.arrayElement( + Object.values(CampaignQualificationType), + ), + threshold: faker.string.alpha({ length: { min: 10, max: 20 } }), + maxIncentivizedTvlToken: faker.helpers.arrayElement([ + faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + null, + ]), + undefined, + ]), + }, + }, + startTime: faker.date.past().toISOString().slice(0, 19) + "Z", + endTime: faker.date.past().toISOString().slice(0, 19) + "Z", + lastProcessedHour: faker.helpers.arrayElement([ + faker.helpers.arrayElement([ + faker.date.past().toISOString().slice(0, 19) + "Z", + null, + ]), + undefined, + ]), + nextPayoutDueAt: faker.helpers.arrayElement([ + faker.helpers.arrayElement([ + faker.date.past().toISOString().slice(0, 19) + "Z", + null, + ]), + undefined, + ]), + payoutFrequency: faker.helpers.arrayElement( + Object.values(CampaignPayoutFrequency), + ), + rewardToken: { + ...{ + symbol: faker.string.alpha({ length: { min: 10, max: 20 } }), + name: faker.string.alpha({ length: { min: 10, max: 20 } }), + decimals: faker.number.float({ fractionDigits: 2 }), + network: faker.helpers.arrayElement([ + "ethereum", + "ethereum-goerli", + "ethereum-holesky", + "ethereum-sepolia", + "ethereum-hoodi", + "arbitrum", + "base", + "base-sepolia", + "gnosis", + "optimism", + "polygon", + "polygon-amoy", + "starknet", + "zksync", + "linea", + "unichain", + "monad-testnet", + "monad", + "avalanche-c", + "avalanche-c-atomic", + "avalanche-p", + "binance", + "celo", + "fantom", + "harmony", + "moonriver", + "okc", + "viction", + "core", + "sonic", + "plasma", + "katana", + "hyperevm", + "agoric", + "akash", + "axelar", + "band-protocol", + "bitsong", + "canto", + "chihuahua", + "comdex", + "coreum", + "cosmos", + "crescent", + "cronos", + "cudos", + "desmos", + "dydx", + "evmos", + "fetch-ai", + "gravity-bridge", + "injective", + "irisnet", + "juno", + "kava", + "ki-network", + "mars-protocol", + "nym", + "okex-chain", + "onomy", + "osmosis", + "persistence", + "quicksilver", + "regen", + "secret", + "sentinel", + "sommelier", + "stafi", + "stargaze", + "stride", + "teritori", + "tgrade", + "umee", + "sei", + "mantra", + "celestia", + "saga", + "zetachain", + "dymension", + "humansai", + "neutron", + "polkadot", + "kusama", + "westend", + "bittensor", + "aptos", + "binancebeacon", + "cardano", + "near", + "solana", + "solana-devnet", + "stellar", + "stellar-testnet", + "sui", + "tezos", + "tron", + "ton", + "ton-testnet", + "hyperliquid", + ] as const), + address: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + logoURI: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + isPoints: faker.helpers.arrayElement([ + faker.datatype.boolean(), + undefined, + ]), + coinGeckoId: faker.helpers.arrayElement([ + faker.string.alpha({ length: { min: 10, max: 20 } }), + undefined, + ]), + }, + }, + })), + undefined, + ]), + }, + }); + export const getActionsControllerGetActionsResponseMock = (): ActionsControllerGetActions200 => ({ ...{ @@ -15272,10 +15646,10 @@ export const getYieldsControllerGetYieldMockHandler = ( export const getYieldsControllerGetYieldRiskMockHandler = ( overrideResponse?: - | RiskParameterDto[] + | YieldRiskDto | (( info: Parameters[1]>[0], - ) => Promise | RiskParameterDto[]), + ) => Promise | YieldRiskDto), options?: RequestHandlerOptions, ) => { return http.get( @@ -15444,6 +15818,32 @@ export const getYieldsControllerGetYieldValidatorsMockHandler = ( ); }; +export const getYieldsControllerGetYieldCampaignsMockHandler = ( + overrideResponse?: + | YieldsControllerGetYieldCampaigns200 + | (( + info: Parameters[1]>[0], + ) => + | Promise + | YieldsControllerGetYieldCampaigns200), + options?: RequestHandlerOptions, +) => { + return http.get( + "*/v1/yields/:yieldId/campaigns", + async (info: Parameters[1]>[0]) => { + return HttpResponse.json( + overrideResponse !== undefined + ? typeof overrideResponse === "function" + ? await overrideResponse(info) + : overrideResponse + : getYieldsControllerGetYieldCampaignsResponseMock(), + { status: 200 }, + ); + }, + options, + ); +}; + export const getActionsControllerGetActionsMockHandler = ( overrideResponse?: | ActionsControllerGetActions200 @@ -15746,6 +16146,7 @@ export const getYieldXyzAPIMock = () => [ getYieldsControllerGetYieldRewardRateHistoryMockHandler(), getYieldsControllerGetYieldTvlHistoryMockHandler(), getYieldsControllerGetYieldValidatorsMockHandler(), + getYieldsControllerGetYieldCampaignsMockHandler(), getActionsControllerGetActionsMockHandler(), getActionsControllerGetActionMockHandler(), getActionsControllerEnterYieldMockHandler(), diff --git a/src/api/index.ts b/src/api/index.ts index 463d9be..52ff6d9 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -14,7 +14,6 @@ import type { ProvidersControllerGetProviders200, ProvidersControllerGetProvidersParams, RewardRateHistoryResponseDto, - RiskParameterDto, SubmitHashDto, SubmitTransactionDto, TransactionDto, @@ -22,8 +21,11 @@ import type { YieldBalancesDto, YieldBalancesRequestDto, YieldDto, + YieldRiskDto, YieldsControllerGetBalanceHistory200, YieldsControllerGetBalanceHistoryParams, + YieldsControllerGetYieldCampaigns200, + YieldsControllerGetYieldCampaignsParams, YieldsControllerGetYieldRewardRateHistoryParams, YieldsControllerGetYieldRewardsParams, YieldsControllerGetYields200, @@ -83,14 +85,14 @@ export const getYield = ( }; /** - * Retrieve risk metadata associated with a specific yield. - * @summary Get risk metadata for a yield + * Retrieve consolidated risk ratings from third-party providers for a yield. + * @summary Get risk ratings for a yield */ export const getYieldRisk = ( yieldId: string, - options?: SecondParameter>, + options?: SecondParameter>, ) => { - return customFetch( + return customFetch( { url: `/v1/yields/${yieldId}/risk`, method: "GET" }, options, ); @@ -195,6 +197,23 @@ export const getYieldValidators = ( ); }; +/** + * Returns campaign metadata for the given yield opportunity within the API key project scope. + * @summary Get yield campaigns + */ +export const getYieldCampaigns = ( + yieldId: string, + params?: YieldsControllerGetYieldCampaignsParams, + options?: SecondParameter< + typeof customFetch + >, +) => { + return customFetch( + { url: `/v1/yields/${yieldId}/campaigns`, method: "GET", params }, + options, + ); +}; + /** * Retrieve all actions performed by a user, with optional filtering by yield, status, category, etc. In the future, this may include personalized action recommendations. * @summary Get user actions @@ -418,6 +437,9 @@ export type GetYieldTvlHistoryResult = NonNullable< export type GetYieldValidatorsResult = NonNullable< Awaited> >; +export type GetYieldCampaignsResult = NonNullable< + Awaited> +>; export type GetActionsResult = NonNullable< Awaited> >; diff --git a/src/api/schemas/campaignPayoutFrequency.ts b/src/api/schemas/campaignPayoutFrequency.ts new file mode 100644 index 0000000..7807d4a --- /dev/null +++ b/src/api/schemas/campaignPayoutFrequency.ts @@ -0,0 +1,9 @@ +export type CampaignPayoutFrequency = + (typeof CampaignPayoutFrequency)[keyof typeof CampaignPayoutFrequency]; + +export const CampaignPayoutFrequency = { + weekly: "weekly", + daily: "daily", + six_hourly: "six_hourly", + end_of_campaign: "end_of_campaign", +} as const; diff --git a/src/api/schemas/campaignQualificationConfigDto.ts b/src/api/schemas/campaignQualificationConfigDto.ts new file mode 100644 index 0000000..9e7633b --- /dev/null +++ b/src/api/schemas/campaignQualificationConfigDto.ts @@ -0,0 +1,12 @@ +import type { CampaignQualificationType } from "./campaignQualificationType"; + +export interface CampaignQualificationConfigDto { + type: CampaignQualificationType; + /** Minimum qualifying token amount balance. */ + threshold: string; + /** + * Optional per-user token cap. + * @nullable + */ + maxIncentivizedTvlToken?: string | null; +} diff --git a/src/api/schemas/campaignQualificationType.ts b/src/api/schemas/campaignQualificationType.ts new file mode 100644 index 0000000..d947fae --- /dev/null +++ b/src/api/schemas/campaignQualificationType.ts @@ -0,0 +1,6 @@ +export type CampaignQualificationType = + (typeof CampaignQualificationType)[keyof typeof CampaignQualificationType]; + +export const CampaignQualificationType = { + min_token_amount: "min_token_amount", +} as const; diff --git a/src/api/schemas/campaignRewardMode.ts b/src/api/schemas/campaignRewardMode.ts new file mode 100644 index 0000000..fa6df0e --- /dev/null +++ b/src/api/schemas/campaignRewardMode.ts @@ -0,0 +1,7 @@ +export type CampaignRewardMode = + (typeof CampaignRewardMode)[keyof typeof CampaignRewardMode]; + +export const CampaignRewardMode = { + normal: "normal", + compound: "compound", +} as const; diff --git a/src/api/schemas/campaignStatus.ts b/src/api/schemas/campaignStatus.ts new file mode 100644 index 0000000..cf9c2e2 --- /dev/null +++ b/src/api/schemas/campaignStatus.ts @@ -0,0 +1,9 @@ +export type CampaignStatus = + (typeof CampaignStatus)[keyof typeof CampaignStatus]; + +export const CampaignStatus = { + draft: "draft", + active: "active", + paused: "paused", + ended: "ended", +} as const; diff --git a/src/api/schemas/index.ts b/src/api/schemas/index.ts index bfe6d96..ec7b3c3 100644 --- a/src/api/schemas/index.ts +++ b/src/api/schemas/index.ts @@ -59,6 +59,11 @@ export * from "./balancesQueryDto"; export * from "./balancesRequestDto"; export * from "./balancesResponseDto"; export * from "./balanceType"; +export * from "./campaignPayoutFrequency"; +export * from "./campaignQualificationConfigDto"; +export * from "./campaignQualificationType"; +export * from "./campaignRewardMode"; +export * from "./campaignStatus"; export * from "./capacityDto"; export * from "./concentratedLiquidityPoolStateDto"; export * from "./createActionDto"; @@ -114,11 +119,6 @@ export * from "./rewardRateHistoryResponseDto"; export * from "./rewardRateHistoryResponseDtoInterval"; export * from "./rewardRateSnapshotDto"; export * from "./rewardSchedule"; -export * from "./riskParameterDto"; -export * from "./riskParameterDtoAsset"; -export * from "./riskParameterDtoIntegrationId"; -export * from "./riskParameterDtoProtocol"; -export * from "./riskParameterDtoValue"; export * from "./submitHashDto"; export * from "./submitTransactionDto"; export * from "./timePeriodDto"; @@ -151,6 +151,7 @@ export * from "./validatorProviderDtoType"; export * from "./validatorQueryDto"; export * from "./yieldBalancesDto"; export * from "./yieldBalancesRequestDto"; +export * from "./yieldCampaignDto"; export * from "./yieldDto"; export * from "./yieldDtoNetwork"; export * from "./yieldEntryLimitsDto"; @@ -174,11 +175,30 @@ export * from "./yieldRiskCredoraDtoPublishDate"; export * from "./yieldRiskCredoraDtoRating"; export * from "./yieldRiskCredoraDtoScore"; export * from "./yieldRiskDto"; +export * from "./yieldRiskEntryDto"; +export * from "./yieldRiskEntryDtoSource"; export * from "./yieldRiskExponentialDto"; export * from "./yieldRiskExponentialDtoPoolRating"; export * from "./yieldRiskExponentialDtoPoolScore"; export * from "./yieldRiskExponentialDtoRatingDescription"; export * from "./yieldRiskExponentialDtoUrl"; +export * from "./yieldRiskStakingRewardsDto"; +export * from "./yieldRiskStakingRewardsDtoChain"; +export * from "./yieldRiskStakingRewardsDtoContractAddress"; +export * from "./yieldRiskStakingRewardsDtoPotentialRating"; +export * from "./yieldRiskStakingRewardsDtoPotentialScore"; +export * from "./yieldRiskStakingRewardsDtoProfileUrl"; +export * from "./yieldRiskStakingRewardsDtoProviderName"; +export * from "./yieldRiskStakingRewardsDtoRatedAt"; +export * from "./yieldRiskStakingRewardsDtoRatedSince"; +export * from "./yieldRiskStakingRewardsDtoRating"; +export * from "./yieldRiskStakingRewardsDtoReportUrl"; +export * from "./yieldRiskStakingRewardsDtoScore"; +export * from "./yieldRiskStakingRewardsDtoType"; +export * from "./yieldRiskStakingRewardsDtoVersion"; +export * from "./yieldRiskStakingRewardsMetricsDto"; +export * from "./yieldRiskStakingRewardsMetricsDtoUsers"; +export * from "./yieldRiskSummaryDto"; export * from "./yieldStateDto"; export * from "./yieldStatisticsDto"; export * from "./yieldStatusDto"; @@ -202,6 +222,12 @@ export * from "./yieldsControllerGetYieldBalances400"; export * from "./yieldsControllerGetYieldBalances401"; export * from "./yieldsControllerGetYieldBalances429"; export * from "./yieldsControllerGetYieldBalances500"; +export * from "./yieldsControllerGetYieldCampaigns200"; +export * from "./yieldsControllerGetYieldCampaigns400"; +export * from "./yieldsControllerGetYieldCampaigns401"; +export * from "./yieldsControllerGetYieldCampaigns429"; +export * from "./yieldsControllerGetYieldCampaigns500"; +export * from "./yieldsControllerGetYieldCampaignsParams"; export * from "./yieldsControllerGetYieldRewardRateHistory400"; export * from "./yieldsControllerGetYieldRewardRateHistory401"; export * from "./yieldsControllerGetYieldRewardRateHistory429"; diff --git a/src/api/schemas/networks.ts b/src/api/schemas/networks.ts index 3bf4421..1c9972f 100644 --- a/src/api/schemas/networks.ts +++ b/src/api/schemas/networks.ts @@ -1,3 +1,6 @@ +/** + * Network for this address + */ export type Networks = (typeof Networks)[keyof typeof Networks]; export const Networks = { diff --git a/src/api/schemas/rewardDtoYieldSource.ts b/src/api/schemas/rewardDtoYieldSource.ts index 398493f..100b355 100644 --- a/src/api/schemas/rewardDtoYieldSource.ts +++ b/src/api/schemas/rewardDtoYieldSource.ts @@ -10,7 +10,7 @@ export const RewardDtoYieldSource = { protocol_incentive: "protocol_incentive", campaign_incentive: "campaign_incentive", points: "points", - lending_interest: "lending_interest", + lending: "lending", mev: "mev", real_world_asset_yield: "real_world_asset_yield", vault: "vault", diff --git a/src/api/schemas/riskParameterDto.ts b/src/api/schemas/riskParameterDto.ts deleted file mode 100644 index a9f15d2..0000000 --- a/src/api/schemas/riskParameterDto.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { Networks } from "./networks"; -import type { RiskParameterDtoAsset } from "./riskParameterDtoAsset"; -import type { RiskParameterDtoIntegrationId } from "./riskParameterDtoIntegrationId"; -import type { RiskParameterDtoProtocol } from "./riskParameterDtoProtocol"; -import type { RiskParameterDtoValue } from "./riskParameterDtoValue"; - -export interface RiskParameterDto { - id: string; - category: string; - item: string; - isDynamic: boolean; - value?: RiskParameterDtoValue; - network?: Networks; - asset?: RiskParameterDtoAsset; - protocol?: RiskParameterDtoProtocol; - integrationId?: RiskParameterDtoIntegrationId; - createdAt: string; - updatedAt: string; -} diff --git a/src/api/schemas/riskParameterDtoAsset.ts b/src/api/schemas/riskParameterDtoAsset.ts deleted file mode 100644 index 9d66e94..0000000 --- a/src/api/schemas/riskParameterDtoAsset.ts +++ /dev/null @@ -1 +0,0 @@ -export type RiskParameterDtoAsset = { [key: string]: unknown }; diff --git a/src/api/schemas/riskParameterDtoIntegrationId.ts b/src/api/schemas/riskParameterDtoIntegrationId.ts deleted file mode 100644 index a99b57b..0000000 --- a/src/api/schemas/riskParameterDtoIntegrationId.ts +++ /dev/null @@ -1 +0,0 @@ -export type RiskParameterDtoIntegrationId = { [key: string]: unknown }; diff --git a/src/api/schemas/riskParameterDtoProtocol.ts b/src/api/schemas/riskParameterDtoProtocol.ts deleted file mode 100644 index 5bac87a..0000000 --- a/src/api/schemas/riskParameterDtoProtocol.ts +++ /dev/null @@ -1 +0,0 @@ -export type RiskParameterDtoProtocol = { [key: string]: unknown }; diff --git a/src/api/schemas/riskParameterDtoValue.ts b/src/api/schemas/riskParameterDtoValue.ts deleted file mode 100644 index 6f44c52..0000000 --- a/src/api/schemas/riskParameterDtoValue.ts +++ /dev/null @@ -1 +0,0 @@ -export type RiskParameterDtoValue = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldCampaignDto.ts b/src/api/schemas/yieldCampaignDto.ts new file mode 100644 index 0000000..bd078de --- /dev/null +++ b/src/api/schemas/yieldCampaignDto.ts @@ -0,0 +1,46 @@ +import type { CampaignPayoutFrequency } from "./campaignPayoutFrequency"; +import type { CampaignQualificationConfigDto } from "./campaignQualificationConfigDto"; +import type { CampaignRewardMode } from "./campaignRewardMode"; +import type { CampaignStatus } from "./campaignStatus"; +import type { RewardRateDto } from "./rewardRateDto"; +import type { TokenDto } from "./tokenDto"; + +export interface YieldCampaignDto { + id: string; + /** @nullable */ + name?: string | null; + createdAt: string; + updatedAt: string; + yieldId: string; + status: CampaignStatus; + rewardMode: CampaignRewardMode; + /** Campaign reward rate in the same shape as yield reward rates. Null when TVL or emission data is unavailable. */ + rewardRate: RewardRateDto | null; + /** Total campaign reward budget. */ + totalBudget: string; + /** Amount of budget distributed so far. */ + distributedBudget: string; + /** Amount of budget remaining. */ + remainingBudget: string; + /** + * Configured hourly emission amount. + * @nullable + */ + configuredHourlyEmission?: string | null; + /** + * Optional APY ceiling as a decimal rate, where 0.125 = 12.5%. + * @nullable + */ + apyCeiling?: number | null; + /** Qualification configuration for the campaign. */ + qualificationConfig: CampaignQualificationConfigDto; + startTime: string; + endTime: string; + /** @nullable */ + lastProcessedHour?: string | null; + /** @nullable */ + nextPayoutDueAt?: string | null; + payoutFrequency: CampaignPayoutFrequency; + /** Reward token metadata. */ + rewardToken: TokenDto; +} diff --git a/src/api/schemas/yieldDto.ts b/src/api/schemas/yieldDto.ts index 3ce00a8..15d4c23 100644 --- a/src/api/schemas/yieldDto.ts +++ b/src/api/schemas/yieldDto.ts @@ -4,7 +4,7 @@ import type { TokenDto } from "./tokenDto"; import type { YieldDtoNetwork } from "./yieldDtoNetwork"; import type { YieldMechanicsDto } from "./yieldMechanicsDto"; import type { YieldMetadataDto } from "./yieldMetadataDto"; -import type { YieldRiskDto } from "./yieldRiskDto"; +import type { YieldRiskSummaryDto } from "./yieldRiskSummaryDto"; import type { YieldStateDto } from "./yieldStateDto"; import type { YieldStatisticsDto } from "./yieldStatisticsDto"; import type { YieldStatusDto } from "./yieldStatusDto"; @@ -28,8 +28,8 @@ export interface YieldDto { rewardRate: RewardRateDto; /** Key statistics and analytics for this yield opportunity */ statistics?: YieldStatisticsDto; - /** Risk scores and provider ratings for this yield */ - risk?: YieldRiskDto; + /** Top-level provider risk ratings for this yield. */ + risk?: YieldRiskSummaryDto; /** Current availability of user actions like enter, exit, claim */ status: YieldStatusDto; /** Descriptive metadata including name, logo, description, and documentation */ diff --git a/src/api/schemas/yieldRiskDto.ts b/src/api/schemas/yieldRiskDto.ts index 798d5c7..4d262bc 100644 --- a/src/api/schemas/yieldRiskDto.ts +++ b/src/api/schemas/yieldRiskDto.ts @@ -1,9 +1,11 @@ import type { YieldRiskCredoraDto } from "./yieldRiskCredoraDto"; import type { YieldRiskExponentialDto } from "./yieldRiskExponentialDto"; +import type { YieldRiskStakingRewardsDto } from "./yieldRiskStakingRewardsDto"; export interface YieldRiskDto { - /** Risk data last update timestamp */ + /** Timestamp of when StakeKit last computed risk data for this yield (ISO 8601) */ updatedAt: string; exponentialFi?: YieldRiskExponentialDto; credora?: YieldRiskCredoraDto; + stakingRewards?: YieldRiskStakingRewardsDto; } diff --git a/src/api/schemas/yieldRiskEntryDto.ts b/src/api/schemas/yieldRiskEntryDto.ts new file mode 100644 index 0000000..3a044c4 --- /dev/null +++ b/src/api/schemas/yieldRiskEntryDto.ts @@ -0,0 +1,8 @@ +import type { YieldRiskEntryDtoSource } from "./yieldRiskEntryDtoSource"; + +export interface YieldRiskEntryDto { + /** Provider top-level rating value */ + rating: string; + /** Provider source label */ + source: YieldRiskEntryDtoSource; +} diff --git a/src/api/schemas/yieldRiskEntryDtoSource.ts b/src/api/schemas/yieldRiskEntryDtoSource.ts new file mode 100644 index 0000000..9461be6 --- /dev/null +++ b/src/api/schemas/yieldRiskEntryDtoSource.ts @@ -0,0 +1,11 @@ +/** + * Provider source label + */ +export type YieldRiskEntryDtoSource = + (typeof YieldRiskEntryDtoSource)[keyof typeof YieldRiskEntryDtoSource]; + +export const YieldRiskEntryDtoSource = { + credora: "credora", + exponential: "exponential", + stakingRewards: "stakingRewards", +} as const; diff --git a/src/api/schemas/yieldRiskStakingRewardsDto.ts b/src/api/schemas/yieldRiskStakingRewardsDto.ts new file mode 100644 index 0000000..e14de9d --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDto.ts @@ -0,0 +1,44 @@ +import type { YieldRiskStakingRewardsDtoChain } from "./yieldRiskStakingRewardsDtoChain"; +import type { YieldRiskStakingRewardsDtoContractAddress } from "./yieldRiskStakingRewardsDtoContractAddress"; +import type { YieldRiskStakingRewardsDtoPotentialRating } from "./yieldRiskStakingRewardsDtoPotentialRating"; +import type { YieldRiskStakingRewardsDtoPotentialScore } from "./yieldRiskStakingRewardsDtoPotentialScore"; +import type { YieldRiskStakingRewardsDtoProfileUrl } from "./yieldRiskStakingRewardsDtoProfileUrl"; +import type { YieldRiskStakingRewardsDtoProviderName } from "./yieldRiskStakingRewardsDtoProviderName"; +import type { YieldRiskStakingRewardsDtoRatedAt } from "./yieldRiskStakingRewardsDtoRatedAt"; +import type { YieldRiskStakingRewardsDtoRatedSince } from "./yieldRiskStakingRewardsDtoRatedSince"; +import type { YieldRiskStakingRewardsDtoRating } from "./yieldRiskStakingRewardsDtoRating"; +import type { YieldRiskStakingRewardsDtoReportUrl } from "./yieldRiskStakingRewardsDtoReportUrl"; +import type { YieldRiskStakingRewardsDtoScore } from "./yieldRiskStakingRewardsDtoScore"; +import type { YieldRiskStakingRewardsDtoType } from "./yieldRiskStakingRewardsDtoType"; +import type { YieldRiskStakingRewardsDtoVersion } from "./yieldRiskStakingRewardsDtoVersion"; +import type { YieldRiskStakingRewardsMetricsDto } from "./yieldRiskStakingRewardsMetricsDto"; + +export interface YieldRiskStakingRewardsDto { + /** Staking Rewards rating */ + rating?: YieldRiskStakingRewardsDtoRating; + /** Staking Rewards score (1-5) */ + score?: YieldRiskStakingRewardsDtoScore; + /** Staking Rewards potential rating */ + potentialRating?: YieldRiskStakingRewardsDtoPotentialRating; + /** Staking Rewards potential score (1-5) */ + potentialScore?: YieldRiskStakingRewardsDtoPotentialScore; + /** Date when rating was assessed */ + ratedAt?: YieldRiskStakingRewardsDtoRatedAt; + /** Date since product has been rated */ + ratedSince?: YieldRiskStakingRewardsDtoRatedSince; + /** Staking Rewards product profile URL */ + profileUrl?: YieldRiskStakingRewardsDtoProfileUrl; + /** Staking Rewards full report URL */ + reportUrl?: YieldRiskStakingRewardsDtoReportUrl; + /** Staking Rewards provider name */ + providerName?: YieldRiskStakingRewardsDtoProviderName; + /** Staking Rewards methodology version */ + version?: YieldRiskStakingRewardsDtoVersion; + /** Staking Rewards product type */ + type?: YieldRiskStakingRewardsDtoType; + /** Chain label returned by Staking Rewards */ + chain?: YieldRiskStakingRewardsDtoChain; + /** Contract address returned by Staking Rewards */ + contractAddress?: YieldRiskStakingRewardsDtoContractAddress; + riskMetrics?: YieldRiskStakingRewardsMetricsDto; +} diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoChain.ts b/src/api/schemas/yieldRiskStakingRewardsDtoChain.ts new file mode 100644 index 0000000..45ea14e --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoChain.ts @@ -0,0 +1,4 @@ +/** + * Chain label returned by Staking Rewards + */ +export type YieldRiskStakingRewardsDtoChain = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoContractAddress.ts b/src/api/schemas/yieldRiskStakingRewardsDtoContractAddress.ts new file mode 100644 index 0000000..f143c5d --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoContractAddress.ts @@ -0,0 +1,6 @@ +/** + * Contract address returned by Staking Rewards + */ +export type YieldRiskStakingRewardsDtoContractAddress = { + [key: string]: unknown; +}; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoPotentialRating.ts b/src/api/schemas/yieldRiskStakingRewardsDtoPotentialRating.ts new file mode 100644 index 0000000..2904e99 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoPotentialRating.ts @@ -0,0 +1,6 @@ +/** + * Staking Rewards potential rating + */ +export type YieldRiskStakingRewardsDtoPotentialRating = { + [key: string]: unknown; +}; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoPotentialScore.ts b/src/api/schemas/yieldRiskStakingRewardsDtoPotentialScore.ts new file mode 100644 index 0000000..7a19e9c --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoPotentialScore.ts @@ -0,0 +1,6 @@ +/** + * Staking Rewards potential score (1-5) + */ +export type YieldRiskStakingRewardsDtoPotentialScore = { + [key: string]: unknown; +}; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoProfileUrl.ts b/src/api/schemas/yieldRiskStakingRewardsDtoProfileUrl.ts new file mode 100644 index 0000000..7802f13 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoProfileUrl.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards product profile URL + */ +export type YieldRiskStakingRewardsDtoProfileUrl = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoProviderName.ts b/src/api/schemas/yieldRiskStakingRewardsDtoProviderName.ts new file mode 100644 index 0000000..6523d89 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoProviderName.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards provider name + */ +export type YieldRiskStakingRewardsDtoProviderName = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoRatedAt.ts b/src/api/schemas/yieldRiskStakingRewardsDtoRatedAt.ts new file mode 100644 index 0000000..e25b06a --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoRatedAt.ts @@ -0,0 +1,4 @@ +/** + * Date when rating was assessed + */ +export type YieldRiskStakingRewardsDtoRatedAt = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoRatedSince.ts b/src/api/schemas/yieldRiskStakingRewardsDtoRatedSince.ts new file mode 100644 index 0000000..214e70b --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoRatedSince.ts @@ -0,0 +1,4 @@ +/** + * Date since product has been rated + */ +export type YieldRiskStakingRewardsDtoRatedSince = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoRating.ts b/src/api/schemas/yieldRiskStakingRewardsDtoRating.ts new file mode 100644 index 0000000..a6b9a1e --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoRating.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards rating + */ +export type YieldRiskStakingRewardsDtoRating = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoReportUrl.ts b/src/api/schemas/yieldRiskStakingRewardsDtoReportUrl.ts new file mode 100644 index 0000000..8db03f9 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoReportUrl.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards full report URL + */ +export type YieldRiskStakingRewardsDtoReportUrl = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoScore.ts b/src/api/schemas/yieldRiskStakingRewardsDtoScore.ts new file mode 100644 index 0000000..9878935 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoScore.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards score (1-5) + */ +export type YieldRiskStakingRewardsDtoScore = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoType.ts b/src/api/schemas/yieldRiskStakingRewardsDtoType.ts new file mode 100644 index 0000000..b0c0881 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoType.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards product type + */ +export type YieldRiskStakingRewardsDtoType = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsDtoVersion.ts b/src/api/schemas/yieldRiskStakingRewardsDtoVersion.ts new file mode 100644 index 0000000..8f3cabf --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsDtoVersion.ts @@ -0,0 +1,4 @@ +/** + * Staking Rewards methodology version + */ +export type YieldRiskStakingRewardsDtoVersion = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskStakingRewardsMetricsDto.ts b/src/api/schemas/yieldRiskStakingRewardsMetricsDto.ts new file mode 100644 index 0000000..e16cf15 --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsMetricsDto.ts @@ -0,0 +1,6 @@ +import type { YieldRiskStakingRewardsMetricsDtoUsers } from "./yieldRiskStakingRewardsMetricsDtoUsers"; + +export interface YieldRiskStakingRewardsMetricsDto { + /** Users count from Staking Rewards risk metrics */ + users?: YieldRiskStakingRewardsMetricsDtoUsers; +} diff --git a/src/api/schemas/yieldRiskStakingRewardsMetricsDtoUsers.ts b/src/api/schemas/yieldRiskStakingRewardsMetricsDtoUsers.ts new file mode 100644 index 0000000..7ffc8cb --- /dev/null +++ b/src/api/schemas/yieldRiskStakingRewardsMetricsDtoUsers.ts @@ -0,0 +1,4 @@ +/** + * Users count from Staking Rewards risk metrics + */ +export type YieldRiskStakingRewardsMetricsDtoUsers = { [key: string]: unknown }; diff --git a/src/api/schemas/yieldRiskSummaryDto.ts b/src/api/schemas/yieldRiskSummaryDto.ts new file mode 100644 index 0000000..7425309 --- /dev/null +++ b/src/api/schemas/yieldRiskSummaryDto.ts @@ -0,0 +1,6 @@ +import type { YieldRiskEntryDto } from "./yieldRiskEntryDto"; + +export interface YieldRiskSummaryDto { + /** Top-level rating entries by provider */ + ratings: YieldRiskEntryDto[]; +} diff --git a/src/api/schemas/yieldsControllerGetYieldCampaigns200.ts b/src/api/schemas/yieldsControllerGetYieldCampaigns200.ts new file mode 100644 index 0000000..d8fd01f --- /dev/null +++ b/src/api/schemas/yieldsControllerGetYieldCampaigns200.ts @@ -0,0 +1,6 @@ +import type { PaginatedResponseDto } from "./paginatedResponseDto"; +import type { YieldCampaignDto } from "./yieldCampaignDto"; + +export type YieldsControllerGetYieldCampaigns200 = PaginatedResponseDto & { + items?: YieldCampaignDto[]; +}; diff --git a/src/api/schemas/yieldsControllerGetYieldCampaigns400.ts b/src/api/schemas/yieldsControllerGetYieldCampaigns400.ts new file mode 100644 index 0000000..492bf27 --- /dev/null +++ b/src/api/schemas/yieldsControllerGetYieldCampaigns400.ts @@ -0,0 +1,5 @@ +export type YieldsControllerGetYieldCampaigns400 = { + message?: string; + error?: string; + statusCode?: number; +}; diff --git a/src/api/schemas/yieldsControllerGetYieldCampaigns401.ts b/src/api/schemas/yieldsControllerGetYieldCampaigns401.ts new file mode 100644 index 0000000..f0292b4 --- /dev/null +++ b/src/api/schemas/yieldsControllerGetYieldCampaigns401.ts @@ -0,0 +1,5 @@ +export type YieldsControllerGetYieldCampaigns401 = { + message?: string; + error?: string; + statusCode?: number; +}; diff --git a/src/api/schemas/yieldsControllerGetYieldCampaigns429.ts b/src/api/schemas/yieldsControllerGetYieldCampaigns429.ts new file mode 100644 index 0000000..7a5e456 --- /dev/null +++ b/src/api/schemas/yieldsControllerGetYieldCampaigns429.ts @@ -0,0 +1,6 @@ +export type YieldsControllerGetYieldCampaigns429 = { + message?: string; + error?: string; + statusCode?: number; + retryAfter?: number; +}; diff --git a/src/api/schemas/yieldsControllerGetYieldCampaigns500.ts b/src/api/schemas/yieldsControllerGetYieldCampaigns500.ts new file mode 100644 index 0000000..995f4ac --- /dev/null +++ b/src/api/schemas/yieldsControllerGetYieldCampaigns500.ts @@ -0,0 +1,5 @@ +export type YieldsControllerGetYieldCampaigns500 = { + message?: string; + error?: string; + statusCode?: number; +}; diff --git a/src/api/schemas/yieldsControllerGetYieldCampaignsParams.ts b/src/api/schemas/yieldsControllerGetYieldCampaignsParams.ts new file mode 100644 index 0000000..47866b3 --- /dev/null +++ b/src/api/schemas/yieldsControllerGetYieldCampaignsParams.ts @@ -0,0 +1,19 @@ +import type { CampaignStatus } from "./campaignStatus"; + +export type YieldsControllerGetYieldCampaignsParams = { + /** + * Offset for pagination + * @minimum 0 + */ + offset?: number; + /** + * Maximum number of items to return + * @minimum 1 + * @maximum 100 + */ + limit?: number; + /** + * Campaign status filter. Defaults to active. + */ + status?: CampaignStatus; +};