Skip to content

Releases: BitcreditProtocol/Bitcredit-Core

v0.3.17

23 Jun 11:49
4d87c6a
Compare
Choose a tag to compare
  • Changed minted proofs token format from cashu Token v3 to BitcrB (v4)
  • Use NodeId, PublicKey, SecretKey and BillId types internally instead of strings (fully breaking)
    • This breaks all existing databases, since the node ids and bill ids now have the format prefix|network|pubkey- example: bitcrt03f9f94d1fdc2090d46f3524807e3f58618c36988e69577d70d5d4d1e9e9645a4f
    • The prefix is bitcr
    • The network character is as follows:
      • m => Mainnet
      • t => Testnet
      • T => Testnet4
      • r => Regtest
    • The pubkey is a stringified secp256k1 public key
    • Existing apps need to a.) delete their IndexedDB and b.) their localhost (because the mint ID might be in there)
  • Removed NodeId trait and replaced it with a concrete method on the corresponding types (breaking API change)
  • Rename BillId TS type to BillIdResponse (breaking TS type)

Version: v0.3.17

v0.3.16

12 Jun 12:55
36133f4
Compare
Choose a tag to compare
  • Set the BTC network in the identity and check, if the persisted network is the same as the one configured in the application, failing if it doesn't.
  • Nostr npub as primary key in Nostr contacts (breaking DB change)
  • Add default mint to nostr contacts as default, so it doesn't have to be added to contacts anymore

Version: v0.3.16

v0.3.15-hotfix1

11 Jun 15:23
bb017fc
Compare
Choose a tag to compare
  • Fix Bill Caching issue between multiple identities

Version: v0.3.15-hotfix1

v0.3.15

06 Jun 12:16
2b74b2e
Compare
Choose a tag to compare
  • Upload and download files to and from Nostr using Blossom
    • Add nostr_hash to File (breaking DB change)
  • Fix MintRequestResponse return type
  • Bill Caching for multiple identities (breaking DB change)

Version: v0.3.15

v0.3.14

30 May 12:15
8af80b8
Compare
Choose a tag to compare
  • Minting
    • Added notifications and offers
    • Added timestamps for status
    • Call mint endpoint for cancelling
    • Use mint nostr relays from network and fall back to identity ones
    • Add endpoints to accept, or reject an offer from a mint
    • Add logic to check keyset info, mint and create proofs
    • Add logic to recover proofs if something goes wrong
    • Add logic to check if proofs were spent

Version: v0.3.14

v0.3.13

26 May 13:52
72d938b
Compare
Choose a tag to compare
  • Minting
    • Add default mint configuration options
      • default_mint_url
      • default_mint_node_id
    • Implement request_to_mint
    • Add minting status flag to bill
    • Add endpoint to fetch minting status for a bill
    • Add logic for checking mint request status on the mint
    • Add cronjob to check mint requests
    • Add endpoint to cancel mint requests
  • Change bitcoin addresses and descriptor to p2wpkh
  • Suppress logging from crates we don't control

Version: v0.3.13

v0.3.12

19 May 08:34
46a789b
Compare
Choose a tag to compare
  • impl Default for BillParticipant and BillAnonParticipant
  • Expose Receiver type for the PushApi trait
  • Fix SurrealDB Memory leak for WASM

Version: v0.3.12

v0.3.11

13 May 08:29
699bac2
Compare
Choose a tag to compare
  • Add LICENSE to crates
  • Remove the bcr-ebill-web crate
  • Use a list of Nostr relays everywhere, instead of a single one, including in the config
  • Add Blank Endorse Bill data model implementation
    • Rename IdentityPublicData to BillIdentParticipant
      • same for LightIdentityPublicData
    • Introduce the concept of BillParticipant, with the variants Ident and Anon
      • Anon includes a BillAnonParticipant
      • Ident includes a BillIdentParticipant
    • Use BillParticipant in parts of the bill where a participant can be anonymous
  • Add the possibility to add anonymous contacts
    • They only have Node Id, Name and E-Mail as fields
    • E-Mail is optional
    • This changes the data model for contacts, email and postal_address are now optional
      • Additional validation rules ensure the fields can only be set for non-anon contacts
    • Adds an endpoint Api.contact().deanonymize() to de-anonymize a contact by adding all necessary fields for a personal, or company contact
      • It takes the same payload as creating a contact and fails for non-anon contacts
  • Add the possibility to add an anonymous identity
    • They only have Node Id, (nick)name and E-Mail as fields
    • E-Mail is optional
    • Adds an endpoint Api.identity().deanonymize() to de-anonymize an identity by adding all necessary fields for a personal identity
      • It takes the same payload as creating an identity and fails for a non-anon identity
    • Anon identity can't issue bills, or create a company
  • Add the possibility to issue and endorse blank
    • New Api.bill() methods for blank endorsements
      • issue_blank
      • offer_to_sell_blank
      • endorse_bill_blank
      • mint_bill_blank
    • Can issue (non-self-drafted) blank bills (payee is anon)
    • Can endorse/mint/offer to sell to anon endorsee/mint/buyer
    • If caller of a bill action is anonymous in the bill, any action they take stay anonymous (e.g. endorse)
  • Add endpoint to check payment for singular bill
    • Api.bill().check_payment_for_bill(id)
  • Fix TS type for identity detail
  • Return identity on create and deanonymize identity for consistency

Version: v0.3.11

v0.3.10

08 May 11:14
c516805
Compare
Choose a tag to compare
  • Change default testnet block explorer to https://esplora.minibill.tech
  • Add LICENSE to npm package
  • Reduce size of the WASM binary
  • Fix a small issue, where bills were recalculated instead of taken from cache, once their payment/sell/recourse/accept requests expired
  • Change behaviour of request to pay
    • it's now possible to req to pay before the maturity date
    • The actual payment expiry still only happens 2 workdays after the end of the maturity date,
      or end of the req to pay end of day if that was after the maturity date
    • the request_to_pay_timed_out flag is set after payment expired, not after the req to pay expired
    • The waiting state for payment is only active during the req to pay (while it's blocked)
      • Afterwards, the bill is not blocked anymore, can still be rejected to pay and paid
      • But recourse is only possible after the payment expired (after maturity date)
    • An expired req to pay, which expired before the maturity date does not show up in past_payments

Version: v0.3.10

v0.3.9

30 Apr 14:22
fe9f29d
Compare
Choose a tag to compare
  • Add possibility to use a local regtest esplora setup for payment

Version: v0.3.9