mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-13 08:55:31 -04:00
increase penalty fee to security deposit
This commit is contained in:
parent
8ea556fa4f
commit
a16b03bb5c
11 changed files with 82 additions and 55 deletions
|
@ -1570,12 +1570,12 @@ public abstract class Trade implements Tradable, Model {
|
|||
|
||||
public BigInteger getBuyerSecurityDeposit() {
|
||||
if (getBuyer().getDepositTxHash() == null) return null;
|
||||
return BigInteger.valueOf(getBuyer().getSecurityDeposit());
|
||||
return getBuyer().getSecurityDeposit();
|
||||
}
|
||||
|
||||
public BigInteger getSellerSecurityDeposit() {
|
||||
if (getSeller().getDepositTxHash() == null) return null;
|
||||
return BigInteger.valueOf(getSeller().getSecurityDeposit());
|
||||
return getSeller().getSecurityDeposit();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
@ -1719,11 +1719,11 @@ public abstract class Trade implements Tradable, Model {
|
|||
getTaker().setDepositTx(makerFirst ? txs.get(1) : txs.get(0));
|
||||
|
||||
// set security deposits
|
||||
if (getBuyer().getSecurityDeposit() == 0) {
|
||||
if (getBuyer().getSecurityDeposit().longValueExact() == 0) {
|
||||
BigInteger buyerSecurityDeposit = ((MoneroTxWallet) getBuyer().getDepositTx()).getIncomingAmount();
|
||||
BigInteger sellerSecurityDeposit = ((MoneroTxWallet) getSeller().getDepositTx()).getIncomingAmount().subtract(getAmount());
|
||||
getBuyer().setSecurityDeposit(buyerSecurityDeposit.longValueExact());
|
||||
getSeller().setSecurityDeposit(sellerSecurityDeposit.longValueExact());
|
||||
getBuyer().setSecurityDeposit(buyerSecurityDeposit);
|
||||
getSeller().setSecurityDeposit(sellerSecurityDeposit);
|
||||
}
|
||||
|
||||
// set deposits published state
|
||||
|
|
|
@ -27,6 +27,8 @@ import haveno.core.payment.payload.PaymentAccountPayload;
|
|||
import haveno.core.proto.CoreProtoResolver;
|
||||
import haveno.core.xmr.model.RawTransactionInput;
|
||||
import haveno.network.p2p.NodeAddress;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
@ -133,6 +135,14 @@ public final class TradePeer implements PersistablePayload {
|
|||
public TradePeer() {
|
||||
}
|
||||
|
||||
public BigInteger getSecurityDeposit() {
|
||||
return BigInteger.valueOf(securityDeposit);
|
||||
}
|
||||
|
||||
public void setSecurityDeposit(BigInteger securityDeposit) {
|
||||
this.securityDeposit = securityDeposit.longValueExact();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message toProtoMessage() {
|
||||
final protobuf.TradePeer.Builder builder = protobuf.TradePeer.newBuilder()
|
||||
|
@ -219,7 +229,7 @@ public final class TradePeer implements PersistablePayload {
|
|||
tradePeer.setDepositTxHash(ProtoUtil.stringOrNullFromProto(proto.getDepositTxHash()));
|
||||
tradePeer.setDepositTxHex(ProtoUtil.stringOrNullFromProto(proto.getDepositTxHex()));
|
||||
tradePeer.setDepositTxKey(ProtoUtil.stringOrNullFromProto(proto.getDepositTxKey()));
|
||||
tradePeer.setSecurityDeposit(proto.getSecurityDeposit());
|
||||
tradePeer.setSecurityDeposit(BigInteger.valueOf(proto.getSecurityDeposit()));
|
||||
tradePeer.setUpdatedMultisigHex(ProtoUtil.stringOrNullFromProto(proto.getUpdatedMultisigHex()));
|
||||
return tradePeer;
|
||||
}
|
||||
|
|
|
@ -90,7 +90,8 @@ public class ArbitratorProcessDepositRequest extends TradeTask {
|
|||
trader.getDepositTxHash(),
|
||||
request.getDepositTxHex(),
|
||||
request.getDepositTxKey(),
|
||||
null);
|
||||
null,
|
||||
false);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Error processing deposit tx from " + (isFromTaker ? "taker " : "maker ") + trader.getNodeAddress() + ", offerId=" + offer.getId() + ": " + e.getMessage());
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
package haveno.core.trade.protocol.tasks;
|
||||
|
||||
import haveno.common.taskrunner.TaskRunner;
|
||||
import haveno.common.util.Tuple2;
|
||||
import haveno.core.offer.Offer;
|
||||
import haveno.core.offer.OfferDirection;
|
||||
import haveno.core.trade.Trade;
|
||||
|
@ -26,6 +27,7 @@ import haveno.core.trade.protocol.TradePeer;
|
|||
import java.math.BigInteger;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import monero.daemon.model.MoneroTx;
|
||||
|
||||
/**
|
||||
* Arbitrator verifies reserve tx from maker or taker.
|
||||
|
@ -55,8 +57,9 @@ public class ArbitratorProcessReserveTx extends TradeTask {
|
|||
BigInteger tradeFee = isFromTaker ? trade.getTakerFee() : trade.getMakerFee();
|
||||
BigInteger sendAmount = isFromBuyer ? BigInteger.valueOf(0) : offer.getAmount();
|
||||
BigInteger securityDeposit = isFromBuyer ? offer.getBuyerSecurityDeposit() : offer.getSellerSecurityDeposit();
|
||||
Tuple2<MoneroTx, BigInteger> txResult;
|
||||
try {
|
||||
trade.getXmrWalletService().verifyTradeTx(
|
||||
txResult = trade.getXmrWalletService().verifyTradeTx(
|
||||
tradeFee,
|
||||
sendAmount,
|
||||
securityDeposit,
|
||||
|
@ -64,7 +67,8 @@ public class ArbitratorProcessReserveTx extends TradeTask {
|
|||
request.getReserveTxHash(),
|
||||
request.getReserveTxHex(),
|
||||
request.getReserveTxKey(),
|
||||
null);
|
||||
null,
|
||||
true);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Error processing reserve tx from " + (isFromTaker ? "taker " : "maker ") + request.getSenderNodeAddress() + ", offerId=" + offer.getId() + ": " + e.getMessage());
|
||||
}
|
||||
|
@ -74,6 +78,7 @@ public class ArbitratorProcessReserveTx extends TradeTask {
|
|||
trader.setReserveTxHash(request.getReserveTxHash());
|
||||
trader.setReserveTxHex(request.getReserveTxHex());
|
||||
trader.setReserveTxKey(request.getReserveTxKey());
|
||||
trader.setSecurityDeposit(txResult.second);
|
||||
|
||||
// persist trade
|
||||
processModel.getTradeManager().requestPersistence();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue