Skip to content

Commit

Permalink
fix cpfTresury fixes for FMC setter/getters
Browse files Browse the repository at this point in the history
  • Loading branch information
sdpisreddevil committed Sep 5, 2024
1 parent ab200f4 commit 0074adc
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public class CPFTreasury extends SetterGetter implements CPFTreasuryInterface {
private final VarDB<Boolean> swapFlag = Context.newVarDB(SWAP_FLAG, Boolean.class);
private final VarDB<BigInteger> swapLimitAmount = Context.newVarDB(SWAP_LIMIT_AMOUNT, BigInteger.class);

private final VarDB<Boolean> councilFlag = Context.newVarDB(COUNCIL_FLAG, Boolean.class);
private final ArrayDB<Address> councilManagers = Context.newArrayDB(COUNCIL_MANAGERS, Address.class);
public static final VarDB<Boolean> councilFlag = Context.newVarDB(COUNCIL_FLAG, Boolean.class);
public static final ArrayDB<Address> councilManagers = Context.newArrayDB(COUNCIL_MANAGERS, Address.class);


public CPFTreasury(@Optional Address cpsScore) {
Expand Down Expand Up @@ -503,53 +503,7 @@ public void migrateOldHashToNewHash(String oldHash, String newHash){
proposalBudgets.set(newHash,totalBudget);
}

@External
public void toggleCouncilFlag() {
validateAdmins();
councilFlag.set(!councilFlag.getOrDefault(false));
}

@External(readonly = true)
public boolean getCouncilFlag() {
return councilFlag.getOrDefault(false);
}

@External
public void setCouncilManagers(Address[] newCouncilManagers) {
//todo governance only
int sizeOfCouncilManagers = councilManagers.size();
Context.require(sizeOfCouncilManagers >= 3,"council managers should be greater than 3");
Context.require(sizeOfCouncilManagers%2 == 1,"council managers should be an odd number");
if (sizeOfCouncilManagers>0){
clearArrayDb(councilManagers);
}
int sizeOfNewManagers= newCouncilManagers.length;
for(int i =0; i<sizeOfNewManagers; i++){
councilManagers.add(newCouncilManagers[i]);
}
}

@External
public List<Address> getCouncilManagers() {
//todo governance only
return arrayDBtoList(councilManagers);
}

<T> List<T> arrayDBtoList(ArrayDB<T> arraydb) {
List<T> list = new ArrayList<>();
for (int i = 0; i < arraydb.size(); i++) {
list.add(arraydb.get(i));
}
return list;
}

void clearArrayDb(ArrayDB<?> array_db) {
int size = array_db.size();
for (int i = 0; i < size; i++) {
array_db.pop();
}

}

//EventLogs
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
package community.icon.cps.score.cpftreasury;

import score.Address;
import score.ArrayDB;
import score.Context;
import score.annotation.External;
import scorex.util.ArrayList;

import java.math.BigInteger;
import java.util.List;

import static community.icon.cps.score.cpftreasury.CPFTreasury.councilFlag;
import static community.icon.cps.score.cpftreasury.CPFTreasury.councilManagers;
import static community.icon.cps.score.cpftreasury.Constants.TAG;
import static community.icon.cps.score.cpftreasury.Validations.validateAdmins;
import static community.icon.cps.score.cpftreasury.Validations.validateGovernanceContract;

public class SetterGetter {
Expand Down Expand Up @@ -154,19 +161,69 @@ public Address getOracleAddress() {
@External
public void setSponsorBondPercentage(BigInteger bondValue) {
validateGovernanceContract();
Context.call( getCpsScore(), "setSponsorBondPercentage",bondValue);
Context.call(getCpsScore(), "setSponsorBondPercentage", bondValue);
}

@External
public void setPeriod(BigInteger applicationPeriod) {
validateGovernanceContract();
Context.call(getCpsScore(), "setPeriod",applicationPeriod);
Context.call(getCpsScore(), "setPeriod", applicationPeriod);
}

@External
public void setOnsetPayment(BigInteger paymentPercentage) {
validateGovernanceContract();
Context.call(getCpsTreasuryScore(), "setOnsetPayment",paymentPercentage);
Context.call(getCpsTreasuryScore(), "setOnsetPayment", paymentPercentage);
}


@External
public void toggleCouncilFlag() {
// todo add governance
validateAdmins();
councilFlag.set(!councilFlag.getOrDefault(false));
}

@External(readonly = true)
public boolean getCouncilFlag() {
return councilFlag.getOrDefault(false);
}

@External
public void setCouncilManagers(Address[] newCouncilManagers) {
//todo governance only
int sizeOfCouncilManagers = councilManagers.size();
Context.require(sizeOfCouncilManagers >= 3, TAG + ":: council managers should be greater than 3");
Context.require(sizeOfCouncilManagers % 2 == 1, TAG + ":: council managers should be an odd number");
if (sizeOfCouncilManagers > 0) {
clearArrayDb(councilManagers);
}
int sizeOfNewManagers = newCouncilManagers.length;
for (int i = 0; i < sizeOfNewManagers; i++) {
councilManagers.add(newCouncilManagers[i]);
}
}

@External
public List<Address> getCouncilManagers() {
return arrayDBtoList(councilManagers);
}


<T> List<T> arrayDBtoList(ArrayDB<T> arraydb) {
List<T> list = new ArrayList<>();
for (int i = 0; i < arraydb.size(); i++) {
list.add(arraydb.get(i));
}
return list;
}

void clearArrayDb(ArrayDB<?> array_db) {
int size = array_db.size();
for (int i = 0; i < size; i++) {
array_db.pop();
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -985,7 +985,7 @@ public void voteProgressReport(String reportKey, String voteReason, MilestoneVot
Address caller = Context.getCaller();
PReps pReps = new PReps();

List<Address> callLocation = new ArrayList<>();
List<Address> callLocation;
if (getCouncilFlag()) {
callLocation = getCouncilManagers();
} else {
Expand Down Expand Up @@ -1429,22 +1429,19 @@ private void updateProgressReportResult() {
int proposalPeriod = ProposalDataDb.proposalPeriod.at(proposal_prefix).getOrDefault(0);
boolean extended = MilestoneDb.extensionFlag.at(milestonePrefix).getOrDefault(false);

if (getPeriodCount() == (proposalPeriod + completionPeriod)) {
if (extended) {
updateProposalStatus(_ipfs_hash, _proposal_details);
} else {
int finalPeriodToSubmit = proposalPeriod + completionPeriod;
if (getPeriodCount() < finalPeriodToSubmit){
milestonePassed +=1;
}else if (getPeriodCount() >= finalPeriodToSubmit && !extended) {
milestonePassed += 1;
String proposalPrefix = proposalPrefix(_ipfs_hash);
int project_duration = (int) _proposal_details.get(PROJECT_DURATION);
MilestoneDb.extensionFlag.at(milestonePrefix).set(true);
ProposalDataDb.projectDuration.at(proposalPrefix).set(project_duration + 1);
MilestoneDb.completionPeriod.at(milestonePrefix).set(completionPeriod + 1);
}
}
updateMilestoneDB(milestonePrefix);

}

} else {
MilestoneDb.status.at(milestonePrefix).set(MILESTONE_REPORT_REJECTED);
updateMilestoneDB(milestonePrefix);
Expand Down

0 comments on commit 0074adc

Please sign in to comment.