Ejemplo n.º 1
0
        public void TestEd25519Seed(string base58)
        {
            var bytes = new byte[19];

            Base58Check.ConvertFrom(base58, bytes);
            Assert.Equal(base58, Base58Check.ConvertTo(bytes));
        }
Ejemplo n.º 2
0
        public void TestSecp256k1Seed(string base58)
        {
            var bytes = new byte[17];
            var count = Base58Check.ConvertFrom(base58, bytes);

            Assert.Equal(count, bytes.Length);
            Assert.Equal(base58, Base58Check.ConvertTo(bytes));
        }
Ejemplo n.º 3
0
        public void TestAccount(string base58)
        {
            var bytes = new byte[21];
            var count = Base58Check.ConvertFrom(base58, bytes);

            Assert.Equal(count, bytes.Length);
            Assert.Equal(base58, Base58Check.ConvertTo(bytes));
        }
Ejemplo n.º 4
0
 public Property TestRoundTrip()
 {
     return(Prop.ForAll(
                Arb.From <byte[]>(),
                bytes =>
     {
         var base58 = Base58Check.ConvertTo(bytes);
         // Oversize the buffer
         var result = new byte[bytes.Length + 8];
         var count = Base58Check.ConvertFrom(base58, result);
         // trim to decoded size
         result = result.AsSpan().Slice(0, count).ToArray();
         Assert.Equal(bytes.Length, count);
         Assert.Equal(bytes, result);
     }));
 }
Ejemplo n.º 5
0
        public async void TestWalletPropose_NoEntropy(KeyType?keyType)
        {
            var request = new WalletProposeRequest
            {
                KeyType = keyType,
            };
            var response = await Api.WalletPropose(request);

            Assert.Equal(keyType == KeyType.Ed25519 ? "ed25519" : "secp256k1", response.KeyType);
            Assert.NotNull(response.AccountId);
            Assert.NotNull(response.PublicKey);
            Assert.NotNull(response.MasterSeed);

            var masterEntropy = Base16.Decode(response.MasterSeedHex);
            var masterSeed    = new Seed(masterEntropy, keyType ?? KeyType.Secp256k1);

            masterSeed.GetKeyPairs(out _, out var keyPair);
            var publicKey = keyPair.PublicKey.GetCanoncialBytes();

            Assert.Equal(response.PublicKeyHex, Base16.Encode(publicKey));
            var accountId = AccountId.FromPublicKey(publicKey);

            Assert.Equal(response.AccountId, accountId.ToString());

            var buffer = new byte[publicKey.Length + 1];

            buffer[0] = 35;
            publicKey.CopyTo(buffer, 1);
            var base58PublicKey = Base58Check.ConvertTo(buffer);

            Assert.Equal(base58PublicKey, response.PublicKey);

            // The hex is a 256 bit little endian number, so reverse the bits for RFC1751 encoding
            Array.Reverse(masterEntropy);
            var masterKey = Rfc1751.Encode(masterEntropy);

            Assert.Equal(masterKey, response.MasterKey);
        }