diff --git a/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java b/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java index 2f5ee1ac7..6c6390fbb 100644 --- a/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java +++ b/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java @@ -653,6 +653,19 @@ public void govWithdraw(int id, Address token, BigInteger value) { Context.call(token, "transfer", getDaofund(), value); } + @External + public void governanceBorrow(Address token, BigInteger amount, Address recipient) { + onlyGovernance(); + BigInteger currentDebt = governanceDebt.getOrDefault(token, BigInteger.ZERO); + governanceDebt.set(token, currentDebt.add(amount)); + Context.call(token, "transfer", recipient, amount); + } + + @External(readonly=true) + public BigInteger getGovernanceDebt(Address token) { + return governanceDebt.getOrDefault(token, BigInteger.ZERO); + } + @External public void govSetPoolTotal(int pid, BigInteger total) { onlyGovernance(); diff --git a/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/DexDBVariables.java b/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/DexDBVariables.java index b33080391..93d31e41a 100644 --- a/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/DexDBVariables.java +++ b/core-contracts/Dex/src/main/java/network/balanced/score/core/dex/DexDBVariables.java @@ -62,6 +62,7 @@ public class DexDBVariables { private static final String CONTINUOUS_REWARDS_DAY = "continuous_rewards_day"; public static final String VERSION = "version"; public static final String ORACLE_PROTECTION = "oracle_protection"; + public static final String GOV_DEBT = "governance_debt"; final static VarDB
governance = Context.newVarDB(GOVERNANCE_ADDRESS, Address.class); @@ -154,4 +155,8 @@ public class DexDBVariables { //Map: pid -> percentage public final static DictDB