mirror of
https://github.com/muun/recovery.git
synced 2025-11-11 14:30:19 -05:00
37 lines
1.1 KiB
Go
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(),
|
|
)
|
|
}
|