From db14249f5ab65c78b84d54d00b027d58b9a50c60 Mon Sep 17 00:00:00 2001 From: sidhujag Date: Sun, 6 Sep 2020 17:46:28 -0700 Subject: [PATCH] fix syscoinparser --- bchain/coins/sys/syscoinparser.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/bchain/coins/sys/syscoinparser.go b/bchain/coins/sys/syscoinparser.go index 6e431d47..180152f4 100644 --- a/bchain/coins/sys/syscoinparser.go +++ b/bchain/coins/sys/syscoinparser.go @@ -264,10 +264,9 @@ func (p *SyscoinParser) GetAllocationFromTx(tx *bchain.Tx) (*bchain.AssetAllocat break } } - return p.GetAssetAllocationFromData(sptData) + return p.GetAssetAllocationFromDesc(addrDesc) } - -func (p *SyscoinParser) GetAssetFromDesc(addrDesc *bchain.AddressDescriptor) (*bchain.Asset, error) { +func (p *SyscoinParser) GetSPTDataFromDesc(addrDesc *bchain.AddressDescriptor) ([]byte], error) { script, err := p.GetScriptFromAddrDesc(*addrDesc) if err != nil { return nil, err @@ -276,9 +275,26 @@ func (p *SyscoinParser) GetAssetFromDesc(addrDesc *bchain.AddressDescriptor) (*b if sptData == nil { return nil, errors.New("OP_RETURN empty") } + return sptData +} + + +func (p *SyscoinParser) GetAssetFromDesc(addrDesc *bchain.AddressDescriptor) (*bchain.Asset, error) { + sptData, err := p.GetSPTDataFromDesc(addrDesc) + if err != nil { + return nil, err + } return p.GetAssetFromData(sptData) } +func (p *SyscoinParser) GetAssetAllocationFromDesc(addrDesc *bchain.AddressDescriptor) (*bchain.Asset, error) { + sptData, err := p.GetSPTDataFromDesc(addrDesc) + if err != nil { + return nil, err + } + return p.GetAssetAllocationFromData(sptData) +} + func (p *SyscoinParser) GetAssetFromData(sptData []byte) (*bchain.Asset, error) { var asset bchain.Asset r := bytes.NewReader(sptData)