abigen 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -1
  3. data/README.md +18 -4
  4. data/Rakefile +5 -3
  5. data/lib/abigen.rb +4 -97
  6. metadata +37 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2af88adfb037b066adbcdb376f41d9c7b22f90ac72832ed0804b6f14de2964e3
4
- data.tar.gz: f95aee9a46c98b9896d9c9c09587ddfe55b1ac1b81d4e6d1a9905b07b5e5d9a5
3
+ metadata.gz: 9a948cfdd420f7932b5c5de6874ebef9ab871156414d4d2651ab37ff31a23a66
4
+ data.tar.gz: b64a28f7fd83a273dfad24388dabc365f7804ed0df394633cc3da3be179fdf08
5
5
  SHA512:
6
- metadata.gz: 3395ab689b6efc2b354287940f376567c5b7c0e34e6693662931150a7c19da0768c377ab1187a82563a5d33f667c1684d4aedc720b9a7da0fdfed484a5b33097
7
- data.tar.gz: 470b580d57671302f73b10abaebf83e1519096c6e93d4843626160a30b4dd268ad4f45c8ff5f9e895eb48f9973955e72ced6b434745e7027a0bc884f9bb0626f
6
+ metadata.gz: cf7be52392d9df4ca66e08253d706bfedaa91731b458a41ea4b08150968ba69073777f637fcd341c9fe9c7ecf0aa2c91658825b527f2326911a274b97b4ac550
7
+ data.tar.gz: 190826558f10b3f9845a5461016186be1f1d12f42b12c09527e02d188b210f35a7732d52d47f8e786964bc99d724feee5450990e8cf855174bdf2f1b149c921e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,3 @@
1
- ### 0.0.1 / 2023-01-10
1
+ ### 0.0.1 / 2023-01-14
2
2
 
3
3
  * Everything is new. First release
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Application Binary Interface (ABI) Contract Generator
1
+ # abigen
2
2
 
3
- abigen - generate ready-to-use (blockchain) contract services / function calls for ethereum & co. via application binary inferfaces (abis)
3
+ abigen - "high-level" all-in-one umbrella quick starter gem for easy installation & usage application binary interface (abi) code or doc(umentation) gen(eration) for ethereum & co.
4
4
 
5
5
 
6
6
  * home :: [github.com/rubycocos/blockchain](https://github.com/rubycocos/blockchain)
@@ -10,9 +10,23 @@ abigen - generate ready-to-use (blockchain) contract services / function calls f
10
10
 
11
11
 
12
12
 
13
- ## Usage
13
+ ## Download & Install The Ruby Package(s)
14
14
 
15
- To be done
15
+ To install use the ruby package manager (also known as rubygems):
16
+
17
+ ```
18
+ $ gem install abigen
19
+ ```
20
+
21
+
22
+ ### Gems
23
+
24
+ For now ethers includes / bundles-up:
25
+
26
+
27
+ - [abi2ruby](../abi2ruby) - generate ready-to-use (blockchain) contract services / function calls for ethereum & co. via application binary inferfaces (abis)
28
+ - [abi2sol](../abi2sol) - command-line tool for application binary interface (abi) to solidity (contract) source code generation for Ethereum & Co.
29
+ - [abidoc](../abidoc) - application binary interface (abi) documentation generator for Ethereum & Co. (blockchain) contracts
16
30
 
17
31
 
18
32
 
data/Rakefile CHANGED
@@ -3,8 +3,8 @@ require 'hoe'
3
3
 
4
4
  Hoe.spec 'abigen' do
5
5
 
6
- self.version = '0.0.1'
7
- self.summary = "abigen - generate ready-to-use (blockchain) contract services / function calls for ethereum & co. via application binary inferfaces (abis)"
6
+ self.version = '0.1.1'
7
+ self.summary = '"high-level" all-in-one umbrella quick starter gem for easy installation & usage application binary interface (abi) code or doc(umentation) gen(eration) for ethereum & co.'
8
8
  self.description = summary
9
9
 
10
10
  self.urls = { home: 'https://github.com/rubycocos/blockchain' }
@@ -17,7 +17,9 @@ Hoe.spec 'abigen' do
17
17
  self.history_file = 'CHANGELOG.md'
18
18
 
19
19
  self.extra_deps = [
20
- ['abiparser'],
20
+ ['abi2ruby'],
21
+ ['abi2sol'],
22
+ ['abidoc'],
21
23
  ]
22
24
 
23
25
  self.licenses = ['Public Domain']
data/lib/abigen.rb CHANGED
@@ -1,99 +1,6 @@
1
- require 'abiparser'
1
+ ## all-in-one prelude/prolog
2
2
 
3
+ require 'abi2ruby'
4
+ require 'abi2sol'
5
+ require 'abidoc'
3
6
 
4
- ## our own code
5
- ## require_relative 'abidoc/version' # note: let version always go first
6
-
7
-
8
-
9
- module ABI
10
- class Contract
11
-
12
-
13
- def generate_code( name: 'Contract', address: nil )
14
- buf = ''
15
- buf << "#########################\n"
16
- buf << "# #{name} contract / (blockchain) services / function calls\n"
17
- buf << "# auto-generated via abigen (see https://rubygems.org/gems/abigen) on #{Time.now.utc}\n"
18
- buf << "# - #{query_functions.size} query functions(s)\n\n"
19
-
20
-
21
- buf << "class #{name} < Ethlite::Contract\n\n"
22
-
23
- if address
24
- buf << " address "
25
- buf << %Q{"#{address}"}
26
- buf << "\n"
27
- end
28
-
29
-
30
- if query_functions.size > 0
31
- buf << "\n"
32
- query_functions.each do |func|
33
- buf << "# #{func.doc} _readonly_\n"
34
-
35
- buf << %Q{sig "#{func.name}"}
36
-
37
- if func.inputs.size > 0
38
- quoted_types = func.inputs.map {|param| %Q{"#{param.sig}"} }
39
- buf << ", inputs: [#{quoted_types.join(',')}]"
40
- end
41
-
42
- if func.outputs.size > 0
43
- quoted_types = func.outputs.map {|param| %Q{"#{param.sig}"} }
44
- buf << ", outputs: [#{quoted_types.join(',')}]"
45
- end
46
- buf << "\n"
47
-
48
- buf << "def #{func.name}("
49
-
50
- func.inputs.each_with_index do |param,i|
51
- buf << ", " if i > 0
52
- if param.name
53
- buf << "#{param.name}"
54
- else
55
- buf << "arg#{i}"
56
- end
57
- end
58
-
59
- buf << ")\n"
60
-
61
- buf << " do_call("
62
- buf << %Q{"#{func.name}"}
63
-
64
- func.inputs.each_with_index do |param,i|
65
- buf << ", "
66
- if param.name
67
- buf << "#{param.name}"
68
- else
69
- buf << "arg#{i}"
70
- end
71
- end
72
-
73
- buf << ")\n"
74
-
75
- buf << "end\n"
76
- buf << "\n"
77
- end
78
- end
79
-
80
-
81
- ### todo: add (pure) helper functions too!!!
82
- =begin
83
- if helper_functions.size > 0
84
- buf << "\n"
85
- buf << "# #{helper_functions.size} Helper Functions(s)\n\n"
86
- helper_functions.each do |func|
87
- buf << "# - #{func.doc}\n"
88
- ## buf << " - sig #{func.sig} => 0x#{sig(func.sig).hexdigest}\n"
89
- end
90
- end
91
- =end
92
-
93
- buf << "end ## class #{name}\n"
94
- buf << "\n"
95
- buf
96
- end
97
-
98
- end ## class Contract
99
- end ## module ABI
metadata CHANGED
@@ -1,17 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abigen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-10 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: abiparser
14
+ name: abi2ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: abi2sol
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: abidoc
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
45
  - - ">="
@@ -58,8 +86,9 @@ dependencies:
58
86
  - - "~>"
59
87
  - !ruby/object:Gem::Version
60
88
  version: '3.23'
61
- description: abigen - generate ready-to-use (blockchain) contract services / function
62
- calls for ethereum & co. via application binary inferfaces (abis)
89
+ description: '"high-level" all-in-one umbrella quick starter gem for easy installation
90
+ & usage application binary interface (abi) code or doc(umentation) gen(eration)
91
+ for ethereum & co.'
63
92
  email: wwwmake@googlegroups.com
64
93
  executables: []
65
94
  extensions: []
@@ -97,6 +126,7 @@ requirements: []
97
126
  rubygems_version: 3.3.7
98
127
  signing_key:
99
128
  specification_version: 4
100
- summary: abigen - generate ready-to-use (blockchain) contract services / function
101
- calls for ethereum & co. via application binary inferfaces (abis)
129
+ summary: '"high-level" all-in-one umbrella quick starter gem for easy installation
130
+ & usage application binary interface (abi) code or doc(umentation) gen(eration)
131
+ for ethereum & co.'
102
132
  test_files: []