Пример #1
0
        public void TestHDNodeBySeed()
        {
            byte[]  seed      = "0x403d3e5f3646f517d3d6f51bd98f90493d502d259506abbfe46d5af2196960531edf6030aef3876fe3432f457c9cb9d6f312c538f19d3f30e731022d309683c2".ToBytes();
            IHDNode node      = new HDNode(seed);
            IHDNode sonNode   = node.Derive(0);
            IHDNode grandNode = sonNode.Derive(1);

            Assert.True(node.PrivateKey.ToHexString() == "0x546498ba394789f18b5b4b62227572fe033f8f7f2597a747ada3d8ec8f20f650");
            Assert.True(sonNode.PrivateKey.ToHexString() == "0x12ddf96bb7f2c031ee9b776e2b236f2fc46de6f90fb9cd48a82e0c849327d251");
            Assert.True(grandNode.PrivateKey.ToHexString() == "0xa7af80364059211616e47394cf49240b40f7a87cea54ec99a6aa1815b586d74e");
        }
Пример #2
0
        public void TestHDNodeByMnemonic()
        {
            var     works     = new[] { "mouse", "brave", "fun", "viable", "utility", "veteran", "luggage", "area", "bike", "myself", "target", "thunder" };
            IHDNode node      = new HDNode(works);
            IHDNode sonNode   = node.Derive(0);
            IHDNode grandNode = sonNode.Derive(1);

            Assert.True(node.PrivateKey.ToHexString() == "0x546498ba394789f18b5b4b62227572fe033f8f7f2597a747ada3d8ec8f20f650");
            Assert.True(sonNode.PrivateKey.ToHexString() == "0x12ddf96bb7f2c031ee9b776e2b236f2fc46de6f90fb9cd48a82e0c849327d251");
            Assert.True(grandNode.PrivateKey.ToHexString() == "0xa7af80364059211616e47394cf49240b40f7a87cea54ec99a6aa1815b586d74e");
        }
Пример #3
0
        public void TestHDNodeByPrivateKey()
        {
            byte[]  privateKey = "0x546498ba394789f18b5b4b62227572fe033f8f7f2597a747ada3d8ec8f20f650".ToBytes();
            byte[]  chainCode  = "0xc86826253a925f5958a838756e20ba33e71566da60b9e274f97342492c578c10".ToBytes();
            IHDNode node       = new HDNode(privateKey, chainCode);
            IHDNode sonNode    = node.Derive(0);
            IHDNode grandNode  = sonNode.Derive(1);

            Assert.True(node.PrivateKey.ToHexString() == "0x546498ba394789f18b5b4b62227572fe033f8f7f2597a747ada3d8ec8f20f650");
            Assert.True(sonNode.PrivateKey.ToHexString() == "0x12ddf96bb7f2c031ee9b776e2b236f2fc46de6f90fb9cd48a82e0c849327d251");
            Assert.True(grandNode.PrivateKey.ToHexString() == "0xa7af80364059211616e47394cf49240b40f7a87cea54ec99a6aa1815b586d74e");
        }
Пример #4
0
 public void UpdatePostHDValues()
 {
     {
         double    sum       = 0;
         EngineNet engineNet = _engineNet;
         for (int i = 0; i < engineNet.Nodes.Count; i++)
         {
             //if (NodesData[i] == null) continue;
             var engineNodeSewer = engineNet.Nodes[i] as EngineNodeVolume;
             if (engineNodeSewer == null)
             {
                 continue;
             }
             IHDNode hdNode = _hdModule.GetNode(engineNodeSewer);
             if (hdNode == null)
             {
                 continue;
             }
             double volume = engineNodeSewer.GetVolume(hdNode.WaterLevelNp1);
             _volPostHd.NodesData[i].Value = volume;
             sum += volume;
         }
         for (int i = 0; i < engineNet.Reaches.Count; i++)
         {
             IEngineDataReach <double> reachData = _volPostHd.ReachesData[i];
             if (reachData == null)
             {
                 continue;
             }
             IHDReach hdReach = _hdModule.GetReach(engineNet.Reaches[i]);
             if (hdReach == null)
             {
                 continue;
             }
             for (int j = 0; j < reachData.IndexList.Length; j++)
             {
                 int           jgp = reachData.IndexList[j];
                 IHDHGridPoint hgp = hdReach.GridPoints[jgp] as IHDHGridPoint;
                 if (hgp == null)
                 {
                     reachData[j] = 0;
                 }
                 else
                 {
                     reachData[j] = hgp.WaterVolumeNp1;
                     sum         += hgp.WaterLevelNp1;
                 }
             }
         }
         // Store total
         GenericData[0] = sum;
     }
 }
Пример #5
0
 /// <inheritdoc />
 public override void UpdateValues()
 {
     // if pull version, values are extracted when requested, and no action is required here.
     // If not pull, this needs to update the data and store it.
     {
         double    sum       = 0;
         EngineNet engineNet = _engineNet;
         for (int i = 0; i < engineNet.Nodes.Count; i++)
         {
             //if (NodesData[i] == null) continue;
             var engineNodeSewer = engineNet.Nodes[i] as EngineNodeVolume;
             if (engineNodeSewer == null)
             {
                 continue;
             }
             IHDNode hdNode = _hdModule.GetNode(engineNodeSewer);
             if (hdNode == null)
             {
                 continue;
             }
             double volumeN      = _volPostHd.NodesData[i].Value;
             double volumeNp1    = engineNodeSewer.GetVolume(hdNode.WaterLevelNp1);
             double volumechange = volumeNp1 - volumeN;
             sum         += volumechange;
             NodesData[i] = volumechange;
             _volAccumulated.NodesData[i].Value += volumechange;
         }
         for (int i = 0; i < engineNet.Reaches.Count; i++)
         {
             IEngineDataReach <double> reachDataPostHD = _volPostHd.ReachesData[i];
             IEngineDataReach <double> reachDataAcc    = _volAccumulated.ReachesData[i];
             IEngineDataReach <double> reachData       = ReachesData[i];
             if (reachData == null)
             {
                 continue;
             }
             IHDReach hdReach = _hdModule.GetReach(engineNet.Reaches[i]);
             if (hdReach == null)
             {
                 continue;
             }
             for (int j = 0; j < reachData.IndexList.Length; j++)
             {
                 int           jgp = reachData.IndexList[j];
                 IHDHGridPoint hgp = hdReach.GridPoints[jgp] as IHDHGridPoint;
                 if (hgp == null)
                 {
                     reachData[j] = 0;
                 }
                 else
                 {
                     double volumeN      = reachDataPostHD[j];
                     double volumeNp1    = hgp.WaterVolumeNp1;
                     double volumeChange = volumeNp1 - volumeN;
                     sum             += volumeChange;
                     reachData[j]     = volumeChange;
                     reachDataAcc[j] += volumeChange;
                 }
             }
         }
         // Store total
         GenericData[0] = sum;
         _volAccumulated.GenericData[0] += sum;
     }
 }