aboutsummaryrefslogtreecommitdiffstats
path: root/ethereum/dev_console.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethereum/dev_console.go')
-rw-r--r--ethereum/dev_console.go25
1 files changed, 10 insertions, 15 deletions
diff --git a/ethereum/dev_console.go b/ethereum/dev_console.go
index ead4b55e5..5452b9a61 100644
--- a/ethereum/dev_console.go
+++ b/ethereum/dev_console.go
@@ -11,6 +11,7 @@ import (
"github.com/ethereum/eth-go/ethdb"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/eth-go/ethwire"
+ "github.com/obscuren/mutan"
_ "math/big"
"os"
"strings"
@@ -58,9 +59,9 @@ func (i *Console) ValidateInput(action string, argumentLength int) error {
case action == "getaddr" && argumentLength != 1:
err = true
expArgCount = 1
- case action == "contract" && argumentLength != 1:
+ case action == "contract" && argumentLength != 2:
err = true
- expArgCount = 1
+ expArgCount = 2
case action == "say" && argumentLength != 1:
err = true
expArgCount = 1
@@ -79,7 +80,7 @@ func (i *Console) ValidateInput(action string, argumentLength int) error {
}
}
-func (i *Console) Editor() []string {
+func (i *Console) Editor() string {
var buff bytes.Buffer
for {
reader := bufio.NewReader(os.Stdin)
@@ -94,15 +95,7 @@ func (i *Console) Editor() []string {
}
}
- scanner := bufio.NewScanner(strings.NewReader(buff.String()))
- scanner.Split(bufio.ScanLines)
-
- var lines []string
- for scanner.Scan() {
- lines = append(lines, scanner.Text())
- }
-
- return lines
+ return buff.String()
}
func (i *Console) PrintRoot() {
@@ -178,7 +171,7 @@ func (i *Console) ParseInput(input string) bool {
if err != nil {
fmt.Println("recipient err:", err)
} else {
- tx := ethchain.NewTransaction(recipient, ethutil.Big(tokens[2]), []string{""})
+ tx := ethchain.NewTx(recipient, ethutil.Big(tokens[2]), []string{""})
key := ethutil.Config.Db.GetKeys()[0]
tx.Sign(key.PrivateKey)
@@ -197,9 +190,11 @@ func (i *Console) ParseInput(input string) bool {
}
case "contract":
fmt.Println("Contract editor (Ctrl-D = done)")
- code := ethchain.Compile(i.Editor())
+ asm := mutan.NewCompiler().Compile(strings.NewReader(i.Editor()))
+
+ code := ethutil.Assemble(asm)
- contract := ethchain.NewTransaction(ethchain.ContractAddr, ethutil.Big(tokens[1]), code)
+ contract := ethchain.NewContractCreationTx(ethutil.Big(tokens[0]), ethutil.Big(tokens[1]), code)
key := ethutil.Config.Db.GetKeys()[0]
contract.Sign(key.PrivateKey)