Search in sources :

Example 16 with FlatBufferBuilder

use of com.google.flatbuffers.FlatBufferBuilder in project nem2-sdk-java by nemtech.

the class MosaicDefinitionTransaction method generateBytes.

byte[] generateBytes() {
    FlatBufferBuilder builder = new FlatBufferBuilder();
    BigInteger deadlineBigInt = BigInteger.valueOf(getDeadline().getInstant());
    int[] fee = new int[] { 0, 0 };
    int version = (int) Long.parseLong(Integer.toHexString(getNetworkType().getValue()) + "0" + Integer.toHexString(getVersion()), 16);
    int flags = 0;
    if (mosaicProperties.isSupplyMutable()) {
        flags += 1;
    }
    if (mosaicProperties.isTransferable()) {
        flags += 2;
    }
    if (mosaicProperties.isLevyMutable()) {
        flags += 4;
    }
    // Create Vectors
    int signatureVector = MosaicDefinitionCreationTransactionBuffer.createSignatureVector(builder, new byte[64]);
    int signerVector = MosaicDefinitionCreationTransactionBuffer.createSignerVector(builder, new byte[32]);
    int deadlineVector = MosaicDefinitionCreationTransactionBuffer.createDeadlineVector(builder, UInt64.fromBigInteger(deadlineBigInt));
    int feeVector = MosaicDefinitionCreationTransactionBuffer.createFeeVector(builder, fee);
    int mosaicIdVector = MosaicDefinitionCreationTransactionBuffer.createParentIdVector(builder, UInt64.fromBigInteger(mosaicId.getId()));
    int namespaceIdVector = MosaicDefinitionCreationTransactionBuffer.createParentIdVector(builder, UInt64.fromBigInteger(namespaceId.getId()));
    int durationVector = MosaicDefinitionCreationTransactionBuffer.createDurationVector(builder, UInt64.fromBigInteger(mosaicProperties.getDuration()));
    // replace by the all numbers sum or add a comment explaining this
    int fixSize = 149;
    int name = builder.createString(mosaicName);
    MosaicDefinitionCreationTransactionBuffer.startMosaicDefinitionCreationTransactionBuffer(builder);
    MosaicDefinitionCreationTransactionBuffer.addSize(builder, fixSize + mosaicName.length());
    MosaicDefinitionCreationTransactionBuffer.addSignature(builder, signatureVector);
    MosaicDefinitionCreationTransactionBuffer.addSigner(builder, signerVector);
    MosaicDefinitionCreationTransactionBuffer.addVersion(builder, version);
    MosaicDefinitionCreationTransactionBuffer.addType(builder, getType().getValue());
    MosaicDefinitionCreationTransactionBuffer.addFee(builder, feeVector);
    MosaicDefinitionCreationTransactionBuffer.addDeadline(builder, deadlineVector);
    MosaicDefinitionCreationTransactionBuffer.addMosaicId(builder, mosaicIdVector);
    MosaicDefinitionCreationTransactionBuffer.addParentId(builder, namespaceIdVector);
    MosaicDefinitionCreationTransactionBuffer.addMosaicNameLength(builder, mosaicName.length());
    MosaicDefinitionCreationTransactionBuffer.addNumOptionalProperties(builder, 1);
    MosaicDefinitionCreationTransactionBuffer.addFlags(builder, flags);
    MosaicDefinitionCreationTransactionBuffer.addDivisibility(builder, mosaicProperties.getDivisibility());
    MosaicDefinitionCreationTransactionBuffer.addMosaicName(builder, name);
    MosaicDefinitionCreationTransactionBuffer.addIndicateDuration(builder, 2);
    MosaicDefinitionCreationTransactionBuffer.addDuration(builder, durationVector);
    int codedTransaction = MosaicDefinitionCreationTransactionBuffer.endMosaicDefinitionCreationTransactionBuffer(builder);
    builder.finish(codedTransaction);
    return schema.serialize(builder.sizedByteArray());
}
Also used : FlatBufferBuilder(com.google.flatbuffers.FlatBufferBuilder) BigInteger(java.math.BigInteger)

Example 17 with FlatBufferBuilder

use of com.google.flatbuffers.FlatBufferBuilder in project nem2-sdk-java by nemtech.

the class SecretProofTransaction method generateBytes.

@Override
byte[] generateBytes() {
    FlatBufferBuilder builder = new FlatBufferBuilder();
    BigInteger deadlineBigInt = BigInteger.valueOf(getDeadline().getInstant());
    int[] fee = new int[] { 0, 0 };
    int version = (int) Long.parseLong(Integer.toHexString(getNetworkType().getValue()) + "0" + Integer.toHexString(getVersion()), 16);
    // Create Vectors
    int signatureVector = SecretProofTransactionBuffer.createSignatureVector(builder, new byte[64]);
    int signerVector = SecretProofTransactionBuffer.createSignerVector(builder, new byte[32]);
    int deadlineVector = SecretProofTransactionBuffer.createDeadlineVector(builder, UInt64.fromBigInteger(deadlineBigInt));
    int feeVector = SecretProofTransactionBuffer.createFeeVector(builder, fee);
    int secretVector = SecretProofTransactionBuffer.createSecretVector(builder, Hex.decode(secret));
    int proofVector = SecretProofTransactionBuffer.createProofVector(builder, Hex.decode(proof));
    SecretProofTransactionBuffer.startSecretProofTransactionBuffer(builder);
    SecretProofTransactionBuffer.addSize(builder, 187 + Hex.decode(proof).length);
    SecretProofTransactionBuffer.addSignature(builder, signatureVector);
    SecretProofTransactionBuffer.addSigner(builder, signerVector);
    SecretProofTransactionBuffer.addVersion(builder, version);
    SecretProofTransactionBuffer.addType(builder, getType().getValue());
    SecretProofTransactionBuffer.addFee(builder, feeVector);
    SecretProofTransactionBuffer.addDeadline(builder, deadlineVector);
    SecretProofTransactionBuffer.addHashAlgorithm(builder, hashType.getValue());
    SecretProofTransactionBuffer.addSecret(builder, secretVector);
    SecretProofTransactionBuffer.addProofSize(builder, Hex.decode(proof).length);
    SecretProofTransactionBuffer.addProof(builder, proofVector);
    int codedSecretProof = SecretProofTransactionBuffer.endSecretProofTransactionBuffer(builder);
    builder.finish(codedSecretProof);
    return schema.serialize(builder.sizedByteArray());
}
Also used : FlatBufferBuilder(com.google.flatbuffers.FlatBufferBuilder) BigInteger(java.math.BigInteger)

Example 18 with FlatBufferBuilder

use of com.google.flatbuffers.FlatBufferBuilder in project nem2-sdk-java by nemtech.

the class TransferTransaction method generateBytes.

byte[] generateBytes() {
    FlatBufferBuilder builder = new FlatBufferBuilder();
    BigInteger deadlineBigInt = BigInteger.valueOf(getDeadline().getInstant());
    int[] fee = new int[] { 0, 0 };
    int version = (int) Long.parseLong(Integer.toHexString(getNetworkType().getValue()) + "0" + Integer.toHexString(getVersion()), 16);
    // Create Message
    byte[] bytePayload = message.getPayload().getBytes(StandardCharsets.UTF_8);
    int payload = MessageBuffer.createPayloadVector(builder, bytePayload);
    MessageBuffer.startMessageBuffer(builder);
    MessageBuffer.addType(builder, message.getType());
    MessageBuffer.addPayload(builder, payload);
    int message = MessageBuffer.endMessageBuffer(builder);
    // Create Mosaics
    int[] mosaicBuffers = new int[mosaics.size()];
    for (int i = 0; i < mosaics.size(); ++i) {
        Mosaic mosaic = mosaics.get(i);
        int id = MosaicBuffer.createIdVector(builder, UInt64.fromBigInteger(mosaic.getId().getId()));
        int amount = MosaicBuffer.createAmountVector(builder, UInt64.fromBigInteger(mosaic.getAmount()));
        MosaicBuffer.startMosaicBuffer(builder);
        MosaicBuffer.addId(builder, id);
        MosaicBuffer.addAmount(builder, amount);
        mosaicBuffers[i] = MosaicBuffer.endMosaicBuffer(builder);
    }
    byte[] address = new Base32().decode(getRecipient().plain().getBytes(StandardCharsets.UTF_8));
    // Create Vectors
    int signatureVector = TransferTransactionBuffer.createSignatureVector(builder, new byte[64]);
    int signerVector = TransferTransactionBuffer.createSignerVector(builder, new byte[32]);
    int deadlineVector = TransferTransactionBuffer.createDeadlineVector(builder, UInt64.fromBigInteger(deadlineBigInt));
    int feeVector = TransferTransactionBuffer.createFeeVector(builder, fee);
    int recipientVector = TransferTransactionBuffer.createRecipientVector(builder, address);
    int mosaicsVector = TransferTransactionBuffer.createMosaicsVector(builder, mosaicBuffers);
    // replace by the all numbers sum or add a comment explaining this
    int fixSize = 149;
    TransferTransactionBuffer.startTransferTransactionBuffer(builder);
    TransferTransactionBuffer.addSize(builder, fixSize + (16 * mosaics.size()) + bytePayload.length);
    TransferTransactionBuffer.addSignature(builder, signatureVector);
    TransferTransactionBuffer.addSigner(builder, signerVector);
    TransferTransactionBuffer.addVersion(builder, version);
    TransferTransactionBuffer.addType(builder, getType().getValue());
    TransferTransactionBuffer.addFee(builder, feeVector);
    TransferTransactionBuffer.addDeadline(builder, deadlineVector);
    TransferTransactionBuffer.addRecipient(builder, recipientVector);
    TransferTransactionBuffer.addNumMosaics(builder, mosaics.size());
    TransferTransactionBuffer.addMessageSize(builder, bytePayload.length + 1);
    TransferTransactionBuffer.addMessage(builder, message);
    TransferTransactionBuffer.addMosaics(builder, mosaicsVector);
    int codedTransfer = TransferTransactionBuffer.endTransferTransactionBuffer(builder);
    builder.finish(codedTransfer);
    return schema.serialize(builder.sizedByteArray());
}
Also used : FlatBufferBuilder(com.google.flatbuffers.FlatBufferBuilder) BigInteger(java.math.BigInteger) Base32(org.apache.commons.codec.binary.Base32) Mosaic(io.nem.sdk.model.mosaic.Mosaic)

Example 19 with FlatBufferBuilder

use of com.google.flatbuffers.FlatBufferBuilder in project SeriesGuide by UweTrottmann.

the class FlatbufferTest method createAndReadBuffer.

@Test
public void createAndReadBuffer() {
    FlatBufferBuilder builder = new FlatBufferBuilder(0);
    int[] episodeInfos = new int[42];
    for (int i = 0; i < 21; i++) {
        episodeInfos[i] = EpisodeInfo.createEpisodeInfo(builder, 1, i + 1, i);
    }
    for (int i = 21; i < 42; i++) {
        episodeInfos[i] = EpisodeInfo.createEpisodeInfo(builder, 2, i + 1, i);
    }
    int episodes = SgJobInfo.createEpisodesVector(builder, episodeInfos);
    int jobInfo = SgJobInfo.createSgJobInfo(builder, 1, episodes, 0, 0, 42);
    builder.finish(jobInfo);
    byte[] bytes = builder.sizedByteArray();
    ByteBuffer bufferReloaded = ByteBuffer.wrap(bytes);
    SgJobInfo jobInfoReloaded = SgJobInfo.getRootAsSgJobInfo(bufferReloaded);
    assertThat(jobInfoReloaded.showId()).isEqualTo(42);
    assertThat(jobInfoReloaded.flagValue()).isEqualTo(1);
    assertThat(jobInfoReloaded.episodesLength()).isEqualTo(42);
    for (int i = 0; i < 21; i++) {
        EpisodeInfo episodeInfo = jobInfoReloaded.episodes(i);
        assertThat(episodeInfo.season()).isEqualTo(1);
        assertThat(episodeInfo.number()).isEqualTo(i + 1);
        assertThat(episodeInfo.plays()).isEqualTo(i);
    }
    for (int i = 21; i < 42; i++) {
        EpisodeInfo episodeInfo = jobInfoReloaded.episodes(i);
        assertThat(episodeInfo.season()).isEqualTo(2);
        assertThat(episodeInfo.number()).isEqualTo(i + 1);
        assertThat(episodeInfo.plays()).isEqualTo(i);
    }
}
Also used : FlatBufferBuilder(com.google.flatbuffers.FlatBufferBuilder) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test)

Example 20 with FlatBufferBuilder

use of com.google.flatbuffers.FlatBufferBuilder in project nd4j by deeplearning4j.

the class ByteOrderTests method testScalarEncoding.

@Test
public void testScalarEncoding() {
    val scalar = Nd4j.trueScalar(2.0f);
    FlatBufferBuilder bufferBuilder = new FlatBufferBuilder(0);
    val fb = scalar.toFlatArray(bufferBuilder);
    bufferBuilder.finish(fb);
    val db = bufferBuilder.dataBuffer();
    val flat = FlatArray.getRootAsFlatArray(db);
    val restored = Nd4j.createFromFlatArray(flat);
    assertEquals(scalar, restored);
}
Also used : lombok.val(lombok.val) FlatBufferBuilder(com.google.flatbuffers.FlatBufferBuilder) Test(org.junit.Test) BaseNd4jTest(org.nd4j.linalg.BaseNd4jTest)

Aggregations

FlatBufferBuilder (com.google.flatbuffers.FlatBufferBuilder)27 BigInteger (java.math.BigInteger)10 Test (org.junit.Test)7 ByteBuffer (java.nio.ByteBuffer)4 lombok.val (lombok.val)3 BaseNd4jTest (org.nd4j.linalg.BaseNd4jTest)3 ByteStringAccess (com.google.protobuf.ByteStringAccess)2 TIntArrayList (gnu.trove.list.array.TIntArrayList)2 UncheckedDeephavenException (io.deephaven.UncheckedDeephavenException)2 ChunkType (io.deephaven.chunk.ChunkType)2 Table (io.deephaven.engine.table.Table)2 TableDefinition (io.deephaven.engine.table.TableDefinition)2 BarrageMessage (io.deephaven.engine.table.impl.util.BarrageMessage)2 MessageHelper (io.deephaven.proto.flight.util.MessageHelper)2 Map (java.util.Map)2 Consumer (java.util.function.Consumer)2 ArrowBuf (org.apache.arrow.memory.ArrowBuf)2 RootAllocator (org.apache.arrow.memory.RootAllocator)2 Nullable (androidx.annotation.Nullable)1 SgEpisode2Numbers (com.battlelancer.seriesguide.provider.SgEpisode2Numbers)1