aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/contract.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/vm/contract.go')
-rw-r--r--core/vm/contract.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/vm/contract.go b/core/vm/contract.go
index 844d3f328..70455a4c2 100644
--- a/core/vm/contract.go
+++ b/core/vm/contract.go
@@ -27,7 +27,7 @@ type ContractRef interface {
ReturnGas(*big.Int, *big.Int)
Address() common.Address
Value() *big.Int
- SetCode([]byte)
+ SetCode(common.Hash, []byte)
ForEachStorage(callback func(key, value common.Hash) bool)
}
@@ -44,8 +44,9 @@ type Contract struct {
jumpdests destinations // result of JUMPDEST analysis.
Code []byte
- Input []byte
+ CodeHash common.Hash
CodeAddr *common.Address
+ Input []byte
value, Gas, UsedGas, Price *big.Int
@@ -143,14 +144,16 @@ func (c *Contract) Value() *big.Int {
}
// SetCode sets the code to the contract
-func (self *Contract) SetCode(code []byte) {
+func (self *Contract) SetCode(hash common.Hash, code []byte) {
self.Code = code
+ self.CodeHash = hash
}
// SetCallCode sets the code of the contract and address of the backing data
// object
-func (self *Contract) SetCallCode(addr *common.Address, code []byte) {
+func (self *Contract) SetCallCode(addr *common.Address, hash common.Hash, code []byte) {
self.Code = code
+ self.CodeHash = hash
self.CodeAddr = addr
}