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.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/core/vm/contract.go b/core/vm/contract.go
index 5981dcca0..dac81a529 100644
--- a/core/vm/contract.go
+++ b/core/vm/contract.go
@@ -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