-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnuxt.config.ts
171 lines (170 loc) · 8.36 KB
/
nuxt.config.ts
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill';
import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill';
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
app: {
head: {
meta: [
{
"name": "viewport",
"content": "width=device-width, initial-scale=1"
},
{
"charset": "utf-8"
}
],
link: [
{ // Bootstrap
rel: "stylesheet",
href: " https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
},
{ // Bootstrap icons
rel: "stylesheet",
href: "https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css"
},
{ // Custom
rel: "stylesheet",
href: "/css/custom.css"
}
],
script: [
{
src: "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
}
]
}
},
components: false,
css: [
'vue-toastification/dist/index.css'
],
modules: [
'@pinia/nuxt',
'@vueuse/nuxt',
],
router: {
options: {
hashMode: false
}
},
runtimeConfig: {
public: {
activityPointsAddress: "",
activityPointsRatio: 1_000_000,
airdropApAddress: "", // chat token claim for APs
airdropClaimDomainsAddress: "", // chat token claim for domain holders
blockExplorerBaseUrl: "https://basescan.org",
chatTokenAddress: "", // chat token address
chatTokenImage: "", // chat token image
chatTokenSymbol: "", // chat token symbol or name
domainRequiredToPost: false,
expiryCollections: 1000 * 60 * 60 * 24 * 7, // must be in milliseconds (0 means no expiration)
expiryUsernames: 1000 * 60 * 60 * 24 * 7, // must be in milliseconds (0 means no expiration)
favicon: "/img/favicon.svg",
fileUploadEnabled: true, // enable/disable file uploads (enable only if external file storage is used, e.g. IPFS via Spheron)
fileUploadSizeLimit: 1 * 1024 * 1024, // max file upload size in bytes (1 * 1024 * 1024 = 1 MB)
fileUploadTokenService: process.env.FILE_UPLOAD_SERVICE || "netlify", // "netlify" or "vercel" (or leave empty for no file uploads)
getPostsLimit: 30, // number of posts to fetch from Orbis in the getPosts() function
governanceUrl: "", // governance url (snapshot, Tally, etc.)
iggyPostAddress: "0x06A7Ab7Bb68b0ad6eB7688C5781E60BE6AFc658d",
iggyPostMinterAddress: "0x5e54CebB2612744cB56547bC7CC41466ad7ac557",
iggyPostStatsAddress: "0xF40284a811c82b4B9ab22E94Bb909Df6d2c66C08",
ipfsGateway: "https://cloudflare-ipfs.com/ipfs/",
keysAddress: "", // FriendKeys contract address
keysContext: "",
keysFeatured: ["tempe", "tekr"],
linkPreviews: process.env.LINK_PREVIEW_SERVICE || "netlify", // "netlify", "vercel", or "microlink" (or leave empty for no link previews)
lpTokenAddress: "", // liquidity pool token (token to stake in the staking contract)
lpTokenSymbol: "LP tokens", // LP token symbol
marketplacePostNftUrl: "https://opensea.io/assets/base/0x06A7Ab7Bb68b0ad6eB7688C5781E60BE6AFc658d",
marketplacePostNftItemUrl: "https://opensea.io/assets/base/0x06A7Ab7Bb68b0ad6eB7688C5781E60BE6AFc658d/", // url (append nft id to it)
marketplaceNftCollectionBaseUrl: "https://opensea.io/assets/base/", // url (append nft address to it)
newsletterLink: "https://paragraph.xyz/@iggy?modal=subscribe",
nftDefaultRatio: 1, // default ratio for the NFT price bonding curve
nftLaunchpadBondingAddress: "0x6D738c53AD1dB7685CAca85302825aA9aCc33a62", // NFT launchpad with bonding curve contract address
nftLaunchpadLatestItems: 8, // number of latest NFTs to show in the NFT launchpad
nftOrbisContext: "kjzl6cwe1jw148wq50ose4mjrt17aodei2xor9kbw72b3wzvgzu7wm3jlhaghd0", // Orbis context for NFT collection pages
orbisCategories: [ // use only alphanumeric ASCII characters for slugs! (no spaces, only dash is allowed)
{ "slug": "all", "title": "All posts", "hidden": false }, // not a real tag, just denotes the absence of a tag (always keep it here)
{ "slug": "general", "title": "General discussion", "hidden": false },
{ "slug": "gm", "title": "GM/GN", "hidden": true },
{ "slug": "shill", "title": "Shill & discuss projects", "hidden": true },
{ "slug": "nfts", "title": "Memes & NFTs", "hidden": false }, // keep this category for the purpose of the NFT launchpad
{ "slug": "governance", "title": "Governance", "hidden": true },
{ "slug": "food", "title": "Food & recipes", "hidden": true },
{ "slug": "movie", "title": "Movies & Music", "hidden": true },
{ "slug": "music", "title": "Music", "hidden": true },
{ "slug": "random", "title": "Random", "hidden": false },
],
orbisContext: "kjzl6cwe1jw148wq50ose4mjrt17aodei2xor9kbw72b3wzvgzu7wm3jlhaghd0", // production context
orbisTest: false, // if true, test context will be used instead of the production one
orbisTestContext: "kjzl6cwe1jw145tfqv2eqv8tiz6puo27meyz4smz40atppuc13tulqca87k35z2", // test context
previewImage: "/img/cover.png",
previewImageAirdrop: "/img/cover-airdrop.png",
previewImageNftCollection: "/img/cover-nft-collection.png",
previewImageNftCreate: "/img/cover-nft-create.png",
previewImageNftLaunchpad: "/img/cover-nft-launchpad.png",
previewImagePost: "/img/cover-post.png",
previewImagePostNft: "/img/cover-post-nft.png",
previewImageProfile: "/img/cover-profile.png",
previewImageStake: "/img/cover-stake.png",
profileMintedPostIdsMax: 36, // max number of minted post ids to show in the profile page
projectMetadataTitle: "Basebook - Social NFT Launchpad On Base",
projectName: "Basebook",
projectDescription: "Basebook is the first social NFT launchpad on Base. Create and discuss NFTs on Basebook!",
projectTwitter: "https://twitter.com/Basebook0x",
projectUrl: "https://basebook.xyz", // without trailing slash!
punkMinterAddress: "0xfc79caeAc4F44e0eBaD2bE7F42bf134806850d9e", // punk domain minter contract address
punkNumberOfPrices: 5, // number of different prices (based on domain length), usually 1 (price()) or 5 (price1char() - price5char())
punkTldAddress: "0x4087fb91a1fbdef05761c02714335d232a2bf3a1", // punk domain TLD address
randomPostsNumber: 1, // number of random post NFTs to show in the sidebar widget
rpcCustom: process.env.RPC_CUSTOM || "https://mainnet.base.org", // Custom RPC URL
showFeatures: { // show/hide features in sidebars (if you have too many "true", make the sidebar scrollable --> sidebarLeftSticky: false)
"activityPoints": false,
"airdrop": false,
"friendKeys": false,
"governance": false,
"newsletter": false,
"nftLaunchpad": true,
"randomMintedPosts": true,
"swap": true,
"stake": false,
"sendTokens": true,
"spotify": false
},
showRepliesOnHomepage: true, // show replies on the homepage
sidebarLeftSticky: true, // make the left sidebar sticky (always visible)
spotifyPlaylistId: "5y7f2Wxfq49G5KuNQfMPbk", // enter just the ID of the playlist (not the full URL)
stakingContractAddress: "", // this is also the stake/gov token address
stakeTokenSymbol: "", // stake token symbol (governance token symbol)
supportedChainId: 8453,
swapPriceImpactMaxBps: 1000, // max price impact in bips (1 bps = 0.01%, 1000bps = 10%) for the swap function
swapRouterAddress: "0x249f1172Ebd8686386a5C0Ee704378B85acD0627", // iggy swap router contract address
tenorApiKey: process.env.TENOR_KEY || "",
tldName: ".basebook",
tokenAddress: null, // leave null if it's a native token of the chain
tokenDecimals: 18,
tokenSymbol: "ETH"
}
},
vite: {
build: {
target: ['es2020'] // fix big integer literals error
},
optimizeDeps: {
esbuildOptions: {
define: {
global: 'globalThis' // fix nuxt3 global
},
plugins: [
NodeGlobalsPolyfillPlugin({
process: true, // fix nuxt3 process
buffer: true
}),
NodeModulesPolyfillPlugin()
],
target: "es2020" // fix big integer literals error
}
}
}
})