@@ -3862,12 +3862,11 @@ private boolean isShieldedTRC20NoteSpent(GrpcAPI.Note note, long pos, byte[] ak,
38623862 TransactionExtention .Builder trxExtBuilder = TransactionExtention .newBuilder ();
38633863 Return .Builder retBuilder = Return .newBuilder ();
38643864 TransactionExtention trxExt ;
3865- Transaction trx ;
38663865
38673866 try {
38683867 TransactionCapsule trxCap = createTransactionCapsule (trigger ,
38693868 ContractType .TriggerSmartContract );
3870- trx = triggerConstantContract (trigger , trxCap , trxExtBuilder , retBuilder );
3869+ Transaction trx = triggerConstantContract (trigger , trxCap , trxExtBuilder , retBuilder );
38713870
38723871 retBuilder .setResult (true ).setCode (response_code .SUCCESS );
38733872 trxExtBuilder .setTransaction (trx );
@@ -3890,10 +3889,10 @@ private boolean isShieldedTRC20NoteSpent(GrpcAPI.Note note, long pos, byte[] ak,
38903889 logger .warn ("unknown exception caught: " + e .getMessage (), e );
38913890 } finally {
38923891 trxExt = trxExtBuilder .build ();
3893- trx = trxExt .getTransaction ();
38943892 }
38953893
3896- if (code .SUCESS == trx .getRet (0 ).getRet ()) {
3894+ String code = trxExt .getResult ().getCode ().toString ();
3895+ if ("SUCCESS" .equals (code )) {
38973896 List <ByteString > list = trxExt .getConstantResultList ();
38983897 byte [] listBytes = new byte [0 ];
38993898 for (ByteString bs : list ) {
@@ -4086,6 +4085,9 @@ private long[] checkPublicAmount(byte[] address, BigInteger fromAmount, BigInteg
40864085 } catch (ContractExeException e ) {
40874086 throw new ContractExeException ("Get shielded contract scalingFactor failed" );
40884087 }
4088+ if (scalingFactor .compareTo (BigInteger .ZERO ) <= 0 ) {
4089+ throw new ContractValidateException ("scalingFactor must be positive" );
4090+ }
40894091
40904092 // fromAmount and toAmount must be a multiple of scalingFactor
40914093 if (!(fromAmount .mod (scalingFactor ).equals (BigInteger .ZERO )
@@ -4127,12 +4129,11 @@ public byte[] getShieldedContractScalingFactor(byte[] contractAddress)
41274129 TransactionExtention .Builder trxExtBuilder = TransactionExtention .newBuilder ();
41284130 Return .Builder retBuilder = Return .newBuilder ();
41294131 TransactionExtention trxExt ;
4130- Transaction trx ;
41314132
41324133 try {
41334134 TransactionCapsule trxCap = createTransactionCapsule (trigger ,
41344135 ContractType .TriggerSmartContract );
4135- trx = triggerConstantContract (trigger , trxCap , trxExtBuilder , retBuilder );
4136+ Transaction trx = triggerConstantContract (trigger , trxCap , trxExtBuilder , retBuilder );
41364137
41374138 retBuilder .setResult (true ).setCode (response_code .SUCCESS );
41384139 trxExtBuilder .setTransaction (trx );
@@ -4155,10 +4156,10 @@ public byte[] getShieldedContractScalingFactor(byte[] contractAddress)
41554156 logger .warn ("Unknown exception caught: " + e .getMessage (), e );
41564157 } finally {
41574158 trxExt = trxExtBuilder .build ();
4158- trx = trxExt .getTransaction ();
41594159 }
41604160
4161- if (code .SUCESS == trx .getRet (0 ).getRet ()) {
4161+ String code = trxExt .getResult ().getCode ().toString ();
4162+ if ("SUCCESS" .equals (code )) {
41624163 List <ByteString > list = trxExt .getConstantResultList ();
41634164 byte [] listBytes = new byte [0 ];
41644165 for (ByteString bs : list ) {
0 commit comments