class Mobius::Client::Auth::Sign

Signs challenge transaction on user's side.

Public Instance Methods

call() click to toggle source

Adds signature to given transaction.

@return [String] base64-encoded transaction envelope

# File lib/mobius/client/auth/sign.rb, line 26
def call
  validate!
  envelope.dup.tap { |e| e.signatures << e.tx.sign_decorated(keypair) }.to_xdr(:base64)
end

Private Instance Methods

developer_keypair() click to toggle source

@return [Stellar::Keypair] Stellar::Keypair object for given address.

# File lib/mobius/client/auth/sign.rb, line 39
def developer_keypair
  @developer_keypair ||= Stellar::KeyPair.from_address(address)
end
envelope() click to toggle source

@return [Stellar::TransactionEnvelope] Stellar::TransactionEnvelope for given challenge.

# File lib/mobius/client/auth/sign.rb, line 44
def envelope
  @envelope ||= Stellar::TransactionEnvelope.from_xdr(xdr, "base64")
end
keypair() click to toggle source

@return [Stellar::Keypair] Stellar::Keypair object for given seed.

# File lib/mobius/client/auth/sign.rb, line 34
def keypair
  @keypair ||= Stellar::KeyPair.from_seed(seed)
end
validate!() click to toggle source
# File lib/mobius/client/auth/sign.rb, line 48
def validate!
  raise Mobius::Client::Error::Unauthorized unless envelope.signed_correctly?(developer_keypair)
end