Files
muun-recovery/libwallet/newop/context.go
2025-05-13 17:49:44 -03:00

37 lines
1.1 KiB
Go

package newop
import "github.com/muun/libwallet/operation"
// PaymentContext stores data required to analyze and validate an operation
type PaymentContext struct {
FeeWindow *FeeWindow
NextTransactionSize *NextTransactionSize
ExchangeRateWindow *ExchangeRateWindow
PrimaryCurrency string
MinFeeRateInSatsPerVByte float64
SubmarineSwap *SubmarineSwap
}
func (c *PaymentContext) totalBalance() int64 {
return c.NextTransactionSize.toInternalType().TotalBalance()
}
func (c *PaymentContext) toBitcoinAmount(sats int64, inputCurrency string) *BitcoinAmount {
amount := c.ExchangeRateWindow.convert(
NewMonetaryAmountFromSatoshis(sats),
inputCurrency,
)
return &BitcoinAmount{
InSat: sats,
InInputCurrency: amount,
InPrimaryCurrency: c.ExchangeRateWindow.convert(amount, c.PrimaryCurrency),
}
}
func newPaymentAnalyzer(context *PaymentContext) *operation.PaymentAnalyzer {
return operation.NewPaymentAnalyzer(
context.FeeWindow.toInternalType(),
context.NextTransactionSize.toInternalType(),
)
}