diff options
| author | obscuren <geffobscura@gmail.com> | 2014-12-20 09:34:12 +0800 |
|---|---|---|
| committer | obscuren <geffobscura@gmail.com> | 2014-12-20 09:34:12 +0800 |
| commit | 3983dd2428137211f84f299f9ce8690c22f50afd (patch) | |
| tree | 3a2dc53b365e6f377fc82a3514150d1297fe549c /vm/errors.go | |
| parent | 7daa8c2f6eb25511c6a54ad420709af911fc6748 (diff) | |
| parent | 0a9dc1536c5d776844d6947a0090ff7e1a7c6ab4 (diff) | |
| download | dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.gz dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.bz2 dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.lz dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.xz dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.zst dexon-3983dd2428137211f84f299f9ce8690c22f50afd.zip | |
Merge branch 'release/v0.7.10'
Diffstat (limited to 'vm/errors.go')
| -rw-r--r-- | vm/errors.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/vm/errors.go b/vm/errors.go new file mode 100644 index 000000000..ab011bd62 --- /dev/null +++ b/vm/errors.go @@ -0,0 +1,51 @@ +package vm + +import ( + "fmt" + "math/big" +) + +type OutOfGasError struct { + req, has *big.Int +} + +func OOG(req, has *big.Int) OutOfGasError { + return OutOfGasError{req, has} +} + +func (self OutOfGasError) Error() string { + return fmt.Sprintf("out of gas! require %v, have %v", self.req, self.has) +} + +func IsOOGErr(err error) bool { + _, ok := err.(OutOfGasError) + return ok +} + +type StackError struct { + req, has int +} + +func StackErr(req, has int) StackError { + return StackError{req, has} +} + +func (self StackError) Error() string { + return fmt.Sprintf("stack error! require %v, have %v", self.req, self.has) +} + +func IsStack(err error) bool { + _, ok := err.(StackError) + return ok +} + +type DepthError struct{} + +func (self DepthError) Error() string { + return fmt.Sprintf("Max call depth exceeded (%d)", MaxCallDepth) +} + +func IsDepthErr(err error) bool { + _, ok := err.(DepthError) + return ok +} |
