Skip to content

Commit

Permalink
Merge pull request #464 from balancednetwork/feat/dex-borrowing
Browse files Browse the repository at this point in the history
feat: Add option for governance to borrow from dex
  • Loading branch information
AntonAndell authored Nov 29, 2024
2 parents 3155575 + 1aa2624 commit 74f8b0f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,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);
}

Check warning on line 653 in core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java

View check run for this annotation

Codecov / codecov/patch

core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java#L650-L653

Added lines #L650 - L653 were not covered by tests

@External(readonly=true)
public BigInteger getGovernanceDebt(Address token) {
return governanceDebt.getOrDefault(token, BigInteger.ZERO);

Check warning on line 657 in core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java

View check run for this annotation

Codecov / codecov/patch

core-contracts/Dex/src/main/java/network/balanced/score/core/dex/AbstractDex.java#L657

Added line #L657 was not covered by tests
}

@External
public void govSetPoolTotal(int pid, BigInteger total) {
onlyGovernance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public class DexDBVariables {
private static final String TOKEN_PRECISIONS = "token_precisions";
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<Address> governance = Context.newVarDB(GOVERNANCE_ADDRESS, Address.class);
Expand Down Expand Up @@ -137,4 +138,8 @@ public class DexDBVariables {

//Map: pid -> percentage
public final static DictDB<BigInteger, BigInteger> oracleProtection = Context.newDictDB(ORACLE_PROTECTION, BigInteger.class);

//Map: token -> amount
final static DictDB<Address, BigInteger> governanceDebt = Context.newDictDB(GOV_DEBT, BigInteger.class);

}
Original file line number Diff line number Diff line change
Expand Up @@ -207,5 +207,10 @@ void xAdd(String from, String _baseToken, String _quoteToken, BigInteger _baseVa
@External
void addLpAddresses(BigInteger _poolId, Address[] _addresses);

@External
void governanceBorrow(Address token, BigInteger amount, Address recipient);

@External(readonly=true)
BigInteger getGovernanceDebt(Address token);
}

0 comments on commit 74f8b0f

Please sign in to comment.