stellar_base-rails 1.1.2 → 2.0.0.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/stellar_base/stellar_operation.rb +8 -43
- data/app/models/stellar_base/stellar_payment.rb +14 -0
- data/app/models/stellar_base/stellar_transaction.rb +6 -45
- data/app/services/stellar_base/account_subscriptions/execute_account_subscription_callback.rb +19 -0
- data/app/services/stellar_base/account_subscriptions/find_or_create_operation.rb +42 -0
- data/app/services/stellar_base/account_subscriptions/find_or_create_transaction.rb +26 -0
- data/app/services/stellar_base/account_subscriptions/{get_operations.rb → get_remote_operations.rb} +5 -6
- data/app/services/stellar_base/account_subscriptions/get_remote_transaction.rb +17 -0
- data/app/services/stellar_base/account_subscriptions/process_withdrawal.rb +14 -0
- data/app/services/stellar_base/account_subscriptions/save_cursor.rb +3 -2
- data/app/services/stellar_base/subscribe_account.rb +7 -4
- data/app/services/stellar_base/withdrawal_requests/call_on_withdraw.rb +3 -2
- data/app/services/stellar_base/withdrawal_requests/find_withdrawal_request.rb +22 -11
- data/app/services/stellar_base/withdrawal_requests/process.rb +2 -2
- data/db/migrate/20181217090323_create_stellar_transactions_and_operations.rb +21 -0
- data/lib/stellar_base/factories/stellar_operations.rb +13 -9
- data/lib/stellar_base/factories/stellar_transactions.rb +3 -23
- data/lib/stellar_base/version.rb +1 -1
- data/lib/stellar_base.rb +1 -0
- metadata +40 -7
- data/app/services/stellar_base/account_subscriptions/execute_callback.rb +0 -18
- data/app/services/stellar_base/account_subscriptions/get_tx.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e77799d69798a3dcad04f791128556561d0ad1c08f5711a2379d1bbcccbc5d64
|
4
|
+
data.tar.gz: 9f3f1524dcbc5fe322d41bb753ad035f26383abeeca017c477d10baa64e049b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9c6fc4d4f505bd85c2eaf42e2611ceeba8468e771391afcc28a37172d9e90f54c75eeef60419903999f520305ce965c271fb7facc7c130caea537d643d04148
|
7
|
+
data.tar.gz: 64274b0663f9a83197375bc81ab405545c0ad8e0ecb46423e69d72e49c45c6e4b1a1db507864ccf586e86ed0005a3b20cc04976053b3cd0c0cc57bb36999dfc8
|
@@ -1,49 +1,14 @@
|
|
1
1
|
module StellarBase
|
2
|
-
class StellarOperation
|
2
|
+
class StellarOperation < ApplicationRecord
|
3
3
|
|
4
|
-
include
|
4
|
+
include Storext.model
|
5
|
+
store :data, coder: JSON
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
attribute :type_i, Integer, default: :default_type_i, lazy: true
|
12
|
-
attribute :created_at, DateTime, default: :default_created_at, lazy: true
|
13
|
-
attribute :transaction_hash, String, default: :default_transaction_hash, lazy: true
|
14
|
-
attribute :asset_type, String, default: :default_asset_type, lazy: true
|
15
|
-
attribute :asset_code, String, default: :default_asset_code, lazy: true
|
16
|
-
attribute :asset_issuer, String, default: :default_asset_issuer, lazy: true
|
17
|
-
attribute :from, String, default: :default_from, lazy: true
|
18
|
-
attribute :to, String, default: :default_to, lazy: true
|
19
|
-
attribute :amount, BigDecimal, default: :default_amount, lazy: true
|
20
|
-
attribute :starting_balance, BigDecimal, default: :default_starting_balance, lazy: true
|
21
|
-
attribute :funder, String, default: :default_funder, lazy: true
|
22
|
-
attribute :account, String, default: :default_account, lazy: true
|
7
|
+
belongs_to(:stellar_transaction, {
|
8
|
+
class_name: "StellarBase::StellarTransaction",
|
9
|
+
primary_key: :transaction_id,
|
10
|
+
foreign_key: :transaction_hash,
|
11
|
+
})
|
23
12
|
|
24
|
-
private
|
25
|
-
|
26
|
-
%i[
|
27
|
-
id
|
28
|
-
paging_token
|
29
|
-
source_account
|
30
|
-
type
|
31
|
-
type_i
|
32
|
-
created_at
|
33
|
-
transaction_hash
|
34
|
-
starting_balance
|
35
|
-
funder
|
36
|
-
account
|
37
|
-
asset_type
|
38
|
-
asset_code
|
39
|
-
asset_issuer
|
40
|
-
from
|
41
|
-
to
|
42
|
-
amount
|
43
|
-
].each do |attr|
|
44
|
-
define_method :"default_#{attr}" do
|
45
|
-
raw.to_hash[attr.to_s]
|
46
|
-
end
|
47
|
-
end
|
48
13
|
end
|
49
14
|
end
|
@@ -1,50 +1,11 @@
|
|
1
1
|
module StellarBase
|
2
|
-
class StellarTransaction
|
2
|
+
class StellarTransaction < ApplicationRecord
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
attribute :ledger, Integer, default: :default_ledger, lazy: true
|
10
|
-
attribute :created_at, DateTime, default: :default_created_at, lazy: true
|
11
|
-
attribute :source_account, String, default: :default_source_account, lazy: true
|
12
|
-
attribute :source_account_sequence, String, default: :default_source_account_sequence, lazy: true
|
13
|
-
attribute :fee_paid, Integer, default: :default_fee_paid, lazy: true
|
14
|
-
attribute :operation_count, Integer, default: :default_operation_count, lazy: true
|
15
|
-
attribute :envelope_xdr, String, default: :default_envelope_xdr, lazy: true
|
16
|
-
attribute :result_xdr, String, default: :default_result_xdr, lazy: true
|
17
|
-
attribute :result_meta_xdr, String, default: :default_result_meta_xdr, lazy: true
|
18
|
-
attribute :fee_meta_xdr, String, default: :default_fee_meta_xdr, lazy: true
|
19
|
-
attribute :memo_type, String, default: :default_memo_type, lazy: true
|
20
|
-
attribute :memo, String, default: :default_memo, lazy: true
|
21
|
-
attribute :signatures, Array, default: :default_signatures, lazy: true
|
22
|
-
attribute :valid_after, DateTime, default: :default_valid_after, lazy: true
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
%i[
|
27
|
-
id
|
28
|
-
paging_token
|
29
|
-
ledger
|
30
|
-
created_at
|
31
|
-
source_account
|
32
|
-
source_account_sequence
|
33
|
-
fee_paid
|
34
|
-
operation_count
|
35
|
-
envelope_xdr
|
36
|
-
result_xdr
|
37
|
-
result_meta_xdr
|
38
|
-
fee_meta_xdr
|
39
|
-
memo_type
|
40
|
-
memo
|
41
|
-
signatures
|
42
|
-
valid_after
|
43
|
-
].each do |attr|
|
44
|
-
define_method :"default_#{attr}" do
|
45
|
-
raw.to_hash[attr.to_s]
|
46
|
-
end
|
47
|
-
end
|
4
|
+
has_many(:stellar_operations, {
|
5
|
+
class_name: "StellarBase::StellarOperation",
|
6
|
+
primary_key: :transaction_id,
|
7
|
+
foreign_key: :transaction_hash,
|
8
|
+
})
|
48
9
|
|
49
10
|
end
|
50
11
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module StellarBase
|
2
|
+
module AccountSubscriptions
|
3
|
+
class ExecuteAccountSubscriptionCallback
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects(*%i[
|
7
|
+
account_subscription
|
8
|
+
stellar_operation
|
9
|
+
on_account_event
|
10
|
+
])
|
11
|
+
|
12
|
+
executed do |c|
|
13
|
+
next c if c.on_account_event.nil?
|
14
|
+
c.on_account_event.(c.account_subscription.address, c.stellar_operation)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module StellarBase
|
2
|
+
module AccountSubscriptions
|
3
|
+
class FindOrCreateOperation
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :remote_operation
|
7
|
+
promises :stellar_operation
|
8
|
+
|
9
|
+
SUPPORTED_TYPES = %w(payment).freeze
|
10
|
+
|
11
|
+
executed do |c|
|
12
|
+
remote_operation = c.remote_operation
|
13
|
+
|
14
|
+
c.stellar_operation = StellarOperation.
|
15
|
+
find_by(operation_id: remote_operation["id"])
|
16
|
+
|
17
|
+
next c if c.stellar_operation.present?
|
18
|
+
|
19
|
+
if SUPPORTED_TYPES.include?(remote_operation["type"])
|
20
|
+
klass = StellarBase.
|
21
|
+
const_get("stellar_#{remote_operation["type"]}".classify)
|
22
|
+
c.stellar_operation = klass.create!(
|
23
|
+
operation_id: remote_operation["id"],
|
24
|
+
transaction_hash: remote_operation["transaction_hash"],
|
25
|
+
asset_code: remote_operation["asset_code"],
|
26
|
+
asset_issuer: remote_operation["asset_issuer"],
|
27
|
+
from: remote_operation["from"],
|
28
|
+
to: remote_operation["to"],
|
29
|
+
amount: remote_operation["amount"],
|
30
|
+
)
|
31
|
+
else
|
32
|
+
c.stellar_operation = StellarOperation.create!(
|
33
|
+
operation_id: remote_operation["id"],
|
34
|
+
transaction_hash: remote_operation["transaction_hash"],
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module StellarBase
|
2
|
+
module AccountSubscriptions
|
3
|
+
class FindOrCreateTransaction
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :remote_transaction
|
7
|
+
promises :stellar_transaction
|
8
|
+
|
9
|
+
executed do |c|
|
10
|
+
remote_transaction = c.remote_transaction
|
11
|
+
|
12
|
+
c.stellar_transaction = StellarTransaction.
|
13
|
+
find_by(transaction_id: remote_transaction["id"])
|
14
|
+
|
15
|
+
next c if c.stellar_transaction.present?
|
16
|
+
|
17
|
+
c.stellar_transaction = StellarTransaction.create!(
|
18
|
+
transaction_id: remote_transaction["id"],
|
19
|
+
memo: remote_transaction["memo"],
|
20
|
+
memo_type: remote_transaction["memo_type"],
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/app/services/stellar_base/account_subscriptions/{get_operations.rb → get_remote_operations.rb}
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
module StellarBase
|
2
2
|
module AccountSubscriptions
|
3
|
-
class
|
3
|
+
class GetRemoteOperations
|
4
4
|
|
5
5
|
extend LightService::Action
|
6
6
|
expects(
|
@@ -9,19 +9,18 @@ module StellarBase
|
|
9
9
|
:stellar_sdk_client,
|
10
10
|
:operation_limit,
|
11
11
|
)
|
12
|
-
promises :
|
12
|
+
promises :remote_operations
|
13
13
|
|
14
14
|
executed do |c|
|
15
15
|
address = c.account_subscription.address
|
16
16
|
|
17
|
-
c.
|
17
|
+
c.remote_operations = c.stellar_sdk_client
|
18
18
|
.horizon
|
19
19
|
.account(account_id: address)
|
20
20
|
.operations(order: "asc", cursor: c.cursor, limit: c.operation_limit)
|
21
|
-
.records
|
22
|
-
.map { |op| StellarOperation.new(raw: op) }
|
21
|
+
.records.map(&:to_hash)
|
23
22
|
|
24
|
-
if c.
|
23
|
+
if c.remote_operations.empty?
|
25
24
|
c.fail_and_return! "No operations found for #{address}"
|
26
25
|
end
|
27
26
|
rescue Faraday::ClientError => e
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module StellarBase
|
2
|
+
module AccountSubscriptions
|
3
|
+
class GetRemoteTransaction
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :stellar_sdk_client, :remote_operation
|
7
|
+
promises :remote_transaction
|
8
|
+
|
9
|
+
executed do |c|
|
10
|
+
hash = c.remote_operation["transaction_hash"]
|
11
|
+
c.remote_transaction = c.stellar_sdk_client.horizon.
|
12
|
+
transaction(hash: hash).to_hash
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -3,10 +3,11 @@ module StellarBase
|
|
3
3
|
class SaveCursor
|
4
4
|
|
5
5
|
extend LightService::Action
|
6
|
-
expects :account_subscription, :
|
6
|
+
expects :account_subscription, :remote_operations
|
7
7
|
|
8
8
|
executed do |c|
|
9
|
-
|
9
|
+
last_operation = c.remote_operations.last
|
10
|
+
c.account_subscription.update!(cursor: last_operation["id"])
|
10
11
|
end
|
11
12
|
|
12
13
|
end
|
@@ -23,10 +23,13 @@ module StellarBase
|
|
23
23
|
[
|
24
24
|
InitStellarClient,
|
25
25
|
AccountSubscriptions::GetCursor,
|
26
|
-
AccountSubscriptions::
|
27
|
-
iterate(:
|
28
|
-
AccountSubscriptions::
|
29
|
-
AccountSubscriptions::
|
26
|
+
AccountSubscriptions::GetRemoteOperations,
|
27
|
+
iterate(:remote_operations, [
|
28
|
+
AccountSubscriptions::GetRemoteTransaction,
|
29
|
+
AccountSubscriptions::FindOrCreateTransaction,
|
30
|
+
AccountSubscriptions::FindOrCreateOperation,
|
31
|
+
AccountSubscriptions::ExecuteAccountSubscriptionCallback,
|
32
|
+
AccountSubscriptions::ProcessWithdrawal,
|
30
33
|
]),
|
31
34
|
AccountSubscriptions::SaveCursor,
|
32
35
|
]
|
@@ -3,14 +3,15 @@ module StellarBase
|
|
3
3
|
class CallOnWithdraw
|
4
4
|
|
5
5
|
extend LightService::Action
|
6
|
-
expects :withdrawal_request, :
|
6
|
+
expects :withdrawal_request, :stellar_operation, :on_withdraw
|
7
7
|
|
8
8
|
ON_WITHDRAW_ERROR = "`on_withdraw` must be a string of an object " \
|
9
9
|
"that responds to `.call` or the object itself"
|
10
10
|
|
11
11
|
executed do |c|
|
12
|
+
next c if c.on_withdraw.nil?
|
12
13
|
callback = callback_from(c.on_withdraw)
|
13
|
-
callback.(c.withdrawal_request, c.
|
14
|
+
callback.(c.withdrawal_request, c.stellar_operation)
|
14
15
|
end
|
15
16
|
|
16
17
|
def self.callback_from(on_withdraw)
|
@@ -3,33 +3,44 @@ module StellarBase
|
|
3
3
|
class FindWithdrawalRequest
|
4
4
|
|
5
5
|
extend LightService::Action
|
6
|
-
expects :
|
6
|
+
expects :stellar_operation
|
7
7
|
promises :withdrawal_request
|
8
8
|
|
9
|
-
|
10
|
-
asset_code: :asset_code,
|
11
|
-
issuer: :asset_issuer,
|
9
|
+
MATCH_WITHDRAWAL_REQUEST_TO_STELLAR_TX_MAP = {
|
12
10
|
memo_type: :memo_type,
|
13
11
|
memo: :memo,
|
14
12
|
}.freeze
|
15
13
|
|
14
|
+
MATCH_WITHDRAWAL_REQUEST_TO_STELLAR_OP_MAP = {
|
15
|
+
asset_code: :asset_code,
|
16
|
+
issuer: :asset_issuer,
|
17
|
+
}.freeze
|
18
|
+
|
16
19
|
executed do |c|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
stellar_operation = c.stellar_operation
|
21
|
+
stellar_transaction = stellar_operation.stellar_transaction
|
22
|
+
|
23
|
+
c.withdrawal_request = withdrawal_request =
|
24
|
+
WithdrawalRequest.find_by(memo: stellar_transaction.memo)
|
20
25
|
|
21
26
|
if withdrawal_request.nil?
|
22
27
|
c.skip_remaining!
|
23
28
|
next c
|
24
29
|
end
|
25
30
|
|
26
|
-
|
27
|
-
|
31
|
+
tx_map = MATCH_WITHDRAWAL_REQUEST_TO_STELLAR_TX_MAP
|
32
|
+
mismatch_tx = tx_map.any? do |withdrawal_request_attr, stellar_tx_attr|
|
33
|
+
withdrawal_request.send(withdrawal_request_attr) !=
|
34
|
+
stellar_transaction.send(stellar_tx_attr)
|
35
|
+
end
|
36
|
+
|
37
|
+
op_map = MATCH_WITHDRAWAL_REQUEST_TO_STELLAR_OP_MAP
|
38
|
+
mismatch_op = op_map.any? do |withdrawal_request_attr, stellar_op_attr|
|
28
39
|
withdrawal_request.send(withdrawal_request_attr) !=
|
29
|
-
|
40
|
+
stellar_operation.send(stellar_op_attr)
|
30
41
|
end
|
31
42
|
|
32
|
-
if
|
43
|
+
if [mismatch_tx, mismatch_op].any?
|
33
44
|
c.skip_remaining!
|
34
45
|
next c
|
35
46
|
end
|
@@ -5,11 +5,11 @@ module StellarBase
|
|
5
5
|
extend LightService::Organizer
|
6
6
|
|
7
7
|
def self.call(
|
8
|
-
|
8
|
+
operation,
|
9
9
|
on_withdraw: StellarBase.configuration.on_withdraw
|
10
10
|
)
|
11
11
|
with(
|
12
|
-
|
12
|
+
stellar_operation: operation,
|
13
13
|
on_withdraw: on_withdraw,
|
14
14
|
).reduce(actions)
|
15
15
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class CreateStellarTransactionsAndOperations < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :stellar_base_stellar_operations do |t|
|
4
|
+
t.string :operation_id, null: false
|
5
|
+
t.string :transaction_hash, null: false
|
6
|
+
t.string :type
|
7
|
+
t.text :data
|
8
|
+
t.index :operation_id, unique: true
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
|
12
|
+
create_table :stellar_base_stellar_transactions do |t|
|
13
|
+
t.string :transaction_id, null: false
|
14
|
+
t.string :memo
|
15
|
+
t.string :memo_type
|
16
|
+
t.index :memo
|
17
|
+
t.index :transaction_id, unique: true
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -2,20 +2,24 @@ FactoryBot.define do
|
|
2
2
|
factory(:stellar_base_stellar_operation, {
|
3
3
|
class: "StellarBase::StellarOperation"
|
4
4
|
}) do
|
5
|
-
|
6
|
-
paging_token "1234"
|
7
|
-
source_account "G-TEST"
|
8
|
-
type "payment"
|
9
|
-
type_i { 1 }
|
10
|
-
created_at { Time.zone.now }
|
5
|
+
operation_id "id"
|
11
6
|
transaction_hash "tx1234"
|
12
|
-
|
7
|
+
association(:stellar_transaction, {
|
8
|
+
factory: :stellar_base_stellar_transaction,
|
9
|
+
})
|
10
|
+
end
|
11
|
+
|
12
|
+
factory(:stellar_base_stellar_payment, {
|
13
|
+
class: "StellarBase::StellarPayment",
|
14
|
+
parent: :stellar_base_stellar_operation,
|
15
|
+
}) do
|
13
16
|
asset_code nil
|
14
17
|
asset_issuer nil
|
15
18
|
from "G-SOURCE"
|
16
19
|
to "G-RECIPIENT"
|
17
20
|
amount 10.0
|
18
|
-
|
19
|
-
|
21
|
+
association(:stellar_transaction, {
|
22
|
+
factory: :stellar_base_stellar_transaction,
|
23
|
+
})
|
20
24
|
end
|
21
25
|
end
|
@@ -1,27 +1,7 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :stellar_base_stellar_transaction, class: "StellarBase::StellarTransaction" do
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
created_at { DateTime.parse("2018-10-04T09:36:18Z") }
|
7
|
-
source_account { "G-SOURCE" }
|
8
|
-
source_account_sequence { "1" }
|
9
|
-
fee_paid { 1000 }
|
10
|
-
operation_count { 10 }
|
11
|
-
envelope_xdr { "AAA" }
|
12
|
-
result_xdr { "BBB" }
|
13
|
-
result_meta_xdr { "CCC" }
|
14
|
-
fee_meta_xdr { "DDD" }
|
15
|
-
memo_type { "none" }
|
16
|
-
signatures do
|
17
|
-
[
|
18
|
-
"SIG1===",
|
19
|
-
"SIG2===",
|
20
|
-
"SIG3===",
|
21
|
-
"SIG4===",
|
22
|
-
]
|
23
|
-
end
|
24
|
-
|
25
|
-
skip_create
|
3
|
+
transaction_id { "1234" }
|
4
|
+
memo_type { "text" }
|
5
|
+
memo { "VBA" }
|
26
6
|
end
|
27
7
|
end
|
data/lib/stellar_base/version.rb
CHANGED
data/lib/stellar_base.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stellar_base-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.pre.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ace Subido
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: disposable
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: 0.18.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: storext
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '2.0'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '2.0'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: toml-rb
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -304,6 +318,20 @@ dependencies:
|
|
304
318
|
- - ">="
|
305
319
|
- !ruby/object:Gem::Version
|
306
320
|
version: '0'
|
321
|
+
- !ruby/object:Gem::Dependency
|
322
|
+
name: shoulda-matchers
|
323
|
+
requirement: !ruby/object:Gem::Requirement
|
324
|
+
requirements:
|
325
|
+
- - ">="
|
326
|
+
- !ruby/object:Gem::Version
|
327
|
+
version: '0'
|
328
|
+
type: :development
|
329
|
+
prerelease: false
|
330
|
+
version_requirements: !ruby/object:Gem::Requirement
|
331
|
+
requirements:
|
332
|
+
- - ">="
|
333
|
+
- !ruby/object:Gem::Version
|
334
|
+
version: '0'
|
307
335
|
- !ruby/object:Gem::Dependency
|
308
336
|
name: sqlite3
|
309
337
|
requirement: !ruby/object:Gem::Requirement
|
@@ -433,6 +461,7 @@ files:
|
|
433
461
|
- app/models/stellar_base/deposit.rb
|
434
462
|
- app/models/stellar_base/deposit_request.rb
|
435
463
|
- app/models/stellar_base/stellar_operation.rb
|
464
|
+
- app/models/stellar_base/stellar_payment.rb
|
436
465
|
- app/models/stellar_base/stellar_toml.rb
|
437
466
|
- app/models/stellar_base/stellar_transaction.rb
|
438
467
|
- app/models/stellar_base/withdrawal_request.rb
|
@@ -440,10 +469,13 @@ files:
|
|
440
469
|
- app/representers/stellar_base/balance_representer.rb
|
441
470
|
- app/representers/stellar_base/deposit_request_representer.rb
|
442
471
|
- app/representers/stellar_base/withdrawal_request_representer.rb
|
443
|
-
- app/services/stellar_base/account_subscriptions/
|
472
|
+
- app/services/stellar_base/account_subscriptions/execute_account_subscription_callback.rb
|
473
|
+
- app/services/stellar_base/account_subscriptions/find_or_create_operation.rb
|
474
|
+
- app/services/stellar_base/account_subscriptions/find_or_create_transaction.rb
|
444
475
|
- app/services/stellar_base/account_subscriptions/get_cursor.rb
|
445
|
-
- app/services/stellar_base/account_subscriptions/
|
446
|
-
- app/services/stellar_base/account_subscriptions/
|
476
|
+
- app/services/stellar_base/account_subscriptions/get_remote_operations.rb
|
477
|
+
- app/services/stellar_base/account_subscriptions/get_remote_transaction.rb
|
478
|
+
- app/services/stellar_base/account_subscriptions/process_withdrawal.rb
|
447
479
|
- app/services/stellar_base/account_subscriptions/save_cursor.rb
|
448
480
|
- app/services/stellar_base/bridge_callbacks/check.rb
|
449
481
|
- app/services/stellar_base/bridge_callbacks/compare.rb
|
@@ -495,6 +527,7 @@ files:
|
|
495
527
|
- db/migrate/20181001070647_create_stellar_base_deposits.rb
|
496
528
|
- db/migrate/20181003072138_create_stellar_base_account_subscriptions.rb
|
497
529
|
- db/migrate/20181210043919_add_unique_index_to_deposits.rb
|
530
|
+
- db/migrate/20181217090323_create_stellar_transactions_and_operations.rb
|
498
531
|
- lib/stellar_base-rails.rb
|
499
532
|
- lib/stellar_base.rb
|
500
533
|
- lib/stellar_base/engine.rb
|
@@ -525,9 +558,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
525
558
|
version: '0'
|
526
559
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
527
560
|
requirements:
|
528
|
-
- - "
|
561
|
+
- - ">"
|
529
562
|
- !ruby/object:Gem::Version
|
530
|
-
version:
|
563
|
+
version: 1.3.1
|
531
564
|
requirements: []
|
532
565
|
rubyforge_project:
|
533
566
|
rubygems_version: 2.7.7
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module StellarBase
|
2
|
-
module AccountSubscriptions
|
3
|
-
class ExecuteCallback
|
4
|
-
|
5
|
-
extend LightService::Action
|
6
|
-
expects :account_subscription, :tx, :operation, :on_account_event
|
7
|
-
|
8
|
-
executed do |c|
|
9
|
-
c.on_account_event.(
|
10
|
-
c.account_subscription.address,
|
11
|
-
c.tx,
|
12
|
-
c.operation,
|
13
|
-
)
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module StellarBase
|
2
|
-
module AccountSubscriptions
|
3
|
-
class GetTx
|
4
|
-
|
5
|
-
extend LightService::Action
|
6
|
-
expects :stellar_sdk_client, :operation
|
7
|
-
promises :tx
|
8
|
-
|
9
|
-
executed do |c|
|
10
|
-
hash = c.operation.transaction_hash
|
11
|
-
tx_json = c.stellar_sdk_client.horizon.transaction(hash: hash)
|
12
|
-
c.tx = StellarTransaction.new(raw: tx_json)
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|