Skip to content

First page of Bitcoin Addresses throws an error. #73

Open

Description

@BillStrait

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.

Activity

  1. NicolasDorier commented on Aug 7, 2017

    @NicolasDorier
    Collaborator

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

  2. NicolasDorier commented on Aug 7, 2017

    @NicolasDorier
    Collaborator

    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.

  3. BillStrait commented on Aug 7, 2017

    @BillStrait
    ContributorAuthor

    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();
            }
        }
    }
    
  4. NicolasDorier commented on Aug 7, 2017

    @NicolasDorier
    Collaborator

    Oh shit you are right

  5. NicolasDorier commented on Aug 7, 2017

    @NicolasDorier
    Collaborator

    fixing it now... not normal

  6. NicolasDorier commented on Aug 7, 2017

    @NicolasDorier
    Collaborator

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

  7. NicolasDorier commented on Aug 7, 2017

    @NicolasDorier
    Collaborator

    Ok tested it, it works. Thanks for reporting!

  8. BillStrait commented on Aug 7, 2017

    @BillStrait
    ContributorAuthor

    Confirmed working, thanks.

  9. mmcc1 commented on Apr 29, 2018

    @mmcc1

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

  10. NicolasDorier commented on Apr 29, 2018

    @NicolasDorier
    Collaborator

    strange, are you using a recent version of mono?

  11. mmcc1 commented on Apr 29, 2018

    @mmcc1

    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.

  12. NicolasDorier commented on Apr 29, 2018

    @NicolasDorier
    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.

  13. mmcc1 commented on Apr 30, 2018

    @mmcc1

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

  14. NicolasDorier commented on May 1, 2018

    @NicolasDorier
    Collaborator

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

  15. NicolasDorier commented on May 1, 2018

    @NicolasDorier
    Collaborator

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

  16. mmcc1 commented on May 3, 2018

    @mmcc1

    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.

  17. NicolasDorier commented on May 3, 2018

    @NicolasDorier
    Collaborator

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

  18. mmcc1 commented on May 3, 2018

    @mmcc1

    I'm running Xamarin Studio 6.1.2 on Windows.

  19. knocte commented on May 3, 2018

    @knocte
    Contributor

    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.

  20. NicolasDorier commented on May 3, 2018

    @NicolasDorier
    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions