Exemplo n.º 1
0
        public async Task <(uint256, ChannelManager)?> GetChannelManager(ChannelManagerReadArgs readArgs, CancellationToken ct = default)
        {
            if (readArgs == null)
            {
                throw new ArgumentNullException(nameof(readArgs));
            }
            using var tx = await _engine.OpenTransaction(ct);

            using var chanManRow = await tx.GetTable(DBKeys.ChannelManager).Get(DBKeys.ChannelManagerVersion);

            if (chanManRow is null)
            {
                return(null);
            }
            var val = await chanManRow.ReadValue();

            if (val.IsEmpty)
            {
                return(null);
            }
            var r = ChannelManager.Deserialize(val, readArgs, _conf.Value.RustLightningConfig, _pool);

            // there is a edge case that when the ChannelManager is created and serialized without any block connect,
            // latestBlockHash becomes empty. So just return null in that case.
            if (r.Item1.Equals(uint256.Zero))
            {
                return(null);
            }
            return(r);
        }
Exemplo n.º 2
0
        private (ChannelManager, ChannelManagerReadArgs, ManyChannelMonitor, ManyChannelMonitorReadArgs) GetTestChannelManager()
        {
            var logger              = new TestLogger();
            var broadcaster         = new TestBroadcaster();
            var feeEstiamtor        = new TestFeeEstimator();
            var n                   = Network.TestNet;
            var chainWatchInterface = new ChainWatchInterfaceUtil(n);
            var keySeed             = new byte[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
            var keysInterface       = new KeysManager(keySeed, DateTime.UnixEpoch);
            var manyChannelMonitor  = ManyChannelMonitor.Create(n, chainWatchInterface, broadcaster, logger, feeEstiamtor);
            var userConfig          = new UserConfigObject();
            var channelManager      = ChannelManager.Create(n, userConfig, chainWatchInterface, keysInterface, logger, broadcaster, feeEstiamtor, 400000, manyChannelMonitor);
            var readArgs            = new ChannelManagerReadArgs(keysInterface, broadcaster, feeEstiamtor, logger, chainWatchInterface, n, manyChannelMonitor);
            var monitorReadArgs     = new ManyChannelMonitorReadArgs(chainWatchInterface, broadcaster, logger, feeEstiamtor, n);

            return(channelManager, readArgs, manyChannelMonitor, monitorReadArgs);
        }
Exemplo n.º 3
0
        public void ChannelManagerSerializationTests()
        {
            using var channelManager = GetTestChannelManager();
            var b = channelManager.Serialize(_pool);

            var keySeed             = new byte[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
            var keysInterface       = new KeysManager(keySeed, DateTime.UnixEpoch);
            var logger              = new TestLogger();
            var broadcaster         = new TestBroadcaster();
            var feeEstiamtor        = new TestFeeEstimator();
            var n                   = NBitcoin.Network.TestNet;
            var chainWatchInterface = new ChainWatchInterfaceUtil(n);
            var manyChannelMonitor  =
                ManyChannelMonitor.Create(n, chainWatchInterface, broadcaster, logger, feeEstiamtor);
            var args  = new ChannelManagerReadArgs(keysInterface, broadcaster, feeEstiamtor, logger, chainWatchInterface, n, manyChannelMonitor);
            var items = ChannelManager.Deserialize(b, args, new TestUserConfigProvider(), _pool);

            var(_, channelManager2) = items;

            Assert.True(channelManager2.Serialize(_pool).SequenceEqual(b));
        }
Exemplo n.º 4
0
 public Task <(uint256, ChannelManager)?> GetChannelManager(ChannelManagerReadArgs readArgs, CancellationToken ct = default)
 {
     return(Task.FromResult(
                latestChannelManager is null ? ((uint256, ChannelManager)?)null: (NBitcoin.Network.RegTest.GenesisHash, latestChannelManager)
                ));
 }