Remove the inherited gh-pages, IPFS and Docker Hub release tooling

None of it could run here: the repository has no Pages site, no Pinata or
Crust credentials and no npm token, and docker/build.sh pushed to the
upstream author's Docker Hub account. Remove the release scripts, the IPFS
uploader with @pinata/sdk (axios 0.21) and @crustio/crust-pin, and
public/ipfs, whose pin.json and redirect pointed at another project's IPFS
build from this site.

README: the hosted URL is apps.pezkuwichain.io; drop the IPFS and desktop
chapters and the pull of a Docker image that does not exist. .gitignore
listed '.log' where '*.log' was meant, which let start.log in.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Satoshi Qazi MuhammedandClaude Opus 5.5 authored and SatoshiQaziMuhammed committed 2026-10-04 04:33:58 +04:00
1 parent f72ba84aac
commit f3e338df6d
9 files changed
+17 -739

No files matched your search

+1 -1
View File
@@ -20,6 +20,6 @@ tsconfig.*buildinfo
yarn-debug.log*
yarn-error.log*
.idea/
.log
*.log
env-config.js
NOTES.md
+5 -109
View File
@@ -2,9 +2,7 @@
A Portal into the Pezkuwi and Bizinikiwi networks. Provides a view and interaction layer from a browser.
This can be accessed as a hosted application via https://pezkuwichain.app or you can access the IPFS hosted version via https://pezkuwichain.app/ipfs (via hash) to explore any of the supported Pezkuwi and Bizinikiwi chains.
If you run one or more IPFS node(s), pinning the UI (which only gets updated on releases) will make it faster for you and others. You can find details about that below in the IPFS chapter below.
It is hosted at https://apps.pezkuwichain.io to explore any of the supported Pezkuwi and Bizinikiwi chains.
**Important** If you are a chain developer and would like to add support for your chain to the UI, all the local configuration (API types, settings, logos) can be customized in [the apps-config package](packages/apps-config#README.md), complete with instructions of what goes where.
@@ -32,113 +30,11 @@ To get started -
## Docker
You can run a docker container via -
To build and run a container with local changes -
```
docker run --rm -it --name pezkuwi-ui -e WS_URL=ws://someip:9944 -p 80:80 pezkuwichain/pezkuwi-apps:latest
docker build -t pezkuwi-apps -f docker/Dockerfile .
docker run --rm -it --name pezkuwi-ui -e WS_URL=ws://someip:9944 -p 80:80 pezkuwi-apps
```
To build a docker container containing local changes -
```
docker build -t pezkuwichain/pezkuwi-apps -f docker/Dockerfile .
```
When using these Docker commands, you can access the UI via http://localhost:80 (or just http://localhost)
## IPFS
IPFS allows sharing files in a decentralized manner in a similar fashion the pezkuwi network exchanges blocks. IPFS works best when many nodes seed the same data. Nodes can seed specific data by **pinning** them.
You can pin with the following command:
```
curl -s https://pezkuwichain.app/apps/ipfs/pin.json | jq -jr .IpfsHash | xargs -0 -I CID ipfs pin add --progress CID
```
Here is a script you can save as `/usr/local/bin/pezkuwijs-ipfs-pin.sh`:
```
#!/usr/bin/env bash
IPFS='/usr/local/bin/ipfs'
curl -s https://pezkuwichain.app/apps/ipfs/pin.json | jq -jr .IpfsHash | xargs -0 -I CID $IPFS pin add --progress CID
```
I suggest to run the script once. The output should be similar to (the CID/Hash will very likely be different though):
```
$ /usr/local/bin/pezkuwijs-ipfs-pin.sh
pinned QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW recursively
```
Now that you know the CID (hash), you can check whether the data is already pinned or not:
```
$ ipfs pin ls | grep QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW
QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW recursive
```
Now that we know it works, we can automate that with a cron task. Run `crontab -e`.
If you see only comments, append the following to the file and save:
```
SHELL=/bin/bash
HOME=/
0 * * * * /usr/local/bin/pezkuwijs-ipfs-pin.sh >/dev/null 2>&1
```
Now our script will run every hours at minute '0' (8:00, 9:00, etc...). To check, we can unpin temporarily:
```
$ ipfs pin rm QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW
unpinned QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW
```
Now asking for the CID confirms that is it not there.
```
$ ipfs pin ls QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW
Error: path 'QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW' is not pinned
```
Wait until the your cron task runs and try again:
```
$ ipfs pin ls QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW
QmNYAbzaE8kRAf68YiN3ZuUxgdwroeav3JhicsHsG5b2oW recursive
```
Tada! This is now automatic and you may forget it.
If you are curious and want to know how many people seed the UI on IPFS, here is the magic command (it may take a while to return the answer as ipfs will search for about 1 minute):
```
ipfs dht findprovs QmTejwB7mJPBHBoqubjzHSgSxfLMcjnZA3LFefqoQc87VJ | wc -l
```
If you are current about the content of what you just pinned, you may use the following command:
```
$ ipfs ls QmTejwB7mJPBHBoqubjzHSgSxfLMcjnZA3LFefqoQc87VJ
QmPJGyqVCcXm238noz7TZDByyGa35qqc8g6sfyXF3KDXZ3 38078 favicon.ico
QmdouVsVE9rMVB84Cy1ehVi1LAGW1fKcqqQxSEjgxJrv7H 668 index.html
QmWHcGf1JCFZCYjZsw52vM5RiJVbcNpX1fo2NyoBKBvtuf - ipfs/
QmT6NwDsJzMyBs6bMq845nMumeJWbixBfNXA9hdAhAMdSG - locales/
QmcgiZpwvpT1E1dkSS3zr5je89rZRVocNKPebgWhn3JVTC 2178582 main.ce05dfca.js
QmdnEtuhFDyw5Tjr82bFPzyveFrbkYjJAnUvBvzwT18YGG 337 manifest.json
QmW7gDKHbmtD7sRTqsvyo84bDpyYPZR3w1wQo8pme2q5HC - next/
Qmd8UnRQiBobm4qb6dhiC1HoQ7SvwZrWJenoN3JPEV3iiF 480594 pezkuwijs.3af757ad.js
QmUfXPMfNys8Y8dekuankBx7BHiSAjALCpBDKH6F5DdcNm 628284 react.0cecb00d.css
QmSEgXdQbC1ek9Td1mHy3BRvJpfWHm9zQYegTgAUj1QC4g 924156 react.8f083b49.js
QmfGBgFe2aqf83Wv21m9k5DH2ew89CDj4tydoxJWdK6NNL 1552 runtime.3d77e510.js
QmYPa8jcHH7gfopMALr5XTW4i1QM2xgVBe3NeP11y3tErA - static/
QmeYBC5EgbccC8NEwXC2rvbd93YiHtTM5xYzqCDohXerDf 859984 vendor.8b793a81.js
```
## Desktop App
The main advantage of using Desktop App is that it by default stores encrypted accounts on the filesystem instead of browser's local storage.
Local storage is susceptible to attacks using XSS (Cross-Site Scripting). There's no such risk when with files stored on disk.
The desktop app uses the [Electron](https://www.electronjs.org/) framework. It provides the same features as web app, the only difference
being different account storage.
The accounts are stored in the following directories:
* Mac: `~/Library/Application Support/pezkuwi-apps/pezkuwi-accounts`
* Linux: `~/.config/pezkuwi-apps/pezkuwi-accounts` (or `$XDG_CONFIG_HOME/pezkuwi-apps/pezkuwi-accounts` if `$XDG_CONFIG_HOME` is defined)
* Windows: `%APPDATA%\pezkuwi-apps\pezkuwi-accounts`
For more details on the desktop app, head over to [Electron package README](https://github.com/pezkuwichain/pezkuwi-apps/blob/master/packages/apps-electron/README.md).
The UI is then at http://localhost:80 (or just http://localhost)
-33
View File
@@ -1,33 +0,0 @@
#!/usr/bin/env bash
# Copyright 2017-2025 @polkadot/apps authors & contributors
# This software may be modified and distributed under the terms
# of the Apache-2.0 license. See the LICENSE file for details.
# fail fast on any non-zero exits
set -e
# the docker image name and dockerhub repo
NAME="polkadot-js-apps"
REPO="jacogr"
# extract the current npm version from package.json
VERSION=$(cat package.json \
| grep version \
| head -1 \
| awk -F: '{ print $2 }' \
| sed 's/[",]//g' \
| sed 's/ //g')
echo "*** Building $NAME"
docker build -t $NAME -f docker/Dockerfile .
docker login -u $REPO -p $DOCKER_PASS
echo "*** Tagging $REPO/$NAME"
if [[ $VERSION != *"beta"* ]]; then
docker tag $NAME $REPO/$NAME:$VERSION
fi
docker tag $NAME $REPO/$NAME
echo "*** Publishing $NAME"
docker push $REPO/$NAME
-5
View File
@@ -31,9 +31,6 @@
"build:code": "NODE_ENV=production yarn pezkuwi-dev-build-ts",
"build:i18n": "i18next-scanner --config i18next-scanner.config.cjs && node ./scripts/i18nSort.cjs",
"build:images": "node scripts/imgConvert.mjs",
"build:release:ghpages": "yarn pezkuwi-ci-ghact-docs",
"build:release:ipfs": "node scripts/ipfsUpload.mjs",
"build:release:www": "yarn pezkuwi-ci-ghact-build && yarn build:release:ghpages && yarn build:release:ipfs",
"build:robohash": "node scripts/robohash.cjs",
"build:typesBundle": "pezkuwi-dev-run-test --env node --loader extensionless typesBundle",
"build:www": "rm -rf packages/apps/build && mkdir -p packages/apps/build && yarn run build:i18n && cd packages/apps && yarn pezkuwi-exec-webpack --config webpack.config.cjs",
@@ -51,11 +48,9 @@
"test:skipped": "echo 'tests skipped'"
},
"devDependencies": {
"@crustio/crust-pin": "^1.0.0",
"@pezkuwi/dev": "^0.85.7",
"@pezkuwi/extension-dapp": "^0.62.20",
"@pezkuwi/extension-inject": "^0.62.20",
"@pinata/sdk": "^1.2.1",
"@types/chart.js": "^2.9.41",
"@types/file-saver": "^2.0.7",
"@types/react-beautiful-dnd": "^13.1.7",
-15
View File
@@ -1,15 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Redirecting to ipfs gateway</title>
<meta http-equiv="refresh" content="0; url=https://ipfs.io/ipfs/QmfP9XAMVLZZ8yUr7kQ6CkCTRBefWJPMkHVpArFXGVPUQ3/" />
<style>
body { font-family: 'Nunito Sans',sans-serif; line-height: 1.5rem; padding: 2rem; text-align: center }
p { margin: 0 }
</style>
</head>
<body>
<p>Redirecting to</p>
<p><a href="https://ipfs.io/ipfs/QmfP9XAMVLZZ8yUr7kQ6CkCTRBefWJPMkHVpArFXGVPUQ3/">https://ipfs.io/ipfs/QmfP9XAMVLZZ8yUr7kQ6CkCTRBefWJPMkHVpArFXGVPUQ3/</a></p>
</body>
</html>
-1
View File
@@ -1 +0,0 @@
{"IpfsHash":"QmfP9XAMVLZZ8yUr7kQ6CkCTRBefWJPMkHVpArFXGVPUQ3","PinSize":38434264,"Timestamp":"2025-11-13T10:57:56.829Z","ID":"4f80829e-924c-4c74-8f0b-51ad7dccdbe7","Name":"dotapps.io","NumberOfFiles":189,"MimeType":"directory","GroupId":null,"Keyvalues":null}
-215
View File
@@ -1,215 +0,0 @@
// Copyright 2017-2026 @pezkuwi/apps authors & contributors
// SPDX-License-Identifier: Apache-2.0
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-nocheck Currently we have a bit too many of these
import CrustPinner from '@crustio/crust-pin';
import PinataSDK from '@pinata/sdk';
// @ts-expect-error No definition file
import cloudflare from 'dnslink-cloudflare';
import fs from 'node:fs';
// @ts-expect-error No definition file
import { execSync } from '@pezkuwi/dev/scripts/util.mjs';
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore Using ignore since the file won't be there in dev
import { createWsEndpoints } from '../packages/apps-config/build/endpoints/index.js';
console.log('$ scripts/ipfsUpload.mjs', process.argv.slice(2).join(' '));
// https://gateway.pinata.cloud/ipfs/
const GATEWAY = 'https://ipfs.io/ipfs/';
const DOMAIN = 'dotapps.io';
const DST = 'packages/apps/build';
const SRC = 'packages/apps/public';
const WOPTS = { encoding: 'utf8', flag: 'w' };
const PINMETA = { name: DOMAIN };
const repo = `https://${process.env.GH_PAT}@github.com/${process.env.GITHUB_REPOSITORY}.git`;
async function wait (delay = 2500) {
return new Promise((resolve) => {
setTimeout(() => resolve(undefined), delay);
});
}
function createPinata () {
try {
// For 1.2.1
return PinataSDK(process.env.PINATA_API_KEY, process.env.PINATA_SECRET_KEY);
// For 2.1.0+
// return new PinataSDK({
// pinataApiKey: process.env.PINATA_API_KEY,
// pinataSecretApiKey: process.env.PINATA_SECRET_KEY
// });
} catch {
console.error('Unable to create Pinata');
}
return null;
}
function createCrust () {
try {
// eslint-disable-next-line new-cap
return new CrustPinner.default(process.env.CRUST_SEEDS);
} catch {
console.error('Unable to create Crust');
}
return null;
}
const pinata = createPinata();
const crust = createCrust();
function writeFiles (name, content) {
[DST, SRC].forEach((root) =>
fs.writeFileSync(`${root}/ipfs/${name}`, content, WOPTS)
);
}
function updateGh (hash) {
execSync('git add --all .');
execSync(`git commit --no-status --quiet -m "[CI Skip] publish/ipfs ${hash}
skip-checks: true"`);
execSync(`git push ${repo} HEAD:${process.env.GITHUB_REF}`, true);
}
async function pin () {
if (!pinata) {
console.error('Pinata not available, cannot pin');
return;
}
// 1. Pin on pinata
const result = await pinata.pinFromFS(DST, { pinataMetadata: PINMETA });
const url = `${GATEWAY}${result.IpfsHash}/`;
const html = `<!DOCTYPE html>
<html>
<head>
<title>Redirecting to ipfs gateway</title>
<meta http-equiv="refresh" content="0; url=${url}" />
<style>
body { font-family: 'Nunito Sans',sans-serif; line-height: 1.5rem; padding: 2rem; text-align: center }
p { margin: 0 }
</style>
</head>
<body>
<p>Redirecting to</p>
<p><a href="${url}">${url}</a></p>
</body>
</html>`;
writeFiles('index.html', html);
writeFiles('pin.json', JSON.stringify(result));
updateGh(result.IpfsHash);
// 2. Decentralized pin on Crust
if (crust) {
await crust.pin(result.IpfsHash).catch(console.error);
}
console.log(`Pinned ${result.IpfsHash}`);
await wait();
return result.IpfsHash;
}
async function unpin (exclude) {
if (!pinata) {
console.error('Pinata not available, cannot unpin');
return;
}
const result = await pinata.pinList({ metadata: PINMETA, status: 'pinned' });
await wait();
console.log('Available Pinata pins', result.rows);
if (result.count > 1) {
const hashes = result.rows
.map((r) => r.ipfs_pin_hash)
.filter((hash) => hash !== exclude);
for (let i = 0, count = hashes.length; i < count; i++) {
const hash = hashes[i];
try {
await pinata.unpin(hash);
console.log(`Unpinned ${hash}`);
} catch (error) {
console.error(`Failed unpinning ${hash}`, error);
}
await wait();
}
}
}
async function dnslink (hash) {
const records = createWsEndpoints(() => '')
.map((e) => e.dnslink)
.reduce((all, dnslink) => {
if (dnslink && !all.includes(dnslink)) {
all.push(dnslink);
}
return all;
}, [null])
.map((sub) =>
['_dnslink', sub, DOMAIN]
.filter((entry) => !!entry)
.join('.')
);
for (let i = 0, count = records.length; i < count; i++) {
const record = records[i];
try {
await cloudflare(
{ token: process.env.CF_API_TOKEN },
{ link: `/ipfs/${hash}`, record, zone: DOMAIN }
);
console.log(`Updated dnslink ${record}`);
} catch (error) {
console.error(`Failed updating dnslink ${record}`, error);
}
await wait();
}
console.log(`Dnslink ${hash} for ${records.join(', ')}`);
}
async function main () {
const pkgJson = JSON.parse(fs.readFileSync('package.json', 'utf-8'));
// only run on non-beta versions
if (!pkgJson.version.includes('-')) {
console.log('Pinning');
const hash = await pin();
await dnslink(hash);
await unpin(hash);
console.log('Completed');
} else {
console.log('Skipping');
}
}
main()
.catch(console.error)
.finally(() => process.exit(0));
-38
View File
@@ -1,38 +0,0 @@
$ pezkuwi-dev-clean-build
$ webpack serve --config webpack.serve.cjs --port 3000
<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:3000/
<i> [webpack-dev-server] On Your Network (IPv4): http://172.31.134.70:3000/
<i> [webpack-dev-server] Content not from webpack is served from '/home/mamostehp/pezkuwi-apps/packages/apps/build' directory
assets by info 53.4 MiB [immutable]
assets by status 51.2 MiB [big] 49 assets
+ 33 assets
assets by path locales/ 2.57 MiB
assets by path locales/en/*.json 317 KiB
asset locales/en/translation.json 89.1 KiB [emitted] [from: public/locales/en/translation.json] [copied]
+ 57 assets
+ 19 assets
asset kurdistan_map.png 446 KiB [emitted] [from: public/kurdistan_map.png] [copied] [big]
asset favicon.ico 37.2 KiB [emitted] [from: public/favicon.ico] [copied]
asset index.html 13.3 KiB [emitted]
asset manifest.json 335 bytes [emitted] [from: public/manifest.json] [copied]
asset ipfs/pin.json 258 bytes [emitted] [from: public/ipfs/pin.json] [copied]
asset env-config.js 199 bytes [emitted] [from: public/env-config.js] [copied]
asset _headers 77 bytes [emitted] [from: public/_headers] [copied]
Entrypoint main [big] 39.6 MiB = 63 assets
orphan modules 17 MiB (javascript) 13.5 KiB (runtime) [orphan] 4483 modules
runtime modules 66.7 KiB 30 modules
built modules 48.1 MiB (javascript) 551 KiB (css/mini-extract) 1 bytes (asset) [built]
modules by path ../ 48 MiB (javascript) 551 KiB (css/mini-extract) 1 bytes (asset)
javascript modules 41.3 MiB 3374 modules
json modules 6.73 MiB
optional modules 6.73 MiB [optional] 6 modules
../../node_modules/secp256k1/lib/messages.json 2.2 KiB [built] [code generated]
../../node_modules/elliptic/package.json 1.11 KiB [built] [code generated]
css modules 551 KiB
css ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/semantic-ui-css/semantic.min.css 99 bytes [built] [code generated]
css ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../node_modules/semantic-ui-css/semantic.min.css (1) 551 KiB [built] [code generated]
../../node_modules/@acala-network/chopsticks-executor/dist/esm/chopsticks_ex...(truncated) 1 bytes (asset) 42 bytes (javascript) [built] [code generated]
+ 15 modules
webpack 5.104.1 compiled successfully in 21060 ms
<i> [webpack-dev-server] Gracefully shutting down. To force exit, press ^C again. Please wait...
+11 -322
View File
@@ -292,17 +292,7 @@ __metadata:
languageName: node
linkType: hard
"@crustio/crust-pin@npm:^1.0.0":
version: 1.0.0
resolution: "@crustio/crust-pin@npm:1.0.0"
dependencies:
"@crustio/type-definitions": "npm:^1.2.0"
"@polkadot/api": "npm:^4.2.1"
checksum: 10/3450f436b51e1b920371827cdf0677b663e3487a227e7e8748abaf6dd558fb9a87fc0661b6f559321c2abc82069415d7e2f9ded9cc3c52754add224612d38556
languageName: node
linkType: hard
"@crustio/type-definitions@npm:1.3.0, @crustio/type-definitions@npm:^1.2.0":
"@crustio/type-definitions@npm:1.3.0":
version: 1.3.0
resolution: "@crustio/type-definitions@npm:1.3.0"
dependencies:
@@ -3315,19 +3305,6 @@ __metadata:
languageName: node
linkType: hard
"@pinata/sdk@npm:^1.2.1":
version: 1.2.1
resolution: "@pinata/sdk@npm:1.2.1"
dependencies:
axios: "npm:^0.21.1"
base-path-converter: "npm:^1.0.2"
form-data: "npm:^2.3.3"
is-ipfs: "npm:^0.6.0"
recursive-fs: "npm:^1.1.2"
checksum: 10/ebb39b4ad7352fc593147905eb4ead7bc729116c5d27aec5d2bb4a8e66c098aecdde1dc5f324e138a9edab108f90ecf8171d4dba279b737c6e331c69b71250b5
languageName: node
linkType: hard
"@pinojs/redact@npm:^0.4.0":
version: 0.4.0
resolution: "@pinojs/redact@npm:0.4.0"
@@ -3667,21 +3644,6 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/api-derive@npm:4.17.1":
version: 4.17.1
resolution: "@polkadot/api-derive@npm:4.17.1"
dependencies:
"@babel/runtime": "npm:^7.14.6"
"@polkadot/api": "npm:4.17.1"
"@polkadot/rpc-core": "npm:4.17.1"
"@polkadot/types": "npm:4.17.1"
"@polkadot/util": "npm:^6.11.1"
"@polkadot/util-crypto": "npm:^6.11.1"
"@polkadot/x-rxjs": "npm:^6.11.1"
checksum: 10/852ddc827ef8ce1ef013f20dcc45aa22af6f3a9258a1bc3bb48420ee6dd783dd1b3da925baadf5be701fe12de6bc8289513546a64aff88750c59178f8509b647
languageName: node
linkType: hard
"@polkadot/api-derive@npm:7.15.1":
version: 7.15.1
resolution: "@polkadot/api-derive@npm:7.15.1"
@@ -3793,26 +3755,6 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/api@npm:4.17.1, @polkadot/api@npm:^4.2.1":
version: 4.17.1
resolution: "@polkadot/api@npm:4.17.1"
dependencies:
"@babel/runtime": "npm:^7.14.6"
"@polkadot/api-derive": "npm:4.17.1"
"@polkadot/keyring": "npm:^6.11.1"
"@polkadot/metadata": "npm:4.17.1"
"@polkadot/rpc-core": "npm:4.17.1"
"@polkadot/rpc-provider": "npm:4.17.1"
"@polkadot/types": "npm:4.17.1"
"@polkadot/types-known": "npm:4.17.1"
"@polkadot/util": "npm:^6.11.1"
"@polkadot/util-crypto": "npm:^6.11.1"
"@polkadot/x-rxjs": "npm:^6.11.1"
eventemitter3: "npm:^4.0.7"
checksum: 10/b56480346204fb498abf030ad2f5239910b197977c516365c25106b1e9e01a011ac40dc1a587c3e9332bd25f7de62fa9c9bfdc38bf35b760a985ae22d95bf16f
languageName: node
linkType: hard
"@polkadot/api@npm:7.15.1, @polkadot/api@npm:^7.2.1":
version: 7.15.1
resolution: "@polkadot/api@npm:7.15.1"
@@ -3919,7 +3861,7 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/keyring@npm:^6.11.1, @polkadot/keyring@npm:^6.9.1":
"@polkadot/keyring@npm:^6.9.1":
version: 6.11.1
resolution: "@polkadot/keyring@npm:6.11.1"
dependencies:
@@ -4154,20 +4096,6 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/rpc-core@npm:4.17.1":
version: 4.17.1
resolution: "@polkadot/rpc-core@npm:4.17.1"
dependencies:
"@babel/runtime": "npm:^7.14.6"
"@polkadot/metadata": "npm:4.17.1"
"@polkadot/rpc-provider": "npm:4.17.1"
"@polkadot/types": "npm:4.17.1"
"@polkadot/util": "npm:^6.11.1"
"@polkadot/x-rxjs": "npm:^6.11.1"
checksum: 10/3d1ac506f044d1e204d3121fe43ef67e916bb5ded1d24b6139ac2d7f1ae5509e550275627068b931ba209b075a09f9259db0dce80162ac5cdb1bd07ebdb9e089
languageName: node
linkType: hard
"@polkadot/rpc-core@npm:7.15.1":
version: 7.15.1
resolution: "@polkadot/rpc-core@npm:7.15.1"
@@ -4268,22 +4196,6 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/rpc-provider@npm:4.17.1":
version: 4.17.1
resolution: "@polkadot/rpc-provider@npm:4.17.1"
dependencies:
"@babel/runtime": "npm:^7.14.6"
"@polkadot/types": "npm:4.17.1"
"@polkadot/util": "npm:^6.11.1"
"@polkadot/util-crypto": "npm:^6.11.1"
"@polkadot/x-fetch": "npm:^6.11.1"
"@polkadot/x-global": "npm:^6.11.1"
"@polkadot/x-ws": "npm:^6.11.1"
eventemitter3: "npm:^4.0.7"
checksum: 10/18a44cbee748f7c600013dcd3efaf99df922a995957683d167d551573a718e2c7eaa7fdd49da39d24c1b8c8168ddb38c4f443c7863284b3f3a0969b56f789f08
languageName: node
linkType: hard
"@polkadot/rpc-provider@npm:7.15.1":
version: 7.15.1
resolution: "@polkadot/rpc-provider@npm:7.15.1"
@@ -5365,18 +5277,6 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-fetch@npm:^6.11.1":
version: 6.11.1
resolution: "@polkadot/x-fetch@npm:6.11.1"
dependencies:
"@babel/runtime": "npm:^7.14.6"
"@polkadot/x-global": "npm:6.11.1"
"@types/node-fetch": "npm:^2.5.10"
node-fetch: "npm:^2.6.1"
checksum: 10/06d96c8a3ece6b11651948f644823de28aed0eea416466fc00b9dfa60b89a39476b679784c4b64c7ca541a95cb6552030f66974df58269eda0024721850ff1be
languageName: node
linkType: hard
"@polkadot/x-fetch@npm:^8.7.1":
version: 8.7.1
resolution: "@polkadot/x-fetch@npm:8.7.1"
@@ -5425,7 +5325,7 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-global@npm:6.11.1, @polkadot/x-global@npm:^6.11.1":
"@polkadot/x-global@npm:6.11.1":
version: 6.11.1
resolution: "@polkadot/x-global@npm:6.11.1"
dependencies:
@@ -5726,18 +5626,6 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-ws@npm:^6.11.1":
version: 6.11.1
resolution: "@polkadot/x-ws@npm:6.11.1"
dependencies:
"@babel/runtime": "npm:^7.14.6"
"@polkadot/x-global": "npm:6.11.1"
"@types/websocket": "npm:^1.0.3"
websocket: "npm:^1.0.34"
checksum: 10/056b7e03d7bc643ab2d4d3beba7fa97e3dcab8c9cb152677610214ecc34f0c02c2ae7e40d33903c8aeafa0f9c20e106d94785849ca1b9c890e031b1ecd98a9b8
languageName: node
linkType: hard
"@polkadot/x-ws@npm:^8.7.1":
version: 8.7.1
resolution: "@polkadot/x-ws@npm:8.7.1"
@@ -6866,7 +6754,7 @@ __metadata:
languageName: node
linkType: hard
"@types/node-fetch@npm:^2.5.10, @types/node-fetch@npm:^2.6.1, @types/node-fetch@npm:^2.6.2":
"@types/node-fetch@npm:^2.6.1, @types/node-fetch@npm:^2.6.2":
version: 2.6.13
resolution: "@types/node-fetch@npm:2.6.13"
dependencies:
@@ -7205,7 +7093,7 @@ __metadata:
languageName: node
linkType: hard
"@types/websocket@npm:^1.0.3, @types/websocket@npm:^1.0.5":
"@types/websocket@npm:^1.0.5":
version: 1.0.10
resolution: "@types/websocket@npm:1.0.10"
dependencies:
@@ -8564,15 +8452,6 @@ __metadata:
languageName: node
linkType: hard
"axios@npm:^0.21.1":
version: 0.21.4
resolution: "axios@npm:0.21.4"
dependencies:
follow-redirects: "npm:^1.14.0"
checksum: 10/da644592cb6f8f9f8c64fdabd7e1396d6769d7a4c1ea5f8ae8beb5c2eb90a823e3a574352b0b934ac62edc762c0f52647753dc54f7d07279127a7e5c4cd20272
languageName: node
linkType: hard
"axios@npm:^1.6.2, axios@npm:^1.8.4":
version: 1.13.2
resolution: "axios@npm:1.13.2"
@@ -8682,14 +8561,7 @@ __metadata:
languageName: node
linkType: hard
"base-path-converter@npm:^1.0.2":
version: 1.0.2
resolution: "base-path-converter@npm:1.0.2"
checksum: 10/dc17bc8fd480e844b1fa496dc4c2ae0b29e70d144aae984f750aae52b7cfb691d43f43bf2c67f7220bdaf787284788923c792ca2840e62e716887b21011c53e5
languageName: node
linkType: hard
"base-x@npm:^3.0.2, base-x@npm:^3.0.8":
"base-x@npm:^3.0.8":
version: 3.0.11
resolution: "base-x@npm:3.0.11"
dependencies:
@@ -8980,15 +8852,6 @@ __metadata:
languageName: node
linkType: hard
"bs58@npm:^4.0.1":
version: 4.0.1
resolution: "bs58@npm:4.0.1"
dependencies:
base-x: "npm:^3.0.2"
checksum: 10/b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2
languageName: node
linkType: hard
"btoa@npm:^1.2.1":
version: 1.2.1
resolution: "btoa@npm:1.2.1"
@@ -9019,7 +8882,7 @@ __metadata:
languageName: node
linkType: hard
"buffer@npm:^5.5.0, buffer@npm:^5.6.0":
"buffer@npm:^5.5.0":
version: 5.7.1
resolution: "buffer@npm:5.7.1"
dependencies:
@@ -9439,32 +9302,6 @@ __metadata:
languageName: node
linkType: hard
"cids@npm:~0.7.0":
version: 0.7.5
resolution: "cids@npm:0.7.5"
dependencies:
buffer: "npm:^5.5.0"
class-is: "npm:^1.1.0"
multibase: "npm:~0.6.0"
multicodec: "npm:^1.0.0"
multihashes: "npm:~0.4.15"
checksum: 10/b916b0787e238dd9f84fb5e155333cadf07fd7ad34ea8dbd47f98bb618eecc9c70760767c0966d0eae73050c4fa6080fdc387e515565b009d2126253c7775fac
languageName: node
linkType: hard
"cids@npm:~0.8.0":
version: 0.8.3
resolution: "cids@npm:0.8.3"
dependencies:
buffer: "npm:^5.6.0"
class-is: "npm:^1.1.0"
multibase: "npm:^1.0.0"
multicodec: "npm:^1.0.1"
multihashes: "npm:^1.0.1"
checksum: 10/2772d22314e80e4baf3ca3c82b0468b712ab342472ede571609837438fba1d24259cd3c6d9751a868485d8bc373c122f6847b0df91b16cd77ce65f7709294ec9
languageName: node
linkType: hard
"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
version: 1.0.7
resolution: "cipher-base@npm:1.0.7"
@@ -9476,13 +9313,6 @@ __metadata:
languageName: node
linkType: hard
"class-is@npm:^1.1.0":
version: 1.1.0
resolution: "class-is@npm:1.1.0"
checksum: 10/8147a3e4ce86eb103d78621d665b87e8e33fcb3f54932fdca894b8222820903b43b2f6b4335d8822104702a5dc904c8f187127fdea4e7d48d905488b35c9e6a7
languageName: node
linkType: hard
"classnames@npm:^2.2.6":
version: 2.5.1
resolution: "classnames@npm:2.5.1"
@@ -12469,7 +12299,7 @@ __metadata:
languageName: node
linkType: hard
"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.15.6":
"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6":
version: 1.15.11
resolution: "follow-redirects@npm:1.15.11"
peerDependenciesMeta:
@@ -12498,20 +12328,6 @@ __metadata:
languageName: node
linkType: hard
"form-data@npm:^2.3.3":
version: 2.5.5
resolution: "form-data@npm:2.5.5"
dependencies:
asynckit: "npm:^0.4.0"
combined-stream: "npm:^1.0.8"
es-set-tostringtag: "npm:^2.1.0"
hasown: "npm:^2.0.2"
mime-types: "npm:^2.1.35"
safe-buffer: "npm:^5.2.1"
checksum: 10/4b6a8d07bb67089da41048e734215f68317a8e29dd5385a972bf5c458a023313c69d3b5d6b8baafbb7f808fa9881e0e2e030ffe61e096b3ddc894c516401271d
languageName: node
linkType: hard
"form-data@npm:^4.0.0, form-data@npm:^4.0.4":
version: 4.0.5
resolution: "form-data@npm:4.0.5"
@@ -13918,7 +13734,7 @@ __metadata:
languageName: node
linkType: hard
"ip-regex@npm:^4.0.0, ip-regex@npm:^4.3.0":
"ip-regex@npm:^4.3.0":
version: 4.3.0
resolution: "ip-regex@npm:4.3.0"
checksum: 10/7ff904b891221b1847f3fdf3dbb3e6a8660dc39bc283f79eb7ed88f5338e1a3d1104b779bc83759159be266249c59c2160e779ee39446d79d4ed0890dfd06f08
@@ -14176,29 +13992,6 @@ __metadata:
languageName: node
linkType: hard
"is-ip@npm:^3.1.0":
version: 3.1.0
resolution: "is-ip@npm:3.1.0"
dependencies:
ip-regex: "npm:^4.0.0"
checksum: 10/da2c2b282407194adf2320bade0bad94be9c9d0bdab85ff45b1b62d8185f31c65dff3884519d57bf270277e5ea2046c7916a6e5a6db22fe4b7ddcdd3760f23eb
languageName: node
linkType: hard
"is-ipfs@npm:^0.6.0":
version: 0.6.3
resolution: "is-ipfs@npm:0.6.3"
dependencies:
bs58: "npm:^4.0.1"
cids: "npm:~0.7.0"
mafmt: "npm:^7.0.0"
multiaddr: "npm:^7.2.1"
multibase: "npm:~0.6.0"
multihashes: "npm:~0.4.13"
checksum: 10/764f0c5837f266ee3940e3ebf098fa5797e2eef0224b226dd3bba094d099130897f9de8aadbb15e98f1df5810dfe2e511895dd2be2746f598dc9a07c5664694d
languageName: node
linkType: hard
"is-ipfs@npm:^8.0.1":
version: 8.0.4
resolution: "is-ipfs@npm:8.0.4"
@@ -15180,15 +14973,6 @@ __metadata:
languageName: node
linkType: hard
"mafmt@npm:^7.0.0":
version: 7.1.0
resolution: "mafmt@npm:7.1.0"
dependencies:
multiaddr: "npm:^7.3.0"
checksum: 10/b81405cb133b8e0a6787cc0e1529ddaf6a47478811a14190c048e5a6c260f99e118b3df00ca60caccbe20a63b5eacf8ffe29950102932137ea36f962196fcea4
languageName: node
linkType: hard
"magic-string@npm:^0.25.7":
version: 0.25.9
resolution: "magic-string@npm:0.25.9"
@@ -15737,7 +15521,7 @@ __metadata:
languageName: node
linkType: hard
"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:^2.1.35, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
@@ -16072,50 +15856,6 @@ __metadata:
languageName: node
linkType: hard
"multiaddr@npm:^7.2.1, multiaddr@npm:^7.3.0":
version: 7.5.0
resolution: "multiaddr@npm:7.5.0"
dependencies:
buffer: "npm:^5.5.0"
cids: "npm:~0.8.0"
class-is: "npm:^1.1.0"
is-ip: "npm:^3.1.0"
multibase: "npm:^0.7.0"
varint: "npm:^5.0.0"
checksum: 10/4ac0a4c3c416dd8dd310591783c7c7d30ede61a25f17ab2ffd0ec687b235ea697745ee26ba92f8725763162c8366a71eda031b4281b83392a5fba85490b9dfb1
languageName: node
linkType: hard
"multibase@npm:^0.7.0":
version: 0.7.0
resolution: "multibase@npm:0.7.0"
dependencies:
base-x: "npm:^3.0.8"
buffer: "npm:^5.5.0"
checksum: 10/a5cbbf00b8aa61bcb92a706e210d8f258e8413cff2893584fedbc316c98bf2a44b8f648b57c124ddfaa29750c3b686ee5ba973cb8da84a896c19d63101b09445
languageName: node
linkType: hard
"multibase@npm:^1.0.0, multibase@npm:^1.0.1":
version: 1.0.1
resolution: "multibase@npm:1.0.1"
dependencies:
base-x: "npm:^3.0.8"
buffer: "npm:^5.5.0"
checksum: 10/f04306f3e809ea1d49330d87ebb6b93878182bc782b58790c2044aa2f4f0a625f5e8a155b4e1b6f327a6315f005ce49dd1e3b7fc13136895ff43ed1f42276d6d
languageName: node
linkType: hard
"multibase@npm:~0.6.0":
version: 0.6.1
resolution: "multibase@npm:0.6.1"
dependencies:
base-x: "npm:^3.0.8"
buffer: "npm:^5.5.0"
checksum: 10/c9e3bf20dc1b109019b94b14a76731ea0a6b0e654a4ef627ba154bfc2b8602ac43b160c44d8245d18cd6a9ed971826efb204230f22b929c8b3e72da13dbc1859
languageName: node
linkType: hard
"multicast-dns@npm:^7.2.5":
version: 7.2.5
resolution: "multicast-dns@npm:7.2.5"
@@ -16128,16 +15868,6 @@ __metadata:
languageName: node
linkType: hard
"multicodec@npm:^1.0.0, multicodec@npm:^1.0.1":
version: 1.0.4
resolution: "multicodec@npm:1.0.4"
dependencies:
buffer: "npm:^5.6.0"
varint: "npm:^5.0.0"
checksum: 10/3a78ac54d3715e6b095a1805f63b4c4e7d5bb4642445691c0c4e6442cad9f97823469634e73ee362ba748596570db1050d69d5cc74a88928b1e9658916cdfbcd
languageName: node
linkType: hard
"multiformats@npm:^12.1.3":
version: 12.1.3
resolution: "multiformats@npm:12.1.3"
@@ -16152,28 +15882,6 @@ __metadata:
languageName: node
linkType: hard
"multihashes@npm:^1.0.1":
version: 1.0.1
resolution: "multihashes@npm:1.0.1"
dependencies:
buffer: "npm:^5.6.0"
multibase: "npm:^1.0.1"
varint: "npm:^5.0.0"
checksum: 10/99b1c5321265b5a16073a38f4fbd8952bf7dbf7362d90961e0b2838c7798ec463b81021d4bf1c5314ec7ad39d1eaf533acc672156bbe3cf771663348b7f2721d
languageName: node
linkType: hard
"multihashes@npm:~0.4.13, multihashes@npm:~0.4.15":
version: 0.4.21
resolution: "multihashes@npm:0.4.21"
dependencies:
buffer: "npm:^5.5.0"
multibase: "npm:^0.7.0"
varint: "npm:^5.0.0"
checksum: 10/a482d9ba7ed0ad41db22ca589f228e4b7a30207a229a64dfc9888796752314fca00a8d03025fe40d6d73965bbb246f54b73626c5a235463e30c06c7bf7a8785f
languageName: node
linkType: hard
"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4":
version: 0.0.8
resolution: "mute-stream@npm:0.0.8"
@@ -16330,7 +16038,7 @@ __metadata:
languageName: node
linkType: hard
"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0":
"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
dependencies:
@@ -17067,11 +16775,9 @@ __metadata:
version: 0.0.0-use.local
resolution: "pezkuwi-apps@workspace:."
dependencies:
"@crustio/crust-pin": "npm:^1.0.0"
"@pezkuwi/dev": "npm:^0.85.7"
"@pezkuwi/extension-dapp": "npm:^0.62.20"
"@pezkuwi/extension-inject": "npm:^0.62.20"
"@pinata/sdk": "npm:^1.2.1"
"@types/chart.js": "npm:^2.9.41"
"@types/file-saver": "npm:^2.0.7"
"@types/react-beautiful-dnd": "npm:^13.1.7"
@@ -18187,16 +17893,6 @@ __metadata:
languageName: node
linkType: hard
"recursive-fs@npm:^1.1.2":
version: 1.1.2
resolution: "recursive-fs@npm:1.1.2"
bin:
recursive-copy: ./bin/recursive-copy
recursive-delete: ./bin/recursive-delete
checksum: 10/f0226cfe4ec5e5d7759bb4ae16a73ac00c2586637a519cac3e5b742d915d6f007beb7086db1a2acad10976bf36ba871240faf385233af60d83cfdb50fce65df3
languageName: node
linkType: hard
"redent@npm:^3.0.0":
version: 3.0.0
resolution: "redent@npm:3.0.0"
@@ -21134,13 +20830,6 @@ __metadata:
languageName: node
linkType: hard
"varint@npm:^5.0.0":
version: 5.0.2
resolution: "varint@npm:5.0.2"
checksum: 10/e1a66bf9a6cea96d1f13259170d4d41b845833acf3a9df990ea1e760d279bd70d5b1f4c002a50197efd2168a2fd43eb0b808444600fd4d23651e8d42fe90eb05
languageName: node
linkType: hard
"vary@npm:~1.1.2":
version: 1.1.2
resolution: "vary@npm:1.1.2"