Documentation ¶
Index ¶
- Constants
- Variables
- func ExtraModeratorKeyFromReddemScript(redeemScript string) string
- type Images
- type OpenBazaarNode
- 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 []*spvwallet.TransactionRecord) error
- func (n *OpenBazaarNode) ConfirmOfflineOrder(contract *pb.RicardianContract, records []*spvwallet.TransactionRecord) error
- func (n *OpenBazaarNode) DeleteListing(slug string) error
- func (n *OpenBazaarNode) EncryptMessage(peerId peer.ID, message []byte) (ct []byte, rerr error)
- func (n *OpenBazaarNode) Follow(peerId string) error
- func (n *OpenBazaarNode) FulfillOrder(fulfillment *pb.OrderFulfillment, contract *pb.RicardianContract, ...) error
- func (n *OpenBazaarNode) GetListingCount() int
- func (n *OpenBazaarNode) GetListingFromHash(hash string) (*pb.RicardianContract, []*pb.Inventory, error)
- func (n *OpenBazaarNode) GetListingFromSlug(slug string) (*pb.RicardianContract, []*pb.Inventory, error)
- func (n *OpenBazaarNode) GetPeerStatus(peerId string) string
- func (n *OpenBazaarNode) GetProfile() (pb.Profile, error)
- func (n *OpenBazaarNode) IsFulfilled(contract *pb.RicardianContract) bool
- func (n *OpenBazaarNode) IsItemForSale(listing *pb.Listing) bool
- func (n *OpenBazaarNode) NewOrderConfirmation(contract *pb.RicardianContract, addressRequest bool) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) Purchase(data *PurchaseData) (orderId string, paymentAddress string, paymentAmount uint64, vendorOnline bool, ...)
- func (n *OpenBazaarNode) RefundOrder(contract *pb.RicardianContract, records []*spvwallet.TransactionRecord) error
- func (n *OpenBazaarNode) RejectOfflineOrder(contract *pb.RicardianContract, records []*spvwallet.TransactionRecord) error
- func (n *OpenBazaarNode) RemoveSelfAsModerator() error
- func (n *OpenBazaarNode) SeedNode() error
- func (n *OpenBazaarNode) SendCancel(peerId, orderId string) error
- func (n *OpenBazaarNode) SendOfflineAck(peerId string, pointerID peer.ID) error
- func (n *OpenBazaarNode) SendOfflineMessage(p peer.ID, m *pb.Message) error
- func (n *OpenBazaarNode) SendOrder(peerId string, contract *pb.RicardianContract) (resp *pb.Message, err error)
- func (n *OpenBazaarNode) SendOrderConfirmation(peerId string, contract *pb.RicardianContract) error
- func (n *OpenBazaarNode) SendOrderFulfillment(peerId string, 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) SetAvatarImages(base64ImageData string) (*Images, error)
- func (n *OpenBazaarNode) SetHeaderImages(base64ImageData string) (*Images, error)
- func (n *OpenBazaarNode) SetListingInventory(listing *pb.Listing, inventory []*pb.Inventory) error
- func (n *OpenBazaarNode) SetProductImages(base64ImageData, filename string) (*Images, error)
- func (n *OpenBazaarNode) SetSelfAsModerator(moderator *pb.Moderator) error
- func (n *OpenBazaarNode) SignListing(listing *pb.Listing) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) SignOrder(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) SignRefund(contract *pb.RicardianContract) (*pb.RicardianContract, error)
- func (n *OpenBazaarNode) Unfollow(peerId string) error
- func (n *OpenBazaarNode) UpdateFollow() error
- func (n *OpenBazaarNode) UpdateListingIndex(contract *pb.RicardianContract) error
- func (n *OpenBazaarNode) UpdateProfile(profile *pb.Profile) error
- func (n *OpenBazaarNode) ValidateDirectPaymentAddress(order *pb.Order) error
- func (n *OpenBazaarNode) ValidateModeratedPaymentAddress(order *pb.Order) error
- func (n *OpenBazaarNode) ValidateOrder(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) VerifySignaturesOnRefund(contract *pb.RicardianContract) error
- type PurchaseData
Constants ¶
const ( ListingVersion = 1 TitleMaxCharacters = 140 ShortDescriptionLength = 160 DescriptionMaxCharacters = 50000 MaxTags = 10 WordMaxCharacters = 40 SentanceMaxCharacters = 70 PolicyMaxCharacters = 10000 )
Variables ¶
var ModeratorPointerID multihash.Multihash
Functions ¶
func ExtraModeratorKeyFromReddemScript ¶ added in v0.2.1
Types ¶
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 []byte // Bitcoin wallet implementation Wallet bitcoin.BitcoinWallet // 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 blockchainIDs to OpenBazaar IDs Resolver *bstk.BlockstackClient // A service that periodically fetches and caches the bitcoin exchange rates ExchangeRates bitcoin.ExchangeRates // An optional gateway URL where we can crosspost data to ensure persistence CrosspostGateways []*url.URL }
var Node *OpenBazaarNode
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 []*spvwallet.TransactionRecord) error
func (*OpenBazaarNode) ConfirmOfflineOrder ¶ added in v0.2.0
func (n *OpenBazaarNode) ConfirmOfflineOrder(contract *pb.RicardianContract, records []*spvwallet.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) EncryptMessage ¶
func (n *OpenBazaarNode) EncryptMessage(peerId peer.ID, 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.
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 []*spvwallet.TransactionRecord) 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.RicardianContract, []*pb.Inventory, error)
func (*OpenBazaarNode) GetListingFromSlug ¶ added in v0.1.1
func (n *OpenBazaarNode) GetListingFromSlug(slug string) (*pb.RicardianContract, []*pb.Inventory, error)
func (*OpenBazaarNode) GetPeerStatus ¶
func (n *OpenBazaarNode) GetPeerStatus(peerId string) string
func (*OpenBazaarNode) GetProfile ¶
func (n *OpenBazaarNode) GetProfile() (pb.Profile, 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 a better way.
func (*OpenBazaarNode) NewOrderConfirmation ¶ added in v0.2.0
func (n *OpenBazaarNode) NewOrderConfirmation(contract *pb.RicardianContract, addressRequest bool) (*pb.RicardianContract, 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 []*spvwallet.TransactionRecord) error
func (*OpenBazaarNode) RejectOfflineOrder ¶ added in v0.2.0
func (n *OpenBazaarNode) RejectOfflineOrder(contract *pb.RicardianContract, records []*spvwallet.TransactionRecord) error
func (*OpenBazaarNode) RemoveSelfAsModerator ¶ added in v0.1.1
func (n *OpenBazaarNode) RemoveSelfAsModerator() error
func (*OpenBazaarNode) SeedNode ¶
func (n *OpenBazaarNode) SeedNode() error
Unpin the current node repo, re-add it, then publish to ipns
func (*OpenBazaarNode) SendCancel ¶ added in v0.2.0
func (n *OpenBazaarNode) SendCancel(peerId, orderId string) error
func (*OpenBazaarNode) SendOfflineAck ¶
func (n *OpenBazaarNode) SendOfflineAck(peerId string, pointerID peer.ID) error
func (*OpenBazaarNode) SendOfflineMessage ¶
func (*OpenBazaarNode) SendOrder ¶ added in v0.1.1
func (n *OpenBazaarNode) SendOrder(peerId string, contract *pb.RicardianContract) (resp *pb.Message, err 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, 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) SetAvatarImages ¶ added in v0.2.0
func (n *OpenBazaarNode) SetAvatarImages(base64ImageData string) (*Images, error)
func (*OpenBazaarNode) SetHeaderImages ¶ added in v0.2.0
func (n *OpenBazaarNode) SetHeaderImages(base64ImageData string) (*Images, error)
func (*OpenBazaarNode) 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) SetProductImages ¶ added in v0.2.0
func (n *OpenBazaarNode) SetProductImages(base64ImageData, filename string) (*Images, error)
func (*OpenBazaarNode) SetSelfAsModerator ¶ added in v0.1.1
func (n *OpenBazaarNode) SetSelfAsModerator(moderator *pb.Moderator) error
func (*OpenBazaarNode) SignListing ¶
func (n *OpenBazaarNode) SignListing(listing *pb.Listing) (*pb.RicardianContract, 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) 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) SignRefund ¶ added in v0.2.1
func (n *OpenBazaarNode) SignRefund(contract *pb.RicardianContract) (*pb.RicardianContract, error)
func (*OpenBazaarNode) Unfollow ¶
func (n *OpenBazaarNode) Unfollow(peerId string) error
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(contract *pb.RicardianContract) error
Update the index.json file in the listings directory
func (*OpenBazaarNode) UpdateProfile ¶
func (n *OpenBazaarNode) UpdateProfile(profile *pb.Profile) error
func (*OpenBazaarNode) ValidateDirectPaymentAddress ¶ added in v0.2.0
func (n *OpenBazaarNode) ValidateDirectPaymentAddress(order *pb.Order) error
func (*OpenBazaarNode) ValidateModeratedPaymentAddress ¶ added in v0.2.1
func (n *OpenBazaarNode) ValidateModeratedPaymentAddress(order *pb.Order) error
func (*OpenBazaarNode) ValidateOrder ¶ added in v0.2.0
func (n *OpenBazaarNode) ValidateOrder(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) VerifySignaturesOnRefund ¶ added in v0.2.1
func (n *OpenBazaarNode) VerifySignaturesOnRefund(contract *pb.RicardianContract) error
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"` AlternateContact string `json:"alternateContactInfo"` }