kopia lustrzana https://github.com/bugout-dev/moonstream
JSON RPC request ID now support uint64, string and null
rodzic
3bc6070768
commit
8e9023afc5
|
@ -38,25 +38,24 @@ var (
|
||||||
"web3_clientVersion": true,
|
"web3_clientVersion": true,
|
||||||
|
|
||||||
// zksync methods
|
// zksync methods
|
||||||
"zks_estimateFee": true,
|
"zks_estimateFee": true,
|
||||||
"zks_estimateGasL1ToL2": true,
|
"zks_estimateGasL1ToL2": true,
|
||||||
"zks_getAllAccountBalances": true,
|
"zks_getAllAccountBalances": true,
|
||||||
"zks_getBlockDetails": true,
|
"zks_getBlockDetails": true,
|
||||||
"zks_getBridgeContracts": true,
|
"zks_getBridgeContracts": true,
|
||||||
"zks_getBytecodeByHash": true,
|
"zks_getBytecodeByHash": true,
|
||||||
"zks_getConfirmedTokens": true,
|
"zks_getConfirmedTokens": true,
|
||||||
"zks_getL1BatchBlockRange": true,
|
"zks_getL1BatchBlockRange": true,
|
||||||
"zks_getL1BatchDetails": true,
|
"zks_getL1BatchDetails": true,
|
||||||
"zks_getL2ToL1LogProof": true,
|
"zks_getL2ToL1LogProof": true,
|
||||||
"zks_getL2ToL1MsgProof": true,
|
"zks_getL2ToL1MsgProof": true,
|
||||||
"zks_getMainContract": true,
|
"zks_getMainContract": true,
|
||||||
"zks_getRawBlockTransactions": true,
|
"zks_getRawBlockTransactions": true,
|
||||||
"zks_getTestnetPaymaster": true,
|
"zks_getTestnetPaymaster": true,
|
||||||
"zks_getTokenPrice": true,
|
"zks_getTokenPrice": true,
|
||||||
"zks_getTransactionDetails": true,
|
"zks_getTransactionDetails": true,
|
||||||
"zks_L1BatchNumber": true,
|
"zks_L1BatchNumber": true,
|
||||||
"zks_L1ChainId": true,
|
"zks_L1ChainId": true,
|
||||||
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -64,7 +63,7 @@ type JSONRPCRequest struct {
|
||||||
Jsonrpc string `json:"jsonrpc"`
|
Jsonrpc string `json:"jsonrpc"`
|
||||||
Method string `json:"method"`
|
Method string `json:"method"`
|
||||||
Params []interface{} `json:"params"`
|
Params []interface{} `json:"params"`
|
||||||
ID uint64 `json:"id"`
|
ID interface{} `json:"id"` // According to the JSON-RPC specification, the id can be a string, number, or null
|
||||||
}
|
}
|
||||||
|
|
||||||
type BlockchainConfig struct {
|
type BlockchainConfig struct {
|
||||||
|
|
|
@ -390,6 +390,7 @@ func jsonrpcRequestParser(body []byte) ([]JSONRPCRequest, error) {
|
||||||
var jsonrpcRequest []JSONRPCRequest
|
var jsonrpcRequest []JSONRPCRequest
|
||||||
|
|
||||||
firstByte := bytes.TrimLeft(body, " \t\r\n")
|
firstByte := bytes.TrimLeft(body, " \t\r\n")
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case len(firstByte) > 0 && firstByte[0] == '[':
|
case len(firstByte) > 0 && firstByte[0] == '[':
|
||||||
err := json.Unmarshal(body, &jsonrpcRequest)
|
err := json.Unmarshal(body, &jsonrpcRequest)
|
||||||
|
@ -407,6 +408,17 @@ func jsonrpcRequestParser(body []byte) ([]JSONRPCRequest, error) {
|
||||||
return nil, fmt.Errorf("incorrect first byte in JSON RPC request")
|
return nil, fmt.Errorf("incorrect first byte in JSON RPC request")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, req := range jsonrpcRequest {
|
||||||
|
switch v := req.ID.(type) {
|
||||||
|
case float64:
|
||||||
|
req.ID = uint64(v)
|
||||||
|
case string:
|
||||||
|
case nil:
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("unexpected type for id: %T", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return jsonrpcRequest, nil
|
return jsonrpcRequest, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue