Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions apps/price_pusher/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand All @@ -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
Expand All @@ -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
- ...
```

Expand All @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion apps/price_pusher/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@pythnetwork/price-pusher",
"version": "9.3.3",
"version": "9.3.4",
"description": "Pyth Price Pusher",
"homepage": "https://pyth.network",
"main": "lib/index.js",
Expand Down
6 changes: 3 additions & 3 deletions apps/price_pusher/price-config.beta.sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
8 changes: 4 additions & 4 deletions apps/price_pusher/price-config.stable.sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 0 additions & 1 deletion apps/price_pusher/src/evm/command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@ export default {
enableMetrics,
metricsPort,
} = argv;
console.log("***** priceServiceEndpoint *****", priceServiceEndpoint);

const logger = pino({
level: logLevel,
Expand Down
12 changes: 6 additions & 6 deletions apps/price_pusher/src/evm/evm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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> {
Expand Down
2 changes: 1 addition & 1 deletion contract_manager/store/chains/EvmChains.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -857,7 +857,7 @@
- id: berachain_mainnet
mainnet: true
networkId: 80094
rpcUrl: https://fluent-thrilling-scion.furtim-network.quiknode.pro/$ENV_RABECHAIN_API_KEY
rpcUrl: https://rpc.berachain.com
type: EvmChain
- id: story
mainnet: true
Expand Down
Loading