Class: Minter::CreateMultisigAddressTx

Inherits:
Transaction show all
Defined in:
lib/minter/transactions/create_multisig_address_tx.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Transaction

#multisign, #sign, #tx_hash

Constructor Details

#initialize(threshold:, nonce:, chain_id:, gas_coin:, gas_price:) ⇒ CreateMultisigAddressTx

Returns a new instance of CreateMultisigAddressTx.



7
8
9
10
11
12
13
14
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 7

def initialize(threshold:, nonce:, chain_id:, gas_coin:, gas_price:)
  @threshold = threshold
  @nonce = nonce
  @chain_id = chain_id
  @gas_coin = gas_coin
  @gas_price = gas_price
  @addresses = []
end

Instance Attribute Details

#addressesObject

Returns the value of attribute addresses.



5
6
7
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 5

def addresses
  @addresses
end

#chain_idObject

Returns the value of attribute chain_id.



5
6
7
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 5

def chain_id
  @chain_id
end

#gas_coinObject

Returns the value of attribute gas_coin.



5
6
7
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 5

def gas_coin
  @gas_coin
end

#gas_priceObject

Returns the value of attribute gas_price.



5
6
7
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 5

def gas_price
  @gas_price
end

#nonceObject

Returns the value of attribute nonce.



5
6
7
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 5

def nonce
  @nonce
end

#thresholdObject

Returns the value of attribute threshold.



5
6
7
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 5

def threshold
  @threshold
end

Instance Method Details

#add_address(address:, weight:) ⇒ Object



16
17
18
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 16

def add_address(address:, weight:)
  @addresses << { Address: address, Weight: weight }
end

#multisig_addressObject

Raises:



31
32
33
34
35
36
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 31

def multisig_address
  result = JSON.parse(Minter::TxHashFfi.GetMultisigAddress(to_params.to_json))
  raise TransactionError, result["error"] unless result["success"] == "true"

  result["multisig_address"]
end

#to_paramsObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/minter/transactions/create_multisig_address_tx.rb', line 20

def to_params
  {
    Threshold: threshold,
    Nonce: nonce,
    ChainId: chain_id,
    GasCoin: gas_coin,
    GasPrice: gas_price,
    Addresses: addresses
  }
end