Skip to content

Commit

Permalink
fix for contributor and sponsor address
Browse files Browse the repository at this point in the history
  • Loading branch information
naneey committed Jan 23, 2024
1 parent b837bc6 commit 327692e
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 23 deletions.
40 changes: 21 additions & 19 deletions CPSCore/src/main/java/community/icon/cps/score/cpscore/CPSCore.java
Original file line number Diff line number Diff line change
Expand Up @@ -1094,34 +1094,34 @@ public int checkChangeVote(Address address, String ipfsHash, String proposalType

@Override
@External
public void updateContributor(String _ipfs_hash, Address _new_contributor) {
public void updateContributor(String _ipfs_hash, Address _new_contributor, Address _new_sponsor) {
validateAdmins();
Context.require(!_new_contributor.isContract(), TAG + ": Contract Address not supported.");

Map<String, Object> _proposal_details = getProposalDetails(_ipfs_hash);
String _proposal_status = (String) _proposal_details.get(STATUS);
Context.require(_proposal_status.equals(ACTIVE), TAG + ": Proposal must be active");
// check sender must be current contributor

// update contributor's address
Address _contributor_address = (Address) _proposal_details.get(CONTRIBUTOR_ADDRESS);
Context.require(Context.getCaller().equals(_contributor_address), TAG + ": Caller must be current contributor");
removeContributor(_contributor_address, _ipfs_hash);
// update contributor's address

contributors.add(_new_contributor);
contributorProjects.at(_new_contributor).add(_ipfs_hash);

// request update contributor address to cps treasury
callScore(getCpsTreasuryScore(), "update_contributor_address", _ipfs_hash, _new_contributor);
// update sponsor's address
Address _sponsor_address = (Address) _proposal_details.get(SPONSOR_ADDRESS);
removeSponsor(_sponsor_address, _ipfs_hash);

// emit event
UpdateContributor(_contributor_address, _new_contributor);
}
sponsors.add(_new_sponsor);
sponsorProjects.at(_new_sponsor).add(_ipfs_hash);

@Override
@Deprecated(since = "JAVA translation", forRemoval = true)
@External(readonly = true)
public int check_change_vote(Address _address, String _ipfs_hash, String _proposal_type) {
return checkChangeVote(_address, _ipfs_hash, _proposal_type);
}
// request update contributor address and sponsor address to cps treasury
callScore(getCpsTreasuryScore(), "update_contributor_sponsor_address", _ipfs_hash, _new_contributor,_new_sponsor);

// emit event
UpdateContributorAddress(_contributor_address, _new_contributor);
UpdateSponsorAddress(_sponsor_address, _new_sponsor);
}

@External(readonly = true)
public Map<String, Object> getProjectAmounts() {
Expand Down Expand Up @@ -1683,7 +1683,6 @@ private void addNewProgressReportKey(String ipfsHash, String reportHash) {
}
}

@Override
@External(readonly = true)
public Map<String, ?> getProposalDetails(String status, @Optional Address walletAddress, @Optional int startIndex) {
if (!STATUS_TYPE.contains(status)) {
Expand Down Expand Up @@ -2705,9 +2704,12 @@ public void PriorityVote(Address _address, String note) {
}


@Override
@EventLog(indexed = 1)
public void UpdateContributor(Address _old, Address _new) {
public void UpdateContributorAddress(Address _old, Address _new) {
}

@EventLog(indexed = 1)
public void UpdateSponsorAddress(Address _old, Address _new) {
}

// =====================================EventLogs===============================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.eclipsesource.json.Json;
import com.eclipsesource.json.JsonObject;
import community.icon.cps.score.cpstreasury.db.ProposalData;
import community.icon.cps.score.cpstreasury.utils.ArrayDBUtils;
import community.icon.cps.score.cpstreasury.utils.consts;
import community.icon.cps.score.lib.interfaces.CPSTreasuryInterface;
import score.*;
Expand Down Expand Up @@ -602,20 +603,29 @@ public void updateNewProjects(String oldHash, String newHash, int milestoneCount

@Override
@External
public void update_contributor_address(String _ipfs_key, Address _new_contributor_address) {
public void update_contributor_sponsor_address(String _ipfs_key, Address _new_contributor_address,
Address _new_sponsor_address) {
validateCpsScore();
Context.require(proposalExists(_ipfs_key), TAG + ": This project not exists");

String prefix = proposalPrefix(_ipfs_key);
Map<String, ?> proposalData = getDataFromProposalDB(prefix);
Address contributorAddress = (Address) proposalData.get(consts.CONTRIBUTOR_ADDRESS);
Address sponsorAddress = (Address) proposalData.get(consts.SPONSOR_ADDRESS);

// remove
contributorProjects.at(_new_contributor_address.toString()).add(_ipfs_key);
ArrayDBUtils.remove_array_item_string(contributorProjects.at(contributorAddress.toString()), _ipfs_key);

// update contributor address
setContributorAddress(prefix, _new_contributor_address);

// remove
sponsorProjects.at(_new_sponsor_address.toString()).add(_ipfs_key);
ArrayDBUtils.remove_array_item_string(sponsorProjects.at(sponsorAddress.toString()),_ipfs_key);

// update sponsor address
this.sponsorAddress.at(prefix).set(_new_sponsor_address);
}

public <T> T callScore(Class<T> t, Address address, String method, Object... params) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ public static class MilestoneVoteAttributes {
void updateNextBlock(int blockCount);

@External
void updateContributor(String _ipfs_key, Address _new_contributor);
void updateContributor(String _ipfs_key, Address _new_contributor, Address _new_sponsor);


@External(readonly = true)
Expand Down Expand Up @@ -306,7 +306,10 @@ public static class MilestoneVoteAttributes {
void PriorityVote(Address _address, String note);

@EventLog(indexed = 1)
void UpdateContributor(Address _old, Address _new);
void UpdateContributorAddress(Address _old, Address _new);

@EventLog(indexed = 1)
void UpdateSponsorAddress(Address _old, Address _new);

@External(readonly = true)
int getPeriodCount();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ void updateProposalFund(String ipfsKey, BigInteger addedBudget, BigInteger added
BigInteger getOnsetPayment();

@External
void update_contributor_address(String _ipfs_key, Address _new_contributor_address);
void update_contributor_sponsor_address(String _ipfs_key, Address _new_contributor_address,
Address _new_sponsor_address);

@EventLog(indexed = 1)
void ProposalDisqualified(String _ipfs_key, String note);
Expand Down

0 comments on commit 327692e

Please sign in to comment.