diff --git a/oracle/src/index.ts b/oracle/src/index.ts index bee9c96..e22b389 100644 --- a/oracle/src/index.ts +++ b/oracle/src/index.ts @@ -16,6 +16,7 @@ import { import { createValidator, createPriceCache, + createPriceHistoryService, createAggregator, createContractUpdater, type PriceAggregator, @@ -77,8 +78,9 @@ export class OracleService { }); const cache = createPriceCache(config.cacheTtlSeconds); + const priceHistory = createPriceHistoryService(); - this.aggregator = createAggregator(providers, validator, cache, { + this.aggregator = createAggregator(providers, validator, cache, priceHistory, { circuitBreaker: config.circuitBreaker, }); diff --git a/oracle/src/services/contract-updater.ts b/oracle/src/services/contract-updater.ts index 0493179..83df8e9 100644 --- a/oracle/src/services/contract-updater.ts +++ b/oracle/src/services/contract-updater.ts @@ -3,6 +3,7 @@ */ import { + Account, Keypair, Contract, rpc, @@ -251,7 +252,7 @@ export class ContractUpdater { // 2. Check admin account exists and has funds try { - const adminAccount = await this.server.getAccount(this.adminKeypair.publicKey()); + const adminAccount = (await this.server.getAccount(this.adminKeypair.publicKey())) as any; result.admin = true; result.details.admin = { exists: true, diff --git a/oracle/src/services/price-aggregator.ts b/oracle/src/services/price-aggregator.ts index 7982aad..2659141 100644 --- a/oracle/src/services/price-aggregator.ts +++ b/oracle/src/services/price-aggregator.ts @@ -144,7 +144,7 @@ export class PriceAggregator { const circuitBreaker = this.circuitBreakers.get(provider.name); // Check circuit breaker state - if (circuitBreaker && circuitBreaker.getState() === 'OPEN') { + if (circuitBreaker && circuitBreaker.currentState === 'OPEN') { logger.warn(`Circuit breaker OPEN for ${provider.name}, skipping`); continue; } @@ -275,7 +275,7 @@ export class PriceAggregator { return avg; } - return sorted[mid]; + return sorted[mid].price; } /**