Skip to content

Commit

Permalink
melt request method name and check invoice amount
Browse files Browse the repository at this point in the history
  • Loading branch information
elnosh committed Jul 30, 2024
1 parent 757af06 commit 7e99d46
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 10 deletions.
5 changes: 4 additions & 1 deletion mint/mint.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ func (m *Mint) Swap(proofs cashu.Proofs, blindedMessages cashu.BlindedMessages)

// MeltRequest will process a request to melt tokens and return a MeltQuote.
// A melt is requested by a wallet to request the mint to pay an invoice.
func (m *Mint) MeltRequest(method, request, unit string) (storage.MeltQuote, error) {
func (m *Mint) RequestMeltQuote(method, request, unit string) (storage.MeltQuote, error) {
if method != BOLT11_METHOD {
return storage.MeltQuote{}, cashu.PaymentMethodNotSupportedErr
}
Expand All @@ -367,6 +367,9 @@ func (m *Mint) MeltRequest(method, request, unit string) (storage.MeltQuote, err
msg := fmt.Sprintf("invalid invoice: %v", err)
return storage.MeltQuote{}, cashu.BuildCashuError(msg, cashu.StandardErrCode)
}
if bolt11.MSatoshi == 0 {
return storage.MeltQuote{}, cashu.BuildCashuError("invoice has no amount", cashu.StandardErrCode)
}

quoteId, err := cashu.GenerateRandomQuoteId()
if err != nil {
Expand Down
16 changes: 8 additions & 8 deletions mint/mint_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,24 +338,24 @@ func TestMeltRequest(t *testing.T) {
}

// test invalid method
_, err = testMint.MeltRequest("strike", addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
_, err = testMint.RequestMeltQuote("strike", addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
if !errors.Is(err, cashu.PaymentMethodNotSupportedErr) {
t.Fatalf("expected error '%v' but got '%v' instead", cashu.PaymentMethodNotSupportedErr, err)
}

// test invalid unit
_, err = testMint.MeltRequest(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, "eth")
_, err = testMint.RequestMeltQuote(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, "eth")
if !errors.Is(err, cashu.UnitNotSupportedErr) {
t.Fatalf("expected error '%v' but got '%v' instead", cashu.UnitNotSupportedErr, err)
}

// test invalid invoice
_, err = testMint.MeltRequest(testutils.BOLT11_METHOD, "invoice1111", testutils.SAT_UNIT)
_, err = testMint.RequestMeltQuote(testutils.BOLT11_METHOD, "invoice1111", testutils.SAT_UNIT)
if err == nil {
t.Fatal("expected error but got nil")
}

_, err = testMint.MeltRequest(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
_, err = testMint.RequestMeltQuote(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
if err != nil {
t.Fatalf("got unexpected error in melt request: %v", err)
}
Expand All @@ -373,7 +373,7 @@ func TestMeltQuoteState(t *testing.T) {
t.Fatalf("error finding invoice: %v", err)
}

meltRequest, err := testMint.MeltRequest(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
meltRequest, err := testMint.RequestMeltQuote(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
if err != nil {
t.Fatalf("got unexpected error in melt request: %v", err)
}
Expand Down Expand Up @@ -437,7 +437,7 @@ func TestMelt(t *testing.T) {
t.Fatalf("error creating invoice: %v", err)
}

meltQuote, err := testMint.MeltRequest(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
meltQuote, err := testMint.RequestMeltQuote(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
if err != nil {
t.Fatalf("got unexpected error in melt request: %v", err)
}
Expand Down Expand Up @@ -488,7 +488,7 @@ func TestMelt(t *testing.T) {
}

// test already used proofs
newQuote, err := testMint.MeltRequest(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
newQuote, err := testMint.RequestMeltQuote(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
if err != nil {
t.Fatalf("got unexpected error in melt request: %v", err)
}
Expand Down Expand Up @@ -524,7 +524,7 @@ func TestMelt(t *testing.T) {
t.Fatalf("error creating invoice: %v", err)
}

meltQuote, err = mintFees.MeltRequest(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
meltQuote, err = mintFees.RequestMeltQuote(testutils.BOLT11_METHOD, addInvoiceResponse.PaymentRequest, testutils.SAT_UNIT)
if err != nil {
t.Fatalf("got unexpected error in melt request: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion mint/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ func (ms *MintServer) meltQuoteRequest(rw http.ResponseWriter, req *http.Request
return
}

meltQuote, err := ms.mint.MeltRequest(method, meltRequest.Request, meltRequest.Unit)
meltQuote, err := ms.mint.RequestMeltQuote(method, meltRequest.Request, meltRequest.Unit)
if err != nil {
cashuErr, ok := err.(*cashu.Error)
// note: if there was internal error from db
Expand Down

0 comments on commit 7e99d46

Please sign in to comment.