forked from cerc-io/plugeth
Updated to use new state object
This commit is contained in:
parent
6b644c17a7
commit
1cd7d4456b
@ -170,7 +170,7 @@ func (ui *Gui) update() {
|
||||
txChan := make(chan ethchain.TxMsg, 1)
|
||||
ui.eth.TxPool().Subscribe(txChan)
|
||||
|
||||
account := ui.eth.StateManager().GetAddrState(ui.addr).Account
|
||||
account := ui.eth.StateManager().GetAddrState(ui.addr).Object
|
||||
unconfirmedFunds := new(big.Int)
|
||||
ui.win.Root().Call("setWalletValue", fmt.Sprintf("%v", ethutil.CurrencyToString(account.Amount)))
|
||||
for {
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"github.com/ethereum/eth-go/ethchain"
|
||||
"github.com/ethereum/eth-go/ethutil"
|
||||
"github.com/ethereum/go-ethereum/utils"
|
||||
"github.com/obscuren/mutan"
|
||||
"github.com/obscuren/secp256k1-go"
|
||||
"strings"
|
||||
)
|
||||
@ -44,22 +43,6 @@ func (lib *EthLib) CreateAndSetPrivKey() (string, string, string, string) {
|
||||
return mnemonicString, fmt.Sprintf("%x", pair.Address()), fmt.Sprintf("%x", prv), fmt.Sprintf("%x", pub)
|
||||
}
|
||||
|
||||
// General compiler and preprocessor function
|
||||
func compile(script string) ([]byte, error) {
|
||||
asm, errors := mutan.Compile(strings.NewReader(script), false)
|
||||
if len(errors) > 0 {
|
||||
var errs string
|
||||
for _, er := range errors {
|
||||
if er != nil {
|
||||
errs += er.Error()
|
||||
}
|
||||
}
|
||||
return nil, fmt.Errorf("%v", errs)
|
||||
}
|
||||
|
||||
return ethutil.Assemble(asm...), nil
|
||||
}
|
||||
|
||||
func (lib *EthLib) CreateTx(recipient, valueStr, gasStr, gasPriceStr, data string) (string, error) {
|
||||
var hash []byte
|
||||
var contractCreation bool
|
||||
@ -81,18 +64,16 @@ func (lib *EthLib) CreateTx(recipient, valueStr, gasStr, gasPriceStr, data strin
|
||||
// Compile and assemble the given data
|
||||
if contractCreation {
|
||||
mainInput, initInput := ethutil.PreProcess(data)
|
||||
mainScript, err := compile(mainInput)
|
||||
mainScript, err := utils.Compile(mainInput)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
initScript, err := compile(initInput)
|
||||
initScript, err := utils.Compile(initInput)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
// TODO
|
||||
fmt.Println(initScript)
|
||||
tx = ethchain.NewContractCreationTx(value, gasPrice, mainScript)
|
||||
tx = ethchain.NewContractCreationTx(value, gasPrice, mainScript, initScript)
|
||||
} else {
|
||||
tx = ethchain.NewTransactionMessage(hash, value, gasPrice, gas, nil)
|
||||
}
|
||||
|
@ -6,14 +6,13 @@ import (
|
||||
"github.com/ethereum/eth-go"
|
||||
"github.com/ethereum/eth-go/ethchain"
|
||||
"github.com/ethereum/eth-go/ethutil"
|
||||
"github.com/ethereum/go-ethereum/utils"
|
||||
"github.com/niemeyer/qml"
|
||||
"github.com/obscuren/mutan"
|
||||
"math/big"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type memAddr struct {
|
||||
@ -99,25 +98,24 @@ func (ui *UiLib) DebugTx(recipient, valueStr, gasStr, gasPriceStr, data string)
|
||||
state := ui.eth.BlockChain().CurrentBlock.State()
|
||||
|
||||
mainInput, _ := ethutil.PreProcess(data)
|
||||
asm, err := mutan.Compile(strings.NewReader(mainInput), false)
|
||||
callerScript, err := utils.Compile(mainInput)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
for _, e := range err {
|
||||
ui.win.Root().Call("addDebugMessage", e.Error())
|
||||
}
|
||||
ethutil.Config.Log.Debugln(err)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
callerScript := ethutil.Assemble(asm...)
|
||||
dis := ethchain.Disassemble(callerScript)
|
||||
ui.win.Root().Call("clearAsm")
|
||||
|
||||
for _, str := range dis {
|
||||
ui.win.Root().Call("setAsm", str)
|
||||
}
|
||||
callerTx := ethchain.NewContractCreationTx(ethutil.Big(valueStr), ethutil.Big(gasPriceStr), callerScript)
|
||||
callerTx := ethchain.NewContractCreationTx(ethutil.Big(valueStr), ethutil.Big(gasPriceStr), callerScript, nil)
|
||||
|
||||
// Contract addr as test address
|
||||
keyPair := ethutil.Config.Db.GetKeys()[0]
|
||||
account := ui.eth.StateManager().GetAddrState(keyPair.Address()).Account
|
||||
account := ui.eth.StateManager().GetAddrState(keyPair.Address()).Object
|
||||
c := ethchain.MakeContract(callerTx, state)
|
||||
callerClosure := ethchain.NewClosure(account, c, c.Script(), state, ethutil.Big(gasStr), new(big.Int))
|
||||
|
||||
|
@ -11,8 +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"
|
||||
"github.com/ethereum/go-ethereum/utils"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
@ -171,7 +170,7 @@ func (i *Console) ParseInput(input string) bool {
|
||||
if err != nil {
|
||||
fmt.Println("recipient err:", err)
|
||||
} else {
|
||||
tx := ethchain.NewTransactionMessage(recipient, ethutil.Big(tokens[2]), ethutil.Big(tokens[3]), ethutil.Big(tokens[4]), []string{""})
|
||||
tx := ethchain.NewTransactionMessage(recipient, ethutil.Big(tokens[2]), ethutil.Big(tokens[3]), ethutil.Big(tokens[4]), nil)
|
||||
|
||||
key := ethutil.Config.Db.GetKeys()[0]
|
||||
tx.Sign(key.PrivateKey)
|
||||
@ -190,15 +189,22 @@ func (i *Console) ParseInput(input string) bool {
|
||||
}
|
||||
case "contract":
|
||||
fmt.Println("Contract editor (Ctrl-D = done)")
|
||||
asm, err := mutan.Compile(strings.NewReader(i.Editor()), false)
|
||||
|
||||
mainInput, initInput := ethutil.PreProcess(i.Editor())
|
||||
mainScript, err := utils.Compile(mainInput)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
|
||||
break
|
||||
}
|
||||
initScript, err := utils.Compile(initInput)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
|
||||
break
|
||||
}
|
||||
|
||||
code := ethutil.Assemble(asm)
|
||||
|
||||
contract := ethchain.NewContractCreationTx(ethutil.Big(tokens[0]), ethutil.Big(tokens[1]), code)
|
||||
contract := ethchain.NewContractCreationTx(ethutil.Big(tokens[0]), ethutil.Big(tokens[1]), mainScript, initScript)
|
||||
|
||||
key := ethutil.Config.Db.GetKeys()[0]
|
||||
contract.Sign(key.PrivateKey)
|
||||
|
Loading…
Reference in New Issue
Block a user