Git Product home page Git Product logo

vessel's Introduction

version issues license downloads

Vessel - Hive Desktop Wallet

Vessel is a lite wallet for the Hive blockchain that you can run on your desktop computer without needing to run the blockchain itself.

This is experimental and messy software at the moment, please use with caution.

Updates

Questions or ideas?

We have a chainBB forum (powered by the Hive blockchain) running here:

https://chainbb.com/f/vessel

This forum will serve as the primary point of discussion for the Vessel desktop wallet.

Support this App

This project has no monetization features and is supported by donations from the community. If you'd like to donate, feel free to use one of the following methods:

No Support & No Warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

vessel's People

Contributors

aaroncox avatar augustol avatar netuoso avatar zinovi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vessel's Issues

Auto-claim Rewards every X interval (configurable)

It'd be nice if Vessel could automatically claim rewards for each account in the wallet.

The current hurdle is that if the keys are encrypted, nothing can be automatic, as it needs the user's password to decrypt and broadcast the transaction.

Notes on how to solve this:

  • Rework the key management system to only encrypt owner/active keys, leaving the posting key unencrypted.
  • Allow the import of multiple keys per account, much like the new memo key import works.
  • Add a configuration setting for "claim every X hours", default to like 12.
  • Run a background task that fires on that interval, issuing the claim rewards operation for the maximum amount (if a balance exists).

Manual input for SP delegation

Now, SP delegation is using slide bar only. But often people need to clearly set the number, e.g. 100 MVESTS. Can you add manual input box for delegation?

Catch exceptions when undelegating

Some users are experiencing issues when trying to undelegate SP from an account in which they've delegated all the SP from (leaving 0 bandwidth for the undelegation operation). Add some sort of error that indicates why they aren't able to undelegate it, and that they'll need to add some SP to the account performing the operation to allow it.

OSX error with open 'SP Delegation' page

i'm uss vessel on macOS Sierra 10.12.5.
and update 0.0.5 version vessel to 0.0.6 with replace application file.

and, open account tab, click SP Deleation menu. but page does not change.
i see below error in developer tool.

Uncaught TypeError: Cannot read property '$username' of undefined
    at Le.map (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:1:21596)
    at Array.map (native)
    at je.render (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:1:21504)
    at me._renderValidatedComponentWithoutOwnerOrContext (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:64123)
    at me._renderValidatedComponent (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:64260)
    at me.performInitialMount (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:59801)
    at me.mountComponent (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:58769)
    at Object.mountComponent (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:116075)
    at Object.updateChildren (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:54754)
    at pe._reconcilerUpdateChildren (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:111429)
    at pe._updateChildren (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:112272)
    at pe.updateChildren (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:112160)
    at pe._updateDOMChildren (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:77961)
    at pe.updateComponent (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:76064)
    at pe.receiveComponent (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:75576)
    at Object.receiveComponent (file:///Applications/Vessel.app/Contents/Resources/app.asar/dist/bundle.js:16:116513)
Le.map @ bundle.js:formatted:1054
render @ bundle.js:formatted:1052
_renderValidatedComponentWithoutOwnerOrContext @ bundle.js:formatted:72367
_renderValidatedComponent @ bundle.js:formatted:72376
performInitialMount @ bundle.js:formatted:72221
mountComponent @ bundle.js:formatted:72189
mountComponent @ bundle.js:formatted:74520
updateChildren @ bundle.js:formatted:72045
_reconcilerUpdateChildren @ bundle.js:formatted:74319
_updateChildren @ bundle.js:formatted:74360
updateChildren @ bundle.js:formatted:74354
_updateDOMChildren @ bundle.js:formatted:72898
updateComponent @ bundle.js:formatted:72837
receiveComponent @ bundle.js:formatted:72813
receiveComponent @ bundle.js:formatted:74539
_updateRenderedComponent @ bundle.js:formatted:72350
_performComponentUpdate @ bundle.js:formatted:72341
updateComponent @ bundle.js:formatted:72309
receiveComponent @ bundle.js:formatted:72288
receiveComponent @ bundle.js:formatted:74539
_updateRenderedComponent @ bundle.js:formatted:72350
_performComponentUpdate @ bundle.js:formatted:72341
updateComponent @ bundle.js:formatted:72309
performUpdateIfNecessary @ bundle.js:formatted:72291
performUpdateIfNecessary @ bundle.js:formatted:74546
oe @ bundle.js:formatted:74766
perform @ bundle.js:formatted:75713
perform @ bundle.js:formatted:75713
perform @ bundle.js:formatted:74819
xe @ bundle.js:formatted:74827
closeAll @ bundle.js:formatted:75749
perform @ bundle.js:formatted:75722
batchedUpdates @ bundle.js:formatted:73681
batchedUpdates @ bundle.js:formatted:74843
dispatchEvent @ bundle.js:formatted:73863
bundle.js:formatted:110008 action ACCOUNT_DATA_UPDATE_PENDING @ 14:50:38.683
bundle.js:formatted:110008 action ACCOUNT_DATA_UPDATE @ 14:50:39.036
bundle.js:formatted:74526Uncaught TypeError: Cannot read property 'getHostNode' of null
    at Object.getHostNode (bundle.js:formatted:74526)
    at me.getHostNode (bundle.js:formatted:72230)
    at Object.getHostNode (bundle.js:formatted:74526)
    at Object.updateChildren (bundle.js:formatted:72041)
    at pe._reconcilerUpdateChildren (bundle.js:formatted:74319)
    at pe._updateChildren (bundle.js:formatted:74360)
    at pe.updateChildren (bundle.js:formatted:74354)
    at pe._updateDOMChildren (bundle.js:formatted:72898)
    at pe.updateComponent (bundle.js:formatted:72837)
    at pe.receiveComponent (bundle.js:formatted:72813)
    at Object.receiveComponent (bundle.js:formatted:74539)
    at me._updateRenderedComponent (bundle.js:formatted:72350)
    at me._performComponentUpdate (bundle.js:formatted:72341)
    at me.updateComponent (bundle.js:formatted:72309)
    at me.receiveComponent (bundle.js:formatted:72288)
    at Object.receiveComponent (bundle.js:formatted:74539)

add a wallet backup/restore feature

It would be great to have a backup tool, which would backup all of the accounts + keys currently stored in the wallet, saving it to a password encrypted file.

Backup:

  • Export all keys within the wallet to JSON
  • Prompt user for a password for the backup
  • Encrypt the JSON with the password
  • Save encrypted file to users computer

Restore:

  • Prompt for file location
  • Prompt for password related to backup
  • Decrypt the JSON with the password
  • Import all accounts from the backup to the wallet and allow for encrypting within the wallet.

Heroku fails to build vessel (Desktop wallet for steem blockchain)

Heroku is a platform as a service (PAAS) that lets you deploy apps online. It is an amazing service which is very popular and free for light use.

I tried to deploy the vessel wallet for steam through heroku. The build failed. I will first explain simple step by step procedure to replicate the problem and then I will share the build log.

This is how you duplicate the problem:

  1. Clone the github repository into your own repository.
    Screen Shot 2017-11-09 at 12.59.31 AM.png

  2. Login to your heroku account. If you don't have an account create one. It is an almost instantaneous process. You will only need to verify your email.

  3. Click on New and then select Create an app.
    Screen Shot 2017-11-09 at 1.01.57 AM.png

  4. Give the app any name. I will name it vesselwallet (vessel name is unavailable). Then click on Create app.
    Screen Shot 2017-11-09 at 1.08.44 AM.png

4.Page, as shown below, appears. Dont choose any pipeline. Choose github as deployment method.
Screen Shot 2017-11-09 at 1.13.25 AM.png

  1. Select your cloned repository. A message as shown below will be displayed which tells you that your github repository has been sucessfully connected.
    Screen Shot 2017-11-09 at 1.18.49 AM.png

  2. In Manual Deployment, just select deploy branch.

  3. The app build fails with log:

-----> Node.js app detected
-----> Creating runtime environment
       
       NPM_CONFIG_LOGLEVEL=error
       NPM_CONFIG_PRODUCTION=true
       NODE_VERBOSE=false
       NODE_ENV=production
       NODE_MODULES_CACHE=true
-----> Installing binaries
       engines.node (package.json):  unspecified
       engines.npm (package.json):   unspecified (use default)
       engines.yarn (package.json):  unspecified (use default)
       
       Resolving node version 6.x...
       Downloading and installing node 6.12.0...
       Using default npm version: 3.10.10
       Resolving yarn version 0.28.4...
       Downloading and installing yarn (0.28.4)...
       Installed yarn 0.28.4
-----> Restoring cache
       Skipping cache restore (not-found)
-----> Building dependencies
       Installing node modules (yarn.lock)
       yarn install v0.28.4
       [1/4] Resolving packages...
       error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`.
       info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
-----> Build failed
 !     Outdated Yarn lockfile
       Your application contains a Yarn lockfile (yarn.lock) which does not
       match the dependencies in package.json. This can happen if you use npm
       to install or update a dependency instead of Yarn.
       Please run the following command in your application directory and check
       in the new yarn.lock file:
       $ yarn install
       $ git add yarn.lock
       $ git commit -m "Updated Yarn lockfile"
       $ git push heroku master
    
       https://kb.heroku.com/why-is-my-node-js-build-failing-because-of-an-outdated-yarn-lockfile
 !     Push rejected, failed to compile Node.js app.
 !     Push failed

Thanks You.



Open Source Contribution posted via Utopian.io

SBD Conversion

Add the ability for users to convert SBD to STEEM and see pending operations

Attempting to create new account fails with error message 'Insufficient Delegation'.

I've tried creating an account several times. My account has 203 liquid steem at the time of account creation attempt. I can't understand what the issue is.

current_delegation >= target_delegation: Inssufficient Delegation 61759.461351 VESTS required, 61759.461350 VESTS provided. account_creation_fee=0.200 STEEM o.fee=0.200 STEEM o.delegation=59700.812639 VESTS

Spacing issue in memo

It seems that vessel automatically remove space at the end of the box. But usually space is typed at the end while writing a sentence. So auto-removal for the memo box should be done when user click the preview button IMO.

hangs on Height Loading after account creation

Used the appimage package 0.9. After adding my account credentials the app just does nothing. The only message is "Height Loading" in the lower left corner. But nothing changes for a long time now.
Restarting it or deleting the config and adding the account again doesn't change anything. Here is the output of the dev console:

action ACCOUNT_DATA_UPDATE_PENDING @ 22:06:25.812 core.js:104  
action ACCOUNT_DATA_UPDATE_PENDING @ 22:06:35.811 core.js:104  
...

Using Arch Linux. Keep up the great work! Thx.

[Linux] desktop file is lacking a Categories= entry

The desktop file is lacking a Categories= entry in the *.desktop file.

According to the menu spec,

By including one of the Main Categories in an application's desktop entry file, the application will be ensured that it will show up in a section of the application menu dedicated to this category. If multiple Main Categories are included in a single desktop entry file, the entry may appear more than once in the menu.

Hence, please add at least one of the following in the Categories= key.

Main Category Description Notes
AudioVideo Application for presenting, creating, or processing multimedia (audio/video)
Audio An audio application Desktop entry must include AudioVideo as well
Video A video application Desktop entry must include AudioVideo as well
Development An application for development
Education Educational software
Game A game
Graphics Application for viewing, creating, or processing graphics
Network Network application such as a web browser
Office An office type application
Science Scientific software
Settings Settings applications Entries may appear in a separate menu or as part of a "Control Center"
System System application, "System Tools" such as say a log viewer or network monitor
Utility Small utility application, "Accessories"

In addition, you could specify one or more from the longer list of Additional Categories.

Please test the result with desktop-file-validate and make sure it passes.

electron-builder offers native support for this since v19.22.1.

Reference: AppImage/appimage.github.io#2

Feature Suggestion: Steem Power Delegation

SP delegation is badly needed for growing community since it is a good way to empower and encourage active members. Can you set SP delegation as one of the priority?

Account balances table in Overview does not separate savings from checking balances

If you look at the account balances table with columns for "Available to Spend" and "Savings Account" you can see the problem for accounts that have non-zero savings balances.

One would expect the entries under the "Savings Account" column to contain the values for savings_sbd_balance (for the SBD sub-column) and savings_balance (for the STEEM sub-column) and for the entries under the "Available to Spend" column to contain the values for sbd_balance (for the SBD sub-column) and balance (for the STEEM sub-column).

Instead, the entries under the "Savings Account" column are always 0, and the entries under the "Available to Spend" column have the total amounts for the account: the SBD sub-column under "Available to Spend" has a value of sbd_balance+savings_sbd_balance and the STEEM sub-column under "Available to Spend" has a value of balance+savings_balance.

Strange behaviour when delegating to a user who has already some delegation

I wanted to delegate twice more power from one user to another that I had already delegated to. The UI didn't let me know what would happen and only let's me delegate the amount that is available, but then it changes the amount delegated as if it was editing the delegation.
Then I thought that I could achieve what I wanted by delegating a minimum amount and then delegating the maximum amount afterwards, but it turned out that I stayed with the power locked and only a fraction of what I wanted was delegated.
The 7 day restriction applies also when raising the delegation? It shouldn't I think... Maybe the slider should allow to take from the current value to the maximum (available+already delegated) instead?
Anyway it could be important to have some information on the UI that would explain this case for users...

Operation signing - allow passing of SP in fields that normally require VESTS

Check the fields that require VESTS and allow SP to be passed in instead - doing the conversion at the time of the prompt being rendered.

Example:

  [
    "delegate_vesting_shares",
    {
      "delegator": "",
      "delegatee": "",
      "vesting_shares": "100.000 SP"
    }
  ]

Would get converted to:

  [
    "delegate_vesting_shares",
    {
      "delegator": "",
      "delegatee": "",
      "vesting_shares": "205131.775013 VESTS"
    }
  ]

Conversion would be: SP / total_vesting_fund_steem * total_vesting_shares, reduced to 6 decimals.

Add a warning when delegating >99% of available SP

Make sure people realize that if they delegate it all, they won't be able to undelegate unless they transfer some to that account, or until Steem fixes this problem with a minimum bandwidth allowance for all accounts.

Adding transaction history to the wallet

Add a transaction history to the wallet to view previous transactions.

Notes:

  • Requires some sort of external data source/api, as currently I don't believe there's a way to filter only transactions in the steemd apis.

Allow for filtering/grouping accounts

Users with dozens/hundreds of accounts could use a way to organize them. Either a search, filter or some sort of grouping mechanism would go a long way to helping with that organization.

Events Alarming/Notification (API?)

To further complete/increase the functionality of Vessel, I was thinking:

Can Vessel (while running) send an email with some kind of resume/events of selectable options like...

  • New claimable balances available
  • Vested SP (when converted)
  • Account STEEM or SBD changes
  • Others

Note: the ideal would be to notify via API other tools (like eSteem or steemit.chat, etc), since email is somehow centralised. Joint collaboration would be a must here, so maybe this (API) would be something to hook into steem itself first. What does your gut tell you?

Send STEEM or SBD to multiple users at once

Another one I though for many of the posts I see.

The amounts could be a division of a total or if specifying the per/user, the total amount would indicate how much is required.

Add Account Creation

The first implementation of this should allow account creation directly from a previously imported account.

Prior to account creation user will be given a chance to copy the new password and keys.

After account creation, active key will be imported into Vessel for immediate use.

Operation Signing - Existing delegations are not accounted for

When a delegation prompt is created it needs to check for existing delegations. The existing delegation amount currently is just being overwritten by whatever the next delegation amount is (due to how the system works).

When a delegation prompt is created, it should query any existing delegations, and show the current amount, adjusted amount, and broadcast the combination of the two.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.