Files
ark/server/internal/core/domain/payment_test.go
Louis Singer 0fb34cb13d Dynamic min-relay-fee and dust amount (#280)
* [btc-embedded] add chainfee.Estimator and extraAPI interfaces

* dynamic fee amount

* dynamic dust amount

* [client] fix linter errors

* [domain] fix unit tests

* [server] return dust amount in GetInfo RPC

* [sdk] fix lnd dependencie

* go work sync

* fix witness stack size forfeit tx size estimator

* remove hardcoded fee values in covenant txbuilder

* lower liquid feerate

* fix after reviews

* go work sync
2024-09-10 17:22:09 +02:00

76 lines
1.7 KiB
Go

package domain_test
import (
"testing"
"github.com/ark-network/ark/server/internal/core/domain"
"github.com/stretchr/testify/require"
)
var inputs = []domain.Vtxo{
{
VtxoKey: domain.VtxoKey{
Txid: "0000000000000000000000000000000000000000000000000000000000000000",
VOut: 0,
},
Receiver: domain.Receiver{
Pubkey: "030000000000000000000000000000000000000000000000000000000000000001",
Amount: 1000,
},
},
}
func TestPayment(t *testing.T) {
t.Run("new_payment", func(t *testing.T) {
t.Run("valid", func(t *testing.T) {
payment, err := domain.NewPayment(inputs)
require.NoError(t, err)
require.NotNil(t, payment)
require.NotEmpty(t, payment.Id)
require.Exactly(t, inputs, payment.Inputs)
require.Empty(t, payment.Receivers)
})
})
t.Run("add_receivers", func(t *testing.T) {
t.Run("valid", func(t *testing.T) {
payment, err := domain.NewPayment(inputs)
require.NoError(t, err)
require.NotNil(t, payment)
err = payment.AddReceivers([]domain.Receiver{
{
Pubkey: "030000000000000000000000000000000000000000000000000000000000000001",
Amount: 450,
},
{
Pubkey: "020000000000000000000000000000000000000000000000000000000000000002",
Amount: 550,
},
})
require.NoError(t, err)
})
t.Run("invalid", func(t *testing.T) {
fixtures := []struct {
receivers []domain.Receiver
expectedErr string
}{
{
receivers: nil,
expectedErr: "missing outputs",
},
}
payment, err := domain.NewPayment(inputs)
require.NoError(t, err)
require.NotNil(t, payment)
for _, f := range fixtures {
err := payment.AddReceivers(f.receivers)
require.EqualError(t, err, f.expectedErr)
}
})
})
}