Skip to content

Commit 89b6a92

Browse files
authored
feat: assets in utxorpc for tx outputs (#679)
Signed-off-by: Chris Gianelloni <[email protected]>
1 parent dc0a114 commit 89b6a92

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

ledger/alonzo.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,27 @@ func (o AlonzoTransactionOutput) Datum() *cbor.LazyValue {
245245
}
246246

247247
func (o AlonzoTransactionOutput) Utxorpc() *utxorpc.TxOutput {
248+
var assets []*utxorpc.Multiasset
249+
if o.Assets() != nil {
250+
for policyId, policyData := range o.Assets().data {
251+
var ma = &utxorpc.Multiasset{
252+
PolicyId: policyId.Bytes(),
253+
}
254+
for assetName, amount := range policyData {
255+
asset := &utxorpc.Asset{
256+
Name: assetName.Bytes(),
257+
OutputCoin: amount,
258+
}
259+
ma.Assets = append(ma.Assets, asset)
260+
}
261+
assets = append(assets, ma)
262+
}
263+
}
264+
248265
return &utxorpc.TxOutput{
249266
Address: o.OutputAddress.Bytes(),
250267
Coin: o.Amount(),
251-
// Assets: o.Assets,
268+
Assets: assets,
252269
Datum: &utxorpc.Datum{
253270
Hash: o.TxOutputDatumHash.Bytes(),
254271
},

ledger/babbage.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,23 @@ func (o BabbageTransactionOutput) Utxorpc() *utxorpc.TxOutput {
418418
address = o.OutputAddress.Bytes()
419419
}
420420

421+
var assets []*utxorpc.Multiasset
422+
if o.Assets() != nil {
423+
for policyId, policyData := range o.Assets().data {
424+
var ma = &utxorpc.Multiasset{
425+
PolicyId: policyId.Bytes(),
426+
}
427+
for assetName, amount := range policyData {
428+
asset := &utxorpc.Asset{
429+
Name: assetName.Bytes(),
430+
OutputCoin: amount,
431+
}
432+
ma.Assets = append(ma.Assets, asset)
433+
}
434+
assets = append(assets, ma)
435+
}
436+
}
437+
421438
var datumHash []byte
422439
if o.DatumHash() == nil {
423440
datumHash = []byte{}
@@ -428,7 +445,7 @@ func (o BabbageTransactionOutput) Utxorpc() *utxorpc.TxOutput {
428445
return &utxorpc.TxOutput{
429446
Address: address,
430447
Coin: o.Amount(),
431-
// Assets: o.Assets(),
448+
Assets: assets,
432449
Datum: &utxorpc.Datum{
433450
Hash: datumHash,
434451
// OriginalCbor: o.Datum().Cbor(),

0 commit comments

Comments
 (0)