Abstract:
Upgrade the current Pyth oracle contract on all testnets (except Blast) to add a fee manager role that simplifies operations for randomness providers by letting their keeper wallet withdraw accrued fees.
Rationale:
Running an Entropy keeper should be easy. At the moment, there is a significant pain point in maintaining the wallet balance for the keeper, because the keeper isn’t authorized to withdraw fees from the contract to recoup it’s gas expenses.
Description:
This proposal updates the all (except Blast) Testnet Entropy contract to add a fee manager role. The fee manager is authorized by a provider to (1) set its fee, and (2) withdraw accrued fees. Providers can set the fee manager to their keeper wallet, which will enable their keeper service to better manage its gas.
Implementation Plan:
Proposal: Egp9RnLDRjZbyUU6sM7aGBjdkCeqfdyDToLD4YTz3W7Q
Code changes:
branch: main
Verification:
- Make sure you node-js and forge installed.
a. node-js: installnvm
from here
b. forge: install it from here - Clone pyth-crosschain repo
- Checkout the proposal code branch
- Run the following command from the root dir:
npm ci && npx lerna run build
- Get the on-chain implementation code digest by going to the
contract_manager
directory and running this command:npx ts-node scripts/check_proposal.ts --cluster mainnet-beta --proposal <proposal id>
- Get the source code digest by going to the
target_chains/ethereum/contracts
and runningnpx truffle compile --all && cat build/contracts/EntropyUpgradable.json | jq -r .deployedBytecode | tr -d '\n' | cast keccak
- Match the of the on-chain digest with the source code digest.