diff --git a/core/compatibility.go b/core/compatibility.go index 4070dcc55..40e4609cb 100644 --- a/core/compatibility.go +++ b/core/compatibility.go @@ -307,6 +307,7 @@ func SetCompatibilityOptions(chainID uint32) { NewNvmExeTimeoutConsumeGasHeight = LocalNewNvmExeTimeoutConsumeGasHeight } + // sort V8JSLibVersionHeightSlice in descending order by height sort.Sort(sort.Reverse(V8JSLibVersionHeightSlice)) logging.VLog().WithFields(logrus.Fields{ @@ -465,8 +466,9 @@ func init() { } } -// GetV8JSLibVersion .. -func GetV8JSLibVersion(blockHeight uint64) string { +// GetMaxV8JSLibVersionAtHeight .. +func GetMaxV8JSLibVersionAtHeight(blockHeight uint64) string { + // V8JSLibVersionHeightSlice is already sorted at SetCompatibilityOptions func for _, v := range V8JSLibVersionHeightSlice { if blockHeight >= v.height { return v.version diff --git a/core/transaction_deploy_payload.go b/core/transaction_deploy_payload.go index 81e59f2b4..52f7fd88a 100644 --- a/core/transaction_deploy_payload.go +++ b/core/transaction_deploy_payload.go @@ -114,7 +114,7 @@ func (payload *DeployPayload) Execute(limitedGas *util.Uint128, tx *Transaction, return util.NewUint128(), "", err } */ var contract state.Account - v := GetV8JSLibVersion(block.Height()) + v := GetMaxV8JSLibVersionAtHeight(block.Height()) if len(v) > 0 { contract, err = ws.CreateContractAccount(addr.Bytes(), tx.Hash(), &corepb.ContractMeta{Version: v}) } else {