Example #1
0
        public override (object, int) Decode(byte[] data, int position, bool packed)
        {
            (BigInteger nominator, int newPosition) = Int256.DecodeInt(data, position, packed);
            BigRational rational = BigRational.FromBigInt(nominator) * BigRational.Reciprocal(BigRational.Pow(BigRational.FromInt(10), Precision));

            return(rational, newPosition);
        }
Example #2
0
        public void Test_fixed(AbiEncodingStyle encodingStyle)
        {
            AbiFixed     type      = AbiType.Fixed;
            BigRational  data      = BigRational.FromBigInt(123456789) * BigRational.Reciprocal(BigRational.Pow(BigRational.FromInt(10), type.Precision));
            AbiSignature signature = new AbiSignature("abc", type);

            byte[]   encoded   = _abiEncoder.Encode(encodingStyle, signature, data);
            object[] arguments = _abiEncoder.Decode(encodingStyle, signature, encoded);
            Assert.AreEqual(arguments[0], data);
        }
Example #3
0
        public static void Calculate()
        {
            var shifterValue  = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
            var shifterFormat = shifterValue.Replace("1", string.Empty);
            var shifter       = BigRational.FromBigInt(SN.BigInteger.Parse(shifterValue));

            var pi = CalculateValue(BigRational.FromDecimal(400m));

            Console.Out.Write($"{pi.GetWholePart()}.");

            for (var i = 0; i < 40; i++)
            {
                pi = pi.GetFractionPart() * shifter;
                Console.Out.Write(pi.GetWholePart().ToString(shifterFormat));
            }
        }