Ejemplo n.º 1
0
        public static NetworkChannel Create(ChannelAnnouncementMessage announcement, ChannelUpdateMessage update, NetworkNode node1, NetworkNode node2)
        {
            NetworkChannel networkChannel = new NetworkChannel();

            networkChannel.CreatedEntity     = DateTime.Now;
            networkChannel.Id                = announcement.ShortChannelIdHex;
            networkChannel.Node1             = node1;
            networkChannel.Node2             = node2;
            networkChannel.Node1Id           = node1.Id;
            networkChannel.Node2Id           = node2.Id;
            networkChannel.ChannelShortId    = announcement.ShortChannelId;
            networkChannel.Features          = announcement.Features;
            networkChannel.ChainHash         = announcement.ChainHash;
            networkChannel.NodeSignature1    = announcement.NodeSignature1;
            networkChannel.NodeSignature2    = announcement.NodeSignature2;
            networkChannel.BitcoinSignature1 = announcement.BitcoinSignature1;
            networkChannel.BitcoinSignature2 = announcement.BitcoinSignature2;
            networkChannel.BitcoinKey1       = announcement.BitcoinKey1.PublicKeyCompressed;
            networkChannel.BitcoinKey2       = announcement.BitcoinKey2.PublicKeyCompressed;

            if (update != null)
            {
                networkChannel.Update(update);
            }

            return(networkChannel);
        }
Ejemplo n.º 2
0
        public void ChannelAnnouncementMessageTest()
        {
            var message = new ChannelAnnouncementMessage(
                "111e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464451111".HexToByteArray(),
                "222e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464452222".HexToByteArray(),
                "333e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464453333".HexToByteArray(),
                "444e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464454444".HexToByteArray(),
                "52".HexToByteArray(),
                "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000".HexToByteArray(),
                "b34fafd163cf765b",
                "b34fafd163cf765b".HexToByteArray(),
                "023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb",
                "0212a140cd0c6539d07cd08dfe09984dec3251ea808b892efeac3ede9402bf2b19",
                new ECKeyPair("034f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa", false),
                new ECKeyPair("032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", false)
                );

            Assert.Equal(256, message.Definition.TypeId);

            Assert.Equal("111e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464451111", message.NodeSignature1.ToHex());
            Assert.Equal("222e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464452222", message.NodeSignature2.ToHex());
            Assert.Equal("333e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464453333", message.BitcoinSignature1.ToHex());
            Assert.Equal("444e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464454444", message.BitcoinSignature2.ToHex());
            Assert.Equal("52", message.Features.ToHex());
            Assert.Equal("6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000", message.ChainHash.ToHex());
            Assert.Equal("b34fafd163cf765b", message.ShortChannelId.ToHex());
            Assert.Equal("b34fafd163cf765b", message.ShortChannelIdHex);
            Assert.Equal("023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb", message.NodeId1Hex);
            Assert.Equal("0212a140cd0c6539d07cd08dfe09984dec3251ea808b892efeac3ede9402bf2b19", message.NodeId2Hex);
            Assert.Equal("023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb", message.NodeId1.PublicKeyCompressed.ToHex());
            Assert.Equal("0212a140cd0c6539d07cd08dfe09984dec3251ea808b892efeac3ede9402bf2b19", message.NodeId2.PublicKeyCompressed.ToHex());
            Assert.Equal("034f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa", message.BitcoinKey1.PublicKeyCompressed.ToHex());
            Assert.Equal("032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", message.BitcoinKey2.PublicKeyCompressed.ToHex());

            var properties = message.GetProperties();

            Assert.Equal("111e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464451111", properties[0].ToHex());
            Assert.Equal("222e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464452222", properties[1].ToHex());
            Assert.Equal("333e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464453333", properties[2].ToHex());
            Assert.Equal("444e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464454444", properties[3].ToHex());
            Assert.Equal("52", properties[4].ToHex());
            Assert.Equal("6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000", properties[5].ToHex());
            Assert.Equal("b34fafd163cf765b", properties[6].ToHex());
            Assert.Equal("023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb", properties[7].ToHex());
            Assert.Equal("0212a140cd0c6539d07cd08dfe09984dec3251ea808b892efeac3ede9402bf2b19", properties[8].ToHex());
            Assert.Equal("034f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa", properties[9].ToHex());
            Assert.Equal("032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", properties[10].ToHex());


            Assert.Equal("0100111e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464451111" +
                         "222e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464452222" +
                         "333e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464453333" +
                         "444e45454b0978a623f36a10626ef17b27d9ad44e2760f98cfa3efb37924f0220220bd8acd43ecaa916a80bd4f919c495a2c58982ce7c8625112456464454444" +
                         "000152" +
                         "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000" +
                         "b34fafd163cf765b" +
                         "023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb" +
                         "0212a140cd0c6539d07cd08dfe09984dec3251ea808b892efeac3ede9402bf2b19" +
                         "034f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa" +
                         "032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", message.GetBytes().ToHex());
        }