nano_rpc 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/nano_rpc.rb +5 -5
- data/lib/nano_rpc/client.rb +7 -0
- data/lib/nano_rpc/helpers/{account_proxy_helper.rb → account_helper.rb} +9 -9
- data/lib/nano_rpc/helpers/{accounts_proxy_helper.rb → accounts_helper.rb} +3 -3
- data/lib/nano_rpc/helpers/application_helper.rb +17 -10
- data/lib/nano_rpc/helpers/node_helper.rb +52 -0
- data/lib/nano_rpc/helpers/{wallet_proxy_helper.rb → wallet_helper.rb} +26 -35
- data/lib/nano_rpc/proxies/account.rb +2 -3
- data/lib/nano_rpc/proxies/accounts.rb +2 -2
- data/lib/nano_rpc/proxies/node.rb +2 -1
- data/lib/nano_rpc/proxies/wallet.rb +7 -2
- data/lib/nano_rpc/proxy.rb +14 -20
- data/lib/nano_rpc/version.rb +1 -1
- metadata +6 -6
- data/lib/nano_rpc/helpers/node_proxy_helper.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51594de4d5c25a44368e84aea129bfe04cc01f28654efdd70101a77b86361111
|
4
|
+
data.tar.gz: 3dcedfce43a868796ea107807a4a196cd4e78d5416ebaae4289d3911fbbb8a88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5df2f32a0c02eada1f18af7d460de1d01b1e9cf762091168047855cba46f002dbcda51f42c662ff29a1dbddc31ac14b0dbe1725d9602a57e2726bab4f650f214
|
7
|
+
data.tar.gz: d0cdd6a9ba34c543f8cd7039abc6e0cc368ea862e2770cfceb2f49c9cb8af538570eea14d870c7dc1aab1012fe359ee92970df819ac5b9a8c0e59351f61b8191
|
data/lib/nano_rpc.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'nano_rpc/version'
|
3
|
+
require 'nano_rpc/helpers/application_helper'
|
4
|
+
require 'nano_rpc/helpers/account_helper'
|
5
|
+
require 'nano_rpc/helpers/accounts_helper'
|
6
|
+
require 'nano_rpc/helpers/node_helper'
|
7
|
+
require 'nano_rpc/helpers/wallet_helper'
|
3
8
|
require 'nano_rpc/client'
|
4
9
|
require 'nano_rpc/errors'
|
5
10
|
require 'nano_rpc/proxy'
|
6
11
|
require 'nano_rpc/response'
|
7
|
-
require 'nano_rpc/helpers/application_helper'
|
8
|
-
require 'nano_rpc/helpers/account_proxy_helper'
|
9
|
-
require 'nano_rpc/helpers/accounts_proxy_helper'
|
10
|
-
require 'nano_rpc/helpers/node_proxy_helper'
|
11
|
-
require 'nano_rpc/helpers/wallet_proxy_helper'
|
12
12
|
require 'nano_rpc/proxies/account'
|
13
13
|
require 'nano_rpc/proxies/accounts'
|
14
14
|
require 'nano_rpc/proxies/node'
|
data/lib/nano_rpc/client.rb
CHANGED
@@ -8,6 +8,8 @@ module Nano
|
|
8
8
|
end
|
9
9
|
|
10
10
|
class Client
|
11
|
+
include Nano::ApplicationHelper
|
12
|
+
|
11
13
|
attr_accessor :host, :port
|
12
14
|
|
13
15
|
def initialize(host: 'localhost', port: 7076)
|
@@ -15,6 +17,11 @@ module Nano
|
|
15
17
|
@port = port
|
16
18
|
end
|
17
19
|
|
20
|
+
# Condense host/port on object inspection
|
21
|
+
def inspect
|
22
|
+
"#{inspect_prefix}, @url=\"#{@host}:#{port}\">"
|
23
|
+
end
|
24
|
+
|
18
25
|
def call(action, params = {})
|
19
26
|
args = { action: action }
|
20
27
|
args.merge!(params) if params.is_a?(Hash)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
module Nano::
|
2
|
+
module Nano::AccountHelper
|
3
3
|
include Nano::ApplicationHelper
|
4
4
|
|
5
5
|
def balance
|
@@ -10,9 +10,9 @@ module Nano::AccountProxyHelper
|
|
10
10
|
account_block_count.block_count
|
11
11
|
end
|
12
12
|
|
13
|
-
def history(
|
13
|
+
def history(*args)
|
14
14
|
account_history(
|
15
|
-
|
15
|
+
pluck_argument(args, :count)
|
16
16
|
).history
|
17
17
|
end
|
18
18
|
|
@@ -26,15 +26,15 @@ module Nano::AccountProxyHelper
|
|
26
26
|
|
27
27
|
def move(from:, to:)
|
28
28
|
account_move(
|
29
|
-
wallet:
|
30
|
-
source:
|
29
|
+
wallet: object_to_value(to),
|
30
|
+
source: object_to_value(from),
|
31
31
|
accounts: [address]
|
32
32
|
).moved == 1
|
33
33
|
end
|
34
34
|
|
35
35
|
def wallet_work_set(wallet:, work:)
|
36
36
|
work_set(
|
37
|
-
wallet:
|
37
|
+
wallet: object_to_value(wallet),
|
38
38
|
work: work
|
39
39
|
).success == ''
|
40
40
|
end
|
@@ -53,9 +53,9 @@ module Nano::AccountProxyHelper
|
|
53
53
|
end
|
54
54
|
alias blocks_pending pending_blocks
|
55
55
|
|
56
|
-
def remove(
|
56
|
+
def remove(*args)
|
57
57
|
account_remove(
|
58
|
-
|
58
|
+
pluck_argument(args, :wallet)
|
59
59
|
).removed == 1
|
60
60
|
end
|
61
61
|
|
@@ -65,7 +65,7 @@ module Nano::AccountProxyHelper
|
|
65
65
|
|
66
66
|
def representative_set(wallet:, representative:)
|
67
67
|
account_representative_set(
|
68
|
-
wallet:
|
68
|
+
wallet: object_to_value(wallet),
|
69
69
|
representative: representative
|
70
70
|
).set == 1
|
71
71
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
module Nano::
|
2
|
+
module Nano::AccountsHelper
|
3
3
|
include Nano::ApplicationHelper
|
4
4
|
|
5
5
|
def balances
|
@@ -25,8 +25,8 @@ module Nano::AccountsProxyHelper
|
|
25
25
|
|
26
26
|
def move(from:, to:)
|
27
27
|
account_move(
|
28
|
-
source:
|
29
|
-
wallet:
|
28
|
+
source: object_to_value(from),
|
29
|
+
wallet: object_to_value(to)
|
30
30
|
).moved == 1
|
31
31
|
end
|
32
32
|
|
@@ -2,19 +2,26 @@
|
|
2
2
|
module Nano::ApplicationHelper
|
3
3
|
private
|
4
4
|
|
5
|
-
def
|
6
|
-
|
5
|
+
def pluck_argument(args, key, arg_key = nil)
|
6
|
+
k = arg_key || key
|
7
|
+
arg = args.first
|
8
|
+
v = arg.is_a?(Hash) ? arg[key] : arg
|
9
|
+
{ k => object_to_value(v) }
|
7
10
|
end
|
8
11
|
|
9
|
-
def
|
10
|
-
|
12
|
+
def object_to_value(arg)
|
13
|
+
if arg.is_a?(Nano::Wallet)
|
14
|
+
arg.seed
|
15
|
+
elsif arg.is_a?(Nano::Account)
|
16
|
+
arg.address
|
17
|
+
elsif arg.is_a?(Nano::Accounts)
|
18
|
+
arg.addresses
|
19
|
+
else
|
20
|
+
arg
|
21
|
+
end
|
11
22
|
end
|
12
23
|
|
13
|
-
def
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
def accounts_addresses(accounts)
|
18
|
-
accounts.is_a?(Nano::Accounts) ? accounts.addresses : accounts
|
24
|
+
def inspect_prefix
|
25
|
+
"#<#{self.class}:#{format('0x00%x', object_id << 1)}"
|
19
26
|
end
|
20
27
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Nano::NodeHelper
|
3
|
+
include Nano::ApplicationHelper
|
4
|
+
|
5
|
+
def account_containing_block(*args)
|
6
|
+
block_account(pluck_argument(args, :hash)).account
|
7
|
+
end
|
8
|
+
|
9
|
+
def create_wallet
|
10
|
+
Nano::Wallet.new(wallet_create.wallet)
|
11
|
+
end
|
12
|
+
|
13
|
+
def knano_from_raw(*args)
|
14
|
+
krai_from_raw(pluck_argument(args, :amount)).amount
|
15
|
+
end
|
16
|
+
|
17
|
+
def knano_to_raw(*args)
|
18
|
+
krai_to_raw(pluck_argument(args, :amount)).amount
|
19
|
+
end
|
20
|
+
|
21
|
+
def mnano_from_raw(*args)
|
22
|
+
mrai_from_raw(pluck_argument(args, :amount)).amount
|
23
|
+
end
|
24
|
+
|
25
|
+
def mnano_to_raw(*args)
|
26
|
+
mrai_to_raw(pluck_argument(args, :amount)).amount
|
27
|
+
end
|
28
|
+
|
29
|
+
def nano_from_raw(*args)
|
30
|
+
rai_from_raw(pluck_argument(args, :amount)).amount
|
31
|
+
end
|
32
|
+
|
33
|
+
def nano_to_raw(*args)
|
34
|
+
rai_to_raw(pluck_argument(args, :amount)).amount
|
35
|
+
end
|
36
|
+
|
37
|
+
def num_frontiers
|
38
|
+
frontier_count['count']
|
39
|
+
end
|
40
|
+
|
41
|
+
def pending_exists?(*args)
|
42
|
+
pending_exists(pluck_argument(args, :hash)).exists == 1
|
43
|
+
end
|
44
|
+
|
45
|
+
def total_supply
|
46
|
+
available_supply.available
|
47
|
+
end
|
48
|
+
|
49
|
+
def work_valid?(work:, hash:)
|
50
|
+
work_validate(work: work, hash: hash).valid == 1
|
51
|
+
end
|
52
|
+
end
|
@@ -1,14 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
module Nano::
|
2
|
+
module Nano::WalletHelper
|
3
3
|
include Nano::ApplicationHelper
|
4
4
|
|
5
|
-
def account_work(
|
6
|
-
work_get(
|
7
|
-
account: account_address(opts_pluck(opts, :account))
|
8
|
-
).work
|
5
|
+
def account_work(*args)
|
6
|
+
work_get(pluck_argument(args, :account)).work
|
9
7
|
end
|
10
8
|
|
11
9
|
def accounts
|
10
|
+
return [] unless account_list.accounts.size.positive?
|
12
11
|
Nano::Accounts.new(account_list.accounts)
|
13
12
|
end
|
14
13
|
|
@@ -32,22 +31,20 @@ module Nano::WalletProxyHelper
|
|
32
31
|
payment_begin.account
|
33
32
|
end
|
34
33
|
|
35
|
-
def change_password(
|
34
|
+
def change_password(*args)
|
36
35
|
password_change(
|
37
|
-
|
36
|
+
pluck_argument(args, :new_password, :password)
|
38
37
|
).changed == 1
|
39
38
|
end
|
40
39
|
|
41
|
-
def change_seed(
|
40
|
+
def change_seed(*args)
|
42
41
|
wallet_change_seed(
|
43
|
-
|
42
|
+
pluck_argument(args, :new_seed, :seed)
|
44
43
|
).success == ''
|
45
44
|
end
|
46
45
|
|
47
|
-
def contains?(
|
48
|
-
wallet_contains(
|
49
|
-
account: account_address(opts_pluck(opts, :account))
|
50
|
-
).exists == 1
|
46
|
+
def contains?(*args)
|
47
|
+
wallet_contains(pluck_argument(args, :account)).exists == 1
|
51
48
|
end
|
52
49
|
|
53
50
|
def create_account(work: true)
|
@@ -62,10 +59,8 @@ module Nano::WalletProxyHelper
|
|
62
59
|
wallet_destroy
|
63
60
|
end
|
64
61
|
|
65
|
-
def enter_password(
|
66
|
-
password_enter(
|
67
|
-
password: opts_pluck(opts, :password)
|
68
|
-
).valid == 1
|
62
|
+
def enter_password(*args)
|
63
|
+
password_enter(pluck_argument(args, :password)).valid == 1
|
69
64
|
end
|
70
65
|
|
71
66
|
def export
|
@@ -86,16 +81,14 @@ module Nano::WalletProxyHelper
|
|
86
81
|
|
87
82
|
def move_accounts(to:, accounts:)
|
88
83
|
account_move(
|
89
|
-
wallet:
|
84
|
+
wallet: object_to_value(to),
|
90
85
|
source: seed,
|
91
|
-
accounts:
|
86
|
+
accounts: object_to_value(accounts)
|
92
87
|
).moved == 1
|
93
88
|
end
|
94
89
|
|
95
|
-
def password_valid?(
|
96
|
-
password_valid(
|
97
|
-
password: opts_pluck(opts, :password)
|
98
|
-
).valid == 1
|
90
|
+
def password_valid?(*args)
|
91
|
+
password_valid(pluck_argument(args, :password)).valid == 1
|
99
92
|
end
|
100
93
|
|
101
94
|
def pending_balance
|
@@ -123,44 +116,42 @@ module Nano::WalletProxyHelper
|
|
123
116
|
|
124
117
|
def receive_block(account:, block:)
|
125
118
|
receive(
|
126
|
-
account:
|
119
|
+
account: object_to_value(account),
|
127
120
|
block: block
|
128
121
|
).block
|
129
122
|
end
|
130
123
|
|
131
|
-
def remove_account(
|
132
|
-
account_remove(
|
133
|
-
account: account_address(opts_pluck(opts, :account))
|
134
|
-
).removed == 1
|
124
|
+
def remove_account(*args)
|
125
|
+
account_remove(pluck_argument(args, :account)).removed == 1
|
135
126
|
end
|
136
127
|
|
137
128
|
def representative
|
138
129
|
wallet_representative.representative
|
139
130
|
end
|
140
131
|
|
141
|
-
def republish(
|
142
|
-
wallet_republish(
|
132
|
+
def republish(*args)
|
133
|
+
wallet_republish(pluck_argument(args, :count)).blocks
|
143
134
|
end
|
144
135
|
|
145
136
|
def account_work_set(account:, work:)
|
146
137
|
work_set(
|
147
|
-
account:
|
138
|
+
account: object_to_value(account),
|
148
139
|
work: work
|
149
140
|
).success == ''
|
150
141
|
end
|
151
142
|
alias set_account_work account_work_set
|
152
143
|
|
153
|
-
def representative_set(
|
144
|
+
def representative_set(*args)
|
154
145
|
wallet_representative_set(
|
155
|
-
|
146
|
+
pluck_argument(args, :representative)
|
156
147
|
).set == 1
|
157
148
|
end
|
158
149
|
alias set_representative representative_set
|
159
150
|
|
160
151
|
def send_nano(from:, to:, amount:, work: nil)
|
161
152
|
send_currency(
|
162
|
-
source:
|
163
|
-
destination:
|
153
|
+
source: object_to_value(from),
|
154
|
+
destination: object_to_value(to),
|
164
155
|
amount: amount,
|
165
156
|
work: work
|
166
157
|
).block
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
class Nano::Account
|
3
3
|
include Nano::Proxy
|
4
|
-
include Nano::
|
4
|
+
include Nano::AccountHelper
|
5
5
|
|
6
|
-
|
6
|
+
attr_reader :address
|
7
7
|
|
8
8
|
def initialize(address = nil, opts = {})
|
9
9
|
unless address.is_a?(String)
|
@@ -31,7 +31,6 @@ class Nano::Account
|
|
31
31
|
proxy_method :delegators
|
32
32
|
proxy_method :delegators_count
|
33
33
|
proxy_method :frontiers, required: %i[count]
|
34
|
-
proxy_method :frontier_count
|
35
34
|
proxy_method :ledger,
|
36
35
|
required: %i[count],
|
37
36
|
optional: %i[representative weight pending sorting]
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
class Nano::Accounts
|
3
3
|
include Nano::Proxy
|
4
|
-
include Nano::
|
4
|
+
include Nano::AccountsHelper
|
5
5
|
|
6
|
-
|
6
|
+
attr_reader :addresses
|
7
7
|
|
8
8
|
def initialize(addresses = nil, opts = {})
|
9
9
|
unless addresses.is_a?(Array)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
class Nano::Node
|
3
3
|
include Nano::Proxy
|
4
|
-
include Nano::
|
4
|
+
include Nano::NodeHelper
|
5
5
|
|
6
6
|
proxy_method :available_supply
|
7
7
|
proxy_method :block, required: %i[hash]
|
@@ -17,6 +17,7 @@ class Nano::Node
|
|
17
17
|
proxy_method :bootstrap_any
|
18
18
|
proxy_method :chain, required: %i[block count]
|
19
19
|
proxy_method :deterministic_key, required: %i[seed index]
|
20
|
+
proxy_method :frontier_count
|
20
21
|
proxy_method :history, required: %i[hash count]
|
21
22
|
proxy_method :keepalive, required: %i[address port]
|
22
23
|
proxy_method :key_create
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
class Nano::Wallet
|
3
3
|
include Nano::Proxy
|
4
|
-
include Nano::
|
4
|
+
include Nano::WalletHelper
|
5
5
|
|
6
|
-
|
6
|
+
attr_reader :seed
|
7
7
|
|
8
8
|
def initialize(seed = nil, opts = {})
|
9
9
|
unless seed.is_a?(String)
|
@@ -15,6 +15,11 @@ class Nano::Wallet
|
|
15
15
|
super(opts)
|
16
16
|
end
|
17
17
|
|
18
|
+
# Hide secret seed on object inspection
|
19
|
+
def inspect
|
20
|
+
"#{inspect_prefix}, @client=#{@client.inspect}>"
|
21
|
+
end
|
22
|
+
|
18
23
|
proxy_params wallet: :seed
|
19
24
|
|
20
25
|
proxy_method :account_create, optional: %i[work]
|
data/lib/nano_rpc/proxy.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module Nano::Proxy
|
3
|
+
include Nano::ApplicationHelper
|
4
|
+
|
3
5
|
attr_accessor :client
|
4
6
|
|
5
7
|
def initialize(opts = {})
|
6
8
|
@client = opts[:client] || Nano.client
|
9
|
+
self.class.proxy_methods.each { |m| define_proxy_method(m) }
|
7
10
|
end
|
8
11
|
|
9
12
|
def self.included(base)
|
@@ -24,42 +27,33 @@ module Nano::Proxy
|
|
24
27
|
def proxy_methods
|
25
28
|
proxy_method_def.keys.sort
|
26
29
|
end
|
27
|
-
|
28
|
-
def methods
|
29
|
-
(super + proxy_methods).sort
|
30
|
-
end
|
31
30
|
end
|
32
31
|
|
33
32
|
def proxy_methods
|
34
33
|
self.class.proxy_methods
|
35
34
|
end
|
36
35
|
|
37
|
-
def methods
|
38
|
-
(super + proxy_methods).sort
|
39
|
-
end
|
40
|
-
|
41
36
|
private
|
42
37
|
|
43
|
-
def method_missing(m, *args, &_block)
|
44
|
-
return super unless methods.include?(m)
|
45
|
-
define_proxy_method(m)
|
46
|
-
send(m, args.first)
|
47
|
-
end
|
48
|
-
|
49
|
-
def respond_to_missing?(m, include_private = false)
|
50
|
-
methods.include?(m) || super
|
51
|
-
end
|
52
|
-
|
53
38
|
def define_proxy_method(m)
|
54
|
-
self.class.send(:define_method, method_alias(m)) do |
|
39
|
+
self.class.send(:define_method, method_alias(m)) do |*args|
|
55
40
|
@m = m
|
56
|
-
@call_args =
|
41
|
+
@call_args = hashify_args(args)
|
57
42
|
|
58
43
|
validate_params!
|
59
44
|
execute_call
|
60
45
|
end
|
61
46
|
end
|
62
47
|
|
48
|
+
def hashify_args(args)
|
49
|
+
if args.first.is_a?(Hash)
|
50
|
+
args.first
|
51
|
+
else
|
52
|
+
(args[1].is_a?(Hash) ? args[1] : {})
|
53
|
+
.merge!(pluck_argument(args, required_params.first))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
63
57
|
def execute_call
|
64
58
|
expose_nested_data(@client.call(@m, @call_args))
|
65
59
|
end
|
data/lib/nano_rpc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nano_rpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Craig-Kuhn (JCK)
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -154,11 +154,11 @@ files:
|
|
154
154
|
- lib/nano_rpc.rb
|
155
155
|
- lib/nano_rpc/client.rb
|
156
156
|
- lib/nano_rpc/errors.rb
|
157
|
-
- lib/nano_rpc/helpers/
|
158
|
-
- lib/nano_rpc/helpers/
|
157
|
+
- lib/nano_rpc/helpers/account_helper.rb
|
158
|
+
- lib/nano_rpc/helpers/accounts_helper.rb
|
159
159
|
- lib/nano_rpc/helpers/application_helper.rb
|
160
|
-
- lib/nano_rpc/helpers/
|
161
|
-
- lib/nano_rpc/helpers/
|
160
|
+
- lib/nano_rpc/helpers/node_helper.rb
|
161
|
+
- lib/nano_rpc/helpers/wallet_helper.rb
|
162
162
|
- lib/nano_rpc/proxies/account.rb
|
163
163
|
- lib/nano_rpc/proxies/accounts.rb
|
164
164
|
- lib/nano_rpc/proxies/node.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Nano::NodeProxyHelper
|
3
|
-
include Nano::ApplicationHelper
|
4
|
-
|
5
|
-
def account_containing_block(opts)
|
6
|
-
block_account(opts_hash(opts)).account
|
7
|
-
end
|
8
|
-
|
9
|
-
def available_nano
|
10
|
-
available_supply.available
|
11
|
-
end
|
12
|
-
|
13
|
-
def create_wallet
|
14
|
-
Nano::Wallet.new(wallet_create.wallet)
|
15
|
-
end
|
16
|
-
|
17
|
-
def pending_exists?(opts)
|
18
|
-
pending_exists(opts_hash(opts)).exists == 1
|
19
|
-
end
|
20
|
-
|
21
|
-
def work_valid?(work:, hash:)
|
22
|
-
work_validate(work: work, hash: hash).valid == 1
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def opts_hash(opts)
|
28
|
-
{ hash: opts_pluck(opts, :hash) }
|
29
|
-
end
|
30
|
-
end
|