|
@@ -347,15 +347,17 @@ impl Mint {
|
|
.await
|
|
.await
|
|
.err()
|
|
.err()
|
|
{
|
|
{
|
|
- match err {
|
|
|
|
- cdk_common::database::Error::Duplicate => {
|
|
|
|
- // the proofs already exits, it will be errored by `check_ys_spendable`
|
|
|
|
|
|
+ return match err {
|
|
|
|
+ cdk_common::database::Error::Duplicate => Err(Error::TokenPending),
|
|
|
|
+ cdk_common::database::Error::AttemptUpdateSpentProof => {
|
|
|
|
+ Err(Error::TokenAlreadySpent)
|
|
}
|
|
}
|
|
- err => return Err(Error::Database(err)),
|
|
|
|
- }
|
|
|
|
|
|
+ err => Err(Error::Database(err)),
|
|
|
|
+ };
|
|
}
|
|
}
|
|
|
|
|
|
self.check_ys_spendable(&input_ys, State::Pending).await?;
|
|
self.check_ys_spendable(&input_ys, State::Pending).await?;
|
|
|
|
+
|
|
for proof in melt_request.inputs() {
|
|
for proof in melt_request.inputs() {
|
|
self.pubsub_manager
|
|
self.pubsub_manager
|
|
.proof_state((proof.y()?, State::Pending));
|
|
.proof_state((proof.y()?, State::Pending));
|