trade protocol fixed states

This commit is contained in:
Manfred Karrer 2014-07-05 17:13:22 +02:00
parent 16e1267c08
commit 01ca7d3e17
3 changed files with 34 additions and 38 deletions

View file

@ -98,7 +98,7 @@ public class ProtocolForOffererAsBuyer
// state
private State state;
private int position = 0;
private int step = 0;
///////////////////////////////////////////////////////////////////////////////////////////
@ -140,14 +140,14 @@ public class ProtocolForOffererAsBuyer
public void start()
{
log.debug("start called ");
log.debug("start called " + step++);
state = State.HandleTakeOfferRequest;
HandleTakeOfferRequest.run(this::onResultHandleTakeOfferRequest, this::onFault, peerAddress, messageFacade, trade.getState(), tradeId);
}
public void onResultHandleTakeOfferRequest(boolean takeOfferRequestAccepted)
{
log.debug("onResultHandleTakeOfferRequest called ");
log.debug("onResultHandleTakeOfferRequest called " + step++);
if (takeOfferRequestAccepted)
{
trade.setState(Trade.State.ACCEPTED);
@ -168,7 +168,7 @@ public class ProtocolForOffererAsBuyer
public void onTakeOfferFeePayedMessage(@NotNull TakeOfferFeePayedMessage message)
{
log.debug("onTakeOfferFeePayedMessage called ");
log.debug("onTakeOfferFeePayedMessage called " + step++);
log.debug("state " + state);
// validation
@ -192,7 +192,7 @@ public class ProtocolForOffererAsBuyer
public void onResultVerifyTakeOfferFeePayment()
{
log.debug("onResultVerifyTakeOfferFeePayment called ");
log.debug("onResultVerifyTakeOfferFeePayment called " + step++);
BigInteger collateral = trade.getCollateralAmount();
state = State.CreateDepositTx;
@ -202,7 +202,7 @@ public class ProtocolForOffererAsBuyer
public void onResultCreateDepositTx(String offererPubKey, String preparedOffererDepositTxAsHex, long offererTxOutIndex)
{
log.debug("onResultCreateDepositTx called ");
log.debug("onResultCreateDepositTx called " + step++);
this.preparedOffererDepositTxAsHex = preparedOffererDepositTxAsHex;
this.offererTxOutIndex = offererTxOutIndex;
@ -221,7 +221,7 @@ public class ProtocolForOffererAsBuyer
public void onResultRequestTakerDepositPayment()
{
log.debug("onResultRequestTakerDepositPayment called ");
log.debug("onResultRequestTakerDepositPayment called " + step++);
listener.onWaitingForPeerResponse(state);
}
@ -232,7 +232,7 @@ public class ProtocolForOffererAsBuyer
public void onRequestOffererPublishDepositTxMessage(RequestOffererPublishDepositTxMessage message)
{
log.debug("onRequestOffererPublishDepositTxMessage called ");
log.debug("onRequestOffererPublishDepositTxMessage called " + step++);
log.debug("state " + state);
// validation
@ -267,7 +267,7 @@ public class ProtocolForOffererAsBuyer
public void onResultVerifyTakerAccount()
{
log.debug("onResultVerifyTakerAccount called ");
log.debug("onResultVerifyTakerAccount called " + step++);
BigInteger tradeAmount = trade.getTradeAmount();
state = State.VerifyAndSignContract;
@ -289,7 +289,7 @@ public class ProtocolForOffererAsBuyer
public void onResultVerifyAndSignContract(Contract contract, String contractAsJson, String signature)
{
log.debug("onResultVerifyAndSignContract called ");
log.debug("onResultVerifyAndSignContract called " + step++);
trade.setContract(contract);
trade.setContractAsJson(contractAsJson);
@ -308,7 +308,7 @@ public class ProtocolForOffererAsBuyer
public void onResultSignAndPublishDepositTx(Transaction depositTransaction)
{
log.debug("onResultSignAndPublishDepositTx called ");
log.debug("onResultSignAndPublishDepositTx called " + step++);
trade.setDepositTransaction(depositTransaction);
listener.onDepositTxPublished(depositTransaction.getHashAsString());
@ -319,7 +319,7 @@ public class ProtocolForOffererAsBuyer
public void onResultSendDepositTxIdToTaker()
{
log.debug("onResultSendDepositTxIdToTaker called ");
log.debug("onResultSendDepositTxIdToTaker called " + step++);
state = State.SetupListenerForBlockChainConfirmation;
SetupListenerForBlockChainConfirmation.run(this::onResultSetupListenerForBlockChainConfirmation, this::onFault, trade.getDepositTransaction(), listener);
@ -327,7 +327,7 @@ public class ProtocolForOffererAsBuyer
public void onResultSetupListenerForBlockChainConfirmation()
{
log.debug("onResultSetupListenerForBlockChainConfirmation called ");
log.debug("onResultSetupListenerForBlockChainConfirmation called " + step++);
state = State.onResultSetupListenerForBlockChainConfirmation;
listener.onWaitingForUserInteraction(state);
@ -341,7 +341,7 @@ public class ProtocolForOffererAsBuyer
// Triggered from UI event: Button click "Bank transfer inited"
public void onUIEventBankTransferInited()
{
log.debug("onUIEventBankTransferInited called ");
log.debug("onUIEventBankTransferInited called " + step++);
log.debug("state " + state);
// validation
@ -369,7 +369,7 @@ public class ProtocolForOffererAsBuyer
public void onResultSendSignedPayoutTx()
{
log.debug("onResultSendSignedPayoutTx called ");
log.debug("onResultSendSignedPayoutTx called " + step++);
listener.onWaitingForPeerResponse(state);
}
@ -381,7 +381,7 @@ public class ProtocolForOffererAsBuyer
public void onPayoutTxPublishedMessage(PayoutTxPublishedMessage message)
{
log.debug("onPayoutTxPublishedMessage called ");
log.debug("onPayoutTxPublishedMessage called " + step++);
log.debug("state " + state);
// validation

View file

@ -94,7 +94,7 @@ public class ProtocolForTakerAsSeller
// state
private State state;
private int position = 0;
private int step = 0;
///////////////////////////////////////////////////////////////////////////////////////////
@ -136,14 +136,14 @@ public class ProtocolForTakerAsSeller
public void start()
{
log.debug("start called " + position++);
log.debug("start called " + step++);
state = State.GetPeerAddress;
GetPeerAddress.run(this::onResultGetPeerAddress, this::onFault, messageFacade, peersMessagePubKey);
}
public void onResultGetPeerAddress(PeerAddress peerAddress)
{
log.debug("onResultGetPeerAddress called " + position++);
log.debug("onResultGetPeerAddress called " + step++);
this.peerAddress = peerAddress;
state = State.RequestTakeOffer;
@ -152,7 +152,7 @@ public class ProtocolForTakerAsSeller
public void onResultRequestTakeOffer()
{
log.debug("onResultRequestTakeOffer called " + position++);
log.debug("onResultRequestTakeOffer called " + step++);
listener.onWaitingForPeerResponse(state);
}
@ -163,7 +163,7 @@ public class ProtocolForTakerAsSeller
public void onRespondToTakeOfferRequestMessage(RespondToTakeOfferRequestMessage message)
{
log.debug("onRespondToTakeOfferRequestMessage called " + position++);
log.debug("onRespondToTakeOfferRequestMessage called " + step++);
log.debug("state " + state);
checkState(state == State.RequestTakeOffer);
checkArgument(tradeId.equals(message.getTradeId()));
@ -181,7 +181,7 @@ public class ProtocolForTakerAsSeller
public void onResultPayTakeOfferFee(String takeOfferFeeTxId)
{
log.debug("onResultPayTakeOfferFee called " + position++);
log.debug("onResultPayTakeOfferFee called " + step++);
trade.setTakeOfferFeeTxID(takeOfferFeeTxId);
state = State.SendTakeOfferFeePayedTxId;
@ -190,7 +190,7 @@ public class ProtocolForTakerAsSeller
public void onResultSendTakeOfferFeePayedTxId()
{
log.debug("onResultSendTakeOfferFeePayedTxId called " + position++);
log.debug("onResultSendTakeOfferFeePayedTxId called " + step++);
listener.onWaitingForPeerResponse(state);
}
@ -201,7 +201,7 @@ public class ProtocolForTakerAsSeller
public void onRequestTakerDepositPaymentMessage(RequestTakerDepositPaymentMessage message)
{
log.debug("onRequestTakerDepositPaymentMessage called " + position++);
log.debug("onRequestTakerDepositPaymentMessage called " + step++);
log.debug("state " + state);
// validation
@ -228,7 +228,7 @@ public class ProtocolForTakerAsSeller
public void onResultVerifyOffererAccount()
{
log.debug("onResultVerifyOffererAccount called " + position++);
log.debug("onResultVerifyOffererAccount called " + step++);
String takeOfferFeeTxId = trade.getTakeOfferFeeTxId();
state = State.CreateAndSignContract;
CreateAndSignContract.run(this::onResultCreateAndSignContract,
@ -248,7 +248,7 @@ public class ProtocolForTakerAsSeller
public void onResultCreateAndSignContract(Contract contract, String contractAsJson, String signature)
{
log.debug("onResultCreateAndSignContract called " + position++);
log.debug("onResultCreateAndSignContract called " + step++);
trade.setContract(contract);
trade.setContractAsJson(contractAsJson);
@ -260,7 +260,7 @@ public class ProtocolForTakerAsSeller
public void onResultPayDeposit(Transaction signedTakerDepositTx)
{
log.debug("onResultPayDeposit called " + position++);
log.debug("onResultPayDeposit called " + step++);
String contractAsJson = trade.getContractAsJson();
String takerSignature = trade.getTakerSignature();
@ -282,7 +282,7 @@ public class ProtocolForTakerAsSeller
public void onResultSendSignedTakerDepositTxAsHex()
{
log.debug("onResultSendSignedTakerDepositTxAsHex called " + position++);
log.debug("onResultSendSignedTakerDepositTxAsHex called " + step++);
listener.onWaitingForPeerResponse(state);
}
@ -294,7 +294,7 @@ public class ProtocolForTakerAsSeller
// informational, does only trigger UI feedback/update
public void onDepositTxPublishedMessage(DepositTxPublishedMessage message)
{
log.debug("onDepositTxPublishedMessage called " + position++);
log.debug("onDepositTxPublishedMessage called " + step++);
log.debug("state " + state);
checkState(state.ordinal() >= State.SendSignedTakerDepositTxAsHex.ordinal());
checkArgument(tradeId.equals(message.getTradeId()));
@ -309,7 +309,7 @@ public class ProtocolForTakerAsSeller
// informational, store data for later, does only trigger UI feedback/update
public void onBankTransferInitedMessage(BankTransferInitedMessage message)
{
log.debug("onBankTransferInitedMessage called " + position++);
log.debug("onBankTransferInitedMessage called " + step++);
log.debug("state " + state);
// validate
checkState(state.ordinal() >= State.SendSignedTakerDepositTxAsHex.ordinal() && state.ordinal() < State.SignAndPublishPayoutTx.ordinal());
@ -341,7 +341,7 @@ public class ProtocolForTakerAsSeller
// User clicked the "bank transfer received" button, so we release the funds for pay out
public void onUIEventFiatReceived()
{
log.debug("onUIEventFiatReceived called " + position++);
log.debug("onUIEventFiatReceived called " + step++);
log.debug("state " + state);
checkState(state == State.onBankTransferInitedMessage);
@ -360,7 +360,7 @@ public class ProtocolForTakerAsSeller
public void onResultSignAndPublishPayoutTx(String transactionId, String payoutTxAsHex)
{
log.debug("onResultSignAndPublishPayoutTx called " + position++);
log.debug("onResultSignAndPublishPayoutTx called " + step++);
listener.onPayoutTxPublished(trade, transactionId);
state = State.SendPayoutTxToOfferer;
@ -369,7 +369,7 @@ public class ProtocolForTakerAsSeller
public void onResultSendPayoutTxToOfferer()
{
log.debug("onResultSendPayoutTxToOfferer called " + position++);
log.debug("onResultSendPayoutTxToOfferer called " + step++);
listener.onCompleted(state);
}