core

package
v0.13.0-beta4 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2018 License: MIT Imports: 68 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// RatingMin - min raring
	RatingMin = 1
	// RatingMax - max rating
	RatingMax = 5
	// ReviewMaxCharacters - max size for review
	ReviewMaxCharacters = 3000
)
View Source
const (
	// ListingVersion - current listing version
	ListingVersion = 4
	// TitleMaxCharacters - max size for title
	TitleMaxCharacters = 140
	// ShortDescriptionLength - min length for description
	ShortDescriptionLength = 160
	// DescriptionMaxCharacters - max length for description
	DescriptionMaxCharacters = 50000
	// MaxTags - max permitted tags
	MaxTags = 10
	// MaxCategories - max permitted categories
	MaxCategories = 10
	// MaxListItems - max items in a listing
	MaxListItems = 30
	// FilenameMaxCharacters - max filename size
	FilenameMaxCharacters = 255
	// CodeMaxCharacters - max chars for a code
	CodeMaxCharacters = 20
	// WordMaxCharacters - max chars for word
	WordMaxCharacters = 40
	// SentenceMaxCharacters - max chars for sentence
	SentenceMaxCharacters = 70
	// CouponTitleMaxCharacters - max length of a coupon title
	CouponTitleMaxCharacters = 70
	// PolicyMaxCharacters - max length for policy
	PolicyMaxCharacters = 10000
	// AboutMaxCharacters - max length for about
	AboutMaxCharacters = 10000
	// URLMaxCharacters - max length for URL
	URLMaxCharacters = 2000
	// MaxCountryCodes - max country codes
	MaxCountryCodes = 255
	// EscrowTimeout - escrow timeout in hours
	EscrowTimeout = 1080
	// SlugBuffer - buffer size for slug
	SlugBuffer = 5
	// PriceModifierMin - min price modifier
	PriceModifierMin = -99.99
	// PriceModifierMax = max price modifier
	PriceModifierMax = 1000.00
)
View Source
const (
	// ChatMessageMaxCharacters - limit for chat msg
	ChatMessageMaxCharacters = 20000
	// ChatSubjectMaxCharacters - limit for chat subject
	ChatSubjectMaxCharacters = 500
	// DefaultPointerPrefixLength - default ipfs pointer prefix
	DefaultPointerPrefixLength = 14
)
View Source
const (

	// EscrowReleaseSize - size in bytes for escrow op
	EscrowReleaseSize = 337
	// CryptocurrencyPurchasePaymentAddressMaxLength - max permissible length for an address
	CryptocurrencyPurchasePaymentAddressMaxLength = 512
)
View Source
const (
	// PostStatusMaxCharacters - Maximum length of the status field of a post
	PostStatusMaxCharacters = 280
	// PostLongFormMaxCharacters - Maximum length of the longForm field of a post
	PostLongFormMaxCharacters = 50000
	// PostMaximumTotalTags - Maximum number of tags a post can have
	PostMaximumTotalTags = 50
	// PostMaximumTotalChannels - Maximum number of channels a post can be addressed to
	PostMaximumTotalChannels = 30
	// PostTagsMaxCharacters - Maximum character length of a tag
	PostTagsMaxCharacters = 256
	// PostChannelsMaxCharacters - Maximum character length of a channel
	PostChannelsMaxCharacters = 256
	// PostReferenceMaxCharacters - Maximum character length of a reference
	PostReferenceMaxCharacters = 256
)

Constants for validation

View Source
const ConfirmationsPerHour = 6

ConfirmationsPerHour is temporary until the Wallet interface has Attributes() to provide this value

View Source
const DefaultCurrencyDivisibility uint32 = 1e8

DefaultCurrencyDivisibility is the Divisibility of the Currency if not defined otherwise

View Source
const KeyCachePrefix = "/pubkey/"

KeyCachePrefix - cache prefix for public key

Variables

View Source
var (
	// EscrowTimeLockedError - custom err for time locked escrow
	EscrowTimeLockedError error
	// ErrPrematureReleaseOfTimedoutEscrowFunds - custom err for premature escrow funds release
	ErrPrematureReleaseOfTimedoutEscrowFunds = fmt.Errorf("escrow can only be released when in dispute for %s days", (time.Duration(repo.DisputeTotalDurationHours) * time.Hour).String())
)
View Source
var (
	// VERSION - current version
	VERSION = "0.13.0"
	// USERAGENT - user-agent header string
	USERAGENT = "/openbazaar-go:" + VERSION + "/"
)
View Source
var (
	// ErrPurchaseUnknownListing - unavailable listing err
	ErrPurchaseUnknownListing = errors.New("order contains a hash of a listing that is not currently for sale")

	// ErrListingDoesNotExist - non-existent listing err
	ErrListingDoesNotExist = errors.New("listing doesn't exist")
	// ErrListingAlreadyExists - duplicate listing err
	ErrListingAlreadyExists = errors.New("listing already exists")
	// ErrListingCoinDivisibilityIncorrect - coin divisibility err
	ErrListingCoinDivisibilityIncorrect = errors.New("incorrect coinDivisibility")
	// ErrPriceCalculationRequiresExchangeRates - exchange rates dependency err
	ErrPriceCalculationRequiresExchangeRates = errors.New("can't calculate price with exchange rates disabled")

	// ErrCryptocurrencyListingCoinTypeRequired - missing coinType err
	ErrCryptocurrencyListingCoinTypeRequired = errors.New("cryptocurrency listings require a coinType")
	// ErrCryptocurrencyPurchasePaymentAddressRequired - missing payment address err
	ErrCryptocurrencyPurchasePaymentAddressRequired = errors.New("paymentAddress required for cryptocurrency items")
	// ErrCryptocurrencyPurchasePaymentAddressTooLong - invalid payment address
	ErrCryptocurrencyPurchasePaymentAddressTooLong = errors.New("paymentAddress required is too long")

	// ErrCryptocurrencySkuQuantityInvalid - invalid sku qty err
	ErrCryptocurrencySkuQuantityInvalid = errors.New("cryptocurrency listing quantity must be a non-negative integer")

	// ErrFulfillIncorrectDeliveryType - incorrect delivery type err
	ErrFulfillIncorrectDeliveryType = errors.New("incorrect delivery type for order")
	// ErrFulfillCryptocurrencyTXIDNotFound - missing txn id err
	ErrFulfillCryptocurrencyTXIDNotFound = errors.New("a transactionID is required to fulfill crypto listings")
	// ErrFulfillCryptocurrencyTXIDTooLong - invalid txn id err
	ErrFulfillCryptocurrencyTXIDTooLong = errors.New("transactionID should be no longer than " + strconv.Itoa(MaxTXIDSize))

	// ErrUnknownWallet is returned when a wallet is not present on the node
	ErrUnknownWallet = errors.New("Unknown wallet type")

	// ErrInvalidSpendAddress is returned when the wallet is unable to decode the string address into a valid destination to send funds to
	ErrInvalidSpendAddress = errors.New("ERROR_INVALID_ADDRESS")

	// ErrInsufficientFunds is returned when the wallet is unable to send the amount specified due to the balance being too low
	ErrInsufficientFunds = errors.New("ERROR_INSUFFICIENT_FUNDS")

	// ErrSpendAmountIsDust is returned when the requested amount to spend out of the wallet would be considered "dust" by the network. This means the value is too low for the network to bother sending the amount and has a high likelihood of not being accepted or being outright rejected.
	ErrSpendAmountIsDust = errors.New("ERROR_DUST_AMOUNT")

	// ErrUnknownOrder is returned when the requested amount to spend is unable to be associated with the appropriate order
	ErrOrderNotFound = errors.New("ERROR_ORDER_NOT_FOUND")
)
View Source
var (
	ErrShippingRegionMustBeSet          = errors.New("shipping region must be set")
	ErrShippingRegionUndefined          = errors.New("undefined shipping region")
	ErrShippingRegionMustNotBeContinent = errors.New("cannot specify continent as shipping region")
)
View Source
var (
	// ErrPostUnknownValidationPanic - post has an unknown panic error
	ErrPostUnknownValidationPanic = errors.New("unexpected validation panic")

	// ErrPostSlugNotEmpty - post slug is empty error
	ErrPostSlugNotEmpty = errors.New("slug must not be empty")

	// ErrPostSlugTooLong - post slug longer than max characters error
	ErrPostSlugTooLong = fmt.Errorf("slug is longer than the max of %d", SentenceMaxCharacters)

	// ErrPostSlugContainsSpaces - post slug has spaces error
	ErrPostSlugContainsSpaces = errors.New("slugs cannot contain spaces")

	// ErrPostSlugContainsSlashes - post slug has file separators
	ErrPostSlugContainsSlashes = errors.New("slugs cannot contain file separators")

	// ErrPostInvalidType - post type is invalid error
	ErrPostInvalidType = errors.New("invalid post type")

	// ErrPostStatusTooLong - post 'status' is longer than max characters error
	ErrPostStatusTooLong = fmt.Errorf("status is longer than the max of %d", PostStatusMaxCharacters)

	// ErrPostBodyTooLong - post 'longForm' is longer than max characters error
	ErrPostBodyTooLong = fmt.Errorf("post is longer than the max of %d characters", PostLongFormMaxCharacters)

	// ErrPostTagsTooMany - post tags longer than max length error
	ErrPostTagsTooMany = fmt.Errorf("tags in the post is longer than the max of %d", PostMaximumTotalTags)

	// ErrPostTagsEmpty - post has empty tags error
	ErrPostTagsEmpty = errors.New("tags must not be empty")

	// ErrPostTagTooLong - post tag has characters longer than max length error
	ErrPostTagTooLong = fmt.Errorf("tags must be less than max of %d characters", PostTagsMaxCharacters)

	// ErrPostChannelsTooMany - post channels longer than max length error
	ErrPostChannelsTooMany = fmt.Errorf("channels in the post is longer than the max of %d", PostMaximumTotalChannels)

	// ErrPostChannelTooLong - post channel has characters longer than max length error
	ErrPostChannelTooLong = fmt.Errorf("channels must be less than max of %d characters", PostChannelsMaxCharacters)

	// ErrPostReferenceEmpty - post has an empty reference error
	ErrPostReferenceEmpty = errors.New("reference must not be empty")

	// ErrPostReferenceTooLong - post reference has characters longer than max length error
	ErrPostReferenceTooLong = fmt.Errorf("reference is longer than the max of %d", PostReferenceMaxCharacters)

	// ErrPostReferenceContainsSpaces - post reference has spaces error
	ErrPostReferenceContainsSpaces = errors.New("reference cannot contain spaces")

	// ErrPostImagesTooMany - post images longer than max error
	ErrPostImagesTooMany = fmt.Errorf("number of post images is greater than the max of %d", MaxListItems)

	// ErrPostImageTinyFormatInvalid - post tiny image hash incorrectly formatted error
	ErrPostImageTinyFormatInvalid = errors.New("tiny image hashes must be properly formatted CID")

	// ErrPostImageSmallFormatInvalid - post small image hash incorrectly formatted error
	ErrPostImageSmallFormatInvalid = errors.New("small image hashes must be properly formatted CID")

	// ErrPostImageMediumFormatInvalid - post medium image hash incorrectly formatted error
	ErrPostImageMediumFormatInvalid = errors.New("medium image hashes must be properly formatted CID")

	// ErrPostImageLargeFInvalidormat - post large image hash incorrectly formatted error
	ErrPostImageLargeFormatInvalid = errors.New("large image hashes must be properly formatted CID")

	// ErrPostImageOriginalFormatInvalid - post original image hash incorrectly formatted error
	ErrPostImageOriginalFormatInvalid = errors.New("original image hashes must be properly formatted CID")

	// ErrPostImageFilenameNil - post image filename is nil error
	ErrPostImageFilenameNil = errors.New("image file names must not be nil")

	// ErrPostImageFilenameTooLong - post image filename length longer than max
	ErrPostImageFilenameTooLong = fmt.Errorf("image filename length must be less than the max of %d", FilenameMaxCharacters)
)

Errors

View Source
var DisputeWg = new(sync.WaitGroup)

DisputeWg - waitgroup for disputes

View Source
var ErrCaseNotFound = errors.New("case not found")

ErrCaseNotFound - case not found err

View Source
var ErrCloseFailureCaseExpired = errors.New("unable to close expired case")

ErrCloseFailureCaseExpired - tried closing expired case err

View Source
var ErrCloseFailureNoOutpoints = errors.New("unable to close case with missing outpoints")

ErrCloseFailureNoOutpoints indicates when a dispute cannot be closed due to neither party including outpoints with their dispute

View Source
var (

	// ErrInventoryNotFoundForSlug - inventory not found error
	ErrInventoryNotFoundForSlug = errors.New("Could not find slug in inventory")
)
View Source
var ErrNoListings = errors.New("no listings to set moderators on")

ErrNoListings - no listing error FIXME : This is not used anywhere

View Source
var ErrOpenFailureOrderExpired = errors.New("unable to open case because order is too old to dispute")

ErrOpenFailureOrderExpired - tried disputing expired order err

View Source
var ErrorProfileNotFound = errors.New("profile not found")

ErrorProfileNotFound - profile not found error

View Source
var InitalPublishComplete bool // = false

InitalPublishComplete - indicate publish completion

View Source
var (
	// MaxTXIDSize - max length for order txnID
	MaxTXIDSize = 512
)
View Source
var ModeratorPointerID multihash.Multihash

ModeratorPointerID moderator ipfs multihash

View Source
var OfflineMessageWaitGroup sync.WaitGroup

OfflineMessageWaitGroup - used for offline msgs

View Source
var PublishLock sync.Mutex

PublishLock seedLock - Unpin the current node repo, re-add it, then publish to IPNS

Functions

func CheckAndSetUlimit added in v0.9.3

func CheckAndSetUlimit() error

CheckAndSetUlimit raises the file descriptor limit

func EncodeCID added in v0.7.0

func EncodeCID(b []byte) (*cid.Cid, error)

EncodeCID - Hash with SHA-256 and encode as a multihash

func EncodeMultihash added in v0.5.1

func EncodeMultihash(b []byte) (*mh.Multihash, error)

EncodeMultihash - sha256 encode

func ExtractIDFromPointer added in v0.5.1

func ExtractIDFromPointer(pi ps.PeerInfo) (string, error)

ExtractIDFromPointer Certain pointers, such as moderators, contain a peerID. This function will extract the ID from the underlying PeerInfo object.

func FormatRFC3339PB added in v0.10.1

func FormatRFC3339PB(ts google_protobuf.Timestamp) string

FormatRFC3339PB returns the given `google_protobuf.Timestamp` as a RFC3339 formatted string

func GetOrderQuantity added in v0.12.0

func GetOrderQuantity(l *pb.Listing, item *pb.Order_Item) uint64

GetOrderQuantity - return the specified item quantity

func GetSelectedSku added in v0.5.1

func GetSelectedSku(listing *pb.Listing, itemOptions []*pb.Order_Item_Option) (int, error)

GetSelectedSku - return the specified item SKU

func NormalizeCurrencyCode added in v0.12.0

func NormalizeCurrencyCode(currencyCode string) string

NormalizeCurrencyCode standardizes the format for the given currency code

func ParseContractForListing added in v0.5.5

func ParseContractForListing(hash string, contract *pb.RicardianContract) (*pb.Listing, error)

ParseContractForListing - return the listing identified by the hash from the contract

func SameSku added in v0.5.1

func SameSku(selectedVariants []int, sku *pb.Listing_Item_Sku) bool

SameSku - check if the variants have the same SKU

func ValidShippingRegion added in v0.13.0

func ValidShippingRegion(shippingOption *pb.Listing_ShippingOption) error

func ValidateProfile added in v0.5.3

func ValidateProfile(profile *pb.Profile) error

ValidateProfile - validate fetched profile

func ValidateRating added in v0.6.0

func ValidateRating(rating *pb.Rating) (bool, error)

ValidateRating - validates rating for API GET and Post/Update

Types

type CodedError added in v0.12.0

type CodedError struct {
	Reason string `json:"reason,omitempty"`
	Code   string `json:"code,omitempty"`
}

CodedError is an error that is machine readable

func (CodedError) Error added in v0.12.0

func (err CodedError) Error() string

type ErrCryptocurrencyListingIllegalField added in v0.12.0

type ErrCryptocurrencyListingIllegalField string

ErrCryptocurrencyListingIllegalField - invalid field err

func (ErrCryptocurrencyListingIllegalField) Error added in v0.12.0

type ErrCryptocurrencyPurchaseIllegalField added in v0.12.0

type ErrCryptocurrencyPurchaseIllegalField string

ErrCryptocurrencyPurchaseIllegalField - invalid purchase field err

func (ErrCryptocurrencyPurchaseIllegalField) Error added in v0.12.0

type ErrMarketPriceListingIllegalField added in v0.12.0

type ErrMarketPriceListingIllegalField string

ErrMarketPriceListingIllegalField - invalid listing field err

func (ErrMarketPriceListingIllegalField) Error added in v0.12.0

type ErrOutOfInventory added in v0.12.0

type ErrOutOfInventory struct {
	CodedError
	RemainingInventory int64 `json:"remainingInventory"`
}

ErrOutOfInventory is a codedError returned from vendor nodes when buyers try purchasing too many of an item

func NewErrOutOfInventory added in v0.12.0

func NewErrOutOfInventory(inventoryRemaining int64) ErrOutOfInventory

NewErrOutOfInventory - return out of inventory err with available inventory

func (ErrOutOfInventory) Error added in v0.12.0

func (err ErrOutOfInventory) Error() string

type ErrPriceModifierOutOfRange added in v0.12.1

type ErrPriceModifierOutOfRange struct {
	Min float64
	Max float64
}

ErrPriceModifierOutOfRange - customize limits for price modifier

func (ErrPriceModifierOutOfRange) Error added in v0.12.1

type Inventory added in v0.12.0

type Inventory map[string]*InventoryListing

Inventory is the complete inventory representation stored on IPFS It maps slug -> quantity information

type InventoryListing added in v0.12.0

type InventoryListing struct {
	Inventory   int64  `json:"inventory"`
	LastUpdated string `json:"lastUpdated"`
}

InventoryListing is the listing representation stored on IPFS

type ListingData added in v0.11.0

type ListingData struct {
	Hash               string    `json:"hash"`
	Slug               string    `json:"slug"`
	Title              string    `json:"title"`
	Categories         []string  `json:"categories"`
	NSFW               bool      `json:"nsfw"`
	ContractType       string    `json:"contractType"`
	Description        string    `json:"description"`
	Thumbnail          thumbnail `json:"thumbnail"`
	Price              price     `json:"price"`
	ShipsTo            []string  `json:"shipsTo"`
	FreeShipping       []string  `json:"freeShipping"`
	Language           string    `json:"language"`
	AverageRating      float32   `json:"averageRating"`
	RatingCount        uint32    `json:"ratingCount"`
	ModeratorIDs       []string  `json:"moderators"`
	AcceptedCurrencies []string  `json:"acceptedCurrencies"`
	CoinType           string    `json:"coinType"`
}

ListingData - represent a listing

type OpenBazaarNode

type OpenBazaarNode struct {
	// IPFS node object
	IpfsNode *core.IpfsNode

	/* The roothash of the node directory inside the openbazaar repo.
	   This directory hash is published on IPNS at our peer ID making
	   the directory publicly viewable on the network. */
	RootHash string

	// The path to the openbazaar repo in the file system
	RepoPath string

	// The OpenBazaar network service for direct communication between peers
	Service net.NetworkService

	// Database for storing node specific data
	Datastore repo.Datastore

	// Websocket channel used for pushing data to the UI
	Broadcast chan repo.Notifier

	// A map of cryptocurrency wallets
	Multiwallet multiwallet.MultiWallet

	// Storage for our outgoing messages
	MessageStorage sto.OfflineMessagingStorage

	// A service that periodically checks the dht for outstanding messages
	MessageRetriever *ret.MessageRetriever

	// OfflineMessageFailoverTimeout is the duration until the protocol
	// will stop looking for the peer to send a direct message and failover to
	// sending an offline message
	OfflineMessageFailoverTimeout time.Duration

	// A service that periodically republishes active pointers
	PointerRepublisher *rep.PointerRepublisher

	// Used to resolve domains to OpenBazaar IDs
	NameSystem *namesys.NameSystem

	// Optional nodes to push user data to
	PushNodes []peer.ID

	// The user-agent for this node
	UserAgent string

	// A dialer for Tor if available
	TorDialer proxy.Dialer

	// Manage blocked peers
	BanManager *net.BanManager

	// Allow other nodes to push data to this node for storage
	AcceptStoreRequests bool

	// Last ditch API to find records that dropped out of the DHT
	IPNSBackupAPI string

	// RecordAgingNotifier is a worker that walks the cases datastore to
	// notify the user as disputes age past certain thresholds
	RecordAgingNotifier *recordAgingNotifier

	// Generic pubsub interface
	Pubsub ipfs.Pubsub

	// The master private key derived from the mnemonic
	MasterPrivateKey *hdkeychain.ExtendedKey

	TestnetEnable        bool
	RegressionTestEnable bool
}

OpenBazaarNode - represent ob node which encapsulates ipfsnode, wallet etc

var Node *OpenBazaarNode

Node - ob node

func (*OpenBazaarNode) BuildTransactionRecords added in v0.6.2

func (n *OpenBazaarNode) BuildTransactionRecords(contract *pb.RicardianContract, records []*wallet.TransactionRecord, state pb.OrderState) ([]*pb.TransactionRecord, *pb.TransactionRecord, error)

BuildTransactionRecords - Used by the GET order API to build transaction records suitable to be included in the order response

func (*OpenBazaarNode) CalcOrderID added in v0.12.3

func (n *OpenBazaarNode) CalcOrderID(order *pb.Order) (string, error)

CalcOrderID - return b58 encoded orderID

func (*OpenBazaarNode) CalculateOrderTotal added in v0.1.1

func (n *OpenBazaarNode) CalculateOrderTotal(contract *pb.RicardianContract) (uint64, error)

CalculateOrderTotal - calculate the total in satoshi/wei

func (*OpenBazaarNode) CancelOfflineOrder added in v0.2.0

func (n *OpenBazaarNode) CancelOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

CancelOfflineOrder - cancel order

func (*OpenBazaarNode) CloseDispute added in v0.3.0

func (n *OpenBazaarNode) CloseDispute(orderID string, buyerPercentage, vendorPercentage float32, resolution string) error

CloseDispute - close a dispute

func (*OpenBazaarNode) CompleteOrder added in v0.2.2

func (n *OpenBazaarNode) CompleteOrder(orderRatings *OrderRatings, contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

CompleteOrder - complete the order

func (*OpenBazaarNode) ConfirmOfflineOrder added in v0.2.0

func (n *OpenBazaarNode) ConfirmOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

ConfirmOfflineOrder - confirm offline order

func (*OpenBazaarNode) CreateListing added in v0.12.0

func (n *OpenBazaarNode) CreateListing(listing *pb.Listing) error

CreateListing - add a listing

func (*OpenBazaarNode) DeleteListing added in v0.1.1

func (n *OpenBazaarNode) DeleteListing(slug string) error

DeleteListing Deletes the listing directory, removes the listing from the index, and deletes the inventory

func (*OpenBazaarNode) DeletePost added in v0.10.1

func (n *OpenBazaarNode) DeletePost(slug string) error

DeletePost [Deletes the post directory, and removes the post from the index]

func (*OpenBazaarNode) DisputeIsActive added in v0.12.1

func (n *OpenBazaarNode) DisputeIsActive(contract *pb.RicardianContract) (bool, error)

DisputeIsActive - check if the dispute is active

func (*OpenBazaarNode) EncryptMessage

func (n *OpenBazaarNode) EncryptMessage(peerID peer.ID, peerKey *libp2p.PubKey, message []byte) (ct []byte, rerr error)

EncryptMessage This is a placeholder until the libsignal is operational.

For now we will just encrypt outgoing offline messages with the long lived identity key.
Optionally you may provide a public key, to avoid doing an IPFS lookup

func (*OpenBazaarNode) EstimateOrderTotal added in v0.5.5

func (n *OpenBazaarNode) EstimateOrderTotal(data *PurchaseData) (uint64, error)

EstimateOrderTotal - returns order total in satoshi/wei

func (*OpenBazaarNode) FetchAvatar added in v0.6.0

func (n *OpenBazaarNode) FetchAvatar(peerID string, size string, useCache bool) (io.DagReader, error)

FetchAvatar - fetch image avatar from ipfs

func (*OpenBazaarNode) FetchHeader added in v0.6.0

func (n *OpenBazaarNode) FetchHeader(peerID string, size string, useCache bool) (io.DagReader, error)

FetchHeader - fetch image header from ipfs

func (*OpenBazaarNode) FetchImage added in v0.6.0

func (n *OpenBazaarNode) FetchImage(peerID string, imageType string, size string, useCache bool) (io.DagReader, error)

FetchImage - fetch ipfs image

func (*OpenBazaarNode) FetchProfile added in v0.5.0

func (n *OpenBazaarNode) FetchProfile(peerID string, useCache bool) (pb.Profile, error)

FetchProfile - fetch peer's profile

func (*OpenBazaarNode) Follow

func (n *OpenBazaarNode) Follow(peerID string) error

Follow - follow a peer

func (*OpenBazaarNode) FulfillOrder added in v0.2.1

func (n *OpenBazaarNode) FulfillOrder(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

FulfillOrder - fulfill the order

func (*OpenBazaarNode) GeneratePostSlug added in v0.10.1

func (n *OpenBazaarNode) GeneratePostSlug(status string) (string, error)

GeneratePostSlug [Create a slug for the post based on the status, if a slug is missing]

func (*OpenBazaarNode) GenerateSlug added in v0.5.1

func (n *OpenBazaarNode) GenerateSlug(title string) (string, error)

GenerateSlug - slugify the title of the listing

func (*OpenBazaarNode) GetBase64Image added in v0.6.3

func (n *OpenBazaarNode) GetBase64Image(url string) (base64ImageData, filename string, err error)

GetBase64Image - fetch the image and return it as base64 encoded string

func (*OpenBazaarNode) GetListingCount

func (n *OpenBazaarNode) GetListingCount() int

GetListingCount Return the current number of listings

func (*OpenBazaarNode) GetListingFromHash added in v0.1.1

func (n *OpenBazaarNode) GetListingFromHash(hash string) (*pb.SignedListing, error)

GetListingFromHash - fetch listing for the specified hash

func (*OpenBazaarNode) GetListingFromSlug added in v0.1.1

func (n *OpenBazaarNode) GetListingFromSlug(slug string) (*pb.SignedListing, error)

GetListingFromSlug - fetch listing for the specified slug

func (*OpenBazaarNode) GetListings added in v0.2.3

func (n *OpenBazaarNode) GetListings() ([]byte, error)

GetListings - fetch all listings

func (*OpenBazaarNode) GetLocalInventory added in v0.12.0

func (n *OpenBazaarNode) GetLocalInventory() (Inventory, error)

GetLocalInventory gets the inventory from the database

func (*OpenBazaarNode) GetLocalInventoryForSlug added in v0.12.0

func (n *OpenBazaarNode) GetLocalInventoryForSlug(slug string) (*InventoryListing, error)

GetLocalInventoryForSlug gets the local inventory for the given slug

func (*OpenBazaarNode) GetModeratorFee added in v0.3.0

func (n *OpenBazaarNode) GetModeratorFee(transactionTotal uint64, paymentCoin, currencyCode string) (uint64, error)

GetModeratorFee - fetch moderator fee

func (*OpenBazaarNode) GetPeerStatus

func (n *OpenBazaarNode) GetPeerStatus(peerID string) (string, error)

GetPeerStatus - check if a peer is online/offline

func (*OpenBazaarNode) GetPostCount added in v0.10.1

func (n *OpenBazaarNode) GetPostCount() int

GetPostCount [Return the current number of posts]

func (*OpenBazaarNode) GetPostFromHash added in v0.10.1

func (n *OpenBazaarNode) GetPostFromHash(hash string) (*pb.SignedPost, error)

GetPostFromHash [Get a post based on the hash]

func (*OpenBazaarNode) GetPostFromSlug added in v0.10.1

func (n *OpenBazaarNode) GetPostFromSlug(slug string) (*pb.SignedPost, error)

GetPostFromSlug [Get a post based on the slug]

func (*OpenBazaarNode) GetPosts added in v0.10.1

func (n *OpenBazaarNode) GetPosts() ([]byte, error)

GetPosts [Get a list of the posts]

func (*OpenBazaarNode) GetProfile

func (n *OpenBazaarNode) GetProfile() (pb.Profile, error)

GetProfile - fetch user profile

func (*OpenBazaarNode) GetPublishedInventoryBytes added in v0.12.0

func (n *OpenBazaarNode) GetPublishedInventoryBytes(p peer.ID, useCache bool) ([]byte, error)

GetPublishedInventoryBytes gets a byte slice representing the given peer's inventory that it published to IPFS

func (*OpenBazaarNode) GetPublishedInventoryBytesForSlug added in v0.12.0

func (n *OpenBazaarNode) GetPublishedInventoryBytesForSlug(p peer.ID, slug string, useCache bool) ([]byte, error)

GetPublishedInventoryBytesForSlug gets a byte slice representing the given slug's inventory from IPFS

func (*OpenBazaarNode) GetRatingCounts added in v0.9.4

func (n *OpenBazaarNode) GetRatingCounts() (uint32, float32, error)

GetRatingCounts - fetch rating count

func (*OpenBazaarNode) IPFSIdentityString added in v0.12.0

func (n *OpenBazaarNode) IPFSIdentityString() string

IPFSIdentityString - IPFS identifier

func (*OpenBazaarNode) IPNSResolve added in v0.11.0

func (n *OpenBazaarNode) IPNSResolve(peerID string, timeout time.Duration, usecache bool) (string, error)

IPNSResolve - try fetching the record from an API

func (*OpenBazaarNode) IPNSResolveThenCat added in v0.11.0

func (n *OpenBazaarNode) IPNSResolveThenCat(ipnsPath ipfspath.Path, timeout time.Duration, usecache bool) ([]byte, error)

IPNSResolveThenCat - find the record in the DHT

func (*OpenBazaarNode) ImportListings added in v0.6.3

func (n *OpenBazaarNode) ImportListings(r io.ReadCloser) error

ImportListings - upload/read listings

func (*OpenBazaarNode) IsFulfilled added in v0.2.1

func (n *OpenBazaarNode) IsFulfilled(contract *pb.RicardianContract) bool

IsFulfilled - check is order is fulfilled

func (*OpenBazaarNode) IsItemForSale added in v0.2.0

func (n *OpenBazaarNode) IsItemForSale(listing *pb.Listing) bool

IsItemForSale Check to see we are selling the given listing. Used when validating an order. FIXME: This won't scale well. We will need to store the hash of active listings in a db to do an indexed search.

func (*OpenBazaarNode) IsModerator added in v0.5.0

func (n *OpenBazaarNode) IsModerator() bool

IsModerator - Am I a moderator?

func (*OpenBazaarNode) NewOrderConfirmation added in v0.2.0

func (n *OpenBazaarNode) NewOrderConfirmation(contract *pb.RicardianContract, addressRequest, calculateNewTotal bool) (*pb.RicardianContract, error)

NewOrderConfirmation - add order confirmation to the contract

func (*OpenBazaarNode) NotifyModerators added in v0.5.1

func (n *OpenBazaarNode) NotifyModerators(moderators []string) error

NotifyModerators - notify moderators(peers)

func (*OpenBazaarNode) OpenDispute added in v0.3.0

func (n *OpenBazaarNode) OpenDispute(orderID string, contract *pb.RicardianContract, records []*wallet.TransactionRecord, claim string) error

OpenDispute - open a dispute

func (*OpenBazaarNode) PatchProfile added in v0.4.3

func (n *OpenBazaarNode) PatchProfile(patch map[string]interface{}) error

PatchProfile - patch user profile

func (*OpenBazaarNode) ProcessDisputeOpen added in v0.3.0

func (n *OpenBazaarNode) ProcessDisputeOpen(rc *pb.RicardianContract, peerID string) error

ProcessDisputeOpen - process an open dispute

func (*OpenBazaarNode) PublishInventory added in v0.12.0

func (n *OpenBazaarNode) PublishInventory() error

PublishInventory stores an inventory on IPFS

func (*OpenBazaarNode) Purchase

func (n *OpenBazaarNode) Purchase(data *PurchaseData) (orderID string, paymentAddress string, paymentAmount uint64, vendorOnline bool, err error)

Purchase - add ricardian contract

func (*OpenBazaarNode) RefundOrder added in v0.2.1

func (n *OpenBazaarNode) RefundOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

RefundOrder - refund buyer

func (*OpenBazaarNode) RegressionNetworkEnabled added in v0.11.1

func (n *OpenBazaarNode) RegressionNetworkEnabled() bool

RegressionNetworkEnabled indicates whether the node is operating with regression parameters

func (*OpenBazaarNode) RejectOfflineOrder added in v0.2.0

func (n *OpenBazaarNode) RejectOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

RejectOfflineOrder - reject offline order

func (*OpenBazaarNode) ReleaseFunds added in v0.3.0

func (n *OpenBazaarNode) ReleaseFunds(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

ReleaseFunds - release funds

func (*OpenBazaarNode) ReleaseFundsAfterTimeout added in v0.7.0

func (n *OpenBazaarNode) ReleaseFundsAfterTimeout(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error

ReleaseFundsAfterTimeout - release funds

func (*OpenBazaarNode) RemoveSelfAsModerator added in v0.1.1

func (n *OpenBazaarNode) RemoveSelfAsModerator() error

RemoveSelfAsModerator - relinquish moderatorship

func (*OpenBazaarNode) SeedNode

func (n *OpenBazaarNode) SeedNode() error

SeedNode - publish to IPNS

func (*OpenBazaarNode) SendBlock added in v0.9.3

func (n *OpenBazaarNode) SendBlock(peerID string, id cid.Cid) error

SendBlock - send requested ipfs block to peer

func (*OpenBazaarNode) SendCancel added in v0.2.0

func (n *OpenBazaarNode) SendCancel(peerID, orderID string) error

SendCancel - send order canceled msg to peer

func (*OpenBazaarNode) SendChat added in v0.3.1

func (n *OpenBazaarNode) SendChat(peerID string, chatMessage *pb.Chat) error

SendChat - send chat msg to peer

func (*OpenBazaarNode) SendDisputeClose added in v0.3.0

func (n *OpenBazaarNode) SendDisputeClose(peerID string, k *libp2p.PubKey, resolutionMessage *pb.RicardianContract) error

SendDisputeClose - send dispute closed msg to peer

func (*OpenBazaarNode) SendDisputeOpen added in v0.3.0

func (n *OpenBazaarNode) SendDisputeOpen(peerID string, k *libp2p.PubKey, disputeMessage *pb.RicardianContract) error

SendDisputeOpen - send open dispute msg to peer

func (*OpenBazaarNode) SendDisputeUpdate added in v0.3.0

func (n *OpenBazaarNode) SendDisputeUpdate(peerID string, updateMessage *pb.DisputeUpdate) error

SendDisputeUpdate - send update dispute msg to peer

func (*OpenBazaarNode) SendError added in v0.11.1

func (n *OpenBazaarNode) SendError(peerID string, k *libp2p.PubKey, errorMessage pb.Message) error

SendError - send error msg to peer

func (*OpenBazaarNode) SendFundsReleasedByVendor added in v0.12.1

func (n *OpenBazaarNode) SendFundsReleasedByVendor(peerID string, marshalledPeerPublicKey []byte, orderID string) error

SendFundsReleasedByVendor - send funds released by vendor msg to peer

func (*OpenBazaarNode) SendModeratorAdd added in v0.5.1

func (n *OpenBazaarNode) SendModeratorAdd(peerID string) error

SendModeratorAdd - send add moderator msg to peer

func (*OpenBazaarNode) SendModeratorRemove added in v0.5.1

func (n *OpenBazaarNode) SendModeratorRemove(peerID string) error

SendModeratorRemove - send remove moderator msg to peer

func (*OpenBazaarNode) SendOfflineAck

func (n *OpenBazaarNode) SendOfflineAck(peerID string, pointerID peer.ID) error

SendOfflineAck - send ack to offline peer

func (*OpenBazaarNode) SendOfflineMessage

func (n *OpenBazaarNode) SendOfflineMessage(p peer.ID, k *libp2p.PubKey, m *pb.Message) error

SendOfflineMessage Supply of a public key is optional, if nil is instead provided n.EncryptMessage does a lookup

func (*OpenBazaarNode) SendOfflineRelay added in v0.12.4

func (n *OpenBazaarNode) SendOfflineRelay(peerID string, encryptedMessage []byte) error

SendOfflineRelay - send and offline relay message to the peer. Used for relaying messages from a client node to another peer.

func (*OpenBazaarNode) SendOrder added in v0.1.1

func (n *OpenBazaarNode) SendOrder(peerID string, contract *pb.RicardianContract) (resp *pb.Message, err error)

SendOrder - send order created msg to peer

func (*OpenBazaarNode) SendOrderCompletion added in v0.2.2

func (n *OpenBazaarNode) SendOrderCompletion(peerID string, k *libp2p.PubKey, completionMessage *pb.RicardianContract) error

SendOrderCompletion - send order completion msg to peer

func (*OpenBazaarNode) SendOrderConfirmation added in v0.2.0

func (n *OpenBazaarNode) SendOrderConfirmation(peerID string, contract *pb.RicardianContract) error

SendOrderConfirmation - send order confirmed msg to peer

func (*OpenBazaarNode) SendOrderFulfillment added in v0.2.1

func (n *OpenBazaarNode) SendOrderFulfillment(peerID string, k *libp2p.PubKey, fulfillmentMessage *pb.RicardianContract) error

SendOrderFulfillment - send order fulfillment msg to peer

func (*OpenBazaarNode) SendRefund added in v0.2.1

func (n *OpenBazaarNode) SendRefund(peerID string, refundMessage *pb.RicardianContract) error

SendRefund - send refund msg to peer

func (*OpenBazaarNode) SendReject added in v0.2.0

func (n *OpenBazaarNode) SendReject(peerID string, rejectMessage *pb.OrderReject) error

SendReject - send order rejected msg to peer

func (*OpenBazaarNode) SendStore added in v0.9.3

func (n *OpenBazaarNode) SendStore(peerID string, ids []cid.Cid) error

SendStore - send requested stores to peer

func (*OpenBazaarNode) SetAvatarImages added in v0.2.0

func (n *OpenBazaarNode) SetAvatarImages(base64ImageData string) (*pb.Profile_Image, error)

SetAvatarImages - set avatar image from the base64 encoded image string

func (*OpenBazaarNode) SetHeaderImages added in v0.2.0

func (n *OpenBazaarNode) SetHeaderImages(base64ImageData string) (*pb.Profile_Image, error)

SetHeaderImages - set header image from the base64 encoded string

func (*OpenBazaarNode) SetListingInventory

func (n *OpenBazaarNode) SetListingInventory(listing *pb.Listing) error

SetListingInventory Sets the inventory for the listing in the database. Does some basic validation

to make sure the inventory uses the correct variants.

func (*OpenBazaarNode) SetModeratorsOnListings added in v0.4.3

func (n *OpenBazaarNode) SetModeratorsOnListings(moderators []string) error

SetModeratorsOnListings - set moderators for a listing

func (*OpenBazaarNode) SetProductImages added in v0.2.0

func (n *OpenBazaarNode) SetProductImages(base64ImageData, filename string) (*pb.Profile_Image, error)

SetProductImages - use the original image ina base64 string format and generate tiny, small, medium and large images for the product

func (*OpenBazaarNode) SetSelfAsModerator added in v0.1.1

func (n *OpenBazaarNode) SetSelfAsModerator(moderator *pb.Moderator) error

SetSelfAsModerator - set self as a moderator

func (*OpenBazaarNode) SetUpRepublisher added in v0.9.3

func (n *OpenBazaarNode) SetUpRepublisher(interval time.Duration)

SetUpRepublisher - periodic publishing to IPNS

func (*OpenBazaarNode) SignDispute added in v0.3.0

func (n *OpenBazaarNode) SignDispute(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignDispute - sign the dispute

func (*OpenBazaarNode) SignDisputeResolution added in v0.3.0

func (n *OpenBazaarNode) SignDisputeResolution(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignDisputeResolution - add signature to DisputeResolution

func (*OpenBazaarNode) SignListing

func (n *OpenBazaarNode) SignListing(listing *pb.Listing) (*pb.SignedListing, error)

SignListing Add our identity to the listing and sign it

func (*OpenBazaarNode) SignOrder added in v0.2.0

func (n *OpenBazaarNode) SignOrder(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignOrder - add signature to the order

func (*OpenBazaarNode) SignOrderCompletion added in v0.2.2

func (n *OpenBazaarNode) SignOrderCompletion(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignOrderCompletion - sign order on completion

func (*OpenBazaarNode) SignOrderConfirmation added in v0.2.0

func (n *OpenBazaarNode) SignOrderConfirmation(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignOrderConfirmation - sign the added order confirmation

func (*OpenBazaarNode) SignOrderFulfillment added in v0.2.1

func (n *OpenBazaarNode) SignOrderFulfillment(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignOrderFulfillment - add signature to order fulfillment

func (*OpenBazaarNode) SignPost added in v0.10.1

func (n *OpenBazaarNode) SignPost(post *pb.Post) (*pb.SignedPost, error)

SignPost [Add the peer's identity to the post and sign it]

func (*OpenBazaarNode) SignRefund added in v0.2.1

func (n *OpenBazaarNode) SignRefund(contract *pb.RicardianContract) (*pb.RicardianContract, error)

SignRefund - add signature to refund

func (*OpenBazaarNode) Spend added in v0.13.0

func (n *OpenBazaarNode) Spend(args *SpendRequest) (*SpendResponse, error)

Spend will attempt to move funds from the node to the destination address described in the SpendRequest for the amount indicated.

func (*OpenBazaarNode) StartMessageRetriever added in v0.12.1

func (n *OpenBazaarNode) StartMessageRetriever()

StartMessageRetriever will collect the required options from the OpenBazaarNode and begin the MessageRetriever in the background

func (*OpenBazaarNode) StartPointerRepublisher added in v0.12.1

func (n *OpenBazaarNode) StartPointerRepublisher()

StartPointerRepublisher - setup republisher for IPNS

func (*OpenBazaarNode) StartRecordAgingNotifier added in v0.12.1

func (n *OpenBazaarNode) StartRecordAgingNotifier()

StartRecordAgingNotifier - start the notifier

func (*OpenBazaarNode) TestNetworkEnabled added in v0.11.1

func (n *OpenBazaarNode) TestNetworkEnabled() bool

TestNetworkEnabled indicates whether the node is operating with test parameters

func (*OpenBazaarNode) Unfollow

func (n *OpenBazaarNode) Unfollow(peerID string) error

Unfollow - unfollow a peer

func (*OpenBazaarNode) UpdateEachListingOnIndex added in v0.11.1

func (n *OpenBazaarNode) UpdateEachListingOnIndex(updateListing func(*ListingData) error) error

UpdateEachListingOnIndex will visit each listing in the index and execute the function with a pointer to the listing passed as the argument. The function should return an error to further processing.

func (*OpenBazaarNode) UpdateFollow

func (n *OpenBazaarNode) UpdateFollow() error

UpdateFollow This function updates the follow and following lists in the node's root directory

as well as adds the current follow, following, and listing counts to the profile.
We only do this when a user updates his node to avoid needing to make network calls
each time a new follower or unfollow request comes in.

func (*OpenBazaarNode) UpdateListing added in v0.12.0

func (n *OpenBazaarNode) UpdateListing(listing *pb.Listing) error

UpdateListing - update the listing

func (*OpenBazaarNode) UpdatePostHashes added in v0.10.1

func (n *OpenBazaarNode) UpdatePostHashes(hashes map[string]string) error

UpdatePostHashes [Update the hashes in the posts.json file]

func (*OpenBazaarNode) UpdatePostIndex added in v0.10.1

func (n *OpenBazaarNode) UpdatePostIndex(post *pb.SignedPost) error

UpdatePostIndex [Update the posts index]

func (*OpenBazaarNode) UpdateProfile

func (n *OpenBazaarNode) UpdateProfile(profile *pb.Profile) error

UpdateProfile - update user profile

func (*OpenBazaarNode) ValidateAndSaveRating added in v0.2.2

func (n *OpenBazaarNode) ValidateAndSaveRating(contract *pb.RicardianContract) (retErr error)

ValidateAndSaveRating - validates rating

func (*OpenBazaarNode) ValidateCaseContract added in v0.3.0

func (n *OpenBazaarNode) ValidateCaseContract(contract *pb.RicardianContract) []string

ValidateCaseContract - validate contract details

func (*OpenBazaarNode) ValidateDirectPaymentAddress added in v0.2.0

func (n *OpenBazaarNode) ValidateDirectPaymentAddress(order *pb.Order) error

ValidateDirectPaymentAddress - validate address

func (*OpenBazaarNode) ValidateDisputeResolution added in v0.3.0

func (n *OpenBazaarNode) ValidateDisputeResolution(contract *pb.RicardianContract) error

ValidateDisputeResolution - validate dispute resolution

func (*OpenBazaarNode) ValidateModeratedPaymentAddress added in v0.2.1

func (n *OpenBazaarNode) ValidateModeratedPaymentAddress(order *pb.Order, timeout time.Duration) error

ValidateModeratedPaymentAddress - validate moderator address

func (*OpenBazaarNode) ValidateMultiwalletHasPreferredCurrencies added in v0.13.0

func (n *OpenBazaarNode) ValidateMultiwalletHasPreferredCurrencies(data repo.SettingsData) error

func (*OpenBazaarNode) ValidateOrder added in v0.2.0

func (n *OpenBazaarNode) ValidateOrder(contract *pb.RicardianContract, checkInventory bool) error

ValidateOrder - check the order validity wrt signatures etc

func (*OpenBazaarNode) ValidateOrderCompletion added in v0.2.2

func (n *OpenBazaarNode) ValidateOrderCompletion(contract *pb.RicardianContract) error

ValidateOrderCompletion - validate order signatures on completion

func (*OpenBazaarNode) ValidateOrderConfirmation added in v0.2.1

func (n *OpenBazaarNode) ValidateOrderConfirmation(contract *pb.RicardianContract, validateAddress bool) error

ValidateOrderConfirmation - validate address and signatures for order confirmation

func (*OpenBazaarNode) ValidateOrderFulfillment added in v0.2.1

func (n *OpenBazaarNode) ValidateOrderFulfillment(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract) error

ValidateOrderFulfillment - validate order details

func (*OpenBazaarNode) ValidatePaymentAmount added in v0.4.0

func (n *OpenBazaarNode) ValidatePaymentAmount(requestedAmount, paymentAmount uint64) bool

ValidatePaymentAmount - validate amount requested

func (*OpenBazaarNode) VerifySignatureOnDisputeOpen added in v0.3.0

func (n *OpenBazaarNode) VerifySignatureOnDisputeOpen(contract *pb.RicardianContract, peerID string) error

VerifySignatureOnDisputeOpen - verify signatures in an open dispute

func (*OpenBazaarNode) VerifySignaturesOnRefund added in v0.2.1

func (n *OpenBazaarNode) VerifySignaturesOnRefund(contract *pb.RicardianContract) error

VerifySignaturesOnRefund - verify signatures on refund

func (*OpenBazaarNode) WaitForMessageRetrieverCompletion added in v0.12.1

func (n *OpenBazaarNode) WaitForMessageRetrieverCompletion()

WaitForMessageRetrieverCompletion will return once the MessageRetriever has finished processing messages

type OrderRatings added in v0.2.2

type OrderRatings struct {
	OrderID string       `json:"orderId"`
	Ratings []RatingData `json:"ratings"`
}

OrderRatings - record ratings for an order

type PurchaseData

type PurchaseData struct {
	ShipTo               string  `json:"shipTo"`
	Address              string  `json:"address"`
	City                 string  `json:"city"`
	State                string  `json:"state"`
	PostalCode           string  `json:"postalCode"`
	CountryCode          string  `json:"countryCode"`
	AddressNotes         string  `json:"addressNotes"`
	Moderator            string  `json:"moderator"`
	Items                []item  `json:"items"`
	AlternateContactInfo string  `json:"alternateContactInfo"`
	RefundAddress        *string `json:"refundAddress"` //optional, can be left out of json
	PaymentCoin          string  `json:"paymentCoin"`
}

PurchaseData - record purchase data

type RatingData added in v0.2.2

type RatingData struct {
	Slug            string `json:"slug"`
	Overall         int    `json:"overall"`
	Quality         int    `json:"quality"`
	Description     int    `json:"description"`
	DeliverySpeed   int    `json:"deliverySpeed"`
	CustomerService int    `json:"customerService"`
	Review          string `json:"review"`
	Anonymous       bool   `json:"anonymous"`
}

RatingData - record rating in detail

type SavedRating added in v0.6.0

type SavedRating struct {
	Slug    string   `json:"slug"`
	Count   int      `json:"count"`
	Average float32  `json:"average"`
	Ratings []string `json:"ratings"`
}

SavedRating - represent saved rating

type SpendRequest added in v0.13.0

type SpendRequest struct {
	Address                string `json:"address"`
	Amount                 int64  `json:"amount"`
	FeeLevel               string `json:"feeLevel"`
	Memo                   string `json:"memo"`
	OrderID                string `json:"orderId"`
	RequireAssociatedOrder bool   `json:"requireOrder"`
	Wallet                 string `json:"wallet"`
	// contains filtered or unexported fields
}

type SpendResponse added in v0.13.0

type SpendResponse struct {
	Amount             int64     `json:"amount"`
	ConfirmedBalance   int64     `json:"confirmedBalance"`
	Memo               string    `json:"memo"`
	OrderID            string    `json:"orderId"`
	Timestamp          time.Time `json:"timestamp"`
	Txid               string    `json:"txid"`
	UnconfirmedBalance int64     `json:"unconfirmedBalance"`
}

Jump to

Keyboard shortcuts

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