From f2ad897dbe3ffdf24e2881b7752cc81b9410401f Mon Sep 17 00:00:00 2001 From: vitalibalashka <vitalybalashko@gmail.com> Date: Mon, 7 Aug 2023 13:48:14 +0300 Subject: [PATCH] feat(BUX-157): disabling of a dust limit validation for txs with OpReturn --- model_draft_transactions.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/model_draft_transactions.go b/model_draft_transactions.go index 3ca8b633..20e2619b 100644 --- a/model_draft_transactions.go +++ b/model_draft_transactions.go @@ -301,7 +301,7 @@ func (m *DraftTransaction) createTransactionHex(ctx context.Context) (err error) feePerByte := float64(m.Configuration.FeeUnit.Satoshis / m.Configuration.FeeUnit.Bytes) reserveSatoshis := satoshisNeeded + m.estimateFee(m.Configuration.FeeUnit, 0) - if reserveSatoshis <= dustLimit { + if reserveSatoshis <= dustLimit && !m.containsOpReturn() { m.client.Logger().Error(ctx, "amount of satoshis to send less than the dust limit") return ErrOutputValueTooLow } @@ -904,3 +904,12 @@ func (m *DraftTransaction) SignInputs(xPriv *bip32.ExtendedKey) (signedHex strin signedHex = txDraft.String() return } + +func (m *DraftTransaction) containsOpReturn() bool { + for _, output := range m.Configuration.Outputs { + if output.OpReturn != nil { + return true + } + } + return false +}