nis-ruby 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +43 -33
- data/examples/account/generate.rb +29 -0
- data/examples/account/get.rb +26 -0
- data/examples/account/harvests.rb +8 -0
- data/examples/account/historical.rb +13 -0
- data/examples/account/importances.rb +8 -0
- data/examples/account/lock.rb +8 -0
- data/examples/account/mosaic.rb +9 -0
- data/examples/account/namespace.rb +8 -0
- data/examples/account/status.rb +8 -0
- data/examples/account/transfers.rb +16 -0
- data/examples/account/unconfirmed_transactions.rb +8 -0
- data/examples/account/unlock.rb +8 -0
- data/examples/account/unlocked.rb +8 -0
- data/examples/block/at_public.rb +4 -0
- data/examples/block/get.rb +4 -0
- data/examples/debug/connections.rb +13 -0
- data/examples/debug/time_synchronization.rb +6 -0
- data/examples/local/account_transfers.rb +20 -0
- data/examples/local/chain_blocks_after.rb +8 -0
- data/examples/namespace/mosaic_definition.rb +6 -0
- data/examples/namespace/root.rb +6 -0
- data/examples/nis.rb +11 -7
- data/examples/node/active_peers.rb +6 -0
- data/examples/node/boot.rb +25 -0
- data/examples/node/info.rb +8 -0
- data/examples/node/peerlist.rb +14 -0
- data/examples/time_sync/network_time.rb +6 -0
- data/examples/transactions/get.rb +42 -0
- data/examples/transactions/importance_transfer.rb +6 -4
- data/examples/transactions/mosaic_definition_creation.rb +6 -4
- data/examples/transactions/mosaic_supply_change.rb +6 -4
- data/examples/transactions/multisig.rb +6 -4
- data/examples/transactions/multisig_add_cosignatory.rb +3 -1
- data/examples/transactions/multisig_aggregate_modification.rb +6 -4
- data/examples/transactions/multisig_signature.rb +6 -3
- data/examples/transactions/provision_namespace.rb +6 -4
- data/examples/transactions/transfer.rb +14 -7
- data/examples/transactions/transfer_mosaic.rb +5 -3
- data/examples/transactions/transfer_remote.rb +6 -4
- data/lib/nis.rb +6 -0
- data/lib/nis/client.rb +11 -0
- data/lib/nis/configuration.rb +23 -0
- data/lib/nis/endpoint/account/transfers.rb +24 -0
- data/lib/nis/endpoint/debug/connections.rb +17 -0
- data/lib/nis/endpoint/local/account/transfers.rb +14 -0
- data/lib/nis/endpoint/node/peer_list.rb +20 -0
- data/lib/nis/endpoint/time_sync.rb +4 -0
- data/lib/nis/endpoint/time_sync/network_time.rb +10 -0
- data/lib/nis/endpoint/transaction/get.rb +12 -0
- data/lib/nis/keypair.rb +13 -7
- data/lib/nis/struct.rb +1 -0
- data/lib/nis/struct/importance_transfer_transaction.rb +10 -0
- data/lib/nis/struct/message.rb +9 -2
- data/lib/nis/struct/mosaic_definition_creation_transaction.rb +15 -0
- data/lib/nis/struct/mosaic_supply_change_transaction.rb +12 -0
- data/lib/nis/struct/multisig_aggregate_modification_transaction.rb +10 -0
- data/lib/nis/struct/multisig_signature_transaction.rb +12 -0
- data/lib/nis/struct/multisig_transaction.rb +15 -0
- data/lib/nis/struct/network_time.rb +17 -0
- data/lib/nis/struct/provision_namespace_transaction.rb +16 -0
- data/lib/nis/struct/transaction.rb +4 -81
- data/lib/nis/struct/transaction_meta_data_pair.rb +17 -1
- data/lib/nis/struct/transfer_transaction.rb +11 -0
- data/lib/nis/unit/address.rb +11 -4
- data/lib/nis/util.rb +3 -1
- data/lib/nis/util/convert.rb +44 -51
- data/lib/nis/util/deserializer.rb +62 -77
- data/lib/nis/util/ed25519.rb +10 -12
- data/lib/nis/util/serializer.rb +117 -185
- data/lib/nis/version.rb +1 -1
- data/nis.gemspec +0 -3
- metadata +43 -26
- data/bin/nis +0 -60
- data/examples/account.rb +0 -44
- data/examples/block.rb +0 -9
- data/examples/debug.rb +0 -33
- data/examples/local.rb +0 -19
- data/examples/namespace.rb +0 -9
- data/examples/node.rb +0 -44
- data/examples/shutdown.rb +0 -6
@@ -44,5 +44,29 @@ module Nis::Endpoint
|
|
44
44
|
res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
|
45
45
|
end
|
46
46
|
end
|
47
|
+
|
48
|
+
# @param [Symbol] dir direction(:in, :out, :all)
|
49
|
+
# @param [String] address
|
50
|
+
# @param [String] hash
|
51
|
+
# @param [String] id
|
52
|
+
# @return [Array <Nis::Struct::TransactionMetaDataPair>]
|
53
|
+
# @see https://nemproject.github.io/#requesting-transaction-data-for-an-account
|
54
|
+
def account_transfers(dir = :all, address:, hash: nil, id: nil)
|
55
|
+
request!(:get, "/account/transfers/#{account_transfers_direction(dir)}",
|
56
|
+
address: address,
|
57
|
+
hash: hash,
|
58
|
+
id: id
|
59
|
+
) do |res|
|
60
|
+
res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def account_transfers_direction(dir)
|
65
|
+
case dir.to_s
|
66
|
+
when /\Ai/ then :incoming
|
67
|
+
when /\Ao/ then :outgoing
|
68
|
+
else :all
|
69
|
+
end
|
70
|
+
end
|
47
71
|
end
|
48
72
|
end
|
@@ -29,5 +29,22 @@ module Nis::Endpoint
|
|
29
29
|
res[:data].map { |natv| Nis::Struct::NemAsyncTimerVisitor.build(natv) }
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
def debug_connections(dir)
|
34
|
+
request!(:get, "/debug/connections/#{debug_connections_direction(dir)}") do |res|
|
35
|
+
Nis::Struct::AuditCollection.build(
|
36
|
+
outstanding: res[:outstanding],
|
37
|
+
most_recent: res[:'most-recent']
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def debug_connections_direction(dir)
|
43
|
+
case dir.to_s
|
44
|
+
when /\Ai/ then :incoming
|
45
|
+
when /\Ao/ then :outgoing
|
46
|
+
else raise "Undefined direction: #{dir}"
|
47
|
+
end
|
48
|
+
end
|
32
49
|
end
|
33
50
|
end
|
@@ -28,6 +28,20 @@ module Nis::Endpoint
|
|
28
28
|
res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
def local_account_transfers(dir = :all, page:)
|
33
|
+
request!(:post, "/local/account/transfers/#{local_account_transfers_direction(dir)}", page) do |res|
|
34
|
+
res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def local_account_transfers_direction(dir)
|
39
|
+
case dir.to_s
|
40
|
+
when /\Ai/ then :incoming
|
41
|
+
when /\Ao/ then :outgoing
|
42
|
+
else :all
|
43
|
+
end
|
44
|
+
end
|
31
45
|
end
|
32
46
|
end
|
33
47
|
end
|
@@ -21,5 +21,25 @@ module Nis::Endpoint
|
|
21
21
|
res[:data].map { |n| Nis::Struct::Node.build(n) }
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
# @return [Array <Nis::Struct::Node>]
|
26
|
+
# @see https://nemproject.github.io/#active-neighborhood
|
27
|
+
def node_peerlist(state = :all)
|
28
|
+
if node_peerlist_state(state) == :all
|
29
|
+
node_peerlist_all
|
30
|
+
else
|
31
|
+
request!(:get, "/node/peer-list/#{node_peerlist_state(state)}") do |res|
|
32
|
+
res[:data].map { |n| Nis::Struct::Node.build(n) }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def node_peerlist_state(state)
|
38
|
+
case state.to_s
|
39
|
+
when 'active' then :active
|
40
|
+
when 'reachable' then :reachable
|
41
|
+
else :all
|
42
|
+
end
|
43
|
+
end
|
24
44
|
end
|
25
45
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Nis::Endpoint
|
2
|
+
module Transaction::Get
|
3
|
+
# @param [String] hash
|
4
|
+
# @return [Nis::Struct::TransactionMetaDataPair]
|
5
|
+
def transaction_get(hash:)
|
6
|
+
Nis::Struct::TransactionMetaDataPair.build request!(:get,
|
7
|
+
'/transaction/get',
|
8
|
+
hash: hash
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/nis/keypair.rb
CHANGED
@@ -2,8 +2,8 @@ class Nis
|
|
2
2
|
class Keypair
|
3
3
|
attr_reader :private, :public
|
4
4
|
|
5
|
-
# @param [String] Private Key
|
6
|
-
# @option options [Strung] :public_key Public Key
|
5
|
+
# @param [String] Hex Private Key
|
6
|
+
# @option options [Strung] :public_key Hex Public Key
|
7
7
|
def initialize(private_key, public_key: nil)
|
8
8
|
@private = private_key
|
9
9
|
@public = public_key || calc_public_key
|
@@ -12,8 +12,8 @@ class Nis
|
|
12
12
|
# @param [String] Hex string
|
13
13
|
# @return [String] Signed hex string
|
14
14
|
def sign(data)
|
15
|
-
bin_data =
|
16
|
-
bin_signed = Nis::Util::Ed25519.signature_hash_unsafe(bin_data,
|
15
|
+
bin_data = Nis::Util::Convert.hex2bin(data)
|
16
|
+
bin_signed = Nis::Util::Ed25519.signature_hash_unsafe(bin_data, bin_secret, bin_public)
|
17
17
|
bin_signed.unpack('H*').first
|
18
18
|
end
|
19
19
|
|
@@ -24,9 +24,15 @@ class Nis
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def calc_public_key
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
bin_public.unpack('H*').first
|
28
|
+
end
|
29
|
+
|
30
|
+
def bin_secret
|
31
|
+
@bin_secret ||= Nis::Util::Convert.hex2bin_rev(fix_private_key(@private))
|
32
|
+
end
|
33
|
+
|
34
|
+
def bin_public
|
35
|
+
@bin_public ||= Nis::Util::Ed25519.publickey_hash_unsafe(bin_secret)
|
30
36
|
end
|
31
37
|
end
|
32
38
|
end
|
data/lib/nis/struct.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [Integer] mode
|
3
|
+
# @attr [String] remote_account
|
4
|
+
class ImportanceTransferTransaction < Transaction
|
5
|
+
attr_accessor :mode, :remoteAccount
|
6
|
+
|
7
|
+
alias :remote_account :remoteAccount
|
8
|
+
alias :remote_account= :remoteAccount=
|
9
|
+
end
|
10
|
+
end
|
data/lib/nis/struct/message.rb
CHANGED
@@ -4,11 +4,18 @@ class Nis::Struct
|
|
4
4
|
# @attr [String] payload
|
5
5
|
# @attr [String] public_key
|
6
6
|
class Message
|
7
|
-
attr_reader :value, :type
|
7
|
+
attr_reader :value, :type
|
8
|
+
attr_accessor :public_key, :private_key
|
8
9
|
|
9
10
|
TYPE_PLAIN = 1
|
10
11
|
TYPE_ENCRYPTED = 2
|
11
12
|
|
13
|
+
def self.build(attrs)
|
14
|
+
if attrs[:type] == TYPE_ENCRYPTED
|
15
|
+
new(attrs[:payload], type: :encrypted)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
12
19
|
def initialize(value = '', type: :plain, private_key: nil, public_key: nil)
|
13
20
|
@value = value
|
14
21
|
@type = (type == :encrypted) ? TYPE_ENCRYPTED : TYPE_PLAIN
|
@@ -66,7 +73,7 @@ class Nis::Struct
|
|
66
73
|
end
|
67
74
|
|
68
75
|
def payload
|
69
|
-
encrypted? ? value : value.unpack('H*').
|
76
|
+
encrypted? ? value : value.unpack('H*').first
|
70
77
|
end
|
71
78
|
|
72
79
|
private
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [Hash] mosaicDefinition
|
3
|
+
# @attr [String] creationFeeSink
|
4
|
+
# @attr [Integer] creationFee
|
5
|
+
class MosaicDefinitionCreationTransaction < Transaction
|
6
|
+
attr_accessor :mosaicDefinition, :creationFeeSink, :creationFee
|
7
|
+
|
8
|
+
alias :mosaic_definition :mosaicDefinition
|
9
|
+
alias :mosaic_definition= :mosaicDefinition=
|
10
|
+
alias :creation_fee_sink :creationFeeSink
|
11
|
+
alias :creation_fee_sink= :creationFeeSink=
|
12
|
+
alias :creation_fee :creationFee
|
13
|
+
alias :creation_fee= :creationFee=
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [String] mosaicId
|
3
|
+
# @attr [Integer] supplyType
|
4
|
+
# @attr [Integer] delta
|
5
|
+
class MosaicSupplyChangeTransaction < Transaction
|
6
|
+
attr_accessor :mosaicId, :supplyType, :delta
|
7
|
+
|
8
|
+
# def self.build
|
9
|
+
# TODO: mosaicId
|
10
|
+
# end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [Array] modifications
|
3
|
+
# @attr [Hash] minCosignatories
|
4
|
+
class MultisigAggregationModificationTransaction < Transaction
|
5
|
+
attr_accessor :modifications, :minCosignatories
|
6
|
+
|
7
|
+
alias :min_cosignatories :minCosignatories
|
8
|
+
alias :min_cosignatories= :minCosignatories=
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [String] other_hash
|
3
|
+
# @attr [String] other_account
|
4
|
+
class MultisigSignatureTransaction < Transaction
|
5
|
+
attr_accessor :otherHash, :otherAccount
|
6
|
+
|
7
|
+
alias :other_hash :otherHash
|
8
|
+
alias :other_hash= :otherHash=
|
9
|
+
alias :other_account :otherAccount
|
10
|
+
alias :other_account= :otherAccount=
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [String] other_hash
|
3
|
+
# @attr [String] other_account
|
4
|
+
class MultisigTransaction < Transaction
|
5
|
+
attr_accessor :otherTrans
|
6
|
+
|
7
|
+
alias :other_trans :otherTrans
|
8
|
+
alias :other_trans= :otherTrans=
|
9
|
+
|
10
|
+
def self.build(attrs)
|
11
|
+
attrs[:otherTrans] = Nis::Struct::TransactionMetaDataPair.build_transaction_struct(attrs[:otherTrans])
|
12
|
+
new(attrs)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [Integer] sendTimeStamp
|
3
|
+
# @attr [Integer] receiveTimeStamp
|
4
|
+
class NetworkTime
|
5
|
+
include Nis::Util::Assignable
|
6
|
+
attr_accessor :sendTimeStamp, :receiveTimeStamp
|
7
|
+
|
8
|
+
alias :send_timestamp :sendTimeStamp
|
9
|
+
alias :send_timestamp= :sendTimeStamp=
|
10
|
+
alias :receive_timestamp :receiveTimeStamp
|
11
|
+
alias :receive_timestamp= :receiveTimeStamp=
|
12
|
+
|
13
|
+
def self.build(attrs)
|
14
|
+
new(attrs)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Nis::Struct
|
2
|
+
# @attr [String] rentalFeeSink
|
3
|
+
# @attr [Integer] rentalFee
|
4
|
+
# @attr [String] newPart
|
5
|
+
# @attr [String] parent
|
6
|
+
class ProvisionNamespaceTransaction < Transaction
|
7
|
+
attr_accessor :rentalFeeSink, :rentalFee, :newPart, :parent
|
8
|
+
|
9
|
+
alias :rental_fee_sink :rentalFeeSink
|
10
|
+
alias :rental_fee_sink= :rentalFeeSink=
|
11
|
+
alias :rental_fee :rentalFee
|
12
|
+
alias :rental_fee= :rentalFee=
|
13
|
+
alias :new_part :newPart
|
14
|
+
alias :new_part= :newPart=
|
15
|
+
end
|
16
|
+
end
|
@@ -1,97 +1,20 @@
|
|
1
1
|
class Nis::Struct
|
2
|
-
# @attr [Integer] timestamp
|
3
|
-
# @attr [Integer] amount
|
4
|
-
# @attr [Integer] fee
|
5
|
-
# @attr [String] recipient
|
6
2
|
# @attr [Integer] type
|
7
|
-
# @attr [Integer] deadline
|
8
|
-
# @attr [Nis::Struct::Message] message
|
9
3
|
# @attr [Integer] version
|
4
|
+
# @attr [Integer] timestamp
|
10
5
|
# @attr [String] signer
|
11
|
-
# @attr [
|
6
|
+
# @attr [Integer] fee
|
7
|
+
# @attr [Integer] deadline
|
12
8
|
# @see https://nemproject.github.io/#transaction
|
13
|
-
# @see https://nemproject.github.io/#initiating-a-transfer-transaction
|
14
|
-
# @see https://nemproject.github.io/#version-1-transfer-transactions
|
15
|
-
# @see https://nemproject.github.io/#version-2-transfer-transactions
|
16
9
|
class Transaction
|
17
10
|
include Nis::Util::Assignable
|
18
|
-
attr_accessor :
|
19
|
-
:mosaics
|
11
|
+
attr_accessor :type, :version, :timeStamp, :signer, :fee, :deadline
|
20
12
|
|
21
13
|
alias :timestamp :timeStamp
|
22
14
|
alias :timestamp= :timeStamp=
|
23
15
|
|
24
|
-
TRANSFER = 0x0101 # 257 (transfer transaction)
|
25
|
-
IMPORTANCE_TRANSFER = 0x0801 # 2049 (importance transfer transaction)
|
26
|
-
MULTISIG_AGGREGATE_MODIFICATION_TRANSFER = 0x1001 # 4097 (multisig aggregate modification transfer transaction)
|
27
|
-
MULTISIG_SIGNATURE = 0x1002 # 4098 (multisig signature transaction)
|
28
|
-
MULTISIG = 0x1004 # 4099 (multisig transaction)
|
29
|
-
PROVISION_NAMESPACE = 0x2001 # 8193 (provision namespace transaction)
|
30
|
-
MOSAIC_DEFINITION_CREATION = 0x4001 # 16385 (mosaic definition creation transaction)
|
31
|
-
MOSAIC_SUPPLY_CHANGE = 0x4002 # 16386 (mosaic supply change transaction)
|
32
|
-
|
33
|
-
TESTNET = 0x98000000 # -1744830464
|
34
|
-
MAINNET = 0x68000000 # 1744830464
|
35
|
-
|
36
|
-
VERSION_1 = 0x00000001 # 1
|
37
|
-
VERSION_2 = 0x00000002 # 2
|
38
|
-
|
39
|
-
TESTNET_VERSION_1 = TESTNET | VERSION_1 # 0x98000001 = -1744830463
|
40
|
-
TESTNET_VERSION_2 = TESTNET | VERSION_2 # 0x98000002 = -1744830462
|
41
|
-
MAINNET_VERSION_1 = MAINNET | VERSION_1 # 0x68000001 = 1744830465
|
42
|
-
MAINNET_VERSION_2 = MAINNET | VERSION_2 # 0x68000002 = 1744830466
|
43
|
-
|
44
16
|
def self.build(attrs)
|
45
17
|
new(attrs)
|
46
18
|
end
|
47
|
-
|
48
|
-
# @return [Integer]
|
49
|
-
def _version
|
50
|
-
(0xFFFFFFF0 & @version)
|
51
|
-
end
|
52
|
-
|
53
|
-
# @return [Boolean]
|
54
|
-
def testnet?
|
55
|
-
(0x0000000F & @version) == TESTNET
|
56
|
-
end
|
57
|
-
|
58
|
-
# @return [Boolean]
|
59
|
-
def mainnet?
|
60
|
-
(0x0000000F & @version) == MAINNET
|
61
|
-
end
|
62
|
-
|
63
|
-
# @return [Integer]
|
64
|
-
def fee
|
65
|
-
@fee ||= calculate_fee
|
66
|
-
end
|
67
|
-
|
68
|
-
def mosaics
|
69
|
-
@mosaics ||= []
|
70
|
-
end
|
71
|
-
|
72
|
-
alias to_hash_old to_hash
|
73
|
-
|
74
|
-
def to_hash
|
75
|
-
fee
|
76
|
-
to_hash_old
|
77
|
-
end
|
78
|
-
|
79
|
-
# @return [Integer]
|
80
|
-
def calculate_fee
|
81
|
-
if mosaics.empty?
|
82
|
-
tmp_fee = [1, amount / 1_000_000 / 10000].max
|
83
|
-
fee = (tmp_fee > 25 ? 25 : tmp_fee)
|
84
|
-
else
|
85
|
-
# TODO: calc mosaics fee
|
86
|
-
raise NotImplementedError, 'not implemented calculation mosaic fee.'
|
87
|
-
fee = 25
|
88
|
-
end
|
89
|
-
|
90
|
-
if message.bytesize > 0
|
91
|
-
fee += [1, (message.bytesize / 2 / 32) + 1].max
|
92
|
-
end
|
93
|
-
|
94
|
-
fee * 1_000_000
|
95
|
-
end
|
96
19
|
end
|
97
20
|
end
|
@@ -9,8 +9,24 @@ class Nis::Struct
|
|
9
9
|
def self.build(meta:, transaction:)
|
10
10
|
new(
|
11
11
|
meta: TransactionMetaData.build(meta),
|
12
|
-
transaction:
|
12
|
+
transaction: build_transaction_struct(transaction)
|
13
13
|
)
|
14
14
|
end
|
15
|
+
|
16
|
+
def self.build_transaction_struct(data)
|
17
|
+
type = data[:type]
|
18
|
+
klass = case type
|
19
|
+
when 0x0101 then Nis::Struct::TransferTransaction
|
20
|
+
when 0x0801 then Nis::Struct::ImportanceTransferTransaction
|
21
|
+
when 0x1001 then Nis::Struct::MultisigAggregationModificationTransaction
|
22
|
+
when 0x1002 then Nis::Struct::MultisigSignatureTransaction
|
23
|
+
when 0x1004 then Nis::Struct::MultisigTransaction
|
24
|
+
when 0x2001 then Nis::Struct::ProvisionNamespaceTransaction
|
25
|
+
when 0x4001 then Nis::Struct::MosaicDefinitionCreationTransaction
|
26
|
+
when 0x4002 then Nis::Struct::MosaicSupplyChangeTransaction
|
27
|
+
else raise "Not implemented entity type: #{type}"
|
28
|
+
end
|
29
|
+
klass.build(data)
|
30
|
+
end
|
15
31
|
end
|
16
32
|
end
|