Skip to content

Releases: BitcreditProtocol/Bitcredit-Core

v0.5.0

09 Dec 10:12
b16d144

Choose a tag to compare

  • Stabilise Identity Proof Implementation

Version: v0.5.0

v0.4.13

27 Nov 11:26
be64b4f

Choose a tag to compare

  • Document versioning scheme
  • Rework WASM API to return TSResult<T> = { Success: T } | { Error: JsErrorData } without triggering exceptions
  • Rework sum and currency into a coherent Sum type that's ready for multi-currency and exchange rates (breaking DB change)
  • Refactor the transport layer to distinguish between protocol and the rest and to use borsh for serialization on our side
  • Add strong types for SchnorrSignature, Sha256Hash, BlockId, File types, Mint types and use PublicKey and SecretKey in protocol types (breaking DB change)
  • Use bytes without encoding for bill data (breaking DB change)
  • Fix plaintext-chain rendering - the nesting of data now works properly and one JSON.parse call is enough (breaking API change)
  • Add IdentityType to IdentityCreateBlockData and IdentityUpdateBlockData
  • Remove BackupService and BackupStore since it's unused
  • Remove file-based FileUpload - we use surreal/nostr-based everywhere
  • Refactoring & Restructuring, removing cross-crate exports (breaking for Library dependents)
  • Properly separate protocol parts from application in bcr-ebill-core (breaking for Library dependents, breaking DB change)
  • Remove email from anon identities and contacts
  • Change document max file size to 10 MB and max files on bill to 20
  • Add request deadlines to BillHistoryBlock
  • Remove identity_proof API and adapt and move to new email confirmation API
  • Add dev mode flag disable_mandatory_email_confirmations, to make it easier for testing
  • Identity Confirmation via Email
    • Add persistence
    • Adapt create_identity and deanonymize to require a confirmed email for identified users
    • Add endpoints to confirm, verify an email address and to get_email_confirmations
    • Adapt IdentityProof Block to include the email confirmation signed by the mint
    • Split up update_identity and update_email for identity and create identity proof block on email update
    • Change flow for company creation to first call create_company_keys to get a key pair and node id, then confirm email of creator, then create company
      • Add email to signatory and use a data structure for signatories (breaking API and DB change)
    • Adapt signatory handling for companies
      • API for inviting signatories
      • API to accept/reject company invites
      • Restructured company persistence - company table is now a cache, calculated from the chain (similar to bills)
      • Added possibility to locally hide past invites
    • Add notification when being invited to a company
    • Add signer_identity_proof to bill block data and verify it
  • Add Contact Handshake

Version: v0.4.13

v0.4.12

22 Oct 09:16
81358df

Choose a tag to compare

  • Added actions to BitcreditBillResult, with bill_actions, that are calculated based on which bill actions the caller is currently allowed to do (breaking DB and API change)
  • Fix an edge case for request to recourse if the payer == holder - they should not have past endorsees and if the payer is a contingent holder, they should not show up in past endorsees
  • Fix TS types for urls
  • Fix restore from seed where the Nostr client wasn't connected properly
  • Upgrade bcr-common to 0.5.0

Version: v0.4.12

v0.4.11-hotfix

22 Oct 07:38
7884a78

Choose a tag to compare

  • Fix restore from seed where the Nostr client wasn't connected properly

Version: v0.4.11-hotfix

v0.4.11

16 Oct 08:39
86cc2cd

Choose a tag to compare

  • Fix a bug where it was possible to reject recourse, even though it was already rejected
  • Fixed an issue where it could happen that identity and company contacts weren't propagated to Nostr, leading to block propagation inconsistencies
  • Fail with an error, if we have to connect to Nostr, but the client is not connected

Version: v0.4.11

v0.4.10

13 Oct 15:39
a5ae89b

Choose a tag to compare

  • Recoursee in a request to recourse does not have to be in the contact book anymore
  • Add explicit deadlines for the following actions (breaking API and DB change)
    • Request to Accept (acceptance_deadline) - min. 48 hours after block timestamp (UTC end of day)
    • Request to Pay (payment_deadline) - min. 48 hours after block timestamp (UTC end of day)
    • Request to Recourse (recourse_deadline) - min. 48 hours after block timestamp (UTC end of day)
    • Offer to Sell (buying_deadline) - min. UTC end of day of the block timestamp
  • Add basic input validation and sanitization
    • removed language from bills (breaking DB change)
    • added Country type that validates against a list of valid countries (breaking DB change)
  • Change config url values to url::Url
  • Print bech32 npub at startup
  • Use strongly typed url::Url for nostr relays
  • Use strong types for Date, Name, City, Address, Zip, Country, Identification, Email (breaking API change)
  • Re-Fetch Identity and Company chain endpoints
  • Add endpoint to fetch bill history billApi.bill_history(bill_id)
  • Fixed a bug where an anon user could request to recourse, but not actually do the recourse

Version: v0.4.10

v0.4.9

02 Oct 14:52
591b77c

Choose a tag to compare

  • Identity Proof now requests URLs via nostr-relay HTTP proxy
  • Added identity and company blocks for identity proofs (breaking DB change)
  • Add job to regularly check identity proofs
  • Add default_court_url to config and add API to share a bill with a court
  • Add API to share company and identity details with an external party
  • Removed the concept of an Authorized Signer
  • Fix it so that Anon holders of a bill can do recourse (breaking DB and API change)
    • recourser went from BillIdentParticipant to BillParticipant
  • Added endpoints identityApi.dev_mode_get_full_identity_chain() and companyApi.dev_mode_get_full_company_chain(company_id) to show the full identity and company chains as JSON in dev mode
  • Fixed request to recourse validation
    • The bill is not blocked, if a req to recourse expired, or was rejected
    • It's now possible to recourse against the same person again
    • The last person in the chain can now reject a recourse (was broken before)
    • get_past_endorsees is calculated differently now - holders can only recourse against parties before the first block where they became a holder in the bill, even if they have multiple endorsement blocks in the bill
  • Cleanup deps, replace bcr-wdc-* deps with bcr-common, improve Github workflows
  • Implement the concept of logical contacts, which combine nostr contacts and contacts from the contact book (breaking DB change)
    • Added a contactApi.search call, where callers can search and filter for contacts from contact book, logical, or both

Version: v0.4.9

v0.4.8

17 Sep 11:00
90e61f6

Choose a tag to compare

  • Fix reject block propagation
  • Add last_block_time to LightBitcreditBillResult

Version: v0.4.8

v0.4.7

16 Sep 11:15
24b6a96

Choose a tag to compare

  • Added basic Dev Mode
    • Can be activated using the config flag dev_mode: true
    • If activated, it's possible to fetch a full JSON Bill Chain by ID with the bill data decrypted for debugging
      • Endpoint: dev_mode_get_full_bill_chain(bill_id: string): Promise<string[]> on Bill api
      • The resulting nested list of JSON strings can be consumed like this:
      await billApi.dev_mode_get_full_bill_chain(bill_id).map((b) => {
        const block = JSON.parse(b);
        return { ...block, data: JSON.parse(block.data) };
      })

Version: v0.4.7

v0.4.6

16 Sep 07:35
cef1114

Choose a tag to compare

  • Add basic logic for implementing (social) identity proofs
  • Add persistence, basic service layer and WASM API for identity proofs
  • Fix block propagation inconsistencies with company identities
  • Changed default relay to wss://bcr-relay-dev.minibill.tech
  • Change endorsements endpoint, making sure all endorsees (also anon) are displayed (breaking for API because of the return type)
  • Add last_block_time to status of BitcreditBillResult (breaking DB and API), so bill responses can be ordered by their last change
  • For the balance endpoint, don't add to contingency, if the current user is only in the guarantee chain as an anon endorsee (breaking DB change)

Version: v0.4.6