Daniel Chew 8 miesięcy temu
rodzic
commit
5a06305010

+ 38 - 1
apps/price_pusher/src/aptos/balance-tracker.ts

@@ -1,5 +1,12 @@
 import { AptosClient } from "aptos";
-import { BaseBalanceTracker, BaseBalanceTrackerConfig } from "../interface";
+import {
+  BaseBalanceTracker,
+  BaseBalanceTrackerConfig,
+  IBalanceTracker,
+} from "../interface";
+import { DurationInSeconds } from "../utils";
+import { PricePusherMetrics } from "../metrics";
+import { Logger } from "pino";
 
 /**
  * Aptos-specific configuration for balance tracker
@@ -72,3 +79,33 @@ export class AptosBalanceTracker extends BaseBalanceTracker {
     }
   }
 }
+
+/**
+ * Parameters for creating an Aptos balance tracker
+ */
+export interface CreateAptosBalanceTrackerParams {
+  endpoint: string;
+  address: string;
+  network: string;
+  updateInterval: DurationInSeconds;
+  metrics: PricePusherMetrics;
+  logger: Logger;
+  decimals?: number;
+}
+
+/**
+ * Factory function to create a balance tracker for Aptos chain
+ */
+export function createAptosBalanceTracker(
+  params: CreateAptosBalanceTrackerParams,
+): IBalanceTracker {
+  return new AptosBalanceTracker({
+    endpoint: params.endpoint,
+    address: params.address,
+    network: params.network,
+    updateInterval: params.updateInterval,
+    metrics: params.metrics,
+    logger: params.logger,
+    decimals: params.decimals,
+  });
+}

+ 1 - 1
apps/price_pusher/src/aptos/command.ts

@@ -14,7 +14,7 @@ import { AptosAccount } from "aptos";
 import pino from "pino";
 import { filterInvalidPriceItems } from "../utils";
 import { PricePusherMetrics } from "../metrics";
-import { createAptosBalanceTracker } from "../balance-tracker";
+import { createAptosBalanceTracker } from "./balance-tracker";
 
 export default {
   command: "aptos",

+ 0 - 98
apps/price_pusher/src/balance-tracker.ts

@@ -1,98 +0,0 @@
-import { PricePusherMetrics } from "./metrics";
-import { Logger } from "pino";
-import { DurationInSeconds } from "./utils";
-import { IBalanceTracker } from "./interface";
-import { EvmBalanceTracker } from "./evm/balance-tracker";
-import { SuperWalletClient } from "./evm/super-wallet";
-import { AptosBalanceTracker } from "./aptos/balance-tracker";
-import { SuiBalanceTracker } from "./sui/balance-tracker";
-import { SuiClient } from "@mysten/sui/client";
-
-/**
- * Parameters for creating an EVM balance tracker
- */
-export interface CreateEvmBalanceTrackerParams {
-  client: SuperWalletClient;
-  address: `0x${string}`;
-  network: string;
-  updateInterval: DurationInSeconds;
-  metrics: PricePusherMetrics;
-  logger: Logger;
-}
-
-/**
- * Factory function to create a balance tracker for EVM chains
- */
-export function createEvmBalanceTracker(
-  params: CreateEvmBalanceTrackerParams,
-): IBalanceTracker {
-  return new EvmBalanceTracker({
-    client: params.client,
-    address: params.address,
-    network: params.network,
-    updateInterval: params.updateInterval,
-    metrics: params.metrics,
-    logger: params.logger,
-  });
-}
-
-/**
- * Parameters for creating an Aptos balance tracker
- */
-export interface CreateAptosBalanceTrackerParams {
-  endpoint: string;
-  address: string;
-  network: string;
-  updateInterval: DurationInSeconds;
-  metrics: PricePusherMetrics;
-  logger: Logger;
-  decimals?: number;
-}
-
-/**
- * Factory function to create a balance tracker for Aptos chain
- */
-export function createAptosBalanceTracker(
-  params: CreateAptosBalanceTrackerParams,
-): IBalanceTracker {
-  return new AptosBalanceTracker({
-    endpoint: params.endpoint,
-    address: params.address,
-    network: params.network,
-    updateInterval: params.updateInterval,
-    metrics: params.metrics,
-    logger: params.logger,
-    decimals: params.decimals,
-  });
-}
-
-/**
- * Parameters for creating a Sui balance tracker
- */
-export interface CreateSuiBalanceTrackerParams {
-  client: SuiClient;
-  address: string;
-  network: string;
-  updateInterval: DurationInSeconds;
-  metrics: PricePusherMetrics;
-  logger: Logger;
-}
-
-/**
- * Factory function to create a balance tracker for Sui chain
- */
-export function createSuiBalanceTracker(
-  params: CreateSuiBalanceTrackerParams,
-): IBalanceTracker {
-  return new SuiBalanceTracker({
-    client: params.client,
-    address: params.address,
-    network: params.network,
-    updateInterval: params.updateInterval,
-    metrics: params.metrics,
-    logger: params.logger,
-  });
-}
-
-// Additional factory functions for other chains would follow the same pattern:
-// export function createSolanaBalanceTracker(params: CreateSolanaBalanceTrackerParams): IBalanceTracker { ... }

+ 36 - 1
apps/price_pusher/src/evm/balance-tracker.ts

@@ -1,5 +1,12 @@
 import { SuperWalletClient } from "./super-wallet";
-import { BaseBalanceTracker, BaseBalanceTrackerConfig } from "../interface";
+import {
+  BaseBalanceTracker,
+  BaseBalanceTrackerConfig,
+  IBalanceTracker,
+} from "../interface";
+import { DurationInSeconds } from "../utils";
+import { PricePusherMetrics } from "../metrics";
+import { Logger } from "pino";
 
 /**
  * EVM-specific configuration for balance tracker
@@ -49,3 +56,31 @@ export class EvmBalanceTracker extends BaseBalanceTracker {
     }
   }
 }
+
+/**
+ * Parameters for creating an EVM balance tracker
+ */
+export interface CreateEvmBalanceTrackerParams {
+  client: SuperWalletClient;
+  address: `0x${string}`;
+  network: string;
+  updateInterval: DurationInSeconds;
+  metrics: PricePusherMetrics;
+  logger: Logger;
+}
+
+/**
+ * Factory function to create a balance tracker for EVM chains
+ */
+export function createEvmBalanceTracker(
+  params: CreateEvmBalanceTrackerParams,
+): IBalanceTracker {
+  return new EvmBalanceTracker({
+    client: params.client,
+    address: params.address,
+    network: params.network,
+    updateInterval: params.updateInterval,
+    metrics: params.metrics,
+    logger: params.logger,
+  });
+}

+ 1 - 1
apps/price_pusher/src/evm/command.ts

@@ -12,7 +12,7 @@ import { createClient } from "./super-wallet";
 import { createPythContract } from "./pyth-contract";
 import { isWsEndpoint, filterInvalidPriceItems } from "../utils";
 import { PricePusherMetrics } from "../metrics";
-import { createEvmBalanceTracker } from "../balance-tracker";
+import { createEvmBalanceTracker } from "./balance-tracker";
 
 export default {
   command: "evm",

+ 36 - 1
apps/price_pusher/src/sui/balance-tracker.ts

@@ -1,5 +1,12 @@
 import { SuiClient } from "@mysten/sui/client";
-import { BaseBalanceTracker, BaseBalanceTrackerConfig } from "../interface";
+import {
+  BaseBalanceTracker,
+  BaseBalanceTrackerConfig,
+  IBalanceTracker,
+} from "../interface";
+import { DurationInSeconds } from "../utils";
+import { PricePusherMetrics } from "../metrics";
+import { Logger } from "pino";
 
 /**
  * Sui-specific configuration for balance tracker
@@ -59,3 +66,31 @@ export class SuiBalanceTracker extends BaseBalanceTracker {
     }
   }
 }
+
+/**
+ * Parameters for creating a Sui balance tracker
+ */
+export interface CreateSuiBalanceTrackerParams {
+  client: SuiClient;
+  address: string;
+  network: string;
+  updateInterval: DurationInSeconds;
+  metrics: PricePusherMetrics;
+  logger: Logger;
+}
+
+/**
+ * Factory function to create a balance tracker for Sui chain
+ */
+export function createSuiBalanceTracker(
+  params: CreateSuiBalanceTrackerParams,
+): IBalanceTracker {
+  return new SuiBalanceTracker({
+    client: params.client,
+    address: params.address,
+    network: params.network,
+    updateInterval: params.updateInterval,
+    metrics: params.metrics,
+    logger: params.logger,
+  });
+}

+ 1 - 1
apps/price_pusher/src/sui/command.ts

@@ -10,7 +10,7 @@ import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
 import pino from "pino";
 import { filterInvalidPriceItems } from "../utils";
 import { PricePusherMetrics } from "../metrics";
-import { createSuiBalanceTracker } from "../balance-tracker";
+import { createSuiBalanceTracker } from "./balance-tracker";
 import { SuiClient } from "@mysten/sui/client";
 
 export default {