public void TestEd25519Seed(string base58) { var bytes = new byte[19]; Base58Check.ConvertFrom(base58, bytes); Assert.Equal(base58, Base58Check.ConvertTo(bytes)); }
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)); }
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)); }
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); })); }
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); }