Class: Stellar::LiquidityPool::BasePool

Inherits:
Object
  • Object
show all
Defined in:
lib/stellar/liquidity_pool/base_pool.rb

Direct Known Subclasses

ConstantProductPool

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(asset_a:, asset_b:) ⇒ BasePool

Returns a new instance of BasePool.

Parameters:



8
9
10
11
12
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 8

def initialize(asset_a:, asset_b:)
  @asset_a = asset_a
  @asset_b = asset_b
  @fee = LIQUIDITY_POOL_FEE_V18
end

Instance Attribute Details

#asset_aObject (readonly)

Returns the value of attribute asset_a.



4
5
6
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 4

def asset_a
  @asset_a
end

#asset_bObject (readonly)

Returns the value of attribute asset_b.



4
5
6
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 4

def asset_b
  @asset_b
end

#feeObject (readonly)

Returns the value of attribute fee.



4
5
6
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 4

def fee
  @fee
end

Instance Method Details

#idObject



14
15
16
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 14

def id
  PoolID.to_xdr(to_pool_id, :hex)
end

#inspectObject



22
23
24
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 22

def inspect
  "#<#{self.class.name} #{self}>"
end

#pool_paramsObject

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 42

def pool_params
  raise NotImplementedError
end

#pool_typeObject

Raises:

  • (NotImplementedError)


38
39
40
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 38

def pool_type
  raise NotImplementedError
end

#to_change_trust_assetObject



30
31
32
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 30

def to_change_trust_asset
  ChangeTrustAsset.liquidity_pool(pool_params)
end

#to_pool_idObject



26
27
28
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 26

def to_pool_id
  Digest::SHA256.digest(pool_params.to_xdr)
end

#to_sObject



18
19
20
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 18

def to_s
  "liquidity_pool:#{id}"
end

#to_trust_line_assetObject



34
35
36
# File 'lib/stellar/liquidity_pool/base_pool.rb', line 34

def to_trust_line_asset
  TrustLineAsset.liquidity_pool_id(to_pool_id)
end