diff --git a/analysis/analyzer.go b/analysis/analyzer.go index eceec6ca..684858a6 100644 --- a/analysis/analyzer.go +++ b/analysis/analyzer.go @@ -176,13 +176,11 @@ func (a *Analyzer) analyzeAction(idx int, act *eos.Action) (err error) { case *sudo.Exec: a.Pf("Account %q executes a transaction impersonating another account\n", obj.Executer) - var tx *eos.Transaction - err := eos.UnmarshalBinary(obj.Transaction, &tx) if err != nil { a.Pf("Error: unpacking sudo transaction: %s\n", err) } else { a.Pln("-------------------- SUDO TRANSACTION BEGIN -----------------------") - if err := a.AnalyzeTransaction(tx); err != nil { + if err := a.AnalyzeTransaction(&obj.Transaction); err != nil { a.Pf("Error: analyzing sudo transaction: %s\n", err) } a.Pln("-------------------- SUDO TRANSACTION END -----------------------") diff --git a/eosc/cmd/common.go b/eosc/cmd/common.go index 16c6089a..b0710570 100644 --- a/eosc/cmd/common.go +++ b/eosc/cmd/common.go @@ -163,10 +163,7 @@ func pushEOSCActionsAndContextFreeActions(api *eos.API, contextFreeActions []*eo func optionallySudoWrap(tx *eos.Transaction, opts *eos.TxOptions) *eos.Transaction { if viper.GetBool("global-sudo-wrap") { - binTx, err := eos.MarshalBinary(tx) - errorCheck("binary-packing transaction for sudo wrapping", err) - - return eos.NewTransaction([]*eos.Action{sudo.NewExec(eos.AccountName("eosio"), eos.HexBytes(binTx))}, opts) + return eos.NewTransaction([]*eos.Action{sudo.NewExec(eos.AccountName("eosio"), *tx)}, opts) } return tx } diff --git a/vendor/github.com/eoscanada/eos-go/eoserr/fcerrors.go b/vendor/github.com/eoscanada/eos-go/eoserr/fcerrors.go new file mode 100644 index 00000000..4b044a75 --- /dev/null +++ b/vendor/github.com/eoscanada/eos-go/eoserr/fcerrors.go @@ -0,0 +1,34 @@ +package eoserr + +import "fmt" + +type Error struct { + Name string + Code int +} + +func (e Error) Error() string { + return fmt.Sprintf("eos error: %q, code: %d", e.Name, e.Code) +} + +var ErrUnspecifiedException = Error{"unspecified_exception_code", 3990000} +var ErrUnhandledException = Error{"unhandled_exception_code", 3990001} +var ErrTimeoutException = Error{"timeout_exception_code", 3990002} +var ErrFileNotFoundException = Error{"file_not_found_exception_code", 3990003} +var ErrParseErrorException = Error{"parse_error_exception_code", 3990004} +var ErrInvalidArgException = Error{"invalid_arg_exception_code", 3990005} +var ErrKeyNotFoundException = Error{"key_not_found_exception_code", 3990006} +var ErrBadCastException = Error{"bad_cast_exception_code", 3990007} +var ErrOutOfRangeException = Error{"out_of_range_exception_code", 3990008} +var ErrCanceledException = Error{"canceled_exception_code", 3990009} +var ErrAssertException = Error{"assert_exception_code", 3990010} +var ErrEOFException = Error{"eof_exception_code", 3990011} +var ErrStdException = Error{"std_exception_code", 3990013} +var ErrInvalidOperationException = Error{"invalid_operation_exception_code", 3990014} +var ErrUnknownHostException = Error{"unknown_host_exception_code", 3990015} +var ErrNullOptional = Error{"null_optional_code", 3990016} +var ErrUDTError = Error{"udt_error_code", 3990017} +var ErrAESError = Error{"aes_error_code", 3990018} +var ErrOverflow = Error{"overflow_code", 3990019} +var ErrUnderflow = Error{"underflow_code", 3990020} +var ErrDivideByZero = Error{"divide_by_zero_code", 3990021} diff --git a/vendor/github.com/eoscanada/eos-go/sudo/exec.go b/vendor/github.com/eoscanada/eos-go/sudo/exec.go index 6e086c28..c1041af9 100644 --- a/vendor/github.com/eoscanada/eos-go/sudo/exec.go +++ b/vendor/github.com/eoscanada/eos-go/sudo/exec.go @@ -9,7 +9,7 @@ import ( // // Given an `eos.Transaction`, call `eos.MarshalBinary` on it first, // pass the resulting bytes as `eos.HexBytes` here. -func NewExec(executer eos.AccountName, transaction eos.HexBytes) *eos.Action { +func NewExec(executer eos.AccountName, transaction eos.Transaction) *eos.Action { a := &eos.Action{ Account: eos.AccountName("eosio.wrap"), Name: eos.ActionName("exec"), @@ -27,5 +27,5 @@ func NewExec(executer eos.AccountName, transaction eos.HexBytes) *eos.Action { // Exec represents the `eosio.system::exec` action. type Exec struct { Executer eos.AccountName `json:"executer"` - Transaction eos.HexBytes `json:"trx"` + Transaction eos.Transaction `json:"trx"` } diff --git a/vendor/vendor.json b/vendor/vendor.json index f3a7b237..adf5ca7c 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -23,69 +23,75 @@ { "checksumSHA1": "J1Xwz57iOjsrrrcYkaZEle1/yMY=", "path": "github.com/eoscanada/eos-go", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z", + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z", "version": "master" }, { "checksumSHA1": "mbdurDenl8bhRVVu8ixJw70fi5E=", "path": "github.com/eoscanada/eos-go/btcsuite/btcd/btcec", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "9CdGdJ/+qjIwCfyoxoB3JxNtdyg=", "path": "github.com/eoscanada/eos-go/btcsuite/btcutil", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "VkjW+vswsv7J0PX2UFqqg+/RVgs=", "path": "github.com/eoscanada/eos-go/btcsuite/btcutil/base58", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "Yx6xxLmmZ4bgk6DZ1kh+lneJetA=", "path": "github.com/eoscanada/eos-go/ecc", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" + }, + { + "checksumSHA1": "nHRY4Riz9MNnSnxIFm2K1G3zEes=", + "path": "github.com/eoscanada/eos-go/eoserr", + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "mGMPbqDZkxTp8QjdMIgOed2APpM=", "path": "github.com/eoscanada/eos-go/forum", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "Gk4Dvc3QqbWnUdz4jvCXuxULqyo=", "path": "github.com/eoscanada/eos-go/msig", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "PGcZRpleDedi3tvY4qdXzBLK5AM=", "path": "github.com/eoscanada/eos-go/p2p", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { - "checksumSHA1": "5rxfgBTaj8zp8ilEG5AT6In7qYc=", + "checksumSHA1": "e+FhIgPBAPlnTmOBKN1owziHtU8=", "path": "github.com/eoscanada/eos-go/sudo", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "INVxgDwm7w2DfWELXYgyj87PSEE=", "path": "github.com/eoscanada/eos-go/system", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "n/7xl3TEdpCXXT0GtNAxva/ReoI=", "path": "github.com/eoscanada/eos-go/token", - "revision": "f025823404753ce8283cf235de11608f934cbea4", - "revisionTime": "2018-11-08T20:09:00Z" + "revision": "4f022e5df363f75e94488a16d4e639a660b8ca2e", + "revisionTime": "2018-11-08T20:35:13Z" }, { "checksumSHA1": "7NP1qUMF8Kx1y0zANxx0e+oq9Oo=",