internal override byte[] GenerateBytes() { var builder = new FlatBufferBuilder(1); var mosaicName = Encoding.UTF8.GetBytes(MosaicId.Name); var namespaceName = Encoding.UTF8.GetBytes(MosaicId.NamespaceId.Name); var signerVector = SupplyChangeBuffer.CreatePublicKeyVector(builder, GetSigner()); var namespaceVector = SupplyChangeBuffer.CreateNamespaceIdstringVector(builder, namespaceName); var mosaicNameVector = SupplyChangeBuffer.CreateMosaicNameStringVector(builder, mosaicName); SupplyChangeBuffer.StartSupplyChangeBuffer(builder); SupplyChangeBuffer.AddTransactionType(builder, TransactionType.GetValue()); SupplyChangeBuffer.AddVersion(builder, BitConverter.ToInt16(new byte[] { ExtractVersion(Version), 0 }, 0)); SupplyChangeBuffer.AddNetwork(builder, BitConverter.ToInt16(new byte[] { 0, NetworkType.GetNetwork() }, 0)); SupplyChangeBuffer.AddTimestamp(builder, NetworkTime.EpochTimeInMilliSeconds()); SupplyChangeBuffer.AddPublicKeyLen(builder, 32); SupplyChangeBuffer.AddPublicKey(builder, signerVector); SupplyChangeBuffer.AddFee(builder, Fee); SupplyChangeBuffer.AddDeadline(builder, Deadline.Ticks); SupplyChangeBuffer.AddLengthOfMosaicIdStructure(builder, 8 + namespaceName.Length + mosaicName.Length); SupplyChangeBuffer.AddLengthOfNamespaceIdString(builder, namespaceName.Length); SupplyChangeBuffer.AddNamespaceIdstring(builder, namespaceVector); SupplyChangeBuffer.AddLengthOfMosaicNameString(builder, mosaicName.Length); SupplyChangeBuffer.AddMosaicNameString(builder, mosaicNameVector); SupplyChangeBuffer.AddSupplyType(builder, SupplyType); SupplyChangeBuffer.AddDelta(builder, Delta); var codedTransfer = ImportanceTransferBuffer.EndImportanceTransferBuffer(builder); builder.Finish(codedTransfer.Value); return(new SupplyChangeTransactionSchema().Serialize(builder.SizedByteArray())); }
internal override byte[] GenerateBytes() { var builder = new FlatBufferBuilder(1); var signer = ImportanceTransferBuffer.CreatePublicKeyVector(builder, GetSigner()); var remote = ImportanceTransferBuffer.CreateRemotePublicKeyVector(builder, RemoteAccount.PublicKey.FromHex()); ImportanceTransferBuffer.StartImportanceTransferBuffer(builder); ImportanceTransferBuffer.AddTransactionType(builder, TransactionType.GetValue()); ImportanceTransferBuffer.AddVersion(builder, BitConverter.ToInt16(new byte[] { ExtractVersion(Version), 0 }, 0)); ImportanceTransferBuffer.AddNetwork(builder, BitConverter.ToInt16(new byte[] { 0, NetworkType.GetNetwork() }, 0)); ImportanceTransferBuffer.AddTimestamp(builder, NetworkTime.EpochTimeInMilliSeconds()); ImportanceTransferBuffer.AddPublicKeyLen(builder, 32); ImportanceTransferBuffer.AddPublicKey(builder, signer); ImportanceTransferBuffer.AddFee(builder, Fee); ImportanceTransferBuffer.AddDeadline(builder, Deadline.TimeStamp); ImportanceTransferBuffer.AddMode(builder, Mode.GetValue()); ImportanceTransferBuffer.AddRemotePublicKeyLen(builder, 32); ImportanceTransferBuffer.AddRemotePublicKey(builder, remote); var codedTransfer = ImportanceTransferBuffer.EndImportanceTransferBuffer(builder); builder.Finish(codedTransfer.Value); return(new ImportanceTransferSchema().Serialize(builder.SizedByteArray())); }