|
27 | 27 | import org.fisco.bcos.sdk.jni.utilities.tx.Transaction;
|
28 | 28 | import org.fisco.bcos.sdk.jni.utilities.tx.TransactionBuilderJniObj;
|
29 | 29 | import org.fisco.bcos.sdk.jni.utilities.tx.TransactionBuilderV2JniObj;
|
| 30 | +import org.fisco.bcos.sdk.jni.utilities.tx.TransactionData; |
| 31 | +import org.fisco.bcos.sdk.jni.utilities.tx.TransactionDataV2; |
30 | 32 | import org.fisco.bcos.sdk.jni.utilities.tx.TransactionStructBuilderJniObj;
|
31 |
| -import org.fisco.bcos.sdk.jni.utilities.tx.TransactionStructBuilderV2JniObj; |
32 |
| -import org.fisco.bcos.sdk.jni.utilities.tx.TransactionV2; |
33 | 33 | import org.fisco.bcos.sdk.jni.utilities.tx.TransactionVersion;
|
34 | 34 | import org.fisco.bcos.sdk.v3.client.exceptions.ClientException;
|
35 | 35 | import org.fisco.bcos.sdk.v3.crypto.CryptoSuite;
|
@@ -383,52 +383,60 @@ public byte[] encodeTransactionData() throws IOException {
|
383 | 383 |
|
384 | 384 | public static JsonTransactionResponse decodeTransactionV1(String hexString)
|
385 | 385 | throws JniException {
|
386 |
| - TransactionV2 transactionV2 = |
387 |
| - TransactionStructBuilderV2JniObj.decodeTransactionStructV2(hexString); |
| 386 | + Transaction transactionV2 = |
| 387 | + TransactionStructBuilderJniObj.decodeTransactionStructV2(hexString); |
| 388 | + TransactionData transactionData = transactionV2.getTransactionData(); |
388 | 389 | JsonTransactionResponse jsonTransactionResponse = new JsonTransactionResponse();
|
389 |
| - jsonTransactionResponse.setVersion(transactionV2.getTransactionData().getVersion()); |
390 |
| - jsonTransactionResponse.setHash(Hex.toHexString(transactionV2.getDataHash().getBuffer())); |
391 |
| - jsonTransactionResponse.setNonce(transactionV2.getTransactionData().getNonce()); |
392 |
| - jsonTransactionResponse.setBlockLimit(transactionV2.getTransactionData().getBlockLimit()); |
393 |
| - jsonTransactionResponse.setTo(transactionV2.getTransactionData().getTo()); |
394 |
| - // jsonTransactionResponse.setFrom(Hex.toHexString(transactionV2.getSender().getBuffer())); |
395 |
| - jsonTransactionResponse.setAbi(transactionV2.getTransactionData().getAbi()); |
| 390 | + jsonTransactionResponse.setVersion(transactionData.getVersion()); |
| 391 | + jsonTransactionResponse.setHash( |
| 392 | + Hex.toHexStringWithPrefixNullable(transactionV2.getDataHash(), "")); |
| 393 | + jsonTransactionResponse.setNonce(transactionData.getNonce()); |
| 394 | + jsonTransactionResponse.setBlockLimit(transactionData.getBlockLimit()); |
| 395 | + jsonTransactionResponse.setTo(transactionData.getTo()); |
| 396 | + jsonTransactionResponse.setFrom( |
| 397 | + Hex.toHexStringWithPrefixNullable(transactionV2.getSender(), "")); |
| 398 | + jsonTransactionResponse.setAbi(transactionData.getAbi()); |
396 | 399 | jsonTransactionResponse.setInput(
|
397 |
| - Hex.toHexString(transactionV2.getTransactionData().getInput().getBuffer())); |
398 |
| - jsonTransactionResponse.setChainID(transactionV2.getTransactionData().getChainId()); |
399 |
| - jsonTransactionResponse.setGroupID(transactionV2.getTransactionData().getGroupId()); |
| 400 | + Hex.toHexStringWithPrefixNullable(transactionData.getInput(), "")); |
| 401 | + jsonTransactionResponse.setChainID(transactionData.getChainId()); |
| 402 | + jsonTransactionResponse.setGroupID(transactionData.getGroupId()); |
400 | 403 | jsonTransactionResponse.setExtraData(transactionV2.getExtraData());
|
401 | 404 | jsonTransactionResponse.setSignature(
|
402 |
| - Hex.toHexString(transactionV2.getSignature().getBuffer())); |
| 405 | + Hex.toHexStringWithPrefixNullable(transactionV2.getSignature(), "")); |
403 | 406 | jsonTransactionResponse.setImportTime(transactionV2.getImportTime());
|
404 | 407 |
|
405 |
| - jsonTransactionResponse.setValue(transactionV2.getTransactionData().getValue()); |
406 |
| - jsonTransactionResponse.setGasPrice(transactionV2.getTransactionData().getGasPrice()); |
407 |
| - jsonTransactionResponse.setGasLimit(transactionV2.getTransactionData().getGasLimit()); |
408 |
| - jsonTransactionResponse.setMaxFeePerGas( |
409 |
| - transactionV2.getTransactionData().getMaxFeePerGas()); |
410 |
| - jsonTransactionResponse.setMaxPriorityFeePerGas( |
411 |
| - transactionV2.getTransactionData().getMaxPriorityFeePerGas()); |
| 408 | + if (transactionData instanceof TransactionDataV2 |
| 409 | + && transactionData.getVersion() == TransactionVersion.V1.getValue()) { |
| 410 | + TransactionDataV2 transactionDataV2 = (TransactionDataV2) transactionData; |
| 411 | + jsonTransactionResponse.setValue(transactionDataV2.getValue()); |
| 412 | + jsonTransactionResponse.setGasPrice(transactionDataV2.getGasPrice()); |
| 413 | + jsonTransactionResponse.setGasLimit(transactionDataV2.getGasLimit()); |
| 414 | + jsonTransactionResponse.setMaxFeePerGas(transactionDataV2.getMaxFeePerGas()); |
| 415 | + jsonTransactionResponse.setMaxPriorityFeePerGas( |
| 416 | + transactionDataV2.getMaxPriorityFeePerGas()); |
| 417 | + } |
412 | 418 | return jsonTransactionResponse;
|
413 | 419 | }
|
414 | 420 |
|
415 | 421 | public static JsonTransactionResponse decodeTransaction(String hexString) throws JniException {
|
416 | 422 | Transaction transaction = TransactionStructBuilderJniObj.decodeTransactionStruct(hexString);
|
417 | 423 | JsonTransactionResponse jsonTransactionResponse = new JsonTransactionResponse();
|
418 | 424 | jsonTransactionResponse.setVersion(transaction.getTransactionData().getVersion());
|
419 |
| - jsonTransactionResponse.setHash(Hex.toHexString(transaction.getDataHash().getBuffer())); |
| 425 | + jsonTransactionResponse.setHash( |
| 426 | + Hex.toHexStringWithPrefixNullable(transaction.getDataHash(), "")); |
420 | 427 | jsonTransactionResponse.setNonce(transaction.getTransactionData().getNonce());
|
421 | 428 | jsonTransactionResponse.setBlockLimit(transaction.getTransactionData().getBlockLimit());
|
422 | 429 | jsonTransactionResponse.setTo(transaction.getTransactionData().getTo());
|
423 |
| - // jsonTransactionResponse.setFrom(Hex.toHexString(transactionV2.getSender().getBuffer())); |
| 430 | + jsonTransactionResponse.setFrom( |
| 431 | + Hex.toHexStringWithPrefixNullable(transaction.getSender(), "")); |
424 | 432 | jsonTransactionResponse.setAbi(transaction.getTransactionData().getAbi());
|
425 | 433 | jsonTransactionResponse.setInput(
|
426 |
| - Hex.toHexString(transaction.getTransactionData().getInput().getBuffer())); |
| 434 | + Hex.toHexStringWithPrefixNullable(transaction.getTransactionData().getInput(), "")); |
427 | 435 | jsonTransactionResponse.setChainID(transaction.getTransactionData().getChainId());
|
428 | 436 | jsonTransactionResponse.setGroupID(transaction.getTransactionData().getGroupId());
|
429 | 437 | jsonTransactionResponse.setExtraData(transaction.getExtraData());
|
430 | 438 | jsonTransactionResponse.setSignature(
|
431 |
| - Hex.toHexString(transaction.getSignature().getBuffer())); |
| 439 | + Hex.toHexStringWithPrefixNullable(transaction.getSignature(), "")); |
432 | 440 | jsonTransactionResponse.setImportTime(transaction.getImportTime());
|
433 | 441 |
|
434 | 442 | return jsonTransactionResponse;
|
|
0 commit comments