Skip to content

Commit 3cf44fb

Browse files
feat: public allocator deployment
1 parent 317952a commit 3cf44fb

File tree

4 files changed

+34
-11
lines changed

4 files changed

+34
-11
lines changed

script/20_EulerEarnFactory.s.sol

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,47 @@ pragma solidity ^0.8.0;
55
import {ScriptUtils} from "./utils/ScriptUtils.s.sol";
66

77
contract EulerEarnFactoryDeployer is ScriptUtils {
8-
function run() public broadcast returns (address eulerEarnfactory) {
8+
function run() public broadcast returns (address eulerEarnfactory, address eulerEarnPublicAllocator) {
99
string memory inputScriptFileName = "21_EulerEarnFactory_input.json";
1010
string memory outputScriptFileName = "21_EulerEarnFactory_output.json";
1111
string memory json = getScriptFile(inputScriptFileName);
1212
address evc = vm.parseJsonAddress(json, ".evc");
1313
address permit2 = vm.parseJsonAddress(json, ".permit2");
1414
address perspective = vm.parseJsonAddress(json, ".perspective");
1515

16-
eulerEarnfactory = execute(evc, permit2, perspective);
16+
(eulerEarnfactory, eulerEarnPublicAllocator) = execute(evc, permit2, perspective);
1717

1818
string memory object;
1919
object = vm.serializeAddress("factory", "eulerEarnfactory", eulerEarnfactory);
20+
object = vm.serializeAddress("publicAllocator", "eulerEarnPublicAllocator", eulerEarnPublicAllocator);
2021

2122
vm.writeJson(object, string.concat(vm.projectRoot(), "/script/", outputScriptFileName));
2223
}
2324

24-
function deploy(address evc, address permit2, address perspective) public broadcast returns (address factory) {
25-
factory = execute(evc, permit2, perspective);
25+
function deploy(address evc, address permit2, address perspective)
26+
public
27+
broadcast
28+
returns (address factory, address publicAllocator)
29+
{
30+
(factory, publicAllocator) = execute(evc, permit2, perspective);
2631
}
2732

28-
function execute(address evc, address permit2, address perspective) public returns (address factory) {
33+
function execute(address evc, address permit2, address perspective)
34+
public
35+
returns (address factory, address publicAllocator)
36+
{
2937
bytes memory bytecode = abi.encodePacked(
3038
vm.getCode("out-euler-earn/EulerEarnFactory.sol/EulerEarnFactory.json"),
3139
abi.encode(getDeployer(), evc, permit2, perspective)
3240
);
3341
assembly {
3442
factory := create(0, add(bytecode, 0x20), mload(bytecode))
3543
}
44+
45+
bytecode =
46+
abi.encodePacked(vm.getCode("out-euler-earn/PublicAllocator.sol/PublicAllocator.json"), abi.encode(evc));
47+
assembly {
48+
publicAllocator := create(0, add(bytecode, 0x20), mload(bytecode))
49+
}
3650
}
3751
}

script/50_CoreAndPeriphery.s.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -856,13 +856,13 @@ contract CoreAndPeriphery is BatchBuilder, SafeMultisendBuilder {
856856
console.log("- EulerUngovernedNzxPerspective already deployed. Skipping...");
857857
}
858858

859-
if (coreAddresses.eulerEarnFactory == address(0)) {
860-
console.log("+ Deploying EulerEarn factory...");
859+
if (coreAddresses.eulerEarnFactory == address(0) && peripheryAddresses.eulerEarnPublicAllocator == address(0)) {
860+
console.log("+ Deploying EulerEarn factory and public allocator...");
861861
EulerEarnFactoryDeployer deployer = new EulerEarnFactoryDeployer();
862-
coreAddresses.eulerEarnFactory =
862+
(coreAddresses.eulerEarnFactory, peripheryAddresses.eulerEarnPublicAllocator) =
863863
deployer.deploy(coreAddresses.evc, coreAddresses.permit2, peripheryAddresses.evkFactoryPerspective);
864864
} else {
865-
console.log("- EulerEarn factory already deployed. Skipping...");
865+
console.log("- EulerEarn factory and public allocator already deployed. Skipping...");
866866
if (vm.isDir("out-euler-earn")) vm.removeDir("out-euler-earn", true);
867867
}
868868

script/utils/ScriptUtils.s.sol

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ abstract contract PeripheryAddressesLib is ScriptExtended {
8989
address termsOfUseSigner;
9090
address governorAccessControlEmergencyFactory;
9191
address capRiskStewardFactory;
92+
address eulerEarnPublicAllocator;
9293
}
9394

9495
function serializePeripheryAddresses(PeripheryAddresses memory Addresses) internal returns (string memory result) {
@@ -131,6 +132,8 @@ abstract contract PeripheryAddressesLib is ScriptExtended {
131132
Addresses.governorAccessControlEmergencyFactory
132133
);
133134
result = vm.serializeAddress("peripheryAddresses", "capRiskStewardFactory", Addresses.capRiskStewardFactory);
135+
result =
136+
vm.serializeAddress("peripheryAddresses", "eulerEarnPublicAllocator", Addresses.eulerEarnPublicAllocator);
134137
}
135138

136139
function deserializePeripheryAddresses(string memory json) internal pure returns (PeripheryAddresses memory) {
@@ -157,7 +160,8 @@ abstract contract PeripheryAddressesLib is ScriptExtended {
157160
edgeFactoryPerspective: getAddressFromJson(json, ".edgeFactoryPerspective"),
158161
termsOfUseSigner: getAddressFromJson(json, ".termsOfUseSigner"),
159162
governorAccessControlEmergencyFactory: getAddressFromJson(json, ".governorAccessControlEmergencyFactory"),
160-
capRiskStewardFactory: getAddressFromJson(json, ".capRiskStewardFactory")
163+
capRiskStewardFactory: getAddressFromJson(json, ".capRiskStewardFactory"),
164+
eulerEarnPublicAllocator: getAddressFromJson(json, ".eulerEarnPublicAllocator")
161165
});
162166
}
163167
}

script/utils/verifyContracts.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ function verify_broadcast {
199199
elif [[ $transactionType == "CREATE" && $verificationSuccessful != true ]]; then
200200
local initCode=$(echo $tx | jq -r '.transaction.input')
201201

202-
if [ -d "out-euler-earn" ] && [ $eulerEarnIndex -le 1 ]; then
202+
if [ -d "out-euler-earn" ] && [ $eulerEarnIndex -le 2 ]; then
203203
# try to verify as EulerEarn contracts
204204
local src="lib/euler-earn/src"
205205
local verificationOptions="--via-ir --num-of-optimizations 200 --compiler-version 0.8.26 --root lib/euler-earn"
@@ -212,6 +212,11 @@ function verify_broadcast {
212212
contractName=EulerEarnFactory
213213
constructorBytesSize=128
214214
;;
215+
1)
216+
# try to verify as PublicAllocator
217+
contractName=PublicAllocator
218+
constructorBytesSize=32
219+
;;
215220
*)
216221
break
217222
;;

0 commit comments

Comments
 (0)