Skip to content

Commit bdfbc76

Browse files
committed
rpcutils: move gRPC marshal functionality from taprpc
Our overall goal is to make taprpc as lean as possible so that it is not dependent on the rest of the `taproot-assets` module. Taprpc will then be made into a module that can be imported for lean WASM builds. With that in mind, we move gRPC marshalling functionality from the taprpc package to a new package called rpcutils.
1 parent 550d223 commit bdfbc76

File tree

10 files changed

+154
-133
lines changed

10 files changed

+154
-133
lines changed

cmd/commands/addrs.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"time"
88

99
"github.com/lightninglabs/taproot-assets/asset"
10+
"github.com/lightninglabs/taproot-assets/rpcutils"
1011
"github.com/lightninglabs/taproot-assets/taprpc"
1112
"github.com/urfave/cli"
1213
)
@@ -82,7 +83,7 @@ func newAddr(ctx *cli.Context) error {
8283
client, cleanUp := getClient(ctx)
8384
defer cleanUp()
8485

85-
assetVersion, err := taprpc.MarshalAssetVersion(
86+
assetVersion, err := rpcutils.MarshalAssetVersion(
8687
asset.Version(ctx.Uint64(assetVersionName)),
8788
)
8889
if err != nil {

itest/assertions.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/lightninglabs/taproot-assets/commitment"
2222
"github.com/lightninglabs/taproot-assets/fn"
2323
"github.com/lightninglabs/taproot-assets/proof"
24+
"github.com/lightninglabs/taproot-assets/rpcutils"
2425
"github.com/lightninglabs/taproot-assets/tapfreighter"
2526
"github.com/lightninglabs/taproot-assets/tappsbt"
2627
"github.com/lightninglabs/taproot-assets/taprpc"
@@ -2188,7 +2189,7 @@ func AssertBalances(t *testing.T, client taprpc.TaprootAssetsClient,
21882189
case config.scriptKeyType != nil:
21892190
rpcTypeQuery = &taprpc.ScriptKeyTypeQuery{
21902191
Type: &taprpc.ScriptKeyTypeQuery_ExplicitType{
2191-
ExplicitType: taprpc.MarshalScriptKeyType(
2192+
ExplicitType: rpcutils.MarshalScriptKeyType(
21922193
*config.scriptKeyType,
21932194
),
21942195
},

itest/mint_fund_seal_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/lightninglabs/taproot-assets/fn"
2121
"github.com/lightninglabs/taproot-assets/internal/test"
2222
"github.com/lightninglabs/taproot-assets/proof"
23+
"github.com/lightninglabs/taproot-assets/rpcutils"
2324
"github.com/lightninglabs/taproot-assets/tappsbt"
2425
"github.com/lightninglabs/taproot-assets/taprpc"
2526
wrpc "github.com/lightninglabs/taproot-assets/taprpc/assetwalletrpc"
@@ -109,23 +110,23 @@ func testMintFundSealAssets(t *harnessTest) {
109110
// Asset 0 will have no asset group, and an external script key with a
110111
// tapscript root.
111112
assetReqWithScriptKey := CopyRequest(simpleAssets[0])
112-
assetReqWithScriptKey.Asset.ScriptKey = taprpc.MarshalScriptKey(
113+
assetReqWithScriptKey.Asset.ScriptKey = rpcutils.MarshalScriptKey(
113114
tweakedScript,
114115
)
115116

116117
// Asset 1 will have a specific internal group key with a tapscript
117118
// root. This asset will be a group anchor.
118119
assetReqGroupedInternalTweaked := CopyRequest(simpleAssets[1])
119120
assetReqGroupedInternalTweaked.Asset.NewGroupedAsset = true
120-
assetReqGroupedInternalTweaked.Asset.GroupInternalKey = taprpc.
121-
MarshalKeyDescriptor(managedGroupInternal)
121+
assetReqGroupedInternalTweaked.Asset.GroupInternalKey =
122+
rpcutils.MarshalKeyDescriptor(managedGroupInternal)
122123
assetReqGroupedInternalTweaked.Asset.
123124
GroupTapscriptRoot = groupInternalTweak
124125

125126
// Asset 2 will have an external group key with a tapscript root.
126127
assetReqGroupedExternal := CopyRequest(issuableAssets[0])
127-
assetReqGroupedExternal.Asset.GroupInternalKey = taprpc.
128-
MarshalKeyDescriptor(groupExternalDesc)
128+
assetReqGroupedExternal.Asset.GroupInternalKey =
129+
rpcutils.MarshalKeyDescriptor(groupExternalDesc)
129130
assetReqGroupedExternal.Asset.GroupTapscriptRoot = groupExternalTweak[:]
130131

131132
// Asset 3 will be a member of the asset group created by Asset 1.
@@ -701,7 +702,7 @@ func unmarshalPendingAssetGroup(t *testing.T,
701702
asset.GroupVirtualTx) {
702703

703704
require.NotNil(t, a.GroupVirtualTx)
704-
virtualTx, err := taprpc.UnmarshalGroupVirtualTx(a.GroupVirtualTx)
705+
virtualTx, err := rpcutils.UnmarshalGroupVirtualTx(a.GroupVirtualTx)
705706
require.NoError(t, err)
706707

707708
// Ensure that the group virtual tx is the same as the grouped virtual
@@ -721,7 +722,7 @@ func unmarshalPendingAssetGroup(t *testing.T,
721722

722723
// Unmarshal group key request.
723724
require.NotNil(t, a.GroupKeyRequest)
724-
keyReq, err := taprpc.UnmarshalGroupKeyRequest(a.GroupKeyRequest)
725+
keyReq, err := rpcutils.UnmarshalGroupKeyRequest(a.GroupKeyRequest)
725726
require.NoError(t, err)
726727

727728
return *keyReq, *virtualTx

itest/multisig.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/lightninglabs/taproot-assets/cmd/commands"
2222
"github.com/lightninglabs/taproot-assets/commitment"
2323
"github.com/lightninglabs/taproot-assets/fn"
24+
"github.com/lightninglabs/taproot-assets/rpcutils"
2425
"github.com/lightninglabs/taproot-assets/tappsbt"
2526
"github.com/lightninglabs/taproot-assets/taprpc"
2627
wrpc "github.com/lightninglabs/taproot-assets/taprpc/assetwalletrpc"
@@ -171,7 +172,7 @@ func MultiSigTest(t *testing.T, ctx context.Context, aliceTapd,
171172
muSig2Addr, err := bobTapd.NewAddr(ctxt, &taprpc.NewAddrRequest{
172173
AssetId: firstBatchGenesis.AssetId,
173174
Amt: assetsToSend,
174-
ScriptKey: taprpc.MarshalScriptKey(tapScriptKey),
175+
ScriptKey: rpcutils.MarshalScriptKey(tapScriptKey),
175176
InternalKey: &taprpc.KeyDescriptor{
176177
RawKeyBytes: pubKeyBytes(btcInternalKey),
177178
},
@@ -372,7 +373,7 @@ func DeriveKeys(t *testing.T, tapd commands.RpcClientsBundle) (asset.ScriptKey,
372373
},
373374
)
374375
require.NoError(t, err)
375-
scriptKey, err := taprpc.UnmarshalScriptKey(scriptKeyDesc.ScriptKey)
376+
scriptKey, err := rpcutils.UnmarshalScriptKey(scriptKeyDesc.ScriptKey)
376377
require.NoError(t, err)
377378

378379
internalKeyDesc, err := tapd.NextInternalKey(
@@ -381,7 +382,7 @@ func DeriveKeys(t *testing.T, tapd commands.RpcClientsBundle) (asset.ScriptKey,
381382
},
382383
)
383384
require.NoError(t, err)
384-
internalKeyLnd, err := taprpc.UnmarshalKeyDescriptor(
385+
internalKeyLnd, err := rpcutils.UnmarshalKeyDescriptor(
385386
internalKeyDesc.InternalKey,
386387
)
387388
require.NoError(t, err)

itest/psbt_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/lightninglabs/taproot-assets/fn"
2222
"github.com/lightninglabs/taproot-assets/internal/test"
2323
"github.com/lightninglabs/taproot-assets/proof"
24+
"github.com/lightninglabs/taproot-assets/rpcutils"
2425
"github.com/lightninglabs/taproot-assets/tapfreighter"
2526
"github.com/lightninglabs/taproot-assets/tappsbt"
2627
"github.com/lightninglabs/taproot-assets/taprpc"
@@ -2708,7 +2709,7 @@ func testPsbtLockTimeSend(t *harnessTest) {
27082709
// We need to let the wallet of Bob know that we're going to use a
27092710
// script key with a custom root.
27102711
_, err = bob.DeclareScriptKey(ctxt, &wrpc.DeclareScriptKeyRequest{
2711-
ScriptKey: taprpc.MarshalScriptKey(bobAssetScriptKey),
2712+
ScriptKey: rpcutils.MarshalScriptKey(bobAssetScriptKey),
27122713
})
27132714
require.NoError(t.t, err)
27142715

@@ -2923,7 +2924,7 @@ func testPsbtRelativeLockTimeSend(t *harnessTest) {
29232924
// We need to let the wallet of Bob know that we're going to use a
29242925
// script key with a custom root.
29252926
_, err = bob.DeclareScriptKey(ctxt, &wrpc.DeclareScriptKeyRequest{
2926-
ScriptKey: taprpc.MarshalScriptKey(bobAssetScriptKey),
2927+
ScriptKey: rpcutils.MarshalScriptKey(bobAssetScriptKey),
29272928
})
29282929
require.NoError(t.t, err)
29292930

@@ -3139,7 +3140,7 @@ func testPsbtRelativeLockTimeSendProofFail(t *harnessTest) {
31393140
// We need to let the wallet of Bob know that we're going to use a
31403141
// script key with a custom root.
31413142
_, err = bob.DeclareScriptKey(ctxt, &wrpc.DeclareScriptKeyRequest{
3142-
ScriptKey: taprpc.MarshalScriptKey(bobAssetScriptKey),
3143+
ScriptKey: rpcutils.MarshalScriptKey(bobAssetScriptKey),
31433144
})
31443145
require.NoError(t.t, err)
31453146

@@ -3333,12 +3334,12 @@ func sendToTapscriptAddr(ctx context.Context, t *harnessTest, alice,
33333334
AssetVersion: mintedAsset.Version,
33343335
ScriptKey: &taprpc.ScriptKey{
33353336
PubKey: schnorr.SerializePubKey(bobAssetScriptKey),
3336-
KeyDesc: taprpc.MarshalKeyDescriptor(
3337+
KeyDesc: rpcutils.MarshalKeyDescriptor(
33373338
bobScriptKey.RawKey,
33383339
),
33393340
TapTweak: rootHash,
33403341
},
3341-
InternalKey: taprpc.MarshalKeyDescriptor(bobInternalKey),
3342+
InternalKey: rpcutils.MarshalKeyDescriptor(bobInternalKey),
33423343
})
33433344

33443345
require.NoError(t.t, err)

itest/send_test.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/lightninglabs/taproot-assets/fn"
1414
"github.com/lightninglabs/taproot-assets/internal/test"
1515
"github.com/lightninglabs/taproot-assets/proof"
16+
"github.com/lightninglabs/taproot-assets/rpcutils"
1617
"github.com/lightninglabs/taproot-assets/tapfreighter"
1718
"github.com/lightninglabs/taproot-assets/taprpc"
1819
wrpc "github.com/lightninglabs/taproot-assets/taprpc/assetwalletrpc"
@@ -1150,7 +1151,7 @@ func testSpendChangeOutputWhenProofTransferFail(t *harnessTest) {
11501151
// for this output.
11511152
firstOutput := firstTransfer.Outputs[0]
11521153
require.Equal(
1153-
t.t, taprpc.ProofDeliveryStatusNotApplicable,
1154+
t.t, rpcutils.ProofDeliveryStatusNotApplicable,
11541155
firstOutput.ProofDeliveryStatus,
11551156
)
11561157

@@ -1159,7 +1160,7 @@ func testSpendChangeOutputWhenProofTransferFail(t *harnessTest) {
11591160
// completed successfully.
11601161
secondOutput := firstTransfer.Outputs[1]
11611162
require.Equal(
1162-
t.t, taprpc.ProofDeliveryStatusPending,
1163+
t.t, rpcutils.ProofDeliveryStatusPending,
11631164
secondOutput.ProofDeliveryStatus,
11641165
)
11651166

@@ -1228,7 +1229,7 @@ func testSpendChangeOutputWhenProofTransferFail(t *harnessTest) {
12281229
// for this output.
12291230
firstOutput := firstTransfer.Outputs[0]
12301231
require.Equal(
1231-
t.t, taprpc.ProofDeliveryStatusNotApplicable,
1232+
t.t, rpcutils.ProofDeliveryStatusNotApplicable,
12321233
firstOutput.ProofDeliveryStatus,
12331234
)
12341235

@@ -1237,7 +1238,7 @@ func testSpendChangeOutputWhenProofTransferFail(t *harnessTest) {
12371238
// completed successfully.
12381239
secondOutput := firstTransfer.Outputs[1]
12391240
require.Equal(
1240-
t.t, taprpc.ProofDeliveryStatusPending,
1241+
t.t, rpcutils.ProofDeliveryStatusPending,
12411242
secondOutput.ProofDeliveryStatus,
12421243
)
12431244

@@ -1254,7 +1255,7 @@ func testSpendChangeOutputWhenProofTransferFail(t *harnessTest) {
12541255
// for this output.
12551256
firstOutput = secondTransfer.Outputs[0]
12561257
require.Equal(
1257-
t.t, taprpc.ProofDeliveryStatusNotApplicable,
1258+
t.t, rpcutils.ProofDeliveryStatusNotApplicable,
12581259
firstOutput.ProofDeliveryStatus,
12591260
)
12601261

@@ -1263,7 +1264,7 @@ func testSpendChangeOutputWhenProofTransferFail(t *harnessTest) {
12631264
// completed successfully.
12641265
secondOutput = secondTransfer.Outputs[1]
12651266
require.Equal(
1266-
t.t, taprpc.ProofDeliveryStatusPending,
1267+
t.t, rpcutils.ProofDeliveryStatusPending,
12671268
secondOutput.ProofDeliveryStatus,
12681269
)
12691270

itest/utils.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/lightninglabs/taproot-assets/commitment"
2323
"github.com/lightninglabs/taproot-assets/fn"
2424
"github.com/lightninglabs/taproot-assets/proof"
25+
"github.com/lightninglabs/taproot-assets/rpcutils"
2526
"github.com/lightninglabs/taproot-assets/tapgarden"
2627
"github.com/lightninglabs/taproot-assets/taprpc"
2728
"github.com/lightninglabs/taproot-assets/taprpc/mintrpc"
@@ -666,7 +667,7 @@ func ManualMintSimpleAsset(t *harnessTest, lndNode *node.HarnessNode,
666667
OutputIndex: anchorIdx,
667668
Type: asset.Type(req.AssetType),
668669
}
669-
assetVersion, err := taprpc.UnmarshalAssetVersion(req.AssetVersion)
670+
assetVersion, err := rpcutils.UnmarshalAssetVersion(req.AssetVersion)
670671
require.NoError(t.t, err)
671672

672673
newAsset, err := asset.New(

proof/courier.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
"github.com/lightninglabs/lightning-node-connect/hashmailrpc"
1515
"github.com/lightninglabs/taproot-assets/asset"
1616
"github.com/lightninglabs/taproot-assets/fn"
17-
"github.com/lightninglabs/taproot-assets/taprpc"
17+
"github.com/lightninglabs/taproot-assets/rpcutils"
1818
unirpc "github.com/lightninglabs/taproot-assets/taprpc/universerpc"
1919
"google.golang.org/grpc"
2020
"google.golang.org/grpc/codes"
@@ -1309,7 +1309,7 @@ func (c *UniverseRpcCourier) DeliverProof(ctx context.Context,
13091309
// Construct asset leaf.
13101310
// Note: We pass in a none-value for the decimal display option,
13111311
// as this doesn't matter for the courrier.
1312-
rpcAsset, err := taprpc.MarshalAsset(
1312+
rpcAsset, err := rpcutils.MarshalAsset(
13131313
ctx, &proofAsset, true, true, nil, fn.None[uint32](),
13141314
)
13151315
if err != nil {

0 commit comments

Comments
 (0)