public void Bech32Address_Encode() { var addr = "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"; var hex_prog = "751e76e8199196d454941c45d1b3a323f1433bd6"; var bc2 = new Bech32Address(AddressNetwork.Main, 0, hex_prog.FromHex()); Assert.Equal(addr, bc2.ToString()); }
public async Task <GetUnspentAddressesResponse> GetUnspentAddressesAsync(GetUnspentAddressesRequest request) { var nodeInfo = await this.Client.GetNodeInfoAsync(); var state = new InMemoryBip44GeneratorState { AccountIndex = request.AccountIndex, AddressIndex = request.AddressOptions.StartIndex, IsInternal = false }; var unspentAddresses = new List <Bech32Address>(); var isFirst = true; var zeroCount = 0; var foundAll = false; do { var bip32Path = Bip44AddressGenerator.GenerateAddress(state, isFirst); isFirst = false; var addressSeed = request.Seed.GenerateSeedFromPath(bip32Path); var address = Ed25519Address.FromPublicKey(addressSeed.KeyPair.PublicKey); var addressWithBalance = await this.Client.GetAddressFromEd25519Async(address.Address); if (addressWithBalance.Balance == 0) { zeroCount++; if (zeroCount >= request.AddressOptions.ZeroCount) { foundAll = true; } } else { unspentAddresses.Add(Bech32Address.FromEd25519Address(addressWithBalance, bip32Path, nodeInfo.Bech32Hrp)); if (unspentAddresses.Count == request.AddressOptions.RequiredCount) { foundAll = true; } } } while (!foundAll); return(new GetUnspentAddressesResponse(unspentAddresses)); }
public void TestAddressCreationFromEd25519AddressAndBip31Path() { var expectedAddressBech32Address = "iota1qq97h4hsl6l67v45cal2ue64k8vrg7xueyv9cv7rrr2tpgjt54xks8esknu"; var address = new Ed25519Address { Address = "0bebd6f0febfaf32b4c77eae6755b1d83478dcc9185c33c318d4b0a24ba54d68", Balance = 100, DustAllowed = true }; var path = Bip44AddressGenerator.GenerateAddress(1, 1, false); var actual = Bech32Address.FromEd25519Address(address, path, "iota"); Assert.AreEqual(expectedAddressBech32Address, actual.Address); Assert.AreEqual(path.ToString(), actual.Path.ToString()); Assert.AreEqual(address.Balance, actual.Balance); }
public void Bech32Address_Decode() { var bc1 = new Bech32Address("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"); Assert.Equal("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4", bc1.ToString()); }
public TransferOutput(Bech32Address receiver, long amount) { Receiver = receiver.ToEd25519Address(); Amount = amount; }