Skip to content

Commit

Permalink
Revert Require to if (#1769)
Browse files Browse the repository at this point in the history
* Replace Require by if for PaybackWithCollateral

* Replace Require by if for Payback

* Add prefix for error method

* Change error prefix and merge some duplicate

* Return Res from single Require args. Minor error string correction.

---------

Co-authored-by: Bushstar <bushsolo@gmail.com>
  • Loading branch information
DocteurPing and Bushstar authored Feb 20, 2023
1 parent d376300 commit aebeeb6
Show file tree
Hide file tree
Showing 2 changed files with 172 additions and 67 deletions.
90 changes: 90 additions & 0 deletions src/masternodes/errors.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,96 @@ class DeFiErrors {
// TODO: Change error in later version to include amount. Retaining old msg for compatibility
return Res::Err("Below minimum swapable amount, must be at least %s BTC", GetDecimaleString(minSwap));
}

static Res MNInvalidAttribute() {
return Res::Err("Attributes unavailable");
}

static Res TokenInvalid(const std::string &token) {
return Res::Err("Cannot find token %s", token);
}

static Res LoanPaybackWithCollateralDisable() {
return Res::Err("Payback of DUSD loan with collateral is not currently active");
}

static Res VaultNoCollateral(const std::string &vaultId = "") {
return vaultId.empty() ? Res::Err("Vault has no collaterals") : Res::Err("Vault with id %s has no collaterals", vaultId);
}

static Res VaultNoDUSDCollateral() {
return Res::Err("Vault does not have any DUSD collaterals");
}

static Res LoanInvalidVault(const std::string &vault) {
return Res::Err("There are no loans on this vault (%s)!", vault);
}

static Res LoanInvalidToken(const std::string &token) {
return Res::Err("There is no loan on token (%s) in this vault!", token);
}

static Res VaultNoLoans(const std::string &token = "") {
return token.empty() ? Res::Err("Vault has no loans") : Res::Err("Vault does not have any %s loans", token);
}

static Res TokenInterestRateInvalid(const std::string token) {
return Res::Err("Cannot get interest rate for this token (%s)!", token);
}

static Res VaultNeedCollateral() {
return Res::Err("Vault cannot have loans without collaterals");
}

static Res VaultInvalidPrice() {
return Res::Err("Cannot payback vault with non-DUSD assets while any of the asset's price is invalid");
}

static Res VaultInsufficientCollateralization(const uint32_t collateralizationRatio, const uint32_t schemeRatio) {
return Res::Err("Vault does not have enough collateralization ratio defined by loan scheme - %d < %d",
collateralizationRatio,
schemeRatio);
}

static Res LoanTokenInvalid(const std::string &token) {
return Res::Err("Loan token %s does not exist!", token);
}

static Res VaultInvalid(const std::string &vaultId) {
return Res::Err("Cannot find existing vault with id %s", vaultId);
}

static Res VaultUnderLiquidation() {
return Res::Err("Cannot payback loan on vault under liquidation");
}

static Res TXMissingInput() {
return Res::Err("tx must have at least one input from token owner");
}

static Res LoanAssetPriceInvalid() {
return Res::Err("Cannot payback loan while any of the asset's price is invalid");
}

static Res LoanTokenIdInvalid(const std::string &token) {
return Res::Err("Loan token with id (%s) does not exist!", token);
}

static Res LoanPaymentAmountInvalid(const CAmount amount, const uint32_t value) {
return Res::Err("Valid payback amount required (input: %d@%d)", amount, value);
}

static Res TokenIdInvalid(const std::string &token) {
return Res::Err("Token with id (%s) does not exists", token);
}

static Res LoanPaybackDisabled(const std::string &token) {
return token.empty() ? Res::Err("Payback is not currently active") : Res::Err("Payback of loan via %s token is not currently active", token);
}

static Res LoanPriceInvalid(const std::string &kv, const std::string &payback) {
return Res::Err("Value/price too high (%s/%s)", kv, payback);
}
};

#endif // DEFI_MASTERNODES_ERRORS_H
Expand Down
Loading

0 comments on commit aebeeb6

Please sign in to comment.