Differentiate between 0 and unspecified gas/gasprice

This commit is contained in:
Taylor Gerring
2015-05-29 14:27:15 -05:00
parent 0f1cdfa53a
commit c8a9a4e76d
4 changed files with 73 additions and 36 deletions

View File

@ -885,12 +885,29 @@ func (self *XEth) Transact(fromStr, toStr, nonceStr, valueStr, gasStr, gasPriceS
from = common.HexToAddress(fromStr)
to = common.HexToAddress(toStr)
value = common.Big(valueStr)
gas = common.Big(gasStr)
price = common.Big(gasPriceStr)
gas *big.Int
price *big.Int
data []byte
contractCreation bool
)
if len(gasStr) == 0 {
gas = DefaultGas()
} else {
gas = common.Big(gasStr)
}
if len(gasPriceStr) == 0 {
price = DefaultGasPrice()
} else {
price = common.Big(gasPriceStr)
}
data = common.FromHex(codeStr)
if len(toStr) == 0 {
contractCreation = true
}
// 2015-05-18 Is this still needed?
// TODO if no_private_key then
//if _, exists := p.register[args.From]; exists {
@ -916,18 +933,6 @@ func (self *XEth) Transact(fromStr, toStr, nonceStr, valueStr, gasStr, gasPriceS
// TODO: align default values to have the same type, e.g. not depend on
// common.Value conversions later on
if gas.Cmp(big.NewInt(0)) == 0 {
gas = DefaultGas()
}
if price.Cmp(big.NewInt(0)) == 0 {
price = DefaultGasPrice()
}
data = common.FromHex(codeStr)
if len(toStr) == 0 {
contractCreation = true
}
var tx *types.Transaction
if contractCreation {