cryptopunks 1.2.1 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90c086c27ab6e20974bcb2c1777873eb0e6d61006ddcd72724f96e18687c9a13
4
- data.tar.gz: f91b82d1ae82abf305d3e95ef1e86f33fb2da3dab9b41ef6e18551b30202b845
3
+ metadata.gz: dceba5897b87bade5e787074da796bc116dea1e3acd8341d40d6cfa5337b3fdc
4
+ data.tar.gz: 725cbf4474d25b2c032396dfef71a4cad605d2b4f5af0361145693aada489101
5
5
  SHA512:
6
- metadata.gz: 5e4066e8746b234fa3ac7d25aad89f2bcd2ec15bce6f05c4c9b55d2cbcc56258778c412924c57024e24375ed326a784eba84fc1154676e8559a6d345b8990418
7
- data.tar.gz: 1262074a74f23d241e7ee5430a5a8b29911490183b98d2f27b3c2c76c04ee4e9f5b7492aeec75a4aaff15f3f809fab6501142f7814f58ac1cca7671d6853cc24
6
+ metadata.gz: '09a830c716f4305c2ae82f9ddfe9298eecfa891d9754e5014734db290ae3541fd9ef427d1eedd5b88ebc1e0d9743932254e631a90b394a2032995dc2e6570278'
7
+ data.tar.gz: b9cde99de27ccba6b572d0416fbb01512da27cf9e8bfeda96093944b2a9a4f5e3f08ef8f694dd68edbe78bf6290b3d37f108c56db6338af64055db7339a75b89
data/Manifest.txt CHANGED
@@ -4,31 +4,18 @@ README.md
4
4
  Rakefile
5
5
  bin/cryptopunk
6
6
  bin/punk
7
- config/more/alien-female.txt
8
- config/more/ape-female.txt
9
- config/more/demon-female.txt
10
- config/more/demon-male.txt
11
- config/more/mummy-female.txt
12
- config/more/mummy-male.txt
13
- config/more/orc-female.txt
14
- config/more/orc-male.txt
15
- config/more/robot-female.txt
16
- config/more/robot-male.txt
17
- config/more/skeleton-female.txt
18
- config/more/skeleton-male.txt
19
- config/more/vampire-female.txt
20
- config/more/vampire-male.txt
21
- config/more/zombie-female.txt
22
- config/original/alien-male.txt
23
- config/original/ape-male.txt
24
- config/original/human-female.txt
25
- config/original/human-male.txt
26
- config/original/zombie-male.txt
7
+ config/spritesheet.csv
8
+ config/spritesheet.png
27
9
  lib/cryptopunks.rb
28
10
  lib/cryptopunks/attributes.rb
29
11
  lib/cryptopunks/colors.rb
30
12
  lib/cryptopunks/composite.rb
13
+ lib/cryptopunks/contract/punksdata-assets.rb
14
+ lib/cryptopunks/contract/punksdata-contract.rb
15
+ lib/cryptopunks/contract/punksdata-meta.rb
31
16
  lib/cryptopunks/dataset.rb
17
+ lib/cryptopunks/generator.rb
32
18
  lib/cryptopunks/image.rb
33
19
  lib/cryptopunks/structs.rb
20
+ lib/cryptopunks/tool.rb
34
21
  lib/cryptopunks/version.rb
data/README.md CHANGED
@@ -12,6 +12,7 @@ New to Crypto Punks?
12
12
  See the [**Awesome CryptoPunks Bubble (Anno 2021) - Modern 24×24 Pixel Crypto Art on the Blockchain** »](https://github.com/cryptopunksnotdead/awesome-cryptopunks-bubble)
13
13
 
14
14
 
15
+
15
16
  ## Command Line
16
17
 
17
18
  Use the `punk` (or `cryptopunk`) command line tool. Try:
@@ -23,17 +24,289 @@ $ punk -h
23
24
  resulting in:
24
25
 
25
26
  ```
26
- Usage: cryptopunk [options] IDs
27
- Mint punk characters from composite (./punks.png) - for IDs use 0 to 9999
27
+ NAME
28
+ punk - punk (or cryptopunk) command line tool
29
+
30
+ SYNOPSIS
31
+ punk [global options] command [command options] [arguments...]
32
+
33
+ VERSION
34
+ 2.0.0
35
+
36
+ GLOBAL OPTIONS
37
+ -d, --dir,
38
+ -o, --out, --outdir=DIR - Output directory (default: .)
39
+ -f, --file=FILE - True Official Genuine CryptoPunks™ all-in-one
40
+ composite image (default: ./punks.png)
41
+ --offset=NUM - Start counting at offset (default: 0)
42
+ -z, --zoom=ZOOM - Zoom factor x2, x4, x8, etc. (default: 1)
43
+
44
+ --help - Show this message
45
+ --version - Display the program version
46
+ --verbose - (Debug) Show debug messages
47
+
48
+
49
+ COMMANDS
50
+ g, gen, generate - Generate punk characters from text attributes (from
51
+ scratch / zero) via builtin punk spritesheet
52
+ l, ls, list - List all punk archetype and attribute names from builtin
53
+ punk spritesheet
54
+ q, query - Query (builtin off-chain) punk contract for punk text
55
+ attributes by IDs - use 0 to 9999
56
+ t, tile - Get punk characters via image tiles from all-in-one punk
57
+ series composite (./punks.png) - for IDs use 0 to 9999
58
+
59
+ help - Shows a list of commands or help for one command
60
+ ```
61
+
62
+ ### Generate Command
63
+
64
+ _Generate punk characters from text attributes (from scratch / zero) via builtin punk spritesheet_
65
+
66
+
67
+ Let's try punk #0:
68
+
69
+ ```
70
+ $ punk generate female_2 earring blonde_bob green_eye_shadow
71
+ ```
72
+
73
+ resulting in:
74
+
75
+ ![](i/punk-0000.png)
76
+
77
+ Let's try the `-z/--zoom` factor 2x, 4x, 8x, etc.:
78
+
79
+ ```
80
+ $ punk --zoom 4 generate female_2 earring blonde_bob green_eye_shadow
81
+ # -or-
82
+ $ punk -z2 g female_2 earring blonde_bob green_eye_shadow
83
+ ```
84
+
85
+ resulting in:
86
+
87
+ 2x ![](i/punk-0000x2.png)
88
+ 4x ![](i/punk-0000x4.png)
89
+ 8x ![](i/punk-0000x8.png)
90
+
91
+
92
+ Let's try never-before-seen super-rare punks:
93
+
94
+ ```
95
+ $ punk generate demon heart_shades
96
+ $ punk generate vampire_female wild_hair
97
+ ```
98
+
99
+ resulting in:
100
+
101
+ ![](i/demon.png)
102
+ ![](i/vampire-female.png)
103
+
104
+
105
+
106
+ Q: What punk archetypes and attributes can I use?
107
+
108
+ A: See the list command.
109
+
110
+
111
+ ### List Command
112
+
113
+ _List all punk archetype and attribute names from builtin punk spritesheet_
114
+
115
+
116
+ Let's try:
28
117
 
29
- Options:
30
- -z, --zoom=ZOOM Zoom factor x2, x4, x8, etc. (default: 1)
31
- -d, --dir=DIR Output directory (default: .)
32
- -f, --file=FILE True Official Genuine CryptoPunks™ composite image (default: ./punks.png)
33
- --offset=NUM Start counting at offset (default: 0)
34
- -h, --help Prints this help
118
+ ```
119
+ $ punk list
120
+ # -or-
121
+ $ punk ls
35
122
  ```
36
123
 
124
+ resulting in:
125
+
126
+ ```
127
+ ==> Archetypes
128
+ Male 1 / (m) - Archetype - Human
129
+ Male 2 / (m) - Archetype - Human
130
+ Male 3 / (m) - Archetype - Human
131
+ Male 4 / (m) - Archetype - Human
132
+ Female 1 / (f) - Archetype - Human
133
+ Female 2 / (f) - Archetype - Human
134
+ Female 3 / (f) - Archetype - Human
135
+ Female 4 / (f) - Archetype - Human
136
+ Zombie / (m) - Archetype - Zombie
137
+ Zombie Female / (f) - Archetype - Zombie
138
+ Ape / (m) - Archetype - Ape
139
+ Ape Female / (f) - Archetype - Ape
140
+ Alien / (m) - Archetype - Alien
141
+ Alien Female / (f) - Archetype - Alien
142
+ Demon / (m) - Archetype - Demon
143
+ Demon Female / (f) - Archetype - Demon
144
+ Mummy / (m) - Archetype - Mummy
145
+ Mummy Female / (f) - Archetype - Mummy
146
+ Orc / (m) - Archetype - Orc
147
+ Orc Female / (f) - Archetype - Orc
148
+ Robot / (m) - Archetype - Robot
149
+ Robot Female / (f) - Archetype - Robot
150
+ Skeleton / (m) - Archetype - Skeleton
151
+ Skeleton Female / (f) - Archetype - Skeleton
152
+ Vampire / (m) - Archetype - Vampire
153
+ Vampire Female / (f) - Archetype - Vampire
154
+ Zombie (Ape) / (m) - Archetype - Zombie
155
+ Alien (Ape) / (m) - Archetype - Alien
156
+ Alien 0° / (m) - Archetype - Alien
157
+ Alien 30° / (m) - Archetype - Alien
158
+ Alien 60° / (m) - Archetype - Alien
159
+ Alien 90° / (m) - Archetype - Alien
160
+ Alien 120° / (m) - Archetype - Alien
161
+ Alien 150° / (m) - Archetype - Alien
162
+ Alien 180° / (m) - Archetype - Alien
163
+ Alien 210° / (m) - Archetype - Alien
164
+ Alien 240° / (m) - Archetype - Alien
165
+ Alien 270° / (m) - Archetype - Alien
166
+ Alien 300° / (m) - Archetype - Alien
167
+ Alien 330° / (m) - Archetype - Alien
168
+ Alien (Ape) 0° / (m) - Archetype - Alien
169
+ Alien (Ape) 30° / (m) - Archetype - Alien
170
+ Alien (Ape) 60° / (m) - Archetype - Alien
171
+ Alien (Ape) 90° / (m) - Archetype - Alien
172
+ Alien (Ape) 120° / (m) - Archetype - Alien
173
+ Alien (Ape) 150° / (m) - Archetype - Alien
174
+ Alien (Ape) 180° / (m) - Archetype - Alien
175
+ Alien (Ape) 210° / (m) - Archetype - Alien
176
+ Alien (Ape) 240° / (m) - Archetype - Alien
177
+ Alien (Ape) 270° / (m) - Archetype - Alien
178
+ Alien (Ape) 300° / (m) - Archetype - Alien
179
+ Alien (Ape) 330° / (m) - Archetype - Alien
180
+ Alien Female 0° / (f) - Archetype - Alien
181
+ Alien Female 30° / (f) - Archetype - Alien
182
+ Alien Female 60° / (f) - Archetype - Alien
183
+ Alien Female 90° / (f) - Archetype - Alien
184
+ Alien Female 120° / (f) - Archetype - Alien
185
+ Alien Female 150° / (f) - Archetype - Alien
186
+ Alien Female 180° / (f) - Archetype - Alien
187
+ Alien Female 210° / (f) - Archetype - Alien
188
+ Alien Female 240° / (f) - Archetype - Alien
189
+ Alien Female 270° / (f) - Archetype - Alien
190
+ Alien Female 300° / (f) - Archetype - Alien
191
+ Alien Female 330° / (f) - Archetype - Alien
192
+
193
+ ==> Attributes
194
+ 3D Glasses / (m) - Attribute
195
+ 3D Glasses / (f) - Attribute
196
+ Bandana / (m) - Attribute
197
+ Bandana / (f) - Attribute
198
+ Beanie / (m) - Attribute
199
+ Beanie / (f) - Attribute
200
+ Big Beard / (m) - Attribute
201
+ Big Shades / (m) - Attribute
202
+ Big Shades / (f) - Attribute
203
+ Black Lipstick / (f) - Attribute
204
+ Blonde Bob / (f) - Attribute
205
+ Blonde Short / (f) - Attribute
206
+ Blue Eye Shadow / (f) - Attribute
207
+ Buck Teeth / (m) - Attribute
208
+ Cap / (m) - Attribute
209
+ Cap / (f) - Attribute
210
+ Cap Forward / (m) - Attribute
211
+ Cap Forward / (f) - Attribute
212
+ Chinstrap / (m) - Attribute
213
+ Choker / (f) - Attribute
214
+ Cigarette / (m) - Attribute
215
+ Cigarette / (f) - Attribute
216
+ Classic Shades / (m) - Attribute
217
+ Classic Shades / (f) - Attribute
218
+ Clown Eyes Blue / (m) - Attribute
219
+ Clown Eyes Blue / (f) - Attribute
220
+ Clown Eyes Green / (m) - Attribute
221
+ Clown Eyes Green / (f) - Attribute
222
+ Clown Hair Green / (m) - Attribute
223
+ Clown Hair Green / (f) - Attribute
224
+ Clown Nose / (m) - Attribute
225
+ Clown Nose / (f) - Attribute
226
+ Cowboy Hat / (m) - Attribute
227
+ Cowboy Hat / (f) - Attribute
228
+ Crazy Hair / (m) - Attribute
229
+ Crazy Hair / (f) - Attribute
230
+ Dark Hair / (f) - Attribute
231
+ Do-rag / (m) - Attribute
232
+ Do-rag / (f) - Attribute
233
+ Earring / (m) - Attribute
234
+ Earring / (f) - Attribute
235
+ Eye Mask / (m) - Attribute
236
+ Eye Mask / (f) - Attribute
237
+ Eye Patch / (m) - Attribute
238
+ Eye Patch / (f) - Attribute
239
+ Fedora / (m) - Attribute
240
+ Fedora / (f) - Attribute
241
+ Front Beard / (m) - Attribute
242
+ Front Beard Dark / (m) - Attribute
243
+ Frown / (m) - Attribute
244
+ Frumpy Hair / (m) - Attribute
245
+ Frumpy Hair / (f) - Attribute
246
+ Green Eye Shadow / (f) - Attribute
247
+ Goat / (m) - Attribute
248
+ Gold Chain / (m) - Attribute
249
+ Gold Chain / (f) - Attribute
250
+ ...
251
+ ```
252
+
253
+ See the [**punks.spritesheet**](https://github.com/cryptopunksnotdead/punks.spritesheet) for more.
254
+
255
+
256
+
257
+
258
+ ### Query Command
259
+
260
+ _Query (builtin off-chain) punk contract for punk text attributes by IDs - use 0 to 9999_
261
+
262
+
263
+ Let's try punk #0:
264
+
265
+ ```
266
+ $ punk query 0
267
+ # -or-
268
+ $ punk q 0
269
+ ```
270
+
271
+ resulting in:
272
+
273
+ ```
274
+ ==> (1/1) punk #0...
275
+ female_2 earring blonde_bob green_eye_shadow
276
+ ```
277
+
278
+ Let's try some top sellers:
279
+
280
+ ```
281
+ $ punk query 7804 3100 5217 8857
282
+ # -or-
283
+ $ punk q 7804 3100 5217 8857
284
+ ```
285
+
286
+ resulting in:
287
+
288
+ ```
289
+ ==> (1/4) punk #7804...
290
+ alien cap_forward pipe small_shades
291
+ ==> (2/4) punk #3100...
292
+ alien headband
293
+ ==> (3/4) punk #5217...
294
+ ape gold_chain knitted_cap
295
+ ==> (4/4) punk #8857...
296
+ zombie wild_hair 3d_glasses
297
+ ```
298
+
299
+ Note: Yes, you can pass the text attributes to the generate command
300
+ to get a free "cleanroom" copy built from scratch / zero
301
+ that you own 100% forever.
302
+
303
+
304
+
305
+ ### Tile Command
306
+
307
+ _Get punk characters via image tiles from all-in-one punk series composite (`./punks.png`) - for IDs use 0 to 9999_
308
+
309
+
37
310
 
38
311
  Step 0 - Download the True Official Genuine CryptoPunks™ composite image
39
312
 
@@ -48,10 +321,10 @@ See [`punks.png` »](https://github.com/larvalabs/cryptopunks/blob/master/punks.
48
321
 
49
322
 
50
323
 
51
- Now let's give it a try. Let's mint punk #0, #2890, and #8219:
324
+ Now let's give it a try. Let's save punk #0, #2890, and #8219:
52
325
 
53
326
  ```
54
- $ punk 0 2890 8219
327
+ $ punk tile 0 2890 8219
55
328
  ```
56
329
 
57
330
  printing:
@@ -60,9 +333,9 @@ printing:
60
333
  ==> reading >./punks.png<...
61
334
  >ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b< SHA256 hash matching
62
335
  ✓ True Official Genuine CryptoPunks™ verified
63
- ==> (1/3) minting punk #0; writing to >./punk-0000.png<...
64
- ==> (2/3) minting punk #2890; writing to >./punk-2890.png<...
65
- ==> (3/3) minting punk #8219; writing to >./punk-8219.png<...
336
+ ==> (1/3) saving punk #0 to >./punk-0000.png<...
337
+ ==> (2/3) saving punk #2890 to >./punk-2890.png<...
338
+ ==> (3/3) saving punk #8219 to >./punk-8219.png<...
66
339
  ```
67
340
 
68
341
  And voila!
@@ -73,14 +346,14 @@ And voila!
73
346
 
74
347
 
75
348
 
76
- **Bonus: Try the `-z/--zoom` factor x2, x4, x8, etc.**
349
+ **Bonus: Try the `-z/--zoom` factor 2x, 4x, 8x, etc.**
77
350
 
78
- Let's give it a try. Let's mint punk #0, #2890, and #8219 in 2x format:
351
+ Let's give it a try. Let's save punk #0, #2890, and #8219 in 2x format:
79
352
 
80
353
  ```
81
- $ punk --zoom 2 0 2890 8219
354
+ $ punk --zoom 2 tile 0 2890 8219
82
355
  # -or-
83
- $ punk -z2 0 2890 8219
356
+ $ punk -z2 t 0 2890 8219
84
357
  ```
85
358
 
86
359
  printing:
@@ -90,9 +363,9 @@ printing:
90
363
  >ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b< SHA256 hash matching
91
364
  ✓ True Official Genuine CryptoPunks™ verified
92
365
  setting zoom to 2x
93
- ==> (1/3) minting punk #0; writing to >punk-0000x2.png<...
94
- ==> (2/3) minting punk #2890; writing to >punk-2890x2.png<...
95
- ==> (3/3) minting punk #8219; writing to >punk-8219x2.png<...
366
+ ==> (1/3) saving punk #0 to >punk-0000@2x.png<...
367
+ ==> (2/3) saving punk #2890 to >punk-2890@2x.png<...
368
+ ==> (3/3) saving punk #8219 to >punk-8219@2x.png<...
96
369
  ```
97
370
 
98
371
  And voila!
@@ -120,7 +393,7 @@ And so on.
120
393
 
121
394
 
122
395
 
123
- ## 10 000 More Punks - Unauthorized? No Way?!- Fuck the Establishment - Yes, You Can - Do-It-Yourself - Use Your Own Collections
396
+ **10 000 More Punks - Unauthorized? No Way?!- Fuck the Establishment - Yes, You Can - Do-It-Yourself - Use Your Own Collections**
124
397
 
125
398
 
126
399
  Use the `-f, --file=FILE` option
@@ -138,12 +411,12 @@ in the series.
138
411
 
139
412
 
140
413
 
141
- Let's mint punk #0, #19, #50, and #89
414
+ Let's save punk #0, #19, #50, and #89
142
415
  and let's add an offset of 10000
143
416
  (to start counting at 10000 instead of 0):
144
417
 
145
418
  ```
146
- $ punk 0 18 40 88 --file ./more-punks-1.png --offset 10000
419
+ $ punk --file ./more-punks-1.png --offset 10000 tile 0 18 40 88
147
420
  ```
148
421
 
149
422
  printing:
@@ -151,10 +424,10 @@ printing:
151
424
  ```
152
425
  ==> reading >./more-punks-1.png<...
153
426
  240x240 (height x width)
154
- ==> (1/4) minting punk #10000; writing to >./punk-10000.png<...
155
- ==> (2/4) minting punk #10018; writing to >./punk-10018.png<...
156
- ==> (3/4) minting punk #10040; writing to >./punk-10040.png<...
157
- ==> (4/4) minting punk #10040; writing to >./punk-10088.png<...
427
+ ==> (1/4) saving punk #10000 to >./punk-10000.png<...
428
+ ==> (2/4) saving punk #10018 to >./punk-10018.png<...
429
+ ==> (3/4) saving punk #10040 to >./punk-10040.png<...
430
+ ==> (4/4) saving punk #10040 to >./punk-10088.png<...
158
431
  ```
159
432
 
160
433
  And voila!
@@ -182,12 +455,12 @@ Let's try the second pack - that is, punks 100 to 199 in the series.
182
455
 
183
456
 
184
457
 
185
- Let's mint punk #0, #79, #80, and #90
458
+ Let's save punk #0, #79, #80, and #90
186
459
  and let's add an offset of 10100
187
460
  (to start counting at 10000 plus 100 instead of 0):
188
461
 
189
462
  ```
190
- $ punk 0 79 80 90 --file ./more-punks-2.png --offset 10100
463
+ $ punk --file ./more-punks-2.png --offset 10100 tile 0 79 80 90
191
464
  ```
192
465
 
193
466
  printing:
@@ -195,10 +468,10 @@ printing:
195
468
  ```
196
469
  ==> reading >./more-punks-2.png<...
197
470
  240x240 (height x width)
198
- ==> (1/4) minting punk #10100; writing to >./punk-10100.png<...
199
- ==> (2/4) minting punk #10179; writing to >./punk-10179.png<...
200
- ==> (3/4) minting punk #10180; writing to >./punk-10180.png<...
201
- ==> (4/4) minting punk #10190; writing to >./punk-10190.png<...
471
+ ==> (1/4) saving punk #10100 to >./punk-10100.png<...
472
+ ==> (2/4) saving punk #10179 to >./punk-10179.png<...
473
+ ==> (3/4) saving punk #10180 to >./punk-10180.png<...
474
+ ==> (4/4) saving punk #10190 to >./punk-10190.png<...
202
475
  ```
203
476
 
204
477
  And voila! Super rare - world's first female alien and much more.
@@ -223,10 +496,12 @@ And so on.
223
496
 
224
497
 
225
498
 
499
+
500
+
226
501
  ## Usage in Your Scripts
227
502
 
228
503
 
229
- Yes, you can mint punks in your own scripts
504
+ Yes, you can generate punks in your own scripts
230
505
  and much more.
231
506
  See the
232
507
  [**Programming CryptoPunks & Copypastas Step-by-Step Booklet / Guide »**](https://github.com/cryptopunksnotdead/programming-cryptopunks)
data/Rakefile CHANGED
@@ -20,6 +20,7 @@ Hoe.spec 'cryptopunks' do
20
20
  self.extra_deps = [
21
21
  ['pixelart'],
22
22
  ['csvreader'],
23
+ ['gli'],
23
24
  ]
24
25
 
25
26
  self.licenses = ['Public Domain']