11// SPDX-License-Identifier: Apache-2.0
22pragma solidity ^ 0.8.20 ;
33
4- import {Upgrades} from "@openzeppelin/foundry-upgrades/Upgrades.sol " ;
4+ import {Upgrades, UnsafeUpgrades } from "@openzeppelin/foundry-upgrades/Upgrades.sol " ;
55import {Strings} from "@openzeppelin/contracts/utils/Strings.sol " ;
66import {Script} from "forge-std/Script.sol " ;
77import {Vm} from "forge-std/Vm.sol " ;
@@ -32,13 +32,13 @@ contract DeployLLMOracleRegistry is Script {
3232
3333 function run () external returns (address proxy , address impl ) {
3434 vm.startBroadcast ();
35- (proxy, impl) = this .deployProxy ();
35+ (proxy, impl) = this .deploy ();
3636 vm.stopBroadcast ();
3737
3838 helper.writeProxyAddresses ("LLMOracleRegistry " , proxy, impl);
3939 }
4040
41- function deployProxy () external returns (address proxy , address impl ) {
41+ function deploy () external returns (address proxy , address impl ) {
4242 proxy = Upgrades.deployUUPSProxy (
4343 "LLMOracleRegistry.sol " ,
4444 abi.encodeCall (
@@ -48,6 +48,15 @@ contract DeployLLMOracleRegistry is Script {
4848
4949 impl = Upgrades.getImplementationAddress (proxy);
5050 }
51+
52+ function deployUnsafe (address impl ) external returns (address proxy ) {
53+ proxy = UnsafeUpgrades.deployUUPSProxy (
54+ impl,
55+ abi.encodeCall (
56+ LLMOracleRegistry.initialize, (stakes.generator, stakes.validator, token, minRegistrationTimeSec)
57+ )
58+ );
59+ }
5160}
5261
5362contract DeployLLMOracleCoordinator is Script {
@@ -74,8 +83,6 @@ contract DeployLLMOracleCoordinator is Script {
7483 }
7584
7685 function run () external returns (address proxy , address impl ) {
77- helper = new Helper ();
78-
7986 // read registry address
8087 string memory deployments = helper.getDeploymentsJson ();
8188 require (vm.keyExistsJson (deployments, "$.LLMOracleRegistry " ), "Please deploy LLMOracleRegistry first " );
@@ -85,13 +92,13 @@ contract DeployLLMOracleCoordinator is Script {
8592 require (registryImlp != address (0 ), "LLMOracleRegistry implementation address is invalid " );
8693
8794 vm.startBroadcast ();
88- (proxy, impl) = this .deployProxy (registryProxy);
95+ (proxy, impl) = this .deploy (registryProxy);
8996 vm.stopBroadcast ();
9097
9198 helper.writeProxyAddresses ("LLMOracleCoordinator " , proxy, impl);
9299 }
93100
94- function deployProxy (address registryAddr ) external returns (address proxy , address impl ) {
101+ function deploy (address registryAddr ) external returns (address proxy , address impl ) {
95102 proxy = Upgrades.deployUUPSProxy (
96103 "LLMOracleCoordinator.sol " ,
97104 abi.encodeCall (
@@ -103,3 +110,38 @@ contract DeployLLMOracleCoordinator is Script {
103110 impl = Upgrades.getImplementationAddress (proxy);
104111 }
105112}
113+
114+ contract UpgradeLLMOracleRegistry is Script {
115+ Helper public helper;
116+ Stakes public stakes;
117+ uint256 public minRegistrationTimeSec;
118+ address public token;
119+
120+ constructor () {
121+ helper = new Helper ();
122+
123+ // parameters
124+ minRegistrationTimeSec = 1 days ;
125+ stakes = Stakes ({generator: 0.0001 ether, validator: 0.000001 ether });
126+ token = address (0x4200000000000000000000000000000000000006 ); // WETH
127+ }
128+
129+ function run () external returns (address proxy , address impl ) {
130+ vm.startBroadcast ();
131+ (proxy, impl) = this .deploy ();
132+ vm.stopBroadcast ();
133+
134+ helper.writeProxyAddresses ("LLMOracleRegistry " , proxy, impl);
135+ }
136+
137+ function deploy () external returns (address proxy , address impl ) {
138+ proxy = Upgrades.deployUUPSProxy (
139+ "LLMOracleRegistry.sol " ,
140+ abi.encodeCall (
141+ LLMOracleRegistry.initialize, (stakes.generator, stakes.validator, token, minRegistrationTimeSec)
142+ )
143+ );
144+
145+ impl = Upgrades.getImplementationAddress (proxy);
146+ }
147+ }
0 commit comments