Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First page of Bitcoin Addresses throws an error. #73

Open
BillStrait opened this issue Aug 6, 2017 · 20 comments
Open

First page of Bitcoin Addresses throws an error. #73

BillStrait opened this issue Aug 6, 2017 · 20 comments

Comments

@BillStrait
Copy link
Contributor

I am a dummy. I am following along with the book. In "Bitcoin Address" the chapter gives the following code examples.

Key privateKey = new Key(); // generate a random private key
PubKey publicKey = privateKey.PubKey;
Console.WriteLine(publicKey);

When executed in Visual Studio 2017 against the latest nuget package new Key(); throws this error: "You must set the RNG (RandomUtils.Random) before generating random numbers"

As a dummy, I am not sure what code needs to be added to make the example work.

@NicolasDorier
Copy link
Collaborator

it should work... you created a UWP application I suppose ?

@NicolasDorier
Copy link
Collaborator

NicolasDorier commented Aug 7, 2017

See MetacoSA/NBitcoin#120 either do not created UWP application, or use the fix in the issue, or wait for october.

If you did not created a UWP application then this is another bug. Please let me know.

@BillStrait
Copy link
Contributor Author

This is a console application. Same problem in Visual Studio 2015. I'm on Windows 10, maybe that's the problem? Here's the entire application.

using System;
using NBitcoin;

namespace BitcoinExperiments
{
    class Program
    {
        static void Main(string[] args)
        {
            var privateKey = new Key();
            var publicKey = privateKey.PubKey;
            Console.WriteLine(publicKey);
            Console.ReadLine();
        }
    }
}

@NicolasDorier
Copy link
Collaborator

Oh shit you are right

@NicolasDorier
Copy link
Collaborator

fixing it now... not normal

@NicolasDorier
Copy link
Collaborator

Ok pushed new version https://www.nuget.org/packages/NBitcoin 4.0.0.14 should be indexed by nuget soon, retry soon please.

@NicolasDorier
Copy link
Collaborator

Ok tested it, it works. Thanks for reporting!

@BillStrait
Copy link
Contributor Author

Confirmed working, thanks.

@mmcc1
Copy link

mmcc1 commented Apr 29, 2018

This is still an issue with the recent build (4.1.1.3) and mono.

@nopara73 nopara73 reopened this Apr 29, 2018
@NicolasDorier
Copy link
Collaborator

strange, are you using a recent version of mono?

@mmcc1
Copy link

mmcc1 commented Apr 29, 2018

Yes, the latest. It threw the error in a debug session of a console app. Then I ended up here looking for a resolution. It works fine in VS 2017. I just added RandomUtils.Random = new UnsecureRandom(); as a quick fix.

@NicolasDorier
Copy link
Collaborator

Do you have a way to find out which DLL mono is using? I would have expected it takes .netstandard2.0 which have the Random... but if it fails it means it takes netstandard1.1 which is very strange.

@mmcc1
Copy link

mmcc1 commented Apr 30, 2018

Its the .NET Framework version (NETFramework,Version=v4.5) 4.1.1.3.

@NicolasDorier
Copy link
Collaborator

but there is no NETFramework,Version=v4.5 in the package! I think you are not using latest version of mono.

@NicolasDorier
Copy link
Collaborator

Can you tell me in command line what you are doing?

@mmcc1
Copy link

mmcc1 commented May 3, 2018

I pulled it apart a little and found the proper version information:

[assembly: AssemblyVersion ("4.1.1.3")]
[assembly: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyCompany ("Metaco SA")]
[assembly: AssemblyConfiguration ("Release")]
[assembly: AssemblyCopyright ("Copyright © Metaco SA 2017")]
[assembly: AssemblyDescription ("The C# Bitcoin Library")]
[assembly: AssemblyFileVersion ("4.1.1.3")]
[assembly: AssemblyInformationalVersion ("4.1.1.3")]
[assembly: AssemblyProduct ("NBitcoin")]
[assembly: AssemblyTitle ("NBitcoin")]
[assembly: CompilationRelaxations (8)]
[assembly: InternalsVisibleTo ("NBitcoin.Tests")]
[assembly: RuntimeCompatibility (WrapNonExceptionThrows = true)]
[assembly: ComVisible (false)]
[assembly: TargetFramework (".NETStandard,Version=v1.1", FrameworkDisplayName = "")]

I think what happened here was that the program was originally made in VS2017, then copied to Xamarin studio and recompiled.

@NicolasDorier
Copy link
Collaborator

the program is still using VS2017.
By Xamarin Studio you mean Visual Studio for Mac ? because xamarin studio is outdated.

@mmcc1
Copy link

mmcc1 commented May 3, 2018

I'm running Xamarin Studio 6.1.2 on Windows.

@knocte
Copy link
Contributor

knocte commented May 3, 2018

XamarinStudio is an old product that doesn't receive updates anymore. If you use Windows, use VisualStudio, if you use Mac, use VisualStudioForMac (which is based on XamarinStudio's foundation); if you use Linux, use MonoDevelop.

@NicolasDorier
Copy link
Collaborator

if you don't develop for mobile apps, use Visual Studio Code and .NET Core instead of Mono.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
@knocte @BillStrait @NicolasDorier @mmcc1 @nopara73 and others