Releases: BitcreditProtocol/Bitcredit-Core
Releases · BitcreditProtocol/Bitcredit-Core
v0.5.0
v0.4.13
- Document versioning scheme
- Rework WASM API to return
TSResult<T> = { Success: T } | { Error: JsErrorData }without triggering exceptions - Rework
sumandcurrencyinto a coherentSumtype 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
borshfor serialization on our side - Add strong types for
SchnorrSignature,Sha256Hash,BlockId,Filetypes,Minttypes and usePublicKeyandSecretKeyin protocol types (breaking DB change) - Use bytes without encoding for bill data (breaking DB change)
- Fix plaintext-chain rendering - the nesting of
datanow works properly and oneJSON.parsecall is enough (breaking API change) - Add
IdentityTypetoIdentityCreateBlockDataandIdentityUpdateBlockData - Remove
BackupServiceandBackupStoresince 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
protocolparts fromapplicationinbcr-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_proofAPI 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_identityanddeanonymizeto require a confirmed email for identified users - Add endpoints to
confirm,verifyan email address and toget_email_confirmations - Adapt
IdentityProofBlock to include the email confirmation signed by the mint - Split up
update_identityandupdate_emailfor identity and create identity proof block on email update - Change flow for company creation to first call
create_company_keysto get a key pair and node id, then confirm email of creator, then create company- Add
emailto signatory and use a data structure for signatories (breaking API and DB change)
- Add
- Adapt signatory handling for companies
- API for inviting signatories
- API to accept/reject company invites
- Restructured company persistence -
companytable 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_proofto bill block data and verify it
- Add Contact Handshake
Version: v0.4.13
v0.4.12
- Added
actionstoBitcreditBillResult, withbill_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 seedwhere the Nostr client wasn't connected properly - Upgrade
bcr-commonto 0.5.0
Version: v0.4.12
v0.4.11-hotfix
- Fix
restore from seedwhere the Nostr client wasn't connected properly
Version: v0.4.11-hotfix
v0.4.11
- 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
- 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
languagefrom bills (breaking DB change) - added
Countrytype that validates against a list of valid countries (breaking DB change)
- removed
- Change config url values to
url::Url - Print bech32 npub at startup
- Use strongly typed
url::Urlfor 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
- 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_urlto 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)
recourserwent fromBillIdentParticipanttoBillParticipant
- Added endpoints
identityApi.dev_mode_get_full_identity_chain()andcompanyApi.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_endorseesis 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 withbcr-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.searchcall, where callers can search and filter for contacts from contact book, logical, or both
- Added a
Version: v0.4.9
v0.4.8
- Fix reject block propagation
- Add
last_block_timetoLightBitcreditBillResult
Version: v0.4.8
v0.4.7
- 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[]>onBillapi - 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) }; })
- Endpoint:
- Can be activated using the config flag
Version: v0.4.7
v0.4.6
- 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
endorsementsendpoint, making sure all endorsees (also anon) are displayed (breaking for API because of the return type) - Add
last_block_timetostatusofBitcreditBillResult(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