예제 #1
0
파일: St.cs 프로젝트: Ibasa/Ripple
        public void WriteAmount(StAmountFieldCode fieldCode, IssuedAmount value)
        {
            WriteFieldId(StTypeCode.Amount, (uint)fieldCode);
            var span = bufferWriter.GetSpan(48);

            System.Buffers.Binary.BinaryPrimitives.WriteUInt64BigEndian(bufferWriter.GetSpan(8), Currency.ToUInt64Bits(value.Value));
            value.CurrencyCode.CopyTo(span.Slice(8));
            value.Issuer.CopyTo(span.Slice(28));
            bufferWriter.Advance(48);
        }
예제 #2
0
파일: St.cs 프로젝트: Ibasa/Ripple
        public void WriteAmount(StAmountFieldCode fieldCode, Amount value)
        {
            var xrp = value.XrpAmount;

            if (xrp.HasValue)
            {
                WriteAmount(fieldCode, xrp.Value);
            }
            else
            {
                WriteAmount(fieldCode, value.IssuedAmount.Value);
            }
        }
예제 #3
0
파일: St.cs 프로젝트: Ibasa/Ripple
 public void WriteAmount(StAmountFieldCode fieldCode, XrpAmount value)
 {
     WriteFieldId(StTypeCode.Amount, (uint)fieldCode);
     System.Buffers.Binary.BinaryPrimitives.WriteUInt64BigEndian(bufferWriter.GetSpan(8), value.Drops | 0x4000000000000000);
     bufferWriter.Advance(8);
 }