glueby 0.3.0 → 0.4.0
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/.github/workflows/ruby.yml +35 -0
- data/Gemfile +1 -0
- data/README.md +111 -6
- data/glueby.gemspec +1 -1
- data/lib/generators/glueby/contract/reissuable_token_generator.rb +26 -0
- data/lib/generators/glueby/contract/templates/key_table.rb.erb +3 -3
- data/lib/generators/glueby/contract/templates/reissuable_token_table.rb.erb +10 -0
- data/lib/generators/glueby/contract/templates/system_information_table.rb.erb +2 -2
- data/lib/generators/glueby/contract/templates/timestamp_table.rb.erb +1 -1
- data/lib/generators/glueby/contract/templates/utxo_table.rb.erb +2 -2
- data/lib/generators/glueby/contract/templates/wallet_table.rb.erb +2 -2
- data/lib/glueby.rb +25 -0
- data/lib/glueby/configuration.rb +62 -0
- data/lib/glueby/contract.rb +2 -2
- data/lib/glueby/contract/active_record.rb +1 -0
- data/lib/glueby/contract/active_record/reissuable_token.rb +26 -0
- data/lib/glueby/contract/fee_estimator.rb +38 -0
- data/lib/glueby/contract/payment.rb +4 -4
- data/lib/glueby/contract/timestamp.rb +6 -6
- data/lib/glueby/contract/token.rb +69 -22
- data/lib/glueby/contract/tx_builder.rb +22 -19
- data/lib/glueby/fee_provider.rb +73 -0
- data/lib/glueby/fee_provider/tasks.rb +136 -0
- data/lib/glueby/generator/migrate_generator.rb +1 -1
- data/lib/glueby/internal/wallet.rb +28 -4
- data/lib/glueby/internal/wallet/abstract_wallet_adapter.rb +18 -3
- data/lib/glueby/internal/wallet/active_record/wallet.rb +15 -5
- data/lib/glueby/internal/wallet/active_record_wallet_adapter.rb +15 -5
- data/lib/glueby/internal/wallet/errors.rb +3 -0
- data/lib/glueby/internal/wallet/tapyrus_core_wallet_adapter.rb +36 -11
- data/lib/glueby/version.rb +1 -1
- data/lib/glueby/wallet.rb +3 -2
- data/lib/tasks/glueby/contract/timestamp.rake +1 -1
- data/lib/tasks/glueby/fee_provider.rake +13 -0
- metadata +16 -9
- data/.travis.yml +0 -7
- data/lib/glueby/contract/fee_provider.rb +0 -21
data/lib/glueby/wallet.rb
CHANGED
@@ -13,6 +13,7 @@ module Glueby
|
|
13
13
|
new(Glueby::Internal::Wallet.load(wallet_id))
|
14
14
|
end
|
15
15
|
|
16
|
+
# @deprecated - Use Glueby.configure instead
|
16
17
|
def configure(config)
|
17
18
|
case config[:adapter]
|
18
19
|
when 'core'
|
@@ -32,8 +33,8 @@ module Glueby
|
|
32
33
|
end
|
33
34
|
|
34
35
|
# @return [HashMap] hash of balances which key is color_id or empty string, and value is amount
|
35
|
-
def balances
|
36
|
-
utxos = @internal_wallet.list_unspent
|
36
|
+
def balances(only_finalized = true)
|
37
|
+
utxos = @internal_wallet.list_unspent(only_finalized)
|
37
38
|
utxos.inject({}) do |balances, output|
|
38
39
|
key = output[:color_id] || ''
|
39
40
|
balances[key] ||= 0
|
@@ -12,7 +12,7 @@ module Glueby
|
|
12
12
|
begin
|
13
13
|
::ActiveRecord::Base.transaction do
|
14
14
|
wallet = Glueby::Wallet.load(t.wallet_id)
|
15
|
-
tx = create_tx(wallet, t.prefix, t.content_hash, Glueby::Contract::
|
15
|
+
tx = create_tx(wallet, t.prefix, t.content_hash, Glueby::Contract::FixedFeeEstimator.new)
|
16
16
|
t.update(txid: tx.txid, status: :unconfirmed)
|
17
17
|
|
18
18
|
wallet.internal_wallet.broadcast(tx)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
namespace :glueby do
|
2
|
+
namespace :fee_provider do
|
3
|
+
desc 'Manage the UTXO pool in Glueby::FeeProvider. Creates outputs for paying fee if the outputs is less than configured pool size by :utxo_pool_size'
|
4
|
+
task :manage_utxo_pool, [] => [:environment] do |_, _|
|
5
|
+
Glueby::FeeProvider::Tasks.new.manage_utxo_pool
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'Show the status of the UTXO pool in Glueby::FeeProvider'
|
9
|
+
task :status, [] => [:environment] do |_, _|
|
10
|
+
Glueby::FeeProvider::Tasks.new.status
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glueby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- azuchi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tapyrus
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.
|
19
|
+
version: 0.2.9
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.2.
|
26
|
+
version: 0.2.9
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,11 +59,11 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- ".github/workflows/ruby.yml"
|
62
63
|
- ".gitignore"
|
63
64
|
- ".rspec"
|
64
65
|
- ".ruby-gemset"
|
65
66
|
- ".ruby-version"
|
66
|
-
- ".travis.yml"
|
67
67
|
- CODE_OF_CONDUCT.md
|
68
68
|
- Gemfile
|
69
69
|
- LICENSE.txt
|
@@ -74,8 +74,10 @@ files:
|
|
74
74
|
- glueby.gemspec
|
75
75
|
- lib/generators/glueby/contract/block_syncer_generator.rb
|
76
76
|
- lib/generators/glueby/contract/initializer_generator.rb
|
77
|
+
- lib/generators/glueby/contract/reissuable_token_generator.rb
|
77
78
|
- lib/generators/glueby/contract/templates/initializer.rb.erb
|
78
79
|
- lib/generators/glueby/contract/templates/key_table.rb.erb
|
80
|
+
- lib/generators/glueby/contract/templates/reissuable_token_table.rb.erb
|
79
81
|
- lib/generators/glueby/contract/templates/system_information_table.rb.erb
|
80
82
|
- lib/generators/glueby/contract/templates/timestamp_table.rb.erb
|
81
83
|
- lib/generators/glueby/contract/templates/utxo_table.rb.erb
|
@@ -85,15 +87,19 @@ files:
|
|
85
87
|
- lib/glueby.rb
|
86
88
|
- lib/glueby/active_record.rb
|
87
89
|
- lib/glueby/active_record/system_information.rb
|
90
|
+
- lib/glueby/configuration.rb
|
88
91
|
- lib/glueby/contract.rb
|
89
92
|
- lib/glueby/contract/active_record.rb
|
93
|
+
- lib/glueby/contract/active_record/reissuable_token.rb
|
90
94
|
- lib/glueby/contract/active_record/timestamp.rb
|
91
95
|
- lib/glueby/contract/errors.rb
|
92
|
-
- lib/glueby/contract/
|
96
|
+
- lib/glueby/contract/fee_estimator.rb
|
93
97
|
- lib/glueby/contract/payment.rb
|
94
98
|
- lib/glueby/contract/timestamp.rb
|
95
99
|
- lib/glueby/contract/token.rb
|
96
100
|
- lib/glueby/contract/tx_builder.rb
|
101
|
+
- lib/glueby/fee_provider.rb
|
102
|
+
- lib/glueby/fee_provider/tasks.rb
|
97
103
|
- lib/glueby/generator.rb
|
98
104
|
- lib/glueby/generator/migrate_generator.rb
|
99
105
|
- lib/glueby/internal.rb
|
@@ -113,6 +119,7 @@ files:
|
|
113
119
|
- lib/tasks/glueby/contract/block_syncer.rake
|
114
120
|
- lib/tasks/glueby/contract/timestamp.rake
|
115
121
|
- lib/tasks/glueby/contract/wallet_adapter.rake
|
122
|
+
- lib/tasks/glueby/fee_provider.rake
|
116
123
|
homepage: https://github.com/chaintope/glueby
|
117
124
|
licenses:
|
118
125
|
- MIT
|
@@ -120,7 +127,7 @@ metadata:
|
|
120
127
|
homepage_uri: https://github.com/chaintope/glueby
|
121
128
|
source_code_uri: https://github.com/chaintope/glueby
|
122
129
|
changelog_uri: https://github.com/chaintope/glueby
|
123
|
-
post_install_message:
|
130
|
+
post_install_message:
|
124
131
|
rdoc_options: []
|
125
132
|
require_paths:
|
126
133
|
- lib
|
@@ -136,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
143
|
version: '0'
|
137
144
|
requirements: []
|
138
145
|
rubygems_version: 3.2.3
|
139
|
-
signing_key:
|
146
|
+
signing_key:
|
140
147
|
specification_version: 4
|
141
148
|
summary: A Ruby library of smart contracts that can be used on Tapyrus.
|
142
149
|
test_files: []
|
data/.travis.yml
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Glueby
|
2
|
-
module Contract
|
3
|
-
module FeeProvider
|
4
|
-
# @return fee by tapyrus(not TPC).
|
5
|
-
def fee(_tx); end
|
6
|
-
end
|
7
|
-
|
8
|
-
class FixedFeeProvider
|
9
|
-
include FeeProvider
|
10
|
-
|
11
|
-
def initialize(fixed_fee: 10_000)
|
12
|
-
@fixed_fee = fixed_fee
|
13
|
-
end
|
14
|
-
|
15
|
-
# @return fee by tapyrus(not TPC).
|
16
|
-
def fee(_tx)
|
17
|
-
@fixed_fee
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|