Exception: Steem::BaseError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/steem/base_error.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(error, cause = nil) ⇒ BaseError

Returns a new instance of BaseError.



3
4
5
6
# File 'lib/steem/base_error.rb', line 3

def initialize(error, cause = nil)
  @error = error
  @cause = cause
end

Class Method Details

.build_error(error, context) ⇒ Object

Raises:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/steem/base_error.rb', line 16

def self.build_error(error, context)
  if error.message == 'Unable to acquire database lock'
    raise Steem::RemoteNodeError, error.message, JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Internal Error'
    raise Steem::RemoteNodeError.new, error.message, JSON.pretty_generate(error)
  end
  
  if error.message.include? 'plugin not enabled'
    raise Steem::RemoteNodeError, error.message, JSON.pretty_generate(error)
  end
  
  if error.message.include? 'argument'
    raise Steem::ArgumentError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.start_with? 'Bad Cast:'
    raise Steem::ArgumentError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'prefix_len'
    raise Steem::ArgumentError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Parse Error'
    raise Steem::ArgumentError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'unknown key'
    raise Steem::ArgumentError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'A transaction must have at least one operation'
    raise Steem::EmptyTransactionError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'transaction expiration exception'
    raise Steem::TransactionExpiredError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Duplicate transaction check failed'
    raise Steem::DuplicateTransactionError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'signature is not canonical'
    raise Steem::NonCanonicalSignatureError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'attempting to push a block that is too old'
    raise Steem::BlockTooOldError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'irrelevant signature'
    raise Steem::IrrelevantSignatureError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'missing required posting authority'
    raise Steem::MissingPostingAuthorityError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'missing required active authority'
    raise Steem::MissingActiveAuthorityError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'missing required owner authority'
    raise Steem::MissingOwnerAuthorityError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'missing required other authority'
    raise Steem::MissingOtherAuthorityError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'is_valid_account_name'
    raise Steem::InvalidAccountError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Invalid operation name'
    raise Steem::UnknownOperationError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Author not found'
    raise Steem::AuthorNotFoundError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? ' != fc::time_point_sec::maximum()'
    raise Steem::ReachedMaximumTimeError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Cannot transfer a negative amount (aka: stealing)'
    raise Steem::TheftError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'Must transfer a nonzero amount'
    raise Steem::NonZeroRequiredError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'is_asset_type'
    raise Steem::UnexpectedAssetError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  if error.message.include? 'unable to convert ISO-formatted string to fc::time_point_sec'
    raise Steem::ArgumentError, "#{context}: #{error.message}", JSON.pretty_generate(error)
  end
  
  puts JSON.pretty_generate(error) if ENV['DEBUG']
  raise UnknownError, "#{context}: #{error.message}", JSON.pretty_generate(error)
end

Instance Method Details

#to_sObject



8
9
10
11
12
13
14
# File 'lib/steem/base_error.rb', line 8

def to_s
  if !!@cause
    JSON[error: @error, cause: @cause] rescue {error: @error, cause: @cause}.to_s
  else
    JSON[@error] rescue @error.to_s
  end
end