فهرست منبع

fix(apps/price_pusher): handle gas overrides properly (#2669)

* fix(apps/price_pusher): handle gas overrides properly

* chore: discourage using confidence check

* fix: remove the timeout that was added by mistake
Ali Behjati 5 ماه پیش
والد
کامیت
5e356f425d

+ 4 - 4
apps/price_pusher/README.md

@@ -27,7 +27,7 @@ It then pushes a price update to an on-chain Pyth contract if any of the followi
 - Price deviation: The latest Pyth price feed has changed more than `price_deviation` percent
   from the on-chain price feed price.
 - Confidence ratio: The latest Pyth price feed has confidence to price ratio of more than
-  `confidence_ratio`.
+  `confidence_ratio`. *We discourage using low values for this because it triggers push for every update in high confidence periods.*
 
 The parameters above are configured per price feed in a price configuration YAML file. The structure looks like this:
 
@@ -36,7 +36,7 @@ The parameters above are configured per price feed in a price configuration YAML
   id: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef # id of a price feed, a 32-byte hex string.
   time_difference: 60 # Time difference threshold (in seconds) to push a newer price feed.
   price_deviation: 0.5 # The price deviation (%) threshold to push a newer price feed.
-  confidence_ratio: 1 # The confidence/price (%) threshold to push a newer price feed.
+  confidence_ratio: 50 # The confidence/price (%) threshold to push a newer price feed.
 
   # Optional block to configure whether this feed can be early updated. If at least one feed meets the
   # triggering conditions above, all other feeds who meet the early update conditions will be included in
@@ -46,7 +46,7 @@ The parameters above are configured per price feed in a price configuration YAML
   early_update:
     time_difference: 30
     price_deviation: 0.1
-    confidence_ratio: 0.5
+    confidence_ratio: 5
 - ...
 ```
 
@@ -65,7 +65,7 @@ the feed.
   early_update:
     time_difference: 30
     price_deviation: 0.1
-    confidence_ratio: 0.5
+    confidence_ratio: 5
 ```
 
 Two sample YAML configuration files are available in the root of this repo.

+ 3 - 3
apps/price_pusher/price-config.beta.sample.yaml

@@ -2,13 +2,13 @@
   id: f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b
   time_difference: 60
   price_deviation: 0.5
-  confidence_ratio: 1
+  confidence_ratio: 100
 - alias: BNB/USD
   id: ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a
   time_difference: 60
   price_deviation: 1
-  confidence_ratio: 1
+  confidence_ratio: 100
   early_update:
     time_difference: 30
     price_deviation: 0.5
-    confidence_ratio: 0.1
+    confidence_ratio: 10

+ 4 - 4
apps/price_pusher/price-config.stable.sample.yaml

@@ -2,18 +2,18 @@
   id: e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43
   time_difference: 60
   price_deviation: 0.5
-  confidence_ratio: 1
+  confidence_ratio: 100
 - alias: BNB/USD
   id: 2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f
   time_difference: 60
   price_deviation: 1
-  confidence_ratio: 1
+  confidence_ratio: 100
   early_update:
     time_difference: 30
     price_deviation: 0.5
-    confidence_ratio: 0.1
+    confidence_ratio: 10
 - alias: PYTH/USD
   id: 0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff
   time_difference: 60
   price_deviation: 0.5
-  confidence_ratio: 1
+  confidence_ratio: 100

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

@@ -110,7 +110,6 @@ export default {
       enableMetrics,
       metricsPort,
     } = argv;
-    console.log("***** priceServiceEndpoint *****", priceServiceEndpoint);
 
     const logger = pino({
       level: logLevel,

+ 6 - 6
apps/price_pusher/src/evm/evm.ts

@@ -235,6 +235,12 @@ export class EvmPricePusher implements IPricePusher {
 
     const priceIdsWith0x = priceIds.map((priceId) => addLeading0x(priceId));
 
+    // Update lastAttempt
+    this.lastPushAttempt = {
+      nonce: txNonce,
+      gasPrice: gasPrice,
+    };
+
     try {
       const { request } =
         await this.pythContract.simulate.updatePriceFeedsIfNecessary(
@@ -383,12 +389,6 @@ export class EvmPricePusher implements IPricePusher {
       );
       throw err;
     }
-
-    // Update lastAttempt
-    this.lastPushAttempt = {
-      nonce: txNonce,
-      gasPrice: gasPrice,
-    };
   }
 
   private async waitForTransactionReceipt(hash: `0x${string}`): Promise<void> {