From 9a94c77470406540882d6db30835f7266ee81e93 Mon Sep 17 00:00:00 2001 From: YINGHAO FAN Date: Wed, 28 Jul 2021 17:12:24 +0000 Subject: [PATCH 1/2] set symbol to rpc call function name --- quorum/manager.go | 27 ++++++++++++++------------- quorum_rpc/api.go | 8 +++++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/quorum/manager.go b/quorum/manager.go index 5ec89c1..a3f947f 100644 --- a/quorum/manager.go +++ b/quorum/manager.go @@ -17,6 +17,8 @@ package quorum import ( "encoding/json" "fmt" + "reflect" + "github.com/blocktree/go-owcrypt" "github.com/blocktree/openwallet/v2/common" "github.com/blocktree/openwallet/v2/log" @@ -29,7 +31,6 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" - "reflect" // "log" "math/big" @@ -77,7 +78,7 @@ func (wm *WalletManager) GetTransactionCount(addr string) (uint64, error) { return 0, fmt.Errorf("wallet client is not initialized") } - result, err := wm.WalletClient.Call("eth_getTransactionCount", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getTransactionCount", params) if err != nil { return 0, err } @@ -92,7 +93,7 @@ func (wm *WalletManager) GetTransactionReceipt(transactionId string) (*Transacti } var ethReceipt types.Receipt - result, err := wm.WalletClient.Call("eth_getTransactionReceipt", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getTransactionReceipt", params) if err != nil { return nil, err } @@ -114,7 +115,7 @@ func (wm *WalletManager) GetTransactionByHash(txid string) (*BlockTransaction, e } var tx BlockTransaction - result, err := wm.WalletClient.Call("eth_getTransactionByHash", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getTransactionByHash", params) if err != nil { return nil, err } @@ -140,7 +141,7 @@ func (wm *WalletManager) GetBlockByNum(blockNum uint64, showTransactionSpec bool } var ethBlock EthBlock - result, err := wm.WalletClient.Call("eth_getBlockByNumber", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol)+strings.ToLower(Symbol) + "_getBlockByNumber", params) if err != nil { return nil, err } @@ -218,7 +219,7 @@ func (wm *WalletManager) GetAddrBalance(address string, sign string) (*big.Int, AppendOxToAddress(address), sign, } - result, err := wm.WalletClient.Call("eth_getBalance", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getBalance", params) if err != nil { return big.NewInt(0), err } @@ -233,7 +234,7 @@ func (wm *WalletManager) GetAddrBalance(address string, sign string) (*big.Int, // GetBlockNumber func (wm *WalletManager) GetBlockNumber() (uint64, error) { param := make([]interface{}, 0) - result, err := wm.WalletClient.Call("eth_blockNumber", param) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_blockNumber", param) if err != nil { return 0, err } @@ -297,7 +298,7 @@ func (wm *WalletManager) GetGasEstimated(from string, to string, value *big.Int, callMsg["value"] = hexutil.EncodeBig(value) } - result, err := wm.WalletClient.Call("eth_estimateGas", []interface{}{callMsg}) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_estimateGas", []interface{}{callMsg}) if err != nil { return big.NewInt(0), err } @@ -315,7 +316,7 @@ func (wm *WalletManager) GetGasEstimated(from string, to string, value *big.Int, func (wm *WalletManager) GetGasPrice() (*big.Int, error) { - result, err := wm.WalletClient.Call("eth_gasPrice", []interface{}{}) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_gasPrice", []interface{}{}) if err != nil { return big.NewInt(0), err } @@ -329,7 +330,7 @@ func (wm *WalletManager) GetGasPrice() (*big.Int, error) { func (wm *WalletManager) SetNetworkChainID() (uint64, error) { - result, err := wm.WalletClient.Call("eth_chainId", nil) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_chainId", nil) if err != nil { return 0, err } @@ -430,7 +431,7 @@ func (wm *WalletManager) EthCall(callMsg CallMsg, sign string) (string, error) { "value": hexutil.EncodeBig(callMsg.Value), "data": hexutil.Encode(callMsg.Data), } - result, err := wm.WalletClient.Call("eth_call", []interface{}{param, sign}) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_call", []interface{}{param, sign}) if err != nil { return "", err } @@ -443,7 +444,7 @@ func (wm *WalletManager) SendRawTransaction(signedTx string) (string, error) { signedTx, } - result, err := wm.WalletClient.Call("eth_sendRawTransaction", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_sendRawTransaction", params) if err != nil { return "", err } @@ -458,7 +459,7 @@ func (wm *WalletManager) IsContract(address string) (bool, error) { "latest", } - result, err := wm.WalletClient.Call("eth_getCode", params) + result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getCode", params) if err != nil { return false, err } diff --git a/quorum_rpc/api.go b/quorum_rpc/api.go index 1b61a6d..b70f535 100644 --- a/quorum_rpc/api.go +++ b/quorum_rpc/api.go @@ -17,15 +17,17 @@ package quorum_rpc import ( "errors" "fmt" + "strings" + "github.com/blocktree/openwallet/v2/log" "github.com/imroc/req" "github.com/tidwall/gjson" ) type Client struct { - BaseURL string + BaseURL string BroadcastURL string - Debug bool + Debug bool } func (c *Client) Call(method string, params []interface{}) (*gjson.Result, error) { @@ -40,7 +42,7 @@ func (c *Client) Call(method string, params []interface{}) (*gjson.Result, error body["params"] = params url := c.BaseURL - if method == "eth_sendRawTransaction" && len(c.BroadcastURL) != 0 { + if strings.HasSuffix(method, "sendRawTransaction") && len(c.BroadcastURL) != 0 { // 广播交易使用BroadcastURL的节点 url = c.BroadcastURL } From eecfc22cda8f0ff3d57a90977f7342d48789181e Mon Sep 17 00:00:00 2001 From: fanyinghao Date: Fri, 30 Jul 2021 16:21:34 +0800 Subject: [PATCH 2/2] use configed symbol --- quorum/manager.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/quorum/manager.go b/quorum/manager.go index a3f947f..9a54a42 100644 --- a/quorum/manager.go +++ b/quorum/manager.go @@ -78,7 +78,7 @@ func (wm *WalletManager) GetTransactionCount(addr string) (uint64, error) { return 0, fmt.Errorf("wallet client is not initialized") } - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getTransactionCount", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_getTransactionCount", params) if err != nil { return 0, err } @@ -93,7 +93,7 @@ func (wm *WalletManager) GetTransactionReceipt(transactionId string) (*Transacti } var ethReceipt types.Receipt - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getTransactionReceipt", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_getTransactionReceipt", params) if err != nil { return nil, err } @@ -115,7 +115,7 @@ func (wm *WalletManager) GetTransactionByHash(txid string) (*BlockTransaction, e } var tx BlockTransaction - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getTransactionByHash", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_getTransactionByHash", params) if err != nil { return nil, err } @@ -141,7 +141,7 @@ func (wm *WalletManager) GetBlockByNum(blockNum uint64, showTransactionSpec bool } var ethBlock EthBlock - result, err := wm.WalletClient.Call(strings.ToLower(Symbol)+strings.ToLower(Symbol) + "_getBlockByNumber", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_getBlockByNumber", params) if err != nil { return nil, err } @@ -219,7 +219,7 @@ func (wm *WalletManager) GetAddrBalance(address string, sign string) (*big.Int, AppendOxToAddress(address), sign, } - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getBalance", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_getBalance", params) if err != nil { return big.NewInt(0), err } @@ -234,7 +234,7 @@ func (wm *WalletManager) GetAddrBalance(address string, sign string) (*big.Int, // GetBlockNumber func (wm *WalletManager) GetBlockNumber() (uint64, error) { param := make([]interface{}, 0) - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_blockNumber", param) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_blockNumber", param) if err != nil { return 0, err } @@ -298,7 +298,7 @@ func (wm *WalletManager) GetGasEstimated(from string, to string, value *big.Int, callMsg["value"] = hexutil.EncodeBig(value) } - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_estimateGas", []interface{}{callMsg}) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_estimateGas", []interface{}{callMsg}) if err != nil { return big.NewInt(0), err } @@ -316,7 +316,7 @@ func (wm *WalletManager) GetGasEstimated(from string, to string, value *big.Int, func (wm *WalletManager) GetGasPrice() (*big.Int, error) { - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_gasPrice", []interface{}{}) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_gasPrice", []interface{}{}) if err != nil { return big.NewInt(0), err } @@ -330,7 +330,7 @@ func (wm *WalletManager) GetGasPrice() (*big.Int, error) { func (wm *WalletManager) SetNetworkChainID() (uint64, error) { - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_chainId", nil) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_chainId", nil) if err != nil { return 0, err } @@ -431,7 +431,7 @@ func (wm *WalletManager) EthCall(callMsg CallMsg, sign string) (string, error) { "value": hexutil.EncodeBig(callMsg.Value), "data": hexutil.Encode(callMsg.Data), } - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_call", []interface{}{param, sign}) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_call", []interface{}{param, sign}) if err != nil { return "", err } @@ -444,7 +444,7 @@ func (wm *WalletManager) SendRawTransaction(signedTx string) (string, error) { signedTx, } - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_sendRawTransaction", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_sendRawTransaction", params) if err != nil { return "", err } @@ -459,7 +459,7 @@ func (wm *WalletManager) IsContract(address string) (bool, error) { "latest", } - result, err := wm.WalletClient.Call(strings.ToLower(Symbol) + "_getCode", params) + result, err := wm.WalletClient.Call(strings.ToLower(wm.Config.Symbol)+"_getCode", params) if err != nil { return false, err }