Method: Zold::Txn.parse

Defined in:
lib/zold/txn.rb

.parse(line, idx = 0) ⇒ Object



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/zold/txn.rb', line 134

def self.parse(line, idx = 0)
  clean = line.strip
  parts = PTN.match(clean)
  raise "Invalid line ##{idx}: #{line.inspect} #{regex}" unless parts
  txn = Txn.new(
    Hexnum.parse(parts[:id]).to_i,
    Time.parse(parts[:date]),
    Amount.new(zents: Hexnum.parse(parts[:amount]).to_i),
    parts[:prefix],
    Id.new(parts[:bnf]),
    parts[:details]
  )
  txn.sign = parts[:sign]
  txn
end