25 lines
905 B
Go
25 lines
905 B
Go
|
package oraclecontract
|
||
|
|
||
|
import (
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop/native/oracle"
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop/native/std"
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop/storage"
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop/util"
|
||
|
)
|
||
|
|
||
|
// RequestURL accepts a complete set of parameters to make an oracle request and
|
||
|
// performs it.
|
||
|
func RequestURL(url string, filter []byte, callback string, userData interface{}, gasForResponse int) {
|
||
|
oracle.Request(url, filter, callback, userData, gasForResponse)
|
||
|
}
|
||
|
|
||
|
// Handle is a response handler that writes response data to the storage.
|
||
|
func Handle(url string, data interface{}, code int, res []byte) {
|
||
|
// ABORT if len(data) == 2, some tests use this feature.
|
||
|
if data != nil && len(data.(string)) == 2 {
|
||
|
util.Abort()
|
||
|
}
|
||
|
params := []interface{}{url, data, code, res}
|
||
|
storage.Put(storage.GetContext(), "lastOracleResponse", std.Serialize(params))
|
||
|
}
|