32 lines
1015 B
Solidity
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 {}
|
|
|
|
}
|