Documentation ¶
Index ¶
- Constants
- Variables
- func CheckAndSetUlimit() error
- func CheckEOL(e *ipnspb.IpnsEntry) (time.Time, bool)
- func EncodeCID(b []byte) (*cid.Cid, error)
- func EncodeMultihash(b []byte) (*mh.Multihash, error)
- func ExtractIDFromPointer(pi ps.PeerInfo) (string, error)
- func FormatRFC3339PB(ts google_protobuf.Timestamp) string
- func GetSelectedSku(listing *pb.Listing, itemOptions []*pb.Order_Item_Option) (int, error)
- func ParseContractForListing(hash string, contract *pb.RicardianContract) (*pb.Listing, error)
- func SameSku(selectedVariants []int, sku *pb.Listing_Item_Sku) bool
- func ValidateProfile(profile *pb.Profile) error
- func ValidateRating(rating *pb.Rating) (bool, error)
- type ListingData
- type OpenBazaarNode
- func (n *OpenBazaarNode) BuildTransactionRecords(contract *pb.RicardianContract, records []*wallet.TransactionRecord, ...) ([]*pb.TransactionRecord, *pb.TransactionRecord, error)
- func (n *OpenBazaarNode) CalcOrderId(order *pb.Order) (string, error)
- func (n *OpenBazaarNode) CalculateOrderTotal(contract *pb.RicardianContract) (uint64, error)
- func (n *OpenBazaarNode) CancelOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
- func (n *OpenBazaarNode) CloseDispute(orderId string, buyerPercentage, vendorPercentage float32, resolution string) error
- func (n *OpenBazaarNode) CompleteOrder(orderRatings *OrderRatings, contract *pb.RicardianContract, ...) error
- func (n *OpenBazaarNode) ConfirmOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
- func (n *OpenBazaarNode) DeleteListing(slug string) error
- func (n *OpenBazaarNode) DeletePost(slug string) error
- func (n *OpenBazaarNode) EncryptMessage(peerID peer.ID, peerKey *libp2p.PubKey, message []byte) (ct []byte, rerr error)
- func (n *OpenBazaarNode) EstimateOrderTotal(data *PurchaseData) (uint64, error)
- func (n *OpenBazaarNode) FetchAvatar(peerId string, size string, useCache bool) (io.DagReader, error)
- func (n *OpenBazaarNode) FetchHeader(peerId string, size string, useCache bool) (io.DagReader, error)
- func (n *OpenBazaarNode) FetchImage(peerId string, imageType string, size string, useCache bool) (io.DagReader, error)
- func (n *OpenBazaarNode) FetchProfile(peerId string, useCache bool) (pb.Profile, error)
- func (n *OpenBazaarNode) Follow(peerId string) error
- func (n *OpenBazaarNode) FulfillOrder(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract, ...) error
- func (n *OpenBazaarNode) GeneratePostSlug(title string) (string, error)
- func (n *OpenBazaarNode) GenerateSlug(title string) (string, error)
- func (n *OpenBazaarNode) GetBase64Image(url string) (base64ImageData, filename string, err error)
- func (n *OpenBazaarNode) GetListingCount() int
- func (n *OpenBazaarNode) GetListingFromHash(hash string) (*pb.SignedListing, error)
- func (n *OpenBazaarNode) GetListingFromSlug(slug string) (*pb.SignedListing, error)
- func (n *OpenBazaarNode) GetListings() ([]byte, error)
- func (n *OpenBazaarNode) GetModeratorFee(transactionTotal uint64) (uint64, error)
- func (n *OpenBazaarNode) GetPeerStatus(peerId string) (string, error)
- func (n *OpenBazaarNode) GetPostCount() int
- func (n *OpenBazaarNode) GetPostFromHash(hash string) (*pb.SignedPost, error)
- func (n *OpenBazaarNode) GetPostFromSlug(slug string) (*pb.SignedPost, error)
- func (n *OpenBazaarNode) GetPosts() ([]byte, error)
- func (n *OpenBazaarNode) GetProfile() (pb.Profile, error)
- func (n *OpenBazaarNode) GetRatingCounts() (uint32, float32, error)
- func (n *OpenBazaarNode) IPNSResolve(peerId string, timeout time.Duration) (string, error)
- func (n *OpenBazaarNode) IPNSResolveThenCat(ipnsPath ipfspath.Path, timeout time.Duration) ([]byte, error)
- func (n *OpenBazaarNode) ImportListings(r io.ReadCloser) error
- func (n *OpenBazaarNode) IsFulfilled(contract *pb.RicardianContract) bool
- func (n *OpenBazaarNode) IsItemForSale(listing *pb.Listing) bool
- func (n *OpenBazaarNode) IsModerator() bool
- func (n *OpenBazaarNode) NewOrderConfirmation(contract *pb.RicardianContract, addressRequest, calculateNewTotal bool) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) NotifyModerators(moderators []string) error
- func (n *OpenBazaarNode) OpenDispute(orderID string, contract *pb.RicardianContract, ...) error
- func (n *OpenBazaarNode) PatchProfile(patch map[string]interface{}) error
- func (n *OpenBazaarNode) ProcessDisputeOpen(rc *pb.RicardianContract, peerID string) error
- func (n *OpenBazaarNode) Purchase(data *PurchaseData) (orderId string, paymentAddress string, paymentAmount uint64, vendorOnline bool, ...)
- func (n *OpenBazaarNode) RefundOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
- func (n *OpenBazaarNode) RegressionNetworkEnabled() bool
- func (n *OpenBazaarNode) RejectOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
- func (n *OpenBazaarNode) ReleaseFunds(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
- func (n *OpenBazaarNode) ReleaseFundsAfterTimeout(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
- func (n *OpenBazaarNode) RemoveSelfAsModerator() error
- func (n *OpenBazaarNode) SeedNode() error
- func (n *OpenBazaarNode) SendBlock(peerId string, id cid.Cid) error
- func (n *OpenBazaarNode) SendCancel(peerId, orderId string) error
- func (n *OpenBazaarNode) SendChat(peerId string, chatMessage *pb.Chat) error
- func (n *OpenBazaarNode) SendDisputeClose(peerId string, k *libp2p.PubKey, resolutionMessage *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendDisputeOpen(peerId string, k *libp2p.PubKey, disputeMessage *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendDisputeUpdate(peerId string, updateMessage *pb.DisputeUpdate) error
- func (n *OpenBazaarNode) SendError(peerId string, k *libp2p.PubKey, errorMessage pb.Message) error
- func (n *OpenBazaarNode) SendModeratorAdd(peerId string) error
- func (n *OpenBazaarNode) SendModeratorRemove(peerId string) error
- func (n *OpenBazaarNode) SendOfflineAck(peerId string, pointerID peer.ID) error
- func (n *OpenBazaarNode) SendOfflineMessage(p peer.ID, k *libp2p.PubKey, m *pb.Message) error
- func (n *OpenBazaarNode) SendOrder(peerId string, contract *pb.RicardianContract) (resp *pb.Message, err error)
- func (n *OpenBazaarNode) SendOrderCompletion(peerId string, k *libp2p.PubKey, completionMessage *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendOrderConfirmation(peerId string, contract *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendOrderFulfillment(peerId string, k *libp2p.PubKey, fulfillmentMessage *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendRefund(peerId string, refundMessage *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendReject(peerId string, rejectMessage *pb.OrderReject) error
- func (n *OpenBazaarNode) SendStore(peerId string, ids []cid.Cid) error
- func (n *OpenBazaarNode) SetAvatarImages(base64ImageData string) (*pb.Profile_Image, error)
- func (n *OpenBazaarNode) SetHeaderImages(base64ImageData string) (*pb.Profile_Image, error)
- func (n *OpenBazaarNode) SetListingInventory(listing *pb.Listing) error
- func (n *OpenBazaarNode) SetModeratorsOnListings(moderators []string) error
- func (n *OpenBazaarNode) SetProductImages(base64ImageData, filename string) (*pb.Profile_Image, error)
- func (n *OpenBazaarNode) SetSelfAsModerator(moderator *pb.Moderator) error
- func (n *OpenBazaarNode) SetUpRepublisher(interval time.Duration)
- func (n *OpenBazaarNode) SignDispute(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignDisputeResolution(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignListing(listing *pb.Listing) (*pb.SignedListing, error)
- func (n *OpenBazaarNode) SignOrder(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignOrderCompletion(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignOrderConfirmation(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignOrderFulfillment(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignPost(post *pb.Post) (*pb.SignedPost, error)
- func (n *OpenBazaarNode) SignRefund(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) TestNetworkEnabled() bool
- func (n *OpenBazaarNode) Unfollow(peerId string) error
- func (n *OpenBazaarNode) UpdateEachListingOnIndex(updateListing func(*ListingData) error) error
- func (n *OpenBazaarNode) UpdateFollow() error
- func (n *OpenBazaarNode) UpdateListingIndex(listing *pb.SignedListing) error
- func (n *OpenBazaarNode) UpdatePostHashes(hashes map[string]string) error
- func (n *OpenBazaarNode) UpdatePostIndex(post *pb.SignedPost) error
- func (n *OpenBazaarNode) UpdateProfile(profile *pb.Profile) error
- func (n *OpenBazaarNode) ValidateAndSaveRating(contract *pb.RicardianContract) (retErr error)
- func (n *OpenBazaarNode) ValidateCaseContract(contract *pb.RicardianContract) []string
- func (n *OpenBazaarNode) ValidateDirectPaymentAddress(order *pb.Order) error
- func (n *OpenBazaarNode) ValidateDisputeResolution(contract *pb.RicardianContract) error
- func (n *OpenBazaarNode) ValidateModeratedPaymentAddress(order *pb.Order, timeout time.Duration) error
- func (n *OpenBazaarNode) ValidateOrder(contract *pb.RicardianContract, checkInventory bool) error
- func (n *OpenBazaarNode) ValidateOrderCompletion(contract *pb.RicardianContract) error
- func (n *OpenBazaarNode) ValidateOrderConfirmation(contract *pb.RicardianContract, validateAddress bool) error
- func (n *OpenBazaarNode) ValidateOrderFulfillment(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract) error
- func (n *OpenBazaarNode) ValidatePaymentAmount(requestedAmount, paymentAmount uint64) bool
- func (n *OpenBazaarNode) VerifySignatureOnDisputeOpen(contract *pb.RicardianContract, peerID string) error
- func (n *OpenBazaarNode) VerifySignaturesOnRefund(contract *pb.RicardianContract) error
- type OrderRatings
- type PurchaseData
- type RatingData
- type SavedRating
Constants ¶
const ( RatingMin = 1 RatingMax = 5 ReviewMaxCharacters = 3000 )
const ( ListingVersion = 2 TitleMaxCharacters = 140 ShortDescriptionLength = 160 DescriptionMaxCharacters = 50000 MaxTags = 10 MaxCategories = 10 MaxListItems = 30 FilenameMaxCharacters = 255 CodeMaxCharacters = 20 WordMaxCharacters = 40 SentenceMaxCharacters = 70 CouponTitleMaxCharacters = 70 PolicyMaxCharacters = 10000 AboutMaxCharacters = 10000 URLMaxCharacters = 2000 MaxCountryCodes = 255 EscrowTimeout = 1080 SlugBuffer = 5 )
const ( CHAT_MESSAGE_MAX_CHARACTERS = 20000 CHAT_SUBJECT_MAX_CHARACTERS = 500 DefaultPointerPrefixLength = 14 )
const ( PostTitleMaxCharacters = 280 PostLongFormMaxCharacters = 50000 MaxPostTags = 50 PostTagsMaxCharacters = 80 )
Constants for validation
const ( CachePrefix = "IPNSPERSISENTCACHE_" KeyCachePrefix = "IPNSPUBKEYCACHE_" CachedProfileTime = time.Hour * 24 * 7 )
const EscrowReleaseSize = 337
We use this to check to see if the approximate fee to release funds from escrow is greater than 1/4th of the amount being released. If so, we prevent the purchase from being made as it severely cuts into the vendor's profits. TODO: this probably should not be hardcoded but making it adaptive requires all wallet implementations to provide this data. TODO: for now, this is probably OK as it's just an approximation.
Variables ¶
var ( VERSION = "0.11.1" USERAGENT = "/openbazaar-go:" + VERSION + "/" )
var DisputeWg = new(sync.WaitGroup)
var ErrCaseNotFound = errors.New("Case not found")
var ErrorProfileNotFound error = errors.New("Profile not found")
var EscrowTimeLockedError error
var InitalPublishComplete bool = false
var ModeratorPointerID multihash.Multihash
var NoListingsError error = errors.New("No listings to set moderators on")
var OfflineMessageWaitGroup sync.WaitGroup
var PublishLock sync.Mutex
var UnknownListingError = errors.New("Order contains a hash of a listing that is not currently for sale")
Functions ¶
func CheckAndSetUlimit ¶ added in v0.9.3
func CheckAndSetUlimit() error
CheckAndSetUlimit raises the file descriptor limit
func ExtractIDFromPointer ¶ added in v0.5.1
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 GetSelectedSku ¶ added in v0.5.1
func ParseContractForListing ¶ added in v0.5.5
func ValidateProfile ¶ added in v0.5.3
Types ¶
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"` }
type OpenBazaarNode ¶
type OpenBazaarNode struct { // Context for issuing IPFS commands Context commands.Context // 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 interface{} // Bitcoin wallet implementation Wallet wallet.Wallet // Storage for our outgoing messages MessageStorage sto.OfflineMessagingStorage // A service that periodically checks the dht for outstanding messages MessageRetriever *ret.MessageRetriever // A service that periodically republishes active pointers PointerRepublisher *rep.PointerRepublisher // Used to resolve domains to OpenBazaar IDs NameSystem *namesys.NameSystem // A service that periodically fetches and caches the bitcoin exchange rates ExchangeRates bitcoin.ExchangeRates // 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 TestnetEnable bool RegressionTestEnable bool }
var Node *OpenBazaarNode
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)
Used by the GET order API to build transaction records suitable to be included in the order response
func (*OpenBazaarNode) CalcOrderId ¶ added in v0.2.0
func (n *OpenBazaarNode) CalcOrderId(order *pb.Order) (string, error)
func (*OpenBazaarNode) CalculateOrderTotal ¶ added in v0.1.1
func (n *OpenBazaarNode) CalculateOrderTotal(contract *pb.RicardianContract) (uint64, error)
func (*OpenBazaarNode) CancelOfflineOrder ¶ added in v0.2.0
func (n *OpenBazaarNode) CancelOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
func (*OpenBazaarNode) CloseDispute ¶ added in v0.3.0
func (n *OpenBazaarNode) CloseDispute(orderId string, buyerPercentage, vendorPercentage float32, resolution string) error
func (*OpenBazaarNode) CompleteOrder ¶ added in v0.2.2
func (n *OpenBazaarNode) CompleteOrder(orderRatings *OrderRatings, contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
func (*OpenBazaarNode) ConfirmOfflineOrder ¶ added in v0.2.0
func (n *OpenBazaarNode) ConfirmOfflineOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
func (*OpenBazaarNode) DeleteListing ¶ added in v0.1.1
func (n *OpenBazaarNode) DeleteListing(slug string) error
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) EncryptMessage ¶
func (n *OpenBazaarNode) EncryptMessage(peerID peer.ID, peerKey *libp2p.PubKey, message []byte) (ct []byte, rerr error)
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)
func (*OpenBazaarNode) FetchAvatar ¶ added in v0.6.0
func (*OpenBazaarNode) FetchHeader ¶ added in v0.6.0
func (*OpenBazaarNode) FetchImage ¶ added in v0.6.0
func (*OpenBazaarNode) FetchProfile ¶ added in v0.5.0
func (*OpenBazaarNode) Follow ¶
func (n *OpenBazaarNode) Follow(peerId string) error
func (*OpenBazaarNode) FulfillOrder ¶ added in v0.2.1
func (n *OpenBazaarNode) FulfillOrder(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
func (*OpenBazaarNode) GeneratePostSlug ¶ added in v0.10.1
func (n *OpenBazaarNode) GeneratePostSlug(title string) (string, error)
GeneratePostSlug [Create a slug for the post based on the title, if a slug is missing]
func (*OpenBazaarNode) GenerateSlug ¶ added in v0.5.1
func (n *OpenBazaarNode) GenerateSlug(title string) (string, error)
func (*OpenBazaarNode) GetBase64Image ¶ added in v0.6.3
func (n *OpenBazaarNode) GetBase64Image(url string) (base64ImageData, filename string, err error)
func (*OpenBazaarNode) GetListingCount ¶
func (n *OpenBazaarNode) GetListingCount() int
Return the current number of listings
func (*OpenBazaarNode) GetListingFromHash ¶ added in v0.1.1
func (n *OpenBazaarNode) GetListingFromHash(hash string) (*pb.SignedListing, error)
func (*OpenBazaarNode) GetListingFromSlug ¶ added in v0.1.1
func (n *OpenBazaarNode) GetListingFromSlug(slug string) (*pb.SignedListing, error)
func (*OpenBazaarNode) GetListings ¶ added in v0.2.3
func (n *OpenBazaarNode) GetListings() ([]byte, error)
func (*OpenBazaarNode) GetModeratorFee ¶ added in v0.3.0
func (n *OpenBazaarNode) GetModeratorFee(transactionTotal uint64) (uint64, error)
func (*OpenBazaarNode) GetPeerStatus ¶
func (n *OpenBazaarNode) GetPeerStatus(peerId string) (string, error)
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)
func (*OpenBazaarNode) GetRatingCounts ¶ added in v0.9.4
func (n *OpenBazaarNode) GetRatingCounts() (uint32, float32, error)
func (*OpenBazaarNode) IPNSResolve ¶ added in v0.11.0
func (*OpenBazaarNode) IPNSResolveThenCat ¶ added in v0.11.0
func (*OpenBazaarNode) ImportListings ¶ added in v0.6.3
func (n *OpenBazaarNode) ImportListings(r io.ReadCloser) error
func (*OpenBazaarNode) IsFulfilled ¶ added in v0.2.1
func (n *OpenBazaarNode) IsFulfilled(contract *pb.RicardianContract) bool
func (*OpenBazaarNode) IsItemForSale ¶ added in v0.2.0
func (n *OpenBazaarNode) IsItemForSale(listing *pb.Listing) bool
Check to see we are selling the given listing. Used when validating an order. FIXME: This wont 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
func (*OpenBazaarNode) NewOrderConfirmation ¶ added in v0.2.0
func (n *OpenBazaarNode) NewOrderConfirmation(contract *pb.RicardianContract, addressRequest, calculateNewTotal bool) (*pb.RicardianContract, error)
func (*OpenBazaarNode) NotifyModerators ¶ added in v0.5.1
func (n *OpenBazaarNode) NotifyModerators(moderators []string) error
func (*OpenBazaarNode) OpenDispute ¶ added in v0.3.0
func (n *OpenBazaarNode) OpenDispute(orderID string, contract *pb.RicardianContract, records []*wallet.TransactionRecord, claim string) error
func (*OpenBazaarNode) PatchProfile ¶ added in v0.4.3
func (n *OpenBazaarNode) PatchProfile(patch map[string]interface{}) error
func (*OpenBazaarNode) ProcessDisputeOpen ¶ added in v0.3.0
func (n *OpenBazaarNode) ProcessDisputeOpen(rc *pb.RicardianContract, peerID string) error
func (*OpenBazaarNode) Purchase ¶
func (n *OpenBazaarNode) Purchase(data *PurchaseData) (orderId string, paymentAddress string, paymentAmount uint64, vendorOnline bool, err error)
func (*OpenBazaarNode) RefundOrder ¶ added in v0.2.1
func (n *OpenBazaarNode) RefundOrder(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
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
func (*OpenBazaarNode) ReleaseFunds ¶ added in v0.3.0
func (n *OpenBazaarNode) ReleaseFunds(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
func (*OpenBazaarNode) ReleaseFundsAfterTimeout ¶ added in v0.7.0
func (n *OpenBazaarNode) ReleaseFundsAfterTimeout(contract *pb.RicardianContract, records []*wallet.TransactionRecord) error
func (*OpenBazaarNode) RemoveSelfAsModerator ¶ added in v0.1.1
func (n *OpenBazaarNode) RemoveSelfAsModerator() error
func (*OpenBazaarNode) SeedNode ¶
func (n *OpenBazaarNode) SeedNode() error
func (*OpenBazaarNode) SendBlock ¶ added in v0.9.3
func (n *OpenBazaarNode) SendBlock(peerId string, id cid.Cid) error
func (*OpenBazaarNode) SendCancel ¶ added in v0.2.0
func (n *OpenBazaarNode) SendCancel(peerId, orderId string) error
func (*OpenBazaarNode) SendChat ¶ added in v0.3.1
func (n *OpenBazaarNode) SendChat(peerId string, chatMessage *pb.Chat) error
func (*OpenBazaarNode) SendDisputeClose ¶ added in v0.3.0
func (n *OpenBazaarNode) SendDisputeClose(peerId string, k *libp2p.PubKey, resolutionMessage *pb.RicardianContract) error
func (*OpenBazaarNode) SendDisputeOpen ¶ added in v0.3.0
func (n *OpenBazaarNode) SendDisputeOpen(peerId string, k *libp2p.PubKey, disputeMessage *pb.RicardianContract) error
func (*OpenBazaarNode) SendDisputeUpdate ¶ added in v0.3.0
func (n *OpenBazaarNode) SendDisputeUpdate(peerId string, updateMessage *pb.DisputeUpdate) error
func (*OpenBazaarNode) SendModeratorAdd ¶ added in v0.5.1
func (n *OpenBazaarNode) SendModeratorAdd(peerId string) error
func (*OpenBazaarNode) SendModeratorRemove ¶ added in v0.5.1
func (n *OpenBazaarNode) SendModeratorRemove(peerId string) error
func (*OpenBazaarNode) SendOfflineAck ¶
func (n *OpenBazaarNode) SendOfflineAck(peerId string, pointerID peer.ID) error
func (*OpenBazaarNode) SendOfflineMessage ¶
Supply of a public key is optional, if nil is instead provided n.EncryptMessage does a lookup
func (*OpenBazaarNode) SendOrder ¶ added in v0.1.1
func (n *OpenBazaarNode) SendOrder(peerId string, contract *pb.RicardianContract) (resp *pb.Message, err error)
func (*OpenBazaarNode) SendOrderCompletion ¶ added in v0.2.2
func (n *OpenBazaarNode) SendOrderCompletion(peerId string, k *libp2p.PubKey, completionMessage *pb.RicardianContract) error
func (*OpenBazaarNode) SendOrderConfirmation ¶ added in v0.2.0
func (n *OpenBazaarNode) SendOrderConfirmation(peerId string, contract *pb.RicardianContract) error
func (*OpenBazaarNode) SendOrderFulfillment ¶ added in v0.2.1
func (n *OpenBazaarNode) SendOrderFulfillment(peerId string, k *libp2p.PubKey, fulfillmentMessage *pb.RicardianContract) error
func (*OpenBazaarNode) SendRefund ¶ added in v0.2.1
func (n *OpenBazaarNode) SendRefund(peerId string, refundMessage *pb.RicardianContract) error
func (*OpenBazaarNode) SendReject ¶ added in v0.2.0
func (n *OpenBazaarNode) SendReject(peerId string, rejectMessage *pb.OrderReject) error
func (*OpenBazaarNode) SendStore ¶ added in v0.9.3
func (n *OpenBazaarNode) SendStore(peerId string, ids []cid.Cid) error
func (*OpenBazaarNode) SetAvatarImages ¶ added in v0.2.0
func (n *OpenBazaarNode) SetAvatarImages(base64ImageData string) (*pb.Profile_Image, error)
func (*OpenBazaarNode) SetHeaderImages ¶ added in v0.2.0
func (n *OpenBazaarNode) SetHeaderImages(base64ImageData string) (*pb.Profile_Image, error)
func (*OpenBazaarNode) SetListingInventory ¶
func (n *OpenBazaarNode) SetListingInventory(listing *pb.Listing) error
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
func (*OpenBazaarNode) SetProductImages ¶ added in v0.2.0
func (n *OpenBazaarNode) SetProductImages(base64ImageData, filename string) (*pb.Profile_Image, error)
func (*OpenBazaarNode) SetSelfAsModerator ¶ added in v0.1.1
func (n *OpenBazaarNode) SetSelfAsModerator(moderator *pb.Moderator) error
func (*OpenBazaarNode) SetUpRepublisher ¶ added in v0.9.3
func (n *OpenBazaarNode) SetUpRepublisher(interval time.Duration)
func (*OpenBazaarNode) SignDispute ¶ added in v0.3.0
func (n *OpenBazaarNode) SignDispute(contract *pb.RicardianContract) (*pb.RicardianContract, error)
func (*OpenBazaarNode) SignDisputeResolution ¶ added in v0.3.0
func (n *OpenBazaarNode) SignDisputeResolution(contract *pb.RicardianContract) (*pb.RicardianContract, error)
func (*OpenBazaarNode) SignListing ¶
func (n *OpenBazaarNode) SignListing(listing *pb.Listing) (*pb.SignedListing, error)
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)
func (*OpenBazaarNode) SignOrderCompletion ¶ added in v0.2.2
func (n *OpenBazaarNode) SignOrderCompletion(contract *pb.RicardianContract) (*pb.RicardianContract, error)
func (*OpenBazaarNode) SignOrderConfirmation ¶ added in v0.2.0
func (n *OpenBazaarNode) SignOrderConfirmation(contract *pb.RicardianContract) (*pb.RicardianContract, error)
func (*OpenBazaarNode) SignOrderFulfillment ¶ added in v0.2.1
func (n *OpenBazaarNode) SignOrderFulfillment(contract *pb.RicardianContract) (*pb.RicardianContract, error)
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)
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
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
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) UpdateListingIndex ¶
func (n *OpenBazaarNode) UpdateListingIndex(listing *pb.SignedListing) error
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
func (*OpenBazaarNode) ValidateAndSaveRating ¶ added in v0.2.2
func (n *OpenBazaarNode) ValidateAndSaveRating(contract *pb.RicardianContract) (retErr error)
func (*OpenBazaarNode) ValidateCaseContract ¶ added in v0.3.0
func (n *OpenBazaarNode) ValidateCaseContract(contract *pb.RicardianContract) []string
func (*OpenBazaarNode) ValidateDirectPaymentAddress ¶ added in v0.2.0
func (n *OpenBazaarNode) ValidateDirectPaymentAddress(order *pb.Order) error
func (*OpenBazaarNode) ValidateDisputeResolution ¶ added in v0.3.0
func (n *OpenBazaarNode) ValidateDisputeResolution(contract *pb.RicardianContract) error
func (*OpenBazaarNode) ValidateModeratedPaymentAddress ¶ added in v0.2.1
func (*OpenBazaarNode) ValidateOrder ¶ added in v0.2.0
func (n *OpenBazaarNode) ValidateOrder(contract *pb.RicardianContract, checkInventory bool) error
func (*OpenBazaarNode) ValidateOrderCompletion ¶ added in v0.2.2
func (n *OpenBazaarNode) ValidateOrderCompletion(contract *pb.RicardianContract) error
func (*OpenBazaarNode) ValidateOrderConfirmation ¶ added in v0.2.1
func (n *OpenBazaarNode) ValidateOrderConfirmation(contract *pb.RicardianContract, validateAddress bool) error
func (*OpenBazaarNode) ValidateOrderFulfillment ¶ added in v0.2.1
func (n *OpenBazaarNode) ValidateOrderFulfillment(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract) error
func (*OpenBazaarNode) ValidatePaymentAmount ¶ added in v0.4.0
func (n *OpenBazaarNode) ValidatePaymentAmount(requestedAmount, paymentAmount uint64) bool
func (*OpenBazaarNode) VerifySignatureOnDisputeOpen ¶ added in v0.3.0
func (n *OpenBazaarNode) VerifySignatureOnDisputeOpen(contract *pb.RicardianContract, peerID string) error
func (*OpenBazaarNode) VerifySignaturesOnRefund ¶ added in v0.2.1
func (n *OpenBazaarNode) VerifySignaturesOnRefund(contract *pb.RicardianContract) error
type OrderRatings ¶ added in v0.2.2
type OrderRatings struct { OrderId string `json:"orderId"` Ratings []RatingData `json:"ratings"` }
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 }