- Removed the options for launchStartUp
- private-key is on lock mode by default
- Added utility functions that uses private-key without entering password in .user
.sign(message): signs message
.decrypt(data): decrypts ciphertext in asymmetric
.encipher(message): encrypts message in symmetric
.decipher(data): decrypts ciphertext in symmetric
floCrypto.validateAddr: validate any blockchain address
- Parameters:
1. address - address to validate
2. std - checks for legacy version (optional, default=true) (true: allow any, array: list of versions, value: one version only, false: allow none)
3. bech - checks for bech version (optional, default=false) (true: allow any, array: list of versions, value: one version only, false: allow none)
- For validating only floID, use floCrypto.validateFloID(floID)
- Store AES-encrypted private key in memory. (exploring memory of browser will not have raw private key)
- floDapps lock/unlock (in user): locks or unlock the private key (ie, lock= Password required, unlock= password not required in returning private key)
- floDapps.launchStartUp now accepts options object
- to lock the private key on startup, pass {lock_key: true} in options objects of launchStartUp
sendTx:
- check total balance before processing utxos
- reject "Insufficient FLO: Some UTXOs are unconfirmed" when balance is there but some utxo are used/unconfimed
- Removed default values from floGlobals
- Default values are now in their respective modules
- The following properties of floGlobals can be use to override the default values of respective modules: apiURL, sendAmt, fee, tokenURL, currency, SNStorageID
- Default/current values can be obtained from each module with getter properties
- Some current values can be set with setter properties
- The containers for appObjects, generalData, lastVC are now in floCloudAPI module. Also automatically adds get/set properties for them in floGlobals. Thus can be accessed from floGlobals as before
- Token Operator to send/receive tokens via blockchain using token system API
floBlockchainAPI v2.3.1
- Added options parameter to writeData . Options can have the following properties:
. strict_utxo : passes strict_utxo parameter to sendTx (Default: true)
. sendAmt : amount of FLO to send (Default: floGlobals.sendAmt)
- Refresh the blockchain data atleast once every 1 hour.
- If regular countdown (based on requests) occurs, then automatically reset the blockchain-refresh timer.
- Renamed standard_Operations.html to index.html
- Fixed some minor bugs in floCloudAPI
- Added: floCrypto.validateFloID (alias for floCrypto.validateAddr)
floBlockchainAPI v2.2.1a
- Minor bug fixed: Out of bound index when handling unconfirmed transactions in readData
floCloudAPI v2.1.3
- fetching object-data will now properly check for correct object when updating in local and ignores vc that have been parsed previously
- fetching general-data will now use afterTime instead of lowerVectorClock (thus, any change in tag/note is reflected in it).
. existing apps will automatically change the stored lastVC of generalData to respective afterTime value
- Fixed: objectifier not called on singleRequests for objectData and generalData
(Bug fixes)
floBlockchainAPI v2.2.1
- Fixed: Unconfirmed transaction (propably dropped) causing new transaction not to be read in readData
floCloudAPI v2.1.2a
- Fixed: singleRequest not returning response correctly
- Fixed: afterTime optional parameter not added in requests
- Fixed: setStatus and requestStatus not working
- Fixed: processIncomingData throwing error when using POST request
- Fixed: tag/note data not working properly (getData returns an array, thus need to use result[0])
- Adding data, tag, note will return the entire data (ie, all columns) to user
- Fixed: a minor syntax bug in DB.getData
- Fixed: mostRecent option not giving the last record correctly
Added support for status feature
1. setStatus(options): set status as online for myFloID
2. requestStatus(trackList, options) : request status of floID(s) in trackList
- Both uses websocket connection
- resolves a reqID (local) that can be used in closeRequest function
- Use callback parameter in options to use the response from cloud
Added support for note feature
1. noteApplicationData(vectorClock, note): add/edit a note for a data in cloud
- Only allows receiverID of the data to add/edit note
- subAdmin can use it as exception, when receiverID is adminID
Other changes
- Fixed issues of tagApplicationData (previously markApplicationData) not working.
- Fixed issue where senderID option not working correctly in requesting data from cloud (new cloud uses 'senderID' parameter for both array of floIDs or a single floID)
*NOTE: change senderIDs to senderID in apps if any*
- if afterTime parameter is passed in request, any data changed (tag, note) after given time is returned. (afterTime also combines with other condition parameters).
- Request data now return all columns from the table
Added new feature 'Note':
- Receivers can add a tiny note to data received.
- For data received by adminID of authorised app, subAdmins will also be able to add/edit note
Improved Invalid error and Internal error feedback:
- Only Invalid errors are relayed to user ( Invalid error code: 400).
- Internal errors caused just indicate 'unable to process request' to user (Internal error code: 500)
Other changes:
- Processing Tag will now check application from data stored. application parameter is not required (Signature will require vectorClock instead of application).
- Fixed bug: clear-authorized-data using incorrect floID values
- MarkApplicationData not working correctly when Array is passed
- Marking data should fetch to data's receiverID supernode
- findDiff and mergeDiff moved to bottom of floCloudAPI tag