Update NewTXArgs to accept hex
This commit is contained in:
parent
c92e48ce3f
commit
c3deafabda
15
rpc/api.go
15
rpc/api.go
@ -252,12 +252,12 @@ func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error {
|
func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error {
|
||||||
if len(args.Gas) == 0 {
|
if args.Gas == ethutil.Big0 {
|
||||||
args.Gas = defaultGas.String()
|
args.Gas = defaultGas
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(args.GasPrice) == 0 {
|
if args.GasPrice == ethutil.Big0 {
|
||||||
args.GasPrice = defaultGasPrice.String()
|
args.GasPrice = defaultGasPrice
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO if no_private_key then
|
// TODO if no_private_key then
|
||||||
@ -281,7 +281,10 @@ func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error {
|
|||||||
p.register[ags.From] = append(p.register[args.From], args)
|
p.register[ags.From] = append(p.register[args.From], args)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
result, _ := p.xeth().Transact( /* TODO specify account */ args.To, args.Value, args.Gas, args.GasPrice, args.Data)
|
result, err := p.xeth().Transact( /* TODO specify account */ args.To, args.Value.String(), args.Gas.String(), args.GasPrice.String(), args.Data)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
*reply = result
|
*reply = result
|
||||||
//}
|
//}
|
||||||
|
|
||||||
@ -289,7 +292,7 @@ func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *EthereumApi) Call(args *NewTxArgs, reply *interface{}) error {
|
func (p *EthereumApi) Call(args *NewTxArgs, reply *interface{}) error {
|
||||||
result, err := p.xeth().Call( /* TODO specify account */ args.To, args.Value, args.Gas, args.GasPrice, args.Data)
|
result, err := p.xeth().Call( /* TODO specify account */ args.To, args.Value.String(), args.Gas.String(), args.GasPrice.String(), args.Data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
34
rpc/args.go
34
rpc/args.go
@ -1,8 +1,12 @@
|
|||||||
package rpc
|
package rpc
|
||||||
|
|
||||||
import "encoding/json"
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"math/big"
|
||||||
|
|
||||||
import "github.com/ethereum/go-ethereum/core"
|
"github.com/ethereum/go-ethereum/core"
|
||||||
|
"github.com/ethereum/go-ethereum/ethutil"
|
||||||
|
)
|
||||||
|
|
||||||
type GetBlockArgs struct {
|
type GetBlockArgs struct {
|
||||||
BlockNumber int32
|
BlockNumber int32
|
||||||
@ -23,12 +27,12 @@ func (obj *GetBlockArgs) UnmarshalJSON(b []byte) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type NewTxArgs struct {
|
type NewTxArgs struct {
|
||||||
From string `json:"from"`
|
From string `json:"from"`
|
||||||
To string `json:"to"`
|
To string `json:"to"`
|
||||||
Value string `json:"value"`
|
Value *big.Int `json:"value"`
|
||||||
Gas string `json:"gas"`
|
Gas *big.Int `json:"gas"`
|
||||||
GasPrice string `json:"gasPrice"`
|
GasPrice *big.Int `json:"gasPrice"`
|
||||||
Data string `json:"data"`
|
Data string `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (obj *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
|
func (obj *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
|
||||||
@ -40,18 +44,18 @@ func (obj *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
|
|||||||
Gas string
|
Gas string
|
||||||
GasPrice string
|
GasPrice string
|
||||||
Data string
|
Data string
|
||||||
Code string
|
// Code string
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = json.Unmarshal(b, &ext); err == nil {
|
if err = json.Unmarshal(b, &ext); err == nil {
|
||||||
if len(ext.Data) == 0 {
|
// if len(ext.Data) == 0 {
|
||||||
ext.Data = ext.Code
|
// ext.Data = ext.Code
|
||||||
}
|
// }
|
||||||
obj.From = ext.From
|
obj.From = ext.From
|
||||||
obj.To = ext.To
|
obj.To = ext.To
|
||||||
obj.Value = ext.Value
|
obj.Value = ethutil.Big(ext.Value)
|
||||||
obj.Gas = ext.Gas
|
obj.Gas = ethutil.Big(ext.Gas)
|
||||||
obj.GasPrice = ext.GasPrice
|
obj.GasPrice = ethutil.Big(ext.GasPrice)
|
||||||
obj.Data = ext.Data
|
obj.Data = ext.Data
|
||||||
|
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user