good morning!!!!

Skip to content
Snippets Groups Projects
Commit 43f1214f authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Refactored code

parent b962779a
No related branches found
No related tags found
No related merge requests found
......@@ -43,8 +43,7 @@ func (lib *EthLib) CreateAndSetPrivKey() (string, string, string, string) {
return mnemonicString, fmt.Sprintf("%x", pair.Address()), fmt.Sprintf("%x", prv), fmt.Sprintf("%x", pub)
}
func (lib *EthLib) CreateTx(recipient, valueStr, gasStr, gasPriceStr, data string) (string, error) {
fmt.Println("Create tx")
func (lib *EthLib) CreateTx(recipient, valueStr, gasStr, gasPriceStr, dataStr string) (string, error) {
var hash []byte
var contractCreation bool
if len(recipient) == 0 {
......@@ -64,26 +63,24 @@ func (lib *EthLib) CreateTx(recipient, valueStr, gasStr, gasPriceStr, data strin
var tx *ethchain.Transaction
// Compile and assemble the given data
if contractCreation {
mainInput, initInput := ethutil.PreProcess(data)
fmt.Println("Precompile done")
fmt.Println("main", mainInput)
mainScript, err := utils.Compile(mainInput)
if err != nil {
return "", err
}
fmt.Println("init", initInput)
initScript, err := utils.Compile(initInput)
// Compile script
mainScript, initScript, err := utils.CompileScript(dataStr)
if err != nil {
return "", err
}
tx = ethchain.NewContractCreationTx(value, gas, gasPrice, mainScript, initScript)
} else {
tx = ethchain.NewTransactionMessage(hash, value, gas, gasPrice, nil)
lines := strings.Split(dataStr, "\n")
var data []byte
for _, line := range lines {
data = append(data, ethutil.BigToBytes(ethutil.Big(line), 256)...)
}
tx = ethchain.NewTransactionMessage(hash, value, gas, gasPrice, data)
}
acc := lib.stateManager.GetAddrState(keyPair.Address())
tx.Nonce = acc.Nonce
//acc.Nonce++
tx.Sign(keyPair.PrivateKey)
lib.txPool.QueueTransaction(tx)
......
......@@ -22,3 +22,21 @@ func Compile(script string) ([]byte, error) {
return ethutil.Assemble(asm...), nil
}
func CompileScript(script string) ([]byte, []byte, error) {
// Preprocess
mainInput, initInput := ethutil.PreProcess(script)
// Compile main script
mainScript, err := Compile(mainInput)
if err != nil {
return nil, nil, err
}
// Compile init script
initScript, err := Compile(initInput)
if err != nil {
return nil, nil, err
}
return mainScript, initScript, nil
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment