Skip to content

Commit

Permalink
feature/2 added events models
Browse files Browse the repository at this point in the history
  • Loading branch information
0xluk committed Sep 26, 2024
1 parent d182045 commit 3ab389b
Showing 1 changed file with 141 additions and 0 deletions.
141 changes: 141 additions & 0 deletions sdk/events/models.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
package events

import (
"bytes"
"encoding/binary"
"github.com/pkg/errors"
)

type QuTransferEvent struct {
SourceIdentityPubKey [32]byte
DestinationIdentityPubKey [32]byte
Amount uint64
}

func (e *QuTransferEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, e)
if err != nil {
return errors.Wrap(err, "reading qu transfer event")
}

return nil
}

type AssetIssuanceEvent struct {
SourceIdentityPubKey [32]byte
AssetName uint64
NumberOfDecimals uint8
MeasurementUnit [8]byte
NumberOfShares int64
}

func (e *AssetIssuanceEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, e)
if err != nil {
return errors.Wrap(err, "reading asset issuance event")
}

return nil
}

type AssetOwnershipChangeEvent struct {
SourceIdentityPubKey [32]byte
DestinationIdentityPubKey [32]byte
IssuerIdentityPubKey [32]byte
AssetName uint64
NumberOfDecimals uint8
MeasurementUnit [8]byte
NumberOfShares int64
}

func (e *AssetOwnershipChangeEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, e)
if err != nil {
return errors.Wrap(err, "reading asset ownership change event")
}

return nil
}

type AssetPossessionChangeEvent struct {
SourceIdentityPubKey [32]byte
DestinationIdentityPubKey [32]byte
IssuerIdentityPubKey [32]byte
AssetName uint64
NumberOfDecimals uint8
MeasurementUnit [8]byte
NumberOfShares int64
}

type BurningEvent struct {
SourceIdentityPubKey [32]byte
Amount uint64
}

func (e *BurningEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, e)
if err != nil {
return errors.Wrap(err, "reading burning event")
}

return nil
}

type DustBurningEvent struct {
NumberOfBurns uint16
SourceIdentityPubKey [32]byte
Amount uint64
}

func (e *DustBurningEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, e)
if err != nil {
return errors.Wrap(err, "reading dust burning event")
}

return nil
}

type SpectrumStatsEvent struct {
TotalAmount uint64
DustThresholdBurnAll uint64
DustThresholdBurnHalf uint64
NumberOfEntities uint32
EntityCategoryPopulations [48]uint32
}

func (e *SpectrumStatsEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, e)
if err != nil {
return errors.Wrap(err, "reading spectrum stats event")
}

return nil
}

type ContractMessageEvent struct {
ContractID uint32
Message []byte
}

func (e *ContractMessageEvent) UnmarshalBinary(data []byte) error {
r := bytes.NewReader(data)
err := binary.Read(r, binary.LittleEndian, &e.ContractID)
if err != nil {
return errors.Wrap(err, "reading contract id")
}

e.Message = make([]byte, len(data)-4)
err = binary.Read(r, binary.LittleEndian, &e.Message)
if err != nil {
return errors.Wrap(err, "reading contract message")
}

return nil
}

0 comments on commit 3ab389b

Please sign in to comment.