aboutsummaryrefslogtreecommitdiffstats
path: root/utils/compile.go
blob: e5ea50ad412008401a743a9ea733d191ca62fddc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package utils

import (
    "fmt"
    "github.com/ethereum/eth-go/ethutil"
    "github.com/obscuren/mutan"
    "strings"
)

// General compile 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
}