Updated on 2026-08-14

This commit is contained in:
Tangem 2019-02-20 13:13:18 +03:00
parent a717411892
commit b036295cd5
4 changed files with 29 additions and 10 deletions

View file

@ -1,5 +1,6 @@
package com.tangem.data.network;
import com.tangem.data.network.model.AdaliteBody;
import com.tangem.data.network.model.AdaliteResponse;
import com.tangem.data.network.model.AdaliteResponseUtxo;
@ -25,5 +26,5 @@ public interface AdaliteApi {
@Headers("Content-Type: application/json")
@POST(ServerApiAdalite.ADALITE_SEND)
Call<AdaliteResponse> adaliteSend(@Body String rawTx );
Call<AdaliteResponse> adaliteSend(@Body AdaliteBody adaliteBody);
}

View file

@ -2,6 +2,7 @@ package com.tangem.data.network;
import android.util.Log;
import com.tangem.data.network.model.AdaliteBody;
import com.tangem.data.network.model.AdaliteResponse;
import com.tangem.data.network.model.AdaliteResponseUtxo;
@ -19,7 +20,7 @@ public class ServerApiAdalite {
public static final String ADALITE_ADDRESS = "/api/addresses/summary/{address}";
public static final String ADALITE_UNSPENT_OUTPUTS = "/api/bulk/addresses/utxo";
// public static final String ADALITE_TRANSACTION = "/api/txs/raw/{txId}}";
public static final String ADALITE_SEND = "/tx/send";
public static final String ADALITE_SEND = "/api/v2/txs/signed";
private int requestsCount = 0;
@ -46,7 +47,7 @@ public class ServerApiAdalite {
public void requestData(String method, String wallet, String tx) {
requestsCount++;
String adaliteURL = "https://explorer.adalite.io"; //TODO: make random selection
String adaliteURL = "https://explorer2.adalite.io"; //TODO: make random selection
this.lastNode = adaliteURL; //TODO: show node instead of URL
Retrofit retrofitAdalite = new Retrofit.Builder()
@ -90,7 +91,7 @@ public class ServerApiAdalite {
// break;
case ADALITE_SEND:
call = adaliteApi.adaliteSend(tx);
call = adaliteApi.adaliteSend(new AdaliteBody(tx));
break;
default:

View file

@ -0,0 +1,9 @@
package com.tangem.data.network.model;
public class AdaliteBody {
private String signedTx;
public AdaliteBody(String signedTx) {
this.signedTx = signedTx;
}
}

View file

@ -2,6 +2,7 @@ package com.tangem.domain.wallet.cardano;
import android.net.Uri;
import android.text.InputFilter;
import android.util.Base64;
import android.util.Log;
import com.tangem.data.network.ServerApiAdalite;
@ -129,7 +130,7 @@ public class CardanoEngine extends CoinEngine {
@Override
public String getFeeCurrency() {
return "BTC";
return "ADA";
}
@Override
@ -396,8 +397,9 @@ public class CardanoEngine extends CoinEngine {
}
CborBuilder cborBuilder = new CborBuilder();
ArrayBuilder<CborBuilder> inputsArray = cborBuilder.startArray();
ArrayBuilder<CborBuilder> outputsArray = cborBuilder.startArray();
ArrayBuilder<CborBuilder> txArray = cborBuilder.addArray();
ArrayBuilder<ArrayBuilder<CborBuilder>> inputsArray = txArray.startArray();
ArrayBuilder<ArrayBuilder<CborBuilder>> outputsArray = txArray.startArray();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//Inputs
@ -443,11 +445,14 @@ public class CardanoEngine extends CoinEngine {
inputsArray.end();
outputsArray.end();
txArray.addMap().end();
baos.reset();
new CborEncoder(baos).encode(cborBuilder.build());
byte[] txBody = baos.toByteArray();
final Blake2b blake2b = Blake2b.Digest.newInstance(28);
final Blake2b blake2b = Blake2b.Digest.newInstance(32);//28?
byte[] txHash = blake2b.digest(txBody);
baos.reset();
@ -500,7 +505,7 @@ public class CardanoEngine extends CoinEngine {
baos.reset();
new CborEncoder(baos).encode(new CborBuilder()
.addArray()
.add(ctx.getCard().getCardPublicKey())
.add(ctx.getCard().getWalletPublicKey())
.add(signFromCard)
.end()
.build());
@ -526,6 +531,8 @@ public class CardanoEngine extends CoinEngine {
.end()
.build());
byte[] txForSend = baos.toByteArray();
notifyOnNeedSendTransaction(txForSend);
String hex = BTCUtils.toHex(txForSend);
return txForSend;
}
};
@ -616,7 +623,8 @@ public class CardanoEngine extends CoinEngine {
@Override
public void requestSendTransaction(BlockchainRequestsCallbacks blockchainRequestsCallbacks, byte[] txForSend) {
final ServerApiAdalite serverApiAdalite = new ServerApiAdalite();
final String txStr = BTCUtils.toHex(txForSend);
final String txStr = Base64.encodeToString(txForSend, Base64.NO_WRAP);
// BTCUtils.toHex(txForSend);
final ServerApiAdalite.ResponseListener responseListener = new ServerApiAdalite.ResponseListener() {
@Override