|
|
|
@ -25,11 +25,6 @@ import ( |
|
|
|
|
"github.com/ethereum/go-ethereum/xeth" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
|
defaultGasPrice = "10000000000000" |
|
|
|
|
defaultGas = "10000" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
type EthereumApi struct { |
|
|
|
|
xeth *xeth.XEth |
|
|
|
|
quit chan struct{} |
|
|
|
@ -45,17 +40,22 @@ type EthereumApi struct { |
|
|
|
|
register map[string][]*NewTxArgs |
|
|
|
|
|
|
|
|
|
db ethutil.Database |
|
|
|
|
|
|
|
|
|
defaultGasPrice *big.Int |
|
|
|
|
defaultGas *big.Int |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func NewEthereumApi(eth *xeth.XEth) *EthereumApi { |
|
|
|
|
db, _ := ethdb.NewLDBDatabase("dapps") |
|
|
|
|
api := &EthereumApi{ |
|
|
|
|
xeth: eth, |
|
|
|
|
quit: make(chan struct{}), |
|
|
|
|
filterManager: filter.NewFilterManager(eth.Backend().EventMux()), |
|
|
|
|
logs: make(map[int]*logFilter), |
|
|
|
|
messages: make(map[int]*whisperFilter), |
|
|
|
|
db: db, |
|
|
|
|
xeth: eth, |
|
|
|
|
quit: make(chan struct{}), |
|
|
|
|
filterManager: filter.NewFilterManager(eth.Backend().EventMux()), |
|
|
|
|
logs: make(map[int]*logFilter), |
|
|
|
|
messages: make(map[int]*whisperFilter), |
|
|
|
|
db: db, |
|
|
|
|
defaultGasPrice: big.NewInt(10000000000000), |
|
|
|
|
defaultGas: big.NewInt(10000), |
|
|
|
|
} |
|
|
|
|
go api.filterManager.Start() |
|
|
|
|
go api.start() |
|
|
|
@ -192,11 +192,11 @@ func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error { |
|
|
|
|
|
|
|
|
|
func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error { |
|
|
|
|
if len(args.Gas) == 0 { |
|
|
|
|
args.Gas = defaultGas |
|
|
|
|
args.Gas = p.defaultGas.String() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if len(args.GasPrice) == 0 { |
|
|
|
|
args.GasPrice = defaultGasPrice |
|
|
|
|
args.GasPrice = p.defaultGasPrice.String() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// TODO if no_private_key then
|
|
|
|
@ -525,7 +525,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error |
|
|
|
|
} |
|
|
|
|
return p.AllLogs(args, reply) |
|
|
|
|
case "eth_gasPrice": |
|
|
|
|
*reply = defaultGasPrice |
|
|
|
|
*reply = "0x" + toHex(p.defaultGasPrice.Bytes()) |
|
|
|
|
return nil |
|
|
|
|
case "eth_register": |
|
|
|
|
args, err := req.ToRegisterArgs() |
|
|
|
|