@bannynet/core-v6 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.
- package/README.md +53 -0
- package/SKILLS.md +94 -0
- package/deployments/banny-core-v5/arbitrum/Banny721TokenUriResolver.json +1809 -0
- package/deployments/banny-core-v5/arbitrum_sepolia/Banny721TokenUriResolver.json +1795 -0
- package/deployments/banny-core-v5/base/Banny721TokenUriResolver.json +1810 -0
- package/deployments/banny-core-v5/base_sepolia/Banny721TokenUriResolver.json +1796 -0
- package/deployments/banny-core-v5/ethereum/Banny721TokenUriResolver.json +1795 -0
- package/deployments/banny-core-v5/optimism/Banny721TokenUriResolver.json +1810 -0
- package/deployments/banny-core-v5/optimism_sepolia/Banny721TokenUriResolver.json +1796 -0
- package/deployments/banny-core-v5/sepolia/Banny721TokenUriResolver.json +1795 -0
- package/foundry.toml +22 -0
- package/package.json +53 -0
- package/remappings.txt +1 -0
- package/script/1.Fix.s.sol +290 -0
- package/script/Add.Denver.s.sol +75 -0
- package/script/AirdropOutfits.s.sol +2302 -0
- package/script/Deploy.s.sol +440 -0
- package/script/Drop1.s.sol +979 -0
- package/script/MigrationContractArbitrum.sol +494 -0
- package/script/MigrationContractArbitrum1.sol +170 -0
- package/script/MigrationContractArbitrum2.sol +204 -0
- package/script/MigrationContractArbitrum3.sol +174 -0
- package/script/MigrationContractArbitrum4.sol +478 -0
- package/script/MigrationContractBase1.sol +444 -0
- package/script/MigrationContractBase2.sol +175 -0
- package/script/MigrationContractBase3.sol +309 -0
- package/script/MigrationContractBase4.sol +350 -0
- package/script/MigrationContractBase5.sol +259 -0
- package/script/MigrationContractEthereum1.sol +468 -0
- package/script/MigrationContractEthereum2.sol +306 -0
- package/script/MigrationContractEthereum3.sol +349 -0
- package/script/MigrationContractEthereum4.sol +352 -0
- package/script/MigrationContractEthereum5.sol +354 -0
- package/script/MigrationContractEthereum6.sol +270 -0
- package/script/MigrationContractEthereum7.sol +439 -0
- package/script/MigrationContractEthereum8.sol +385 -0
- package/script/MigrationContractOptimism.sol +196 -0
- package/script/helpers/BannyverseDeploymentLib.sol +73 -0
- package/script/helpers/MigrationHelper.sol +155 -0
- package/script/outfit_drop/generate-migration.js +3441 -0
- package/script/outfit_drop/raw.json +43276 -0
- package/slither-ci.config.json +10 -0
- package/sphinx.lock +521 -0
- package/src/Banny721TokenUriResolver.sol +1288 -0
- package/src/interfaces/IBanny721TokenUriResolver.sol +137 -0
- package/test/Banny721TokenUriResolver.t.sol +669 -0
- package/test/BannyAttacks.t.sol +322 -0
- package/test/DecorateFlow.t.sol +1056 -0
|
@@ -0,0 +1,979 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity 0.8.23;
|
|
3
|
+
|
|
4
|
+
import {JB721TierConfig} from "@bananapus/721-hook-v5/src/structs/JB721TierConfig.sol";
|
|
5
|
+
import {JB721TiersHook} from "@bananapus/721-hook-v5/src/JB721TiersHook.sol";
|
|
6
|
+
|
|
7
|
+
import "./helpers/BannyverseDeploymentLib.sol";
|
|
8
|
+
import "@rev-net/core-v5/script/helpers/RevnetCoreDeploymentLib.sol";
|
|
9
|
+
import "@openzeppelin/contracts/utils/Strings.sol";
|
|
10
|
+
|
|
11
|
+
import {Sphinx} from "@sphinx-labs/contracts/SphinxPlugin.sol";
|
|
12
|
+
import {Script} from "forge-std/Script.sol";
|
|
13
|
+
|
|
14
|
+
contract Drop1Script is Script, Sphinx {
|
|
15
|
+
/// @notice tracks the deployment of the revnet contracts for the chain we are deploying to.
|
|
16
|
+
RevnetCoreDeployment revnet;
|
|
17
|
+
/// @notice tracks the deployment of the bannyverse contracts for the chain we are deploying to.
|
|
18
|
+
BannyverseDeployment bannyverse;
|
|
19
|
+
|
|
20
|
+
JB721TiersHook hook;
|
|
21
|
+
address reserveBeneficiary;
|
|
22
|
+
|
|
23
|
+
function configureSphinx() public override {
|
|
24
|
+
// TODO: Update to contain revnet devs.
|
|
25
|
+
sphinxConfig.projectName = "banny-core-v5";
|
|
26
|
+
sphinxConfig.mainnets = ["ethereum", "optimism", "base", "arbitrum"];
|
|
27
|
+
sphinxConfig.testnets = ["ethereum_sepolia", "optimism_sepolia", "base_sepolia", "arbitrum_sepolia"];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function run() public {
|
|
31
|
+
reserveBeneficiary = safeAddress();
|
|
32
|
+
|
|
33
|
+
// Get the deployment addresses for the revnet contracts for this chain.
|
|
34
|
+
revnet = RevnetCoreDeploymentLib.getDeployment(
|
|
35
|
+
vm.envOr("REVNET_CORE_DEPLOYMENT_PATH", string("node_modules/@rev-net/core-v5/deployments/"))
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
// Get the deployment addresses for the 721 hook contracts for this chain.
|
|
39
|
+
bannyverse =
|
|
40
|
+
BannyverseDeploymentLib.getDeployment(vm.envOr("BANNYVERSE_CORE_DEPLOYMENT_PATH", string("deployments/")));
|
|
41
|
+
|
|
42
|
+
// Get the hook address by using the deployer.
|
|
43
|
+
hook = JB721TiersHook(address(revnet.basic_deployer.tiered721HookOf(bannyverse.revnetId)));
|
|
44
|
+
deploy();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function deploy() public sphinx {
|
|
48
|
+
uint256 decimals = 18;
|
|
49
|
+
|
|
50
|
+
string[] memory names = new string[](47);
|
|
51
|
+
bytes32[] memory svgHashes = new bytes32[](47);
|
|
52
|
+
JB721TierConfig[] memory products = new JB721TierConfig[](47);
|
|
53
|
+
|
|
54
|
+
// Desk
|
|
55
|
+
names[0] = "Work Station";
|
|
56
|
+
svgHashes[0] = bytes32(0xab22e30cb6daaac109ea557a14af9b65f680d46cc563a0b25dd42483f9286bf7);
|
|
57
|
+
products[0] = JB721TierConfig({
|
|
58
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
59
|
+
initialSupply: 50,
|
|
60
|
+
votingUnits: 0,
|
|
61
|
+
reserveFrequency: 0,
|
|
62
|
+
reserveBeneficiary: address(0),
|
|
63
|
+
encodedIPFSUri: bytes32(0x5665b0c125d1bccccb78cc0ffc429e66ce41ed3bccebba51209d04636cadbd2c),
|
|
64
|
+
category: 1,
|
|
65
|
+
discountPercent: 0,
|
|
66
|
+
cannotIncreaseDiscountPercent: false,
|
|
67
|
+
allowOwnerMint: false,
|
|
68
|
+
useReserveBeneficiaryAsDefault: false,
|
|
69
|
+
transfersPausable: false,
|
|
70
|
+
useVotingUnits: false,
|
|
71
|
+
cannotBeRemoved: false
|
|
72
|
+
});
|
|
73
|
+
// Hay field
|
|
74
|
+
names[1] = "Hay Field";
|
|
75
|
+
svgHashes[1] = bytes32(0x62f97f668e227ab9d6eaf5bd35504974f3df175ee2d952c39add59b7d141c0de);
|
|
76
|
+
products[1] = JB721TierConfig({
|
|
77
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
78
|
+
initialSupply: 250,
|
|
79
|
+
votingUnits: 0,
|
|
80
|
+
reserveFrequency: 0,
|
|
81
|
+
reserveBeneficiary: address(0),
|
|
82
|
+
encodedIPFSUri: bytes32(0x233dd4173ef4ed0f60822a469277bb328b5ae056d8980301f7bd7ad9df780099),
|
|
83
|
+
category: 1,
|
|
84
|
+
discountPercent: 0,
|
|
85
|
+
cannotIncreaseDiscountPercent: false,
|
|
86
|
+
allowOwnerMint: false,
|
|
87
|
+
useReserveBeneficiaryAsDefault: false,
|
|
88
|
+
transfersPausable: false,
|
|
89
|
+
useVotingUnits: false,
|
|
90
|
+
cannotBeRemoved: false
|
|
91
|
+
});
|
|
92
|
+
// Pew pew
|
|
93
|
+
names[2] = "Pew Pew";
|
|
94
|
+
svgHashes[2] = bytes32(0x71f6918188cd0bc9eb1d5baed9340491efb41af1d358bbeb10912a02e95323f8);
|
|
95
|
+
products[2] = JB721TierConfig({
|
|
96
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
97
|
+
initialSupply: 150,
|
|
98
|
+
votingUnits: 0,
|
|
99
|
+
reserveFrequency: 0,
|
|
100
|
+
reserveBeneficiary: address(0),
|
|
101
|
+
encodedIPFSUri: bytes32(0x6cb06872575a04a0c4527157eb4719be10b6474d08aa2ce2a4ac5bcb0da996ea),
|
|
102
|
+
category: 2,
|
|
103
|
+
discountPercent: 0,
|
|
104
|
+
cannotIncreaseDiscountPercent: false,
|
|
105
|
+
allowOwnerMint: false,
|
|
106
|
+
useReserveBeneficiaryAsDefault: false,
|
|
107
|
+
transfersPausable: false,
|
|
108
|
+
useVotingUnits: false,
|
|
109
|
+
cannotBeRemoved: false
|
|
110
|
+
});
|
|
111
|
+
// Bandolph staff
|
|
112
|
+
names[3] = "Bandolph Staff";
|
|
113
|
+
svgHashes[3] = bytes32(0x790e607150e343fd457bb0cefe5fd12cd216b722dabfa19adbee1f1e537fd1c7);
|
|
114
|
+
products[3] = JB721TierConfig({
|
|
115
|
+
price: uint104(125 * (10 ** (decimals - 3))),
|
|
116
|
+
initialSupply: 250,
|
|
117
|
+
votingUnits: 0,
|
|
118
|
+
reserveFrequency: 0,
|
|
119
|
+
reserveBeneficiary: address(0),
|
|
120
|
+
encodedIPFSUri: bytes32(0x7206771942e806053d6ed8aa90040e53a07319e4fd1f938fc4a10879b7bd2da9),
|
|
121
|
+
category: 2,
|
|
122
|
+
discountPercent: 0,
|
|
123
|
+
cannotIncreaseDiscountPercent: false,
|
|
124
|
+
allowOwnerMint: false,
|
|
125
|
+
useReserveBeneficiaryAsDefault: false,
|
|
126
|
+
transfersPausable: false,
|
|
127
|
+
useVotingUnits: false,
|
|
128
|
+
cannotBeRemoved: false
|
|
129
|
+
});
|
|
130
|
+
// Block chain
|
|
131
|
+
names[4] = "Block Chain";
|
|
132
|
+
svgHashes[4] = bytes32(0x5e609d387ea091bc8884a753ddd28dd43b8ed1243b29de6e9354ef1ab109a0b9);
|
|
133
|
+
products[4] = JB721TierConfig({
|
|
134
|
+
price: uint104(125 * (10 ** (decimals - 2))),
|
|
135
|
+
initialSupply: 12,
|
|
136
|
+
votingUnits: 0,
|
|
137
|
+
reserveFrequency: 12,
|
|
138
|
+
reserveBeneficiary: address(0),
|
|
139
|
+
encodedIPFSUri: bytes32(0xef6478be50575bade53e7ce4c9fb5b399643bcabed94f2111afb63e97fb9fd44),
|
|
140
|
+
category: 3,
|
|
141
|
+
discountPercent: 0,
|
|
142
|
+
cannotIncreaseDiscountPercent: false,
|
|
143
|
+
allowOwnerMint: false,
|
|
144
|
+
useReserveBeneficiaryAsDefault: false,
|
|
145
|
+
transfersPausable: false,
|
|
146
|
+
useVotingUnits: false,
|
|
147
|
+
cannotBeRemoved: false
|
|
148
|
+
});
|
|
149
|
+
// Astronaut Head
|
|
150
|
+
names[5] = "Astronaut Head";
|
|
151
|
+
svgHashes[5] = bytes32(0x7054504d4eef582f2e3411df719fba9d90e94c2054bf48e2efa175b4f37cc1e9);
|
|
152
|
+
products[5] = JB721TierConfig({
|
|
153
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
154
|
+
initialSupply: 1000,
|
|
155
|
+
votingUnits: 0,
|
|
156
|
+
reserveFrequency: 0,
|
|
157
|
+
reserveBeneficiary: address(0),
|
|
158
|
+
encodedIPFSUri: bytes32(0xe26d20762024435aedd91058ac9bc9900d719e1f7a04cace501d83a4c1f40941),
|
|
159
|
+
category: 4,
|
|
160
|
+
discountPercent: 0,
|
|
161
|
+
cannotIncreaseDiscountPercent: false,
|
|
162
|
+
allowOwnerMint: false,
|
|
163
|
+
useReserveBeneficiaryAsDefault: false,
|
|
164
|
+
transfersPausable: false,
|
|
165
|
+
useVotingUnits: false,
|
|
166
|
+
cannotBeRemoved: false
|
|
167
|
+
});
|
|
168
|
+
// Nerd
|
|
169
|
+
names[6] = "Nerd Glasses";
|
|
170
|
+
svgHashes[6] = bytes32(0x964356f8cbc40b81653a219d94da9d49d0bd5b745aa6bf4db16a14aa81c129ac);
|
|
171
|
+
products[6] = JB721TierConfig({
|
|
172
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
173
|
+
initialSupply: 100,
|
|
174
|
+
votingUnits: 0,
|
|
175
|
+
reserveFrequency: 25,
|
|
176
|
+
reserveBeneficiary: address(0),
|
|
177
|
+
encodedIPFSUri: bytes32(0x9f76cb495fd79397cba4fe3d377a5aa2fdd63df218f3b3022c6cc8e32478b494),
|
|
178
|
+
category: 6,
|
|
179
|
+
discountPercent: 0,
|
|
180
|
+
cannotIncreaseDiscountPercent: false,
|
|
181
|
+
allowOwnerMint: false,
|
|
182
|
+
useReserveBeneficiaryAsDefault: false,
|
|
183
|
+
transfersPausable: false,
|
|
184
|
+
useVotingUnits: false,
|
|
185
|
+
cannotBeRemoved: false
|
|
186
|
+
});
|
|
187
|
+
// Banny vision pro
|
|
188
|
+
names[7] = "Banny Vision Pro";
|
|
189
|
+
svgHashes[7] = bytes32(0x12702d5d843aff058610a01286446401be4175c27abaaec144d8970f99db34e2);
|
|
190
|
+
products[7] = JB721TierConfig({
|
|
191
|
+
price: uint104(1 * (10 ** decimals)),
|
|
192
|
+
initialSupply: 100,
|
|
193
|
+
votingUnits: 0,
|
|
194
|
+
reserveFrequency: 25,
|
|
195
|
+
reserveBeneficiary: reserveBeneficiary,
|
|
196
|
+
encodedIPFSUri: bytes32(0xf01423f9dae3de4adc7e372e6902a351e2c6193a385dde90f5baf37165914831),
|
|
197
|
+
category: 6,
|
|
198
|
+
discountPercent: 0,
|
|
199
|
+
cannotIncreaseDiscountPercent: false,
|
|
200
|
+
allowOwnerMint: false,
|
|
201
|
+
useReserveBeneficiaryAsDefault: true,
|
|
202
|
+
transfersPausable: false,
|
|
203
|
+
useVotingUnits: false,
|
|
204
|
+
cannotBeRemoved: false
|
|
205
|
+
});
|
|
206
|
+
// Cyberpunk glasses
|
|
207
|
+
names[8] = "Cyberpunk Glasses";
|
|
208
|
+
svgHashes[8] = bytes32(0x5930f0bb8cb34d82b88a13391bcccf936e09be535f2848ba7911b2a98615585d);
|
|
209
|
+
products[8] = JB721TierConfig({
|
|
210
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
211
|
+
initialSupply: 150,
|
|
212
|
+
votingUnits: 0,
|
|
213
|
+
reserveFrequency: 0,
|
|
214
|
+
reserveBeneficiary: address(0),
|
|
215
|
+
encodedIPFSUri: bytes32(0x325c138f1f38e5b5f90a57a248a2f5afe6af738b2adfc825cf9f413bbcf50fa1),
|
|
216
|
+
category: 6,
|
|
217
|
+
discountPercent: 0,
|
|
218
|
+
cannotIncreaseDiscountPercent: false,
|
|
219
|
+
allowOwnerMint: false,
|
|
220
|
+
useReserveBeneficiaryAsDefault: false,
|
|
221
|
+
transfersPausable: false,
|
|
222
|
+
useVotingUnits: false,
|
|
223
|
+
cannotBeRemoved: false
|
|
224
|
+
});
|
|
225
|
+
// Investor shades
|
|
226
|
+
names[9] = "Investor Shades";
|
|
227
|
+
svgHashes[9] = bytes32(0x4410654936785cff70498421a8805ad2f9d5101a8c18168264ef94df671db10e);
|
|
228
|
+
products[9] = JB721TierConfig({
|
|
229
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
230
|
+
initialSupply: 250,
|
|
231
|
+
votingUnits: 0,
|
|
232
|
+
reserveFrequency: 50,
|
|
233
|
+
reserveBeneficiary: address(0),
|
|
234
|
+
encodedIPFSUri: bytes32(0x7dc7e556a7ac39c473da85165df3d094c6ed9258003fb7dc3d9a8582bcb0dc7f),
|
|
235
|
+
category: 6,
|
|
236
|
+
discountPercent: 0,
|
|
237
|
+
cannotIncreaseDiscountPercent: false,
|
|
238
|
+
allowOwnerMint: false,
|
|
239
|
+
useReserveBeneficiaryAsDefault: false,
|
|
240
|
+
transfersPausable: false,
|
|
241
|
+
useVotingUnits: false,
|
|
242
|
+
cannotBeRemoved: false
|
|
243
|
+
});
|
|
244
|
+
// Proff glasses
|
|
245
|
+
names[10] = "Proff Glasses";
|
|
246
|
+
svgHashes[10] = bytes32(0x54004065d83ca03befdf72236331f5b532c00920613d8774ebd8edbf277c345a);
|
|
247
|
+
products[10] = JB721TierConfig({
|
|
248
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
249
|
+
initialSupply: 200,
|
|
250
|
+
votingUnits: 0,
|
|
251
|
+
reserveFrequency: 0,
|
|
252
|
+
reserveBeneficiary: address(0),
|
|
253
|
+
encodedIPFSUri: bytes32(0xb06dbd64696994798dee9e00d406a649191524a95e715532f1bdebc92f00aebd),
|
|
254
|
+
category: 6,
|
|
255
|
+
discountPercent: 0,
|
|
256
|
+
cannotIncreaseDiscountPercent: false,
|
|
257
|
+
allowOwnerMint: false,
|
|
258
|
+
useReserveBeneficiaryAsDefault: false,
|
|
259
|
+
transfersPausable: false,
|
|
260
|
+
useVotingUnits: false,
|
|
261
|
+
cannotBeRemoved: false
|
|
262
|
+
});
|
|
263
|
+
// Gap tooth
|
|
264
|
+
names[11] = "Gap Teeth";
|
|
265
|
+
svgHashes[11] = bytes32(0x5b5a29873435b40784f64c5d9bb5d95ecebd433c57493e38f3eb816a0dd9fd7f);
|
|
266
|
+
products[11] = JB721TierConfig({
|
|
267
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
268
|
+
initialSupply: 50,
|
|
269
|
+
votingUnits: 0,
|
|
270
|
+
reserveFrequency: 10,
|
|
271
|
+
reserveBeneficiary: address(0),
|
|
272
|
+
encodedIPFSUri: bytes32(0x52815d712399165b921df61795581a8c20ad9acf3502e777e20a782b7bc11d54),
|
|
273
|
+
category: 7,
|
|
274
|
+
discountPercent: 0,
|
|
275
|
+
cannotIncreaseDiscountPercent: false,
|
|
276
|
+
allowOwnerMint: false,
|
|
277
|
+
useReserveBeneficiaryAsDefault: false,
|
|
278
|
+
transfersPausable: false,
|
|
279
|
+
useVotingUnits: false,
|
|
280
|
+
cannotBeRemoved: false
|
|
281
|
+
});
|
|
282
|
+
// Dorthy shoes
|
|
283
|
+
names[12] = "Dorthy Shoes";
|
|
284
|
+
svgHashes[12] = bytes32(0x67a973e1023d2a9a37270e4345f9e93b30828ec64bc81c0d1d56028f8e976491);
|
|
285
|
+
products[12] = JB721TierConfig({
|
|
286
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
287
|
+
initialSupply: 250,
|
|
288
|
+
votingUnits: 0,
|
|
289
|
+
reserveFrequency: 0,
|
|
290
|
+
reserveBeneficiary: address(0),
|
|
291
|
+
encodedIPFSUri: bytes32(0x8a1b694033a47ad08b648d2608fa1b86dccdb0f431795c470605a819988f55ad),
|
|
292
|
+
category: 8,
|
|
293
|
+
discountPercent: 0,
|
|
294
|
+
cannotIncreaseDiscountPercent: false,
|
|
295
|
+
allowOwnerMint: false,
|
|
296
|
+
useReserveBeneficiaryAsDefault: false,
|
|
297
|
+
transfersPausable: false,
|
|
298
|
+
useVotingUnits: false,
|
|
299
|
+
cannotBeRemoved: false
|
|
300
|
+
});
|
|
301
|
+
// Astronaut boots
|
|
302
|
+
names[13] = "Astronaut Boots";
|
|
303
|
+
svgHashes[13] = bytes32(0x539f9417dd22ba8aacd4029753f6058b5f905eef2a3b07acb519c964fc57ce50);
|
|
304
|
+
products[13] = JB721TierConfig({
|
|
305
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
306
|
+
initialSupply: 250,
|
|
307
|
+
votingUnits: 0,
|
|
308
|
+
reserveFrequency: 0,
|
|
309
|
+
reserveBeneficiary: address(0),
|
|
310
|
+
encodedIPFSUri: bytes32(0x39cd82854f76c22afccaf4ad6f055d4e225c2e225f322154f1c3d327cbaccb5a),
|
|
311
|
+
category: 8,
|
|
312
|
+
discountPercent: 0,
|
|
313
|
+
cannotIncreaseDiscountPercent: false,
|
|
314
|
+
allowOwnerMint: false,
|
|
315
|
+
useReserveBeneficiaryAsDefault: false,
|
|
316
|
+
transfersPausable: false,
|
|
317
|
+
useVotingUnits: false,
|
|
318
|
+
cannotBeRemoved: false
|
|
319
|
+
});
|
|
320
|
+
// Flops
|
|
321
|
+
names[14] = "Flops";
|
|
322
|
+
svgHashes[14] = bytes32(0x0a322735b4b89b7a593a86615ccc03e14867ce1cfd57c1aa9a61a841d9498103);
|
|
323
|
+
products[14] = JB721TierConfig({
|
|
324
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
325
|
+
initialSupply: 500,
|
|
326
|
+
votingUnits: 0,
|
|
327
|
+
reserveFrequency: 10,
|
|
328
|
+
reserveBeneficiary: address(0),
|
|
329
|
+
encodedIPFSUri: bytes32(0x4e87f483ea20c1537f24c2a586acd14819ca2a6cba1bab68365361e45374f9f9),
|
|
330
|
+
category: 8,
|
|
331
|
+
discountPercent: 0,
|
|
332
|
+
cannotIncreaseDiscountPercent: false,
|
|
333
|
+
allowOwnerMint: false,
|
|
334
|
+
useReserveBeneficiaryAsDefault: false,
|
|
335
|
+
transfersPausable: false,
|
|
336
|
+
useVotingUnits: false,
|
|
337
|
+
cannotBeRemoved: false
|
|
338
|
+
});
|
|
339
|
+
// Astronaut Body
|
|
340
|
+
names[15] = "Astronaut Suit";
|
|
341
|
+
svgHashes[15] = bytes32(0xdbcfc1891ab9d56cb964f3432f867a77293352e38edca3b59b34061e46a31b83);
|
|
342
|
+
products[15] = JB721TierConfig({
|
|
343
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
344
|
+
initialSupply: 250,
|
|
345
|
+
votingUnits: 0,
|
|
346
|
+
reserveFrequency: 0,
|
|
347
|
+
reserveBeneficiary: address(0),
|
|
348
|
+
encodedIPFSUri: bytes32(0x5fbc1c58d608acd436c18e11edc72d3ae436e1a4c15d127b28a9a24879013d3c),
|
|
349
|
+
category: 9,
|
|
350
|
+
discountPercent: 0,
|
|
351
|
+
cannotIncreaseDiscountPercent: false,
|
|
352
|
+
allowOwnerMint: false,
|
|
353
|
+
useReserveBeneficiaryAsDefault: false,
|
|
354
|
+
transfersPausable: false,
|
|
355
|
+
useVotingUnits: false,
|
|
356
|
+
cannotBeRemoved: false
|
|
357
|
+
});
|
|
358
|
+
// Sweatsuit
|
|
359
|
+
names[16] = "Sweatsuit";
|
|
360
|
+
svgHashes[16] = bytes32(0xfbb3a6dde059e3e3115c3e83fd675d1739ec29afa62999fa759ed878f48e9aa2);
|
|
361
|
+
products[16] = JB721TierConfig({
|
|
362
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
363
|
+
initialSupply: 24,
|
|
364
|
+
votingUnits: 0,
|
|
365
|
+
reserveFrequency: 6,
|
|
366
|
+
reserveBeneficiary: address(0),
|
|
367
|
+
encodedIPFSUri: bytes32(0x823466de69eaf605d3a62366e5e9dbd6649a71da146f791f94628d4749a2da55),
|
|
368
|
+
category: 9,
|
|
369
|
+
discountPercent: 0,
|
|
370
|
+
cannotIncreaseDiscountPercent: false,
|
|
371
|
+
allowOwnerMint: false,
|
|
372
|
+
useReserveBeneficiaryAsDefault: false,
|
|
373
|
+
transfersPausable: false,
|
|
374
|
+
useVotingUnits: false,
|
|
375
|
+
cannotBeRemoved: false
|
|
376
|
+
});
|
|
377
|
+
// Dorthy dress
|
|
378
|
+
names[17] = "Dorthy Dress";
|
|
379
|
+
svgHashes[17] = bytes32(0xfc0eda6d0165d339239bfda3cf68d630949b03c588e3b6d45175c6fc8f00e289);
|
|
380
|
+
products[17] = JB721TierConfig({
|
|
381
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
382
|
+
initialSupply: 250,
|
|
383
|
+
votingUnits: 0,
|
|
384
|
+
reserveFrequency: 0,
|
|
385
|
+
reserveBeneficiary: address(0),
|
|
386
|
+
encodedIPFSUri: bytes32(0x017db86219678b824995b8556e7073d65af87212671312212365497708675c41),
|
|
387
|
+
category: 9,
|
|
388
|
+
discountPercent: 0,
|
|
389
|
+
cannotIncreaseDiscountPercent: false,
|
|
390
|
+
allowOwnerMint: false,
|
|
391
|
+
useReserveBeneficiaryAsDefault: false,
|
|
392
|
+
transfersPausable: false,
|
|
393
|
+
useVotingUnits: false,
|
|
394
|
+
cannotBeRemoved: false
|
|
395
|
+
});
|
|
396
|
+
// Geisha body
|
|
397
|
+
names[18] = "Geisha Gown";
|
|
398
|
+
svgHashes[18] = bytes32(0x5f8c77bc896a90a35580078ee7ea51460b5694aec68db3d749fd1dc0e9b05c6c);
|
|
399
|
+
products[18] = JB721TierConfig({
|
|
400
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
401
|
+
initialSupply: 100,
|
|
402
|
+
votingUnits: 0,
|
|
403
|
+
reserveFrequency: 50,
|
|
404
|
+
reserveBeneficiary: address(0),
|
|
405
|
+
encodedIPFSUri: bytes32(0xdf7d4084b087b22cc172e1df3a2b465b5386a950e9bcd53ed424014a0a86ee57),
|
|
406
|
+
category: 9,
|
|
407
|
+
discountPercent: 0,
|
|
408
|
+
cannotIncreaseDiscountPercent: false,
|
|
409
|
+
allowOwnerMint: false,
|
|
410
|
+
useReserveBeneficiaryAsDefault: false,
|
|
411
|
+
transfersPausable: false,
|
|
412
|
+
useVotingUnits: false,
|
|
413
|
+
cannotBeRemoved: false
|
|
414
|
+
});
|
|
415
|
+
// Baggies
|
|
416
|
+
names[19] = "Baggies";
|
|
417
|
+
svgHashes[19] = bytes32(0x2f0cab70c7d07048ccc7b6855bba39cdd95be15a109c8eaa401d9be6d503ca2a);
|
|
418
|
+
products[19] = JB721TierConfig({
|
|
419
|
+
price: uint104(15 * (10 ** (decimals - 2))),
|
|
420
|
+
initialSupply: 30,
|
|
421
|
+
votingUnits: 0,
|
|
422
|
+
reserveFrequency: 15,
|
|
423
|
+
reserveBeneficiary: address(0),
|
|
424
|
+
encodedIPFSUri: bytes32(0x745b3b4f18aab6ad0d8465d34751ca8eb5b9c267dee6ec8bf63686b508afacf3),
|
|
425
|
+
category: 10,
|
|
426
|
+
discountPercent: 0,
|
|
427
|
+
cannotIncreaseDiscountPercent: false,
|
|
428
|
+
allowOwnerMint: false,
|
|
429
|
+
useReserveBeneficiaryAsDefault: false,
|
|
430
|
+
transfersPausable: false,
|
|
431
|
+
useVotingUnits: false,
|
|
432
|
+
cannotBeRemoved: false
|
|
433
|
+
});
|
|
434
|
+
// Jonny utah shirt
|
|
435
|
+
names[20] = "Jonny Utah Shirt";
|
|
436
|
+
svgHashes[20] = bytes32(0xf62770cf77965461df8528baec000228c713e749b4dcc12e278b1025507dc0ff);
|
|
437
|
+
products[20] = JB721TierConfig({
|
|
438
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
439
|
+
initialSupply: 250,
|
|
440
|
+
votingUnits: 0,
|
|
441
|
+
reserveFrequency: 0,
|
|
442
|
+
reserveBeneficiary: address(0),
|
|
443
|
+
encodedIPFSUri: bytes32(0x815c7dfb119da1e3802754f8ce364caf7a8069e331e35c3f20446800579d8df8),
|
|
444
|
+
category: 11,
|
|
445
|
+
discountPercent: 0,
|
|
446
|
+
cannotIncreaseDiscountPercent: false,
|
|
447
|
+
allowOwnerMint: false,
|
|
448
|
+
useReserveBeneficiaryAsDefault: false,
|
|
449
|
+
transfersPausable: false,
|
|
450
|
+
useVotingUnits: false,
|
|
451
|
+
cannotBeRemoved: false
|
|
452
|
+
});
|
|
453
|
+
// Doc coat
|
|
454
|
+
names[21] = "Doc Coat";
|
|
455
|
+
svgHashes[21] = bytes32(0x6650b989b4ad53d12fd306bf4a12f5afbca2072c3241fdcb96e434443039d1f7);
|
|
456
|
+
products[21] = JB721TierConfig({
|
|
457
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
458
|
+
initialSupply: 250,
|
|
459
|
+
votingUnits: 0,
|
|
460
|
+
reserveFrequency: 0,
|
|
461
|
+
reserveBeneficiary: address(0),
|
|
462
|
+
encodedIPFSUri: bytes32(0xc77fe2f93a5a48ad7f59a3c6c40dd76317e47605fcb74b85a4c5bea160fdab6e),
|
|
463
|
+
category: 11,
|
|
464
|
+
discountPercent: 0,
|
|
465
|
+
cannotIncreaseDiscountPercent: false,
|
|
466
|
+
allowOwnerMint: false,
|
|
467
|
+
useReserveBeneficiaryAsDefault: false,
|
|
468
|
+
transfersPausable: false,
|
|
469
|
+
useVotingUnits: false,
|
|
470
|
+
cannotBeRemoved: false
|
|
471
|
+
});
|
|
472
|
+
// Goat jersey
|
|
473
|
+
names[22] = "Goat Jersey";
|
|
474
|
+
svgHashes[22] = bytes32(0xcca8b9f46f75822d78e7f3125ba4832e24ffe1711f6f01d00cdccb6669f752f2);
|
|
475
|
+
products[22] = JB721TierConfig({
|
|
476
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
477
|
+
initialSupply: 50,
|
|
478
|
+
votingUnits: 0,
|
|
479
|
+
reserveFrequency: 10,
|
|
480
|
+
reserveBeneficiary: address(0),
|
|
481
|
+
encodedIPFSUri: bytes32(0x2b62afa12feb307f005902e6bec09f15f8f5d7ba09d937f1162e5d2f00c21e12),
|
|
482
|
+
category: 11,
|
|
483
|
+
discountPercent: 0,
|
|
484
|
+
cannotIncreaseDiscountPercent: false,
|
|
485
|
+
allowOwnerMint: false,
|
|
486
|
+
useReserveBeneficiaryAsDefault: false,
|
|
487
|
+
transfersPausable: false,
|
|
488
|
+
useVotingUnits: false,
|
|
489
|
+
cannotBeRemoved: false
|
|
490
|
+
});
|
|
491
|
+
// Irie tshirt
|
|
492
|
+
names[23] = "Irie Shirt";
|
|
493
|
+
svgHashes[23] = bytes32(0xd26b2eaad19396b85f4ae09c702717969b72b8c63021821e0d35addd85e7bbd1);
|
|
494
|
+
products[23] = JB721TierConfig({
|
|
495
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
496
|
+
initialSupply: 250,
|
|
497
|
+
votingUnits: 0,
|
|
498
|
+
reserveFrequency: 0,
|
|
499
|
+
reserveBeneficiary: address(0),
|
|
500
|
+
encodedIPFSUri: bytes32(0x4d4b149bded92db977ac35a77bcfff72270eaee404db8751b27ec18030511d3b),
|
|
501
|
+
category: 11,
|
|
502
|
+
discountPercent: 0,
|
|
503
|
+
cannotIncreaseDiscountPercent: false,
|
|
504
|
+
allowOwnerMint: false,
|
|
505
|
+
useReserveBeneficiaryAsDefault: false,
|
|
506
|
+
transfersPausable: false,
|
|
507
|
+
useVotingUnits: false,
|
|
508
|
+
cannotBeRemoved: false
|
|
509
|
+
});
|
|
510
|
+
// Punk jacket
|
|
511
|
+
names[24] = "Punk Jacket";
|
|
512
|
+
svgHashes[24] = bytes32(0x44cb972aab236c8c01afef7addb0f19a0fab02cfdc7b5065d662b53ab970f310);
|
|
513
|
+
products[24] = JB721TierConfig({
|
|
514
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
515
|
+
initialSupply: 50,
|
|
516
|
+
votingUnits: 0,
|
|
517
|
+
reserveFrequency: 0,
|
|
518
|
+
reserveBeneficiary: address(0),
|
|
519
|
+
encodedIPFSUri: bytes32(0x5ec40dc2aad2a009266337a198d4b9098cd968d08c06cdc328efd4789f974aa4),
|
|
520
|
+
category: 11,
|
|
521
|
+
discountPercent: 0,
|
|
522
|
+
cannotIncreaseDiscountPercent: false,
|
|
523
|
+
allowOwnerMint: false,
|
|
524
|
+
useReserveBeneficiaryAsDefault: false,
|
|
525
|
+
transfersPausable: false,
|
|
526
|
+
useVotingUnits: false,
|
|
527
|
+
cannotBeRemoved: false
|
|
528
|
+
});
|
|
529
|
+
// Zipper jacket
|
|
530
|
+
names[25] = "Zipper Jacket";
|
|
531
|
+
svgHashes[25] = bytes32(0x7177dfec617d77cf78e8393fe373b68c7bc755edd1541c0decc952e99ec80304);
|
|
532
|
+
products[25] = JB721TierConfig({
|
|
533
|
+
price: uint104(15 * (10 ** (decimals - 2))),
|
|
534
|
+
initialSupply: 25,
|
|
535
|
+
votingUnits: 0,
|
|
536
|
+
reserveFrequency: 25,
|
|
537
|
+
reserveBeneficiary: address(0),
|
|
538
|
+
encodedIPFSUri: bytes32(0xb8658c65907f280bfbd228ec384f0dfdfe55401505dc0f303d7d3d6a68a6414b),
|
|
539
|
+
category: 11,
|
|
540
|
+
discountPercent: 0,
|
|
541
|
+
cannotIncreaseDiscountPercent: false,
|
|
542
|
+
allowOwnerMint: false,
|
|
543
|
+
useReserveBeneficiaryAsDefault: false,
|
|
544
|
+
transfersPausable: false,
|
|
545
|
+
useVotingUnits: false,
|
|
546
|
+
cannotBeRemoved: false
|
|
547
|
+
});
|
|
548
|
+
// Zucco tshirt
|
|
549
|
+
names[26] = "Zucco Tshirt";
|
|
550
|
+
svgHashes[26] = bytes32(0x2a69ce643e565cb4fe648dc9b03020b0749ec780748d43153ee4c6770c76adbf);
|
|
551
|
+
products[26] = JB721TierConfig({
|
|
552
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
553
|
+
initialSupply: 1000,
|
|
554
|
+
votingUnits: 0,
|
|
555
|
+
reserveFrequency: 0,
|
|
556
|
+
reserveBeneficiary: address(0),
|
|
557
|
+
encodedIPFSUri: bytes32(0x04e22ea49d80f346b7a5a9013169470824f71faa7d9e0155a71f4afc3fa63f89),
|
|
558
|
+
category: 11,
|
|
559
|
+
discountPercent: 0,
|
|
560
|
+
cannotIncreaseDiscountPercent: false,
|
|
561
|
+
allowOwnerMint: false,
|
|
562
|
+
useReserveBeneficiaryAsDefault: false,
|
|
563
|
+
transfersPausable: false,
|
|
564
|
+
useVotingUnits: false,
|
|
565
|
+
cannotBeRemoved: false
|
|
566
|
+
});
|
|
567
|
+
// Ice Cube
|
|
568
|
+
names[27] = "Ice Cube";
|
|
569
|
+
svgHashes[27] = bytes32(0x032b50792f9929066168187acd5eeb101f8528f538ef850913c81dc4b6452842);
|
|
570
|
+
products[27] = JB721TierConfig({
|
|
571
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
572
|
+
initialSupply: 250,
|
|
573
|
+
votingUnits: 0,
|
|
574
|
+
reserveFrequency: 50,
|
|
575
|
+
reserveBeneficiary: address(0),
|
|
576
|
+
encodedIPFSUri: bytes32(0xf7c17eff468f5dd227b991d773b7a36b93cd997751547f9908a4bf33e31ba701),
|
|
577
|
+
category: 11,
|
|
578
|
+
discountPercent: 0,
|
|
579
|
+
cannotIncreaseDiscountPercent: false,
|
|
580
|
+
allowOwnerMint: false,
|
|
581
|
+
useReserveBeneficiaryAsDefault: false,
|
|
582
|
+
transfersPausable: false,
|
|
583
|
+
useVotingUnits: false,
|
|
584
|
+
cannotBeRemoved: false
|
|
585
|
+
});
|
|
586
|
+
// Club beanie
|
|
587
|
+
names[28] = "Club Beanie";
|
|
588
|
+
svgHashes[28] = bytes32(0x0a8d7c8ff075db0e66638bb51eea732a53641b09b39de68d1cbeafe9099f9b6e);
|
|
589
|
+
products[28] = JB721TierConfig({
|
|
590
|
+
price: uint104(15 * (10 ** (decimals - 3))),
|
|
591
|
+
initialSupply: 300,
|
|
592
|
+
votingUnits: 0,
|
|
593
|
+
reserveFrequency: 50,
|
|
594
|
+
reserveBeneficiary: address(0),
|
|
595
|
+
encodedIPFSUri: bytes32(0x9a29e975b191f800744d74b11c580fdd74b2db73c95426af36e28cf00d66da97),
|
|
596
|
+
category: 12,
|
|
597
|
+
discountPercent: 0,
|
|
598
|
+
cannotIncreaseDiscountPercent: false,
|
|
599
|
+
allowOwnerMint: false,
|
|
600
|
+
useReserveBeneficiaryAsDefault: false,
|
|
601
|
+
transfersPausable: false,
|
|
602
|
+
useVotingUnits: false,
|
|
603
|
+
cannotBeRemoved: false
|
|
604
|
+
});
|
|
605
|
+
// Dorthy hair
|
|
606
|
+
names[29] = "Dorthy Hair";
|
|
607
|
+
svgHashes[29] = bytes32(0x5f2bec3082d7039474f6cba827a3fbd4d4f8e21f22d304edfbc6de77a8b529cf);
|
|
608
|
+
products[29] = JB721TierConfig({
|
|
609
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
610
|
+
initialSupply: 250,
|
|
611
|
+
votingUnits: 0,
|
|
612
|
+
reserveFrequency: 0,
|
|
613
|
+
reserveBeneficiary: address(0),
|
|
614
|
+
encodedIPFSUri: bytes32(0x52a03dc3e983121f275cadc2d86626e0fca8a9901f3dc7d0bbee826e5d3d409d),
|
|
615
|
+
category: 12,
|
|
616
|
+
discountPercent: 0,
|
|
617
|
+
cannotIncreaseDiscountPercent: false,
|
|
618
|
+
allowOwnerMint: false,
|
|
619
|
+
useReserveBeneficiaryAsDefault: false,
|
|
620
|
+
transfersPausable: false,
|
|
621
|
+
useVotingUnits: false,
|
|
622
|
+
cannotBeRemoved: false
|
|
623
|
+
});
|
|
624
|
+
// Farmer hat
|
|
625
|
+
names[30] = "Farmer Hat";
|
|
626
|
+
svgHashes[30] = bytes32(0xcf90bc8459345bcfae00796c4641c0bc8868c01d6339a54ef4d3c4fa1737cfd8);
|
|
627
|
+
products[30] = JB721TierConfig({
|
|
628
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
629
|
+
initialSupply: 250,
|
|
630
|
+
votingUnits: 0,
|
|
631
|
+
reserveFrequency: 25,
|
|
632
|
+
reserveBeneficiary: address(0),
|
|
633
|
+
encodedIPFSUri: bytes32(0xc583623dc7a3e61bfc04813f8c975eba8a22aeafe3d741edff1e2c97ac520737),
|
|
634
|
+
category: 12,
|
|
635
|
+
discountPercent: 0,
|
|
636
|
+
cannotIncreaseDiscountPercent: false,
|
|
637
|
+
allowOwnerMint: false,
|
|
638
|
+
useReserveBeneficiaryAsDefault: false,
|
|
639
|
+
transfersPausable: false,
|
|
640
|
+
useVotingUnits: false,
|
|
641
|
+
cannotBeRemoved: false
|
|
642
|
+
});
|
|
643
|
+
// Geisha hair
|
|
644
|
+
names[31] = "Geisha Hair";
|
|
645
|
+
svgHashes[31] = bytes32(0x17b939b04709c357480bdfa54cf2007d7898f4bf048bf12efa6cd8e3af4d711c);
|
|
646
|
+
products[31] = JB721TierConfig({
|
|
647
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
648
|
+
initialSupply: 100,
|
|
649
|
+
votingUnits: 0,
|
|
650
|
+
reserveFrequency: 25,
|
|
651
|
+
reserveBeneficiary: address(0),
|
|
652
|
+
encodedIPFSUri: bytes32(0x58f8e217cfafd0a6feff40f4822790cdc19aba5dd4d4948f4c1bd5e313c90e8d),
|
|
653
|
+
category: 12,
|
|
654
|
+
discountPercent: 0,
|
|
655
|
+
cannotIncreaseDiscountPercent: false,
|
|
656
|
+
allowOwnerMint: false,
|
|
657
|
+
useReserveBeneficiaryAsDefault: false,
|
|
658
|
+
transfersPausable: false,
|
|
659
|
+
useVotingUnits: false,
|
|
660
|
+
cannotBeRemoved: false
|
|
661
|
+
});
|
|
662
|
+
// Headphones
|
|
663
|
+
names[32] = "Headphones";
|
|
664
|
+
svgHashes[32] = bytes32(0xf1850876ede53102140881e04a4a0e532ba6a08bc0fb64dee279d11c98d64dbf);
|
|
665
|
+
products[32] = JB721TierConfig({
|
|
666
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
667
|
+
initialSupply: 500,
|
|
668
|
+
votingUnits: 0,
|
|
669
|
+
reserveFrequency: 10,
|
|
670
|
+
reserveBeneficiary: address(0),
|
|
671
|
+
encodedIPFSUri: bytes32(0x3e67840649fabab6d62f92bad701a6248b77f86ea8fcd66dc88dfbcba1134d85),
|
|
672
|
+
category: 12,
|
|
673
|
+
discountPercent: 0,
|
|
674
|
+
cannotIncreaseDiscountPercent: false,
|
|
675
|
+
allowOwnerMint: false,
|
|
676
|
+
useReserveBeneficiaryAsDefault: false,
|
|
677
|
+
transfersPausable: false,
|
|
678
|
+
useVotingUnits: false,
|
|
679
|
+
cannotBeRemoved: false
|
|
680
|
+
});
|
|
681
|
+
// Natty dread
|
|
682
|
+
names[33] = "Natty Dred";
|
|
683
|
+
svgHashes[33] = bytes32(0x04ae3342ce08da16f61d32e4ce7034dff0223e462afa48019b90c94afc19b939);
|
|
684
|
+
products[33] = JB721TierConfig({
|
|
685
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
686
|
+
initialSupply: 100,
|
|
687
|
+
votingUnits: 0,
|
|
688
|
+
reserveFrequency: 0,
|
|
689
|
+
reserveBeneficiary: address(0),
|
|
690
|
+
encodedIPFSUri: bytes32(0xd4724e692969066fc0b3587b8e18d1589205d1e1f133d7f9f8d63d14b6d1862f),
|
|
691
|
+
category: 12,
|
|
692
|
+
discountPercent: 0,
|
|
693
|
+
cannotIncreaseDiscountPercent: false,
|
|
694
|
+
allowOwnerMint: false,
|
|
695
|
+
useReserveBeneficiaryAsDefault: false,
|
|
696
|
+
transfersPausable: false,
|
|
697
|
+
useVotingUnits: false,
|
|
698
|
+
cannotBeRemoved: false
|
|
699
|
+
});
|
|
700
|
+
// Peachhair
|
|
701
|
+
names[34] = "Peach Hair";
|
|
702
|
+
svgHashes[34] = bytes32(0xdf7b9e74c552908290a05388f905a503978a289c44ffb61e510df43f2955d435);
|
|
703
|
+
products[34] = JB721TierConfig({
|
|
704
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
705
|
+
initialSupply: 100,
|
|
706
|
+
votingUnits: 0,
|
|
707
|
+
reserveFrequency: 0,
|
|
708
|
+
reserveBeneficiary: address(0),
|
|
709
|
+
encodedIPFSUri: bytes32(0xde4c6e589f4e99cda7205236a99db750638236007b2dd03d79de1146102d7f81),
|
|
710
|
+
category: 12,
|
|
711
|
+
discountPercent: 0,
|
|
712
|
+
cannotIncreaseDiscountPercent: false,
|
|
713
|
+
allowOwnerMint: false,
|
|
714
|
+
useReserveBeneficiaryAsDefault: false,
|
|
715
|
+
transfersPausable: false,
|
|
716
|
+
useVotingUnits: false,
|
|
717
|
+
cannotBeRemoved: false
|
|
718
|
+
});
|
|
719
|
+
// Proff hair
|
|
720
|
+
names[35] = "Proff Hair";
|
|
721
|
+
svgHashes[35] = bytes32(0x501769b2b47a8aedf4b328f6cf0076200df07ce2087f5e082f49e815f54595b9);
|
|
722
|
+
products[35] = JB721TierConfig({
|
|
723
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
724
|
+
initialSupply: 200,
|
|
725
|
+
votingUnits: 0,
|
|
726
|
+
reserveFrequency: 0,
|
|
727
|
+
reserveBeneficiary: address(0),
|
|
728
|
+
encodedIPFSUri: bytes32(0x766001db70e4a18e76dbbd9e4b0f9e47b5a9c4daa1a7c3727190a154daabfa1c),
|
|
729
|
+
category: 12,
|
|
730
|
+
discountPercent: 0,
|
|
731
|
+
cannotIncreaseDiscountPercent: false,
|
|
732
|
+
allowOwnerMint: false,
|
|
733
|
+
useReserveBeneficiaryAsDefault: false,
|
|
734
|
+
transfersPausable: false,
|
|
735
|
+
useVotingUnits: false,
|
|
736
|
+
cannotBeRemoved: false
|
|
737
|
+
});
|
|
738
|
+
// Catana
|
|
739
|
+
names[36] = "Catana";
|
|
740
|
+
svgHashes[36] = bytes32(0xbe7e7bb20da87fffa92e867bf0cd3267df180e24ba6eae7a1d434c56856ef2f5);
|
|
741
|
+
products[36] = JB721TierConfig({
|
|
742
|
+
price: uint104(1 * (10 ** (decimals - 2))),
|
|
743
|
+
initialSupply: 250,
|
|
744
|
+
votingUnits: 0,
|
|
745
|
+
reserveFrequency: 0,
|
|
746
|
+
reserveBeneficiary: address(0),
|
|
747
|
+
encodedIPFSUri: bytes32(0xa4d2eb02df6eb99cbbdc3603a116b3b9dcd45f865a8c8396611ea5f879deee59),
|
|
748
|
+
category: 13,
|
|
749
|
+
discountPercent: 0,
|
|
750
|
+
cannotIncreaseDiscountPercent: false,
|
|
751
|
+
allowOwnerMint: false,
|
|
752
|
+
useReserveBeneficiaryAsDefault: false,
|
|
753
|
+
transfersPausable: false,
|
|
754
|
+
useVotingUnits: false,
|
|
755
|
+
cannotBeRemoved: false
|
|
756
|
+
});
|
|
757
|
+
// Chefs knife
|
|
758
|
+
names[37] = "Chefs Knife";
|
|
759
|
+
svgHashes[37] = bytes32(0x705180b5aee8e57d0a0783d22fc30dc95e3e84fac36e9d96fef96fabfa58d1f9);
|
|
760
|
+
products[37] = JB721TierConfig({
|
|
761
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
762
|
+
initialSupply: 500,
|
|
763
|
+
votingUnits: 0,
|
|
764
|
+
reserveFrequency: 100,
|
|
765
|
+
reserveBeneficiary: address(0),
|
|
766
|
+
encodedIPFSUri: bytes32(0x18abc38e7f1c5c014398f705131aac80196dcd0da2b5f02c103e1a549433e8b3),
|
|
767
|
+
category: 13,
|
|
768
|
+
discountPercent: 0,
|
|
769
|
+
cannotIncreaseDiscountPercent: false,
|
|
770
|
+
allowOwnerMint: false,
|
|
771
|
+
useReserveBeneficiaryAsDefault: false,
|
|
772
|
+
transfersPausable: false,
|
|
773
|
+
useVotingUnits: false,
|
|
774
|
+
cannotBeRemoved: false
|
|
775
|
+
});
|
|
776
|
+
// Cheap beer
|
|
777
|
+
names[38] = "Cheap Beer";
|
|
778
|
+
svgHashes[38] = bytes32(0x993a2c657f43e19820f3e23677e650705d0c8c6a0ccd88a381aa54d2da7ba047);
|
|
779
|
+
products[38] = JB721TierConfig({
|
|
780
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
781
|
+
initialSupply: 2000,
|
|
782
|
+
votingUnits: 0,
|
|
783
|
+
reserveFrequency: 100,
|
|
784
|
+
reserveBeneficiary: address(0),
|
|
785
|
+
encodedIPFSUri: bytes32(0xc498a98bea66a8b44297631f136a7326f7a28b882058829588979b186d06baff),
|
|
786
|
+
category: 13,
|
|
787
|
+
discountPercent: 0,
|
|
788
|
+
cannotIncreaseDiscountPercent: false,
|
|
789
|
+
allowOwnerMint: false,
|
|
790
|
+
useReserveBeneficiaryAsDefault: false,
|
|
791
|
+
transfersPausable: false,
|
|
792
|
+
useVotingUnits: false,
|
|
793
|
+
cannotBeRemoved: false
|
|
794
|
+
});
|
|
795
|
+
// Constitution
|
|
796
|
+
names[39] = "Constitution";
|
|
797
|
+
svgHashes[39] = bytes32(0xaf0826d8eac1e57789077f43e6f979488da6f619f72f9f0ff50a52ebcca3bfa3);
|
|
798
|
+
products[39] = JB721TierConfig({
|
|
799
|
+
price: uint104(1787 * (10 ** (decimals - 6))),
|
|
800
|
+
initialSupply: 1000,
|
|
801
|
+
votingUnits: 0,
|
|
802
|
+
reserveFrequency: 100,
|
|
803
|
+
reserveBeneficiary: address(0),
|
|
804
|
+
encodedIPFSUri: bytes32(0x3bd1186293e2d3e4def734a669c348976e1ba0cdc628a19cd5a3b38e0bee28f9),
|
|
805
|
+
category: 13,
|
|
806
|
+
discountPercent: 0,
|
|
807
|
+
cannotIncreaseDiscountPercent: false,
|
|
808
|
+
allowOwnerMint: false,
|
|
809
|
+
useReserveBeneficiaryAsDefault: false,
|
|
810
|
+
transfersPausable: false,
|
|
811
|
+
useVotingUnits: false,
|
|
812
|
+
cannotBeRemoved: false
|
|
813
|
+
});
|
|
814
|
+
// DJ booth
|
|
815
|
+
names[40] = "DJ Deck";
|
|
816
|
+
svgHashes[40] = bytes32(0x2c9538556986d134ddec2831e768233f587b242e887df9bb359b3aefffa3c5a6);
|
|
817
|
+
products[40] = JB721TierConfig({
|
|
818
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
819
|
+
initialSupply: 10,
|
|
820
|
+
votingUnits: 0,
|
|
821
|
+
reserveFrequency: 10,
|
|
822
|
+
reserveBeneficiary: address(0),
|
|
823
|
+
encodedIPFSUri: bytes32(0x6b8bfbf33e574747b69039adfc6788101047a4593db7ea7ff4f6fa5a890e9ecf),
|
|
824
|
+
category: 13,
|
|
825
|
+
discountPercent: 0,
|
|
826
|
+
cannotIncreaseDiscountPercent: false,
|
|
827
|
+
allowOwnerMint: false,
|
|
828
|
+
useReserveBeneficiaryAsDefault: false,
|
|
829
|
+
transfersPausable: false,
|
|
830
|
+
useVotingUnits: false,
|
|
831
|
+
cannotBeRemoved: false
|
|
832
|
+
});
|
|
833
|
+
// Gas can
|
|
834
|
+
names[41] = "Gas Can";
|
|
835
|
+
svgHashes[41] = bytes32(0x89808b70d019077e4f986b4a60af4ec15fc72ed022bc5e5476441d98f8ce1d1d);
|
|
836
|
+
products[41] = JB721TierConfig({
|
|
837
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
838
|
+
initialSupply: 25,
|
|
839
|
+
votingUnits: 0,
|
|
840
|
+
reserveFrequency: 25,
|
|
841
|
+
reserveBeneficiary: address(0),
|
|
842
|
+
encodedIPFSUri: bytes32(0xf11d1cea4163e0dfa2be8d60b0cd82d075fb37d969e40439df4e91db53bf7f3e),
|
|
843
|
+
category: 13,
|
|
844
|
+
discountPercent: 0,
|
|
845
|
+
cannotIncreaseDiscountPercent: false,
|
|
846
|
+
allowOwnerMint: false,
|
|
847
|
+
useReserveBeneficiaryAsDefault: false,
|
|
848
|
+
transfersPausable: false,
|
|
849
|
+
useVotingUnits: false,
|
|
850
|
+
cannotBeRemoved: false
|
|
851
|
+
});
|
|
852
|
+
// Lightsaber
|
|
853
|
+
names[42] = "Lightsaber";
|
|
854
|
+
svgHashes[42] = bytes32(0xf7017a80e9fa4c3fc052a701c04374176620a8e5befa39b708a51293c4d8f406);
|
|
855
|
+
products[42] = JB721TierConfig({
|
|
856
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
857
|
+
initialSupply: 250,
|
|
858
|
+
votingUnits: 0,
|
|
859
|
+
reserveFrequency: 50,
|
|
860
|
+
reserveBeneficiary: address(0),
|
|
861
|
+
encodedIPFSUri: bytes32(0xedf8136f97347d1fee1fc14b1b9cbdb6d170a75c3860a92664c56060712567f3),
|
|
862
|
+
category: 13,
|
|
863
|
+
discountPercent: 0,
|
|
864
|
+
cannotIncreaseDiscountPercent: false,
|
|
865
|
+
allowOwnerMint: false,
|
|
866
|
+
useReserveBeneficiaryAsDefault: false,
|
|
867
|
+
transfersPausable: false,
|
|
868
|
+
useVotingUnits: false,
|
|
869
|
+
cannotBeRemoved: false
|
|
870
|
+
});
|
|
871
|
+
// Potion
|
|
872
|
+
names[43] = "Potion";
|
|
873
|
+
svgHashes[43] = bytes32(0xefdbac65db3868ead1c1093ea20f0b2d77e9095567f6358e246ba160ec545e09);
|
|
874
|
+
products[43] = JB721TierConfig({
|
|
875
|
+
price: uint104(1 * (10 ** (decimals - 1))),
|
|
876
|
+
initialSupply: 100,
|
|
877
|
+
votingUnits: 0,
|
|
878
|
+
reserveFrequency: 25,
|
|
879
|
+
reserveBeneficiary: address(0),
|
|
880
|
+
encodedIPFSUri: bytes32(0xbcc0c314f94ccb0f8f2717aff0b2096a28ace5b70465b5b4e106981fdbceb238),
|
|
881
|
+
category: 13,
|
|
882
|
+
discountPercent: 0,
|
|
883
|
+
cannotIncreaseDiscountPercent: false,
|
|
884
|
+
allowOwnerMint: false,
|
|
885
|
+
useReserveBeneficiaryAsDefault: false,
|
|
886
|
+
transfersPausable: false,
|
|
887
|
+
useVotingUnits: false,
|
|
888
|
+
cannotBeRemoved: false
|
|
889
|
+
});
|
|
890
|
+
// Dagger
|
|
891
|
+
names[44] = "Dagger";
|
|
892
|
+
svgHashes[44] = bytes32(0xaf60de81f2609b847b7d6e97ef6c09c9e3d91cabe6f955bd8828f342f1558738);
|
|
893
|
+
products[44] = JB721TierConfig({
|
|
894
|
+
price: uint104(1 * (10 ** (decimals - 3))),
|
|
895
|
+
initialSupply: 150,
|
|
896
|
+
votingUnits: 0,
|
|
897
|
+
reserveFrequency: 30,
|
|
898
|
+
reserveBeneficiary: address(0),
|
|
899
|
+
encodedIPFSUri: bytes32(0x867d8d8b9da0b5d8a00024d548e5f6e33562d521dff8c245764b6206003d1970),
|
|
900
|
+
category: 13,
|
|
901
|
+
discountPercent: 0,
|
|
902
|
+
cannotIncreaseDiscountPercent: false,
|
|
903
|
+
allowOwnerMint: false,
|
|
904
|
+
useReserveBeneficiaryAsDefault: false,
|
|
905
|
+
transfersPausable: false,
|
|
906
|
+
useVotingUnits: false,
|
|
907
|
+
cannotBeRemoved: false
|
|
908
|
+
});
|
|
909
|
+
// Duct Tape
|
|
910
|
+
names[45] = "Duct Tape";
|
|
911
|
+
svgHashes[45] = bytes32(0x962ce657908ee4fb58b3e2d1f77109b36428e7a4446d6127bcb6c06aa2360637);
|
|
912
|
+
products[45] = JB721TierConfig({
|
|
913
|
+
price: uint104((10 ** (decimals + 2))),
|
|
914
|
+
initialSupply: 1,
|
|
915
|
+
votingUnits: 0,
|
|
916
|
+
reserveFrequency: 0,
|
|
917
|
+
reserveBeneficiary: address(0),
|
|
918
|
+
encodedIPFSUri: bytes32(0x876078bdfb8cdcc4359bb946274a9964e84877beac0ecd59fbf293c3bc2457c9),
|
|
919
|
+
category: 14,
|
|
920
|
+
discountPercent: 0,
|
|
921
|
+
cannotIncreaseDiscountPercent: false,
|
|
922
|
+
allowOwnerMint: false,
|
|
923
|
+
useReserveBeneficiaryAsDefault: false,
|
|
924
|
+
transfersPausable: false,
|
|
925
|
+
useVotingUnits: false,
|
|
926
|
+
cannotBeRemoved: false
|
|
927
|
+
});
|
|
928
|
+
// Mouthstraw
|
|
929
|
+
names[46] = "Wheat Straw";
|
|
930
|
+
svgHashes[46] = bytes32(0x112b8217bb82aebc91e80c935244dce8aa30d4d8df5f98382054b97037dc0c94);
|
|
931
|
+
products[46] = JB721TierConfig({
|
|
932
|
+
price: uint104(1 * (10 ** decimals)),
|
|
933
|
+
initialSupply: 15,
|
|
934
|
+
votingUnits: 0,
|
|
935
|
+
reserveFrequency: 15,
|
|
936
|
+
reserveBeneficiary: address(0),
|
|
937
|
+
encodedIPFSUri: bytes32(0x1d1484b4b37a882e59ab5a01c1a32528e703e15156b9bb9b5372b61fec84c0df),
|
|
938
|
+
category: 16,
|
|
939
|
+
discountPercent: 0,
|
|
940
|
+
cannotIncreaseDiscountPercent: false,
|
|
941
|
+
allowOwnerMint: false,
|
|
942
|
+
useReserveBeneficiaryAsDefault: false,
|
|
943
|
+
transfersPausable: false,
|
|
944
|
+
useVotingUnits: false,
|
|
945
|
+
cannotBeRemoved: false
|
|
946
|
+
});
|
|
947
|
+
|
|
948
|
+
uint256[] memory productIds = new uint256[](47);
|
|
949
|
+
for (uint256 i; i < 47; i++) {
|
|
950
|
+
productIds[i] = i + 5;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
if (false) {
|
|
954
|
+
bytes memory adjustTiersData = abi.encodeCall(JB721TiersHook.adjustTiers, (products, new uint256[](0)));
|
|
955
|
+
vm.writeFile(
|
|
956
|
+
string.concat("./", vm.toString(block.chainid), "-adjustTiers.hex.txt"), vm.toString(adjustTiersData)
|
|
957
|
+
);
|
|
958
|
+
|
|
959
|
+
bytes memory setSvgHashData =
|
|
960
|
+
abi.encodeCall(Banny721TokenUriResolver.setSvgHashsOf, (productIds, svgHashes));
|
|
961
|
+
|
|
962
|
+
vm.writeFile(
|
|
963
|
+
string.concat("./", vm.toString(block.chainid), "-setSvgHashOf.hex.txt"), vm.toString(setSvgHashData)
|
|
964
|
+
);
|
|
965
|
+
|
|
966
|
+
bytes memory setProductNamesData =
|
|
967
|
+
abi.encodeCall(Banny721TokenUriResolver.setProductNames, (productIds, names));
|
|
968
|
+
vm.writeFile(
|
|
969
|
+
string.concat("./", vm.toString(block.chainid), "-setProductNames.hex.txt"),
|
|
970
|
+
vm.toString(setProductNamesData)
|
|
971
|
+
);
|
|
972
|
+
} else {
|
|
973
|
+
hook.adjustTiers(products, new uint256[](0));
|
|
974
|
+
bannyverse.resolver.setSvgHashsOf(productIds, svgHashes);
|
|
975
|
+
bannyverse.resolver.setProductNames(productIds, names);
|
|
976
|
+
bannyverse.resolver.setSvgBaseUri("https://bannyverse.infura-ipfs.io/ipfs/");
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
}
|