Using mutan assembler stage
This commit is contained in:
parent
338b698091
commit
bf850974f3
@ -82,7 +82,7 @@ func TestRun4(t *testing.T) {
|
|||||||
db, _ := ethdb.NewMemDatabase()
|
db, _ := ethdb.NewMemDatabase()
|
||||||
state := NewState(ethutil.NewTrie(db, ""))
|
state := NewState(ethutil.NewTrie(db, ""))
|
||||||
|
|
||||||
asm, err := mutan.Compile(strings.NewReader(`
|
script, err := mutan.Compile(strings.NewReader(`
|
||||||
int32 a = 10
|
int32 a = 10
|
||||||
int32 b = 20
|
int32 b = 20
|
||||||
if a > b {
|
if a > b {
|
||||||
@ -90,14 +90,13 @@ func TestRun4(t *testing.T) {
|
|||||||
}
|
}
|
||||||
Exit()
|
Exit()
|
||||||
`), false)
|
`), false)
|
||||||
script := ethutil.Assemble(asm...)
|
|
||||||
tx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), ethutil.Big("100"), script, nil)
|
tx := NewContractCreationTx(ethutil.Big("0"), ethutil.Big("1000"), ethutil.Big("100"), script, nil)
|
||||||
addr := tx.Hash()[12:]
|
addr := tx.Hash()[12:]
|
||||||
contract := MakeContract(tx, state)
|
contract := MakeContract(tx, state)
|
||||||
state.UpdateStateObject(contract)
|
state.UpdateStateObject(contract)
|
||||||
fmt.Printf("%x\n", addr)
|
fmt.Printf("%x\n", addr)
|
||||||
|
|
||||||
asm, err = mutan.Compile(strings.NewReader(`
|
callerScript, err := mutan.Compile(strings.NewReader(`
|
||||||
// Check if there's any cash in the initial store
|
// Check if there's any cash in the initial store
|
||||||
if store[1000] == 0 {
|
if store[1000] == 0 {
|
||||||
store[1000] = 10^20
|
store[1000] = 10^20
|
||||||
@ -129,10 +128,7 @@ func TestRun4(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
asm = append(asm, "LOG")
|
|
||||||
fmt.Println(asm)
|
|
||||||
|
|
||||||
callerScript := ethutil.Assemble(asm...)
|
|
||||||
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, nil)
|
||||||
|
|
||||||
// Contract addr as test address
|
// Contract addr as test address
|
||||||
@ -162,17 +158,3 @@ func TestRun4(t *testing.T) {
|
|||||||
}
|
}
|
||||||
fmt.Println("account.Amount =", account.Amount)
|
fmt.Println("account.Amount =", account.Amount)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRun5(t *testing.T) {
|
|
||||||
ethutil.ReadConfig("")
|
|
||||||
|
|
||||||
asm, _ := mutan.Compile(strings.NewReader(`
|
|
||||||
int32 a = 10
|
|
||||||
int32 b = 20
|
|
||||||
if a > b {
|
|
||||||
int32 c = this.caller()
|
|
||||||
}
|
|
||||||
exit()
|
|
||||||
`), false)
|
|
||||||
ethutil.Assemble(asm...)
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user