-
+
diff --git a/components/storage/FileUploadModal.vue b/components/storage/FileUploadModal.vue
index b95c16e9..6db33a9f 100644
--- a/components/storage/FileUploadModal.vue
+++ b/components/storage/FileUploadModal.vue
@@ -54,6 +54,7 @@
@@ -90,7 +91,7 @@ import FileUploadInput from '~/components/storage/FileUploadInput.vue'
export default {
name: 'FileUploadModal',
- props: ['title', 'componentId', 'infoText', 'maxFileSize'],
+ props: ['title', 'componentId', 'infoText', 'maxFileSize', 'storageType'],
emits: ['processFileUrl'],
components: { FileUploadInput },
diff --git a/netlify/functions/imageUploader.js b/netlify/functions/imageUploader.js
deleted file mode 100644
index 7210b4d9..00000000
--- a/netlify/functions/imageUploader.js
+++ /dev/null
@@ -1,25 +0,0 @@
-const { SpheronClient, ProtocolEnum } = require('@spheron/storage')
-
-exports.handler = async function (event, context) {
- try {
- const bucketName = process.env.SPHERON_BUCKET_NAME // enter bucket name in environment variables
- const token = process.env.SPHERON_STORAGE_TOKEN // add spheron storage token in environment variables
-
- const protocol = ProtocolEnum.IPFS
-
- const client = new SpheronClient({ token })
-
- const { uploadToken } = await client.createSingleUploadToken({
- name: bucketName,
- protocol,
- })
-
- return {
- statusCode: 200,
- body: JSON.stringify({ data: uploadToken }),
- }
- } catch (error) {
- console.error(error)
- next(error)
- }
-}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index a72cab95..6eba6291 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -67,7 +67,7 @@ export default defineNuxtConfig({
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)
+ fileUploadEnabled: true, // enable/disable file uploads (enable only if external file storage is used, e.g. IPFS via ThirdWeb)
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
@@ -77,7 +77,9 @@ export default defineNuxtConfig({
iggyPostStatsAddress: '0x3Fa0EaC3058828Cc4BA97F51A33597C695bF6F9e',
imagekitEndpoint: process.env.IMAGEKIT_ENDPOINT,
imagekitPublicKey: process.env.IMAGEKIT_PUBLIC_KEY,
- ipfsGateway: 'https://cloudflare-ipfs.com/ipfs/',
+ ipfsGateway: "https://cloudflare-ipfs.com/ipfs/",
+ ipfsGateway2: "https://ipfs.io/ipfs/",
+ ipfsGateway3: "https://nftdegeniggy.myfilebase.com/ipfs/",
keysAddress: '0x0c6A6030121FB3071cB2347DEAC127037785436C', // FriendKeys contract address
keysFeatured: ['tempe', 'tekr'],
linkPreviews: process.env.LINK_PREVIEW_SERVICE || 'netlify', // "netlify", "vercel", or "microlink" (or leave empty for no link previews)
@@ -138,6 +140,7 @@ export default defineNuxtConfig({
swapPriceImpactMaxBps: 1000, // max price impact in bips (1 bps = 0.01%, 1000bps = 10%) for the swap function
swapRouterAddress: '', // iggy swap router contract address
tenorApiKey: process.env.TENOR_KEY || '',
+ thirdwebClientId: process.env.THIRDWEB_CLIENT_ID || "",
tldName: '.sepolia',
tokenAddress: null, // leave null if it's a native token of the chain
tokenDecimals: 18,
diff --git a/package-lock.json b/package-lock.json
index a9a30171..9e6274e0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,8 +9,7 @@
"@openzeppelin/merkle-tree": "^1.0.5",
"@orbisclub/orbis-sdk": "^0.4.70",
"@pinia/nuxt": "^0.4.6",
- "@spheron/browser-upload": "^2.0.1",
- "@spheron/storage": "^2.0.4",
+ "@thirdweb-dev/storage": "^2.0.15",
"@vue-dapp/core": "^1.5.1",
"@vue-dapp/modal": "^1.5.1",
"@vueuse/core": "^9.2.0",
@@ -6237,102 +6236,6 @@
"ieee754": "^1.2.1"
}
},
- "node_modules/@spheron/browser-upload": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@spheron/browser-upload/-/browser-upload-2.0.1.tgz",
- "integrity": "sha512-k0eCsggHazSzQAZ4Yi40bg4dGi5J3/9eh5wDP7QufRsMqVzGLnHtqWW9L0FPufa6POuUHV5BQsRfMCH67R7Okw==",
- "dependencies": {
- "@spheron/core": "2.0.0",
- "@spheron/encryption": "1.0.0",
- "form-data": "^4.0.0",
- "jwt-decode": "^3.1.2"
- }
- },
- "node_modules/@spheron/browser-upload/node_modules/@spheron/core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@spheron/core/-/core-2.0.0.tgz",
- "integrity": "sha512-BkOxHoUVGH6AE1FzyO1Ut7lSoXWxMUKWDlnann5kCQ3qJYPOZ38MpUNt4UxuKqlyYuk6mvX2lI08HX6iRgO4Cw==",
- "dependencies": {
- "axios": "1.1.2",
- "eventsource": "^2.0.2",
- "p-limit": "^3.0.0"
- }
- },
- "node_modules/@spheron/browser-upload/node_modules/axios": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz",
- "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==",
- "dependencies": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/@spheron/browser-upload/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@spheron/core": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@spheron/core/-/core-2.0.5.tgz",
- "integrity": "sha512-euSXQszAizQDHq7CXT8vDb+RnJg6RwnEs0JUAmqE301kqjBqnmbtfiK7udEu+E/FZamC2q2Xzt9XldSbv6aDmw==",
- "dependencies": {
- "async-lock": "^1.4.0",
- "axios": "1.1.2",
- "eventsource": "^2.0.2",
- "p-limit": "^3.0.0"
- }
- },
- "node_modules/@spheron/core/node_modules/axios": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz",
- "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==",
- "dependencies": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/@spheron/core/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@spheron/encryption": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@spheron/encryption/-/encryption-1.0.0.tgz",
- "integrity": "sha512-Teald+lhbi1MtwZ6tbWeg4gbWCvQFuRTmCx4jhxoE48tZmHByJNu9ZBHIcsNjCWNzkwg8lA+FQO4HZoAxLF5KQ=="
- },
- "node_modules/@spheron/storage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@spheron/storage/-/storage-2.0.4.tgz",
- "integrity": "sha512-WykfOQO0VCEui/EXjH0peprIw0QwHQHmtmfMJ3a2N4TZUK3ufPS+uCgSOgvgm0kdzxx6MAQtRusxclu7tWN/cA==",
- "dependencies": {
- "@spheron/core": "2.0.5",
- "@spheron/encryption": "1.0.0",
- "form-data": "^4.0.0",
- "multiformats": "^9.9.0"
- }
- },
"node_modules/@spruceid/siwe-parser": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-1.1.3.tgz",
@@ -6695,6 +6598,60 @@
}
]
},
+ "node_modules/@thirdweb-dev/crypto": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.6.tgz",
+ "integrity": "sha512-l9kuYAw0+S+ItvQR2c5k6y+qn+L6YT1I5+KN+cQNN848nPFGECVajED2fVLadkZW7xaGEyc+U6nj8Y1KB5bgNg==",
+ "dependencies": {
+ "@noble/hashes": "^1.4.0",
+ "js-sha3": "^0.9.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@thirdweb-dev/crypto/node_modules/@noble/hashes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@thirdweb-dev/crypto/node_modules/js-sha3": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz",
+ "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg=="
+ },
+ "node_modules/@thirdweb-dev/storage": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/@thirdweb-dev/storage/-/storage-2.0.15.tgz",
+ "integrity": "sha512-6E5ZlUCTPTMThpUvrPf1XASsfAmSHK/UZXPV5xLc7V66Qq5RTphQYUPoLDsvSNXECo65Jegj0LTIvRFFb30Z4w==",
+ "dependencies": {
+ "@thirdweb-dev/crypto": "0.2.6",
+ "cid-tool": "^3.0.0",
+ "form-data": "^4.0.0",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@thirdweb-dev/storage/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -8104,11 +8061,6 @@
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
- "node_modules/async-lock": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz",
- "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ=="
- },
"node_modules/async-mutex": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz",
@@ -9067,6 +9019,151 @@
"node": ">=8"
}
},
+ "node_modules/cid-tool": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cid-tool/-/cid-tool-3.0.0.tgz",
+ "integrity": "sha512-rgpV/LzuxUsGCJvUHe9+OuOAENVCiTn+mgGT8Nee1qDLS3xFGBUvZQdsY9MEpUi0YOFy6oz1pybHErcvE4SlGw==",
+ "dependencies": {
+ "cids": "^1.0.0",
+ "explain-error": "^1.0.4",
+ "multibase": "^4.0.2",
+ "multihashes": "^4.0.2",
+ "split2": "^3.1.1",
+ "uint8arrays": "^2.1.3",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "cid": "src/cli/bin.js"
+ }
+ },
+ "node_modules/cid-tool/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cid-tool/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/cid-tool/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/cid-tool/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cid-tool/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cid-tool/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cid-tool/node_modules/uint8arrays": {
+ "version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz",
+ "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==",
+ "dependencies": {
+ "multiformats": "^9.4.2"
+ }
+ },
+ "node_modules/cid-tool/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/cid-tool/node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cid-tool/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cid-tool/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cids": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz",
+ "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==",
+ "deprecated": "This module has been superseded by the multiformats module",
+ "dependencies": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0",
+ "npm": ">=3.0.0"
+ }
+ },
"node_modules/cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -11524,14 +11621,6 @@
"node": ">=0.8.x"
}
},
- "node_modules/eventsource": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
- "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
- "engines": {
- "node": ">=12.0.0"
- }
- },
"node_modules/evp_bytestokey": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
@@ -11700,6 +11789,11 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"peer": true
},
+ "node_modules/explain-error": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz",
+ "integrity": "sha512-/wSgNMxFusiYRy1rd19LT2SQlIXDppHpumpWo06wxjflD1OYxDLbl6rMVw+U3bxD5Nuhex4TKqv9Aem4D0lVzQ=="
+ },
"node_modules/exponential-backoff": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
@@ -14348,11 +14442,6 @@
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
- "node_modules/jwt-decode": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
- "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
- },
"node_modules/keccak": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz",
@@ -16392,6 +16481,16 @@
"npm": ">=6.0.0"
}
},
+ "node_modules/multicodec": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz",
+ "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==",
+ "deprecated": "This module has been superseded by the multiformats module",
+ "dependencies": {
+ "uint8arrays": "^3.0.0",
+ "varint": "^6.0.0"
+ }
+ },
"node_modules/multiformats": {
"version": "9.9.0",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
@@ -20427,6 +20526,27 @@
"node": ">=0.10.0"
}
},
+ "node_modules/split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "dependencies": {
+ "readable-stream": "^3.0.0"
+ }
+ },
+ "node_modules/split2/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -22890,6 +23010,7 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "peer": true,
"engines": {
"node": ">=10"
},
@@ -27291,94 +27412,6 @@
}
}
},
- "@spheron/browser-upload": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@spheron/browser-upload/-/browser-upload-2.0.1.tgz",
- "integrity": "sha512-k0eCsggHazSzQAZ4Yi40bg4dGi5J3/9eh5wDP7QufRsMqVzGLnHtqWW9L0FPufa6POuUHV5BQsRfMCH67R7Okw==",
- "requires": {
- "@spheron/core": "2.0.0",
- "@spheron/encryption": "1.0.0",
- "form-data": "^4.0.0",
- "jwt-decode": "^3.1.2"
- },
- "dependencies": {
- "@spheron/core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@spheron/core/-/core-2.0.0.tgz",
- "integrity": "sha512-BkOxHoUVGH6AE1FzyO1Ut7lSoXWxMUKWDlnann5kCQ3qJYPOZ38MpUNt4UxuKqlyYuk6mvX2lI08HX6iRgO4Cw==",
- "requires": {
- "axios": "1.1.2",
- "eventsource": "^2.0.2",
- "p-limit": "^3.0.0"
- }
- },
- "axios": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz",
- "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==",
- "requires": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- }
- }
- },
- "@spheron/core": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@spheron/core/-/core-2.0.5.tgz",
- "integrity": "sha512-euSXQszAizQDHq7CXT8vDb+RnJg6RwnEs0JUAmqE301kqjBqnmbtfiK7udEu+E/FZamC2q2Xzt9XldSbv6aDmw==",
- "requires": {
- "async-lock": "^1.4.0",
- "axios": "1.1.2",
- "eventsource": "^2.0.2",
- "p-limit": "^3.0.0"
- },
- "dependencies": {
- "axios": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz",
- "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==",
- "requires": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- }
- }
- },
- "@spheron/encryption": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@spheron/encryption/-/encryption-1.0.0.tgz",
- "integrity": "sha512-Teald+lhbi1MtwZ6tbWeg4gbWCvQFuRTmCx4jhxoE48tZmHByJNu9ZBHIcsNjCWNzkwg8lA+FQO4HZoAxLF5KQ=="
- },
- "@spheron/storage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@spheron/storage/-/storage-2.0.4.tgz",
- "integrity": "sha512-WykfOQO0VCEui/EXjH0peprIw0QwHQHmtmfMJ3a2N4TZUK3ufPS+uCgSOgvgm0kdzxx6MAQtRusxclu7tWN/cA==",
- "requires": {
- "@spheron/core": "2.0.5",
- "@spheron/encryption": "1.0.0",
- "form-data": "^4.0.0",
- "multiformats": "^9.9.0"
- }
- },
"@spruceid/siwe-parser": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-1.1.3.tgz",
@@ -27714,6 +27747,45 @@
}
}
},
+ "@thirdweb-dev/crypto": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.6.tgz",
+ "integrity": "sha512-l9kuYAw0+S+ItvQR2c5k6y+qn+L6YT1I5+KN+cQNN848nPFGECVajED2fVLadkZW7xaGEyc+U6nj8Y1KB5bgNg==",
+ "requires": {
+ "@noble/hashes": "^1.4.0",
+ "js-sha3": "^0.9.3"
+ },
+ "dependencies": {
+ "@noble/hashes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="
+ },
+ "js-sha3": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz",
+ "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg=="
+ }
+ }
+ },
+ "@thirdweb-dev/storage": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/@thirdweb-dev/storage/-/storage-2.0.15.tgz",
+ "integrity": "sha512-6E5ZlUCTPTMThpUvrPf1XASsfAmSHK/UZXPV5xLc7V66Qq5RTphQYUPoLDsvSNXECo65Jegj0LTIvRFFb30Z4w==",
+ "requires": {
+ "@thirdweb-dev/crypto": "0.2.6",
+ "cid-tool": "^3.0.0",
+ "form-data": "^4.0.0",
+ "uuid": "^9.0.1"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
+ }
+ }
+ },
"@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -28892,11 +28964,6 @@
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
- "async-lock": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz",
- "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ=="
- },
"async-mutex": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz",
@@ -29616,6 +29683,118 @@
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz",
"integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog=="
},
+ "cid-tool": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cid-tool/-/cid-tool-3.0.0.tgz",
+ "integrity": "sha512-rgpV/LzuxUsGCJvUHe9+OuOAENVCiTn+mgGT8Nee1qDLS3xFGBUvZQdsY9MEpUi0YOFy6oz1pybHErcvE4SlGw==",
+ "requires": {
+ "cids": "^1.0.0",
+ "explain-error": "^1.0.4",
+ "multibase": "^4.0.2",
+ "multihashes": "^4.0.2",
+ "split2": "^3.1.1",
+ "uint8arrays": "^2.1.3",
+ "yargs": "^16.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.10",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz",
+ "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==",
+ "requires": {
+ "multiformats": "^9.4.2"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ }
+ }
+ },
+ "cids": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz",
+ "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==",
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^3.0.0"
+ }
+ },
"cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -31508,11 +31687,6 @@
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
},
- "eventsource": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
- "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA=="
- },
"evp_bytestokey": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
@@ -31651,6 +31825,11 @@
}
}
},
+ "explain-error": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz",
+ "integrity": "sha512-/wSgNMxFusiYRy1rd19LT2SQlIXDppHpumpWo06wxjflD1OYxDLbl6rMVw+U3bxD5Nuhex4TKqv9Aem4D0lVzQ=="
+ },
"exponential-backoff": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
@@ -33662,11 +33841,6 @@
}
}
},
- "jwt-decode": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
- "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
- },
"keccak": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz",
@@ -35367,6 +35541,15 @@
"@multiformats/base-x": "^4.0.1"
}
},
+ "multicodec": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz",
+ "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==",
+ "requires": {
+ "uint8arrays": "^3.0.0",
+ "varint": "^6.0.0"
+ }
+ },
"multiformats": {
"version": "9.9.0",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
@@ -38357,6 +38540,26 @@
"extend-shallow": "^3.0.0"
}
},
+ "split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "requires": {
+ "readable-stream": "^3.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -40229,7 +40432,8 @@
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "peer": true
},
"zip-stream": {
"version": "4.1.0",
diff --git a/package.json b/package.json
index 32519ee0..9c7262d2 100644
--- a/package.json
+++ b/package.json
@@ -12,8 +12,7 @@
"@openzeppelin/merkle-tree": "^1.0.5",
"@orbisclub/orbis-sdk": "^0.4.70",
"@pinia/nuxt": "^0.4.6",
- "@spheron/browser-upload": "^2.0.1",
- "@spheron/storage": "^2.0.4",
+ "@thirdweb-dev/storage": "^2.0.15",
"@vue-dapp/core": "^1.5.1",
"@vue-dapp/modal": "^1.5.1",
"@vueuse/core": "^9.2.0",
diff --git a/pages/nft/collection.vue b/pages/nft/collection.vue
index 63e3b1de..4a352070 100644
--- a/pages/nft/collection.vue
+++ b/pages/nft/collection.vue
@@ -27,7 +27,7 @@
-
+
-
+
-
If image didn't appear above, then something is wrong with the link you added.
+
If image didn't appear above, then something is wrong with the link you added (wait until the loading indicator completes).
@@ -203,6 +203,7 @@
@processFileUrl="insertImage"
title="Upload your NFT image"
infoText="Upload the NFT image."
+ storageType="ipfs"
:componentId="$.uid"
:maxFileSize="$config.fileUploadSizeLimit"
/>
@@ -216,6 +217,7 @@ import { ethers } from 'ethers'
import { useEthers } from '~/store/ethers'
import { useToast } from 'vue-toastification/dist/index.mjs'
import ConnectWalletButton from '~/components/ConnectWalletButton.vue'
+import Image from '~/components/Image.vue'
import SwitchChainButton from '~/components/SwitchChainButton.vue'
import WaitingToast from '~/components/WaitingToast'
import FileUploadModal from '~/components/storage/FileUploadModal.vue'
@@ -246,6 +248,7 @@ export default {
components: {
ConnectWalletButton,
FileUploadModal,
+ Image,
SwitchChainButton,
WaitingToast,
},
@@ -298,6 +301,16 @@ export default {
return false
}
},
+
+ parseImageLink() {
+ let parsedImage = this.cImage;
+
+ if (parsedImage && parsedImage.includes("ipfs://")) {
+ parsedImage = parsedImage.replace("ipfs://", this.$config.ipfsGateway);
+ }
+
+ return parsedImage;
+ }
},
methods: {
diff --git a/pages/nft/index.vue b/pages/nft/index.vue
index baaa8897..93a30b1a 100644
--- a/pages/nft/index.vue
+++ b/pages/nft/index.vue
@@ -59,7 +59,7 @@
:to="'/nft/collection?id=' + nft.address"
>
-
+
{{ nft.name }}
@@ -80,7 +80,7 @@
:to="'/nft/collection?id=' + nft.address"
>
-
+
{{ nft.name }}
@@ -116,6 +116,7 @@