Skip to content

Commit

Permalink
feat: node health checks on lend services
Browse files Browse the repository at this point in the history
  • Loading branch information
AustinWoetzel committed Apr 19, 2024
1 parent 254d6d5 commit 97b030f
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 3 deletions.
21 changes: 18 additions & 3 deletions src/contracts/services/lend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {
BatchQueryParams,
Contract,
BatchQueryParsedResponse,
MinBlockHeightValidationOptions,
} from '~/types';
import { batchQuery$ } from '~/contracts/services/batchQuery';
import {
Expand Down Expand Up @@ -154,6 +155,7 @@ const parseBatchQueryVaultsInfo = (
): BatchVaults => response.map((item, index) => ({
vaultRegistryContractAddress: item.id as string,
vaults: parseLendVaults(item.response, vaultVersions[index]),
blockHeight: item.blockHeight,
}));

/**
Expand Down Expand Up @@ -218,6 +220,7 @@ const parseBatchQueryVaultsUserData = (
): BatchVaultsUserData => response.map((item) => ({
vaultRegistryContractAddress: item.id as string,
vaultsUserData: parseLendVaultsUserData(item.response),
blockHeight: item.blockHeight,
}));

/**
Expand All @@ -229,12 +232,14 @@ function queryVaults$({
lcdEndpoint,
chainId,
vaultRegistryContracts,
minBlockHeightValidationOptions,
}:{
queryRouterContractAddress: string,
queryRouterCodeHash?: string,
lcdEndpoint?: string,
chainId?: string,
vaultRegistryContracts: LendVaultRegistryContract[]
vaultRegistryContracts: LendVaultRegistryContract[],
minBlockHeightValidationOptions?: MinBlockHeightValidationOptions,
}) {
const queries:BatchQueryParams[] = vaultRegistryContracts.map((contract) => ({
id: contract.address,
Expand All @@ -253,6 +258,7 @@ function queryVaults$({
lcdEndpoint,
chainId,
queries,
minBlockHeightValidationOptions,
}).pipe(
map((response) => parseBatchQueryVaultsInfo(response, vaultVersions)),
first(),
Expand All @@ -268,19 +274,22 @@ async function queryVaults({
lcdEndpoint,
chainId,
vaultRegistryContracts,
minBlockHeightValidationOptions,
}:{
queryRouterContractAddress: string,
queryRouterCodeHash?: string,
lcdEndpoint?: string,
chainId?: string,
vaultRegistryContracts: LendVaultRegistryContract[]
minBlockHeightValidationOptions?: MinBlockHeightValidationOptions,
}) {
return lastValueFrom(queryVaults$({
queryRouterContractAddress,
queryRouterCodeHash,
lcdEndpoint,
chainId,
vaultRegistryContracts,
minBlockHeightValidationOptions,
}));
}

Expand Down Expand Up @@ -354,14 +363,16 @@ function batchQueryVaultsUserData$({
vaultRegistryContracts,
permit,
vaultIds,
minBlockHeightValidationOptions,
}:{
queryRouterContractAddress: string,
queryRouterCodeHash?: string,
lcdEndpoint?: string,
chainId?: string,
vaultRegistryContracts: Contract[],
permit: AccountPermit,
vaultIds: string[]
vaultIds: string[],
minBlockHeightValidationOptions?: MinBlockHeightValidationOptions,
}) {
const queries:BatchQueryParams[] = vaultRegistryContracts.map((contract) => ({
id: contract.address,
Expand All @@ -377,6 +388,7 @@ function batchQueryVaultsUserData$({
lcdEndpoint,
chainId,
queries,
minBlockHeightValidationOptions,
}).pipe(
map(parseBatchQueryVaultsUserData),
first(),
Expand All @@ -397,14 +409,16 @@ async function batchQueryVaultsUserData({
vaultRegistryContracts,
permit,
vaultIds,
minBlockHeightValidationOptions,
}:{
queryRouterContractAddress: string,
queryRouterCodeHash?: string,
lcdEndpoint?: string,
chainId?: string,
vaultRegistryContracts: Contract[],
permit: AccountPermit,
vaultIds: string[]
vaultIds: string[],
minBlockHeightValidationOptions?: MinBlockHeightValidationOptions,
}) {
return lastValueFrom(batchQueryVaultsUserData$({
queryRouterContractAddress,
Expand All @@ -414,6 +428,7 @@ async function batchQueryVaultsUserData({
vaultRegistryContracts,
permit,
vaultIds,
minBlockHeightValidationOptions,
}));
}

Expand Down
3 changes: 3 additions & 0 deletions src/test/mocks/lend/batchVaultsParsed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ const batchVaultsParsed: BatchVaults = [
totalPositions: 9,
},
},
blockHeight: 1,
},
{
vaultRegistryContractAddress: 'secret1qxk2scacpgj2mmm0af60674afl9e6qneg7yuny',
Expand Down Expand Up @@ -194,6 +195,7 @@ const batchVaultsParsed: BatchVaults = [
totalPositions: 60,
},
},
blockHeight: 1,
},
{
vaultRegistryContractAddress: 'secret1wj2czeeknya2n6jag7kpfxlm28dw7q96dgqmfs',
Expand Down Expand Up @@ -289,6 +291,7 @@ const batchVaultsParsed: BatchVaults = [
totalPositions: 2,
},
},
blockHeight: 1,
},
];

Expand Down
3 changes: 3 additions & 0 deletions src/test/mocks/lend/batchVaultsUnparsed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ const batchVaultsResponseUnparsed: BatchQueryParsedResponse = [
total_pages: '1',
total_vaults: '3',
},
blockHeight: 1,
},
{
id: 'secret1qxk2scacpgj2mmm0af60674afl9e6qneg7yuny',
Expand Down Expand Up @@ -260,6 +261,7 @@ const batchVaultsResponseUnparsed: BatchQueryParsedResponse = [
total_pages: '1',
total_vaults: '3',
},
blockHeight: 1,
},
{
id: 'secret1wj2czeeknya2n6jag7kpfxlm28dw7q96dgqmfs',
Expand Down Expand Up @@ -390,6 +392,7 @@ const batchVaultsResponseUnparsed: BatchQueryParsedResponse = [
total_pages: '1',
total_vaults: '3',
},
blockHeight: 1,
},
];

Expand Down
2 changes: 2 additions & 0 deletions src/types/contracts/lend/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ type Vaults = {
type BatchVaultsItem = {
vaultRegistryContractAddress: string,
vaults: Vaults,
blockHeight: number,
}

type BatchVaults = BatchVaultsItem[]
Expand All @@ -76,6 +77,7 @@ type VaultsUserData = {
type BatchVaultsUserDataItem = {
vaultRegistryContractAddress: string,
vaultsUserData: VaultsUserData | null,
blockHeight: number,
}

type BatchVaultsUserData = BatchVaultsUserDataItem[]
Expand Down

0 comments on commit 97b030f

Please sign in to comment.