transaction

package
v0.0.0-...-724b7ff Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddFileTransaction

type AddFileTransaction struct {
	AnnouncementID        uuid.UUID `json:"announcementID"`        // Announcement ID - UUID
	OwnerAddress          []byte    `json:"ownerAddress"`          // Owner address - ECDSA public key
	FileCid               cid.Cid   `json:"fileCid"`               // File CID
	Filename              []byte    `json:"filename"`              // Encrypted filename
	Extension             []byte    `json:"extension"`             // Encrypted extension
	FileSize              uint64    `json:"fileSize"`              // File size
	Checksum              []byte    `json:"checksum"`              // Checksum - SHA256
	OwnerSignature        []byte    `json:"ownerSignature"`        // Owner signature - ECDSA signature
	AnnouncementTimestamp int64     `json:"announcementTimestamp"` // Announcement timestamp - Unix timestamp
	NodeAddress           []byte    `json:"nodeAddress"`           // Node address - ECDSA public key
	NodeID                peer.ID   `json:"nodeID"`                // Node ID
	TransactionID         uuid.UUID `json:"transactionID"`         // Transaction ID - UUID
	UserReliabilityIssue  bool      `json:"userReliabilityIssue"`  // User reliability issue - boolean
	TransactionSignature  []byte    `json:"transactionSignature"`  // Transaction signature - ECDSA signature
	TransactionTimestamp  int64     `json:"transactionTimestamp"`  // Transaction timestamp - Unix timestamp
	Verifier                        // embed TransactionVerifier struct to inherit VerifyTransaction method
}

func DeserializeAddFileTransaction

func DeserializeAddFileTransaction(data []byte) (*AddFileTransaction, error)

func NewAddFileTransaction

func NewAddFileTransaction(announcement *ClientAnnouncement, fileCid cid.Cid,
	userReliabilityIssue bool, keyPair ecdsa.KeyPair, nodeID peer.ID) *AddFileTransaction

func (*AddFileTransaction) Serialize

func (t *AddFileTransaction) Serialize() ([]byte, error)

func (*AddFileTransaction) SpecificData

func (t *AddFileTransaction) SpecificData() ([]byte, error)

Override SpecificData for AddFileTransaction

type AddFileTransactionFactory

type AddFileTransactionFactory struct{}

AddFileTransactionFactory implements the TransactionFactory interface

func (*AddFileTransactionFactory) CreateTransaction

func (f *AddFileTransactionFactory) CreateTransaction(data []byte) (Transaction, error)

type ClientAnnouncement

type ClientAnnouncement struct {
	AnnouncementID        uuid.UUID `json:"announcementID"`        // Announcement ID - UUID
	OwnerAddress          []byte    `json:"ownerAddress"`          // Owner address - ECDSA public key
	FileCid               cid.Cid   `json:"fileCid"`               // File CID
	Filename              []byte    `json:"filename"`              // Encrypted filename
	Extension             []byte    `json:"extension"`             // Encrypted extension
	FileSize              uint64    `json:"fileSize"`              // File size
	Checksum              []byte    `json:"checksum"`              // Checksum - SHA256
	OwnerSignature        []byte    `json:"ownerSignature"`        // Owner signature - ECDSA signature
	AnnouncementTimestamp int64     `json:"announcementTimestamp"` // Announcement timestamp - Unix timestamp
	Verifier                        // embed TransactionVerifier struct to inherit VerifyTransaction method
}

func DeserializeClientAnnouncement

func DeserializeClientAnnouncement(data []byte) (*ClientAnnouncement, error)

func NewClientAnnouncement

func NewClientAnnouncement(keyPair ecdsa.KeyPair, fileCid cid.Cid, filename []byte, extension []byte, fileSize uint64, checksum []byte) *ClientAnnouncement

func (*ClientAnnouncement) Serialize

func (a *ClientAnnouncement) Serialize() ([]byte, error)

func (*ClientAnnouncement) SpecificData

func (a *ClientAnnouncement) SpecificData() ([]byte, error)

Override SpecificData for ClientAnnouncement

type ClientAnnouncementFactory

type ClientAnnouncementFactory struct{}

ClientAnnouncementFactory implements the TransactionFactory interface

func (*ClientAnnouncementFactory) CreateTransaction

func (f *ClientAnnouncementFactory) CreateTransaction(data []byte) (Transaction, error)

type DeleteFileTransaction

type DeleteFileTransaction struct {
	TransactionID        uuid.UUID `json:"transactionID"`        // Transaction ID - UUID
	OwnerAddress         []byte    `json:"ownerAddress"`         // Owner address - ECDSA public key
	FileCid              cid.Cid   `json:"fileCID"`              // File CID
	TransactionSignature []byte    `json:"transactionSignature"` // Transaction signature - ECDSA signature
	TransactionTimestamp int64     `json:"transactionTimestamp"` // Transaction timestamp - Unix timestamp
	Verifier                       // embed TransactionVerifier struct to inherit VerifyTransaction method
}

func DeserializeDeleteFileTransaction

func DeserializeDeleteFileTransaction(data []byte) (*DeleteFileTransaction, error)

func NewDeleteFileTransaction

func NewDeleteFileTransaction(keyPair ecdsa.KeyPair, fileCid cid.Cid) *DeleteFileTransaction

func (*DeleteFileTransaction) Serialize

func (t *DeleteFileTransaction) Serialize() ([]byte, error)

func (*DeleteFileTransaction) SpecificData

func (t *DeleteFileTransaction) SpecificData() ([]byte, error)

Override SpecificData for DeleteFileTransaction

type DeleteFileTransactionFactory

type DeleteFileTransactionFactory struct{}

DeleteFileTransactionFactory implements the TransactionFactory interface

func (*DeleteFileTransactionFactory) CreateTransaction

func (f *DeleteFileTransactionFactory) CreateTransaction(data []byte) (Transaction, error)

type Factory

type Factory interface {
	CreateTransaction(data []byte) (Transaction, error)
}

TransactionFactory is the interface for creating transactions

type Transaction

type Transaction interface {
	Serialize() ([]byte, error)
	SpecificData() ([]byte, error)
}

func DeserializeTransaction

func DeserializeTransaction(data []byte, factory Factory) (Transaction, error)

type Verifier

type Verifier struct{}

TransactionVerifier is the base struct for verifying transactions

func (*Verifier) SpecificData

func (t *Verifier) SpecificData() ([]byte, error)

SpecificData method should be overridden by each specific transaction type

func (*Verifier) VerifyTransaction

func (t *Verifier) VerifyTransaction(tx Transaction, signature []byte, publicKey []byte) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL