|
|
@@ -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)
|