/// <summary> /// Generates the bytes. /// </summary> /// <returns>System.Byte[].</returns> internal override byte[] GenerateBytes() { var builder = new FlatBufferBuilder(1); // create vectors var signatureVector = MosaicSupplyChangeTransactionBuffer.CreateSignatureVector(builder, new byte[64]); var signerVector = MosaicSupplyChangeTransactionBuffer.CreateSignerVector(builder, GetSigner()); var feeVector = MosaicSupplyChangeTransactionBuffer.CreateFeeVector(builder, Fee.ToUInt8Array()); var deadlineVector = MosaicSupplyChangeTransactionBuffer.CreateDeadlineVector(builder, Deadline.Ticks.ToUInt8Array()); var mosaicIdVector = MosaicSupplyChangeTransactionBuffer.CreateMosaicIdVector(builder, MosaicId.Id.ToUInt8Array()); var deltaVector = MosaicSupplyChangeTransactionBuffer.CreateFeeVector(builder, Delta.ToUInt8Array()); ushort version = ushort.Parse(NetworkType.GetNetworkByte().ToString("X") + "0" + Version.ToString("X"), System.Globalization.NumberStyles.HexNumber); // add vectors to buffer MosaicSupplyChangeTransactionBuffer.StartMosaicSupplyChangeTransactionBuffer(builder); MosaicSupplyChangeTransactionBuffer.AddSize(builder, 137); MosaicSupplyChangeTransactionBuffer.AddSignature(builder, signatureVector); MosaicSupplyChangeTransactionBuffer.AddSigner(builder, signerVector); MosaicSupplyChangeTransactionBuffer.AddVersion(builder, version); MosaicSupplyChangeTransactionBuffer.AddType(builder, TransactionTypes.Types.MosaicSupplyChange.GetValue()); MosaicSupplyChangeTransactionBuffer.AddFee(builder, feeVector); MosaicSupplyChangeTransactionBuffer.AddDeadline(builder, deadlineVector); MosaicSupplyChangeTransactionBuffer.AddMosaicId(builder, mosaicIdVector); MosaicSupplyChangeTransactionBuffer.AddDirection(builder, SupplyType.GetValue()); MosaicSupplyChangeTransactionBuffer.AddDelta(builder, deltaVector); // end build var codedTransfer = TransferTransactionBuffer.EndTransferTransactionBuffer(builder); builder.Finish(codedTransfer.Value); return(new MosaicSupplyChangeTransactionSchema().Serialize(builder.SizedByteArray())); }
internal override byte[] GenerateBytes() { var builder = new FlatBufferBuilder(1); var signatureVector = MosaicSupplyChangeTransactionBuffer.CreateSignatureVector(builder, new byte[64]); var signerVector = MosaicSupplyChangeTransactionBuffer.CreateSignerVector(builder, GetSigner()); var feeVector = MosaicSupplyChangeTransactionBuffer.CreateMaxFeeVector(builder, MaxFee?.ToUInt8Array()); var deadlineVector = MosaicSupplyChangeTransactionBuffer.CreateDeadlineVector(builder, Deadline.Ticks.ToUInt8Array()); var mosaicIdVector = MosaicSupplyChangeTransactionBuffer.CreateMosaicIdVector(builder, MosaicId.Id.ToUInt8Array()); var deltaVector = MosaicSupplyChangeTransactionBuffer.CreateDeltaVector(builder, Delta.ToUInt8Array()); // create version var version = GetTxVersionSerialization(); int totalSize = GetSerializedSize(); MosaicSupplyChangeTransactionBuffer.StartMosaicSupplyChangeTransactionBuffer(builder); MosaicSupplyChangeTransactionBuffer.AddSize(builder, (uint)totalSize); MosaicSupplyChangeTransactionBuffer.AddSignature(builder, signatureVector); MosaicSupplyChangeTransactionBuffer.AddSigner(builder, signerVector); MosaicSupplyChangeTransactionBuffer.AddVersion(builder, (uint)version); MosaicSupplyChangeTransactionBuffer.AddType(builder, TransactionType.GetValue()); MosaicSupplyChangeTransactionBuffer.AddMaxFee(builder, feeVector); MosaicSupplyChangeTransactionBuffer.AddDeadline(builder, deadlineVector); MosaicSupplyChangeTransactionBuffer.AddMosaicId(builder, mosaicIdVector); MosaicSupplyChangeTransactionBuffer.AddDirection(builder, MosaicSupplyType.GetValueInByte()); MosaicSupplyChangeTransactionBuffer.AddDelta(builder, deltaVector); var codedTransaction = MosaicSupplyChangeTransactionBuffer.EndMosaicSupplyChangeTransactionBuffer(builder); builder.Finish(codedTransaction.Value); var output = new MosaicSupplyChangeTransactionSchema().Serialize(builder.SizedByteArray()); if (output.Length != totalSize) { throw new SerializationException("Serialized form has incorrect length"); } return(output); }