refactor
This commit is contained in:
34
ots/operation.go
Normal file
34
ots/operation.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package ots
|
||||
|
||||
import "crypto/sha256"
|
||||
|
||||
type Operation struct {
|
||||
Name string
|
||||
Tag byte
|
||||
Binary bool // it's an operation that takes one argument, otherwise takes none
|
||||
Apply func(curr []byte, arg []byte) []byte
|
||||
}
|
||||
|
||||
var Tags = map[byte]*Operation{
|
||||
0xf0: {"append", 0xf0, true, func(curr []byte, arg []byte) []byte {
|
||||
result := make([]byte, len(curr)+len(arg))
|
||||
copy(result[0:], curr)
|
||||
copy(result[len(curr):], arg)
|
||||
return result
|
||||
}},
|
||||
0xf1: {"prepend", 0xf1, true, func(curr []byte, arg []byte) []byte {
|
||||
result := make([]byte, len(curr)+len(arg))
|
||||
copy(result[0:], arg)
|
||||
copy(result[len(arg):], curr)
|
||||
return result
|
||||
}},
|
||||
0xf2: {"reverse", 0xf2, false, func(curr []byte, arg []byte) []byte { panic("reverse not implemented") }},
|
||||
0xf3: {"hexlify", 0xf3, false, func(curr []byte, arg []byte) []byte { panic("hexlify not implemented") }},
|
||||
0x02: {"sha1", 0x02, false, func(curr []byte, arg []byte) []byte { panic("sha1 not implemented") }},
|
||||
0x03: {"ripemd160", 0x03, false, ripemd160},
|
||||
0x08: {"sha256", 0x08, false, func(curr []byte, arg []byte) []byte {
|
||||
v := sha256.Sum256(curr)
|
||||
return v[:]
|
||||
}},
|
||||
0x67: {"keccak256", 0x67, false, func(curr []byte, arg []byte) []byte { panic("keccak256 not implemented") }},
|
||||
}
|
||||
Reference in New Issue
Block a user