Search in sources :

Example 1 with Mosaic

use of io.nem.sdk.model.mosaic.Mosaic in project nem2-sdk-java by nemtech.

the class AggregateTransactionTest method serialization.

@Test
@DisplayName("Serialization")
void serialization() {
    // Generated at nem2-library-js/test/transactions/RegisterNamespaceTransaction.spec.js
    byte[] expected = new byte[] { (byte) 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, (byte) 144, 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, (byte) 132, 107, 68, 57, 21, 69, 121, (byte) 165, (byte) 144, 59, 20, 89, (byte) 201, (byte) 207, 105, (byte) 203, (byte) 129, 83, (byte) 246, (byte) 208, 17, 10, 122, 14, (byte) 214, 29, (byte) 226, (byte) 154, (byte) 228, (byte) 129, 11, (byte) 242, 3, (byte) 144, 84, 65, (byte) 144, 80, (byte) 185, (byte) 131, 126, (byte) 250, (byte) 180, (byte) 187, (byte) 232, (byte) 164, (byte) 185, (byte) 187, 50, (byte) 216, 18, (byte) 249, (byte) 136, 92, 0, (byte) 216, (byte) 252, 22, 80, (byte) 225, 66, 1, 0, 1, 0, 41, (byte) 207, 95, (byte) 217, 65, (byte) 173, 37, (byte) 213, (byte) 128, (byte) 150, (byte) 152, 0, 0, 0, 0, 0 };
    TransferTransaction transferTx = TransferTransaction.create(new FakeDeadline(), new Address("SBILTA367K2LX2FEXG5TFWAS7GEFYAGY7QLFBYKC", NetworkType.MIJIN_TEST), Collections.singletonList(new Mosaic(XEM.MOSAICID, BigInteger.valueOf(10000000))), PlainMessage.Empty, NetworkType.MIJIN_TEST);
    AggregateTransaction aggregateTx = AggregateTransaction.createComplete(new FakeDeadline(), Collections.singletonList(transferTx.toAggregate(new PublicAccount("846B4439154579A5903B1459C9CF69CB8153F6D0110A7A0ED61DE29AE4810BF2", NetworkType.MIJIN_TEST))), NetworkType.MIJIN_TEST);
    byte[] actual = aggregateTx.generateBytes();
    assertArrayEquals(expected, actual);
}
Also used : Address(io.nem.sdk.model.account.Address) PublicAccount(io.nem.sdk.model.account.PublicAccount) Mosaic(io.nem.sdk.model.mosaic.Mosaic) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 2 with Mosaic

use of io.nem.sdk.model.mosaic.Mosaic in project nem2-sdk-java by nemtech.

the class TransferTransactionTest method toAggregate.

@Test
@DisplayName("To aggregate")
void toAggregate() {
    byte[] expected = new byte[] { 85, 0, 0, 0, -102, 73, 54, 100, 6, -84, -87, 82, -72, -117, -83, -11, -15, -23, -66, 108, -28, -106, -127, 65, 3, 90, 96, -66, 80, 50, 115, -22, 101, 69, 107, 36, 3, -112, 84, 65, -112, -24, -2, -67, 103, 29, -44, 27, -18, -108, -20, 59, -91, -125, 28, -74, 8, -93, 18, -62, -14, 3, -70, -124, -84, 1, 0, 1, 0, 103, 43, 0, 0, -50, 86, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0 };
    TransferTransaction transferTransaction = TransferTransaction.create(new FakeDeadline(), new Address("SDUP5PLHDXKBX3UU5Q52LAY4WYEKGEWC6IB3VBFM", NetworkType.MIJIN_TEST), Arrays.asList(new Mosaic(new MosaicId(new BigInteger("95442763262823")), BigInteger.valueOf(100))), PlainMessage.Empty, NetworkType.MIJIN_TEST);
    byte[] actual = transferTransaction.toAggregate(new PublicAccount("9A49366406ACA952B88BADF5F1E9BE6CE4968141035A60BE503273EA65456B24", NetworkType.MIJIN_TEST)).toAggregateTransactionBytes();
    assertArrayEquals(expected, actual);
}
Also used : Address(io.nem.sdk.model.account.Address) MosaicId(io.nem.sdk.model.mosaic.MosaicId) PublicAccount(io.nem.sdk.model.account.PublicAccount) BigInteger(java.math.BigInteger) Mosaic(io.nem.sdk.model.mosaic.Mosaic) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 3 with Mosaic

use of io.nem.sdk.model.mosaic.Mosaic in project nem2-sdk-java by nemtech.

the class TransferTransactionTest method serializeAndSignTransaction.

@Test
void serializeAndSignTransaction() {
    TransferTransaction transferTransaction = TransferTransaction.create(new FakeDeadline(), new Address("SDUP5PLHDXKBX3UU5Q52LAY4WYEKGEWC6IB3VBFM", NetworkType.MIJIN_TEST), Arrays.asList(new Mosaic(new MosaicId(new BigInteger("95442763262823")), BigInteger.valueOf(100))), PlainMessage.Empty, NetworkType.MIJIN_TEST);
    SignedTransaction signedTransaction = transferTransaction.signWith(account);
    assertEquals("A5000000773891AD01DD4CDF6E3A55C186C673E256D7DF9D471846F1943CC3529E4E02B38B9AF3F8D13784645FF5FAAFA94A321B94933C673D12DE60E4BC05ABA56F750E1026D70E1954775749C6811084D6450A3184D977383F0E4282CD47118AF37755039054410000000000000000010000000000000090E8FEBD671DD41BEE94EC3BA5831CB608A312C2F203BA84AC01000100672B0000CE5600006400000000000000", signedTransaction.getPayload());
    assertEquals("350AE56BC97DB805E2098AB2C596FA4C6B37EF974BF24DFD61CD9F77C7687424", signedTransaction.getHash());
}
Also used : Address(io.nem.sdk.model.account.Address) MosaicId(io.nem.sdk.model.mosaic.MosaicId) BigInteger(java.math.BigInteger) Mosaic(io.nem.sdk.model.mosaic.Mosaic) Test(org.junit.jupiter.api.Test)

Example 4 with Mosaic

use of io.nem.sdk.model.mosaic.Mosaic in project nem2-sdk-java by nemtech.

the class AccountHttp method getAccountsInfo.

@Override
public Observable<List<AccountInfo>> getAccountsInfo(List<Address> addresses) {
    JsonObject requestBody = new JsonObject();
    requestBody.put("addresses", addresses.stream().map(address -> address.plain()).collect(Collectors.toList()));
    Observable<NetworkType> networkTypeResolve = getNetworkTypeObservable();
    return networkTypeResolve.flatMap(networkType -> this.client.postAbs(this.url.toString()).as(BodyCodec.jsonArray()).rxSendJson(requestBody).toObservable().map(HttpResponse::body).map(json -> objectMapper.<List<AccountInfoDTO>>readValue(json.toString(), new TypeReference<List<AccountInfoDTO>>() {
    })).flatMapIterable(item -> item).map(AccountInfoDTO::getAccount).map(accountDTO -> new AccountInfo(Address.createFromRawAddress(accountDTO.getAddressEncoded()), accountDTO.getAddressHeight().extractIntArray(), accountDTO.getPublicKey(), accountDTO.getPublicKeyHeight().extractIntArray(), accountDTO.getImportance().extractIntArray(), accountDTO.getImportanceHeight().extractIntArray(), accountDTO.getMosaics().stream().map(mosaicDTO -> new Mosaic(new MosaicId(mosaicDTO.getId().extractIntArray()), mosaicDTO.getAmount().extractIntArray())).collect(Collectors.toList()))).toList().toObservable());
}
Also used : Mosaic(io.nem.sdk.model.mosaic.Mosaic) HttpResponse(io.vertx.reactivex.ext.web.client.HttpResponse) MalformedURLException(java.net.MalformedURLException) AggregateTransaction(io.nem.sdk.model.transaction.AggregateTransaction) HashMap(java.util.HashMap) NetworkType(io.nem.sdk.model.blockchain.NetworkType) Collectors(java.util.stream.Collectors) JsonArray(io.vertx.core.json.JsonArray) List(java.util.List) BodyCodec(io.vertx.reactivex.ext.web.codec.BodyCodec) Function(io.reactivex.functions.Function) io.nem.sdk.model.account(io.nem.sdk.model.account) Map(java.util.Map) Optional(java.util.Optional) Transaction(io.nem.sdk.model.transaction.Transaction) Observable(io.reactivex.Observable) JsonObject(io.vertx.core.json.JsonObject) TypeReference(com.fasterxml.jackson.core.type.TypeReference) MosaicId(io.nem.sdk.model.mosaic.MosaicId) NetworkType(io.nem.sdk.model.blockchain.NetworkType) MosaicId(io.nem.sdk.model.mosaic.MosaicId) JsonObject(io.vertx.core.json.JsonObject) TypeReference(com.fasterxml.jackson.core.type.TypeReference) Mosaic(io.nem.sdk.model.mosaic.Mosaic)

Example 5 with Mosaic

use of io.nem.sdk.model.mosaic.Mosaic in project nem2-sdk-java by nemtech.

the class SecretProofTransactionMapping method apply.

@Override
public TransferTransaction apply(JsonObject input) {
    TransactionInfo transactionInfo = this.createTransactionInfo(input.getJsonObject("meta"));
    JsonObject transaction = input.getJsonObject("transaction");
    Deadline deadline = new Deadline(extractBigInteger(transaction.getJsonArray("deadline")));
    List<Mosaic> mosaics = new ArrayList<>();
    if (transaction.getJsonArray("mosaics") != null) {
        mosaics = transaction.getJsonArray("mosaics").stream().map(item -> (JsonObject) item).map(mosaic -> new Mosaic(new MosaicId(extractBigInteger(mosaic.getJsonArray("id"))), extractBigInteger(mosaic.getJsonArray("amount")))).collect(Collectors.toList());
    }
    Message message = PlainMessage.Empty;
    if (transaction.getJsonObject("message") != null) {
        try {
            message = new PlainMessage(new String(Hex.decode(transaction.getJsonObject("message").getString("payload")), "UTF-8"));
        } catch (UnsupportedEncodingException e) {
            message = new PlainMessage(transaction.getJsonObject("message").getString("payload"));
        }
    }
    return new TransferTransaction(extractNetworkType(transaction.getInteger("version")), extractTransactionVersion(transaction.getInteger("version")), deadline, extractBigInteger(transaction.getJsonArray("fee")), Address.createFromEncoded(transaction.getString("recipient")), mosaics, message, transaction.getString("signature"), new PublicAccount(transaction.getString("signer"), extractNetworkType(transaction.getInteger("version"))), transactionInfo);
}
Also used : Mosaic(io.nem.sdk.model.mosaic.Mosaic) NamespaceType(io.nem.sdk.model.namespace.NamespaceType) NetworkType(io.nem.sdk.model.blockchain.NetworkType) Collectors(java.util.stream.Collectors) io.nem.sdk.model.transaction(io.nem.sdk.model.transaction) Hex(org.bouncycastle.util.encoders.Hex) ArrayList(java.util.ArrayList) JsonArray(io.vertx.core.json.JsonArray) List(java.util.List) PublicAccount(io.nem.sdk.model.account.PublicAccount) Function(io.reactivex.functions.Function) Address(io.nem.sdk.model.account.Address) MosaicProperties(io.nem.sdk.model.mosaic.MosaicProperties) NamespaceId(io.nem.sdk.model.namespace.NamespaceId) Optional(java.util.Optional) JsonObject(io.vertx.core.json.JsonObject) BigInteger(java.math.BigInteger) MosaicId(io.nem.sdk.model.mosaic.MosaicId) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Collections(java.util.Collections) MosaicSupplyType(io.nem.sdk.model.mosaic.MosaicSupplyType) ArrayList(java.util.ArrayList) JsonObject(io.vertx.core.json.JsonObject) UnsupportedEncodingException(java.io.UnsupportedEncodingException) MosaicId(io.nem.sdk.model.mosaic.MosaicId) PublicAccount(io.nem.sdk.model.account.PublicAccount) Mosaic(io.nem.sdk.model.mosaic.Mosaic)

Aggregations

Mosaic (io.nem.sdk.model.mosaic.Mosaic)9 BigInteger (java.math.BigInteger)7 MosaicId (io.nem.sdk.model.mosaic.MosaicId)6 Test (org.junit.jupiter.api.Test)6 Address (io.nem.sdk.model.account.Address)5 PublicAccount (io.nem.sdk.model.account.PublicAccount)3 DisplayName (org.junit.jupiter.api.DisplayName)3 NetworkType (io.nem.sdk.model.blockchain.NetworkType)2 Function (io.reactivex.functions.Function)2 JsonArray (io.vertx.core.json.JsonArray)2 JsonObject (io.vertx.core.json.JsonObject)2 List (java.util.List)2 Optional (java.util.Optional)2 Collectors (java.util.stream.Collectors)2 TypeReference (com.fasterxml.jackson.core.type.TypeReference)1 FlatBufferBuilder (com.google.flatbuffers.FlatBufferBuilder)1 io.nem.sdk.model.account (io.nem.sdk.model.account)1 MosaicProperties (io.nem.sdk.model.mosaic.MosaicProperties)1 MosaicSupplyType (io.nem.sdk.model.mosaic.MosaicSupplyType)1 NamespaceId (io.nem.sdk.model.namespace.NamespaceId)1