diff --git a/.docker/config/init-db.sh b/.docker/config/init-db.sh new file mode 100755 index 0000000..a087adf --- /dev/null +++ b/.docker/config/init-db.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -e +set -u + +function create_user_and_database() { + local database=$1 + echo " Creating user and database '$database'" + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER $database; + CREATE DATABASE $database; + GRANT ALL PRIVILEGES ON DATABASE $database TO $database; +EOSQL +} + +if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then + echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES" + for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do + create_user_and_database $db + done + echo "Multiple databases created" +fi \ No newline at end of file diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml new file mode 100644 index 0000000..377ae8d --- /dev/null +++ b/.docker/docker-compose.yml @@ -0,0 +1,119 @@ +version: "3.7" +services: + + db: + image: postgres:14-alpine + environment: + POSTGRES_USER: ${DB_USER} + POSTGRES_PASSWORD: ${DB_PASS} + POSTGRES_MULTIPLE_DATABASES: ${DB_DATABASES} + volumes: + - ./config/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh + - ./.tmp/db:/var/lib/postgresql/data + + redis: + image: redis:7-alpine + ports: + - 6379:6379 + command: redis-server --save 60 1 --loglevel warning + + api: + image: ${DOCKER_BOT} + command: + - npm + - run-script + - api + environment: + LOGGING_LEVEL: info + API_SECURITY_TOKEN: ${API_SECURITY_TOKEN} + DATABASE_URL: ${DATABASE} + API_PORT: ${API_PORT} + ports: + - ${API_PORT}:${API_PORT} + depends_on: + - db + restart: always + + + chain: + image: ${DOCKER_BOT} + command: + - npm + - run-script + - chain + environment: + LOGGING_LEVEL: info + DATABASE_URL: ${DATABASE} + GRAPH_URL: ${GRAPH_URL} + CHAIN_RPC_URL: ${CHAIN_RPC_URL} + CHAIN_ACCOUNT: ${CHAIN_ACCOUNT} + depends_on: + - db + - api + restart: always + + + aggregation: + image: ${DOCKER_BOT} + command: + - npm + - run-script + - service + environment: + LOGGING_LEVEL: info + DATABASE_URL: ${DATABASE} + depends_on: + - db + - api + restart: always + + + # discord: + # image: ${DOCKER_BOT} + # command: + # - npm + # - run-script + # - discord + # environment: + # LOGGING_LEVEL: info + # DATABASE_URL: ${DATABASE} + # DISCORD_BOT_KEY: + # depends_on: + # - db + # - api + # restart: always + + + # twitter: + # image: ${DOCKER_BOT} + # command: + # - npm + # - run-script + # - twitter + # environment: + # LOGGING_LEVEL: info + # DATABASE_URL: ${DATABASE} + # TWITTER_BEARER_TOKEN: + # depends_on: + # - db + # - api + # restart: always + + + # epic-games: + # image: ${DOCKER_BOT} + # command: + # - npm + # - run-script + # - epicGames + # environment: + # LOGGING_LEVEL: info + # DATABASE_URL: ${DATABASE} + # EPIC_GAMES_DEPLOYMENT_ID: + # EPIC_GAMES_CLIENT_ID: + # EPIC_GAMES_CLIENT_SECRET: + # depends_on: + # - db + # - api + # restart: always + diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6d1c0c8 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +dist +lib +.editorconfig +.gitignore +.docker +.trunk +.env* +.gitignore +Dockerfile +README.md diff --git a/.env.template b/.env.template deleted file mode 100644 index 5362913..0000000 --- a/.env.template +++ /dev/null @@ -1,7 +0,0 @@ -LOGGING_LEVEL='info' -DATABASE_URL='postgres://:@:/battlepass-dev' -API_PORT=8080 -DISCORD_BOT_KEY='SAMPLE' -GRAPH_URL='https://graph.dev.sub.zero.io/v1/graphql' -CHAIN_RPC_URL='wss://node.dev.sub.zero.io' -API_SECRET_KEY='00112233445566778899' # Skip this to have access without auth \ No newline at end of file diff --git a/.gitignore b/.gitignore index acf4ef6..b540580 100644 --- a/.gitignore +++ b/.gitignore @@ -103,7 +103,7 @@ dist # TernJS port file .tern-port - - - +.tmp +lib +dist **.local diff --git a/Dockerfile b/Dockerfile index bed7f5c..1d0bcfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,15 @@ -FROM node:19-alpine +# to build on apple silicone use +# DOCKER_DEFAULT_PLATFORM=linux/amd64 docker build -t battlepass-bot:local . +FROM --platform=linux/amd64 node:lts-alpine +# FROM node:lts-alpine + +RUN apk add --no-cache --virtual python make g++ +RUN apk add --no-cache --virtual .gyp WORKDIR /app -COPY src /app/src -COPY *.json /app/ -COPY jest.config.js /app/ +COPY . . + +RUN npm install && apk del .gyp +# RUN npm run build -RUN npm install -RUN npx tsc CMD ["npm", "run-script", "api"] diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index 8c5f7a7..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,93 +0,0 @@ -version: "3.7" -services: - db: - image: postgres:12-alpine - environment: - POSTGRES_PASSWORD: postgres - POSTGRES_DB: battlepass_dev - redis: - image: redis:7-alpine - ports: - - 6379:6379 - command: redis-server --save 60 1 --loglevel warning - api: - image: battlepass-bot:local - command: - - npm - - run-script - - api - environment: - LOGGING_LEVEL: info - DATABASE_URL: postgres://postgres:postgres@db:5432/battlepass_dev - API_PORT: 8080 - ports: - - 8080:8080 - depends_on: - - db - discord: - image: battlepass-bot:local - command: - - npm - - run-script - - discord - environment: - LOGGING_LEVEL: info - DATABASE_URL: postgres://postgres:postgres@db:5432/battlepass_dev - DISCORD_BOT_KEY: - depends_on: - - db - - api - twitter: - image: battlepass-bot:local - command: - - npm - - run-script - - twitter - environment: - LOGGING_LEVEL: info - DATABASE_URL: postgres://postgres:postgres@db:5432/battlepass_dev - TWITTER_BEARER_TOKEN: - depends_on: - - db - - api - chain: - image: battlepass-bot:local - command: - - npm - - run-script - - chain - environment: - LOGGING_LEVEL: info - DATABASE_URL: postgres://postgres:postgres@db:5432/battlepass_dev - GRAPH_URL: - CHAIN_RPC_URL: - depends_on: - - db - - api - aggregation: - image: battlepass-bot:local - command: - - npm - - run-script - - service - environment: - LOGGING_LEVEL: info - DATABASE_URL: postgres://postgres:postgres@db:5432/battlepass_dev - depends_on: - - db - - api - epic-games: - image: battlepass-bot:local - command: - - npm - - run-script - - epicGames - environment: - LOGGING_LEVEL: info - DATABASE_URL: postgres://postgres:postgres@db:5432/battlepass_dev - EPIC_GAMES_DEPLOYMENT_ID: - EPIC_GAMES_CLIENT_ID: - EPIC_GAMES_CLIENT_SECRET: - depends_on: - - db - - api \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f667103..bb4dabb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,6 @@ "sequelize": "^6.28.0", "sqlite3": "^5.1.4", "twitter-api-sdk": "^1.2.1", - "typescript": "^4.9.4", "uuid": "^9.0.0", "winston": "^3.8.2" }, @@ -40,11 +39,12 @@ "nodemon": "^2.0.20", "prettier": "^2.8.3", "pretty-quick": "^3.1.3", - "rimraf": "^4.0.7", + "rimraf": "^4.4.1", "sequelize-cli": "^6.6.0", "supertest": "^6.3.3", "ts-jest": "^29.0.3", - "ts-node": "^10.9.1" + "ts-node": "^10.9.1", + "typescript": "^4.9.4" } }, "node_modules/@ampproject/remapping": { @@ -747,9 +747,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -1502,9 +1502,9 @@ ] }, "node_modules/@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", "funding": [ { "type": "individual", @@ -1513,9 +1513,9 @@ ] }, "node_modules/@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", @@ -1563,26 +1563,26 @@ } }, "node_modules/@polkadot/api": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.10.5.tgz", - "integrity": "sha512-nCtQX9+ZNSEN8Cn09ylZs8ckwHfB+ofbf+opW3JeRFm1K5AScH1Hx6jP9YpTa+ii9sDEXzMdUSN90JBYLtzW7w==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/api-augment": "9.10.5", - "@polkadot/api-base": "9.10.5", - "@polkadot/api-derive": "9.10.5", - "@polkadot/keyring": "^10.2.1", - "@polkadot/rpc-augment": "9.10.5", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/rpc-provider": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-augment": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/types-create": "9.10.5", - "@polkadot/types-known": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", - "eventemitter3": "^4.0.7", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.14.2.tgz", + "integrity": "sha512-R3eYFj2JgY1zRb+OCYQxNlJXCs2FA+AU4uIEiVcXnVLmR3M55tkRNEwYAZmiFxx0pQmegGgPMc33q7TWGdw24A==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/api-augment": "9.14.2", + "@polkadot/api-base": "9.14.2", + "@polkadot/api-derive": "9.14.2", + "@polkadot/keyring": "^10.4.2", + "@polkadot/rpc-augment": "9.14.2", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/rpc-provider": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-augment": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/types-create": "9.14.2", + "@polkadot/types-known": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", + "eventemitter3": "^5.0.0", "rxjs": "^7.8.0" }, "engines": { @@ -1590,31 +1590,31 @@ } }, "node_modules/@polkadot/api-augment": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.10.5.tgz", - "integrity": "sha512-6uCjnprSTCG90limSiuMToBRalDfiPp2CeZM/tY7HxHBnv5n+I4WpPyr2RhuYyLJdJTHXhNw90YiMIR7V/0yBw==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.14.2.tgz", + "integrity": "sha512-19MmW8AHEcLkdcUIo3LLk0eCQgREWqNSxkUyOeWn7UiNMY1AhDOOwMStUBNCvrIDK6VL6GGc1sY7rkPCLMuKSw==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/api-base": "9.10.5", - "@polkadot/rpc-augment": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-augment": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/api-base": "9.14.2", + "@polkadot/rpc-augment": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-augment": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/api-base": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.10.5.tgz", - "integrity": "sha512-UGNt/Qq9xwpQR2HbM5qLLH/F2J22lzNtzjhFkXofnohZxgVEERpgtX3kw07tdQZNgAGL7E0lhMGJjvg6M+YQdw==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/util": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.14.2.tgz", + "integrity": "sha512-ky9fmzG1Tnrjr/SBZ0aBB21l0TFr+CIyQenQczoUyVgiuxVaI/2Bp6R2SFrHhG28P+PW2/RcYhn2oIAR2Z2fZQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/util": "^10.4.2", "rxjs": "^7.8.0" }, "engines": { @@ -1622,19 +1622,19 @@ } }, "node_modules/@polkadot/api-derive": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.10.5.tgz", - "integrity": "sha512-2I4D1icij36UsPbWs+jrVnBKVsKqdIe7bynrTD9Wg+abHNkqt7wJOianiSbFqq8P9zXcruwpnuXzGljgwqzbGw==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/api": "9.10.5", - "@polkadot/api-augment": "9.10.5", - "@polkadot/api-base": "9.10.5", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.14.2.tgz", + "integrity": "sha512-yw9OXucmeggmFqBTMgza0uZwhNjPxS7MaT7lSCUIRKckl1GejdV+qMhL3XFxPFeYzXwzFpdPG11zWf+qJlalqw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/api": "9.14.2", + "@polkadot/api-augment": "9.14.2", + "@polkadot/api-base": "9.14.2", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", "rxjs": "^7.8.0" }, "engines": { @@ -1642,60 +1642,60 @@ } }, "node_modules/@polkadot/keyring": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.2.1.tgz", - "integrity": "sha512-84/zzxDZANQ4AfsCT1vrjX3I23/mj9WUWl1F7q9ruK6UBFyGsl46Y3ABOopFHij9UXhppndhB65IeDnqoOKqxQ==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.4.2.tgz", + "integrity": "sha512-7iHhJuXaHrRTG6cJDbZE9G+c1ts1dujp0qbO4RfAPmT7YUvphHvAtCKueN9UKPz5+TYDL+rP/jDEaSKU8jl/qQ==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "10.2.1", - "@polkadot/util-crypto": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "10.4.2", + "@polkadot/util-crypto": "10.4.2" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "@polkadot/util": "10.2.1", - "@polkadot/util-crypto": "10.2.1" + "@polkadot/util": "10.4.2", + "@polkadot/util-crypto": "10.4.2" } }, "node_modules/@polkadot/networks": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.2.1.tgz", - "integrity": "sha512-cDZIY4jBo2tlDdSXNbECpuWer0NWlPcJNhHHveTiu2idje2QyIBNxBlAPViNGpz+ScAR0EknEzmQKuHOcSKxzg==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.4.2.tgz", + "integrity": "sha512-FAh/znrEvWBiA/LbcT5GXHsCFUl//y9KqxLghSr/CreAmAergiJNT0MVUezC7Y36nkATgmsr4ylFwIxhVtuuCw==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "10.2.1", - "@substrate/ss58-registry": "^1.35.0" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "10.4.2", + "@substrate/ss58-registry": "^1.38.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/rpc-augment": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.10.5.tgz", - "integrity": "sha512-ip6jH7XcyvAwd6EUlbHFHglmNt42h0890lKDaDMIKIsC+U2HDNnMHvW16xH0cOGV98LdGiRltHLtCnl7u+EFZg==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.14.2.tgz", + "integrity": "sha512-mOubRm3qbKZTbP9H01XRrfTk7k5it9WyzaWAg72DJBQBYdgPUUkGSgpPD/Srkk5/5GAQTWVWL1I2UIBKJ4TJjQ==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/rpc-core": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.10.5.tgz", - "integrity": "sha512-HcsQDOw3+vChhp7KcOxsQKod5O8BUISjbGSuHuBKtDCc75MPVr250UTtgi5cvJ3q7OFrYfDM3i0rqIPSa/zykQ==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/rpc-augment": "9.10.5", - "@polkadot/rpc-provider": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/util": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.14.2.tgz", + "integrity": "sha512-krA/mtQ5t9nUQEsEVC1sjkttLuzN6z6gyJxK2IlpMS3S5ncy/R6w4FOpy+Q0H18Dn83JBo0p7ZtY7Y6XkK48Kw==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/rpc-augment": "9.14.2", + "@polkadot/rpc-provider": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/util": "^10.4.2", "rxjs": "^7.8.0" }, "engines": { @@ -1703,40 +1703,42 @@ } }, "node_modules/@polkadot/rpc-provider": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.10.5.tgz", - "integrity": "sha512-R9J9JXx3J//cSVKqQKSTC3HPCv14ZyONVdjiHWLsZymX6okb1ORnhms8JeRMRD4h4FnLePOuKsE9IwEmOUiIUg==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/keyring": "^10.2.1", - "@polkadot/types": "9.10.5", - "@polkadot/types-support": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", - "@polkadot/x-fetch": "^10.2.1", - "@polkadot/x-global": "^10.2.1", - "@polkadot/x-ws": "^10.2.1", - "@substrate/connect": "0.7.18", - "eventemitter3": "^4.0.7", - "mock-socket": "^9.1.5", - "nock": "^13.2.9" + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.14.2.tgz", + "integrity": "sha512-YTSywjD5PF01V47Ru5tln2LlpUwJiSOdz6rlJXPpMaY53hUp7+xMU01FVAQ1bllSBNisSD1Msv/mYHq84Oai2g==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/keyring": "^10.4.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-support": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", + "@polkadot/x-fetch": "^10.4.2", + "@polkadot/x-global": "^10.4.2", + "@polkadot/x-ws": "^10.4.2", + "eventemitter3": "^5.0.0", + "mock-socket": "^9.2.1", + "nock": "^13.3.0" }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@substrate/connect": "0.7.19" } }, "node_modules/@polkadot/types": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.10.5.tgz", - "integrity": "sha512-+NR+mnLl8bcyDTAHUDm1RH3tm7pCeWQKmg6ihLlPzbihyCoCcLxlL5t9ZkRm+3Q9nVhdC4UEIu1befcZ4jncMA==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/keyring": "^10.2.1", - "@polkadot/types-augment": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/types-create": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.14.2.tgz", + "integrity": "sha512-hGLddTiJbvowhhUZJ3k+olmmBc1KAjWIQxujIUIYASih8FQ3/YJDKxaofGOzh0VygOKW3jxQBN2VZPofyDP9KQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/keyring": "^10.4.2", + "@polkadot/types-augment": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/types-create": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", "rxjs": "^7.8.0" }, "engines": { @@ -1744,83 +1746,83 @@ } }, "node_modules/@polkadot/types-augment": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.10.5.tgz", - "integrity": "sha512-kuJtsadIal4O/BDAMCkf3z+m+BDTRawMkxvHoN/NUiHZcQhtXhSx5xe6X3SwYSv8YCTLYqNXQzak0YBb0v0p1w==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.14.2.tgz", + "integrity": "sha512-WO9d7RJufUeY3iFgt2Wz762kOu1tjEiGBR5TT4AHtpEchVHUeosVTrN9eycC+BhleqYu52CocKz6u3qCT/jKLg==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/types-codec": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.10.5.tgz", - "integrity": "sha512-+RUgF1MzPNlQ3Sk61+b2kK9NasXS9NNLxgMwjs/iHaFkK9XjRUcM3qN2UlWkFcqMaUkTnuIrc8lT2wJlHYfR7g==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.14.2.tgz", + "integrity": "sha512-AJ4XF7W1no4PENLBRU955V6gDxJw0h++EN3YoDgThozZ0sj3OxyFupKgNBZcZb2V23H8JxQozzIad8k+nJbO1w==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "^10.2.1", - "@polkadot/x-bigint": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "^10.4.2", + "@polkadot/x-bigint": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/types-create": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.10.5.tgz", - "integrity": "sha512-A7n4XG3gE1+d6YAfSq4CDJ1HSd1zvoiPCOY7snxlnpKJCbOHLHq2tWerWtZDvp9IduHS/lXcnywxlhOZLuSQXg==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.14.2.tgz", + "integrity": "sha512-nSnKpBierlmGBQT8r6/SHf6uamBIzk4WmdMsAsR4uJKJF1PtbIqx2W5PY91xWSiMSNMzjkbCppHkwaDAMwLGaw==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/types-known": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.10.5.tgz", - "integrity": "sha512-FHNvwEIGAFRVaqWXOSLWlaXlDk23Ug+yfQ0IPucLvQLFEvSQtE7VK2+RKxgT3gXHodX7xh0yBTBBJBV7MWplRg==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.14.2.tgz", + "integrity": "sha512-iM8WOCgguzJ3TLMqlm4K1gKQEwWm2zxEKT1HZZ1irs/lAbBk9MquDWDvebryiw3XsLB8xgrp3RTIBn2Q4FjB2A==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/networks": "^10.2.1", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/types-create": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/networks": "^10.4.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/types-create": "9.14.2", + "@polkadot/util": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/types-support": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.10.5.tgz", - "integrity": "sha512-o5wIkWqNV0QsPMrZ0uKM2K2hJ4IP9KhFQzoU+97lE2Yb3TDUCA6XWP9VqyobYjaxXd9DmPdSjzqb2hzhMwunbw==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.14.2.tgz", + "integrity": "sha512-VWCOPgXDK3XtXT7wMLyIWeNDZxUbNcw/8Pn6n6vMogs7o/n4h6WGbGMeTIQhPWyn831/RmkVs5+2DUC+2LlOhw==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "^10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/util": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.2.1.tgz", - "integrity": "sha512-ewGKSOp+VXKEeCvpCCP2Qqi/FVkewBF9vb/N8pRwuNQ2XE9k1lnsOZZeQemVBDhKsZz+h3IeNcWejaF6K3vYHQ==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-bigint": "10.2.1", - "@polkadot/x-global": "10.2.1", - "@polkadot/x-textdecoder": "10.2.1", - "@polkadot/x-textencoder": "10.2.1", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.4.2.tgz", + "integrity": "sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@polkadot/x-bigint": "10.4.2", + "@polkadot/x-global": "10.4.2", + "@polkadot/x-textdecoder": "10.4.2", + "@polkadot/x-textencoder": "10.4.2", "@types/bn.js": "^5.1.1", "bn.js": "^5.2.1" }, @@ -1829,18 +1831,18 @@ } }, "node_modules/@polkadot/util-crypto": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.2.1.tgz", - "integrity": "sha512-UH1J4oD92gkLXMfVTLee3Y2vYadNyp1lmS4P2nZwQ0SOzGZ4rN7khD2CrB1cXS9WPq196Zb5oZdGLnPYnXHtjw==", - "dependencies": { - "@babel/runtime": "^7.20.6", - "@noble/hashes": "1.1.3", - "@noble/secp256k1": "1.7.0", - "@polkadot/networks": "10.2.1", - "@polkadot/util": "10.2.1", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.4.2.tgz", + "integrity": "sha512-RxZvF7C4+EF3fzQv8hZOLrYCBq5+wA+2LWv98nECkroChY3C2ZZvyWDqn8+aonNULt4dCVTWDZM0QIY6y4LUAQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@polkadot/networks": "10.4.2", + "@polkadot/util": "10.4.2", "@polkadot/wasm-crypto": "^6.4.1", - "@polkadot/x-bigint": "10.2.1", - "@polkadot/x-randomvalues": "10.2.1", + "@polkadot/x-bigint": "10.4.2", + "@polkadot/x-randomvalues": "10.4.2", "@scure/base": "1.1.1", "ed2curve": "^0.3.0", "tweetnacl": "^1.0.3" @@ -1849,7 +1851,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "@polkadot/util": "10.2.1" + "@polkadot/util": "10.4.2" } }, "node_modules/@polkadot/wasm-bridge": { @@ -1949,24 +1951,24 @@ } }, "node_modules/@polkadot/x-bigint": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.2.1.tgz", - "integrity": "sha512-asFroI2skC4gYv0oIqqb84DqCCxhNUTSCKobEg57WdXoT4TKrN9Uetg2AMSIHRiX/9lP3EPMhUjM1VVGobTQRQ==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz", + "integrity": "sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/x-fetch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.2.1.tgz", - "integrity": "sha512-6ASJUZIrbLaKW+AOW7E5CuktwJwa2LHhxxRyJe398HxZUjJRjO2VJPdqoSwwCYvfFa1TcIr3FDWS63ooDfvGMA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.4.2.tgz", + "integrity": "sha512-Ubb64yaM4qwhogNP+4mZ3ibRghEg5UuCYRMNaCFoPgNAY8tQXuDKrHzeks3+frlmeH9YRd89o8wXLtWouwZIcw==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1", + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2", "@types/node-fetch": "^2.6.2", "node-fetch": "^3.3.0" }, @@ -1975,9 +1977,9 @@ } }, "node_modules/@polkadot/x-fetch/node_modules/node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -1992,59 +1994,59 @@ } }, "node_modules/@polkadot/x-global": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.2.1.tgz", - "integrity": "sha512-kWmPku2lCcoYKU16+lWGOb95+6Lu9zo1trvzTWmAt7z0DXw2GlD9+qmDTt5iYGtguJsGXoRZDGilDTo3MeFrkA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.4.2.tgz", + "integrity": "sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA==", "dependencies": { - "@babel/runtime": "^7.20.6" + "@babel/runtime": "^7.20.13" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/x-randomvalues": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.2.1.tgz", - "integrity": "sha512-bEwG6j/+HMZ5LIkyzRbTB0N1Wz2lHyxP25pPFgHFqGqon/KZoRN5kxOwEJ1DpPJIv+9PVn5tt7bc4R3qsaZ93g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz", + "integrity": "sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/x-textdecoder": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.2.1.tgz", - "integrity": "sha512-hpFmrdv/rrSM4UNaV8TJBgMtwXsYlNgBTSUmnKWwJIN3PhOUeYxl1qIbPchxGbJBc35WviJCZe7rlLja9JvFcw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz", + "integrity": "sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/x-textencoder": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.2.1.tgz", - "integrity": "sha512-4gMyY6DCH34KA++bawu/zlUJ0/8+aZJsurwjRBbkdfOS2uLo0K+vJ5GBevAhl0VSznM36ptfh/MpkIBKK/6R0g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz", + "integrity": "sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@polkadot/x-ws": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.2.1.tgz", - "integrity": "sha512-oS/WEHc1JSJ+xMArzFXbg1yEeaRrp6GsJLBvObj4DgTyqoWTR5fYkq1G1nHbyqdR729yAnR6755PdaWecIg98g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.4.2.tgz", + "integrity": "sha512-3gHSTXAWQu1EMcMVTF5QDKHhEHzKxhAArweEyDXE7VsgKUP/ixxw4hVZBrkX122iI5l5mjSiooRSnp/Zl3xqDQ==", "dependencies": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1", + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2", "@types/websocket": "^1.0.5", "websocket": "^1.0.34" }, @@ -2191,9 +2193,10 @@ } }, "node_modules/@substrate/connect": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.18.tgz", - "integrity": "sha512-T1CaZJhe+uaeyM/cBdmD/oMWnaGf+tJdfG+3Os4H5YR0NVKXWsHpSfBryBP5wEce2hQhRiNnzQ+9ny8siKqRgg==", + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.19.tgz", + "integrity": "sha512-+DDRadc466gCmDU71sHrYOt1HcI2Cbhm7zdCFjZfFVHXhC/E8tOdrVSglAH2HDEHR0x2SiHRxtxOGC7ak2Zjog==", + "optional": true, "dependencies": { "@substrate/connect-extension-protocol": "^1.0.1", "@substrate/smoldot-light": "0.7.9", @@ -2203,21 +2206,29 @@ "node_modules/@substrate/connect-extension-protocol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", - "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==" + "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==", + "optional": true + }, + "node_modules/@substrate/connect/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "optional": true }, "node_modules/@substrate/smoldot-light": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.7.9.tgz", "integrity": "sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==", + "optional": true, "dependencies": { "pako": "^2.0.4", "ws": "^8.8.1" } }, "node_modules/@substrate/ss58-registry": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.36.0.tgz", - "integrity": "sha512-YfQIpe2bIvGg/XWNByycznbOiAknMvpYaUpQJ2sLmNT/OwPx7XjEXk7dLShccuiQDoOQt3trTtF3Frz/Tjv6Fg==" + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.41.0.tgz", + "integrity": "sha512-TLz5VkEaJRNFzf1Oiix9gqknKer3aKbLfjK9XHBFCIhdxlQpI+S6lZGu3wT4DHAGXPakYfXb8+9ZIOtWLcQ/2Q==" }, "node_modules/@tokenizer/token": { "version": "0.3.0", @@ -2438,9 +2449,9 @@ "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" }, "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", + "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", "dependencies": { "@types/node": "*", "form-data": "^3.0.0" @@ -3880,9 +3891,9 @@ } }, "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "engines": { "node": ">= 12" } @@ -4314,9 +4325,9 @@ } }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, "node_modules/execa": { "version": "5.1.1", @@ -6698,9 +6709,9 @@ } }, "node_modules/mock-socket": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.1.5.tgz", - "integrity": "sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.2.1.tgz", + "integrity": "sha512-aw9F9T9G2zpGipLLhSNh6ZpgUyUl4frcVmRN08uE1NWPWg43Wx6+sGPDbQ7E5iFZZDJW5b5bypMeAEHqTbIFag==", "engines": { "node": ">= 8" } @@ -6803,9 +6814,9 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "node_modules/nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", + "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -7227,7 +7238,8 @@ "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "optional": true }, "node_modules/parse-json": { "version": "5.2.0", @@ -7287,6 +7299,40 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", + "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -7875,10 +7921,13 @@ "dev": true }, "node_modules/rimraf": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.7.tgz", - "integrity": "sha512-CUEDDrZvc0swDgVdXGiv3FcYYQMpJxjvSGt85Amj6yU+MCVWurrLCeLiJDdJPHCzNJnwuebBEdcO//eP11Xa7w==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, + "dependencies": { + "glob": "^9.2.0" + }, "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -7889,6 +7938,57 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/rxjs": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", @@ -9018,6 +9118,7 @@ "version": "4.9.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10001,9 +10102,9 @@ } }, "@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "requires": { "regenerator-runtime": "^0.13.11" } @@ -10589,14 +10690,14 @@ "optional": true }, "@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==" }, "@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" }, "@npmcli/fs": { "version": "1.1.1", @@ -10630,232 +10731,232 @@ } }, "@polkadot/api": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.10.5.tgz", - "integrity": "sha512-nCtQX9+ZNSEN8Cn09ylZs8ckwHfB+ofbf+opW3JeRFm1K5AScH1Hx6jP9YpTa+ii9sDEXzMdUSN90JBYLtzW7w==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/api-augment": "9.10.5", - "@polkadot/api-base": "9.10.5", - "@polkadot/api-derive": "9.10.5", - "@polkadot/keyring": "^10.2.1", - "@polkadot/rpc-augment": "9.10.5", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/rpc-provider": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-augment": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/types-create": "9.10.5", - "@polkadot/types-known": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", - "eventemitter3": "^4.0.7", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.14.2.tgz", + "integrity": "sha512-R3eYFj2JgY1zRb+OCYQxNlJXCs2FA+AU4uIEiVcXnVLmR3M55tkRNEwYAZmiFxx0pQmegGgPMc33q7TWGdw24A==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/api-augment": "9.14.2", + "@polkadot/api-base": "9.14.2", + "@polkadot/api-derive": "9.14.2", + "@polkadot/keyring": "^10.4.2", + "@polkadot/rpc-augment": "9.14.2", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/rpc-provider": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-augment": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/types-create": "9.14.2", + "@polkadot/types-known": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", + "eventemitter3": "^5.0.0", "rxjs": "^7.8.0" } }, "@polkadot/api-augment": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.10.5.tgz", - "integrity": "sha512-6uCjnprSTCG90limSiuMToBRalDfiPp2CeZM/tY7HxHBnv5n+I4WpPyr2RhuYyLJdJTHXhNw90YiMIR7V/0yBw==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.14.2.tgz", + "integrity": "sha512-19MmW8AHEcLkdcUIo3LLk0eCQgREWqNSxkUyOeWn7UiNMY1AhDOOwMStUBNCvrIDK6VL6GGc1sY7rkPCLMuKSw==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/api-base": "9.10.5", - "@polkadot/rpc-augment": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-augment": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/api-base": "9.14.2", + "@polkadot/rpc-augment": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-augment": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" } }, "@polkadot/api-base": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.10.5.tgz", - "integrity": "sha512-UGNt/Qq9xwpQR2HbM5qLLH/F2J22lzNtzjhFkXofnohZxgVEERpgtX3kw07tdQZNgAGL7E0lhMGJjvg6M+YQdw==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/util": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.14.2.tgz", + "integrity": "sha512-ky9fmzG1Tnrjr/SBZ0aBB21l0TFr+CIyQenQczoUyVgiuxVaI/2Bp6R2SFrHhG28P+PW2/RcYhn2oIAR2Z2fZQ==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/util": "^10.4.2", "rxjs": "^7.8.0" } }, "@polkadot/api-derive": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.10.5.tgz", - "integrity": "sha512-2I4D1icij36UsPbWs+jrVnBKVsKqdIe7bynrTD9Wg+abHNkqt7wJOianiSbFqq8P9zXcruwpnuXzGljgwqzbGw==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/api": "9.10.5", - "@polkadot/api-augment": "9.10.5", - "@polkadot/api-base": "9.10.5", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.14.2.tgz", + "integrity": "sha512-yw9OXucmeggmFqBTMgza0uZwhNjPxS7MaT7lSCUIRKckl1GejdV+qMhL3XFxPFeYzXwzFpdPG11zWf+qJlalqw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/api": "9.14.2", + "@polkadot/api-augment": "9.14.2", + "@polkadot/api-base": "9.14.2", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", "rxjs": "^7.8.0" } }, "@polkadot/keyring": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.2.1.tgz", - "integrity": "sha512-84/zzxDZANQ4AfsCT1vrjX3I23/mj9WUWl1F7q9ruK6UBFyGsl46Y3ABOopFHij9UXhppndhB65IeDnqoOKqxQ==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.4.2.tgz", + "integrity": "sha512-7iHhJuXaHrRTG6cJDbZE9G+c1ts1dujp0qbO4RfAPmT7YUvphHvAtCKueN9UKPz5+TYDL+rP/jDEaSKU8jl/qQ==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "10.2.1", - "@polkadot/util-crypto": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "10.4.2", + "@polkadot/util-crypto": "10.4.2" } }, "@polkadot/networks": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.2.1.tgz", - "integrity": "sha512-cDZIY4jBo2tlDdSXNbECpuWer0NWlPcJNhHHveTiu2idje2QyIBNxBlAPViNGpz+ScAR0EknEzmQKuHOcSKxzg==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.4.2.tgz", + "integrity": "sha512-FAh/znrEvWBiA/LbcT5GXHsCFUl//y9KqxLghSr/CreAmAergiJNT0MVUezC7Y36nkATgmsr4ylFwIxhVtuuCw==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "10.2.1", - "@substrate/ss58-registry": "^1.35.0" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "10.4.2", + "@substrate/ss58-registry": "^1.38.0" } }, "@polkadot/rpc-augment": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.10.5.tgz", - "integrity": "sha512-ip6jH7XcyvAwd6EUlbHFHglmNt42h0890lKDaDMIKIsC+U2HDNnMHvW16xH0cOGV98LdGiRltHLtCnl7u+EFZg==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.14.2.tgz", + "integrity": "sha512-mOubRm3qbKZTbP9H01XRrfTk7k5it9WyzaWAg72DJBQBYdgPUUkGSgpPD/Srkk5/5GAQTWVWL1I2UIBKJ4TJjQ==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/rpc-core": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/rpc-core": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" } }, "@polkadot/rpc-core": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.10.5.tgz", - "integrity": "sha512-HcsQDOw3+vChhp7KcOxsQKod5O8BUISjbGSuHuBKtDCc75MPVr250UTtgi5cvJ3q7OFrYfDM3i0rqIPSa/zykQ==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/rpc-augment": "9.10.5", - "@polkadot/rpc-provider": "9.10.5", - "@polkadot/types": "9.10.5", - "@polkadot/util": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.14.2.tgz", + "integrity": "sha512-krA/mtQ5t9nUQEsEVC1sjkttLuzN6z6gyJxK2IlpMS3S5ncy/R6w4FOpy+Q0H18Dn83JBo0p7ZtY7Y6XkK48Kw==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/rpc-augment": "9.14.2", + "@polkadot/rpc-provider": "9.14.2", + "@polkadot/types": "9.14.2", + "@polkadot/util": "^10.4.2", "rxjs": "^7.8.0" } }, "@polkadot/rpc-provider": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.10.5.tgz", - "integrity": "sha512-R9J9JXx3J//cSVKqQKSTC3HPCv14ZyONVdjiHWLsZymX6okb1ORnhms8JeRMRD4h4FnLePOuKsE9IwEmOUiIUg==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/keyring": "^10.2.1", - "@polkadot/types": "9.10.5", - "@polkadot/types-support": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", - "@polkadot/x-fetch": "^10.2.1", - "@polkadot/x-global": "^10.2.1", - "@polkadot/x-ws": "^10.2.1", - "@substrate/connect": "0.7.18", - "eventemitter3": "^4.0.7", - "mock-socket": "^9.1.5", - "nock": "^13.2.9" + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.14.2.tgz", + "integrity": "sha512-YTSywjD5PF01V47Ru5tln2LlpUwJiSOdz6rlJXPpMaY53hUp7+xMU01FVAQ1bllSBNisSD1Msv/mYHq84Oai2g==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/keyring": "^10.4.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-support": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", + "@polkadot/x-fetch": "^10.4.2", + "@polkadot/x-global": "^10.4.2", + "@polkadot/x-ws": "^10.4.2", + "@substrate/connect": "0.7.19", + "eventemitter3": "^5.0.0", + "mock-socket": "^9.2.1", + "nock": "^13.3.0" } }, "@polkadot/types": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.10.5.tgz", - "integrity": "sha512-+NR+mnLl8bcyDTAHUDm1RH3tm7pCeWQKmg6ihLlPzbihyCoCcLxlL5t9ZkRm+3Q9nVhdC4UEIu1befcZ4jncMA==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/keyring": "^10.2.1", - "@polkadot/types-augment": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/types-create": "9.10.5", - "@polkadot/util": "^10.2.1", - "@polkadot/util-crypto": "^10.2.1", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.14.2.tgz", + "integrity": "sha512-hGLddTiJbvowhhUZJ3k+olmmBc1KAjWIQxujIUIYASih8FQ3/YJDKxaofGOzh0VygOKW3jxQBN2VZPofyDP9KQ==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/keyring": "^10.4.2", + "@polkadot/types-augment": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/types-create": "9.14.2", + "@polkadot/util": "^10.4.2", + "@polkadot/util-crypto": "^10.4.2", "rxjs": "^7.8.0" } }, "@polkadot/types-augment": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.10.5.tgz", - "integrity": "sha512-kuJtsadIal4O/BDAMCkf3z+m+BDTRawMkxvHoN/NUiHZcQhtXhSx5xe6X3SwYSv8YCTLYqNXQzak0YBb0v0p1w==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.14.2.tgz", + "integrity": "sha512-WO9d7RJufUeY3iFgt2Wz762kOu1tjEiGBR5TT4AHtpEchVHUeosVTrN9eycC+BhleqYu52CocKz6u3qCT/jKLg==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" } }, "@polkadot/types-codec": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.10.5.tgz", - "integrity": "sha512-+RUgF1MzPNlQ3Sk61+b2kK9NasXS9NNLxgMwjs/iHaFkK9XjRUcM3qN2UlWkFcqMaUkTnuIrc8lT2wJlHYfR7g==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.14.2.tgz", + "integrity": "sha512-AJ4XF7W1no4PENLBRU955V6gDxJw0h++EN3YoDgThozZ0sj3OxyFupKgNBZcZb2V23H8JxQozzIad8k+nJbO1w==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "^10.2.1", - "@polkadot/x-bigint": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "^10.4.2", + "@polkadot/x-bigint": "^10.4.2" } }, "@polkadot/types-create": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.10.5.tgz", - "integrity": "sha512-A7n4XG3gE1+d6YAfSq4CDJ1HSd1zvoiPCOY7snxlnpKJCbOHLHq2tWerWtZDvp9IduHS/lXcnywxlhOZLuSQXg==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.14.2.tgz", + "integrity": "sha512-nSnKpBierlmGBQT8r6/SHf6uamBIzk4WmdMsAsR4uJKJF1PtbIqx2W5PY91xWSiMSNMzjkbCppHkwaDAMwLGaw==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/types-codec": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/types-codec": "9.14.2", + "@polkadot/util": "^10.4.2" } }, "@polkadot/types-known": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.10.5.tgz", - "integrity": "sha512-FHNvwEIGAFRVaqWXOSLWlaXlDk23Ug+yfQ0IPucLvQLFEvSQtE7VK2+RKxgT3gXHodX7xh0yBTBBJBV7MWplRg==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.14.2.tgz", + "integrity": "sha512-iM8WOCgguzJ3TLMqlm4K1gKQEwWm2zxEKT1HZZ1irs/lAbBk9MquDWDvebryiw3XsLB8xgrp3RTIBn2Q4FjB2A==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/networks": "^10.2.1", - "@polkadot/types": "9.10.5", - "@polkadot/types-codec": "9.10.5", - "@polkadot/types-create": "9.10.5", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/networks": "^10.4.2", + "@polkadot/types": "9.14.2", + "@polkadot/types-codec": "9.14.2", + "@polkadot/types-create": "9.14.2", + "@polkadot/util": "^10.4.2" } }, "@polkadot/types-support": { - "version": "9.10.5", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.10.5.tgz", - "integrity": "sha512-o5wIkWqNV0QsPMrZ0uKM2K2hJ4IP9KhFQzoU+97lE2Yb3TDUCA6XWP9VqyobYjaxXd9DmPdSjzqb2hzhMwunbw==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.14.2.tgz", + "integrity": "sha512-VWCOPgXDK3XtXT7wMLyIWeNDZxUbNcw/8Pn6n6vMogs7o/n4h6WGbGMeTIQhPWyn831/RmkVs5+2DUC+2LlOhw==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/util": "^10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/util": "^10.4.2" } }, "@polkadot/util": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.2.1.tgz", - "integrity": "sha512-ewGKSOp+VXKEeCvpCCP2Qqi/FVkewBF9vb/N8pRwuNQ2XE9k1lnsOZZeQemVBDhKsZz+h3IeNcWejaF6K3vYHQ==", - "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-bigint": "10.2.1", - "@polkadot/x-global": "10.2.1", - "@polkadot/x-textdecoder": "10.2.1", - "@polkadot/x-textencoder": "10.2.1", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.4.2.tgz", + "integrity": "sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA==", + "requires": { + "@babel/runtime": "^7.20.13", + "@polkadot/x-bigint": "10.4.2", + "@polkadot/x-global": "10.4.2", + "@polkadot/x-textdecoder": "10.4.2", + "@polkadot/x-textencoder": "10.4.2", "@types/bn.js": "^5.1.1", "bn.js": "^5.2.1" } }, "@polkadot/util-crypto": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.2.1.tgz", - "integrity": "sha512-UH1J4oD92gkLXMfVTLee3Y2vYadNyp1lmS4P2nZwQ0SOzGZ4rN7khD2CrB1cXS9WPq196Zb5oZdGLnPYnXHtjw==", - "requires": { - "@babel/runtime": "^7.20.6", - "@noble/hashes": "1.1.3", - "@noble/secp256k1": "1.7.0", - "@polkadot/networks": "10.2.1", - "@polkadot/util": "10.2.1", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.4.2.tgz", + "integrity": "sha512-RxZvF7C4+EF3fzQv8hZOLrYCBq5+wA+2LWv98nECkroChY3C2ZZvyWDqn8+aonNULt4dCVTWDZM0QIY6y4LUAQ==", + "requires": { + "@babel/runtime": "^7.20.13", + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@polkadot/networks": "10.4.2", + "@polkadot/util": "10.4.2", "@polkadot/wasm-crypto": "^6.4.1", - "@polkadot/x-bigint": "10.2.1", - "@polkadot/x-randomvalues": "10.2.1", + "@polkadot/x-bigint": "10.4.2", + "@polkadot/x-randomvalues": "10.4.2", "@scure/base": "1.1.1", "ed2curve": "^0.3.0", "tweetnacl": "^1.0.3" @@ -10919,29 +11020,29 @@ } }, "@polkadot/x-bigint": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.2.1.tgz", - "integrity": "sha512-asFroI2skC4gYv0oIqqb84DqCCxhNUTSCKobEg57WdXoT4TKrN9Uetg2AMSIHRiX/9lP3EPMhUjM1VVGobTQRQ==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz", + "integrity": "sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" } }, "@polkadot/x-fetch": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.2.1.tgz", - "integrity": "sha512-6ASJUZIrbLaKW+AOW7E5CuktwJwa2LHhxxRyJe398HxZUjJRjO2VJPdqoSwwCYvfFa1TcIr3FDWS63ooDfvGMA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.4.2.tgz", + "integrity": "sha512-Ubb64yaM4qwhogNP+4mZ3ibRghEg5UuCYRMNaCFoPgNAY8tQXuDKrHzeks3+frlmeH9YRd89o8wXLtWouwZIcw==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1", + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2", "@types/node-fetch": "^2.6.2", "node-fetch": "^3.3.0" }, "dependencies": { "node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -10951,47 +11052,47 @@ } }, "@polkadot/x-global": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.2.1.tgz", - "integrity": "sha512-kWmPku2lCcoYKU16+lWGOb95+6Lu9zo1trvzTWmAt7z0DXw2GlD9+qmDTt5iYGtguJsGXoRZDGilDTo3MeFrkA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.4.2.tgz", + "integrity": "sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA==", "requires": { - "@babel/runtime": "^7.20.6" + "@babel/runtime": "^7.20.13" } }, "@polkadot/x-randomvalues": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.2.1.tgz", - "integrity": "sha512-bEwG6j/+HMZ5LIkyzRbTB0N1Wz2lHyxP25pPFgHFqGqon/KZoRN5kxOwEJ1DpPJIv+9PVn5tt7bc4R3qsaZ93g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz", + "integrity": "sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" } }, "@polkadot/x-textdecoder": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.2.1.tgz", - "integrity": "sha512-hpFmrdv/rrSM4UNaV8TJBgMtwXsYlNgBTSUmnKWwJIN3PhOUeYxl1qIbPchxGbJBc35WviJCZe7rlLja9JvFcw==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz", + "integrity": "sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" } }, "@polkadot/x-textencoder": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.2.1.tgz", - "integrity": "sha512-4gMyY6DCH34KA++bawu/zlUJ0/8+aZJsurwjRBbkdfOS2uLo0K+vJ5GBevAhl0VSznM36ptfh/MpkIBKK/6R0g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz", + "integrity": "sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1" + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2" } }, "@polkadot/x-ws": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.2.1.tgz", - "integrity": "sha512-oS/WEHc1JSJ+xMArzFXbg1yEeaRrp6GsJLBvObj4DgTyqoWTR5fYkq1G1nHbyqdR729yAnR6755PdaWecIg98g==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.4.2.tgz", + "integrity": "sha512-3gHSTXAWQu1EMcMVTF5QDKHhEHzKxhAArweEyDXE7VsgKUP/ixxw4hVZBrkX122iI5l5mjSiooRSnp/Zl3xqDQ==", "requires": { - "@babel/runtime": "^7.20.6", - "@polkadot/x-global": "10.2.1", + "@babel/runtime": "^7.20.13", + "@polkadot/x-global": "10.4.2", "@types/websocket": "^1.0.5", "websocket": "^1.0.34" } @@ -11117,33 +11218,44 @@ } }, "@substrate/connect": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.18.tgz", - "integrity": "sha512-T1CaZJhe+uaeyM/cBdmD/oMWnaGf+tJdfG+3Os4H5YR0NVKXWsHpSfBryBP5wEce2hQhRiNnzQ+9ny8siKqRgg==", + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.19.tgz", + "integrity": "sha512-+DDRadc466gCmDU71sHrYOt1HcI2Cbhm7zdCFjZfFVHXhC/E8tOdrVSglAH2HDEHR0x2SiHRxtxOGC7ak2Zjog==", + "optional": true, "requires": { "@substrate/connect-extension-protocol": "^1.0.1", "@substrate/smoldot-light": "0.7.9", "eventemitter3": "^4.0.7" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "optional": true + } } }, "@substrate/connect-extension-protocol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", - "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==" + "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==", + "optional": true }, "@substrate/smoldot-light": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.7.9.tgz", "integrity": "sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==", + "optional": true, "requires": { "pako": "^2.0.4", "ws": "^8.8.1" } }, "@substrate/ss58-registry": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.36.0.tgz", - "integrity": "sha512-YfQIpe2bIvGg/XWNByycznbOiAknMvpYaUpQJ2sLmNT/OwPx7XjEXk7dLShccuiQDoOQt3trTtF3Frz/Tjv6Fg==" + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.41.0.tgz", + "integrity": "sha512-TLz5VkEaJRNFzf1Oiix9gqknKer3aKbLfjK9XHBFCIhdxlQpI+S6lZGu3wT4DHAGXPakYfXb8+9ZIOtWLcQ/2Q==" }, "@tokenizer/token": { "version": "0.3.0", @@ -11361,9 +11473,9 @@ "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" }, "@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", + "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", "requires": { "@types/node": "*", "form-data": "^3.0.0" @@ -12488,9 +12600,9 @@ } }, "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" }, "date-fns": { "version": "2.29.3", @@ -12833,9 +12945,9 @@ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, "execa": { "version": "5.1.1", @@ -14627,9 +14739,9 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mock-socket": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.1.5.tgz", - "integrity": "sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.2.1.tgz", + "integrity": "sha512-aw9F9T9G2zpGipLLhSNh6ZpgUyUl4frcVmRN08uE1NWPWg43Wx6+sGPDbQ7E5iFZZDJW5b5bypMeAEHqTbIFag==" }, "moment": { "version": "2.29.4", @@ -14708,9 +14820,9 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", + "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", "requires": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -15010,7 +15122,8 @@ "pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "optional": true }, "parse-json": { "version": "5.2.0", @@ -15052,6 +15165,30 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-scurry": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", + "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", + "dev": true, + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "dev": true + }, + "minipass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "dev": true + } + } + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -15475,10 +15612,51 @@ "dev": true }, "rimraf": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.7.tgz", - "integrity": "sha512-CUEDDrZvc0swDgVdXGiv3FcYYQMpJxjvSGt85Amj6yU+MCVWurrLCeLiJDdJPHCzNJnwuebBEdcO//eP11Xa7w==", - "dev": true + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "requires": { + "glob": "^9.2.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + } + }, + "minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true + } + } }, "rxjs": { "version": "7.8.0", @@ -16285,7 +16463,8 @@ "typescript": { "version": "4.9.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "dev": true }, "umzug": { "version": "2.3.0", diff --git a/package.json b/package.json index 028f8b3..be4fde7 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "ISC", "main": "src/index.ts", "scripts": { - "dev": "concurrently --kill-others 'npm run dev:service' 'npm run dev:discord' 'npm run dev:chain' 'npm run dev:api'", + "dev": "concurrently -k -l 4 -p [{name}] -n 'core ',chain,graph 'npm run dev:service' 'npm run dev:chain' 'npm run dev:api'", "dev:service": "npx nodemon src/index.ts", "dev:discord": "npx nodemon src/discord/index.ts", "dev:twitter": "npx nodemon src/twitter/index.ts", @@ -14,29 +14,29 @@ "dev:chain": "npx nodemon src/chain/index.ts", "dev:api": "npx nodemon src/api/server.ts", "dev:db": "docker run --name battlepass-dev -e POSTGRES_PASSWORD=postgres123 -d postgres", - "service": "node lib/index.js", - "discord": "node lib/discord/index.js", - "twitter": "node lib/twitter/index.js", - "epicGames": "node lib/epicgames/index.js", - "chain": "node lib/chain/index.js", - "api": "node lib/api/server.js", - "generate-api-key": "node lib/getApiToken.js", + "service": "ts-node src/index.ts", + "discord": "ts-node src/discord/index.ts", + "twitter": "ts-node src/twitter/index.ts", + "epicGames": "ts-node src/epicgames/index.ts", + "chain": "ts-node src/chain/index.ts", + "api": "ts-node src/api/server.ts", + "generate-api-key": "ts-node src/getApiToken.ts", "format": "prettier --parser babel-ts --write 'src/**/*.{ts,tsx}'", "format:verify": "prettier --parser babel-ts --check 'src/**/*.{ts,tsx}'", "format:staged": "pretty-quick --staged --pattern 'src/**/*.{ts,tsx}'", - "test": "npx jest --detectOpenHandles --maxWorkers=1 ./src/tests" + "test": "npx jest --detectOpenHandles --maxWorkers=1 ./src/tests", + "build": "rimraf ./dist && npx tsc", + "docker:build": "DOCKER_DEFAULT_PLATFORM=linux/amd64 docker build -t gamedao/battlepass:local -f Dockerfile .", + "docker:run": "DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run gamedao/battlepass:local", + "docker:push": "docker tag gamedao/battlepass:local gamedao/battlepass:latest && docker push gamedao/battlepass:latest" }, "dependencies": { "@polkadot/api": "^9.10.5", "@polkadot/api-augment": "^9.10.5", - "@types/express": "^4.17.15", - "@types/jsonwebtoken": "^9.0.0", - "@types/supertest": "^2.0.12", "apollo-server-express": "^3.11.1", "bullmq": "^3.7.1", "cors": "^2.8.5", "discord.js": "^14.7.1", - "dotenv": "^16.0.3", "express": "^4.18.2", "graphql-request": "^5.1.0", "joi": "^17.7.0", @@ -45,24 +45,28 @@ "sequelize": "^6.28.0", "sqlite3": "^5.1.4", "twitter-api-sdk": "^1.2.1", - "typescript": "^4.9.4", "uuid": "^9.0.0", "winston": "^3.8.2" }, "devDependencies": { + "@types/express": "^4.17.15", + "@types/jsonwebtoken": "^9.0.0", + "@types/supertest": "^2.0.12", "@jest/globals": "^29.3.1", "concurrently": "^7.6.0", + "dotenv": "^16.0.3", "husky": "^8.0.3", "jest": "^29.3.1", "lint-staged": "^13.1.0", "nodemon": "^2.0.20", "prettier": "^2.8.3", "pretty-quick": "^3.1.3", - "rimraf": "^4.0.7", + "rimraf": "^4.4.1", "sequelize-cli": "^6.6.0", "supertest": "^6.3.3", "ts-jest": "^29.0.3", - "ts-node": "^10.9.1" + "ts-node": "^10.9.1", + "typescript": "^4.9.4" }, "husky": { "hooks": { diff --git a/src/api/gql.ts b/src/api/gql.ts index 0d81f66..4b57729 100644 --- a/src/api/gql.ts +++ b/src/api/gql.ts @@ -60,15 +60,15 @@ const typeDefs = gql(fs.readFileSync(process.cwd() + '/src/schema.graphql').toSt const resolvers = { Query: { - Battlepasses: battlepasses, - BattlepassQuests: quests, - BattlepassMembers: members, - BattlepassProgresses: progress, - BattlepassIdentities: identities, - BattlepassPoints: points, - BattlepassRewards: rewards, - BattlepassLevels: levels, - BattlepassRewardClaims: rewardClaims + battlepasses: battlepasses, + quests: quests, + members: members, + progresses: progress, + identities: identities, + points: points, + rewards: rewards, + levels: levels, + reward_claims: rewardClaims }, Battlepass: { quests: battlepassQuests, diff --git a/src/api/server.ts b/src/api/server.ts index 7782a3e..b880785 100644 --- a/src/api/server.ts +++ b/src/api/server.ts @@ -1,5 +1,6 @@ import express from 'express' import cors from 'cors' +import pkg from '../../package.json' import { config, validateConfigs } from '../config' import { logger } from '../logger' @@ -20,13 +21,15 @@ if (config.api.secretKey) { } async function main() { + logger.info(`${pkg.name} ${pkg.version}`) + logger.info('initializing...') validateConfigs('api') if (!(await initDB())) { logger.error('Failed to connect to database.') return -1 } await sequelize.sync() - app.listen(config.api.port, () => logger.info('Listening on port %s', config.api.port)) + app.listen(config.api.port, () => logger.info('service available on http://localhost:%s/graphql', config.api.port)) } main().catch((error) => logger.error(error)) // todo: make it work with tests diff --git a/src/chain/index.ts b/src/chain/index.ts index 6f8b612..e8bbfa0 100644 --- a/src/chain/index.ts +++ b/src/chain/index.ts @@ -1,5 +1,5 @@ import { ApiPromise } from '@polkadot/api' - +import pkg from '../../package.json' import { config, validateConfigs } from '../config' import { logger } from '../logger' import { sequelize, initDB, ChainStatus } from '../db' @@ -10,6 +10,8 @@ import { worker } from './worker' import { getLastBlockTimestamp, processBattlepasses } from '../indexer/indexer' async function main() { + logger.info(`${pkg.name} ${pkg.version}`) + logger.info('initializing...') validateConfigs('chain') if (!(await initDB())) { logger.error('Failed to connect to database.') diff --git a/src/chain/utils.ts b/src/chain/utils.ts index 8a76160..9e89215 100644 --- a/src/chain/utils.ts +++ b/src/chain/utils.ts @@ -5,7 +5,7 @@ let client: ApiPromise | null async function connectToNode(): Promise { const provider = new WsProvider(config.chain.rpcUrl) - const api = await ApiPromise.create({ provider }) + const api = await ApiPromise.create({ provider, noInitWarn: true }) if (!api.isConnected) { throw new Error('Failed to connect to chain RPC node.') } diff --git a/src/config.ts b/src/config.ts index 6d16305..6eaf4ef 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,7 +1,7 @@ import * as dotenv from 'dotenv' dotenv.config() -export function validateConfigs(service: 'aggregation' | 'api' | 'chain' | 'discord' | 'twitter' | 'epicGames') { +export function validateConfigs(service: 'aggregation' | 'api' | 'chain' | 'discord' | 'twitter' | 'epicGames' | 'gamedao') { let requiredEnvVariables = new Array() switch (service) { case 'aggregation': @@ -22,6 +22,10 @@ export function validateConfigs(service: 'aggregation' | 'api' | 'chain' | 'disc case 'epicGames': requiredEnvVariables.push(...['EPIC_GAMES_DEPLOYMENT_ID', 'EPIC_GAMES_CLIENT_ID', 'EPIC_GAMES_CLIENT_SECRET']) break + case 'gamedao': + break + default: + break } requiredEnvVariables.forEach((name) => { if (!process.env[name]) { @@ -31,6 +35,8 @@ export function validateConfigs(service: 'aggregation' | 'api' | 'chain' | 'disc } export const config = { + gamedao:{ + }, discord: { botKey: process.env.DISCORD_BOT_KEY, fetchMessagesSince: parseInt(process.env.DISCORD_FETCH_MESSAGES_SINCE || '2'), diff --git a/src/db.ts b/src/db.ts index 02eca49..8af571e 100644 --- a/src/db.ts +++ b/src/db.ts @@ -38,7 +38,7 @@ export class Battlepass extends Model, InferCreation Battlepass.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -136,7 +136,7 @@ export class DiscordActivity extends Model, Inf DiscordActivity.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -181,7 +181,7 @@ export class TwitterActivity extends Model, Inf TwitterActivity.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -223,7 +223,7 @@ export class GenericActivity extends Model, Inf GenericActivity.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -260,7 +260,7 @@ export class ChainActivity extends Model, InferCr ChainActivity.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -295,7 +295,7 @@ export class Identity extends Model, InferCreationAttr Identity.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -366,7 +366,7 @@ export class Quest extends Model, InferCreationAttributes Quest.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -421,17 +421,17 @@ Quest.init( allowNull: true, }, quantity: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, }, points: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, }, max: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: true, }, maxDaily: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: true, }, }, @@ -452,7 +452,7 @@ export class QuestProgress extends Model, InferCr QuestProgress.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -479,12 +479,12 @@ export class ChainStatus extends Model, InferCreati ChainStatus.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, blockNumber: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: false, }, }, @@ -504,7 +504,7 @@ export class CompletedQuest extends Model, Infer CompletedQuest.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -544,7 +544,7 @@ export class BattlepassParticipant extends Model< BattlepassParticipant.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -595,7 +595,7 @@ export class BattlepassReward extends Model< BattlepassReward.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -613,16 +613,16 @@ BattlepassReward.init( allowNull: true, }, points: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, }, level: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, }, total: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, }, available: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, }, syncStatus: { type: DataTypes.ENUM, @@ -648,7 +648,7 @@ export class BattlepassLevel extends Model, Inf BattlepassLevel.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -656,15 +656,15 @@ BattlepassLevel.init( type: DataTypes.STRING(100), }, points: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: false, }, totalPoints: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: false, }, level: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: false, }, syncStatus: { @@ -687,7 +687,7 @@ export class TwitterSearch extends Model, InferCr TwitterSearch.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -710,7 +710,7 @@ export class TwitterUser extends Model, InferCreati TwitterUser.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -735,7 +735,7 @@ export class Payment extends Model, InferCreationAttrib Payment.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, @@ -762,12 +762,12 @@ export class RewardClaim extends Model, InferCreati RewardClaim.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, nftId: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, allowNull: true }, syncStatus: { @@ -793,7 +793,7 @@ export class UserToken extends Model, InferCreationAt UserToken.init( { id: { - type: DataTypes.INTEGER.UNSIGNED, + type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, diff --git a/src/discord/index.ts b/src/discord/index.ts index 934ebfe..e273673 100644 --- a/src/discord/index.ts +++ b/src/discord/index.ts @@ -1,5 +1,5 @@ import { Client, Guild, IntentsBitField, Events } from 'discord.js' - +import pkg from '../../package.json' import { config, validateConfigs } from '../config' import { logger } from '../logger' import { sequelize, initDB } from '../db' @@ -18,6 +18,8 @@ export function getClient() { } async function main() { + logger.info(`${pkg.name} ${pkg.version}`) + logger.info('initializing...') validateConfigs('discord') if (!(await initDB())) { logger.error('Failed to connect to database.') diff --git a/src/epicgames/index.ts b/src/epicgames/index.ts index 1763d5d..d628676 100644 --- a/src/epicgames/index.ts +++ b/src/epicgames/index.ts @@ -1,3 +1,4 @@ +import pkg from '../../package.json' import { config, validateConfigs } from '../config' import { logger } from '../logger' import { sequelize, initDB } from '../db' @@ -5,6 +6,8 @@ import { getWorker } from '../queue' import { worker } from './worker' async function main() { + logger.info(`${pkg.name} ${pkg.version}`) + logger.info('initializing...') validateConfigs('epicGames') if (!(await initDB())) { logger.error('Failed to connect to database.') diff --git a/src/gamedao/index.ts b/src/gamedao/index.ts new file mode 100644 index 0000000..86332ed --- /dev/null +++ b/src/gamedao/index.ts @@ -0,0 +1,21 @@ +import pkg from '../../package.json' +import { config, validateConfigs } from '../config' +import { logger } from '../logger' + +import { sequelize, initDB } from '../db' +import { getWorker } from '../queue' +import { worker } from './worker' + +async function main() { + logger.info(`${pkg.name} ${pkg.version}`) + logger.info('initializing...') + validateConfigs('gamedao') + if (!(await initDB())) { + logger.error('Failed to connect to database.') + return -1 + } + await sequelize.sync() + getWorker('gamedao', worker) +} + +main().catch((error) => logger.error(error)) diff --git a/src/gamedao/worker.ts b/src/gamedao/worker.ts new file mode 100644 index 0000000..99febbf --- /dev/null +++ b/src/gamedao/worker.ts @@ -0,0 +1,15 @@ +import * as crypto from 'crypto' +import { Job } from 'bullmq' +import { Op } from 'sequelize' + +import { config } from '../config' +import { logger } from '../logger' +import { getQueue } from '../queue' + +import { Identity, GenericActivity, UserToken, Quest, CompletedQuest, QuestProgress, BattlepassParticipant } from '../db' + +export async function worker(job: Job) { + let type = job.data.type + logger.debug('Received %s task', type) +} + diff --git a/src/queue.ts b/src/queue.ts index c06fc08..902d807 100644 --- a/src/queue.ts +++ b/src/queue.ts @@ -2,7 +2,7 @@ import { Queue, Worker, Processor } from 'bullmq' import { config } from './config' import { logger } from './logger' -export function getQueue(name: 'chain' | 'twitter' | 'epicGames') { +export function getQueue(name: 'chain' | 'twitter' | 'epicGames' | 'gamedao' ) { let q = new Queue(name, { connection: config.general.redis, defaultJobOptions: { @@ -16,7 +16,7 @@ export function getQueue(name: 'chain' | 'twitter' | 'epicGames') { return q } -export function getWorker(name: 'chain' | 'twitter' | 'epicGames', worker: Processor) { +export function getWorker(name: 'chain' | 'twitter' | 'epicGames' | 'gamedao', worker: Processor) { let w = new Worker(name, worker, { connection: config.general.redis, concurrency: 1 diff --git a/src/schema.graphql b/src/schema.graphql index 71ec2e8..2ebf946 100644 --- a/src/schema.graphql +++ b/src/schema.graphql @@ -242,15 +242,15 @@ input LevelsFilter { } type Query { - Battlepasses(where: BattlepassesFilter): [Battlepass] - BattlepassMembers(where: MemberFilter): [BattlepassMember] - BattlepassProgresses(where: ProgressFilter): [BattlepassQuestProgress] - BattlepassQuests(where: QuestFilter): [BattlepassQuest] - BattlepassIdentities(where: IdentityFilter): [BattlepassIdentity] - BattlepassPoints(where: PointsFilter): [BattlepassPoint] - BattlepassRewards(where: RewardsFilter): [BattlepassReward] - BattlepassLevels(where: LevelsFilter): [BattlepassLevel] - BattlepassRewardClaims(where: RewardClaimFilter): [BattlepassRewardClaim] + battlepasses(where: BattlepassesFilter): [Battlepass] + members(where: MemberFilter): [BattlepassMember] + progresses(where: ProgressFilter): [BattlepassQuestProgress] + quests(where: QuestFilter): [BattlepassQuest] + identities(where: IdentityFilter): [BattlepassIdentity] + points(where: PointsFilter): [BattlepassPoint] + rewards(where: RewardsFilter): [BattlepassReward] + levels(where: LevelsFilter): [BattlepassLevel] + reward_claims(where: RewardClaimFilter): [BattlepassRewardClaim] } type Mutation { @@ -265,4 +265,4 @@ type Mutation { claimReward(battlepass: String!, identityUuid: String!, reward: String!): BattlepassRewardClaim updateBattlepass(battlepass: String!, joinable: Boolean, freePasses: Int, premiumPasses: Int): Battlepass provideUserToken(identityUuid: String!, source: Source!, token: String!): BattlepassIdentity -} \ No newline at end of file +} diff --git a/src/twitter/index.ts b/src/twitter/index.ts index ed5bca2..6d6731c 100644 --- a/src/twitter/index.ts +++ b/src/twitter/index.ts @@ -1,3 +1,4 @@ +import pkg from '../../package.json' import { config, validateConfigs } from '../config' import { logger } from '../logger' import { TwitterActivity, TwitterUser } from '../db' @@ -159,6 +160,8 @@ async function iteration(again: boolean) { } async function main() { + logger.info(`${pkg.name} ${pkg.version}`) + logger.info('initializing...') validateConfigs('twitter') if (!(await initDB())) { logger.error('Failed to connect to database.') diff --git a/tsconfig.json b/tsconfig.json index 57615ee..5f7599e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "module": "commonjs", "target": "es2020", - "outDir": "lib", - "rootDir": "src", + "outDir": "dist", + "rootDir": "./", "strict": true, "declaration": false, "sourceMap": true, @@ -16,4 +16,4 @@ }, "include": ["src"], "exclude": ["node_modules"] -} \ No newline at end of file +}