diff --git a/core-contracts/StakedLP/src/main/java/network/balanced/score/core/stakedlp/StakedLPImpl.java b/core-contracts/StakedLP/src/main/java/network/balanced/score/core/stakedlp/StakedLPImpl.java index 3e38292ec..730eff648 100644 --- a/core-contracts/StakedLP/src/main/java/network/balanced/score/core/stakedlp/StakedLPImpl.java +++ b/core-contracts/StakedLP/src/main/java/network/balanced/score/core/stakedlp/StakedLPImpl.java @@ -176,7 +176,11 @@ private void unstake(BigInteger id, NetworkAddress user, BigInteger value) { Unstake(user.toString(), id, value); - Context.call(rewards.get(), "updateBalanceAndSupply", poolName, newTotal, user.toString(), newBalance); + if (user.net().equals(NATIVE_NID)) { + Context.call(rewards.get(), "updateBalanceAndSupply", poolName, newTotal, user.account(), newBalance); + } else { + Context.call(rewards.get(), "updateBalanceAndSupply", poolName, newTotal, user.toString(), newBalance); + } try { Context.call(dex.get(), "hubTransfer", user.toString(), value, id, new byte[0]); @@ -209,11 +213,21 @@ public void addDataSource(BigInteger id, String name) { dataSourceNames.set(id, name); } + @External + public void kick(String _name, Address _owner) { + BigInteger poolId = dataSourceIds.get(_name); + BigInteger totalSupply = totalStaked(poolId); + BigInteger balance = balanceOf(_owner, poolId); + + Context.call(rewards.get(), "updateBalanceAndSupply", _name, totalSupply, _owner.toString(), balance); + Context.call(rewards.get(), "updateBalanceAndSupply", _name, totalSupply, new NetworkAddress(NATIVE_NID, _owner).toString(), 0); + } + @External(readonly = true) public Map getBalanceAndSupply(String _name, String _owner) { BigInteger poolId = dataSourceIds.get(_name); BigInteger totalSupply = totalStaked(poolId); - BigInteger balance = balanceOf(Address.fromString(_owner), poolId); + BigInteger balance = xBalanceOf(_owner, poolId); Map rewardsData = new HashMap<>(); rewardsData.put("_balance", balance); diff --git a/core-contracts/StakedLP/src/test/java/network/balanced/score/core/stakedlp/StakedLPTest.java b/core-contracts/StakedLP/src/test/java/network/balanced/score/core/stakedlp/StakedLPTest.java index c1f1c6157..036bcb424 100644 --- a/core-contracts/StakedLP/src/test/java/network/balanced/score/core/stakedlp/StakedLPTest.java +++ b/core-contracts/StakedLP/src/test/java/network/balanced/score/core/stakedlp/StakedLPTest.java @@ -318,7 +318,7 @@ void testUnstake() { assertEquals(totalStakedBalanceBeforeUnstake, stakedLpScore.call("totalStaked", BigInteger.ONE)); verify(dex.mock).hubTransfer(NetworkAddress.valueOf(alice.getAddress().toString(), NATIVE_NID).toString(), aliceUnstakeAmount, BigInteger.ONE, new byte[0]); - verify(rewards.mock).updateBalanceAndSupply(poolOneName, totalStakedBalanceBeforeUnstake, NetworkAddress.valueOf(alice.getAddress().toString(), NATIVE_NID).toString(), + verify(rewards.mock).updateBalanceAndSupply(poolOneName, totalStakedBalanceBeforeUnstake, alice.getAddress().toString(), aliceStakedBalance); // Adjust the values after first unstake @@ -389,6 +389,6 @@ void testStakeUnstake_unnamedPool() { balanceAndSupply = (Map) stakedLpScore.call("getBalanceAndSupply", name, alice.getAddress().toString()); assertEquals(BigInteger.valueOf(8), balanceAndSupply.get("_balance")); assertEquals(BigInteger.valueOf(8), balanceAndSupply.get("_totalSupply")); - verify(rewards.mock).updateBalanceAndSupply(name, balanceAndSupply.get("_totalSupply"), NetworkAddress.valueOf(alice.getAddress().toString(), NATIVE_NID).toString(), balanceAndSupply.get("_balance")); + verify(rewards.mock).updateBalanceAndSupply(name, balanceAndSupply.get("_totalSupply"), alice.getAddress().toString(), balanceAndSupply.get("_balance")); } } diff --git a/score-lib/src/main/java/network/balanced/score/lib/utils/Versions.java b/score-lib/src/main/java/network/balanced/score/lib/utils/Versions.java index 14de8c230..eb14ca137 100644 --- a/score-lib/src/main/java/network/balanced/score/lib/utils/Versions.java +++ b/score-lib/src/main/java/network/balanced/score/lib/utils/Versions.java @@ -26,7 +26,7 @@ public class Versions { public final static String WORKERTOKEN = "v1.0.0"; public final static String BNUSD = "v1.1.1"; public final static String FEEHANDLER = "v1.0.1"; - public final static String REWARDS = "v1.2.4"; + public final static String REWARDS = "v1.2.5"; public final static String STABILITY = "v1.1.1"; public final static String BALANCEDORACLE = "v1.2.0"; public final static String DAOFUND = "v1.1.4"; @@ -34,7 +34,7 @@ public class Versions { public final static String GOVERNANCE = "v1.0.2"; public final static String REBALANCING = "v1.0.0"; public final static String ROUTER = "v1.2.4"; - public final static String STAKEDLP = "v1.0.9"; + public final static String STAKEDLP = "v1.1.0"; public final static String BOOSTED_BALN = "v1.1.0"; public final static String BRIBING = "v1.0.1"; public final static String BALANCED_OTC = "v1.0.0";