Coder Social home page Coder Social logo

breeze's People

Contributors

andrasfuchs avatar bep42 avatar bokobza avatar daegalus avatar dangershony avatar dangould avatar dev0tion avatar herbepau avatar nicolasdorier avatar nopara73 avatar stratisiain 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

Watchers

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

breeze's Issues

[Priority: Medium] Incorrect Send Amount

The above send and receive transactions are actually one transaction, where I sent 0.1btc to myself. In this case the fee is not deducted from the receive. While in this case it's not a big problem, but such bug might cause other inconsistencies and issues.

Add graceful shutdown

When the apllication is closing it should take a few seconds to persist the unsaved things to the disk, dispose connections, etc...

A simple code like this shuld happen there:

cts.Cancel();
walletJobTask.Wait()

[Priority: High] Login succeeds with wrong password

If I create two wallets with different password I will be able to login to any of the wallets with any of those passwords.
However sending transaction works only with the correct password.

It should not be that hard to fix, it probably has something to do with storing the extpubkeys within wallet files.

Console takeover by the main process

I'm running breeze-ui.exe (v0.1.0 alpha) and if I run it from say Windows Explorer, all is fine. However, if I run it from console (most notably FAR Manager, but cmd.exe has the same problem), the wallet process takes over the console, which is not what you expect as a user - suddenly you can work in the console (in cmd.exe try "dir" + ENTER) and at the same time you get output from the wallet process to this very same console. This is very inconvenient (esp. for FAR Manager users, because what you use FAR for is basically running all the stuff in your system, so you don't expect anyone to break your console like this).

Khilone (Mac)

Some outgoing transactions aren't showing in latest transactions and history.

Sometimes a window pops open out of nothing, and it contains no information besides the logo.

[Priority: High] How to display unconfirmed change amount

Currently when sending funds the change balance is viewed as unconfirmed, e.g.:

  • I have 1 BTC in one UTXO.
  • I send 0.2 BTC to X.
  • 0.8 BTC went to a change address and shows as unconfirmed.

Which is normal behavior, but people aren't used to seeing this.
Other wallets just show this as confirmed (while it's actually unconfirmed) in the UI.

Should I just display one balance, being unconfirmed + confirmed, since we allow unconfirmed UTXO's to be spend anyway or what shall we do? Fight!

Right click menu doesn't work on form inputs (like password)

Used often for cut/paste.

Something seems to flash quickly when you try to right click into the form inputs (like password). I have a simple angular/bootstrap app with form and I can paste into the input so suspect it might be the css template.

Might also be bootstrap, my test app is running an older bootstrap "bootstrap": "3.3.7"

I'm running Win7

[TumbleBit] Time to tumble the first coin is hardcoded

TumbleBitController.cs

var retrievedParameterDictionary = new Dictionary<string, string>()
{
   ["tumbler"] = this.tumbleBitManager.TumblerAddress,
   ["denomination"] = tumblerParameters.Denomination.ToString(),
   ["fee"] = tumblerParameters.Fee.ToString(),
   ["network"] = tumblerParameters.Network.Name,
   ["estimate"] = "10080"
};

[Priority: Low] Add sending all coins

A user cannot send all its coins out of the wallet without leaving some small amount in, because of the fee calculation, it should be supported.

Illustration:

I can't create a wallet

I tried your pre-alpha breeze wallet version and I can't create a wallet, I click 'Create Wallet' button and nothing happens, I tried to reload view but it brings me back to home screen where I can choose between to create or restore wallet

Add extern alias for NStratis in Breeze projects

There is a problem upgrading the Stratis.Bitcoin nuget package where NStratis is used instead of NBitcoin because HBitcoin uses NBitcoin.
The namespaces in the 2 libraries are the same so we need to add NStratis as an external alias.
Tried to make it work, to no avail.

https://msdn.microsoft.com/en-us/library/yabyz3h4.aspx
https://stackoverflow.com/questions/35899657/how-to-extern-alias-an-assembly-with-net-core

#https://github.com/dotnet/cli/issues/564

Feedback from@daz

  1. Nice job, looks great ๐Ÿ™‚ 2) After entering the password would be nice to be able to hit enter rather than going back to the mouse. 3) for some reason if i'm "in" usa i get 0-1 connections and uk i get 8. 4) everytime i click on the recieve address now i get the same address, an option to get a new address would be nice. The first 3 times it changed it, now it seems stuck even with a restart. 4) since i've sent the 1 tbtc it hasnt updated any further, seem to be stuck with unconfirmed balance, though guessing the nodes are busy and it will just take longer than it did at the start?

Some issues on Mac Sierra

Some on them are already known in Slack, but not here as an issue

  1. Closing the wallet with the red button on the left isn't working flawlessly. Wallet keeps coming back. Right click Quit in dock is working as of Quit Breeze-ui in the toolbar.

  2. No copy paste inside the wallet. When try to send the BTC address cannot be pasted. Also copying isn't allowed.

  3. When i keep the sending window too long open it shuts down the connection with the API. Wallet needs to be restarted then (which is annoying) https://s16.postimg.org/e9m1lfuj9/Screen_Shot_2017-07-01_at_11.44.48.png

[Priority: Medium] Copypasteable popups

As the title says, it would be good if we would not throw up native windows (like ever). Or at the very least mnemonic words should be copypasteable.

Copypasting such in Windows with "ctrl+c" is possible, but not intuitive.

Feedback from @evju (Win10)

When restoring wallet:
No right click paste option. (User friendliness)
Name box should be above password (for a more logical structure)

History:
Send text should be in past tense; sent (grammar)

Logout:
Logout needs confirmation check box

Other Suggestions:
Make it possible to open transaction details by clicking on the box, instead of going to the allocated "details" link (Personal preference)
Add a "minimize to tray" option
Add a "close to tray" option

[Priority: Medium] Change ports in a conscious way

Replaces: #79

I propose Breeze's ports to be chosen within a long range of unassigned IANA ports, based on this statistics, but also checked against Service Name and Transport Protocol Port Number Registry to avoid port collision.

A reference of common local ports currently used by Breeze and related softwares:

Port Application
37120 HiddenWallet API
37121 Tor socks port used by HiddenWallet
37122 Tor control port used by HiddenWallet
37123 NTumbleBit server
37124 Tor socks port used by NTumbleBit
37125 Tor control port used by NTumbleBit
9050 Default Tor socks port
9051 Default Tor control port
9150 Tor socks port used by Tor Browser
9151 Tor control port used by Tor Browser
8333 Bitcoin Core Mainnet RPC
18333 Bitcoin Core Testnet RPC
18444 Bitcoin Core Regtest RPC
5000 Stratis: Bitcoin node and Breeze Wallet API
5105 Stratis: Stratis node and Stratis Wallet API

WalletController Recover cannot check password

File: https://github.com/stratisproject/Breeze/blob/master/Breeze/src/Breeze.Wallet/Controllers/WalletController.cs

Code:

[Route("recover")]
[HttpPost]
public IActionResult Recover([FromBody]WalletRecoveryRequest walletRecovery)
{
    // checks the request is valid
    if (!this.ModelState.IsValid)
    {
        var errors = this.ModelState.Values.SelectMany(e => e.Errors.Select(m => m.ErrorMessage));
		return ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, "Formatting error", string.Join(Environment.NewLine, errors));
	}

    try
    {
        var wallet = this.walletWrapper.Recover(walletRecovery.Password, walletRecovery.FolderPath, walletRecovery.Name, walletRecovery.Network, walletRecovery.Mnemonic);
        return this.Json(wallet);

    }
    catch (FileNotFoundException e)
    {
		// indicates that this wallet does not exist
		return ErrorHelpers.BuildErrorResponse(HttpStatusCode.NotFound, "Wallet not found.", e.ToString());				
    }
    catch (SecurityException e)
    {
		// indicates that the password is wrong
		return ErrorHelpers.BuildErrorResponse(HttpStatusCode.Forbidden, "Wrong password, please try again.", e.ToString());
	}
    catch (Exception e)
    {
		return ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString());
	}
}

The password will never be wrong. It'll recover a wallet with the wrong password neverthless, it cannot check if the right password is added or not.

Details:
Load: walletfile + password = extkey
Recover mnemonic + password = extkey

The thing is while at load the walletfile contains the encrypted extkey therefore it only decrypts it with the right password, it knows if the password is wrong, else it cannot decrypt it, while at recover the mnemonic and the password generates a whole new extkey. If you add password: "foo", but in reality it was "bar", then it won't know if the generated one was the same or not.

Feedback from @spectator

  1. Make buttons and font bigger.
  2. Make each row clickable for latest transactions so we dont have to aim the "details" link to see details.
  3. When you have 0 tbtc, and you try to send there should be a popup that prevents them from sending. At the moment, no error msg.
  4. close button should send wallet to system tray rather than closing the wallet.
  5. confirmations for transactions 9/52 confirmation thing that shows us progress. Maybe for aesthetics you can add a progress bar.
  6. when we receive tokens, a popup by system tray should notify us like the stratis qt wallet.
  7. Use max button for sending
  8. it showed 1.3 tbtc in my active balance, i sent .12 tbtc to someone and my active balance shos 0.3 tbtc and it moved the rest to unconfirmed balance. Then a few seconds later it moved back to active balance.

[Priority: High] Too strong password requirement

Is it possible to loosen the password requirements? 99% of people will forget it (including me), because they are not used to such passwords.

In fact I'd advocate not holding the hands of the users and go with zero restrictions, even enable empty string for password.

Daemon doesn't run when I start Breeze-ui.exe

Downloaded a fresh copy to the 64bit windows 10 wallet onto a computer that hasn't had the wallet running before. Breeze loads and sits on the initialising screen. Fiddler showed that it was failing to connect to the /api/wallet/files endpoint. Turned out the Breeze.Daemon.exe isn't automatically being run by the wallet.

[Priority: High] Integrate Segregated Witness

BIP141 - SegWit was introduced as a soft fork to the Bitcoin network. In a nutshell it makes transactions cheaper and fixes transaction malleability.
BIP173 - Bech32 SegWit addresses were introduced lately by Pieter Wuille and they are expected to get widely used in the near future.

Traditional Bitcoin address: 1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX
SegWit address: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Bech32 SegWit address: lost1qsyq7yqh9gk0szs5

Needed For Integration

Receive

Receive should be enabled for SegWit and Bech32 addresses, optionally traditional addresses, too.

Send

Sending should work on traditional, segwit and bech32 addresses. Optionally p2sh, p2wsh should be supported, too.

Additional Notes

NBitcoin supports for all types.

Win 10 syncing

Sync has been running for 10 hours and at 77% 6 connections.

WalletWrapper Load todo comment

File: https://github.com/stratisproject/Breeze/blob/master/Breeze/src/Breeze.Wallet/Wrappers/WalletWrapper.cs

Code:

/// <summary>
/// Loads a wallet from the local device.
/// </summary>
/// <param name="password">The user's password.</param>
/// <param name="folderPath">The folder where the wallet will be loaded.</param>
/// <param name="name">The name of the wallet.</param>
/// <returns>The wallet loaded from the local device</returns>
public WalletModel Load(string password, string folderPath, string name)
{
	Safe wallet = Safe.Load(password, Path.Combine(folderPath, $"{name}.json"));

	//TODO review here which data should be returned
	return new WalletModel
	{
		Network = wallet.Network.Name,
		Addresses = wallet.GetFirstNAddresses(10).Select(a => a.ToWif()),
		FileName = wallet.WalletFilePath
	};
}

As I described in the ApiSpecification, I think no data should be returned, except success or fail.

If you really want to return something then it should be the same as either GET /wallet/general or GET /wallet/status. But as I said, I don't think it makes sense to return stuff for simplicity, since they could just call those two functions.

Same applies to the Recover. (Same ToDo comment there.)

Thoughts?

Oracle VM Virtualbox

Hi,

Question, after downloading the .ova file to install breeze on the Virtualbox i had the problem that it only can import appliances with the extention .ovf ,can you tell me how this can be solved?

[Priority: Low] Show multiple receive addresses

A user that often gets paid wants to create new addresses for every payment, right now the receive address only changes if money is sent to it.
I propose either

  1. Shuffle a couple of receive addresses and randomly show them up,
  2. Show multiple receive addresses at once.

What ports are you using?

I am documenting the local ports used by related softwares here. Did you decided on what should will be the final port for Breeze API and maybe Stratis FN RPC?

Port Application
37120 HiddenWallet API
37121 Tor socks port used by HiddenWallet
37122 Tor control port used by HiddenWallet
37123 NTumbleBit server
9050 Default Tor socks port
9051 Default Tor control port
9150 Tor socks port used by Tor Browser
9151 Tor control port used by Tor Browser
8333 Bitcoin Core RPC
Stratis: Breeze Wallet API

No User Feedback When Attempting to Send Unconfirmed Balances

  1. When attempting to send any amount before any transaction has been confirmed, and thus using a balance where 100% is allocated to "Unconfirmed Balance", no popup is received when clicking send. Would expect some kind of user notification explaining why the transaction cannot complete.
  2. [Minor] Under the details of a transaction, for the "TYPE" field the 'R' in "Received" is not capitalized.
  3. When selecting the fee, having a field to input a value (which would then correspondingly move the slider bar) may also be useful, rather than using the slider only.
  4. No error/notification provided to the user when using a non-complex password (i.e "123"). Maybe a warning, or restricting passwords to something might be necessary.

And as others have stated, I've received the blank popup, and it would be nice when clicking on a transaction that the details page would open without having to click the 'details' button.

Some issues v0.1.0 alpha

Win 7 64-bit

Copy the 12-words passphrase from the box

Drop downlist with rounded corners

Highlight the active page

Wrong balance

First received 1.1
Then send 0.001

Wrong balance

Without screenshot

Hit enter button to decrypt wallet instead clicking 'decrypt'

Hide the send button when (unconfirmed)balance is zero

Pimp up the loading screen when starting breeze is possible.

Instead of 'loading', try a slider so it is clear the wallet is loading.

Show the wallet name of the selected wallet in the top right corner.

breeze1
breeze2
breeze3
breeze 4-1
breeze4-2

Multiple transaction boxes

There are several transaction boxes appearing in the transaction history after making a 7 tbtc payment. They all have the same tx id and the same date.

image

SYSTEM DETAILS: Windows 7 Pro, 32-bit

Clicking the 'send' button multiple times

It is possible to click the send button multiple times after each other while the transaction is processing.
Only 1x btc is sent out, but it shows up multiple times in my receiving wallet (they do not get confirmed).

I would suggest making something that after the first click on the send button a message shows up when you click another time before the transaction is finished ('please wait while your transaction is beeing processed') or something like that.

blank popup and small suggestions

  1. Have the wallet address we sent coins to/received coins from listed in the details instead of just the transaction id. Make it show up on History tab without having to click on details (its own column).

  2. When you enter the wrong password when sending and click Send nothing happens. Add a popup error message like "Please input the correct password to send BTC".

  3. BUG: I get this random popup. I think its triggered after sending coins to someone. It just randomly popups after a few minutes from sending the coins. After clicking OK, it shows my balance again and transaction history.

randompopup

afterclickok

Fatal error when sending...

Using Mac/Sierra and received this error...

System.ArgumentException: An item with the same key has already been added. Key: OP_DUP OP_HASH160 112305fc04f8f8de8e96c00933c57eed45a64494 OP_EQUALVERIFY OP_CHECKSIG
at System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException(Object key)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) at Stratis.Bitcoin.Wallet.WalletManager.LoadKeysLookup() in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 1049 at Stratis.Bitcoin.Wallet.WalletManager.AddTransactionToWallet(uint256 transactionHash, UInt32 time, Nullable1 index, Money amount, Script script, Nullable1 blockHeight, Block block) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 763 at Stratis.Bitcoin.Wallet.WalletManager.ProcessTransaction(Transaction transaction, Nullable1 blockHeight, Block block) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 658
at Stratis.Bitcoin.Wallet.WalletManager.SendTransaction(String transactionHex) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/WalletManager.cs:line 580
at Stratis.Bitcoin.Wallet.Controllers.WalletController.SendTransaction(SendTransactionRequest request) in /Users/pieterjan/Desktop/StratisBitcoinFullNode/Stratis.Bitcoin/Wallet/Controllers/WalletController.cs:line 459

[Priority: High] Wallet Recovery Bug

If one recovers the same wallet it already has in StratisNode\bitcoin\TestNet folder, the recovery will fail with an error, but the recovered wallet is in the folder.
However it will prevent running the software again. Manually deleting the recovered wallet will fix the issue.

Expected behaviour

Let the user recover the already existing wallet, because it might want to recover with a different syncing start.

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.