-
Notifications
You must be signed in to change notification settings - Fork 1
/
storeDirectory.mjs
85 lines (66 loc) · 2.61 KB
/
storeDirectory.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import { NFTStorage, File } from 'nft.storage'
import { getFilesFromPath } from 'files-from-path'
const token = process.env.TOKEN
async function main() {
const path = process.argv.slice(2)
let assetId = 0;
let metadataList = [];
async function uploadFiles(type, color, quantity) {
const innerPath = `${path}/${type}/${color}`;
for (let i=0; i<quantity; i += 1) {
var f = new File([`/${type}/${color}; asset id: ${assetId}; v2`], "detris/game-type.txt", {type: "text/plain"})
console.log(innerPath, i)
const files = await getFilesFromPath(innerPath)
const storage = new NFTStorage({ token })
console.log(`storing ${files.length} file(s) from ${innerPath}`)
const cid = await storage.storeDirectory([...files, f], {
pathPrefix: "detris/",
})
const metadata = {
image: `https://ipfs.io/ipfs/${cid}/detris/preview.png`,
name: `Detris #${assetId}`,
description: "Detris! A playable nft. Play anywhere, everywhere.",
animation_url: `https://ipfs.io/ipfs/${cid}/detris`,
attributes: [
{
trait_type: "Detris Type",
value: type,
},
{
trait_type: "Color Scheme",
value: color,
},
]
}
metadataList.push(new File([JSON.stringify(metadata)], `${assetId}`, {type: "application/json"}));
const status = await storage.status(cid)
console.log(status, "Code status")
assetId += 1;
}
}
// DEMO ASSETS DEPLOYED
await uploadFiles("solid", "detris", 4)
await uploadFiles("border", "detris", 3)
await uploadFiles("border pieces", "detris", 2)
await uploadFiles("neon", "detris", 2)
await uploadFiles("single", "detris", 1)
await uploadFiles("inverted", "detris", 1)
// ASSETS TO DEPLOY FOR A 99 COLLECTION
// await uploadFiles("solid", "detris", 42)
// await uploadFiles("solid", "palette76", 9)
// await uploadFiles("solid", "palette7998", 2)
// await uploadFiles("border", "detris", 19)
// await uploadFiles("border", "palette76", 4)
// await uploadFiles("border", "palette7998", 1)
// await uploadFiles("border pieces", "detris", 9)
// await uploadFiles("border pieces", "palette76", 2)
// await uploadFiles("border pieces", "palette7998", 1)
// await uploadFiles("neon", "detris", 3)
// await uploadFiles("neon", "palette76", 2)
// await uploadFiles("neon", "palette7998", 1)
// await uploadFiles("single", "white", 3)
// await uploadFiles("inverted", "black", 1)
const storage = new NFTStorage({ token })
const cid = await storage.storeDirectory(metadataList, {})
}
main()