Exemplo n.º 1
0
        public void TestLte()
        {
            var n = new UInt64((long)34);
            var n2 = new UInt32((long)400);

            Assert.IsTrue(n.Lte(n2));
        }
Exemplo n.º 2
0
        public void TestFromHex()
        {
            string hex;

            hex = "0042F6490042F649034D494E0042ABC39A8FF4E51EF1CFD228F628205DFC6B0EDA5DEEAF46BA14A37428732256362FF081CFD716A2183FB3228BE9434246265FE4BB0D07D4E63B5055AF6AA53DE0E44983B5DEFAA5BAD4966EAD2F192EB1531F441C161B2785636A84E61D3867DC9F8B92A3B194367EC48CBCB6AD740A6E7351AA95732B931C25B1CAFA20DEED8C5A061394DEB8E5C81D6C98BB9572A799E0038B8A0735FAA37FB1CD6DF7B964A9F95D2787C0B26CA8B77539B90F9029F5E11CFFBB79B60C55F021CA47D18C4DCF368C1BD8904258C43DCB903955083C923008D2FFDEB9048E78514B37B5A44E7BBB24D1DC3ED73DE0B6F3C261308614ED4B5EBD72B881FCAA77810ACDD959CE7D94A64A60072D04933C573AE95C7CD96BD6EF9902B3F7BBAC14470D7574F14B0006B0C8C83EA3F2DC84898DF4FFF878DF9EBBABACDD0CFCF0B8361393C86CB71487C2710AAA42F6E544E271CCD202734F8875925D4BF0B8899300453D395B4FED1DB201A5A92657D750FAA5102EC7646BDB8FD898F8A0C616FA7FAD7E9FE3F31E5C0BA553066F982F77F78BFFF5281BDDE38113C21DD1F1989D26C760FE7D93F1DA0A0A8F10BB3A84DA74D0D1D8827C47C657D69AE3B6128E43737539C4242563124A9AB3DAFB370A6517CE98CAD118CF0BB4236D101304C258A1955A19640787D42C43DA897AEFA4CAA4A436896DDBA01277FF4DF50815625CB908BBC5CEA2";
            hex = "0042F6490042F649034D494E005EDB65AB957D695626134B8D27A26AD7483C67493706F732195962A0490B810403D5AB5ED0ED91B018F8966AB85FFC6211DF56B9EDCAB15E91A17187F5F7872894DAEA1C62801AC50CC8C2B7C0ABFE5976B88EE8A6BA22EAF27CD1555293CCBFCB7EAE9998A5304E6E2BCDE2877D77F03F429EF5BBD2738F65ECCA5377DA019B2BCD90DF7E193B9C630ABC87C9EEEC5F8D4424AE1F46E0C8990D850908FAF701430EA31563289441F77853B784A3BAC0E34003ADC2C6EF52652185C5A6DFCF367BC74A5B740F17AEBFA9906ECE54D76873C5646649D41B70C8DBCD9A2324655F5E79C315A47A46AD697054F054E264F1B668CF39CD9C37E0C8C19DB34C3853082EC02285F78F320123C1ABC26B16B597861A827FB401A7D7CEE0801C2443C8269276F68FA757CB6B75485367BD98B797900EF5E7990819606FB94BBFCD31034E2CEB15774FEFEAD6B8997D73F1E6EA0ADDA08930B3166E8D3158E7240EA7AA0559D82807EA7D8A0B27CAEC02C160F3EF20D8B9F75C5BC2B237DE787267816BA9069F3A1CB25F6B8EA7AEEF18FB8E7A176F9F8AB8D437AABADA26B3DA7E590DD47B641B021B404ACBD8DE300D0D94AD1DAE40F4A5E005B781BB030B78A6CB6198A86C693E3876E5E14A2EAF565095E650FED3DB7583FB176C4538E63DB1960394A13C15A65D43E4CA2371D8F8AB0B2C1A5FD495A9BC713F5702B9A61798DF68B2";
            hex = "0042F66C0042F66C034D494E001B82A1F58AACB12B5B31D77FB66D495902D1F2319CE3150399B8752436DDF4F3ED337A4389EEA30EBDB2852A0270D16B1AD31AA52070417D4AC2AD08A599DC523C1608EF7A471FF4149F86703039FB8196E46AB2BB6FA48A860CF023606B3C034B4B48C35EED94585F007FFD5BCDFCA07543A05EE40EB2CCA700E1030EA293E6835E2A8404D0C23CBA9138AF0374CABB8048A7C35842F5FED73F22F11ADD1A18FC246C4A297CF24C489B5C6FF9C0548E1C4CDCB7238A7D1FE9F2C72C832CF6C5B54E46FB7D32214CA3CF5103D3C02085AD8AD83367FCC7F2FF18551A28A6E2395C38A57B9900A90FCA75ED22C637485607FF290849653D93C93660F0C0C7DC885E4DCBCBF487D114CADC87B43E43C883CC832650E262E87687C991133DEE674AC1883F5EAF882D34676BA1A0BAF7F71B00CB90C7CED239B06A2C07BC1BAAD78B8C69611A60076F584FEBEA55A9318AC16B81E909A0E32BA22DF65745ADACC8F0DBDC2639EA6E87DCD5FF2F8E813ED9238874793D2183E527B31C46CE0662131A11583CCE8C1F1DF0D126940E1CEE23279016AEFC890E737640348A124F47FC32BE9F5BF42F00AC8EE98E5DE574DA21CED5CAA11EAC0E29D47357ACD24176B8245042718125DE70B33BCA9CC5DF93A44BCC2D21BE5F5097C850D49898B28027BC6E64AC6B27A8C12870B512F492E9A25234B5F9612B62827317224307671E51F4";
            hex = "0043186A0043186A034D494E00BAE1CDA3900D114AEACC58CACC31A0FD0993C912E21856F4ADD3EE42067040D87D2325253B9500C3B34264D04957F342E88C05FD142CB161B71B798C877DADA8AC800869229BC95BEE22D5089A8B6F431232B85F97B5E9E12B971AE8A7B09B65D2B8224633B93167BB6A5ECB907F61876E1ACA6468619B93DB62579F9103A45BF34D423A13B1B6591463BD6084F0E750ED3F1FFA049ECE257ED9D73AA79EF2867DE45E6DCC16422C7B6EAE838953DE97B335340124B5F808147BAA3B9D0C5F9D375665CDEAAAD626758F07B81D8801A2E0497D557507A1B81FD0B4B8ACC99BE5F373026CBF1CEBAA67B6F3B16F3A0ACE8CFABF31B250026C93EB1B9F12894D4C0000000000000000000000000000000000000000000000000000000000000000A5372090CC48F0ADA25B82120DFDA894444123E672B3BDEB378C3314ACFABF0F0000000000000000000000000000000000000000000000000000000000000000EDF70B0BCA07555F8E998766A9B6DF1130E00A80D1717BFA8BF6DC3E1486A7C663E25330CF5901E8281B7553AD1A44B5BC60FE99903CE37D0942E514B44F688E0FBAFD8B5552AF401C7DCC374FD49D78EBCD8725BFFBA32B98C1177AD1A5F2B089A3E18DEB32E09EA1AFFBAC77139FEEFB3A23BE23C33D136C002A4776BBF392CE958B069A7633129A6972AF74DA8716C406CA644E9ADCE2C09FAC7E8FDC35CB";
            hex = "00431B7E00431B7E034D494E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BFA83E6686DABADC07D60BA52FC03A326DB67D53CE6073EF2A094EDFA7ED43752FD3F91A7937C74E82EAF7D4EB3798DFCB922AFCC9764B6ADBCFFAA1C8483968A685548DFD8CD4577DB3BCEFA33B3B7739E80332AA36BE141C658B446230097E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038B53F0882C67FB3513C16BE83927EBC43E525959DF6BA7DC04944FF8B555020";

            var parser = new BinaryParser(hex);

            var ledgerIndex  = UInt32.OutTranslate.FromParser(parser);
            var ledgerIndex2 = UInt32.OutTranslate.FromParser(parser);

            var type = (char)parser.ReadOne();

            System.Console.WriteLine((int)type);
            UInt32 prefix    = UInt32.OutTranslate.FromParser(parser);
            UInt32 innerNode = HashPrefix.InnerNode.UInt32;

            Assert.AreEqual(prefix, innerNode);

            var hashes = Vector256.OutTranslate.FromParser(parser);

            foreach (var hash in hashes)
            {
                Console.WriteLine("0x" + hash);
            }
        }
Exemplo n.º 3
0
        public void TestXrpFromMantissaBytes()
        {
            long l = 99000001;

            byte[] mantissa = new UInt32(l).ToByteArray();

            var bigDecimal = Amount.XrpFromDropsMantissa(mantissa, 1);

            Assert.AreEqual("99000001", bigDecimal.ScaleByPowerOfTen(6).ToPlainString());
        }
Exemplo n.º 4
0
        public void Prepare(IKeyPair keyPair, Amount fee, UInt32 sequence, UInt32 lastLedgerSequence)
        {
            // This won't always be specified
            if (lastLedgerSequence != null)
            {
                Txn.Add(UInt32.LastLedgerSequence, lastLedgerSequence);
            }

            Txn.Add(UInt32.Sequence, sequence);
            Txn.Add(Amount.Fee, fee);
            Txn.Add(VariableLength.SigningPubKey, keyPair.PubBytes());

            if (Transaction.CanonicalFlagDeployed)
            {
                Txn.SetCanonicalSignatureFlag();
            }

            SigningHash = Txn.SigningHash();
            if (PreviousSigningHash != null && SigningHash.Equals(PreviousSigningHash))
            {
                return;
            }

            try
            {
                byte[] signature = keyPair.Sign(SigningHash.Bytes);
                Txn.Add(VariableLength.TxnSignature, signature);

                var blob = new BytesList();
                Hash256.HalfSha512 id = Hash256.Prefixed256(HashPrefix.TransactionId);

                Txn.ToBytesSink(new MultiSink(blob, id));
                TxBlob = blob.BytesHex();
                Hash = id.Finish();
            }
            catch (Exception e)
            {
                // electric paranoia
                PreviousSigningHash = null;
                throw new ApplicationException("Something went wrong.", e);
            }

            PreviousSigningHash = SigningHash;
        }
Exemplo n.º 5
0
        public void Prepare(IKeyPair keyPair, Amount fee, UInt32 sequence, UInt32 lastLedgerSequence)
        {
            // This won't always be specified
            if (lastLedgerSequence != null)
            {
                Txn.Add(UInt32.LastLedgerSequence, lastLedgerSequence);
            }

            Txn.Add(UInt32.Sequence, sequence);
            Txn.Add(Amount.Fee, fee);
            Txn.Add(VariableLength.SigningPubKey, keyPair.PubBytes());

            if (Transaction.CanonicalFlagDeployed)
            {
                Txn.SetCanonicalSignatureFlag();
            }

            SigningHash = Txn.SigningHash();
            if (PreviousSigningHash != null && SigningHash.Equals(PreviousSigningHash))
            {
                return;
            }

            try
            {
                byte[] signature = keyPair.Sign(SigningHash.Bytes);
                Txn.Add(VariableLength.TxnSignature, signature);

                var blob = new BytesList();
                Hash256.HalfSha512 id = Hash256.Prefixed256(HashPrefix.TransactionId);

                Txn.ToBytesSink(new MultiSink(blob, id));
                TxBlob = blob.BytesHex();
                Hash   = id.Finish();
            }
            catch (Exception e)
            {
                // electric paranoia
                PreviousSigningHash = null;
                throw new ApplicationException("Something went wrong.", e);
            }

            PreviousSigningHash = SigningHash;
        }