diff --git a/.nvmrc b/.nvmrc index 3c03207..209e3ef 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18 +20 diff --git a/cli/package.json b/cli/package.json index 0be1333..38ec89c 100644 --- a/cli/package.json +++ b/cli/package.json @@ -4,7 +4,7 @@ "type": "module", "exports": "./src/index.js", "engines": { - "node": ">=18" + "node": ">=20" }, "license": "MIT", "scripts": { @@ -15,7 +15,6 @@ "dependencies": { "@inquirer/core": "^8.2.2", "@inquirer/prompts": "^5.0.5", - "@pinata/sdk": "^2.1.0", "@shapeshiftoss/hdwallet-core": "^1.55.1", "@shapeshiftoss/hdwallet-native": "^1.55.1", "axios": "^1.7.2", @@ -26,6 +25,7 @@ "dotenv": "^16.4.5", "log-symbols": "^6.0.0", "ora": "^8.0.1", + "pinata": "^2.3.0", "viem": "^2.17.3" }, "devDependencies": { diff --git a/cli/sample.env b/cli/sample.env index 9a8e306..8b82066 100644 --- a/cli/sample.env +++ b/cli/sample.env @@ -1,5 +1,4 @@ INFURA_API_KEY= -PINATA_API_KEY= -PINATA_SECRET_API_KEY= +PINATA_JWT= PINATA_GATEWAY_URL= PINATA_GATEWAY_API_KEY= \ No newline at end of file diff --git a/cli/src/ipfs.ts b/cli/src/ipfs.ts index 064a540..b1926fc 100644 --- a/cli/src/ipfs.ts +++ b/cli/src/ipfs.ts @@ -1,5 +1,5 @@ import * as prompts from '@inquirer/prompts' -import PinataClient from '@pinata/sdk' +import { PinataSDK } from 'pinata' import axios, { isAxiosError } from 'axios' import BigNumber from 'bignumber.js' import { error, info } from './logging' @@ -7,18 +7,12 @@ import { Epoch, EpochDetails, RFOXMetadata, RewardDistribution } from './types' import { MONTHS } from './constants' import { ARBITRUM_RFOX_PROXY_CONTRACT_ADDRESS_FOX } from './client' -const PINATA_API_KEY = process.env['PINATA_API_KEY'] -const PINATA_SECRET_API_KEY = process.env['PINATA_SECRET_API_KEY'] +const PINATA_JWT = process.env['PINATA_JWT'] const PINATA_GATEWAY_URL = process.env['PINATA_GATEWAY_URL'] const PINATA_GATEWAY_API_KEY = process.env['PINATA_GATEWAY_API_KEY'] -if (!PINATA_API_KEY) { - error('PINATA_API_KEY not set. Please make sure you copied the sample.env and filled out your .env file.') - process.exit(1) -} - -if (!PINATA_SECRET_API_KEY) { - error('PINATA_SECRET_API_KEY not set. Please make sure you copied the sample.env and filled out your .env file.') +if (!PINATA_JWT) { + error('PINATA_JWT not set. Please make sure you copied the sample.env and filled out your .env file.') process.exit(1) } @@ -96,16 +90,22 @@ const isRewardDistribution = (obj: any): obj is RewardDistribution => { } export class IPFS { - private client: PinataClient + private client: PinataSDK - constructor(client: PinataClient) { + constructor(client: PinataSDK) { this.client = client } static async new(): Promise { try { - const client = new PinataClient({ pinataApiKey: PINATA_API_KEY, pinataSecretApiKey: PINATA_SECRET_API_KEY }) + const client = new PinataSDK({ + pinataJwt: PINATA_JWT, + pinataGateway: PINATA_GATEWAY_URL, + pinataGatewayKey: PINATA_GATEWAY_API_KEY, + }) + await client.testAuthentication() + return new IPFS(client) } catch { error('Failed to connect to IPFS, exiting.') @@ -115,13 +115,13 @@ export class IPFS { async addEpoch(epoch: Epoch): Promise { try { - const { IpfsHash } = await this.client.pinJSONToIPFS(epoch, { - pinataMetadata: { name: `rFoxEpoch${epoch.number}_${epoch.distributionStatus}.json` }, - }) + const { cid } = await this.client.upload.public + .json(epoch) + .name(`rFoxEpoch${epoch.number}_${epoch.distributionStatus}.json`) - info(`rFOX Epoch #${epoch.number} IPFS hash: ${IpfsHash}`) + info(`rFOX Epoch #${epoch.number} IPFS hash: ${cid}`) - return IpfsHash + return cid } catch { error('Failed to add epoch to IPFS, exiting.') process.exit(1) @@ -136,11 +136,7 @@ export class IPFS { } try { - const { data } = await axios.get(`${PINATA_GATEWAY_URL}/ipfs/${hash}`, { - headers: { - 'x-pinata-gateway-token': PINATA_GATEWAY_API_KEY, - }, - }) + const { data } = await this.client.gateways.public.get(hash) if (isEpoch(data)) { const month = MONTHS[new Date(data.startTimestamp).getUTCMonth()] @@ -195,13 +191,11 @@ export class IPFS { if (overrides.epoch) { metadata.ipfsHashByEpoch[overrides.epoch.number] = overrides.epoch.hash - const { IpfsHash } = await this.client.pinJSONToIPFS(metadata, { - pinataMetadata: { name: 'rFoxMetadata.json' }, - }) + const { cid } = await this.client.upload.public.json(metadata).name('rFoxMetadata.json') - info(`rFOX Metadata IPFS hash: ${IpfsHash}`) + info(`rFOX Metadata IPFS hash: ${cid}`) - return IpfsHash + return cid } } @@ -322,13 +316,11 @@ export class IPFS { if (!confirmed) return - const { IpfsHash } = await this.client.pinJSONToIPFS(metadata, { - pinataMetadata: { name: 'rFoxMetadata.json' }, - }) + const { cid } = await this.client.upload.public.json(metadata).name('rFoxMetadata.json') - info(`rFOX Metadata IPFS hash: ${IpfsHash}`) + info(`rFOX Metadata IPFS hash: ${cid}`) - return IpfsHash + return cid } } @@ -338,11 +330,7 @@ export class IPFS { }) try { - const { data } = await axios.get(`${PINATA_GATEWAY_URL}/ipfs/${hash}`, { - headers: { - 'x-pinata-gateway-token': PINATA_GATEWAY_API_KEY, - }, - }) + const { data } = await this.client.gateways.public.get(hash) if (isMetadata(data)) return data @@ -390,11 +378,7 @@ export class IPFS { }) try { - const { data } = await axios.get(`${PINATA_GATEWAY_URL}/ipfs/${metadataHash}`, { - headers: { - 'x-pinata-gateway-token': PINATA_GATEWAY_API_KEY, - }, - }) + const { data } = (await this.client.gateways.public.get(metadataHash)) as any const metadata = ((): RFOXMetadata => { if (isMetadata(data)) return data @@ -413,11 +397,7 @@ export class IPFS { })() for (const [epochNum, epochHash] of Object.entries(data.ipfsHashByEpoch)) { - const { data } = await axios.get(`${PINATA_GATEWAY_URL}/ipfs/${epochHash}`, { - headers: { - 'x-pinata-gateway-token': PINATA_GATEWAY_API_KEY, - }, - }) + const { data } = (await this.client.gateways.public.get(metadataHash)) as any if (isEpoch(data)) { metadata.ipfsHashByEpoch[epochNum] = epochHash as string diff --git a/cli/yarn.lock b/cli/yarn.lock index 7c8c803..25cc996 100644 --- a/cli/yarn.lock +++ b/cli/yarn.lock @@ -984,16 +984,6 @@ "@babel/runtime" "^7.19.0" axios "0.27.2" -"@pinata/sdk@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@pinata/sdk/-/sdk-2.1.0.tgz#d61aa8f21ec1206e867f4b65996db52b70316945" - integrity sha512-hkS0tcKtsjf9xhsEBs2Nbey5s+Db7x5rlOH9TaWHBXkJ7IwwOs2xnEDigNaxAHKjYAwcw+m2hzpO5QgOfeF7Zw== - dependencies: - axios "^0.21.1" - form-data "^2.3.3" - is-ipfs "^0.6.0" - path "^0.12.7" - "@pioneer-platform/loggerdog@^8.0.1", "@pioneer-platform/loggerdog@^8.1.31": version "8.3.1" resolved "https://registry.yarnpkg.com/@pioneer-platform/loggerdog/-/loggerdog-8.3.1.tgz#28bf060e13c8be691159a1eb29fc4ebea105223e" @@ -1453,7 +1443,7 @@ axios@0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@^0.21.1, axios@^0.21.2: +axios@^0.21.2: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -1482,7 +1472,7 @@ babel-runtime@6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -base-x@^3.0.2, base-x@^3.0.8: +base-x@^3.0.2: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -1754,14 +1744,6 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -1848,28 +1830,6 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -cids@~0.7.0: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cids@~0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.8.3.tgz#aaf48ac8ed857c3d37dad94d8db1d8c9407b92db" - integrity sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA== - dependencies: - buffer "^5.6.0" - class-is "^1.1.0" - multibase "^1.0.0" - multicodec "^1.0.1" - multihashes "^1.0.1" - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1878,11 +1838,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - cli-cursor@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" @@ -2499,15 +2454,6 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@^2.3.3: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -2748,26 +2694,16 @@ iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -2817,25 +2753,6 @@ is-interactive@^2.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-ipfs@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-0.6.3.tgz#82a5350e0a42d01441c40b369f8791e91404c497" - integrity sha512-HyRot1dvLcxImtDqPxAaY1miO6WsiP/z7Yxpg2qpaLWv5UdhAPtLvHJ4kMLM0w8GSl8AFsVF23PHe1LzuWrUlQ== - dependencies: - bs58 "^4.0.1" - cids "~0.7.0" - mafmt "^7.0.0" - multiaddr "^7.2.1" - multibase "~0.6.0" - multihashes "~0.4.13" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -3021,13 +2938,6 @@ long@^5.2.0: resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== -mafmt@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-7.1.0.tgz#4126f6d0eded070ace7dbbb6fb04977412d380b5" - integrity sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA== - dependencies: - multiaddr "^7.3.0" - make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -3102,68 +3012,6 @@ monero-regex@^1.0.8: resolved "https://registry.yarnpkg.com/monero-regex/-/monero-regex-1.0.9.tgz#4445e98a5d48d038b050fc25ff2e9155b989525c" integrity sha512-4kUBp+a/DWmL/m/oVUQLJHe7BKvY4M3XoLtCnCBo/qbXH/FOD/umuttAMFoBTp/1imsYmvPtxxNYxdQY9T+DKg== -multiaddr@^7.2.1, multiaddr@^7.3.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.5.0.tgz#976c88e256e512263445ab03b3b68c003d5f485e" - integrity sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw== - dependencies: - buffer "^5.5.0" - cids "~0.8.0" - class-is "^1.1.0" - is-ip "^3.1.0" - multibase "^0.7.0" - varint "^5.0.0" - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@^1.0.0, multibase@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" - integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^1.0.0, multicodec@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" - integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== - dependencies: - buffer "^5.6.0" - multibase "^1.0.1" - varint "^5.0.0" - -multihashes@~0.4.13, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - mute-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" @@ -3354,14 +3202,6 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path@^0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== - dependencies: - process "^0.11.1" - util "^0.10.3" - pathe@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" @@ -3398,6 +3238,11 @@ picomatch@^3.0.0: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== +pinata@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pinata/-/pinata-2.3.0.tgz#4ca8ebb3d63329c653d750d827ca5b91f06551ea" + integrity sha512-WMS5Y5UsocoplZiMdpHP3WQ97BzM3GtM2BKr4kLYJz0ug/5sAZkLxDOoC9SSGpiGjacUwA0BU43nquIJ70YwZw== + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -3413,11 +3258,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.1: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - protobufjs@^6.11.3, protobufjs@^6.8.8, protobufjs@~6.11.2, protobufjs@~6.11.3: version "6.11.4" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" @@ -4019,13 +3859,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - util@^0.12.3: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" @@ -4066,7 +3899,7 @@ varint@5.0.0: resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.0.tgz#d826b89f7490732fabc0c0ed693ed475dcb29ebf" integrity sha512-gC13b/bWrqQoKY2EmROCZ+AR0jitc6DnDGaQ6Ls9QpKmuSgJB1eQ7H3KETtQm7qSdMWMKCmsshyCmUwMLh3OAA== -varint@^5.0.0, varint@~5.0.0: +varint@~5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==