sequence-sdk 1.0.1 → 1.0.2
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/lib/sequence.rb +0 -1
- data/lib/sequence/account.rb +23 -19
- data/lib/sequence/asset.rb +19 -18
- data/lib/sequence/balance.rb +12 -7
- data/lib/sequence/client.rb +4 -1
- data/lib/sequence/client_module.rb +2 -0
- data/lib/sequence/contract.rb +17 -4
- data/lib/sequence/dev_utils.rb +2 -1
- data/lib/sequence/errors.rb +6 -6
- data/lib/sequence/key.rb +12 -10
- data/lib/sequence/stats.rb +5 -3
- data/lib/sequence/transaction.rb +68 -73
- data/lib/sequence/version.rb +1 -1
- metadata +27 -28
- data/lib/sequence/constants.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94c78d487e125ca4d9436ba7651feeaa4df4e42c
|
4
|
+
data.tar.gz: 4686db08afa33c144752c475e682e133b3e7dad7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b8efcc73ad670aa4df6b2adadc9e6be07043b77e06b0098f918e332dd3df4563e870f31ea561a4bde52e2720d5c3a8904a20cb8db36c30743713dd1caf0c8b6
|
7
|
+
data.tar.gz: 46da2a5e7ab4800d88c47dc98725da383fa56c54eb8b64a08ed232a50fb750b87277904d90d48a9163c88a34a7ba70a2d80d71389ff7df9d35276ac653e5084b
|
data/lib/sequence.rb
CHANGED
data/lib/sequence/account.rb
CHANGED
@@ -4,30 +4,31 @@ require_relative './query'
|
|
4
4
|
require_relative './response_object'
|
5
5
|
|
6
6
|
module Sequence
|
7
|
+
# A container for asset balances on a ledger.
|
7
8
|
class Account < ResponseObject
|
8
9
|
|
9
10
|
# @!attribute [r] id
|
10
|
-
# Unique
|
11
|
+
# Unique, auto-generated identifier.
|
11
12
|
# @return [String]
|
12
13
|
attrib :id
|
13
14
|
|
14
15
|
# @!attribute [r] alias
|
15
|
-
#
|
16
|
+
# Unique, user-specified identifier.
|
16
17
|
# @return [String]
|
17
18
|
attrib :alias
|
18
19
|
|
19
|
-
# @!attribute [r] quorum
|
20
|
-
# The number of keys required to sign transactions for the account.
|
21
|
-
# @return [Integer]
|
22
|
-
attrib :quorum
|
23
|
-
|
24
20
|
# @!attribute [r] keys
|
25
|
-
# The set of keys used for signing
|
21
|
+
# The set of keys used for signing transactions that spend from the account.
|
26
22
|
# @return [Array<Key>]
|
27
23
|
attrib(:keys) { |raw| raw.map { |k| Key.new(k) } }
|
28
24
|
|
25
|
+
# @!attribute [r] quorum
|
26
|
+
# The number of keys required to sign transactions that spend from the account.
|
27
|
+
# @return [Integer]
|
28
|
+
attrib :quorum
|
29
|
+
|
29
30
|
# @!attribute [r] tags
|
30
|
-
# User-specified
|
31
|
+
# User-specified key-value data describing the account.
|
31
32
|
# @return [Hash]
|
32
33
|
attrib :tags
|
33
34
|
|
@@ -37,29 +38,32 @@ module Sequence
|
|
37
38
|
end
|
38
39
|
|
39
40
|
class ClientModule < Sequence::ClientModule
|
40
|
-
#
|
41
|
-
# @
|
42
|
-
# @option opts [
|
43
|
-
# @option opts [
|
44
|
-
# @option opts [
|
41
|
+
# Creates a new account in the ledger.
|
42
|
+
# @param [Hash] opts Options hash
|
43
|
+
# @option opts [String] alias Unique, user-specified identifier.
|
44
|
+
# @option opts [Array<Hash>, Array<Sequence::Key>] keys The set of keys used for signing transactions that spend from the account. A key can be either a key object, or a hash containing either an `id` or `alias` field.
|
45
|
+
# @option opts [Integer] quorum The number of keys required to sign transactions that spend from the account. Defaults to the number of keys provided.
|
46
|
+
# @option opts [Hash] tags User-specified key-value data describing the account.
|
45
47
|
# @return [Account]
|
46
48
|
def create(opts)
|
47
49
|
opts = {client_token: SecureRandom.uuid}.merge(opts)
|
48
50
|
Account.new(client.conn.request('create-account', opts))
|
49
51
|
end
|
50
52
|
|
51
|
-
#
|
53
|
+
# Updates an account's tags.
|
54
|
+
# @param [Hash] opts Options hash
|
52
55
|
# @option opts [String] id The ID of the account. Either an ID or alias should be provided, but not both.
|
53
56
|
# @option opts [String] alias The alias of the account. Either an ID or alias should be provided, but not both.
|
54
57
|
# @option opts [Hash] tags A new set of tags, which will replace the existing tags.
|
55
|
-
# @return [
|
58
|
+
# @return [void]
|
56
59
|
def update_tags(opts)
|
57
60
|
client.conn.request('update-account-tags', opts)
|
58
61
|
end
|
59
62
|
|
60
|
-
#
|
61
|
-
# @
|
62
|
-
# @option opts [
|
63
|
+
# Executes a query, returning an enumerable over individual accounts.
|
64
|
+
# @param [Hash] opts Options hash
|
65
|
+
# @option opts [String] filter A filter expression.
|
66
|
+
# @option opts [Array<String|Integer>] filter_params A list of values that will be interpolated into the filter expression.
|
63
67
|
# @return [Query]
|
64
68
|
def query(opts = {})
|
65
69
|
Query.new(client, opts)
|
data/lib/sequence/asset.rb
CHANGED
@@ -6,33 +6,31 @@ require_relative './query'
|
|
6
6
|
require_relative './response_object'
|
7
7
|
|
8
8
|
module Sequence
|
9
|
+
# A type or class of value that can be tracked on a ledger.
|
9
10
|
class Asset < ResponseObject
|
10
11
|
|
11
12
|
# @!attribute [r] id
|
12
|
-
#
|
13
|
-
# Asset version 1 specifies the asset id as the hash of:
|
14
|
-
# - the asset version
|
15
|
-
# - the asset's issuance program
|
16
|
-
# - the core's VM version
|
17
|
-
# - the hash of the network's initial block
|
13
|
+
# Unique, auto-generated identifier.
|
18
14
|
# @return [String]
|
19
15
|
attrib :id
|
20
16
|
|
21
17
|
# @!attribute [r] alias
|
22
|
-
#
|
18
|
+
# Unique, user-specified identifier.
|
23
19
|
# @return [String]
|
24
20
|
attrib :alias
|
25
21
|
|
26
22
|
# @!attribute [r] keys
|
27
|
-
# The set of keys used
|
23
|
+
# The set of keys used to sign transactions that issue the asset.
|
28
24
|
# @return [Array<Key>]
|
29
25
|
attrib(:keys) { |raw| raw.map { |k| Key.new(k) } }
|
30
26
|
|
31
27
|
# @!attribute [r] quorum
|
28
|
+
# The number of keys required to sign transactions that issue the asset.
|
32
29
|
# @return [Integer]
|
33
30
|
attrib :quorum
|
34
31
|
|
35
32
|
# @!attribute [r] tags
|
33
|
+
# User-specified key-value data describing the asset.
|
36
34
|
# @return [Hash]
|
37
35
|
attrib :tags
|
38
36
|
|
@@ -42,29 +40,32 @@ module Sequence
|
|
42
40
|
end
|
43
41
|
|
44
42
|
class ClientModule < Sequence::ClientModule
|
45
|
-
#
|
46
|
-
# @
|
47
|
-
# @option opts [
|
48
|
-
# @option opts [
|
49
|
-
# @option opts [
|
43
|
+
# Creates a new asset in the ledger.
|
44
|
+
# @param [Hash] opts Options hash
|
45
|
+
# @option opts [String] alias Unique, user-specified identifier.
|
46
|
+
# @option opts [Array<Hash>, Array<Sequence::Key>] keys The set of keys used for signing transactions that issue the asset. A key can be either a key object, or a hash containing either an `id` or `alias` field.
|
47
|
+
# @option opts [Integer] quorum The number of keys required to sign transactions that issue the asset. Defaults to the number of keys provided.
|
48
|
+
# @option opts [Hash] tags User-specified key-value data describing the asset.
|
50
49
|
# @return [Asset]
|
51
50
|
def create(opts)
|
52
51
|
opts = {client_token: SecureRandom.uuid}.merge(opts)
|
53
52
|
Asset.new(client.conn.request('create-asset', opts))
|
54
53
|
end
|
55
54
|
|
56
|
-
#
|
55
|
+
# Updates an asset's tags.
|
56
|
+
# @param [Hash] opts Options hash
|
57
57
|
# @option opts [String] id The ID of the asset. Either an ID or alias should be provided, but not both.
|
58
58
|
# @option opts [String] alias The alias of the asset. Either an ID or alias should be provided, but not both.
|
59
59
|
# @option opts [Hash] tags A new set of tags, which will replace the existing tags.
|
60
|
-
# @return [
|
60
|
+
# @return [void]
|
61
61
|
def update_tags(opts)
|
62
62
|
client.conn.request('update-asset-tags', opts)
|
63
63
|
end
|
64
64
|
|
65
|
-
#
|
66
|
-
# @
|
67
|
-
# @option opts [
|
65
|
+
# Executes a query, returning an enumerable over individual assets.
|
66
|
+
# @param [Hash] opts Options hash
|
67
|
+
# @option opts [String] filter A filter expression.
|
68
|
+
# @option opts [Array<String|Integer>] filter_params A list of values that will be interpolated into the filter expression.
|
68
69
|
# @return [Query]
|
69
70
|
def query(opts = {})
|
70
71
|
Query.new(client, opts)
|
data/lib/sequence/balance.rb
CHANGED
@@ -2,25 +2,30 @@ require_relative './client_module'
|
|
2
2
|
require_relative './response_object'
|
3
3
|
require_relative './query'
|
4
4
|
|
5
|
+
|
5
6
|
module Sequence
|
7
|
+
# A summation of contract amounts. Contracts are selected using a filter, and
|
8
|
+
# their values are summed using the common values of one or more contract
|
9
|
+
# fields.
|
6
10
|
class Balance < ResponseObject
|
7
11
|
|
8
12
|
# @!attribute [r] amount
|
9
|
-
#
|
13
|
+
# Summation of contract amounts.
|
10
14
|
# @return [Integer]
|
11
15
|
attrib :amount
|
12
16
|
|
13
17
|
# @!attribute [r] sum_by
|
14
|
-
# List of parameters
|
18
|
+
# List of parameters along which contract amounts were summed.
|
15
19
|
# @return [Hash<String => String>]
|
16
20
|
attrib :sum_by
|
17
21
|
|
18
22
|
class ClientModule < Sequence::ClientModule
|
19
|
-
#
|
20
|
-
# @
|
21
|
-
# @option opts [
|
22
|
-
# @option opts [Array<String>]
|
23
|
-
# @option opts [
|
23
|
+
# Executes a query, returning an enumerable over individual balances.
|
24
|
+
# @param [Hash] opts Options hash
|
25
|
+
# @option opts [String] filter A filter expression.
|
26
|
+
# @option opts [Array<String|Integer>] filter_params A list of values that will be interpolated into the filter expression.
|
27
|
+
# @option opts [Array<String>] sum_by A list of fields along which contract values will be summed.
|
28
|
+
# @option opts [Integer] timestamp A millisecond Unix timestamp. Indicates that the query should be run over the state of the ledger at a given point in time.
|
24
29
|
# @return [Query]
|
25
30
|
def query(opts = {})
|
26
31
|
Query.new(client, opts)
|
data/lib/sequence/client.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require_relative './account'
|
2
2
|
require_relative './asset'
|
3
3
|
require_relative './balance'
|
4
|
-
require_relative './constants'
|
5
4
|
require_relative './contract'
|
6
5
|
require_relative './dev_utils'
|
7
6
|
require_relative './key'
|
@@ -11,6 +10,10 @@ require_relative './transaction'
|
|
11
10
|
module Sequence
|
12
11
|
class Client
|
13
12
|
|
13
|
+
# @param [Hash] opts Options hash
|
14
|
+
# @option opts [String] url The ledger API URL.
|
15
|
+
# @option opts [String] access_token The ledger access token.
|
16
|
+
# @return [Query]
|
14
17
|
def initialize(opts = {})
|
15
18
|
if !opts.key?(:url) || opts[:url].empty?
|
16
19
|
raise ArgumentError.new('missing :url parameter')
|
data/lib/sequence/contract.rb
CHANGED
@@ -3,56 +3,69 @@ require_relative './response_object'
|
|
3
3
|
require_relative './query'
|
4
4
|
|
5
5
|
module Sequence
|
6
|
+
# An entry in the ledger that contains value that can be spent.
|
6
7
|
class Contract < ResponseObject
|
7
8
|
# @!attribute [r] id
|
9
|
+
# A unique ID.
|
8
10
|
# @return [String]
|
9
11
|
attrib :id
|
10
12
|
|
11
13
|
# @!attribute [r] type
|
14
|
+
# The type of the contract. Currently, this is always "account".
|
12
15
|
# @return [String]
|
13
16
|
attrib :type
|
14
17
|
|
15
18
|
# @!attribute [r] transaction_id
|
19
|
+
# The ID of the transaction in which the contract appears.
|
16
20
|
# @return [String]
|
17
21
|
attrib :transaction_id
|
18
22
|
|
19
23
|
# @!attribute [r] asset_id
|
24
|
+
# The ID of the asset held by the contract.
|
20
25
|
# @return [String]
|
21
26
|
attrib :asset_id
|
22
27
|
|
23
28
|
# @!attribute [r] asset_alias
|
29
|
+
# The alias of the asset held by the contract.
|
24
30
|
# @return [String]
|
25
31
|
attrib :asset_alias
|
26
32
|
|
27
33
|
# @!attribute [r] asset_tags
|
34
|
+
# The tags of the asset held by the contract.
|
28
35
|
# @return [Hash]
|
29
36
|
attrib :asset_tags
|
30
37
|
|
31
38
|
# @!attribute [r] amount
|
39
|
+
# The number of units of the asset held by the contract.
|
32
40
|
# @return [Integer]
|
33
41
|
attrib :amount
|
34
42
|
|
35
43
|
# @!attribute [r] account_id
|
44
|
+
# The ID of the account controlling the contract.
|
36
45
|
# @return [String]
|
37
46
|
attrib :account_id
|
38
47
|
|
39
48
|
# @!attribute [r] account_alias
|
49
|
+
# The alias of the account controlling the contract.
|
40
50
|
# @return [String]
|
41
51
|
attrib :account_alias
|
42
52
|
|
43
53
|
# @!attribute [r] account_tags
|
54
|
+
# The tags of the account controlling the contract.
|
44
55
|
# @return [Hash]
|
45
56
|
attrib :account_tags
|
46
57
|
|
47
58
|
# @!attribute [r] reference_data
|
59
|
+
# User-specified key-value data embedded in the contract.
|
48
60
|
# @return [Hash]
|
49
61
|
attrib :reference_data
|
50
62
|
|
51
63
|
class ClientModule < Sequence::ClientModule
|
52
|
-
#
|
53
|
-
# @
|
54
|
-
# @option opts [
|
55
|
-
# @option opts [Integer]
|
64
|
+
# Executes a query, returning an enumerable over individual contracts.
|
65
|
+
# @param [Hash] opts Options hash
|
66
|
+
# @option opts [String] filter A filter expression.
|
67
|
+
# @option opts [Array<String|Integer>] filter_params A list of values that will be interpolated into the filter expression.
|
68
|
+
# @option opts [Integer] timestamp A millisecond Unix timestamp. Indicates that the query should be run over the state of the ledger at a given point in time.
|
56
69
|
# @return [Query]
|
57
70
|
def query(opts = {})
|
58
71
|
Query.new(client, opts)
|
data/lib/sequence/dev_utils.rb
CHANGED
@@ -4,8 +4,9 @@ require_relative './client_module'
|
|
4
4
|
|
5
5
|
module Sequence
|
6
6
|
class DevUtils
|
7
|
+
# A namespace for development-only methods.
|
7
8
|
class ClientModule < Sequence::ClientModule
|
8
|
-
# Deletes all data in the ledger.
|
9
|
+
# Deletes all data in the ledger.
|
9
10
|
def reset
|
10
11
|
client.conn.request('/reset', client_token: SecureRandom.uuid)
|
11
12
|
end
|
data/lib/sequence/errors.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
module Sequence
|
2
2
|
|
3
|
-
# Base class for all errors raised by the
|
3
|
+
# Base class for all errors raised by the Sequence SDK.
|
4
4
|
class BaseError < StandardError; end
|
5
5
|
|
6
6
|
# InvalidRequestIDError arises when an HTTP response is received, but it does
|
7
|
-
# not contain headers that are included in all
|
7
|
+
# not contain headers that are included in all Sequence API responses. This
|
8
8
|
# could arise due to a badly-configured proxy, or other upstream network
|
9
9
|
# issues.
|
10
10
|
class InvalidRequestIDError < BaseError
|
11
11
|
attr_accessor :response
|
12
12
|
|
13
13
|
def initialize(response)
|
14
|
-
super "Response HTTP header field
|
14
|
+
super "Response HTTP header field Sequence-Request-ID is unset. There may be network issues. Please check your local network settings."
|
15
15
|
self.response = response
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
# JSONError should be very rare, and will only arise if there is a bug in the
|
20
|
-
#
|
20
|
+
# Sequence API, or if the upstream server is spoofing common Sequence API response
|
21
21
|
# headers.
|
22
22
|
class JSONError < BaseError
|
23
23
|
attr_accessor :request_id
|
@@ -30,7 +30,7 @@ module Sequence
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
# APIError describes errors that are codified by the
|
33
|
+
# APIError describes errors that are codified by the Sequence API. They have
|
34
34
|
# an error code, a message, and an optional detail field that provides
|
35
35
|
# additional context for the error.
|
36
36
|
class APIError < BaseError
|
@@ -53,7 +53,7 @@ module Sequence
|
|
53
53
|
self.temporary = body['temporary']
|
54
54
|
|
55
55
|
self.response = response
|
56
|
-
self.request_id = response['
|
56
|
+
self.request_id = response['Sequence-Request-ID'] if response
|
57
57
|
|
58
58
|
super self.class.format_error_message(code, chain_message, detail, request_id)
|
59
59
|
end
|
data/lib/sequence/key.rb
CHANGED
@@ -4,29 +4,31 @@ require_relative './query'
|
|
4
4
|
require_relative './response_object'
|
5
5
|
|
6
6
|
module Sequence
|
7
|
+
# Keys are used to sign transactions.
|
7
8
|
class Key < ResponseObject
|
8
|
-
# @!attribute [r] alias
|
9
|
-
# User specified, unique identifier of the key.
|
10
|
-
# @return [String]
|
11
|
-
attrib :alias
|
12
|
-
|
13
9
|
# @!attribute [r] id
|
14
10
|
# Unique identifier of the key, based on the public key material itself.
|
15
11
|
# @return [String]
|
16
12
|
attrib :id
|
17
13
|
|
14
|
+
# @!attribute [r] alias
|
15
|
+
# Unique, user-specified identifier of the key.
|
16
|
+
# @return [String]
|
17
|
+
attrib :alias
|
18
|
+
|
18
19
|
class ClientModule < Sequence::ClientModule
|
19
20
|
|
20
|
-
# Creates a key
|
21
|
-
# @param [Hash] opts
|
22
|
-
# @option opts [String] alias
|
21
|
+
# Creates a key.
|
22
|
+
# @param [Hash] opts Options hash
|
23
|
+
# @option opts [String] alias Unique, user-specified identifier of the key.
|
23
24
|
# @return [Key]
|
24
25
|
def create(opts = {})
|
25
26
|
Key.new(client.conn.request('create-key', opts))
|
26
27
|
end
|
27
28
|
|
28
|
-
#
|
29
|
-
# @
|
29
|
+
# Executes a query, returning an enumerable over individual keys.
|
30
|
+
# @param [Hash] opts Options hash
|
31
|
+
# @option opts [Array<String>] aliases A list of aliases of keys to retrieve.
|
30
32
|
# @return [Query]
|
31
33
|
def query(opts = {})
|
32
34
|
Query.new(client, opts)
|
data/lib/sequence/stats.rb
CHANGED
@@ -3,24 +3,26 @@ require_relative './response_object'
|
|
3
3
|
require_relative './query'
|
4
4
|
|
5
5
|
module Sequence
|
6
|
+
# An object describing summary information about a ledger.
|
6
7
|
class Stats < ResponseObject
|
7
8
|
|
8
9
|
# @!attribute [r] asset_count
|
9
|
-
#
|
10
|
+
# The number of assets in the ledger.
|
10
11
|
# @return [Integer]
|
11
12
|
attrib :asset_count
|
12
13
|
|
13
14
|
# @!attribute [r] account_count
|
14
|
-
#
|
15
|
+
# The number of accounts in the ledger.
|
15
16
|
# @return [Integer]
|
16
17
|
attrib :account_count
|
17
18
|
|
18
19
|
# @!attribute [r] tx_count
|
19
|
-
#
|
20
|
+
# The number of transactions in the ledger.
|
20
21
|
# @return [Integer]
|
21
22
|
attrib :tx_count
|
22
23
|
|
23
24
|
class ClientModule < Sequence::ClientModule
|
25
|
+
# Gets stats from the ledger.
|
24
26
|
# @return [Stats]
|
25
27
|
def get
|
26
28
|
Stats.new(client.conn.request('stats'))
|
data/lib/sequence/transaction.rb
CHANGED
@@ -5,10 +5,13 @@ require_relative './query'
|
|
5
5
|
require_relative './response_object'
|
6
6
|
|
7
7
|
module Sequence
|
8
|
+
# A transaction is an atomic update to the state of the ledger. Transactions
|
9
|
+
# can issue new asset units, transfer of asset units from one account to
|
10
|
+
# another, and/or the retire asset units from an account.
|
8
11
|
class Transaction < ResponseObject
|
9
12
|
|
10
13
|
# @!attribute [r] id
|
11
|
-
#
|
14
|
+
# A unique ID.
|
12
15
|
# @return [String]
|
13
16
|
attrib :id
|
14
17
|
|
@@ -23,17 +26,17 @@ module Sequence
|
|
23
26
|
attrib :sequence_number
|
24
27
|
|
25
28
|
# @!attribute [r] reference_data
|
26
|
-
# User
|
29
|
+
# User-specified key-value data embedded into the transaction.
|
27
30
|
# @return [Hash]
|
28
31
|
attrib :reference_data
|
29
32
|
|
30
33
|
# @!attribute [r] actions
|
31
|
-
# List of
|
34
|
+
# List of actions taken by the transaction.
|
32
35
|
# @return [Array<Action>]
|
33
36
|
attrib(:actions) { |raw| raw.map { |v| Action.new(v) } }
|
34
37
|
|
35
38
|
# @!attribute [r] contracts
|
36
|
-
# List of
|
39
|
+
# List of contracts created by the transaction.
|
37
40
|
# @return [Array<Contract>]
|
38
41
|
attrib(:contracts) { |raw| raw.map { |v| Contract.new(v) } }
|
39
42
|
|
@@ -58,13 +61,12 @@ module Sequence
|
|
58
61
|
))
|
59
62
|
end
|
60
63
|
|
61
|
-
#
|
62
|
-
# @param [Hash] opts
|
63
|
-
# @option opts [String] filter
|
64
|
-
# @option opts [Array<String|Integer>] filter_params
|
65
|
-
# @option opts [Integer] start_time A Unix timestamp in milliseconds
|
66
|
-
# @option opts [Integer] end_time A Unix timestamp in milliseconds
|
67
|
-
# @option opts [Integer] timeout A time in milliseconds after which a server timeout should occur. Defaults to 1000 (1 second).
|
64
|
+
# Executes a query, returning an enumerable over individual transactions.
|
65
|
+
# @param [Hash] opts Options hash
|
66
|
+
# @option opts [String] filter A filter expression.
|
67
|
+
# @option opts [Array<String|Integer>] filter_params A list of values that will be interpolated into the filter expression.
|
68
|
+
# @option opts [Integer] start_time A Unix timestamp in milliseconds of the earliest transaction timestamp to include in the query results.
|
69
|
+
# @option opts [Integer] end_time A Unix timestamp in milliseconds of the most recent transaction timestamp to include in the query results.
|
68
70
|
# @return [Query]
|
69
71
|
def query(opts = {})
|
70
72
|
Query.new(client, opts)
|
@@ -81,11 +83,10 @@ module Sequence
|
|
81
83
|
end
|
82
84
|
end
|
83
85
|
|
86
|
+
# An action taken by a transaction.
|
84
87
|
class Action < ResponseObject
|
85
88
|
# @!attribute [r] type
|
86
|
-
# The type of the action.
|
87
|
-
#
|
88
|
-
# Possible values are "issue", "transfer" and "retire".
|
89
|
+
# The type of the action. Possible values are "issue", "transfer" and "retire".
|
89
90
|
# @return [String]
|
90
91
|
attrib :type
|
91
92
|
|
@@ -95,61 +96,57 @@ module Sequence
|
|
95
96
|
attrib :asset_id
|
96
97
|
|
97
98
|
# @!attribute [r] asset_alias
|
98
|
-
# The alias of the action's asset
|
99
|
+
# The alias of the action's asset.
|
99
100
|
# @return [String]
|
100
101
|
attrib :asset_alias
|
101
102
|
|
102
103
|
# @!attribute [r] asset_tags
|
103
|
-
# The tags of the action's asset
|
104
|
+
# The tags of the action's asset.
|
104
105
|
# @return [Hash]
|
105
106
|
attrib :asset_tags
|
106
107
|
|
107
108
|
# @!attribute [r] amount
|
108
|
-
# The number of units
|
109
|
+
# The number of asset units issues, transferred, or retired.
|
109
110
|
# @return [Integer]
|
110
111
|
attrib :amount
|
111
112
|
|
112
113
|
# @!attribute [r] source_account_id
|
113
|
-
# The
|
114
|
-
# action is an issuance).
|
114
|
+
# The ID of the account serving as the source of asset units. Null for issuances.
|
115
115
|
# @return [String]
|
116
116
|
attrib :source_account_id
|
117
117
|
|
118
118
|
# @!attribute [r] source_account_alias
|
119
|
-
# The alias of the account
|
120
|
-
# action is an issuance).
|
119
|
+
# The alias of the account serving as the source of asset units. Null for issuances.
|
121
120
|
# @return [String]
|
122
121
|
attrib :source_account_alias
|
123
122
|
|
124
123
|
# @!attribute [r] source_account_tags
|
125
|
-
# The tags
|
124
|
+
# The tags of the account serving as the source of asset units. Null for issuances.
|
126
125
|
# @return [String]
|
127
126
|
attrib :source_account_tags
|
128
127
|
|
129
128
|
# @!attribute [r] destination_account_id
|
130
|
-
# The
|
131
|
-
# action is a retirement).
|
129
|
+
# The ID of the account receiving the asset units. Null for retirements.
|
132
130
|
# @return [String]
|
133
131
|
attrib :destination_account_id
|
134
132
|
|
135
133
|
# @!attribute [r] destination_account_alias
|
136
|
-
# The alias of the account receiving the asset
|
137
|
-
# action is an retirement).
|
134
|
+
# The alias of the account receiving the asset units. Null for retirements.
|
138
135
|
# @return [String]
|
139
136
|
attrib :destination_account_alias
|
140
137
|
|
141
138
|
# @!attribute [r] destination_account_tags
|
142
|
-
# The tags
|
139
|
+
# The tags of the account receiving the asset units. Null for retirements.
|
143
140
|
# @return [String]
|
144
141
|
attrib :destination_account_tags
|
145
142
|
|
146
143
|
# @!attribute [r] reference_data
|
147
|
-
# User
|
148
|
-
# (possibly null).
|
144
|
+
# User-specified, key-value data embedded into the action.
|
149
145
|
# @return [Hash]
|
150
146
|
attrib :reference_data
|
151
147
|
end
|
152
148
|
|
149
|
+
# A configuration object for creating and submitting transactions.
|
153
150
|
class Builder
|
154
151
|
attr_accessor :reference_data
|
155
152
|
|
@@ -157,12 +154,10 @@ module Sequence
|
|
157
154
|
block.call(self) if block
|
158
155
|
end
|
159
156
|
|
160
|
-
# @return [Array<Hash>]
|
161
157
|
def actions
|
162
158
|
@actions ||= []
|
163
159
|
end
|
164
160
|
|
165
|
-
# @return [Hash]
|
166
161
|
def to_h
|
167
162
|
{
|
168
163
|
actions: actions,
|
@@ -170,14 +165,12 @@ module Sequence
|
|
170
165
|
}
|
171
166
|
end
|
172
167
|
|
173
|
-
# @return [String]
|
174
168
|
def to_json(opts = nil)
|
175
169
|
to_h.to_json(opts)
|
176
170
|
end
|
177
171
|
|
178
|
-
#
|
179
|
-
# @param [Hash] params Action parameters
|
180
|
-
# required parameters for that type
|
172
|
+
# Adds an action to a transaction builder.
|
173
|
+
# @param [Hash] params Action parameters.
|
181
174
|
# @return [Builder]
|
182
175
|
def add_action(params)
|
183
176
|
# Some actions require an idempotency token, so we'll add it here as a
|
@@ -187,66 +180,68 @@ module Sequence
|
|
187
180
|
self
|
188
181
|
end
|
189
182
|
|
190
|
-
#
|
191
|
-
#
|
192
|
-
# @
|
193
|
-
#
|
194
|
-
# @option params [String] :asset_alias Asset alias specifying the asset to be issued.
|
195
|
-
# You must specify either an ID or an alias.
|
196
|
-
# @option params [Integer] :amount amount of the asset to be issued
|
197
|
-
# @option params [String] :destination_account_id ID of account receiving the newly-issued asset units.
|
183
|
+
# Issues new units of an asset to a destination account.
|
184
|
+
#
|
185
|
+
# @param [Hash] params Options hash
|
186
|
+
# @option params [String] :asset_id ID of the asset to be issued.
|
198
187
|
# You must specify either an ID or an alias.
|
199
|
-
# @option params [String] :
|
188
|
+
# @option params [String] :asset_alias Asset alias of the asset to be issued.
|
200
189
|
# You must specify either an ID or an alias.
|
201
|
-
# @option params [
|
190
|
+
# @option params [Integer] :amount amount of the asset to be issued.
|
191
|
+
# @option params [String] :destination_account_id ID of the account receiving the asset units.
|
192
|
+
# You must specify a destination account ID or alias.
|
193
|
+
# @option params [String] :destination_account_alias alias of the account receiving the asset units.
|
194
|
+
# You must specify a destination account ID or alias.
|
195
|
+
# @option params [Hash] :reference_data reference data for the action.
|
202
196
|
# @return [Builder]
|
203
197
|
def issue(params)
|
204
198
|
add_action(params.merge(type: :issue))
|
205
199
|
end
|
206
200
|
|
207
|
-
#
|
208
|
-
#
|
209
|
-
# @
|
201
|
+
# Moves units of an asset from a source (an account or contract) to a destination account.
|
202
|
+
#
|
203
|
+
# @param [Hash] params Options hash
|
204
|
+
# @option params [String] :source_account_id ID of the account serving as the source of asset units.
|
210
205
|
# You must specify a source account ID, account alias, or contract ID.
|
211
|
-
# @option params [String] :source_account_alias
|
206
|
+
# @option params [String] :source_account_alias Alias of the account serving as the source of asset units
|
212
207
|
# You must specify a source account ID, account alias, or contract ID.
|
213
|
-
# @option params [String] :source_contract_id
|
208
|
+
# @option params [String] :source_contract_id ID of the contract serving as the source of asset units.
|
214
209
|
# You must specify a source account ID, account alias, or contract ID.
|
215
|
-
# @option params [String] :asset_id
|
210
|
+
# @option params [String] :asset_id ID of the asset to be transferred.
|
216
211
|
# You must specify either an ID or an alias.
|
217
|
-
# @option params [String] :asset_alias Asset alias
|
212
|
+
# @option params [String] :asset_alias Asset alias of the asset to be transferred.
|
218
213
|
# You must specify either an ID or an alias.
|
219
|
-
# @option params [Integer] :amount
|
220
|
-
# @option params [
|
221
|
-
#
|
214
|
+
# @option params [Integer] :amount amount of the asset to be transferred.
|
215
|
+
# @option params [String] :destination_account_id ID of the account receiving the asset units.
|
216
|
+
# You must specify a destination account ID or alias.
|
217
|
+
# @option params [String] :destination_account_alias alias of the account receiving the asset units.
|
218
|
+
# You must specify a destination account ID or alias.
|
219
|
+
# @option params [Hash] :reference_data reference data for the action.
|
220
|
+
# @option params [Hash] :change_reference_data reference data for the change contract.
|
222
221
|
# @return [Builder]
|
223
|
-
def
|
224
|
-
add_action(params.merge(type: :
|
222
|
+
def transfer(params)
|
223
|
+
add_action(params.merge(type: :transfer))
|
225
224
|
end
|
226
225
|
|
227
|
-
#
|
226
|
+
# Takes units of an asset from a source (an account or contract) and retires them.
|
228
227
|
#
|
229
|
-
# @param [Hash] params
|
230
|
-
# @option params [String] :source_account_id
|
228
|
+
# @param [Hash] params Options hash
|
229
|
+
# @option params [String] :source_account_id ID of the account serving as the source of asset units.
|
231
230
|
# You must specify a source account ID, account alias, or contract ID.
|
232
|
-
# @option params [String] :source_account_alias
|
231
|
+
# @option params [String] :source_account_alias Alias of the account serving as the source of asset units
|
233
232
|
# You must specify a source account ID, account alias, or contract ID.
|
234
|
-
# @option params [String] :source_contract_id
|
233
|
+
# @option params [String] :source_contract_id ID of the contract serving as the source of asset units.
|
235
234
|
# You must specify a source account ID, account alias, or contract ID.
|
236
|
-
# @option params [String] :asset_id
|
235
|
+
# @option params [String] :asset_id ID of the asset to be retired.
|
237
236
|
# You must specify either an ID or an alias.
|
238
|
-
# @option params [String] :asset_alias Asset alias
|
237
|
+
# @option params [String] :asset_alias Asset alias of the asset to be retired.
|
239
238
|
# You must specify either an ID or an alias.
|
240
|
-
# @option params [Integer] :amount
|
241
|
-
# @option params [
|
242
|
-
#
|
243
|
-
# @option params [String] :destination_account_alias Account alias specifying the account controlling the asset.
|
244
|
-
# You must specify a destination account ID or alias.
|
245
|
-
# @option params [Hash] :reference_data Reference data to add to the receiving contract.
|
246
|
-
# @option params [Hash] :change_reference_data Reference data to add to the change contract, if it is necessary.
|
239
|
+
# @option params [Integer] :amount amount of the asset to be retired.
|
240
|
+
# @option params [Hash] :reference_data reference data for the action.
|
241
|
+
# @option params [Hash] :change_reference_data reference data for the change contract.
|
247
242
|
# @return [Builder]
|
248
|
-
def
|
249
|
-
add_action(params.merge(type: :
|
243
|
+
def retire(params)
|
244
|
+
add_action(params.merge(type: :retire))
|
250
245
|
end
|
251
246
|
end
|
252
247
|
end
|
data/lib/sequence/version.rb
CHANGED
metadata
CHANGED
@@ -1,137 +1,137 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequence-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chain Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler-audit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 3.5.0
|
62
|
-
- -
|
62
|
+
- - '>='
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: 3.5.0
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - ~>
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: 3.5.0
|
72
|
-
- -
|
72
|
+
- - '>='
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 3.5.0
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec-its
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - ~>
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: 1.2.0
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - ~>
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 1.2.0
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: simplecov
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- -
|
93
|
+
- - ~>
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: 0.14.1
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- -
|
100
|
+
- - ~>
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: 0.14.1
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: webmock
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: 2.3.2
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- -
|
114
|
+
- - ~>
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: 2.3.2
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: yard
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
|
-
- -
|
121
|
+
- - ~>
|
122
122
|
- !ruby/object:Gem::Version
|
123
123
|
version: 0.9.5
|
124
|
-
- -
|
124
|
+
- - '>='
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: 0.9.5
|
127
127
|
type: :development
|
128
128
|
prerelease: false
|
129
129
|
version_requirements: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: 0.9.5
|
134
|
-
- -
|
134
|
+
- - '>='
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: 0.9.5
|
137
137
|
description: SDK for Sequence
|
@@ -140,16 +140,14 @@ executables: []
|
|
140
140
|
extensions: []
|
141
141
|
extra_rdoc_files: []
|
142
142
|
files:
|
143
|
-
- LICENSE
|
144
143
|
- README.md
|
145
|
-
-
|
144
|
+
- LICENSE
|
146
145
|
- lib/sequence/account.rb
|
147
146
|
- lib/sequence/asset.rb
|
148
147
|
- lib/sequence/balance.rb
|
149
148
|
- lib/sequence/client.rb
|
150
149
|
- lib/sequence/client_module.rb
|
151
150
|
- lib/sequence/connection.rb
|
152
|
-
- lib/sequence/constants.rb
|
153
151
|
- lib/sequence/contract.rb
|
154
152
|
- lib/sequence/dev_utils.rb
|
155
153
|
- lib/sequence/errors.rb
|
@@ -160,6 +158,7 @@ files:
|
|
160
158
|
- lib/sequence/stats.rb
|
161
159
|
- lib/sequence/transaction.rb
|
162
160
|
- lib/sequence/version.rb
|
161
|
+
- lib/sequence.rb
|
163
162
|
homepage: https://dashboard.sequenceledger.com
|
164
163
|
licenses:
|
165
164
|
- Apache-2.0
|
@@ -170,17 +169,17 @@ require_paths:
|
|
170
169
|
- lib
|
171
170
|
required_ruby_version: !ruby/object:Gem::Requirement
|
172
171
|
requirements:
|
173
|
-
- -
|
172
|
+
- - ~>
|
174
173
|
- !ruby/object:Gem::Version
|
175
174
|
version: '2.0'
|
176
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
176
|
requirements:
|
178
|
-
- -
|
177
|
+
- - '>='
|
179
178
|
- !ruby/object:Gem::Version
|
180
179
|
version: '0'
|
181
180
|
requirements: []
|
182
181
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.
|
182
|
+
rubygems_version: 2.0.14.1
|
184
183
|
signing_key:
|
185
184
|
specification_version: 4
|
186
185
|
summary: SDK for Sequence
|
data/lib/sequence/constants.rb
DELETED