Sha256: 3da6847654e8028a3923378106b1d0fe85cd8da3a1816521f8dbc917991e7590
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 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(election.attributes[:block_number], segment.shard), segment.siblings, segment.hash, digest: Hashtastic::EthereumSHA3 ) end def contract @contract ||= ChainContract.new( address: election.address, ethereum_url: Config.ethereum_url, abi: Config.chain_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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
voucher-0.3.0 | lib/voucher/validator.rb |