Merge pull request #14403 from fjl/console-number

console: avoid float64 when remarshaling parameters
This commit is contained in:
Péter Szilágyi 2017-05-02 16:24:34 +03:00 committed by GitHub
commit 0255ed6335

View File

@ -20,6 +20,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
"strings"
"time" "time"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
@ -240,17 +241,19 @@ func (b *bridge) Send(call otto.FunctionCall) (response otto.Value) {
throwJSException(err.Error()) throwJSException(err.Error())
} }
var ( var (
rawReq = []byte(reqVal.String()) rawReq = reqVal.String()
dec = json.NewDecoder(strings.NewReader(rawReq))
reqs []jsonrpcCall reqs []jsonrpcCall
batch bool batch bool
) )
dec.UseNumber() // avoid float64s
if rawReq[0] == '[' { if rawReq[0] == '[' {
batch = true batch = true
json.Unmarshal(rawReq, &reqs) dec.Decode(&reqs)
} else { } else {
batch = false batch = false
reqs = make([]jsonrpcCall, 1) reqs = make([]jsonrpcCall, 1)
json.Unmarshal(rawReq, &reqs[0]) dec.Decode(&reqs[0])
} }
// Execute the requests. // Execute the requests.