mirror of
https://github.com/status-im/status-go.git
synced 2025-02-08 21:04:27 +00:00
* static: updates Whisper test (to work with Geth 1.6.1) * jail: VM persistence implemented * jail: sendMessage/showSuggestions minor fixes (to be squashed) * node: CHT and boot nodes auto-load implemented * Replaced CHT data file from farazdagi's to tiabc's * Rewrote config_test.go using testify having reduced it twice in size * Increased SyncTime and panic timeout in tests * Fixed test - remove go default test to testify/suite (#207) * Add flag setup for RPCEnabled and add comment (#225) * jail: register method handlers before running initial js in jail (#226) * Console Jail Mod #179 (#228) * Added ./statusd-data into .gitignore * Increased log level for the test node from INFO to ERROR * Add call to loop.Run to evaluate all setTimeout/setIntervals methods. (#208) * Rebase onto geth1.6.7 (#232) * Got back sync duration from 60s to 30s, updated bindata.go
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package console
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"strings"
|
|
|
|
"github.com/robertkrimen/otto"
|
|
"github.com/status-im/status-go/geth/node"
|
|
)
|
|
|
|
// Write provides the base function to write data to the underline writer
|
|
// for the underline otto vm.
|
|
func Write(fn otto.FunctionCall, w io.Writer, consoleEventName string) otto.Value {
|
|
node.SendSignal(node.SignalEnvelope{
|
|
Type: consoleEventName,
|
|
Event: convertArgs(fn.ArgumentList),
|
|
})
|
|
|
|
// Next print out the giving values.
|
|
fmt.Fprintf(w, "%s: %s", consoleEventName, formatForConsole(fn.ArgumentList))
|
|
|
|
return otto.UndefinedValue()
|
|
}
|
|
|
|
// formatForConsole handles conversion of giving otto.Values into
|
|
// string counter part.
|
|
func formatForConsole(argumentList []otto.Value) string {
|
|
output := []string{}
|
|
for _, argument := range argumentList {
|
|
output = append(output, fmt.Sprintf("%v", argument))
|
|
}
|
|
return strings.Join(output, " ")
|
|
}
|
|
|
|
// convertArgs attempts to convert otto.Values into proper go types else
|
|
// uses original.
|
|
func convertArgs(argumentList []otto.Value) []interface{} {
|
|
var items []interface{}
|
|
|
|
for _, arg := range argumentList {
|
|
realArg, err := arg.Export()
|
|
if err != nil {
|
|
items = append(items, arg)
|
|
continue
|
|
}
|
|
|
|
items = append(items, realArg)
|
|
}
|
|
|
|
return items
|
|
}
|