pyth-crosschain/ethereum/contracts/pyth/PythUpgradable.sol

32 lines
1015 B
Solidity

// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.0;
import "./Pyth.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
contract PythUpgradable is Initializable, OwnableUpgradeable, UUPSUpgradeable, Pyth {
function initialize(
address wormhole,
uint16 pyth2WormholeChainId,
bytes32 pyth2WormholeEmitter
) initializer override public {
__Ownable_init();
__UUPSUpgradeable_init();
Pyth.initialize(wormhole, pyth2WormholeChainId, pyth2WormholeEmitter);
}
/// Ensures the contract cannot be uninitialized and taken over.
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() initializer {}
// Only allow the owner to upgrade the proxy to a new implementation.
function _authorizeUpgrade(address) internal override onlyOwner {}
}