diff options
Diffstat (limited to 'rpc/api/eth.go')
-rw-r--r-- | rpc/api/eth.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/rpc/api/eth.go b/rpc/api/eth.go index 66ee69930..cb678922b 100644 --- a/rpc/api/eth.go +++ b/rpc/api/eth.go @@ -46,6 +46,7 @@ var ( "eth_getData": (*ethApi).GetData, "eth_getCode": (*ethApi).GetData, "eth_sign": (*ethApi).Sign, + "eth_sendRawTransaction": (*ethApi).PushTx, "eth_sendTransaction": (*ethApi).SendTransaction, "eth_transact": (*ethApi).SendTransaction, "eth_estimateGas": (*ethApi).EstimateGas, @@ -247,6 +248,20 @@ func (self *ethApi) Sign(req *shared.Request) (interface{}, error) { return v, nil } + +func (self *ethApi) PushTx(req *shared.Request) (interface{}, error) { + args := new(NewDataArgs) + if err := self.codec.Decode(req.Params, &args); err != nil { + return nil, shared.NewDecodeParamError(err.Error()) + } + + v, err := self.xeth.PushTx(args.Data) + if err != nil { + return nil, err + } + return v, nil +} + func (self *ethApi) SendTransaction(req *shared.Request) (interface{}, error) { args := new(NewTxArgs) if err := self.codec.Decode(req.Params, &args); err != nil { |