vm: remove HASH160/HASH256 opcodes
This commit is contained in:
parent
c23af595c9
commit
948729137f
5 changed files with 0 additions and 74 deletions
|
@ -1063,10 +1063,6 @@ func (c *codegen) convertBuiltin(expr *ast.CallExpr) {
|
|||
emit.Opcode(c.prog.BinWriter, opcode.SHA256)
|
||||
case "SHA1":
|
||||
emit.Opcode(c.prog.BinWriter, opcode.SHA1)
|
||||
case "Hash256":
|
||||
emit.Opcode(c.prog.BinWriter, opcode.HASH256)
|
||||
case "Hash160":
|
||||
emit.Opcode(c.prog.BinWriter, opcode.HASH160)
|
||||
case "VerifySignature":
|
||||
emit.Opcode(c.prog.BinWriter, opcode.VERIFY)
|
||||
case "AppCall":
|
||||
|
|
|
@ -33,33 +33,3 @@ func TestSHA1(t *testing.T) {
|
|||
`
|
||||
eval(t, src, []byte{0xfa, 0x13, 0x8a, 0xe3, 0x56, 0xd3, 0x5c, 0x8d, 0x77, 0x8, 0x3c, 0x40, 0x6a, 0x5b, 0xe7, 0x37, 0x45, 0x64, 0x3a, 0xae})
|
||||
}
|
||||
|
||||
func TestHash160(t *testing.T) {
|
||||
src := `
|
||||
package foo
|
||||
import (
|
||||
"github.com/nspcc-dev/neo-go/pkg/interop/crypto"
|
||||
)
|
||||
func Main() []byte {
|
||||
src := []byte{0x97}
|
||||
hash := crypto.Hash160(src)
|
||||
return hash
|
||||
}
|
||||
`
|
||||
eval(t, src, []byte{0x5f, 0xa4, 0x1c, 0x76, 0xf7, 0xe8, 0xca, 0x72, 0xb7, 0x18, 0xff, 0x59, 0x22, 0x91, 0xc2, 0x3a, 0x3a, 0xf5, 0x58, 0x6c})
|
||||
}
|
||||
|
||||
func TestHash256(t *testing.T) {
|
||||
src := `
|
||||
package foo
|
||||
import (
|
||||
"github.com/nspcc-dev/neo-go/pkg/interop/crypto"
|
||||
)
|
||||
func Main() []byte {
|
||||
src := []byte{0x97}
|
||||
hash := crypto.Hash256(src)
|
||||
return hash
|
||||
}
|
||||
`
|
||||
eval(t, src, []byte{0xc0, 0x85, 0x26, 0xad, 0x17, 0x36, 0x53, 0xee, 0xb8, 0xc7, 0xf4, 0xae, 0x82, 0x8b, 0x6e, 0xa1, 0x84, 0xac, 0x5a, 0x3, 0x8a, 0xf6, 0xc3, 0x68, 0x23, 0xfa, 0x5f, 0x5d, 0xd9, 0x1b, 0x91, 0xa2})
|
||||
}
|
||||
|
|
|
@ -13,16 +13,6 @@ func SHA256(b []byte) []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
// Hash160 computes the sha256 + ripemd160 of b.
|
||||
func Hash160(b []byte) []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Hash256 computes the sha256^2 hash of b.
|
||||
func Hash256(b []byte) []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
// VerifySignature checks that sig is msg's signature with pub.
|
||||
func VerifySignature(msg []byte, sig []byte, pub []byte) bool {
|
||||
return false
|
||||
|
|
|
@ -1332,14 +1332,6 @@ func (v *VM) execute(ctx *Context, op opcode.Opcode, parameter []byte) (err erro
|
|||
b := v.estack.Pop().Bytes()
|
||||
v.estack.PushVal(hash.Sha256(b).BytesBE())
|
||||
|
||||
case opcode.HASH160:
|
||||
b := v.estack.Pop().Bytes()
|
||||
v.estack.PushVal(hash.Hash160(b).BytesBE())
|
||||
|
||||
case opcode.HASH256:
|
||||
b := v.estack.Pop().Bytes()
|
||||
v.estack.PushVal(hash.DoubleSha256(b).BytesBE())
|
||||
|
||||
case opcode.NOP:
|
||||
// unlucky ^^
|
||||
|
||||
|
|
|
@ -3035,28 +3035,6 @@ func TestSHA256(t *testing.T) {
|
|||
assert.Equal(t, res, hex.EncodeToString(vm.estack.Pop().Bytes()))
|
||||
}
|
||||
|
||||
func TestHASH160(t *testing.T) {
|
||||
// 0x0100 hashes to fbc22d517f38e7612798ece8e5957cf6c41d8caf
|
||||
res := "fbc22d517f38e7612798ece8e5957cf6c41d8caf"
|
||||
prog := makeProgram(opcode.PUSHBYTES2, 1, 0,
|
||||
opcode.HASH160)
|
||||
vm := load(prog)
|
||||
runVM(t, vm)
|
||||
assert.Equal(t, 1, vm.estack.Len())
|
||||
assert.Equal(t, res, hex.EncodeToString(vm.estack.Pop().Bytes()))
|
||||
}
|
||||
|
||||
func TestHASH256(t *testing.T) {
|
||||
// 0x0100 hashes to 677b2d718464ee0121475600b929c0b4155667486577d1320b18c2dc7d4b4f99
|
||||
res := "677b2d718464ee0121475600b929c0b4155667486577d1320b18c2dc7d4b4f99"
|
||||
prog := makeProgram(opcode.PUSHBYTES2, 1, 0,
|
||||
opcode.HASH256)
|
||||
vm := load(prog)
|
||||
runVM(t, vm)
|
||||
assert.Equal(t, 1, vm.estack.Len())
|
||||
assert.Equal(t, res, hex.EncodeToString(vm.estack.Pop().Bytes()))
|
||||
}
|
||||
|
||||
var opcodesTestCases = map[opcode.Opcode][]struct {
|
||||
name string
|
||||
args []interface{}
|
||||
|
|
Loading…
Reference in a new issue