Class: Universa::SecureLoanHelper

Inherits:
RemoteAdapter show all
Extended by:
Checks
Defined in:
lib/universa/universa_helpers.rb

Overview

Secure loan helper class builds and runs secure loan smart contracts

Class Method Summary collapse

Methods inherited from RemoteAdapter

#__getobj__, #__setobj__, #initialize, #inspect, invoke_static, remote_class, remote_class_name, remote_field, static_method, #to_s

Constructor Details

This class inherits a constructor from Universa::RemoteAdapter

Class Method Details

.create(lender_address:, borrower_address:, loan_contract:, duration:, data: {}, collateral:, mintable:, repayment_amount:, repayment_currency: nil, repayment_origin: nil, repayment_issuer: nil) ⇒ Array()Contrtact

initSecureLoan with named arguments and type checks.

Parameters:

  • lender_address (KeyAddress)
  • borrower_address (KeyAddress)
  • loan_contract (Contract)
  • duration (Duration)
  • data (Map) (defaults to: {})
  • collateral (Contract)
  • mintable (Boolean)
  • repayment_amount (BigDecimal)
  • repayment_currency (String) (defaults to: nil)
  • repayment_origin (KeyAddress) (defaults to: nil)

Returns:

  • (Array()Contrtact)

    ] two elements contracts array: loan contract, modified



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/universa/universa_helpers.rb', line 51

def self.create(lender_address:, borrower_address:, loan_contract:, duration:, data: {}, collateral:,
    mintable:, repayment_amount:, repayment_currency: nil, repayment_origin: nil, repayment_issuer: nil)

  ensure_type lender_address, KeyAddress, "lender_address"
  ensure_type borrower_address, KeyAddress, "lender_address"
  ensure_type loan_contract, Contract, "loan_contract"
  ensure_type duration, Duration, "duration"
  ensure_type collateral, Contract, "collateral"
  ensure_type repayment_amount, BigDecimal, "repayment_amount"
  ensure_nullable_type repayment_currency, String, "repayment_currency"
  ensure_nullable_type repayment_origin, HashId, "repayment_currency"
  ensure_nullable_type repayment_issuer, KeyAddress, "repayment_issuer"

  initSecureLoan(Binder.of(data), lender_address, borrower_address, loan_contract, duration, collateral, repayment_amount,
                 mintable, repayment_origin, repayment_issuer, repayment_currency)

end