InventoryPurchase inventory.purchase@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
inventory
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/inventory/purchase.v1.json

Universal wallet: inventory.purchase. Personal bearer reads and purchases; server-side reviewed prices.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
  • pattern ^isp_[0-9A-HJKMNP-TV-Z]{26}$
subjectstringyes
  • pattern ^usr_[0-9A-HJKMNP-TV-Z]{26}$
item_idstringyes
  • pattern ^itd_[0-9A-HJKMNP-TV-Z]{26}$
namestringyes
issuerstringyes
currencyenumyes
  • one of "vibes", "coins"
amountintegeryes
  • minimum 1
  • maximum 9007199254740991
statusenumyes
  • one of "pending", "fulfilled"
instance_idone ofyes
payment_idstring | nullyes

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: example
{
  "id": "isp_00000000000000000000000001",
  "subject": "usr_00000000000000000000000001",
  "item_id": "itd_00000000000000000000000001",
  "name": "Rainbow",
  "issuer": "service:live",
  "currency": "vibes",
  "amount": 50,
  "status": "pending",
  "instance_id": null,
  "payment_id": null
}
Rejected: invalid-value
{
  "id": "isp_00000000000000000000000001",
  "subject": "usr_00000000000000000000000001",
  "item_id": "itd_00000000000000000000000001",
  "name": "Rainbow",
  "issuer": "service:live",
  "currency": "vibes",
  "amount": 0,
  "status": "pending",
  "instance_id": null,
  "payment_id": null
}
Rejected: missing
{}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('inventory.purchase@1', value);   // { valid, errors: [{ path, message }] }