aboutsummaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-05-07 02:23:58 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-05-07 02:23:58 +0800
commit323216ed85b48abec07266a203b731e7491d4286 (patch)
treee9ac9734d08effe53094f6cb00ff306dc51ffe73 /rpc
parent1f26a1b86319f9468395e0772b5ae8f02cce8ec8 (diff)
parent05ac1209c731722a486fb54d3b5cc9282c760c81 (diff)
downloaddexon-323216ed85b48abec07266a203b731e7491d4286.tar
dexon-323216ed85b48abec07266a203b731e7491d4286.tar.gz
dexon-323216ed85b48abec07266a203b731e7491d4286.tar.bz2
dexon-323216ed85b48abec07266a203b731e7491d4286.tar.lz
dexon-323216ed85b48abec07266a203b731e7491d4286.tar.xz
dexon-323216ed85b48abec07266a203b731e7491d4286.tar.zst
dexon-323216ed85b48abec07266a203b731e7491d4286.zip
Merge pull request #861 from obscuren/transaction_pool_fixes
core: transaction pool fixes & resending transactions
Diffstat (limited to 'rpc')
-rw-r--r--rpc/api.go8
-rw-r--r--rpc/args.go10
2 files changed, 17 insertions, 1 deletions
diff --git a/rpc/api.go b/rpc/api.go
index 6d3a20bfa..b79a1306e 100644
--- a/rpc/api.go
+++ b/rpc/api.go
@@ -173,7 +173,13 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err
return fmt.Errorf("Transaction not confirmed")
}
- v, err := api.xeth().Transact(args.From, args.To, args.Value.String(), args.Gas.String(), args.GasPrice.String(), args.Data)
+ // nonce may be nil ("guess" mode)
+ var nonce string
+ if args.Nonce != nil {
+ nonce = args.Nonce.String()
+ }
+
+ v, err := api.xeth().Transact(args.From, args.To, nonce, args.Value.String(), args.Gas.String(), args.GasPrice.String(), args.Data)
if err != nil {
return err
}
diff --git a/rpc/args.go b/rpc/args.go
index 4bd48e6d6..e61f28c4f 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -157,6 +157,7 @@ func (args *GetBlockByNumberArgs) UnmarshalJSON(b []byte) (err error) {
type NewTxArgs struct {
From string
To string
+ Nonce *big.Int
Value *big.Int
Gas *big.Int
GasPrice *big.Int
@@ -170,6 +171,7 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
var ext struct {
From string
To string
+ Nonce interface{}
Value interface{}
Gas interface{}
GasPrice interface{}
@@ -200,6 +202,14 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
args.Data = ext.Data
var num *big.Int
+ if ext.Nonce != nil {
+ num, err = numString(ext.Nonce)
+ if err != nil {
+ return err
+ }
+ }
+ args.Nonce = num
+
if ext.Value == nil {
num = big.NewInt(0)
} else {