iost_sdk 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/iost_sdk/crypto.rb +144 -0
- data/lib/iost_sdk/errors.rb +10 -0
- data/lib/iost_sdk/http/client.rb +58 -0
- data/lib/iost_sdk/http/get_account.rb +17 -0
- data/lib/iost_sdk/http/get_block_by_hash.rb +17 -0
- data/lib/iost_sdk/http/get_block_by_number.rb +17 -0
- data/lib/iost_sdk/http/get_chain_info.rb +17 -0
- data/lib/iost_sdk/http/get_contract.rb +17 -0
- data/lib/iost_sdk/http/get_contract_storage.rb +25 -0
- data/lib/iost_sdk/http/get_contract_storage_fields.rb +25 -0
- data/lib/iost_sdk/http/get_gas_ratio.rb +17 -0
- data/lib/iost_sdk/http/get_node_info.rb +17 -0
- data/lib/iost_sdk/http/get_ram_info.rb +17 -0
- data/lib/iost_sdk/http/get_token_balance.rb +17 -0
- data/lib/iost_sdk/http/get_tx_by_hash.rb +17 -0
- data/lib/iost_sdk/http/get_tx_receipt_by_tx_hash.rb +17 -0
- data/lib/iost_sdk/http/http_request_error.rb +11 -0
- data/lib/iost_sdk/http/send_tx.rb +26 -0
- data/lib/iost_sdk/models/abi.rb +20 -0
- data/lib/iost_sdk/models/account.rb +32 -0
- data/lib/iost_sdk/models/account_ram_info.rb +19 -0
- data/lib/iost_sdk/models/action.rb +24 -0
- data/lib/iost_sdk/models/amount_limit.rb +22 -0
- data/lib/iost_sdk/models/block.rb +30 -0
- data/lib/iost_sdk/models/block_info.rb +19 -0
- data/lib/iost_sdk/models/chain_info.rb +25 -0
- data/lib/iost_sdk/models/contract.rb +22 -0
- data/lib/iost_sdk/models/frozen_balance.rb +18 -0
- data/lib/iost_sdk/models/gas_info.rb +23 -0
- data/lib/iost_sdk/models/gas_ratio.rb +18 -0
- data/lib/iost_sdk/models/info.rb +19 -0
- data/lib/iost_sdk/models/network_info.rb +20 -0
- data/lib/iost_sdk/models/node_info.rb +21 -0
- data/lib/iost_sdk/models/peer_info.rb +18 -0
- data/lib/iost_sdk/models/permission.rb +20 -0
- data/lib/iost_sdk/models/permission_group.rb +19 -0
- data/lib/iost_sdk/models/permission_item.rb +20 -0
- data/lib/iost_sdk/models/pledge_info.rb +18 -0
- data/lib/iost_sdk/models/query/contract_storage.rb +24 -0
- data/lib/iost_sdk/models/query/contract_storage_fields.rb +23 -0
- data/lib/iost_sdk/models/query/signed_transaction.rb +114 -0
- data/lib/iost_sdk/models/query/transaction.rb +75 -0
- data/lib/iost_sdk/models/ram_info.rb +21 -0
- data/lib/iost_sdk/models/receipt.rb +18 -0
- data/lib/iost_sdk/models/signature.rb +42 -0
- data/lib/iost_sdk/models/token_balance.rb +19 -0
- data/lib/iost_sdk/models/transaction.rb +32 -0
- data/lib/iost_sdk/models/transaction_info.rb +19 -0
- data/lib/iost_sdk/models/tx_receipt.rb +24 -0
- data/lib/iost_sdk/models/util/serializer.rb +52 -0
- data/lib/iost_sdk/models/vote_info.rb +19 -0
- data/lib/iost_sdk/models.rb +276 -0
- data/lib/iost_sdk/string.rb +11 -0
- data/lib/iost_sdk/version.rb +3 -0
- data/lib/iost_sdk.rb +141 -0
- metadata +255 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/block'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class BlockInfo
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'status',
|
14
|
+
'block'
|
15
|
+
]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
|
5
|
+
module IOSTSdk
|
6
|
+
module Models
|
7
|
+
class ChainInfo
|
8
|
+
include Models
|
9
|
+
|
10
|
+
def self.attr_names
|
11
|
+
[
|
12
|
+
'net_name',
|
13
|
+
'protocol_version',
|
14
|
+
'chain_id',
|
15
|
+
'head_block',
|
16
|
+
'head_block_hash',
|
17
|
+
'lib_block',
|
18
|
+
'lib_block_hash',
|
19
|
+
'witness_list',
|
20
|
+
'lib_witness_list'
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/abi'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class Contract
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'id',
|
14
|
+
'code',
|
15
|
+
'language',
|
16
|
+
'version',
|
17
|
+
'abis'
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/pledge_info'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class GasInfo
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'current_total',
|
14
|
+
'transferable_gas',
|
15
|
+
'pledge_gas',
|
16
|
+
'increase_speed',
|
17
|
+
'limit',
|
18
|
+
'pledged_info'
|
19
|
+
]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/peer_info'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class NetworkInfo
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'id',
|
14
|
+
'peer_count',
|
15
|
+
'peer_info'
|
16
|
+
]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/network_info'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class NodeInfo
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'build_time',
|
14
|
+
'git_hash',
|
15
|
+
'mode',
|
16
|
+
'network'
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
|
5
|
+
module IOSTSdk
|
6
|
+
module Models
|
7
|
+
class Permission
|
8
|
+
include Models
|
9
|
+
|
10
|
+
def self.attr_names
|
11
|
+
[
|
12
|
+
'name',
|
13
|
+
'group_names',
|
14
|
+
'items',
|
15
|
+
'threshold'
|
16
|
+
]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/permission_item'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class PermissionGroup
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'name',
|
14
|
+
'items'
|
15
|
+
]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
|
5
|
+
module IOSTSdk
|
6
|
+
module Models
|
7
|
+
class PermissionItem
|
8
|
+
include Models
|
9
|
+
|
10
|
+
def self.attr_names
|
11
|
+
[
|
12
|
+
'id',
|
13
|
+
'is_key_pair',
|
14
|
+
'weight',
|
15
|
+
'permission'
|
16
|
+
]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
|
5
|
+
module IOSTSdk
|
6
|
+
module Models
|
7
|
+
module Query
|
8
|
+
# This represents the JSON payload for https://developers.iost.io/docs/en/6-reference/API.html#getcontractstorage
|
9
|
+
# The API simply returns { "data": value }, where value is a JSON string defined by a DApp
|
10
|
+
class ContractStorage
|
11
|
+
include Models
|
12
|
+
|
13
|
+
def self.attr_names
|
14
|
+
[
|
15
|
+
'id',
|
16
|
+
'field',
|
17
|
+
'key',
|
18
|
+
'by_longest_chain'
|
19
|
+
]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
|
5
|
+
module IOSTSdk
|
6
|
+
module Models
|
7
|
+
module Query
|
8
|
+
# This represents the JSON payload for https://developers.iost.io/docs/en/6-reference/API.html#getcontractstoragefields
|
9
|
+
# The API simply returns { "fields": value }, where value is a JSON string defined by a DApp
|
10
|
+
class ContractStorageFields
|
11
|
+
include Models
|
12
|
+
|
13
|
+
def self.attr_names
|
14
|
+
[
|
15
|
+
'id',
|
16
|
+
'key',
|
17
|
+
'by_longest_chain'
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'sha3'
|
4
|
+
require 'base58'
|
5
|
+
require 'iost_sdk/models'
|
6
|
+
require 'iost_sdk/models/query/transaction'
|
7
|
+
require 'iost_sdk/models/util/serializer'
|
8
|
+
|
9
|
+
module IOSTSdk
|
10
|
+
module Models
|
11
|
+
module Query
|
12
|
+
# This represents the signed transaction payload for https://developers.iost.io/docs/en/6-reference/API.html#sendtx
|
13
|
+
class SignedTransaction
|
14
|
+
include Models
|
15
|
+
|
16
|
+
def self.from_transaction(transaction:)
|
17
|
+
raise ArgumentError.new('tx must be an instance of IOSTSdk::Models::Query::Transaction') unless
|
18
|
+
transaction.is_a?(IOSTSdk::Models::Query::Transaction)
|
19
|
+
|
20
|
+
# assign fields and values from tx
|
21
|
+
signed_tx = SignedTransaction.new
|
22
|
+
transaction.instance_variables.each do |var_name|
|
23
|
+
n = var_name.to_s[1..-1].to_sym
|
24
|
+
signed_tx.instance_variable_set(var_name, transaction.send(n))
|
25
|
+
signed_tx.class.send(:define_method, n) do
|
26
|
+
instance_variable_get(var_name)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
signed_tx
|
31
|
+
end
|
32
|
+
|
33
|
+
def sign(account_name:, key_pair:)
|
34
|
+
add_publisher_sig(account_name: account_name, key_pair: key_pair)
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def bytes_for_signature
|
41
|
+
serializer = IOSTSdk::Models::Util::Serializer
|
42
|
+
tx_bytes = serializer.int64_to_bytes(time) +
|
43
|
+
serializer.int64_to_bytes(expiration) +
|
44
|
+
serializer.int64_to_bytes(gas_ratio * 100) +
|
45
|
+
serializer.int64_to_bytes(gas_limit * 100) +
|
46
|
+
serializer.int64_to_bytes(delay) +
|
47
|
+
serializer.int32_to_bytes(chain_id)
|
48
|
+
tx_bytes += serializer.int32_to_bytes(0) unless reserved
|
49
|
+
tx_bytes += serializer.array_to_bytes(signers) +
|
50
|
+
serializer.array_to_bytes(actions) +
|
51
|
+
serializer.array_to_bytes(amount_limit)
|
52
|
+
|
53
|
+
tx_bytes
|
54
|
+
end
|
55
|
+
|
56
|
+
def hash_value(include_signatures:)
|
57
|
+
byte_string = bytes_for_signature
|
58
|
+
if include_signatures
|
59
|
+
serializer = IOSTSdk::Models::Util::Serializer
|
60
|
+
byte_string = byte_string +
|
61
|
+
serializer.int32_to_bytes(signatures.size) +
|
62
|
+
signatures.map { |sig| serializer.int32_to_bytes(sig.bytes.size) + sig.bytes }.flatten
|
63
|
+
|
64
|
+
byte_string
|
65
|
+
end
|
66
|
+
|
67
|
+
SHA3::Digest.new(:sha256)
|
68
|
+
.update(byte_string.pack('C*'))
|
69
|
+
.digest
|
70
|
+
end
|
71
|
+
|
72
|
+
def gen_sig(key_pair:)
|
73
|
+
key_pair.sign(message: hash_value(include_signatures: true))
|
74
|
+
end
|
75
|
+
|
76
|
+
def add_sig(key_pair:)
|
77
|
+
signature = gen_sig(key_pair: key_pair)
|
78
|
+
@signatures ||= []
|
79
|
+
@signatures << IOSTSdk::Models::Signature.new.populate(
|
80
|
+
model_data: {
|
81
|
+
'algorithm' => key_pair.algo,
|
82
|
+
'public_key' => [key_pair.public_key_raw].pack('m0'),
|
83
|
+
'signature' => [signature].pack('m0')
|
84
|
+
}
|
85
|
+
)
|
86
|
+
|
87
|
+
self
|
88
|
+
end
|
89
|
+
|
90
|
+
def add_publisher_sig(account_name:, key_pair:)
|
91
|
+
signature = gen_sig(key_pair: key_pair)
|
92
|
+
# set "publisher"
|
93
|
+
instance_variable_set('@publisher', account_name)
|
94
|
+
self.class.send(:define_method, :publisher) { instance_variable_get('@publisher') }
|
95
|
+
# set "publisher_sigs"
|
96
|
+
instance_variable_set(
|
97
|
+
'@publisher_sigs',
|
98
|
+
[
|
99
|
+
IOSTSdk::Models::Signature.new.populate(
|
100
|
+
model_data: {
|
101
|
+
'algorithm' => key_pair.algo,
|
102
|
+
'public_key' => [key_pair.public_key_raw].pack('m0'),
|
103
|
+
'signature' => [signature].pack('m0')
|
104
|
+
}
|
105
|
+
)
|
106
|
+
]
|
107
|
+
)
|
108
|
+
self.class.send(:define_method, :publisher_sigs) { instance_variable_get('@publisher_sigs') }
|
109
|
+
self
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
require 'iost_sdk/models'
|
5
|
+
require 'iost_sdk/models/amount_limit'
|
6
|
+
require 'iost_sdk/models/action'
|
7
|
+
require 'iost_sdk/models/signature'
|
8
|
+
|
9
|
+
module IOSTSdk
|
10
|
+
module Models
|
11
|
+
module Query
|
12
|
+
class Transaction
|
13
|
+
include Models
|
14
|
+
|
15
|
+
attr_accessor :chain_id
|
16
|
+
|
17
|
+
def self.attr_names
|
18
|
+
[
|
19
|
+
'time',
|
20
|
+
'expiration',
|
21
|
+
'gas_ratio',
|
22
|
+
'gas_limit',
|
23
|
+
'delay',
|
24
|
+
'chain_id',
|
25
|
+
'reserved',
|
26
|
+
'signers',
|
27
|
+
'actions',
|
28
|
+
'amount_limit',
|
29
|
+
'signatures'
|
30
|
+
]
|
31
|
+
end
|
32
|
+
|
33
|
+
# set the +time+ implicitly, and set +expiration+ and +delay+ explicitly
|
34
|
+
#
|
35
|
+
# @param expiration [Integer] number of seconds, since creation, the transaction will expire in
|
36
|
+
# @param delay [Integer] the delay
|
37
|
+
def set_time_params(expiration:, delay:)
|
38
|
+
time_now = (Time.now.utc.to_f * 1000).to_i * 1_000_000
|
39
|
+
|
40
|
+
@time = time_now
|
41
|
+
@expiration = @time + expiration * 1_000_000_000
|
42
|
+
@delay = delay
|
43
|
+
end
|
44
|
+
|
45
|
+
# Add an action to the transaction
|
46
|
+
#
|
47
|
+
# @param contract_id [String] a Contract's ID
|
48
|
+
# @param action_name [String] the name of an action
|
49
|
+
# @param action_data [any] args to the action
|
50
|
+
def add_action(contract_id:, action_name:, action_data:)
|
51
|
+
@actions << IOSTSdk::Models::Action.new.populate(
|
52
|
+
model_data: {
|
53
|
+
'contract' => contract_id,
|
54
|
+
'action_name' => action_name.to_s,
|
55
|
+
'data' => JSON.generate(action_data)
|
56
|
+
}
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Add an amount limit to the transaction
|
61
|
+
#
|
62
|
+
# @param token [String] name of the token
|
63
|
+
# @param amount [Integer|String] amount of the token or 'unlimited'
|
64
|
+
def add_approve(token:, amount:)
|
65
|
+
@amount_limit << IOSTSdk::Models::AmountLimit.new.populate(
|
66
|
+
model_data: {
|
67
|
+
'token' => token.to_s,
|
68
|
+
'value' => amount.to_s
|
69
|
+
}
|
70
|
+
)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
|
5
|
+
module IOSTSdk
|
6
|
+
module Models
|
7
|
+
class RAMInfo
|
8
|
+
include Models
|
9
|
+
|
10
|
+
def self.attr_names
|
11
|
+
[
|
12
|
+
'available_ram',
|
13
|
+
'buy_price',
|
14
|
+
'sell_price',
|
15
|
+
'total_ram',
|
16
|
+
'used_ram'
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/util/serializer'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class Signature
|
9
|
+
include Models
|
10
|
+
|
11
|
+
ALGORITHM = {
|
12
|
+
ED25519: 'ED25519',
|
13
|
+
SECP256K1: 'SECP256K1'
|
14
|
+
}
|
15
|
+
|
16
|
+
def self.algorithm
|
17
|
+
ALGORITHM
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.attr_names
|
21
|
+
[
|
22
|
+
'algorithm',
|
23
|
+
'public_key',
|
24
|
+
'signature'
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
28
|
+
def bytes
|
29
|
+
serializer = IOSTSdk::Models::Util::Serializer
|
30
|
+
public_key_raw = public_key.unpack('m0').first
|
31
|
+
signature_raw = signature.unpack('m0').first
|
32
|
+
|
33
|
+
byte_value = (algorithm == ALGORITHM[:SECP256K1] ? [1] : [2]) +
|
34
|
+
serializer.int32_to_bytes(signature_raw.size) +
|
35
|
+
signature_raw.unpack('C*') +
|
36
|
+
serializer.int32_to_bytes(public_key_raw.size) +
|
37
|
+
public_key_raw.unpack('C*')
|
38
|
+
byte_value
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/frozen_balance'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class TokenBalance
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'balance',
|
14
|
+
'frozen_balances'
|
15
|
+
]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/action'
|
5
|
+
require 'iost_sdk/models/amount_limit'
|
6
|
+
require 'iost_sdk/models/tx_receipt'
|
7
|
+
|
8
|
+
module IOSTSdk
|
9
|
+
module Models
|
10
|
+
class Transaction
|
11
|
+
include Models
|
12
|
+
|
13
|
+
def self.attr_names
|
14
|
+
[
|
15
|
+
'hash',
|
16
|
+
'time',
|
17
|
+
'expiration',
|
18
|
+
'gas_ratio',
|
19
|
+
'gas_limit',
|
20
|
+
'delay',
|
21
|
+
'actions',
|
22
|
+
'chain_id',
|
23
|
+
'signers',
|
24
|
+
'publisher',
|
25
|
+
'referred_tx',
|
26
|
+
'amount_limit',
|
27
|
+
'tx_receipt'
|
28
|
+
]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'iost_sdk/models'
|
4
|
+
require 'iost_sdk/models/transaction'
|
5
|
+
|
6
|
+
module IOSTSdk
|
7
|
+
module Models
|
8
|
+
class TransactionInfo
|
9
|
+
include Models
|
10
|
+
|
11
|
+
def self.attr_names
|
12
|
+
[
|
13
|
+
'status',
|
14
|
+
'transaction'
|
15
|
+
]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|