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)
|
emit.Opcode(c.prog.BinWriter, opcode.SHA256)
|
||||||
case "SHA1":
|
case "SHA1":
|
||||||
emit.Opcode(c.prog.BinWriter, opcode.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":
|
case "VerifySignature":
|
||||||
emit.Opcode(c.prog.BinWriter, opcode.VERIFY)
|
emit.Opcode(c.prog.BinWriter, opcode.VERIFY)
|
||||||
case "AppCall":
|
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})
|
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
|
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.
|
// VerifySignature checks that sig is msg's signature with pub.
|
||||||
func VerifySignature(msg []byte, sig []byte, pub []byte) bool {
|
func VerifySignature(msg []byte, sig []byte, pub []byte) bool {
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -1332,14 +1332,6 @@ func (v *VM) execute(ctx *Context, op opcode.Opcode, parameter []byte) (err erro
|
||||||
b := v.estack.Pop().Bytes()
|
b := v.estack.Pop().Bytes()
|
||||||
v.estack.PushVal(hash.Sha256(b).BytesBE())
|
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:
|
case opcode.NOP:
|
||||||
// unlucky ^^
|
// unlucky ^^
|
||||||
|
|
||||||
|
|
|
@ -3035,28 +3035,6 @@ func TestSHA256(t *testing.T) {
|
||||||
assert.Equal(t, res, hex.EncodeToString(vm.estack.Pop().Bytes()))
|
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 {
|
var opcodesTestCases = map[opcode.Opcode][]struct {
|
||||||
name string
|
name string
|
||||||
args []interface{}
|
args []interface{}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue