parmas, crypto, core, core/vm: homestead consensus protocol changes
* change gas cost for contract creating txs * invalidate signature with s value greater than secp256k1 N / 2 * OOG contract creation if not enough gas to store code * new difficulty adjustment algorithm * new DELEGATECALL op code
This commit is contained in:
committed by
Jeffrey Wilcke
parent
aa36a6ae4f
commit
371871d685
@ -26,12 +26,14 @@ import (
|
||||
type ContractRef interface {
|
||||
ReturnGas(*big.Int, *big.Int)
|
||||
Address() common.Address
|
||||
SetAddress(common.Address)
|
||||
Value() *big.Int
|
||||
SetCode([]byte)
|
||||
EachStorage(cb func(key, value []byte))
|
||||
}
|
||||
|
||||
// Contract represents an ethereum contract in the state database. It contains
|
||||
// the the contract code, calling arguments. Contract implements ContractReg
|
||||
// the the contract code, calling arguments. Contract implements ContractRef
|
||||
type Contract struct {
|
||||
caller ContractRef
|
||||
self ContractRef
|
||||
@ -45,6 +47,8 @@ type Contract struct {
|
||||
value, Gas, UsedGas, Price *big.Int
|
||||
|
||||
Args []byte
|
||||
|
||||
DelegateCall bool
|
||||
}
|
||||
|
||||
// Create a new context for the given data items.
|
||||
@ -114,6 +118,16 @@ func (c *Contract) Address() common.Address {
|
||||
return c.self.Address()
|
||||
}
|
||||
|
||||
// SetAddress sets the contracts address
|
||||
func (c *Contract) SetAddress(addr common.Address) {
|
||||
c.self.SetAddress(addr)
|
||||
}
|
||||
|
||||
// Value returns the contracts value (sent to it from it's caller)
|
||||
func (c *Contract) Value() *big.Int {
|
||||
return c.value
|
||||
}
|
||||
|
||||
// SetCode sets the code to the contract
|
||||
func (self *Contract) SetCode(code []byte) {
|
||||
self.Code = code
|
||||
|
Reference in New Issue
Block a user