mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-04-06 21:13:59 -04:00
Update types for walletService
This commit is contained in:
parent
ae058f37c8
commit
c553f77335
@ -59,8 +59,6 @@ import com.google.common.util.concurrent.Service;
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedList;
|
||||
@ -909,13 +907,11 @@ public class WalletService {
|
||||
}
|
||||
|
||||
// 5. step payout tx: Offerer creates payout tx and signs it
|
||||
|
||||
public Pair<ECKey.ECDSASignature, Transaction> offererCreatesAndSignsPayoutTx(String depositTxID,
|
||||
Coin offererPaybackAmount,
|
||||
Coin takerPaybackAmount,
|
||||
String takerAddress,
|
||||
String tradeID)
|
||||
throws AddressFormatException {
|
||||
Coin offererPaybackAmount,
|
||||
Coin takerPaybackAmount,
|
||||
String takerAddress,
|
||||
String tradeID) throws AddressFormatException {
|
||||
log.debug("offererCreatesAndSignsPayoutTx");
|
||||
log.trace("inputs: ");
|
||||
log.trace("depositTxID=" + depositTxID);
|
||||
@ -925,7 +921,7 @@ public class WalletService {
|
||||
|
||||
// Offerer has published depositTx earlier, so he has it in his wallet
|
||||
Transaction depositTx = wallet.getTransaction(new Sha256Hash(depositTxID));
|
||||
// String depositTxAsHex = Utils.HEX.encode(depositTx.bitcoinSerialize());
|
||||
// String depositTxAsHex = Utils.HEX.encode(depositTx.bitcoinSerialize());
|
||||
|
||||
// We create the payout tx
|
||||
Transaction tx = createPayoutTx(depositTx, offererPaybackAmount, takerPaybackAmount,
|
||||
@ -947,8 +943,7 @@ public class WalletService {
|
||||
|
||||
// 6. step payout tx: Taker signs and publish tx
|
||||
public void takerSignsAndSendsTx(Transaction depositTx,
|
||||
String offererSignatureR,
|
||||
String offererSignatureS,
|
||||
ECKey.ECDSASignature offererSignature,
|
||||
Coin offererPaybackAmount,
|
||||
Coin takerPaybackAmount,
|
||||
String offererAddress,
|
||||
@ -957,16 +952,14 @@ public class WalletService {
|
||||
log.debug("takerSignsAndSendsTx");
|
||||
log.trace("inputs: ");
|
||||
log.trace("depositTx=" + depositTx);
|
||||
log.trace("offererSignatureR=" + offererSignatureR);
|
||||
log.trace("offererSignatureS=" + offererSignatureS);
|
||||
log.trace("offererSignature=" + offererSignature);
|
||||
log.trace("offererPaybackAmount=" + offererPaybackAmount.toFriendlyString());
|
||||
log.trace("takerPaybackAmount=" + takerPaybackAmount.toFriendlyString());
|
||||
log.trace("offererAddress=" + offererAddress);
|
||||
log.trace("callback=" + callback);
|
||||
|
||||
// We create the payout tx
|
||||
Transaction tx = createPayoutTx(depositTx, offererPaybackAmount, takerPaybackAmount, offererAddress,
|
||||
getAddressInfo(tradeID).getAddressString());
|
||||
Transaction tx = createPayoutTx(depositTx, offererPaybackAmount, takerPaybackAmount, offererAddress, getAddressInfo(tradeID).getAddressString());
|
||||
|
||||
// We sign that tx with our key and apply the signature form the offerer
|
||||
TransactionOutput multiSigOutput = tx.getInput(0).getConnectedOutput();
|
||||
@ -977,8 +970,6 @@ public class WalletService {
|
||||
ECKey.ECDSASignature takerSignature = getAddressInfo(tradeID).getKey().sign(sigHash);
|
||||
TransactionSignature takerTxSig = new TransactionSignature(takerSignature, Transaction.SigHash.ALL, false);
|
||||
|
||||
ECKey.ECDSASignature offererSignature =
|
||||
new ECKey.ECDSASignature(new BigInteger(offererSignatureR), new BigInteger(offererSignatureS));
|
||||
TransactionSignature offererTxSig = new TransactionSignature(offererSignature, Transaction.SigHash.ALL, false);
|
||||
|
||||
Script inputScript = ScriptBuilder.createMultiSigInputScript(ImmutableList.of(offererTxSig, takerTxSig));
|
||||
@ -1036,7 +1027,7 @@ public class WalletService {
|
||||
log.trace("offererAddress=" + offererAddress);
|
||||
log.trace("takerAddress=" + takerAddress);
|
||||
|
||||
// Transaction depositTx = new Transaction(params, Utils.parseAsHexOrBase58(depositTx));
|
||||
// Transaction depositTx = new Transaction(params, Utils.parseAsHexOrBase58(depositTx));
|
||||
TransactionOutput multiSigOutput = depositTx.getOutput(0);
|
||||
Transaction tx = new Transaction(params);
|
||||
tx.addInput(multiSigOutput);
|
||||
|
@ -32,7 +32,7 @@ import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestOffererPubl
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestTakeOfferMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessTakeOfferFeePayedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.RespondToTakeOfferRequest;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferInitedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestDepositPayment;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation;
|
||||
@ -45,7 +45,7 @@ import io.bitsquare.trade.protocol.trade.taker.SellerAsTakerProtocol;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignContract;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.PayDeposit;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.PayTakeOfferFee;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessBankTransferInitedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessBankTransferStartedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRespondToTakeOfferRequestMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestDepositPaymentMessage;
|
||||
@ -122,7 +122,7 @@ public class DebugView extends InitializableView {
|
||||
|
||||
SignPayoutTx.class,
|
||||
VerifyTakeOfferFeePayment.class,
|
||||
SendBankTransferInitedMessage.class,
|
||||
SendBankTransferStartedMessage.class,
|
||||
|
||||
ProcessPayoutTxPublishedMessage.class,
|
||||
Boolean.class, /* used as seperator*/
|
||||
@ -146,7 +146,7 @@ public class DebugView extends InitializableView {
|
||||
ProcessDepositTxPublishedMessage.class,
|
||||
TakerCommitDepositTx.class,
|
||||
|
||||
ProcessBankTransferInitedMessage.class,
|
||||
ProcessBankTransferStartedMessage.class,
|
||||
|
||||
SignAndPublishPayoutTx.class,
|
||||
VerifyOfferFeePayment.class,
|
||||
|
@ -29,6 +29,7 @@ import io.bitsquare.trade.protocol.trade.OfferSharedModel;
|
||||
import io.bitsquare.user.User;
|
||||
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.bitcoinj.core.ECKey;
|
||||
import org.bitcoinj.core.Transaction;
|
||||
|
||||
import java.security.PublicKey;
|
||||
@ -71,8 +72,7 @@ public class BuyerAsOffererModel extends OfferSharedModel {
|
||||
|
||||
private long offererTxOutIndex;
|
||||
private byte[] offererPubKey;
|
||||
private String offererSignatureR;
|
||||
private String offererSignatureS;
|
||||
private ECKey.ECDSASignature offererSignature;
|
||||
private Coin offererPaybackAmount;
|
||||
|
||||
|
||||
@ -226,20 +226,12 @@ public class BuyerAsOffererModel extends OfferSharedModel {
|
||||
this.depositTx = depositTx;
|
||||
}
|
||||
|
||||
public String getOffererSignatureR() {
|
||||
return offererSignatureR;
|
||||
public ECKey.ECDSASignature getOffererSignature() {
|
||||
return offererSignature;
|
||||
}
|
||||
|
||||
public void setOffererSignatureR(String offererSignatureR) {
|
||||
this.offererSignatureR = offererSignatureR;
|
||||
}
|
||||
|
||||
public String getOffererSignatureS() {
|
||||
return offererSignatureS;
|
||||
}
|
||||
|
||||
public void setOffererSignatureS(String offererSignatureS) {
|
||||
this.offererSignatureS = offererSignatureS;
|
||||
public void setOffererSignature(ECKey.ECDSASignature offererSignature) {
|
||||
this.offererSignature = offererSignature;
|
||||
}
|
||||
|
||||
public Coin getOffererPaybackAmount() {
|
||||
|
@ -28,7 +28,7 @@ import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessRequestTakeOfferMe
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.ProcessTakeOfferFeePayedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.RequestDepositPayment;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.RespondToTakeOfferRequest;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferInitedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendBankTransferStartedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SendDepositTxIdToTaker;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SetupListenerForBlockChainConfirmation;
|
||||
import io.bitsquare.trade.protocol.trade.offerer.tasks.SignAndPublishDepositTx;
|
||||
@ -156,7 +156,7 @@ public class BuyerAsOffererProtocol {
|
||||
taskRunner.addTasks(
|
||||
SignPayoutTx.class,
|
||||
VerifyTakeOfferFeePayment.class,
|
||||
SendBankTransferInitedMessage.class
|
||||
SendBankTransferStartedMessage.class
|
||||
);
|
||||
taskRunner.run();
|
||||
}
|
||||
|
@ -29,23 +29,20 @@ public class BankTransferStartedMessage implements Serializable, TradeMessage {
|
||||
private final String tradeId;
|
||||
|
||||
private final Transaction depositTx;
|
||||
private final String offererSignatureR;
|
||||
private final String offererSignatureS;
|
||||
private final byte[] offererSignature;
|
||||
private final Coin offererPaybackAmount;
|
||||
private final Coin takerPaybackAmount;
|
||||
private final String offererPayoutAddress;
|
||||
|
||||
public BankTransferStartedMessage(String tradeId,
|
||||
Transaction depositTx,
|
||||
String offererSignatureR,
|
||||
String offererSignatureS,
|
||||
byte[] offererSignature,
|
||||
Coin offererPaybackAmount,
|
||||
Coin takerPaybackAmount,
|
||||
String offererPayoutAddress) {
|
||||
this.tradeId = tradeId;
|
||||
this.depositTx = depositTx;
|
||||
this.offererSignatureR = offererSignatureR;
|
||||
this.offererSignatureS = offererSignatureS;
|
||||
this.offererSignature = offererSignature;
|
||||
this.offererPaybackAmount = offererPaybackAmount;
|
||||
this.takerPaybackAmount = takerPaybackAmount;
|
||||
this.offererPayoutAddress = offererPayoutAddress;
|
||||
@ -64,10 +61,6 @@ public class BankTransferStartedMessage implements Serializable, TradeMessage {
|
||||
return offererPayoutAddress;
|
||||
}
|
||||
|
||||
public String getOffererSignatureS() {
|
||||
return offererSignatureS;
|
||||
}
|
||||
|
||||
public Coin getOffererPaybackAmount() {
|
||||
return offererPaybackAmount;
|
||||
}
|
||||
@ -76,7 +69,7 @@ public class BankTransferStartedMessage implements Serializable, TradeMessage {
|
||||
return takerPaybackAmount;
|
||||
}
|
||||
|
||||
public String getOffererSignatureR() {
|
||||
return offererSignatureR;
|
||||
public byte[] getOffererSignature() {
|
||||
return offererSignature;
|
||||
}
|
||||
}
|
||||
|
@ -26,10 +26,10 @@ import io.bitsquare.util.taskrunner.TaskRunner;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class SendBankTransferInitedMessage extends Task<BuyerAsOffererModel> {
|
||||
private static final Logger log = LoggerFactory.getLogger(SendBankTransferInitedMessage.class);
|
||||
public class SendBankTransferStartedMessage extends Task<BuyerAsOffererModel> {
|
||||
private static final Logger log = LoggerFactory.getLogger(SendBankTransferStartedMessage.class);
|
||||
|
||||
public SendBankTransferInitedMessage(TaskRunner taskHandler, BuyerAsOffererModel model) {
|
||||
public SendBankTransferStartedMessage(TaskRunner taskHandler, BuyerAsOffererModel model) {
|
||||
super(taskHandler, model);
|
||||
}
|
||||
|
||||
@ -38,8 +38,7 @@ public class SendBankTransferInitedMessage extends Task<BuyerAsOffererModel> {
|
||||
BankTransferStartedMessage tradeMessage = new BankTransferStartedMessage(
|
||||
model.getTrade().getId(),
|
||||
model.getDepositTx(),
|
||||
model.getOffererSignatureR(),
|
||||
model.getOffererSignatureS(),
|
||||
model.getOffererSignature().encodeToDER(),
|
||||
model.getOffererPaybackAmount(),
|
||||
model.getTakerPaybackAmount(),
|
||||
model.getOffererPaybackAddress());
|
@ -54,9 +54,7 @@ public class SignPayoutTx extends Task<BuyerAsOffererModel> {
|
||||
model.getTrade().getId());
|
||||
|
||||
model.setDepositTx(result.getValue());
|
||||
ECKey.ECDSASignature offererSignature = result.getKey();
|
||||
model.setOffererSignatureR(offererSignature.r.toString());
|
||||
model.setOffererSignatureS(offererSignature.s.toString());
|
||||
model.setOffererSignature(result.getKey());
|
||||
model.setOffererPaybackAmount(offererPaybackAmount);
|
||||
model.setTakerPaybackAmount(takerPaybackAmount);
|
||||
|
||||
|
@ -27,6 +27,7 @@ import io.bitsquare.trade.protocol.trade.OfferSharedModel;
|
||||
import io.bitsquare.user.User;
|
||||
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.bitcoinj.core.ECKey;
|
||||
import org.bitcoinj.core.Transaction;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
@ -48,8 +49,7 @@ public class SellerAsTakerModel extends OfferSharedModel {
|
||||
private Coin takerPaybackAmount;
|
||||
private byte[] offererPubKey;
|
||||
private long offererTxOutIndex;
|
||||
private String offererSignatureR;
|
||||
private String offererSignatureS;
|
||||
private ECKey.ECDSASignature offererSignature;
|
||||
private Coin offererPaybackAmount;
|
||||
private String offererPayoutAddress;
|
||||
|
||||
@ -131,20 +131,12 @@ public class SellerAsTakerModel extends OfferSharedModel {
|
||||
this.depositTx = depositTx;
|
||||
}
|
||||
|
||||
public String getOffererSignatureR() {
|
||||
return offererSignatureR;
|
||||
public ECKey.ECDSASignature getOffererSignature() {
|
||||
return offererSignature;
|
||||
}
|
||||
|
||||
public void setOffererSignatureR(String offererSignatureR) {
|
||||
this.offererSignatureR = offererSignatureR;
|
||||
}
|
||||
|
||||
public String getOffererSignatureS() {
|
||||
return offererSignatureS;
|
||||
}
|
||||
|
||||
public void setOffererSignatureS(String offererSignatureS) {
|
||||
this.offererSignatureS = offererSignatureS;
|
||||
public void setOffererSignature(ECKey.ECDSASignature offererSignature) {
|
||||
this.offererSignature = offererSignature;
|
||||
}
|
||||
|
||||
public Coin getOffererPaybackAmount() {
|
||||
|
@ -30,7 +30,7 @@ import io.bitsquare.trade.protocol.trade.taker.tasks.CreateAndSignContract;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.GetPeerAddress;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.PayDeposit;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.PayTakeOfferFee;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessBankTransferInitedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessBankTransferStartedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessDepositTxPublishedMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRequestDepositPaymentMessage;
|
||||
import io.bitsquare.trade.protocol.trade.taker.tasks.ProcessRespondToTakeOfferRequestMessage;
|
||||
@ -153,7 +153,7 @@ public class SellerAsTakerProtocol {
|
||||
taskRunner.run();
|
||||
}
|
||||
|
||||
private void handleBankTransferInitedMessage(BankTransferStartedMessage tradeMessage) {
|
||||
private void handleBankTransferStartedMessage(BankTransferStartedMessage tradeMessage) {
|
||||
model.setTradeMessage(tradeMessage);
|
||||
|
||||
SellerAsTakerTaskRunner<SellerAsTakerModel> taskRunner = new SellerAsTakerTaskRunner<>(model,
|
||||
@ -165,7 +165,7 @@ public class SellerAsTakerProtocol {
|
||||
log.error(errorMessage);
|
||||
}
|
||||
);
|
||||
taskRunner.addTasks(ProcessBankTransferInitedMessage.class);
|
||||
taskRunner.addTasks(ProcessBankTransferStartedMessage.class);
|
||||
taskRunner.run();
|
||||
}
|
||||
|
||||
@ -213,7 +213,7 @@ public class SellerAsTakerProtocol {
|
||||
handleDepositTxPublishedMessage((DepositTxPublishedMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof BankTransferStartedMessage) {
|
||||
handleBankTransferInitedMessage((BankTransferStartedMessage) tradeMessage);
|
||||
handleBankTransferStartedMessage((BankTransferStartedMessage) tradeMessage);
|
||||
}
|
||||
else {
|
||||
log.error("Incoming message not supported. " + tradeMessage);
|
||||
|
@ -22,16 +22,18 @@ import io.bitsquare.trade.protocol.trade.taker.SellerAsTakerModel;
|
||||
import io.bitsquare.util.taskrunner.Task;
|
||||
import io.bitsquare.util.taskrunner.TaskRunner;
|
||||
|
||||
import org.bitcoinj.core.ECKey;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static io.bitsquare.util.Validator.*;
|
||||
|
||||
public class ProcessBankTransferInitedMessage extends Task<SellerAsTakerModel> {
|
||||
private static final Logger log = LoggerFactory.getLogger(ProcessBankTransferInitedMessage.class);
|
||||
public class ProcessBankTransferStartedMessage extends Task<SellerAsTakerModel> {
|
||||
private static final Logger log = LoggerFactory.getLogger(ProcessBankTransferStartedMessage.class);
|
||||
|
||||
public ProcessBankTransferInitedMessage(TaskRunner taskHandler, SellerAsTakerModel model) {
|
||||
public ProcessBankTransferStartedMessage(TaskRunner taskHandler, SellerAsTakerModel model) {
|
||||
super(taskHandler, model);
|
||||
}
|
||||
|
||||
@ -42,8 +44,7 @@ public class ProcessBankTransferInitedMessage extends Task<SellerAsTakerModel> {
|
||||
BankTransferStartedMessage message = (BankTransferStartedMessage) model.getTradeMessage();
|
||||
|
||||
model.setDepositTx(checkNotNull(message.getDepositTx()));
|
||||
model.setOffererSignatureR(nonEmptyStringOf(message.getOffererSignatureR()));
|
||||
model.setOffererSignatureS(nonEmptyStringOf(message.getOffererSignatureS()));
|
||||
model.setOffererSignature(checkNotNull(ECKey.ECDSASignature.decodeFromDER(message.getOffererSignature())));
|
||||
model.setOffererPaybackAmount(positiveCoinOf(nonZeroCoinOf(message.getOffererPaybackAmount())));
|
||||
model.setTakerPaybackAmount(positiveCoinOf(nonZeroCoinOf(message.getTakerPaybackAmount())));
|
||||
model.setOffererPayoutAddress(nonEmptyStringOf(message.getOffererPayoutAddress()));
|
@ -44,8 +44,7 @@ public class SignAndPublishPayoutTx extends Task<SellerAsTakerModel> {
|
||||
protected void doRun() {
|
||||
try {
|
||||
model.getWalletService().takerSignsAndSendsTx(model.getDepositTx(),
|
||||
model.getOffererSignatureR(),
|
||||
model.getOffererSignatureS(),
|
||||
model.getOffererSignature(),
|
||||
model.getOffererPaybackAmount(),
|
||||
model.getTakerPaybackAmount(),
|
||||
model.getOffererPayoutAddress(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user