PythUpgradable.sol 1.0 KB

1234567891011121314151617181920212223242526272829303132
  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. uint16 chainId,
  10. address wormhole,
  11. uint16 pyth2WormholeChainId,
  12. bytes32 pyth2WormholeEmitter
  13. ) initializer override public {
  14. __Ownable_init();
  15. __UUPSUpgradeable_init();
  16. Pyth.initialize(chainId, wormhole, pyth2WormholeChainId, pyth2WormholeEmitter);
  17. }
  18. /// Ensures the contract cannot be uninitialized and taken over.
  19. /// @custom:oz-upgrades-unsafe-allow constructor
  20. constructor() initializer {}
  21. // Only allow the owner to upgrade the proxy to a new implementation.
  22. function _authorizeUpgrade(address) internal override onlyOwner {}
  23. }