Commit 7cfce61c authored by yahtoo's avatar yahtoo Committed by Paladz

Fix list-assets vm_version field lost (#1705)

* Fix list-assets vm_version field lost

* Add err check

* Opz code
parent 00deed64
......@@ -27,12 +27,13 @@ func Annotated(a *Asset) (*query.AnnotatedAsset, error) {
annotatedAsset := &query.AnnotatedAsset{
ID: a.AssetID,
Alias: *a.Alias,
VMVersion: a.VMVersion,
RawDefinitionByte: a.RawDefinitionByte,
Definition: &jsonDefinition,
IssuanceProgram: chainjson.HexBytes(a.IssuanceProgram),
}
annotatedAsset.LimitHeight, _ = vmutil.GetIssuanceProgramRestrictHeight(a.IssuanceProgram)
annotatedAsset.LimitHeight = vmutil.GetIssuanceProgramRestrictHeight(a.IssuanceProgram)
if a.Signer != nil {
annotatedAsset.AnnotatedSigner = query.AnnotatedSigner{
Type: a.Signer.Type,
......
......@@ -36,7 +36,7 @@ func EstimateTxGas(template Template) (*EstimateTxGasInfo, error) {
case types.IssuanceInputType:
issuanceProgram := input.IssuanceProgram()
if height, _ := vmutil.GetIssuanceProgramRestrictHeight(issuanceProgram); height > 0 {
if height := vmutil.GetIssuanceProgramRestrictHeight(issuanceProgram); height > 0 {
// the gas for issue program with checking block height
totalIssueGas += 5
}
......
......@@ -135,14 +135,20 @@ func checkMultiSigParams(nrequired, npubkeys int64) error {
}
// GetIssuanceProgramRestrictHeight return issuance program restrict height
func GetIssuanceProgramRestrictHeight(program []byte) (int64, error) {
// if height invalid return 0
func GetIssuanceProgramRestrictHeight(program []byte) int64 {
insts, err := vm.ParseProgram(program)
if err != nil {
return 0, err
return 0
}
if len(insts) >= 4 && insts[0].IsPushdata() && insts[1].Op == vm.OP_BLOCKHEIGHT && insts[2].Op == vm.OP_GREATERTHAN && insts[3].Op == vm.OP_VERIFY {
return vm.AsInt64(insts[0].Data)
height, err := vm.AsInt64(insts[0].Data)
if err != nil {
return 0
}
return height
}
return 0, nil
return 0
}
......@@ -214,7 +214,7 @@ func TestGetIssuanceProgramRestrictHeight(t *testing.T) {
t.Fatal(err)
}
gotHeight, _ := GetIssuanceProgramRestrictHeight(program)
gotHeight := GetIssuanceProgramRestrictHeight(program)
if gotHeight != test.wantHeight {
t.Errorf("TestGetIssuanceProgramRestrictHeight #%d failed: got %d want %d", i, gotHeight, test.wantHeight)
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment