Removed regular ints from the virtual machine and closures

This commit is contained in:
obscuren
2014-03-21 18:22:47 +01:00
parent 9a9e252cab
commit 01c1bce9c5
5 changed files with 39 additions and 10 deletions

View File

@ -39,12 +39,17 @@ func (c *Contract) State() *State {
return c.state
}
func (c *Contract) GetMem(num int64) *ethutil.Value {
nb := ethutil.BigToBytes(big.NewInt(num), 256)
func (c *Contract) GetMem(num *big.Int) *ethutil.Value {
nb := ethutil.BigToBytes(num, 256)
return c.Addr(nb)
}
func (c *Contract) SetMem(num *big.Int, val *ethutil.Value) {
addr := ethutil.BigToBytes(num, 256)
c.state.trie.Update(string(addr), string(val.Encode()))
}
// Return the gas back to the origin. Used by the Virtual machine or Closures
func (c *Contract) ReturnGas(val *big.Int, state *State) {
c.Amount.Add(c.Amount, val)