Skip to content

Commit 1baece1

Browse files
committed
rfq: replace asset ID and group key with asset specifier in SellOrder
Refactor SellOrder by replacing the fields "asset ID" and "asset group key" with a single "asset specifier" field for simplicity and consistency.
1 parent 47a265d commit 1baece1

File tree

4 files changed

+20
-34
lines changed

4 files changed

+20
-34
lines changed

rfq/manager.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -747,11 +747,8 @@ func (m *Manager) UpsertAssetBuyOrder(order BuyOrder) error {
747747

748748
// SellOrder is a struct that represents an asset sell order.
749749
type SellOrder struct {
750-
// AssetID is the ID of the asset to sell.
751-
AssetID *asset.ID
752-
753-
// AssetGroupKey is the public key of the asset group to sell.
754-
AssetGroupKey *btcec.PublicKey
750+
// AssetSpecifier is the asset that the seller is interested in.
751+
AssetSpecifier asset.Specifier
755752

756753
// PaymentMaxAmt is the maximum msat amount that the responding peer
757754
// must agree to pay.

rfq/negotiator.go

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -472,21 +472,10 @@ func (n *Negotiator) HandleOutgoingSellOrder(order SellOrder) {
472472
// skip this step.
473473
var assetRateHint fn.Option[rfqmsg.AssetRate]
474474

475-
// Construct an asset specifier from the order.
476-
// TODO(ffranr): The order should have an asset specifier.
477-
assetSpecifier, err := asset.NewSpecifier(
478-
order.AssetID, order.AssetGroupKey, nil,
479-
true,
480-
)
481-
if err != nil {
482-
log.Warnf("failed to construct asset "+
483-
"specifier from buy order: %v", err)
484-
}
485-
486-
if n.cfg.PriceOracle != nil && assetSpecifier.IsSome() {
475+
if n.cfg.PriceOracle != nil && order.AssetSpecifier.IsSome() {
487476
// Query the price oracle for an asking price.
488477
assetRate, err := n.queryAskFromPriceOracle(
489-
order.Peer, assetSpecifier,
478+
order.Peer, order.AssetSpecifier,
490479
fn.None[uint64](),
491480
fn.Some(order.PaymentMaxAmt),
492481
fn.None[rfqmsg.AssetRate](),
@@ -502,8 +491,8 @@ func (n *Negotiator) HandleOutgoingSellOrder(order SellOrder) {
502491
}
503492

504493
request, err := rfqmsg.NewSellRequest(
505-
*order.Peer, order.AssetID, order.AssetGroupKey,
506-
order.PaymentMaxAmt, assetRateHint,
494+
*order.Peer, order.AssetSpecifier, order.PaymentMaxAmt,
495+
assetRateHint,
507496
)
508497
if err != nil {
509498
err := fmt.Errorf("unable to create sell request "+

rfqmsg/sell_request.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,23 +45,15 @@ type SellRequest struct {
4545
}
4646

4747
// NewSellRequest creates a new asset sell quote request.
48-
func NewSellRequest(peer route.Vertex, assetID *asset.ID,
49-
assetGroupKey *btcec.PublicKey, paymentMaxAmt lnwire.MilliSatoshi,
48+
func NewSellRequest(peer route.Vertex, assetSpecifier asset.Specifier,
49+
paymentMaxAmt lnwire.MilliSatoshi,
5050
assetRateHint fn.Option[AssetRate]) (*SellRequest, error) {
5151

5252
id, err := NewID()
5353
if err != nil {
5454
return nil, fmt.Errorf("unable to generate random id: %w", err)
5555
}
5656

57-
assetSpecifier, err := asset.NewSpecifier(
58-
assetID, assetGroupKey, nil, true,
59-
)
60-
if err != nil {
61-
return nil, fmt.Errorf("unable to create asset specifier: %w",
62-
err)
63-
}
64-
6557
return &SellRequest{
6658
Peer: peer,
6759
Version: latestSellRequestVersion,

rpcserver.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6414,11 +6414,19 @@ func unmarshalAssetSellOrder(
64146414
peer = &pv
64156415
}
64166416

6417+
// Construct an asset specifier from the asset ID and/or group key.
6418+
assetSpecifier, err := asset.NewSpecifier(
6419+
assetId, assetGroupKey, nil, true,
6420+
)
6421+
if err != nil {
6422+
return nil, fmt.Errorf("error creating asset specifier: %w",
6423+
err)
6424+
}
6425+
64176426
return &rfq.SellOrder{
6418-
AssetID: assetId,
6419-
AssetGroupKey: assetGroupKey,
6420-
PaymentMaxAmt: lnwire.MilliSatoshi(req.PaymentMaxAmt),
6421-
Peer: peer,
6427+
AssetSpecifier: assetSpecifier,
6428+
PaymentMaxAmt: lnwire.MilliSatoshi(req.PaymentMaxAmt),
6429+
Peer: peer,
64226430
}, nil
64236431
}
64246432

0 commit comments

Comments
 (0)