native: add GetOracleInvokeScript()

This commit is contained in:
Evgenii Stratonikov 2020-10-02 09:51:55 +03:00
parent d50a14359a
commit 17922038dc

View file

@ -46,15 +46,19 @@ const (
oracleRequestPrice = 5000_0000
)
var oracleScript []byte
var (
oracleInvokeScript []byte
oracleScript []byte
)
func init() {
w := io.NewBufBinWriter()
emit.String(w.BinWriter, oracleName)
emit.Syscall(w.BinWriter, interopnames.NeoNativeCall)
h := hash.Hash160(w.Bytes())
oracleInvokeScript = w.Bytes()
h := hash.Hash160(oracleInvokeScript)
w.Reset()
w = io.NewBufBinWriter()
emit.Int(w.BinWriter, 0)
emit.Opcodes(w.BinWriter, opcode.NEWARRAY)
emit.String(w.BinWriter, "finish")
@ -79,6 +83,13 @@ var (
ErrResponseNotFound = errors.New("oracle response not found")
)
// GetOracleInvokeScript returns oracle contract script.
func GetOracleInvokeScript() []byte {
b := make([]byte, len(oracleInvokeScript))
copy(b, oracleInvokeScript)
return b
}
// GetOracleResponseScript returns script for transaction with oracle response.
func GetOracleResponseScript() []byte {
b := make([]byte, len(oracleScript))