zgo-backend/CHANGELOG.md

7 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.9.0]

Added

  • Relational database model (DB.hs) version 0.1

[1.8.1]

Changed

  • Changed license to MIT
  • Updated to Haskell LTS 21.22
  • Update to new version of zcash-haskell

[1.8.0]

Added

  • Parser for Unified Addresses that validates the address
  • Tests for UA parsing from wallets
  • Function to scan new transactions using known viewing keys
  • Function to identify the owners and VKs needed for tx scans

Changed

  • Order endpoint updated to ensure orders belong to shop before adding to DB.
  • MongoDB driver updated to support MongoDB 6.
  • Full validation of Sapling addresses to parser.

Removed

  • api/orderx endpoint.
  • makeZcashCall function moved to the generic zcash-haskell library.
  • RpcResponse, RpcCall types moved to the generic zcash-haskell library.

[1.7.0]

Added

  • Parameter to config for number of confirmations for scan
  • Endpoint for language for invoices

Changed

  • Modified payment confirmation to use new WooCommerce plugin API endpoint.
  • Consolidated the invdata, orderid and orderx endpoints
  • The xerotoken endpoint uses session for authentication
  • The order by ID/token endpoint includes shop name

Fixed

  • The viewing key obfuscation of blank viewing keys

[1.6.0]

Added

  • New JSON serialization for WooTokens.
  • New /api/ownervk endpoint to save viewing keys
  • Use of zcash-haskell library to validate Sapling viewing keys

Changed

  • Modified the process of scanning for payments to only scan addresses that have an active ZGo session and have enabled payment confirmations
  • Modified the process to mark paid orders to ensure only payments to the shop's wallet get marked as paid
  • Modified the items endpoint to use the login session to identify records

[1.5.0] - 2023-05-15

Added

  • isUserValid function
  • New middleware to validated requests come from an existing user
  • New endpoint for the language data of the login page
  • New OwnerData to represent informational values
  • New OwnerSettings to abstract configuration settings for owners

Changed

  • Modified API tests to use session parameter.
  • Modified api/owner endpoint to use a specific data structure to create new owners
  • Modified api/owner endpoint to use session as input

[1.4.1] - 2023-05-02

Fixed

  • Correct potential node errors when saving viewing keys

[1.4.0] - 2023-05-02

Added

  • New type for Pro sessions
  • New functions to save and read Pro sessions from DB
  • New function to turn off Pro session

Fixed

  • Handling of potential failures of RPC calls to zcashd (#6).

[1.3.0] - 2023-03-16

Added

  • New type to handle UI translation objects
  • New endpoints for API to get/set translation
  • Tests for translation endpoints
  • Formal parser of ZGo-related tokens in memos

Changed

  • Remove old code for PIN generation
  • Xero reference field to include the amount of ZEC received
  • Separate periodic tasks from API server
  • Zcash transaction monitoring changed to use memo parser

Fixed

  • Xero token generation for brand new users

[1.2.5] - 2023-02-01

Fixed

  • Replaced the PIN generation with the cryptographically-secure crypto-rng.

[1.2.4] - 2023-01-30

Changed

  • Enhance payments to account for early payments on active sessions.

[1.2.3] - 2023-01-27

Changed

  • Implement BLAKE3 for PIN hashing.

[1.2.2] - 2023-01-25

Fixed

  • Corrected selection criteria for expiring owners query

[1.2.1] - 2023-01-24

Added

  • New configuration fields for SMTP

Fixed

  • Owner expiration query
  • Xero token expiration query

[1.2.0] - 2023-01-09

Added

  • New utility to refresh Xero tokens periodically.
  • New module for WooCommerce interaction.
  • New /auth endpoint to authenticate with the WooCommerce plugin and corresponding tests
  • New /woopayment endpoint to generate a new order from the WooCommerce plugin and corresponding tests
  • New /wootoken endpoint to generate a new token and query the token from the database.

Changed

  • Refactored code for requesting Xero tokens to make it reusable.
  • Changed API authentication to allow for endpoints that don't require an Authorization header to support the WooCommerce integration
  • Enhanced the on-chain order confirmation functionality to support WooCommerce integration and future integrations.

[1.1.1] - 2022-10-08

Changed

  • Refactored the api/owner POST endpoint.
  • Added logic to remove extra whitespace from viewing key strings

[1.1.0] - 2022-10-01

Added

  • Feature to record a payment when detected on-chain
  • Function to record a payment in Xero
  • Tests for Xero account code
  • Fields in XeroToken for Xero payment account code
  • Support for the YWallet memo format
  • API endpoint to request a Xero invoice
  • API endpoint to generate ZGo order from external invoice
  • Type XeroInvResponse
  • Type XeroInvoice
  • Type XeroToken
  • Type Xero
  • API endpoint to query Xero configuration
  • Field crmToken for Owner
  • Field externalInvoice and shortCode for Order

Changed

  • Improved error handling for API server
  • CoinGecko price feed to include New Zealand dollar (NZD)

[1.0.0] - 2022-07-27

Added

  • New functionality to read transactions for the given viewing keys
  • New functionality to mark orders as paid once payment is found on-chain
  • New Config type to house the configuration parameters
  • New field in Owner type to store toggle for payment confirmation
  • New field in Owner type to store viewing key

Changed

  • Added chronological sorting to list of orders
  • Added logic in /api/owner endpoint to validate viewing key before saving
  • Updated tests for /api/owner to account for invalid viewing keys
  • Added alphabetic sorting to list of items
  • Refactored code to use new Config type
  • Enhance decodeHexText to support Unicode
  • Enhance encodeHexText to support Unicode
  • Update tests for encode/decode of memos

Fixed

  • Fixed the PIN generation
  • Fixed calculation of order total to ensure 8 decimal places
  • Fixed test for looking for an order with incorrect ID
  • Fixed payment scan to focus only on new transactions

[0.1.0.2] - 2022-05-25

Added

  • Changelog
  • paid field in ZGoOrder type
  • Test for api/order/:id endpoint with an invalid ID

Fixed

  • Bug #1: crash when invalid ID was provided to api/order/:id

[0.1.0.1] - 2022-05-20

Added

  • Parametrized fullnode credentials

[0.1.0.0] - 2022-05-19

Added

  • BOSL license
  • API end points
    • Country
    • Block
    • Node address
    • User
    • Owner
    • Order
    • Item
  • Processing
    • Zcash transactions to ZGo items
    • Convert login memos to Users
    • Mark Owners as paid when payment is found on chain
    • Mark Owners as expired when expiration date is reached