@@ -2581,8 +2581,10 @@ public SmartContract getContract(GrpcAPI.BytesMessage bytesMessage) {
25812581 if (Objects .nonNull (contractCapsule )) {
25822582 AbiCapsule abiCapsule = chainBaseManager .getAbiStore ().get (address );
25832583 if (Objects .nonNull (abiCapsule )) {
2584- return contractCapsule .getInstance ().toBuilder ().setAbi (abiCapsule .getInstance ()).build ();
2584+ contractCapsule = new ContractCapsule (
2585+ contractCapsule .getInstance ().toBuilder ().setAbi (abiCapsule .getInstance ()).build ());
25852586 }
2587+ return contractCapsule .getInstance ();
25862588 }
25872589 return null ;
25882590 }
@@ -2607,13 +2609,17 @@ public SmartContractDataWrapper getContractInfo(GrpcAPI.BytesMessage bytesMessag
26072609 ContractCapsule contractCapsule = chainBaseManager .getContractStore ().get (address );
26082610 if (Objects .nonNull (contractCapsule )) {
26092611 AbiCapsule abiCapsule = chainBaseManager .getAbiStore ().get (address );
2610- CodeCapsule codeCapsule = chainBaseManager .getCodeStore ().get (address );
2611- if (Objects .nonNull (abiCapsule ) && Objects .nonNull (codeCapsule )) {
2612+ if (Objects .nonNull (abiCapsule )) {
26122613 contractCapsule = new ContractCapsule (
26132614 contractCapsule .getInstance ().toBuilder ().setAbi (abiCapsule .getInstance ()).build ());
2615+ }
2616+ CodeCapsule codeCapsule = chainBaseManager .getCodeStore ().get (address );
2617+ if (Objects .nonNull (codeCapsule ) && Objects .nonNull (codeCapsule .getData ())) {
26142618 contractCapsule .setRuntimecode (codeCapsule .getData ());
2615- return contractCapsule .generateWrapper ();
2619+ } else {
2620+ contractCapsule .setRuntimecode (new byte [0 ]);
26162621 }
2622+ return contractCapsule .generateWrapper ();
26172623 }
26182624 return null ;
26192625 }
0 commit comments