PythUpgradable.sol 1015 B

12345678910111213141516171819202122232425262728293031
  1. // SPDX-License-Identifier: Apache 2
  2. pragma solidity ^0.8.0;
  3. import "./Pyth.sol";
  4. import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
  5. import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
  6. import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
  7. contract PythUpgradable is Initializable, OwnableUpgradeable, UUPSUpgradeable, Pyth {
  8. function initialize(
  9. address wormhole,
  10. uint16 pyth2WormholeChainId,
  11. bytes32 pyth2WormholeEmitter
  12. ) initializer override public {
  13. __Ownable_init();
  14. __UUPSUpgradeable_init();
  15. Pyth.initialize(wormhole, pyth2WormholeChainId, pyth2WormholeEmitter);
  16. }
  17. /// Ensures the contract cannot be uninitialized and taken over.
  18. /// @custom:oz-upgrades-unsafe-allow constructor
  19. constructor() initializer {}
  20. // Only allow the owner to upgrade the proxy to a new implementation.
  21. function _authorizeUpgrade(address) internal override onlyOwner {}
  22. }