Skip to content

Commit cb8f5d3

Browse files
committed
rfq: add oraclerpc marshaller for asset specifier
1 parent af847c4 commit cb8f5d3

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

rfq/oracle.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,3 +406,27 @@ func (r *RpcPriceOracle) QueryBidPrice(ctx context.Context,
406406

407407
// Ensure that RpcPriceOracle implements the PriceOracle interface.
408408
var _ PriceOracle = (*RpcPriceOracle)(nil)
409+
410+
// rpcMarshalAssetSpecifier is a helper method that converts an asset specifier
411+
// to the oraclerpc representation of the specifier.
412+
func rpcMarshalAssetSpecifier(
413+
assetSpecifier asset.Specifier) *oraclerpc.AssetSpecifier {
414+
415+
var subjectSpecifier oraclerpc.AssetSpecifier
416+
417+
switch {
418+
case assetSpecifier.HasId():
419+
assetID := assetSpecifier.UnwrapIdToPtr()
420+
subjectSpecifier.Id = &oraclerpc.AssetSpecifier_AssetId{
421+
AssetId: assetID[:],
422+
}
423+
424+
case assetSpecifier.HasGroupPubKey():
425+
groupKey := assetSpecifier.UnwrapGroupKeyToPtr()
426+
subjectSpecifier.Id = &oraclerpc.AssetSpecifier_GroupKey{
427+
GroupKey: groupKey.SerializeCompressed(),
428+
}
429+
}
430+
431+
return &subjectSpecifier
432+
}

0 commit comments

Comments
 (0)