Dero Web Wallet derosuite. This repo contains changes required for webwallet. With this changes any Dero daemon can become web wallet. All changes are related to daemon rpc server and wallet to make it light and faster.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
3.5KB

  1. // Copyright 2017-2018 DERO Project. All rights reserved.
  2. // Use of this source code in any form is governed by RESEARCH license.
  3. // license can be found in the LICENSE file.
  4. // GPG: 0F39 E425 8C65 3947 702A 8234 08B2 0360 A03A 9DE8
  5. //
  6. //
  7. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
  8. // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  9. // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
  10. // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  11. // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  12. // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  13. // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  14. // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  15. // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16. package storage
  17. /*type DB struct {
  18. TX interface{} // actual TX object
  19. }*/
  20. // complete transactional support for improved reliability
  21. // TODO do we need to support isolation level ?????
  22. type DBTX interface {
  23. // Begin(bool) // whether to create a writable tx or readable tx
  24. Commit() error // commit all writes persistantly
  25. Rollback() // Rollback all changes since last commit
  26. Sync() // sync the data
  27. StoreObject(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte, data []byte) error // store object to a specific universe
  28. LoadObject(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte) ([]byte, error) // load object from a specific universe
  29. // LoadObjects(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte) ([][]byte, [][]byte, error) // load all key values for specific bucket
  30. StoreUint64(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte, data uint64) error // store
  31. LoadUint64(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte) (uint64, error) // load object
  32. // CreateBucket(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte) error // creates an object bucket
  33. }
  34. type Store interface {
  35. Init(param map[string]interface{}) error // init the backend and connect to it
  36. Shutdown() error // shutdown the backend
  37. BeginTX(bool) (DBTX, error) // actual TX object to interact with DB
  38. /*
  39. Commit() // commit all writes persistantly
  40. Rollback() // Rollback all changes since last commit
  41. Sync() // sync the data
  42. StoreObject(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte, data []byte) error // store object to a specific universe
  43. LoadObject(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte) ([]byte, error) // load object from a specific universe
  44. LoadObjects(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte) ([][]byte, [][]byte, error) // load all key values for specific bucket
  45. StoreUint64(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte, data uint64) error // store
  46. LoadUint64(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte, key []byte) (uint64, error) // load object
  47. CreateBucket(universe_bucket []byte, galaxy_bucket []byte, solar_bucket []byte) error // creates an object bucket
  48. */
  49. }
  50. //var Store Backend_Store// the system shouls chooose a backend at start Time