transaction

package
v1.0.0-release Latest Latest
Warning

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

Go to latest
Published: May 19, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SerializeTransaction

func SerializeTransaction(tx Transaction) ([]byte, error)

Types

type AddFileTransaction

type AddFileTransaction struct {
	AnnouncementID          uuid.UUID     `json:"announcementID"`          // Announcement ID - UUID
	OwnerAddress            []byte        `json:"ownerAddress"`            // Owner address - ECDSA public key
	IPFSClientNodeAddrInfo  peer.AddrInfo `json:"ipfsClientNodeAddrInfo"`  // IPFS client node address info
	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
	IPFSStorageNodeAddrInfo peer.AddrInfo `json:"ipfsStorageNodeAddrInfo"` // IPFS storage node address info
	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 GenFakeAddTransaction

func GenFakeAddTransaction() (*AddFileTransaction, error)

func NewAddFileTransaction

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

func (*AddFileTransaction) Serialize

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

func (*AddFileTransaction) SpecificData

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

Override SpecificData for AddFileTransaction

type ClientAnnouncement

type ClientAnnouncement struct {
	AnnouncementID         uuid.UUID     `json:"announcementID"`         // Announcement ID - UUID
	OwnerAddress           []byte        `json:"ownerAddress"`           // Owner address - ECDSA public key
	IPFSClientNodeAddrInfo peer.AddrInfo `json:"ipfsClientNodeAddrInfo"` // IPFS client node address info
	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, clientNodeAddrInfo peer.AddrInfo, 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 GenFakeDeleteTransaction

func GenFakeDeleteTransaction() (*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 Transaction

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

func DeserializeTransaction

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

type TransactionWrapper

type TransactionWrapper struct {
	Type string          `json:"type"`
	Data json.RawMessage `json:"data"`
}

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