stratisproject / breeze Goto Github PK
View Code? Open in Web Editor NEWProject Breeze Repository
License: MIT License
Project Breeze Repository
License: MIT License
As described in the UI build readme one must build for production with npm run electron:dev
. However the daemon does not get copied into the \assets
folder and the building process complains about it.
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()
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.
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).
In Hungarian system environment 3.2.ToString()
results in 3,2
, while in most other environments it results in 3.2
. This can lead to unexpected issues.
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.
Currently when sending funds the change balance is viewed as unconfirmed, e.g.:
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!
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
Right know GET connect
just provides a cached response, however it should download TB information every time, because the Tumbler might have changed its parameters and that could have further implications.
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"
};
The UI calls GET is-tumbling
, which is not a call anymore. The up-to-date one is GET tumbling-state
.
I think the Logout option needs a confirmation pop up.
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
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
Some on them are already known in Slack, but not here as an issue
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.
No copy paste inside the wallet. When try to send the BTC address cannot be pasted. Also copying isn't allowed.
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
It'd dramatically improve development time. Is there any reason why not do this?
@dangershony @bokobza @dev0tion
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
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 |
I'm using a a MacBook Pro Running SIerra 10.12.5, pasting in the send address field isn't working.
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.
As I suggested on the slack channel (https://stratisplatform.slack.com/archives/C5F5GGLC8/p1499129535356492)
Allow only numerical input in the 'amount' field when sending coins. As of now, any input can be entered,
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.
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
Receive should be enabled for SegWit and Bech32 addresses, optionally traditional addresses, too.
Sending should work on traditional, segwit and bech32 addresses. Optionally p2sh, p2wsh should be supported, too.
NBitcoin supports for all types.
Sync has been running for 10 hours and at 77% 6 connections.
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?
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?
At the moment we have 1 daemon that can spin any configuration we want:
Stratis/Spv wallet/testnet
Bitcoin/Full node/Main
etc
Maybe having multiple daemons makes more sense?
Let's revisit this.
When Breeze starts up TumbleBit should be started up in onlymonitor
mode.
Currently the api call is stop
, but it should be onlymonitor
, accordingly.
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
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 |
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.
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.
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.
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).
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".
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.
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, Nullable
1 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, Nullable
1 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
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.
Let the user recover the already existing wallet, because it might want to recover with a different syncing start.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.