ethlite-contracts 0.0.1
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 +7 -0
- data/CHANGELOG.md +3 -0
- data/Manifest.txt +9 -0
- data/README.md +32 -0
- data/Rakefile +30 -0
- data/lib/ethlite/contract.rb +53 -0
- data/lib/ethlite/contracts/punk_blocks.rb +59 -0
- data/lib/ethlite/contracts/punks_v1.rb +95 -0
- data/lib/ethlite/contracts.rb +1 -0
- data/lib/ethlite-contracts.rb +17 -0
- metadata +106 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d178b4a5c7a28105b60fe1dfaff5bf4f3e5f4f55b3211d264b6dea4c3f50ebf5
|
4
|
+
data.tar.gz: b353c9a48aee0ba0cc116f4c6d924d4c6ad1e9a8c795b67520eb8d0313f8f57b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 28fc5a42637286b9124b038da8c48667187755e508eeda7716716cefb4aefef66c66dcdae754cc653a13430ac47d82c13d3d6857d4f95323759a30cd51b0b36d
|
7
|
+
data.tar.gz: b599c075e9721301ba1865a151a320fbc8f28ee3a444e4aff68cf421c1ad748a34b03478e6b75cb9c6139d0b629ce6afe66bf8abcff164d650fdbfb0de58b8e4
|
data/CHANGELOG.md
ADDED
data/Manifest.txt
ADDED
data/README.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# Ready-To-Use (Blockchain) Contract Services / Function Calls For Ethereum & Co.
|
2
|
+
|
3
|
+
|
4
|
+
ethlite-contracts - ready-to-use (blockchain) contract services / function calls for ethereum & co
|
5
|
+
|
6
|
+
|
7
|
+
* home :: [github.com/rubycocos/blockchain](https://github.com/rubycocos/blockchain)
|
8
|
+
* bugs :: [github.com/rubycocos/blockchain/issues](https://github.com/rubycocos/blockchain/issues)
|
9
|
+
* gem :: [rubygems.org/gems/ethlite-contracts](https://rubygems.org/gems/ethlite-contracts)
|
10
|
+
* rdoc :: [rubydoc.info/gems/ethlite-contracts](http://rubydoc.info/gems/ethlite-contracts)
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
To be done
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
## License
|
22
|
+
|
23
|
+
The scripts are dedicated to the public domain.
|
24
|
+
Use it as you please with no restrictions whatsoever.
|
25
|
+
|
26
|
+
|
27
|
+
## Questions? Comments?
|
28
|
+
|
29
|
+
|
30
|
+
Post them on the [D.I.Y. Punk (Pixel) Art reddit](https://old.reddit.com/r/DIYPunkArt). Thanks.
|
31
|
+
|
32
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'hoe'
|
2
|
+
|
3
|
+
|
4
|
+
Hoe.spec 'ethlite-contracts' do
|
5
|
+
|
6
|
+
self.version = '0.0.1'
|
7
|
+
self.summary = "ethlite-contracts - ready-to-use (blockchain) contract services / function calls for ethereum & co."
|
8
|
+
self.description = summary
|
9
|
+
|
10
|
+
self.urls = { home: 'https://github.com/rubycocos/blockchain' }
|
11
|
+
|
12
|
+
self.author = 'Gerald Bauer'
|
13
|
+
self.email = 'wwwmake@googlegroups.com'
|
14
|
+
|
15
|
+
# switch extension to .markdown for gihub formatting
|
16
|
+
self.readme_file = 'README.md'
|
17
|
+
self.history_file = 'CHANGELOG.md'
|
18
|
+
|
19
|
+
self.extra_deps = [
|
20
|
+
['ethlite'],
|
21
|
+
]
|
22
|
+
|
23
|
+
self.licenses = ['Public Domain']
|
24
|
+
|
25
|
+
self.spec_extras = {
|
26
|
+
required_ruby_version: '>= 2.3'
|
27
|
+
}
|
28
|
+
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Ethlite
|
4
|
+
|
5
|
+
class Contract
|
6
|
+
|
7
|
+
|
8
|
+
def self.at( address )
|
9
|
+
puts " creating new contract #{self.name} @ #{address}"
|
10
|
+
new( address )
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def self.sig( name, inputs: [], outputs: [] )
|
15
|
+
@methods ||= {}
|
16
|
+
@methods[ name ] = ContractMethod.new( name,
|
17
|
+
inputs: inputs,
|
18
|
+
outputs: outputs )
|
19
|
+
@methods
|
20
|
+
end
|
21
|
+
def self.methods()
|
22
|
+
@methods ||= {}
|
23
|
+
@methods
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
def self.address( address )
|
29
|
+
@address = address
|
30
|
+
@address
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.default_address()
|
34
|
+
defined?( @address ) ? @address : nil
|
35
|
+
end
|
36
|
+
|
37
|
+
def initialize( address = self.class.default_address )
|
38
|
+
@address = address
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
def do_call( name, *args )
|
43
|
+
puts "==> calling #{self.class.name}##{name} with args:"
|
44
|
+
pp args
|
45
|
+
method = self.class.methods[ name ]
|
46
|
+
## pp m
|
47
|
+
method.do_call( Ethlite.config.rpc, @address, args )
|
48
|
+
end
|
49
|
+
|
50
|
+
end ## class Contract
|
51
|
+
|
52
|
+
|
53
|
+
end ## module Ethlite
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#########################
|
2
|
+
# PunkBlocks contract / (blockchain) services / function calls
|
3
|
+
# auto-generated via abigen (see https://rubygems.org/gems/abigen) on 2023-01-09 17:48:57 UTC
|
4
|
+
# - 8 query functions(s)
|
5
|
+
|
6
|
+
class PunkBlocks < Ethlite::Contract
|
7
|
+
|
8
|
+
address "0x58e90596c2065befd3060767736c829c18f3474c"
|
9
|
+
|
10
|
+
# function **blocks**(bytes32 _) ⇒ (enum PunkBlocks.Layer layer, bytes dataMale, bytes dataFemale) _readonly_
|
11
|
+
sig "blocks", inputs: ["bytes32"], outputs: ["uint8","bytes","bytes"]
|
12
|
+
def blocks(arg0)
|
13
|
+
do_call("blocks", arg0)
|
14
|
+
end
|
15
|
+
|
16
|
+
# function **getBlocks**(uint256 _fromID, uint256 _count) ⇒ (struct PunkBlocks.Block[] _, uint256 _) _readonly_
|
17
|
+
sig "getBlocks", inputs: ["uint256","uint256"], outputs: ["(uint8,bytes,bytes)[]","uint256"]
|
18
|
+
def getBlocks(_fromID, _count)
|
19
|
+
do_call("getBlocks", _fromID, _count)
|
20
|
+
end
|
21
|
+
|
22
|
+
# function **index**(uint256 _) ⇒ (bytes32 _) _readonly_
|
23
|
+
sig "index", inputs: ["uint256"], outputs: ["bytes32"]
|
24
|
+
def index(arg0)
|
25
|
+
do_call("index", arg0)
|
26
|
+
end
|
27
|
+
|
28
|
+
# function **nextId**() ⇒ (uint256 _) _readonly_
|
29
|
+
sig "nextId", outputs: ["uint256"]
|
30
|
+
def nextId()
|
31
|
+
do_call("nextId")
|
32
|
+
end
|
33
|
+
|
34
|
+
# function **svgFromIDs**(uint256[] _ids) ⇒ (string _) _readonly_
|
35
|
+
sig "svgFromIDs", inputs: ["uint256[]"], outputs: ["string"]
|
36
|
+
def svgFromIDs(_ids)
|
37
|
+
do_call("svgFromIDs", _ids)
|
38
|
+
end
|
39
|
+
|
40
|
+
# function **svgFromKeys**(bytes32[] _attributeKeys) ⇒ (string _) _readonly_
|
41
|
+
sig "svgFromKeys", inputs: ["bytes32[]"], outputs: ["string"]
|
42
|
+
def svgFromKeys(_attributeKeys)
|
43
|
+
do_call("svgFromKeys", _attributeKeys)
|
44
|
+
end
|
45
|
+
|
46
|
+
# function **svgFromNames**(string[] _attributeNames) ⇒ (string _) _readonly_
|
47
|
+
sig "svgFromNames", inputs: ["string[]"], outputs: ["string"]
|
48
|
+
def svgFromNames(_attributeNames)
|
49
|
+
do_call("svgFromNames", _attributeNames)
|
50
|
+
end
|
51
|
+
|
52
|
+
# function **svgFromPunkID**(uint256 _tokenID) ⇒ (string _) _readonly_
|
53
|
+
sig "svgFromPunkID", inputs: ["uint256"], outputs: ["string"]
|
54
|
+
def svgFromPunkID(_tokenID)
|
55
|
+
do_call("svgFromPunkID", _tokenID)
|
56
|
+
end
|
57
|
+
|
58
|
+
end ## class PunkBlocks
|
59
|
+
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#########################
|
2
|
+
# PunksV1 contract / (blockchain) services / function calls
|
3
|
+
# auto-generated via abigen (see https://rubygems.org/gems/abigen) on 2023-01-09 17:48:57 UTC
|
4
|
+
# - 14 query functions(s)
|
5
|
+
|
6
|
+
class PunksV1 < Ethlite::Contract
|
7
|
+
|
8
|
+
address "0x6ba6f2207e343923ba692e5cae646fb0f566db8d"
|
9
|
+
|
10
|
+
# function **name**() ⇒ (string _) _readonly_
|
11
|
+
sig "name", outputs: ["string"]
|
12
|
+
def name()
|
13
|
+
do_call("name")
|
14
|
+
end
|
15
|
+
|
16
|
+
# function **punksOfferedForSale**(uint256 _) ⇒ (bool isForSale, uint256 punkIndex, address seller, uint256 minValue, address onlySellTo) _readonly_
|
17
|
+
sig "punksOfferedForSale", inputs: ["uint256"], outputs: ["bool","uint256","address","uint256","address"]
|
18
|
+
def punksOfferedForSale(arg0)
|
19
|
+
do_call("punksOfferedForSale", arg0)
|
20
|
+
end
|
21
|
+
|
22
|
+
# function **totalSupply**() ⇒ (uint256 _) _readonly_
|
23
|
+
sig "totalSupply", outputs: ["uint256"]
|
24
|
+
def totalSupply()
|
25
|
+
do_call("totalSupply")
|
26
|
+
end
|
27
|
+
|
28
|
+
# function **decimals**() ⇒ (uint8 _) _readonly_
|
29
|
+
sig "decimals", outputs: ["uint8"]
|
30
|
+
def decimals()
|
31
|
+
do_call("decimals")
|
32
|
+
end
|
33
|
+
|
34
|
+
# function **imageHash**() ⇒ (string _) _readonly_
|
35
|
+
sig "imageHash", outputs: ["string"]
|
36
|
+
def imageHash()
|
37
|
+
do_call("imageHash")
|
38
|
+
end
|
39
|
+
|
40
|
+
# function **nextPunkIndexToAssign**() ⇒ (uint256 _) _readonly_
|
41
|
+
sig "nextPunkIndexToAssign", outputs: ["uint256"]
|
42
|
+
def nextPunkIndexToAssign()
|
43
|
+
do_call("nextPunkIndexToAssign")
|
44
|
+
end
|
45
|
+
|
46
|
+
# function **punkIndexToAddress**(uint256 _) ⇒ (address _) _readonly_
|
47
|
+
sig "punkIndexToAddress", inputs: ["uint256"], outputs: ["address"]
|
48
|
+
def punkIndexToAddress(arg0)
|
49
|
+
do_call("punkIndexToAddress", arg0)
|
50
|
+
end
|
51
|
+
|
52
|
+
# function **standard**() ⇒ (string _) _readonly_
|
53
|
+
sig "standard", outputs: ["string"]
|
54
|
+
def standard()
|
55
|
+
do_call("standard")
|
56
|
+
end
|
57
|
+
|
58
|
+
# function **balanceOf**(address _) ⇒ (uint256 _) _readonly_
|
59
|
+
sig "balanceOf", inputs: ["address"], outputs: ["uint256"]
|
60
|
+
def balanceOf(arg0)
|
61
|
+
do_call("balanceOf", arg0)
|
62
|
+
end
|
63
|
+
|
64
|
+
# function **symbol**() ⇒ (string _) _readonly_
|
65
|
+
sig "symbol", outputs: ["string"]
|
66
|
+
def symbol()
|
67
|
+
do_call("symbol")
|
68
|
+
end
|
69
|
+
|
70
|
+
# function **numberOfPunksToReserve**() ⇒ (uint256 _) _readonly_
|
71
|
+
sig "numberOfPunksToReserve", outputs: ["uint256"]
|
72
|
+
def numberOfPunksToReserve()
|
73
|
+
do_call("numberOfPunksToReserve")
|
74
|
+
end
|
75
|
+
|
76
|
+
# function **numberOfPunksReserved**() ⇒ (uint256 _) _readonly_
|
77
|
+
sig "numberOfPunksReserved", outputs: ["uint256"]
|
78
|
+
def numberOfPunksReserved()
|
79
|
+
do_call("numberOfPunksReserved")
|
80
|
+
end
|
81
|
+
|
82
|
+
# function **punksRemainingToAssign**() ⇒ (uint256 _) _readonly_
|
83
|
+
sig "punksRemainingToAssign", outputs: ["uint256"]
|
84
|
+
def punksRemainingToAssign()
|
85
|
+
do_call("punksRemainingToAssign")
|
86
|
+
end
|
87
|
+
|
88
|
+
# function **pendingWithdrawals**(address _) ⇒ (uint256 _) _readonly_
|
89
|
+
sig "pendingWithdrawals", inputs: ["address"], outputs: ["uint256"]
|
90
|
+
def pendingWithdrawals(arg0)
|
91
|
+
do_call("pendingWithdrawals", arg0)
|
92
|
+
end
|
93
|
+
|
94
|
+
end ## class PunksV1
|
95
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
require_relative '../ethlite-contracts' ## lets you use require 'ethlite/contracts' too
|
@@ -0,0 +1,17 @@
|
|
1
|
+
## 3rd party gems
|
2
|
+
require 'ethlite'
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
## out own code
|
8
|
+
|
9
|
+
# shared base contract machinery - keep here
|
10
|
+
## or rename to Base or such - why? why not?
|
11
|
+
require_relative 'ethlite/contract'
|
12
|
+
|
13
|
+
### generated contracts via abigen
|
14
|
+
require_relative 'ethlite/contracts/punks_v1'
|
15
|
+
require_relative 'ethlite/contracts/punk_blocks'
|
16
|
+
|
17
|
+
|
metadata
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ethlite-contracts
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gerald Bauer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-01-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ethlite
|
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: rdoc
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.0'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '7'
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.0'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '7'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: hoe
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.23'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.23'
|
61
|
+
description: ethlite-contracts - ready-to-use (blockchain) contract services / function
|
62
|
+
calls for ethereum & co.
|
63
|
+
email: wwwmake@googlegroups.com
|
64
|
+
executables: []
|
65
|
+
extensions: []
|
66
|
+
extra_rdoc_files:
|
67
|
+
- CHANGELOG.md
|
68
|
+
- Manifest.txt
|
69
|
+
- README.md
|
70
|
+
files:
|
71
|
+
- CHANGELOG.md
|
72
|
+
- Manifest.txt
|
73
|
+
- README.md
|
74
|
+
- Rakefile
|
75
|
+
- lib/ethlite-contracts.rb
|
76
|
+
- lib/ethlite/contract.rb
|
77
|
+
- lib/ethlite/contracts.rb
|
78
|
+
- lib/ethlite/contracts/punk_blocks.rb
|
79
|
+
- lib/ethlite/contracts/punks_v1.rb
|
80
|
+
homepage: https://github.com/rubycocos/blockchain
|
81
|
+
licenses:
|
82
|
+
- Public Domain
|
83
|
+
metadata: {}
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options:
|
86
|
+
- "--main"
|
87
|
+
- README.md
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '2.3'
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
requirements: []
|
101
|
+
rubygems_version: 3.3.7
|
102
|
+
signing_key:
|
103
|
+
specification_version: 4
|
104
|
+
summary: ethlite-contracts - ready-to-use (blockchain) contract services / function
|
105
|
+
calls for ethereum & co.
|
106
|
+
test_files: []
|