1616package org .tron .common .utils ;
1717
1818import com .google .protobuf .ByteString ;
19+ import com .google .protobuf .InvalidProtocolBufferException ;
1920import java .security .SignatureException ;
2021import java .util .Arrays ;
2122import java .util .List ;
4748import org .tron .protos .contract .VoteAssetContractOuterClass .VoteAssetContract ;
4849import org .tron .protos .contract .WitnessContract .VoteWitnessContract ;
4950import org .tron .protos .contract .WitnessContract .WitnessCreateContract ;
51+ import org .tron .trident .proto .Chain ;
5052
5153public class TransactionUtils {
5254
@@ -63,7 +65,7 @@ public static byte[] getHash(Transaction transaction) {
6365 return Sha256Sm3Hash .hash (tmp .build ().toByteArray ());
6466 }
6567
66- public static Sha256Hash getTransactionId (Transaction transaction ) {
68+ public static Sha256Hash getTransactionId (Chain . Transaction transaction ) {
6769 return Sha256Hash .of (true , transaction .getRawData ().toByteArray ());
6870 }
6971
@@ -326,6 +328,12 @@ public static boolean validTransaction(Transaction signedTransaction) {
326328 return true ;
327329 }
328330
331+ public static Chain .Transaction sign (Chain .Transaction transaction , SignInterface myKey )
332+ throws InvalidProtocolBufferException {
333+ return Chain .Transaction .parseFrom (
334+ sign (Transaction .parseFrom (transaction .toByteArray ()), myKey ).toByteArray ());
335+ }
336+
329337 public static Transaction sign (Transaction transaction , SignInterface myKey ) {
330338 Transaction .Builder transactionBuilderSigned = transaction .toBuilder ();
331339 byte [] hash = Sha256Sm3Hash .hash (transaction .getRawData ().toByteArray ());
@@ -339,18 +347,28 @@ public static Transaction sign(Transaction transaction, SignInterface myKey) {
339347 public static Transaction setTimestamp (Transaction transaction ) {
340348 long currentTime = System .currentTimeMillis (); // *1000000 + System.nanoTime()%1000000;
341349 Transaction .Builder builder = transaction .toBuilder ();
342- org . tron . protos . Protocol . Transaction .raw .Builder rowBuilder =
350+ Transaction .raw .Builder rowBuilder =
343351 transaction .getRawData ().toBuilder ();
344352 rowBuilder .setTimestamp (currentTime );
345353 builder .setRawData (rowBuilder .build ());
346354 return builder .build ();
347355 }
348356
349- public static Transaction setExpirationTime (Transaction transaction ) {
357+ public static Chain .Transaction setTimestamp (Chain .Transaction transaction ) {
358+ long currentTime = System .currentTimeMillis (); // *1000000 + System.nanoTime()%1000000;
359+ Chain .Transaction .Builder builder = transaction .toBuilder ();
360+ Chain .Transaction .raw .Builder rowBuilder =
361+ transaction .getRawData ().toBuilder ();
362+ rowBuilder .setTimestamp (currentTime );
363+ builder .setRawData (rowBuilder .build ());
364+ return builder .build ();
365+ }
366+
367+ public static Chain .Transaction setExpirationTime (Chain .Transaction transaction ) {
350368 if (transaction .getSignatureCount () == 0 ) {
351369 long expirationTime = System .currentTimeMillis () + 6 * 60 * 60 * 1000 ;
352- Transaction .Builder builder = transaction .toBuilder ();
353- org . tron . protos . Protocol .Transaction .raw .Builder rowBuilder =
370+ Chain . Transaction .Builder builder = transaction .toBuilder ();
371+ Chain .Transaction .raw .Builder rowBuilder =
354372 transaction .getRawData ().toBuilder ();
355373 rowBuilder .setExpiration (expirationTime );
356374 builder .setRawData (rowBuilder .build ());
@@ -359,6 +377,12 @@ public static Transaction setExpirationTime(Transaction transaction) {
359377 return transaction ;
360378 }
361379
380+ public static Chain .Transaction setPermissionId (Chain .Transaction transaction , String tipString )
381+ throws CancelException , InvalidProtocolBufferException {
382+ return Chain .Transaction .parseFrom (
383+ setPermissionId (Transaction .parseFrom (transaction .toByteArray ()), tipString ).toByteArray ());
384+ }
385+
362386 public static Transaction setPermissionId (Transaction transaction , String tipString )
363387 throws CancelException {
364388 if (transaction .getSignatureCount () != 0
0 commit comments