Sha256: 3aa7c2fea9e494852d223526d2e72757925d4e304dac7cdebac2b401d34091b0
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true module Voucher class Validator def self.call(segments_file) new(segments_file).call end def initialize(segments_file) @segments_file = segments_file end def call segments.each do |segment| raise InvalidSegment unless verify(segment) end true end private def verify(segment) Murky.verify( contract.winning_hash(segment.shard), segment.siblings, segment.hash, digest: Hashtastic::EthereumSHA3 ) end def contract @contract ||= ElectionContract.new( address: election.address, ethereum_url: Voucher.config.ethereum_url, abi: Voucher.config.election_abi ) end def election @election ||= data[:election] end def segments @segments ||= data[:segments] end def data @data ||= read_and_parse end def read_and_parse json = SegmentsReader.call(@segments_file) SegmentsParser.call(json) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
voucher-0.2.1 | lib/voucher/validator.rb |
voucher-0.1.1 | lib/voucher/validator.rb |
voucher-0.1.0 | lib/voucher/validator.rb |