Skip to content

Commit 683868e

Browse files
committed
add setters
1 parent 4675b3e commit 683868e

File tree

2 files changed

+61
-9
lines changed

2 files changed

+61
-9
lines changed

proof-of-liquidity/src/main/java/icon/inflation/score/pol/ProofOfLiquidity.java

+46-9
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
package icon.inflation.score.pol;
22

3+
import static icon.inflation.score.util.Checks.onlyOwner;
4+
import static icon.inflation.score.util.Constants.EXA;
5+
36
import java.math.BigInteger;
47

8+
import com.eclipsesource.json.JsonArray;
9+
import com.eclipsesource.json.JsonObject;
10+
import com.eclipsesource.json.JsonValue;
11+
512
import icon.inflation.score.structs.LiquidityDistribution;
613
import icon.inflation.score.util.DBUtils;
7-
import score.Context;
14+
import score.Address;
815
import score.ArrayDB;
16+
import score.Context;
917
import score.VarDB;
10-
import score.Address;
1118
import score.annotation.External;
1219
import score.annotation.Payable;
1320

14-
import com.eclipsesource.json.JsonObject;
15-
import com.eclipsesource.json.JsonValue;
16-
import com.eclipsesource.json.JsonArray;
17-
18-
import static icon.inflation.score.util.Constants.EXA;
19-
import static icon.inflation.score.util.Checks.onlyOwner;
20-
2121
public class ProofOfLiquidity {
2222

2323
public static final ArrayDB<LiquidityDistribution> distribution = Context.newArrayDB("DISTRIBUTIONS", LiquidityDistribution.class);
@@ -42,6 +42,42 @@ public String name() {
4242
return NAME;
4343
}
4444

45+
46+
@External
47+
public void setStaking(Address _staking) {
48+
onlyOwner();
49+
staking.set(_staking);
50+
}
51+
52+
@External(readonly = true)
53+
public Address getStaking() {
54+
return staking.get();
55+
}
56+
57+
58+
@External
59+
public void setBalancedRewards(Address _balancedRewards) {
60+
onlyOwner();
61+
balancedRewards.set(_balancedRewards);
62+
}
63+
64+
@External(readonly = true)
65+
public Address getBalancedRewards() {
66+
return balancedRewards.get();
67+
}
68+
69+
70+
@External
71+
public void setSICX(Address _sICX) {
72+
onlyOwner();
73+
sICX.set(_sICX);
74+
}
75+
76+
@External(readonly = true)
77+
public Address getSICX() {
78+
return sICX.get();
79+
}
80+
4581
@External(readonly = true)
4682
public LiquidityDistribution[] getDistributions() {
4783
int size = distribution.size();
@@ -103,6 +139,7 @@ public void distribute() {
103139
}
104140

105141

142+
106143
@External
107144
public void tokenFallback(Address _from, BigInteger _value, byte[] _data) {
108145
}

proof-of-liquidity/src/test/java/icon/inflation/score/pol/ProofOfLiquidityTest.java

+15
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,21 @@ public void distribute() {
198198
verify(sICX.mock).transfer(rewards, total, expectedData.toString().getBytes());
199199
}
200200

201+
@Test
202+
public void testPermissions() {
203+
_testPermission("setStaking", Checks.Errors.ONLY_OWNER, staking.getAddress());
204+
_testPermission("setBalancedRewards", Checks.Errors.ONLY_OWNER, rewards);
205+
_testPermission("setSICX", Checks.Errors.ONLY_OWNER, sICX.getAddress());
206+
_testPermission("configureDistributions", Checks.Errors.ONLY_OWNER, (Object)new LiquidityDistribution[0]);
207+
208+
}
209+
210+
private void _testPermission(String method, String error, Object... params) {
211+
Account dummy = sm.createAccount();
212+
Executable call = () -> pol.invoke(dummy, method, params);
213+
expectErrorMessage(call, error);
214+
}
215+
201216
public LiquidityDistribution newDist(String source, BigInteger share) {
202217
LiquidityDistribution bucket = new LiquidityDistribution();
203218
bucket.source = source;

0 commit comments

Comments
 (0)