The body of contracts are now returned instead
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
package ethchain
|
||||
|
||||
/*
|
||||
import (
|
||||
_ "bytes"
|
||||
"fmt"
|
||||
@ -13,60 +12,33 @@ import (
|
||||
)
|
||||
|
||||
func TestRun4(t *testing.T) {
|
||||
ethutil.ReadConfig("", ethutil.LogStd)
|
||||
ethutil.ReadConfig("", ethutil.LogStd, "")
|
||||
|
||||
db, _ := ethdb.NewMemDatabase()
|
||||
state := NewState(ethutil.NewTrie(db, ""))
|
||||
|
||||
script, err := mutan.Compile(strings.NewReader(`
|
||||
int32 a = 10
|
||||
int32 b = 20
|
||||
if a > b {
|
||||
int32 c = this.caller()
|
||||
}
|
||||
exit()
|
||||
`), false)
|
||||
tx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), ethutil.Big("100"), script, nil)
|
||||
tx.Sign(ContractAddr)
|
||||
addr := tx.CreationAddress()
|
||||
contract := MakeContract(tx, state)
|
||||
state.UpdateStateObject(contract)
|
||||
fmt.Printf("%x\n", addr)
|
||||
|
||||
callerScript, err := mutan.Compile(strings.NewReader(`
|
||||
// Check if there's any cash in the initial store
|
||||
if this.store[1000] == 0 {
|
||||
this.store[1000] = 10**20
|
||||
}
|
||||
|
||||
|
||||
this.store[1001] = this.value() * 20
|
||||
this.store[this.origin()] = this.store[this.origin()] + 1000
|
||||
|
||||
if this.store[1001] > 20 {
|
||||
this.store[1001] = 10^50
|
||||
}
|
||||
|
||||
int8 ret = 0
|
||||
int8 arg = 10
|
||||
call(0xe6a12555fad1fb6eaaaed69001a87313d1fd7b54, 0, 100, arg, ret)
|
||||
|
||||
big t
|
||||
for int8 i = 0; i < 10; i++ {
|
||||
t = i
|
||||
}
|
||||
|
||||
if 10 > 20 {
|
||||
int8 shouldnt = 2
|
||||
} else {
|
||||
int8 should = 1
|
||||
this.store[this.origin()] = 10**20
|
||||
hello := "world"
|
||||
|
||||
return lambda {
|
||||
big to = this.data[0]
|
||||
big from = this.origin()
|
||||
big value = this.data[1]
|
||||
|
||||
if this.store[from] >= value {
|
||||
this.store[from] = this.store[from] - value
|
||||
this.store[to] = this.store[to] + value
|
||||
}
|
||||
}
|
||||
`), false)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(Disassemble(callerScript))
|
||||
|
||||
callerTx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), ethutil.Big("100"), callerScript, nil)
|
||||
callerTx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), ethutil.Big("100"), callerScript)
|
||||
callerTx.Sign([]byte("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))
|
||||
|
||||
// Contract addr as test address
|
||||
gas := big.NewInt(1000)
|
||||
@ -79,7 +51,7 @@ func TestRun4(t *testing.T) {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println("account.Amount =", account.Amount)
|
||||
callerClosure := NewClosure(account, c, c.script, state, gas, gasPrice)
|
||||
callerClosure := NewClosure(account, c, callerScript, state, gas, gasPrice)
|
||||
|
||||
vm := NewVm(state, nil, RuntimeVars{
|
||||
Origin: account.Address(),
|
||||
@ -89,10 +61,10 @@ func TestRun4(t *testing.T) {
|
||||
Time: 1,
|
||||
Diff: big.NewInt(256),
|
||||
})
|
||||
_, e = callerClosure.Call(vm, nil, nil)
|
||||
var ret []byte
|
||||
ret, e = callerClosure.Call(vm, nil, nil)
|
||||
if e != nil {
|
||||
fmt.Println("error", e)
|
||||
}
|
||||
fmt.Println("account.Amount =", account.Amount)
|
||||
fmt.Println(ret)
|
||||
}
|
||||
*/
|
||||
|
Reference in New Issue
Block a user