Skip to content

Commit

Permalink
upd escrow signature
Browse files Browse the repository at this point in the history
  • Loading branch information
justinenerio committed Jun 3, 2024
1 parent c8b92d9 commit a011265
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ sealed class ILPStatus with _$ILPStatus {
const factory ILPStatus.txCreated(SignedTx tx) = ILPStatusTxCreated;

/// Tx is successfully sent to backend for sending to the blockchain.
const factory ILPStatus.txSent(SignedTx tx) = ILPStatusTxSent;
const factory ILPStatus.txSent(
SignedTx tx, {
required String signature,
}) = ILPStatusTxSent;

/// Final state. Tx is successfully confirmed and payment is claimed.
const factory ILPStatus.success({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,14 +137,14 @@ class ILPService implements Disposable {
final tx = status.tx;

try {
await _ecClient.submitDurableTx(
final signature = await _ecClient.submitDurableTx(
SubmitDurableTxRequestDto(
tx: tx.encode(),
),
);
); //TODO upd signature

return payment.copyWith(
status: ILPStatus.txSent(tx),
status: ILPStatus.txSent(tx, signature: signature),
);
} on Exception {
return payment.copyWith(
Expand All @@ -162,9 +162,7 @@ class ILPService implements Disposable {
return payment;
}

final signature = status.tx.id;

await _txConfirm(signature: signature);
await _txConfirm(signature: status.signature);

int? fee;
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ extension on OLPStatusDto {
return OLPStatus.txSent(
tx ?? StubSignedTx(txId!),
escrow: escrow!,
signature: row.txId ?? '', //TODO confirm
);
case OLPStatusDto.linkReady:
final link = row.link?.let(Uri.parse);
Expand Down Expand Up @@ -198,6 +199,7 @@ extension on OLPStatusDto {
return OLPStatus.cancelTxSent(
cancelTx!,
escrow: escrow!,
signature: row.cancelTxId ?? '', //TODO confirm
);
}
}
Expand Down Expand Up @@ -242,8 +244,7 @@ extension on OLPStatus {
);

String? toTxId() => mapOrNull(
txCreated: (it) => it.tx.id,
txSent: (it) => it.tx.id,
txSent: (it) => it.signature,
);

String? toWithdrawTxId() => mapOrNull(withdrawn: (it) => it.txId);
Expand All @@ -254,8 +255,7 @@ extension on OLPStatus {
);

String? toCancelTxId() => mapOrNull(
cancelTxCreated: (it) => it.tx.id,
cancelTxSent: (it) => it.tx.id,
cancelTxSent: (it) => it.signature,
canceled: (it) => it.txId,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ class OLPStatus with _$OLPStatus {
const factory OLPStatus.txSent(
SignedTx tx, {
required EscrowPrivateKey escrow,
required String signature,
}) = OLPStatusTxSent;

/// Link is ready to be sent to the recipient.
Expand Down Expand Up @@ -76,5 +77,6 @@ class OLPStatus with _$OLPStatus {
const factory OLPStatus.cancelTxSent(
SignedTx tx, {
required EscrowPrivateKey escrow,
required String signature,
}) = OLPStatusCancelTxSent;
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class OLPService implements Disposable {
final CreateOutgoingEscrow _createOutgoingEscrow;
final CreateCanceledEscrow _createCanceledEscrow;
final EspressoCashClient _ecClient;
final TxConfirm _txConfirm;
final TxConfirm _txConfirm; //TODO confirm not needed
final AnalyticsManager _analyticsManager;

final Map<String, StreamSubscription<void>> _subscriptions = {};
Expand Down Expand Up @@ -73,8 +73,8 @@ class OLPService implements Disposable {
case OLPStatusCancelTxCreated():
return _sendCanceled(payment).asStream();

case OLPStatusCancelTxSent():
return _processCanceled(payment).asStream();
case OLPStatusCancelTxSent(): //TODO confirm not needed
// return _processCanceled(payment).asStream();

case OLPStatusTxFailure():
case OLPStatusCancelTxFailure():
Expand Down Expand Up @@ -232,18 +232,19 @@ class OLPService implements Disposable {
final tx = status.tx;

try {
await _ecClient.submitDurableTx(
final signature = await _ecClient.submitDurableTx(
SubmitDurableTxRequestDto(
tx: tx.encode(),
),
);
); //TODO

_analyticsManager.singleLinkCreated(amount: payment.amount.decimal);

return payment.copyWith(
status: OLPStatus.txSent(
tx,
escrow: status.escrow,
signature: signature,
),
);
} on Exception {
Expand Down Expand Up @@ -289,16 +290,19 @@ class OLPService implements Disposable {
final tx = status.tx;

try {
await _ecClient.submitDurableTx(
final signature = await _ecClient.submitDurableTx(
SubmitDurableTxRequestDto(
tx: tx.encode(),
),
);
); //TODO upd signature

_analyticsManager.singleLinkCanceled(amount: payment.amount.decimal);

return payment.copyWith(
status: OLPStatus.cancelTxSent(
tx,
escrow: status.escrow,
signature: signature,
),
);
} on Exception {
Expand All @@ -311,28 +315,26 @@ class OLPService implements Disposable {
}
}

Future<OutgoingLinkPayment> _processCanceled(
OutgoingLinkPayment payment,
) async {
final status = payment.status;

if (status is! OLPStatusCancelTxSent) {
return payment;
}
// Future<OutgoingLinkPayment> _processCanceled( //TODO confirm not needed
// OutgoingLinkPayment payment,
// ) async {
// final status = payment.status;

final signature = status.tx.id;
// if (status is! OLPStatusCancelTxSent) {
// return payment;
// }

await _txConfirm(signature: signature);
// await _txConfirm(signature: status.signature);

_analyticsManager.singleLinkCanceled(amount: payment.amount.decimal);
// _analyticsManager.singleLinkCanceled(amount: payment.amount.decimal);

return payment.copyWith(
status: OLPStatus.canceled(
txId: status.tx.id,
timestamp: DateTime.now(),
),
);
}
// return payment.copyWith(
// status: OLPStatus.canceled(
// txId: status.signature,
// timestamp: DateTime.now(),
// ),
// );
// }

@override
Future<void> onDispose() async {
Expand Down

0 comments on commit a011265

Please sign in to comment.