Sha256: 0b9ab0755a42e150ca85a530a77a0e6a4b4775e31de0aabec747a0d0503c27d8
Contents?: true
Size: 933 Bytes
Versions: 3
Compression:
Stored size: 933 Bytes
Contents
module Stellar TransactionEnvelope.class_eval do # # Checks to ensure that every signature for the envelope is # a valid signature of one of the provided `key_pairs` # # NOTE: this does not do any authorization checks, which requires access to # the current ledger state. # # @param *key_pairs [Array<Stellar::KeyPair>] The key pairs to check the envelopes signatures against # # @return [Boolean] true if all signatures are from the provided key_pairs and validly sign the tx's hash def signed_correctly?(*key_pairs) hash = tx.hash return false if signatures.empty? key_index = key_pairs.index_by(&:public_key_hint) signatures.all? do |sig| key_pair = key_index[sig.hint] break false if key_pair.nil? key_pair.verify(sig.signature, hash) end end def hash Digest::SHA256.digest(to_xdr) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
stellar-base-0.0.3 | lib/stellar/transaction_envelope.rb |
stellar-base-0.0.2 | lib/stellar/transaction_envelope.rb |
stellar-base-0.0.1 | lib/stellar/transaction_envelope.rb |