[PASSED] OP-PIP-12: Upgrade Entropy Contracts (Testnet)

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.

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.

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


  1. Make sure you node-js and forge installed.
    a. node-js: install nvm from here
    b. forge: install it from here
  2. Clone pyth-crosschain repo
  3. Checkout the proposal code branch
  4. Run the following command from the root dir: npm ci && npx lerna run build
  5. 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>
  6. Get the source code digest by going to the target_chains/ethereum/contracts and running npx truffle compile --all && cat build/contracts/EntropyUpgradable.json | jq -r .deployedBytecode | tr -d '\n' | cast keccak
  7. Match the of the on-chain digest with the source code digest.

Isn’t the Description wrong stating this OP-PIP is for Blast Testnet while the Abstract excludes Blast ? @KemarTiti


It is! Thanks for catching this

Now edited


Looks like a perfectly elegant solution to a problem not-thought-of during initial construction. Making utilising the product easier will make the product more appealing. More power and revenue for Pyth as a result!

1 Like