Sha256: e8c6124cab6c4d04d455193c56b9b24e1675d00cb6223068e63d1d6f4a0837a7

Contents?: true

Size: 1.22 KB

Versions: 11

Compression:

Stored size: 1.22 KB

Contents

require "spec_helper"

describe Stellar::Transaction do
  subject do
    Stellar::Transaction.new({
      source_account: "\x00" * 32,
      fee:            10,
      seq_num:        1,
      memo:           Stellar::Memo.new(:memo_none),
      operations:     [
        Stellar::Operation.new(body: Stellar::Operation::Body.new(:inflation))
      ]
    })
  end
  let(:key_pair){ Stellar::KeyPair.random }
  
  describe "#sign" do
    let(:result){ subject.sign(key_pair) }

    it "returns a signature of SHA256(xdr form of the transaction)" do
      xdr      = subject.to_xdr
      hash     = Digest::SHA256.digest(xdr)
      expected = key_pair.sign(hash)
      expect(result).to eq(expected)
    end
  end

  describe  "#to_envelope" do
    let(:result){ subject.to_envelope(key_pair) }

    it "return a Stellar::TransactionEnvelope" do
      expect(result).to be_a(Stellar::TransactionEnvelope)
    end

    it "correctly signs the transaction" do
      expect(result.signatures.length).to eq(1)
      expect(result.signatures.first).to be_a(Stellar::DecoratedSignature)
      expect(result.signatures.first.hint).to eq(key_pair.public_key_hint)
      expect(result.signatures.first.signature).to eq(subject.sign(key_pair))
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
stellar-base-0.0.18 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.17 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.16 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.15 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.14 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.13 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.12 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.11 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.10 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.9 spec/lib/stellar/transaction_spec.rb
stellar-base-0.0.8 spec/lib/stellar/transaction_spec.rb