peatio-nexbit 0.1.5 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13ff7fb6158882cd96c628152920a9ce24568d3bf889e6fc1c3942800972c78c
4
- data.tar.gz: 8ad637e6d4228a8d60d483ee73dcc116a29b030f06810db5ef232f9b9b13072a
3
+ metadata.gz: 3a0223d5ede5f763556eabade05f9bbd86ab52e7868d8f4cf7a10b97888b13e9
4
+ data.tar.gz: b0ac773ef860df7178db7fcbdb7517cdd085f79bfaee95577833793449c68ba1
5
5
  SHA512:
6
- metadata.gz: 2bb54d4ba7be7b7d058ccdfbeb0bc7628708055c078263df987aca25d1a36e5863950fcf35dd41fbdc91b5a03180b70421cf68c095f1df61a7e212bbe2aa16a0
7
- data.tar.gz: 16d31ceab3543fd72b0b9577105dc3b1120d6d3264cdfde31b34f2ce87be562702a9980baef98dff433598a4ab6087b3dc795f1cd1c51baebeae6068a9cec797
6
+ metadata.gz: 7cdbd2af396fc84e9cd2cf137e281a6a9f6da3c7bb15c67fdbaffe9073e57264fb1dbcf73bb49b920a8477713e23b906adaba4df773499392043a4b41f400c01
7
+ data.tar.gz: ac9965e65f697c27bc0d26fbfdc22d615eb6d934e70717136d8cbac76de449c7b300e570dbaee1c0ffc8dea85e4bb2ce066d094800761dbee2e08cbaec9703b6
data/.gitignore CHANGED
@@ -9,4 +9,3 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
- *.gem
@@ -1,8 +1,6 @@
1
1
  ---
2
- sudo: false
3
2
  language: ruby
4
3
  cache: bundler
5
4
  rvm:
6
- - 2.5.3
7
- - 2.6.2
8
- before_install: gem install bundler -v 1.16.3
5
+ - 2.6.5
6
+ before_install: gem install bundler -v 2.1.4
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at tanvirtex@gmail.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [https://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: https://contributor-covenant.org
74
+ [version]: https://contributor-covenant.org/version/1/4/
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in peatio-cpuchain.gemspec
3
+ # Specify your gem's dependencies in peatio-nexbit.gemspec
6
4
  gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "rspec", "~> 3.0"
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019 Tanvir Rahaman aka BitBD
3
+ Copyright (c) 2020 Md Tanvir Rahaman
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Peatio::Nexbit
2
2
 
3
- Peatio nexbit plugin for nPro [peatio] stack
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/peatio/nexbit`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
4
6
 
5
7
  ## Installation
6
8
 
@@ -12,7 +14,7 @@ gem 'peatio-nexbit'
12
14
 
13
15
  And then execute:
14
16
 
15
- $ bundle
17
+ $ bundle install
16
18
 
17
19
  Or install it yourself as:
18
20
 
@@ -20,42 +22,23 @@ Or install it yourself as:
20
22
 
21
23
  ## Usage
22
24
 
23
- For Peatio CPUchain plugin integration you need to do the following steps:
24
-
25
- ### Image Build.
26
-
27
- 1. Add peatio-nexbit gem into your Gemfile.plugin
28
- ```ruby
29
- gem 'peatio-nexbit', '~> 0.1.0'
30
- ```
31
-
32
- 2. Run `bundle install` for updating Gemfile.lock
33
-
34
- 3. Build custom Peatio
35
-
36
- 4. Push your image using `docker push`
37
-
38
- 5. Update your deployment to use image with peatio-nexbit gem
39
-
40
- ### Peatio Configuration.
25
+ TODO: Write usage instructions here
41
26
 
42
- 1. Create Nexbit Blockchain [config example](../config/blockchains.yml).
43
- * No additional steps are needed
27
+ ## Development
44
28
 
45
- 2. Create Nexbit Currency [config example](../config/currencies.yml).
46
- * No additional steps are needed
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
47
30
 
48
- 3. Create Nexbit Wallets [config example](../config/wallets.yml)(deposit and hot wallets are required).
49
- * No additional steps are needed
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
50
32
 
33
+ ## Contributing
51
34
 
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/peatio-nexbit. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/peatio-nexbit/blob/master/CODE_OF_CONDUCT.md).
52
36
 
53
37
 
54
38
  ## License
55
39
 
56
40
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
57
41
 
58
- ## Consulting
42
+ ## Code of Conduct
59
43
 
60
- You can contact Openware for finding certified vendors:
61
- [platform.nexbit.io](https://platform.nexbit.io)
44
+ Everyone interacting in the Peatio::Nexbit project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/peatio-nexbit/blob/master/CODE_OF_CONDUCT.md).
@@ -1,5 +1,5 @@
1
1
  module Peatio
2
2
  module Nexbit
3
- VERSION = "0.1.5".freeze
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
@@ -1,22 +1,18 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "peatio/nexbit/version"
1
+ require_relative 'lib/peatio/nexbit/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = "peatio-nexbit"
8
5
  spec.version = Peatio::Nexbit::VERSION
9
- spec.authors = ["BitBD"]
10
- spec.email = ["developers@nexbit.io"]
6
+ spec.authors = ["Md Tanvir Rahaman"]
7
+ spec.email = ["tanvirtex@gmail.com"]
11
8
 
12
9
  spec.summary = %q{Gem for extending Peatio plugable system with Nexbit implementation.}
13
- spec.description = %q{Nexbit Peatio gem which implements Peatio::Blockchain::Abstract & Peatio::Wallet::Abstract to make nexbit easy integration in peatio platform}
10
+ spec.description = %q{Peatio-nexbit gem make nexbit easy to integrate in peatio platform}
14
11
  spec.homepage = "https://nexbit.io/"
15
12
  spec.license = "MIT"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
16
14
 
17
- # Specify which files should be added to the gem when it is released.
18
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
- if spec.respond_to?(:metadata)
15
+ if spec.respond_to?(:metadata)
20
16
 
21
17
  spec.metadata["homepage_uri"] = spec.homepage
22
18
  spec.metadata["source_code_uri"] = "https://github.com/ndexnetwork/peatio-ndex"
@@ -36,16 +32,17 @@ Gem::Specification.new do |spec|
36
32
 
37
33
  spec.add_dependency "activesupport", "~> 5.2.3"
38
34
  spec.add_dependency "better-faraday", "~> 1.0.5"
39
- spec.add_dependency "faraday", "~> 0.15.4"
35
+ spec.add_dependency "faraday", "~> 0.17"
40
36
  spec.add_dependency "memoist", "~> 0.16.0"
41
- spec.add_dependency "peatio", "~> 0.6.3"
42
-
37
+ spec.add_dependency "peatio", ">= 0.6.3"
38
+ spec.add_dependency 'net-http-persistent', '~> 3.0.1'
43
39
 
44
- spec.add_development_dependency "bundler", "~> 1.17"
40
+ spec.add_development_dependency "bundler", "~> 1.17.0"
45
41
  spec.add_development_dependency "mocha", "~> 1.8"
46
42
  spec.add_development_dependency "pry-byebug"
47
- spec.add_development_dependency "net-http-persistent", "~> 3.0.1"
48
- spec.add_development_dependency "rake", "~> 10.0"
43
+ spec.add_development_dependency "rake", "~> 13.0"
49
44
  spec.add_development_dependency "rspec", "~> 3.0"
50
45
  spec.add_development_dependency "webmock", "~> 3.5"
46
+
47
+
51
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peatio-nexbit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - BitBD
7
+ - Md Tanvir Rahaman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-04 00:00:00.000000000 Z
11
+ date: 2020-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.15.4
47
+ version: '0.17'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.15.4
54
+ version: '0.17'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: memoist
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,30 +70,44 @@ dependencies:
70
70
  name: peatio
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.6.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.6.3
83
+ - !ruby/object:Gem::Dependency
84
+ name: net-http-persistent
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.1
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.1
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: bundler
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '1.17'
103
+ version: 1.17.0
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '1.17'
110
+ version: 1.17.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: mocha
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -122,34 +136,20 @@ dependencies:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: net-http-persistent
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 3.0.1
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 3.0.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rake
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '10.0'
145
+ version: '13.0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '10.0'
152
+ version: '13.0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rspec
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -178,10 +178,9 @@ dependencies:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '3.5'
181
- description: Nexbit Peatio gem which implements Peatio::Blockchain::Abstract & Peatio::Wallet::Abstract
182
- to make nexbit easy integration in peatio platform
181
+ description: Peatio-nexbit gem make nexbit easy to integrate in peatio platform
183
182
  email:
184
- - developers@nexbit.io
183
+ - tanvirtex@gmail.com
185
184
  executables: []
186
185
  extensions: []
187
186
  extra_rdoc_files: []
@@ -189,25 +188,15 @@ files:
189
188
  - ".gitignore"
190
189
  - ".rspec"
191
190
  - ".travis.yml"
191
+ - CODE_OF_CONDUCT.md
192
192
  - Gemfile
193
- - Gemfile.lock
194
193
  - LICENSE.txt
195
194
  - README.md
196
195
  - Rakefile
197
196
  - bin/console
198
197
  - bin/setup
199
- - config/blockchains.yml
200
- - config/currencies.yml
201
- - config/wallets.yml
202
- - docs/integration.md
203
- - docs/json-rpc.md
204
198
  - lib/peatio/nexbit.rb
205
- - lib/peatio/nexbit/blockchain.rb
206
- - lib/peatio/nexbit/client.rb
207
- - lib/peatio/nexbit/hooks.rb
208
- - lib/peatio/nexbit/railtie.rb
209
199
  - lib/peatio/nexbit/version.rb
210
- - lib/peatio/nexbit/wallet.rb
211
200
  - peatio-nexbit.gemspec
212
201
  homepage: https://nexbit.io/
213
202
  licenses:
@@ -224,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
224
213
  requirements:
225
214
  - - ">="
226
215
  - !ruby/object:Gem::Version
227
- version: '0'
216
+ version: 2.3.0
228
217
  required_rubygems_version: !ruby/object:Gem::Requirement
229
218
  requirements:
230
219
  - - ">="
@@ -1,112 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- peatio-nexbit (0.1.4)
5
- activesupport (~> 5.2.3)
6
- better-faraday (~> 1.0.5)
7
- faraday (~> 0.15.4)
8
- memoist (~> 0.16.0)
9
- peatio (~> 0.6.3)
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- activemodel (5.2.4.2)
15
- activesupport (= 5.2.4.2)
16
- activesupport (5.2.4.2)
17
- concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (>= 0.7, < 2)
19
- minitest (~> 5.1)
20
- tzinfo (~> 1.1)
21
- addressable (2.7.0)
22
- public_suffix (>= 2.0.2, < 5.0)
23
- amq-protocol (2.3.0)
24
- amqp (1.8.0)
25
- amq-protocol (>= 2.2.0)
26
- eventmachine
27
- better-faraday (1.0.8)
28
- activesupport (>= 4.0, < 6.0)
29
- faraday (~> 0.12)
30
- bunny (2.14.4)
31
- amq-protocol (~> 2.3, >= 2.3.0)
32
- byebug (11.1.1)
33
- clamp (1.3.1)
34
- coderay (1.1.2)
35
- concurrent-ruby (1.1.6)
36
- connection_pool (2.2.2)
37
- crack (0.4.3)
38
- safe_yaml (~> 1.0.0)
39
- diff-lcs (1.3)
40
- em-websocket (0.5.1)
41
- eventmachine (>= 0.12.9)
42
- http_parser.rb (~> 0.6.0)
43
- eventmachine (1.2.7)
44
- faraday (0.15.4)
45
- multipart-post (>= 1.2, < 3)
46
- hashdiff (1.0.1)
47
- http_parser.rb (0.6.0)
48
- i18n (1.8.2)
49
- concurrent-ruby (~> 1.0)
50
- jwt (2.2.1)
51
- memoist (0.16.2)
52
- method_source (1.0.0)
53
- minitest (5.14.0)
54
- mocha (1.11.2)
55
- multipart-post (2.1.1)
56
- mysql2 (0.5.3)
57
- net-http-persistent (3.0.1)
58
- connection_pool (~> 2.2)
59
- peatio (0.6.3)
60
- activemodel (> 5.2, <= 6.0.0)
61
- amqp
62
- bunny
63
- clamp
64
- em-websocket
65
- eventmachine
66
- jwt
67
- mysql2
68
- pry (0.13.0)
69
- coderay (~> 1.1)
70
- method_source (~> 1.0)
71
- pry-byebug (3.9.0)
72
- byebug (~> 11.0)
73
- pry (~> 0.13.0)
74
- public_suffix (4.0.3)
75
- rake (10.5.0)
76
- rspec (3.9.0)
77
- rspec-core (~> 3.9.0)
78
- rspec-expectations (~> 3.9.0)
79
- rspec-mocks (~> 3.9.0)
80
- rspec-core (3.9.1)
81
- rspec-support (~> 3.9.1)
82
- rspec-expectations (3.9.1)
83
- diff-lcs (>= 1.2.0, < 2.0)
84
- rspec-support (~> 3.9.0)
85
- rspec-mocks (3.9.1)
86
- diff-lcs (>= 1.2.0, < 2.0)
87
- rspec-support (~> 3.9.0)
88
- rspec-support (3.9.2)
89
- safe_yaml (1.0.5)
90
- thread_safe (0.3.6)
91
- tzinfo (1.2.7)
92
- thread_safe (~> 0.1)
93
- webmock (3.8.3)
94
- addressable (>= 2.3.6)
95
- crack (>= 0.3.2)
96
- hashdiff (>= 0.4.0, < 2.0.0)
97
-
98
- PLATFORMS
99
- ruby
100
-
101
- DEPENDENCIES
102
- bundler (~> 1.17)
103
- mocha (~> 1.8)
104
- net-http-persistent (~> 3.0.1)
105
- peatio-nexbit!
106
- pry-byebug
107
- rake (~> 10.0)
108
- rspec (~> 3.0)
109
- webmock (~> 3.5)
110
-
111
- BUNDLED WITH
112
- 1.17.2
@@ -1,10 +0,0 @@
1
- - key: nbc-mainnet
2
- name: Nexbit Mainnet
3
- client: nexbitd # API client name.
4
- server: http://user:password@127.0.0.1:13519 # Public Nexbit node endpoint.
5
- height: 1200 # Initial block number from which sync will be started.
6
- min_confirmations: 6 # Minimal confirmations needed for withdraw and deposit confirmation.
7
- explorer:
8
- address: https://explorer.nexbit.io/address/#{address}
9
- transaction: https://explorer.nexbit.io/tx/#{txid}
10
- status: active
@@ -1,18 +0,0 @@
1
- - id: nbc
2
- name: Nexbit
3
- blockchain_key: nbc-mainnet
4
- symbol: 'N'
5
- type: coin
6
- precision: 8
7
- base_factor: 100_000_000
8
- enabled: true
9
- # Deposits with less amount are skipped during blockchain synchronization.
10
- # We advise to set value 10 times bigger than the network fee to prevent losses.
11
- min_deposit_amount: 0.0003
12
- min_collection_amount: 0.0003
13
- withdraw_limit_24h: 0.5
14
- withdraw_limit_72h: 1.2
15
- deposit_fee: 0
16
- withdraw_fee: 0
17
- position: 5
18
- options: {}
@@ -1,44 +0,0 @@
1
- - name: Nexbit Deposit Wallet
2
- blockchain_key: nbc-mainnet
3
- currency_id: nbc
4
- # Address where deposits will be collected to.
5
- address: 'NyWkTPkNRdpTDSfPw7gxUt9cEaC5PSsP3Y' # IMPORTANT: Always wrap this value in quotes!
6
- kind: deposit # Wallet kind (deposit, hot, warm, cold or fee).
7
- nsig: 1 # Number of signatures required for performing withdraw.
8
- max_balance: 0.0
9
- status: active
10
- gateway: nexbitd # Gateway client name.
11
- settings:
12
- #
13
- # Nexbitd gateway client settings.
14
- uri: http://user:password@127.0.0.1:13519
15
-
16
- - name: Nexbit Hot Wallet
17
- blockchain_key: nbc-mainnet
18
- currency_id: nbc
19
- # Address where deposits will be collected to.
20
- address: 'NyWkTPkNRdpTDSfPw7gxUt9cEaC5PSsP3Y' # IMPORTANT: Always wrap this value in quotes!
21
- kind: hot # Wallet kind (deposit, hot, warm, cold or fee).
22
- nsig: 1 # Number of signatures required for performing withdraw.
23
- max_balance: 5.0
24
- status: active
25
- gateway: nexbitd # Gateway client name.
26
- settings:
27
- #
28
- # Nexbitd gateway client settings.
29
- uri: http://user:password@127.0.0.1:13519
30
-
31
- - name: Nexbit Warm Wallet
32
- blockchain_key: nbc-mainnet
33
- currency_id: nbc
34
- # Address where deposits will be collected to.
35
- address: 'NyWkTPkNRdpTDSfPw7gxUt9cEaC5PSsP3Y' # IMPORTANT: Always wrap this value in quotes!
36
- kind: warm # Wallet kind (deposit, hot, warm, cold or fee).
37
- nsig: 1 # Number of signatures required for performing withdraw.
38
- max_balance: 50.0
39
- status: active
40
- gateway: nexbitd # Gateway client name.
41
- settings:
42
- #
43
- # Nexbitd gateway client settings.
44
- uri: http://user:password@127.0.0.1:13519
@@ -1,29 +0,0 @@
1
- # Integration.
2
-
3
- For Peatio Nexbit plugin integration you need to do the following steps:
4
-
5
- ## Image Build.
6
-
7
- 1. Add peatio-nexbit gem into your Gemfile.plugin
8
- ```ruby
9
- gem 'peatio-nexbit', '~> 0.1.0'
10
- ```
11
-
12
- 2. Run `bundle install` for updating Gemfile.lock
13
-
14
- 3. Build custom Peatio
15
-
16
- 4. Push your image using `docker push`
17
-
18
- 5. Update your deployment to use image with peatio-nexbit gem
19
-
20
- ## Peatio Configuration.
21
-
22
- 1. Create CPUchain Blockchain [config example](../config/blockchains.yml).
23
- * No additional steps are needed
24
-
25
- 2. Create CPUchain Currency [config example](../config/currencies.yml).
26
- * No additional steps are needed
27
-
28
- 3. Create CPUchain Wallets [config example](../config/wallets.yml)(deposit and hot wallets are required).
29
- * No additional steps are needed
@@ -1,29 +0,0 @@
1
- # JSON RPC
2
-
3
- The next list of JSON RPC calls where used for plugin development.
4
- For response examples see spec/resources:
5
-
6
- * getbalance
7
-
8
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519`
9
- * getblock
10
-
11
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["5a471d4fd13d8bc3351e4d3a618fa55993326014b925346d8e9272e271e97c4e", 2] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519`
12
- * getblockcount
13
-
14
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519`
15
- * getblockhash
16
-
17
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockhash", "params": [40500] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519 `
18
- * getnewaddress
19
-
20
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": [] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519 `
21
- * listaddressgroupings
22
-
23
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listaddressgroupings", "params": [] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519`
24
- * sendtoaddress
25
-
26
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendtoaddress", "params": ["NRnrwkUBQ2E4ZJ3bj8jvn4Nwx4nJ2U7wXF", 0.11] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519`
27
- * methodnotfound
28
-
29
- `curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "methodnotfound", "params": [] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:13519`
@@ -1,85 +0,0 @@
1
-
2
- module Peatio
3
- module Nexbit
4
- # TODO: Processing of unconfirmed transactions from mempool isn't supported now.
5
- class Blockchain < Peatio::Blockchain::Abstract
6
-
7
- DEFAULT_FEATURES = {case_sensitive: true, cash_addr_format: false}.freeze
8
-
9
- def initialize(custom_features = {})
10
- @features = DEFAULT_FEATURES.merge(custom_features).slice(*SUPPORTED_FEATURES)
11
- @settings = {}
12
- end
13
-
14
- def configure(settings = {})
15
- # Clean client state during configure.
16
- @client = nil
17
- @settings.merge!(settings.slice(*SUPPORTED_SETTINGS))
18
- end
19
-
20
- def fetch_block!(block_number)
21
- block_hash = client.json_rpc(:getblockhash, [block_number])
22
-
23
- client.json_rpc(:getblock, [block_hash, 2])
24
- .fetch('tx').each_with_object([]) do |tx, txs_array|
25
- txs = build_transaction(tx).map do |ntx|
26
- Peatio::Transaction.new(ntx.merge(block_number: block_number))
27
- end
28
- txs_array.append(*txs)
29
- end.yield_self { |txs_array| Peatio::Block.new(block_number, txs_array) }
30
- rescue Client::Error => e
31
- raise Peatio::Blockchain::ClientError, e
32
- end
33
-
34
- def latest_block_number
35
- client.json_rpc(:getblockcount)
36
- rescue Client::Error => e
37
- raise Peatio::Blockchain::ClientError, e
38
- end
39
-
40
- def load_balance_of_address!(address, _currency_id)
41
- address_with_balance = client.json_rpc(:listaddressgroupings)
42
- .flatten(1)
43
- .find { |addr| addr[0] == address }
44
-
45
- if address_with_balance.blank?
46
- raise Peatio::Blockchain::UnavailableAddressBalanceError, address
47
- end
48
-
49
- address_with_balance[1].to_d
50
- rescue Client::Error => e
51
- raise Peatio::Blockchain::ClientError, e
52
- end
53
-
54
- private
55
-
56
- def build_transaction(tx_hash)
57
- tx_hash.fetch('vout')
58
- .select do |entry|
59
- entry.fetch('value').to_d > 0 &&
60
- entry['scriptPubKey'].has_key?('addresses')
61
- end
62
- .each_with_object([]) do |entry, formatted_txs|
63
- no_currency_tx =
64
- { hash: tx_hash['txid'], txout: entry['n'],
65
- to_address: entry['scriptPubKey']['addresses'][0],
66
- amount: entry.fetch('value').to_d,
67
- status: 'success' }
68
-
69
- # Build transaction for each currency belonging to blockchain.
70
- settings_fetch(:currencies).pluck(:id).each do |currency_id|
71
- formatted_txs << no_currency_tx.merge(currency_id: currency_id)
72
- end
73
- end
74
- end
75
-
76
- def client
77
- @client ||= Client.new(settings_fetch(:server))
78
- end
79
-
80
- def settings_fetch(key)
81
- @settings.fetch(key) { raise Peatio::Blockchain::MissingSettingError, key.to_s }
82
- end
83
- end
84
- end
85
- end
@@ -1,61 +0,0 @@
1
- require 'memoist'
2
- require 'faraday'
3
- require 'better-faraday'
4
-
5
- module Peatio
6
- module Nexbit
7
- class Client
8
- Error = Class.new(StandardError)
9
- class ConnectionError < Error; end
10
-
11
- class ResponseError < Error
12
- def initialize(code, msg)
13
- @code = code
14
- @msg = msg
15
- end
16
-
17
- def message
18
- "#{@msg} (#{@code})"
19
- end
20
- end
21
-
22
- extend Memoist
23
-
24
- def initialize(endpoint)
25
- @json_rpc_endpoint = URI.parse(endpoint)
26
- end
27
-
28
- def json_rpc(method, params = [])
29
- response = connection.post \
30
- '/',
31
- { jsonrpc: '1.0', method: method, params: params }.to_json,
32
- { 'Accept' => 'application/json',
33
- 'Content-Type' => 'application/json' }
34
- response.assert_2xx!
35
- response = JSON.parse(response.body)
36
- response['error'].tap { |e| raise ResponseError.new(e['code'], e['message']) if e }
37
- response.fetch('result')
38
- rescue => e
39
- if e.is_a?(Error)
40
- raise e
41
- elsif e.is_a?(Faraday::Error)
42
- raise ConnectionError, e
43
- else
44
- raise Error, e
45
- end
46
- end
47
-
48
- private
49
-
50
- def connection
51
- Faraday.new(@json_rpc_endpoint).tap do |connection|
52
- unless @json_rpc_endpoint.user.blank?
53
- connection.basic_auth(@json_rpc_endpoint.user,
54
- @json_rpc_endpoint.password)
55
- end
56
- end
57
- end
58
- memoize :connection
59
- end
60
- end
61
- end
@@ -1,42 +0,0 @@
1
- module Peatio
2
- module Nexbit
3
- module Hooks
4
- BLOCKCHAIN_VERSION_REQUIREMENT = "~> 1.0.0"
5
- WALLET_VERSION_REQUIREMENT = "~> 1.0.0"
6
-
7
- class << self
8
- def check_compatibility
9
- unless Gem::Requirement.new(BLOCKCHAIN_VERSION_REQUIREMENT)
10
- .satisfied_by?(Gem::Version.new(Peatio::Blockchain::VERSION))
11
- [
12
- "Nexbit blockchain version requiremnt was not suttisfied by Peatio::Blockchain.",
13
- "Nexbit blockchain requires #{BLOCKCHAIN_VERSION_REQUIREMENT}.",
14
- "Peatio::Blockchain version is #{Peatio::Blockchain::VERSION}"
15
- ].join('\n').tap { |s| Kernel.abort s }
16
- end
17
-
18
- unless Gem::Requirement.new(WALLET_VERSION_REQUIREMENT)
19
- .satisfied_by?(Gem::Version.new(Peatio::Wallet::VERSION))
20
- [
21
- "Nexbit wallet version requiremnt was not suttisfied by Peatio::Wallet.",
22
- "Nexbit wallet requires #{WALLET_VERSION_REQUIREMENT}.",
23
- "Peatio::Wallet version is #{Peatio::Wallet::VERSION}"
24
- ].join('\n').tap { |s| Kernel.abort s }
25
- end
26
- end
27
-
28
- def register
29
- Peatio::Blockchain.registry[:nexbit] = Nexbit::Blockchain.new
30
- Peatio::Wallet.registry[:nexbitd] = Nexbit::Wallet.new
31
- end
32
- end
33
-
34
- if defined?(Rails::Railtie)
35
- require "peatio/nexbit/railtie"
36
- else
37
- check_compatibility
38
- register
39
- end
40
- end
41
- end
42
- end
@@ -1,13 +0,0 @@
1
- module Peatio
2
- module Nexbit
3
- class Railtie < Rails::Railtie
4
- config.before_initialize do
5
- Hooks.check_compatibility
6
- end
7
-
8
- config.after_initialize do
9
- Hooks.register
10
- end
11
- end
12
- end
13
- end
@@ -1,60 +0,0 @@
1
- module Peatio
2
- module Nexbit
3
- class Wallet < Peatio::Wallet::Abstract
4
-
5
- def initialize(settings = {})
6
- @settings = settings
7
- end
8
-
9
- def configure(settings = {})
10
- # Clean client state during configure.
11
- @client = nil
12
-
13
- @settings.merge!(settings.slice(*SUPPORTED_SETTINGS))
14
-
15
- @wallet = @settings.fetch(:wallet) do
16
- raise Peatio::Wallet::MissingSettingError, :wallet
17
- end.slice(:uri, :address)
18
-
19
- @currency = @settings.fetch(:currency) do
20
- raise Peatio::Wallet::MissingSettingError, :currency
21
- end.slice(:id, :base_factor, :options)
22
- end
23
-
24
- def create_address!(_options = {})
25
- { address: client.json_rpc(:getnewaddress) }
26
- rescue Nexbit::Client::Error => e
27
- raise Peatio::Wallet::ClientError, e
28
- end
29
-
30
- def create_transaction!(transaction, options = {})
31
- txid = client.json_rpc(:sendtoaddress,
32
- [
33
- transaction.to_address,
34
- transaction.amount,
35
- '',
36
- '',
37
- options[:subtract_fee].to_s == 'true' # subtract fee from transaction amount.
38
- ])
39
- transaction.hash = txid
40
- transaction
41
- rescue Nexbit::Client::Error => e
42
- raise Peatio::Wallet::ClientError, e
43
- end
44
-
45
- def load_balance!
46
- client.json_rpc(:getbalance).to_d
47
-
48
- rescue Nexbit::Client::Error => e
49
- raise Peatio::Wallet::ClientError, e
50
- end
51
-
52
- private
53
-
54
- def client
55
- uri = @wallet.fetch(:uri) { raise Peatio::Wallet::MissingSettingError, :uri }
56
- @client ||= Client.new(uri)
57
- end
58
- end
59
- end
60
- end