Merge branch 'master' of github.com:metaplex-foundation/metaplex into theRealLitJesus
This commit is contained in:
commit
c334764ae8
|
@ -30,3 +30,4 @@ hfuzz_workspace
|
|||
**/*.so
|
||||
**/.DS_Store
|
||||
.cache
|
||||
js/packages/web/.env
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
## Setup
|
||||
|
||||
Be sure to be running Node v12.16.2 and yarn version 1.22.10.
|
||||
Be sure to be running Node v14.17.6 and yarn version 1.22.10.
|
||||
|
||||
`yarn bootstrap`
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"keywords": [],
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
"node": "~14.17"
|
||||
},
|
||||
"scripts": {
|
||||
"bootstrap": "lerna link && lerna bootstrap",
|
||||
|
@ -29,6 +29,9 @@
|
|||
"eslint --cache --fix --max-warnings=0"
|
||||
]
|
||||
},
|
||||
"resolutions": {
|
||||
"@types/react": "^17.0.16"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@metaplex/cli",
|
||||
"version": "0.0.1",
|
||||
"version": "0.0.2",
|
||||
"main": "./build/cli.js",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
|
@ -28,6 +28,7 @@
|
|||
"borsh": "^0.4.0",
|
||||
"commander": "^8.1.0",
|
||||
"form-data": "^4.0.0",
|
||||
"ipfs-http-client": "^52.0.3",
|
||||
"loglevel": "^1.7.1",
|
||||
"node-fetch": "^2.6.1"
|
||||
},
|
||||
|
|
|
@ -27,7 +27,7 @@ import { signMetadata } from './commands/sign';
|
|||
import { signAllMetadataFromCandyMachine } from './commands/signAll';
|
||||
import log from 'loglevel';
|
||||
|
||||
program.version('0.0.1');
|
||||
program.version('0.0.2');
|
||||
|
||||
if (!fs.existsSync(CACHE_PATH)) {
|
||||
fs.mkdirSync(CACHE_PATH);
|
||||
|
@ -44,8 +44,44 @@ programCommand('upload')
|
|||
},
|
||||
)
|
||||
.option('-n, --number <number>', 'Number of images to upload')
|
||||
.option(
|
||||
'-s, --storage <string>',
|
||||
'Database to use for storage (arweave, ipfs)',
|
||||
'arweave',
|
||||
)
|
||||
.option(
|
||||
'--ipfs-infura-project-id',
|
||||
'Infura IPFS project id (required if using IPFS)',
|
||||
)
|
||||
.option(
|
||||
'--ipfs-infura-secret',
|
||||
'Infura IPFS scret key (required if using IPFS)',
|
||||
)
|
||||
.option('--no-retain-authority', 'Do not retain authority to update metadata')
|
||||
.action(async (files: string[], options, cmd) => {
|
||||
const { number, keypair, env, cacheName } = cmd.opts();
|
||||
const {
|
||||
number,
|
||||
keypair,
|
||||
env,
|
||||
cacheName,
|
||||
storage,
|
||||
ipfsInfuraProjectId,
|
||||
ipfsInfuraSecret,
|
||||
retainAuthority,
|
||||
} = cmd.opts();
|
||||
|
||||
if (storage === 'ipfs' && (!ipfsInfuraProjectId || !ipfsInfuraSecret)) {
|
||||
throw new Error(
|
||||
'IPFS selected as storage option but Infura project id or secret key were not provided.',
|
||||
);
|
||||
}
|
||||
if (!(storage === 'arweave' || storage === 'ipfs')) {
|
||||
throw new Error("Storage option must either be 'arweave' or 'ipfs'.");
|
||||
}
|
||||
const ipfsCredentials = {
|
||||
projectId: ipfsInfuraProjectId,
|
||||
secretKey: ipfsInfuraSecret,
|
||||
};
|
||||
|
||||
const pngFileCount = files.filter(it => {
|
||||
return it.endsWith(EXTENSION_PNG);
|
||||
|
@ -81,7 +117,11 @@ programCommand('upload')
|
|||
env,
|
||||
keypair,
|
||||
elemCount,
|
||||
storage,
|
||||
retainAuthority,
|
||||
ipfsCredentials,
|
||||
);
|
||||
|
||||
if (successful) {
|
||||
warn = false;
|
||||
break;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { EXTENSION_PNG, ARWEAVE_PAYMENT_WALLET } from '../helpers/constants';
|
||||
import { EXTENSION_PNG } from '../helpers/constants';
|
||||
import path from 'path';
|
||||
import {
|
||||
createConfig,
|
||||
|
@ -8,12 +8,10 @@ import {
|
|||
import { PublicKey } from '@solana/web3.js';
|
||||
import fs from 'fs';
|
||||
import BN from 'bn.js';
|
||||
import * as anchor from '@project-serum/anchor';
|
||||
import { sendTransactionWithRetryWithKeypair } from '../helpers/transactions';
|
||||
import FormData from 'form-data';
|
||||
import { loadCache, saveCache } from '../helpers/cache';
|
||||
import fetch from 'node-fetch';
|
||||
import log from 'loglevel';
|
||||
import { arweaveUpload } from '../helpers/upload/arweave';
|
||||
import { ipfsCreds, ipfsUpload } from '../helpers/upload/ipfs';
|
||||
|
||||
export async function upload(
|
||||
files: string[],
|
||||
|
@ -21,6 +19,9 @@ export async function upload(
|
|||
env: string,
|
||||
keypair: string,
|
||||
totalNFTs: number,
|
||||
storage: string,
|
||||
retainAuthority: boolean,
|
||||
ipfsCredentials: ipfsCreds,
|
||||
): Promise<boolean> {
|
||||
let uploadSuccessful = true;
|
||||
|
||||
|
@ -74,8 +75,6 @@ export async function upload(
|
|||
log.info(`Processing file: ${i}`);
|
||||
}
|
||||
|
||||
const storageCost = 10;
|
||||
|
||||
let link = cacheContent?.items?.[index]?.link;
|
||||
if (!link || !cacheContent.program.uuid) {
|
||||
const manifestPath = image.replace(EXTENSION_PNG, '.json');
|
||||
|
@ -98,7 +97,7 @@ export async function upload(
|
|||
sellerFeeBasisPoints: manifest.seller_fee_basis_points,
|
||||
isMutable: true,
|
||||
maxSupply: new BN(0),
|
||||
retainAuthority: true,
|
||||
retainAuthority: retainAuthority,
|
||||
creators: manifest.properties.creators.map(creator => {
|
||||
return {
|
||||
address: new PublicKey(creator.address),
|
||||
|
@ -123,50 +122,30 @@ export async function upload(
|
|||
}
|
||||
|
||||
if (!link) {
|
||||
const instructions = [
|
||||
anchor.web3.SystemProgram.transfer({
|
||||
fromPubkey: walletKeyPair.publicKey,
|
||||
toPubkey: ARWEAVE_PAYMENT_WALLET,
|
||||
lamports: storageCost,
|
||||
}),
|
||||
];
|
||||
|
||||
const tx = await sendTransactionWithRetryWithKeypair(
|
||||
anchorProgram.provider.connection,
|
||||
walletKeyPair,
|
||||
instructions,
|
||||
[],
|
||||
'single',
|
||||
);
|
||||
log.debug('transaction for arweave payment:', tx);
|
||||
|
||||
// data.append('tags', JSON.stringify(tags));
|
||||
// payment transaction
|
||||
const data = new FormData();
|
||||
data.append('transaction', tx['txid']);
|
||||
data.append('env', env);
|
||||
data.append('file[]', fs.createReadStream(image), {
|
||||
filename: `image.png`,
|
||||
contentType: 'image/png',
|
||||
});
|
||||
data.append('file[]', manifestBuffer, 'metadata.json');
|
||||
try {
|
||||
const result = await uploadToArweave(data, manifest, index);
|
||||
|
||||
const metadataFile = result.messages?.find(
|
||||
m => m.filename === 'manifest.json',
|
||||
);
|
||||
if (metadataFile?.transactionId) {
|
||||
link = `https://arweave.net/${metadataFile.transactionId}`;
|
||||
log.debug(`File uploaded: ${link}`);
|
||||
if (storage === 'arweave') {
|
||||
link = await arweaveUpload(
|
||||
walletKeyPair,
|
||||
anchorProgram,
|
||||
env,
|
||||
image,
|
||||
manifestBuffer,
|
||||
manifest,
|
||||
index,
|
||||
);
|
||||
} else if (storage === 'ipfs') {
|
||||
link = await ipfsUpload(ipfsCredentials, image, manifestBuffer);
|
||||
}
|
||||
|
||||
cacheContent.items[index] = {
|
||||
link,
|
||||
name: manifest.name,
|
||||
onChain: false,
|
||||
};
|
||||
saveCache(cacheName, env, cacheContent);
|
||||
if (link) {
|
||||
console.log('setting cache for ', index);
|
||||
cacheContent.items[index] = {
|
||||
link,
|
||||
name: manifest.name,
|
||||
onChain: false,
|
||||
};
|
||||
saveCache(cacheName, env, cacheContent);
|
||||
}
|
||||
} catch (er) {
|
||||
uploadSuccessful = false;
|
||||
log.error(`Error uploading file ${index}`, er);
|
||||
|
@ -241,20 +220,6 @@ export async function upload(
|
|||
return uploadSuccessful;
|
||||
}
|
||||
|
||||
async function uploadToArweave(data: FormData, manifest, index) {
|
||||
log.debug(`trying to upload ${index}.png: ${manifest.name}`);
|
||||
return await (
|
||||
await fetch(
|
||||
'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFile4',
|
||||
{
|
||||
method: 'POST',
|
||||
// @ts-ignore
|
||||
body: data,
|
||||
},
|
||||
)
|
||||
).json();
|
||||
}
|
||||
|
||||
function chunks(array, size) {
|
||||
return Array.apply(0, new Array(Math.ceil(array.length / size))).map(
|
||||
(_, index) => array.slice(index * size, (index + 1) * size),
|
||||
|
|
|
@ -817,6 +817,7 @@ async function adjustTicket({
|
|||
payer,
|
||||
instructions,
|
||||
signers,
|
||||
'single',
|
||||
);
|
||||
|
||||
console.log(
|
||||
|
@ -1228,6 +1229,9 @@ async function punchTicket({
|
|||
tokenMint: fairLaunchObj.tokenMint,
|
||||
tokenProgram: TOKEN_PROGRAM_ID,
|
||||
},
|
||||
options: {
|
||||
commitment: 'single',
|
||||
},
|
||||
//__private: { logAccounts: true },
|
||||
instructions: [
|
||||
createAssociatedTokenAccountInstruction(
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
import * as anchor from "@project-serum/anchor";
|
||||
import FormData from "form-data";
|
||||
import fs from "fs";
|
||||
import log from "loglevel";
|
||||
import fetch from 'node-fetch';
|
||||
import { ARWEAVE_PAYMENT_WALLET } from "../constants";
|
||||
import { sendTransactionWithRetryWithKeypair } from "../transactions";
|
||||
|
||||
async function upload(data: FormData, manifest, index) {
|
||||
log.debug(`trying to upload ${index}.png: ${manifest.name}`)
|
||||
return await (
|
||||
await fetch(
|
||||
'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFile4',
|
||||
{
|
||||
method: 'POST',
|
||||
// @ts-ignore
|
||||
body: data,
|
||||
},
|
||||
)
|
||||
).json();
|
||||
}
|
||||
|
||||
export async function arweaveUpload(walletKeyPair, anchorProgram, env, image, manifestBuffer, manifest, index) {
|
||||
const storageCost = 10;
|
||||
|
||||
const instructions = [
|
||||
anchor.web3.SystemProgram.transfer({
|
||||
fromPubkey: walletKeyPair.publicKey,
|
||||
toPubkey: ARWEAVE_PAYMENT_WALLET,
|
||||
lamports: storageCost,
|
||||
}),
|
||||
];
|
||||
|
||||
const tx = await sendTransactionWithRetryWithKeypair(
|
||||
anchorProgram.provider.connection,
|
||||
walletKeyPair,
|
||||
instructions,
|
||||
[],
|
||||
'single',
|
||||
);
|
||||
log.debug('transaction for arweave payment:', tx);
|
||||
|
||||
const data = new FormData();
|
||||
data.append('transaction', tx['txid']);
|
||||
data.append('env', env);
|
||||
data.append('file[]', fs.createReadStream(image), {filename: `image.png`, contentType: 'image/png'});
|
||||
data.append('file[]', manifestBuffer, 'metadata.json');
|
||||
|
||||
const result = await upload(data, manifest, index);
|
||||
|
||||
const metadataFile = result.messages?.find(
|
||||
m => m.filename === 'manifest.json',
|
||||
);
|
||||
if (metadataFile?.transactionId) {
|
||||
const link = `https://arweave.net/${metadataFile.transactionId}`;
|
||||
log.debug(`File uploaded: ${link}`);
|
||||
return link;
|
||||
} else {
|
||||
// @todo improve
|
||||
throw new Error(`No transaction ID for upload: ${index}`)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
import log from "loglevel";
|
||||
import fetch from 'node-fetch';
|
||||
import { create, globSource } from 'ipfs-http-client';
|
||||
|
||||
export interface ipfsCreds {
|
||||
projectId: string,
|
||||
secretKey: string
|
||||
}
|
||||
|
||||
function sleep(ms: number): Promise<void> {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
export async function ipfsUpload(ipfsCredentials: ipfsCreds, image: string, manifestBuffer: Buffer) {
|
||||
const tokenIfps = `${ipfsCredentials.projectId}:${ipfsCredentials.secretKey}`;
|
||||
// @ts-ignore
|
||||
const ipfs = create("https://ipfs.infura.io:5001");
|
||||
|
||||
const uploadToIpfs = async (source) => {
|
||||
const { cid } = await ipfs.add(source).catch();
|
||||
return cid;
|
||||
};
|
||||
|
||||
const mediaHash = await uploadToIpfs(globSource(image, { recursive: true }));
|
||||
log.debug('mediaHash:', mediaHash);
|
||||
const mediaUrl = `https://ipfs.io/ipfs/${mediaHash}`;
|
||||
log.debug('mediaUrl:', mediaUrl);
|
||||
const authIFPS = Buffer.from(tokenIfps).toString("base64");
|
||||
await fetch(`https://ipfs.infura.io:5001/api/v0/pin/add?arg=${mediaHash}`, {
|
||||
headers: {
|
||||
Authorization: `Basic ${authIFPS}`,
|
||||
},
|
||||
method: "POST",
|
||||
});
|
||||
log.info('uploaded image for file:', image)
|
||||
|
||||
await sleep(500);
|
||||
|
||||
const manifestJson = JSON.parse(manifestBuffer.toString("utf8"));
|
||||
manifestJson.image = mediaUrl;
|
||||
manifestJson.properties.files = manifestJson.properties.files.map((f) => {
|
||||
return { ...f, uri: mediaUrl };
|
||||
});
|
||||
|
||||
const manifestHash = await uploadToIpfs(Buffer.from(JSON.stringify(manifestJson)));
|
||||
await fetch(`https://ipfs.infura.io:5001/api/v0/pin/add?arg=${manifestHash}`, {
|
||||
headers: {
|
||||
Authorization: `Basic ${authIFPS}`,
|
||||
},
|
||||
method: "POST",
|
||||
});
|
||||
|
||||
await sleep(500);
|
||||
const link = `https://ipfs.io/ipfs/${manifestHash}`;
|
||||
log.info('uploaded manifest: ', link);
|
||||
|
||||
return link
|
||||
}
|
|
@ -57,20 +57,6 @@ export function parsePrice(price: string, mantissa: number = LAMPORTS_PER_SOL) {
|
|||
return Math.ceil(parseFloat(price) * mantissa);
|
||||
}
|
||||
|
||||
export async function upload(data: FormData, manifest, index) {
|
||||
console.log(`trying to upload ${index}.png: ${manifest.name}`);
|
||||
return await (
|
||||
await fetch(
|
||||
'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFile4',
|
||||
{
|
||||
method: 'POST',
|
||||
// @ts-ignore
|
||||
body: data,
|
||||
},
|
||||
)
|
||||
).json();
|
||||
}
|
||||
|
||||
export const getMultipleAccounts = async (
|
||||
connection: any,
|
||||
keys: string[],
|
||||
|
|
|
@ -16,6 +16,7 @@ import {
|
|||
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
||||
import { notify } from '../utils/notifications';
|
||||
import { ExplorerLink } from '../components/ExplorerLink';
|
||||
import { useQuerySearch } from '../hooks';
|
||||
import {
|
||||
TokenInfo,
|
||||
TokenListProvider,
|
||||
|
@ -87,10 +88,16 @@ const ConnectionContext = React.createContext<ConnectionConfig>({
|
|||
});
|
||||
|
||||
export function ConnectionProvider({ children = undefined as any }) {
|
||||
const [endpoint, setEndpoint] = useLocalStorageState(
|
||||
const searchParams = useQuerySearch();
|
||||
const network = searchParams.get('network');
|
||||
const queryEndpoint =
|
||||
network && ENDPOINTS.find(({ name }) => name.startsWith(network))?.endpoint;
|
||||
|
||||
const [savedEndpoint, setEndpoint] = useLocalStorageState(
|
||||
'connectionEndpoint',
|
||||
ENDPOINTS[0].endpoint,
|
||||
);
|
||||
const endpoint = queryEndpoint || savedEndpoint;
|
||||
|
||||
const connection = useMemo(
|
||||
() => new Connection(endpoint, 'recent'),
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
export async function createPipelineExecutor<T>(
|
||||
data: IterableIterator<T>,
|
||||
executor: (d: T) => void,
|
||||
{
|
||||
delay = 0,
|
||||
jobsCount = 1,
|
||||
sequence = 1,
|
||||
}: {
|
||||
delay?: number;
|
||||
jobsCount?: number;
|
||||
sequence?: number;
|
||||
} = {},
|
||||
) {
|
||||
function execute<T>(iter: IteratorResult<T, any>) {
|
||||
// TODO: wait for async executor
|
||||
executor(iter.value);
|
||||
}
|
||||
|
||||
async function next() {
|
||||
if (sequence <= 1) {
|
||||
const iter = data.next();
|
||||
if (iter.done) {
|
||||
return;
|
||||
}
|
||||
await execute(iter);
|
||||
} else {
|
||||
const promises: any[] = [];
|
||||
let isDone = false;
|
||||
for (let i = 0; i < sequence; i++) {
|
||||
const iter = data.next();
|
||||
if (!iter.done) {
|
||||
promises.push(execute(iter));
|
||||
} else {
|
||||
isDone = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
await Promise.all(promises);
|
||||
if (isDone) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (delay > 0) {
|
||||
await new Promise(resolve => setTimeout(resolve, delay));
|
||||
} else {
|
||||
await Promise.resolve();
|
||||
}
|
||||
await next();
|
||||
}
|
||||
const result = new Array<Promise<void>>(jobsCount);
|
||||
for (let i = 0; i < jobsCount; i++) {
|
||||
result[i] = next();
|
||||
}
|
||||
await Promise.all(result);
|
||||
}
|
|
@ -22,6 +22,4 @@ export const getEmptyMetaState = (): MetaState => ({
|
|||
prizeTrackingTickets: {},
|
||||
safetyDepositConfigsByAuctionManagerAndIndex: {},
|
||||
bidRedemptionV2sByAuctionManagerAndWinningIndex: {},
|
||||
stores: {},
|
||||
creators: {},
|
||||
});
|
||||
|
|
|
@ -18,8 +18,8 @@ import {
|
|||
METADATA_PREFIX,
|
||||
decodeMetadata,
|
||||
getAuctionExtended,
|
||||
decodeAuction,
|
||||
} from '../../actions';
|
||||
import { WhitelistedCreator } from '../../models/metaplex';
|
||||
import { AccountInfo, Connection, PublicKey } from '@solana/web3.js';
|
||||
import {
|
||||
AccountAndPubkey,
|
||||
|
@ -35,6 +35,8 @@ import { processVaultData } from './processVaultData';
|
|||
import { ParsedAccount } from '../accounts/types';
|
||||
import { getEmptyMetaState } from './getEmptyMetaState';
|
||||
import { getMultipleAccounts } from '../accounts/getMultipleAccounts';
|
||||
import { getProgramAccounts } from './web3';
|
||||
import { createPipelineExecutor } from './createPipelineExecutor';
|
||||
|
||||
export const USE_SPEED_RUN = false;
|
||||
const WHITELISTED_METADATA = ['98vYFjBYS9TguUMWQRPjy2SZuxKuUMcqR4vnQiLjZbte'];
|
||||
|
@ -53,60 +55,6 @@ const WHITELISTED_AUCTION_MANAGER = [
|
|||
];
|
||||
const WHITELISTED_VAULT = ['3wHCBd3fYRPWjd5GqzrXanLJUKRyU3nECKbTPKfVwcFX'];
|
||||
|
||||
async function getProgramAccounts(
|
||||
connection: Connection,
|
||||
programId: StringPublicKey,
|
||||
configOrCommitment?: any,
|
||||
): Promise<Array<AccountAndPubkey>> {
|
||||
const extra: any = {};
|
||||
let commitment;
|
||||
//let encoding;
|
||||
|
||||
if (configOrCommitment) {
|
||||
if (typeof configOrCommitment === 'string') {
|
||||
commitment = configOrCommitment;
|
||||
} else {
|
||||
commitment = configOrCommitment.commitment;
|
||||
//encoding = configOrCommitment.encoding;
|
||||
|
||||
if (configOrCommitment.dataSlice) {
|
||||
extra.dataSlice = configOrCommitment.dataSlice;
|
||||
}
|
||||
|
||||
if (configOrCommitment.filters) {
|
||||
extra.filters = configOrCommitment.filters;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const args = connection._buildArgs([programId], commitment, 'base64', extra);
|
||||
const unsafeRes = await (connection as any)._rpcRequest(
|
||||
'getProgramAccounts',
|
||||
args,
|
||||
);
|
||||
|
||||
const data = (
|
||||
unsafeRes.result as Array<{
|
||||
account: AccountInfo<[string, string]>;
|
||||
pubkey: string;
|
||||
}>
|
||||
).map(item => {
|
||||
return {
|
||||
account: {
|
||||
// TODO: possible delay parsing could be added here
|
||||
data: Buffer.from(item.account.data[0], 'base64'),
|
||||
executable: item.account.executable,
|
||||
lamports: item.account.lamports,
|
||||
// TODO: maybe we can do it in lazy way? or just use string
|
||||
owner: item.account.owner,
|
||||
} as AccountInfo<Buffer>,
|
||||
pubkey: item.pubkey,
|
||||
};
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
export const limitedLoadAccounts = async (connection: Connection) => {
|
||||
const tempCache: MetaState = getEmptyMetaState();
|
||||
const updateTemp = makeSetter(tempCache);
|
||||
|
@ -322,40 +270,39 @@ export const limitedLoadAccounts = async (connection: Connection) => {
|
|||
return tempCache;
|
||||
};
|
||||
|
||||
export const loadAccounts = async (connection: Connection, all: boolean) => {
|
||||
export const loadAccounts = async (connection: Connection, all = false) => {
|
||||
const tempCache: MetaState = getEmptyMetaState();
|
||||
const updateTemp = makeSetter(tempCache);
|
||||
|
||||
const forEach =
|
||||
(fn: ProcessAccountsFunc) => async (accounts: AccountAndPubkey[]) => {
|
||||
for (const account of accounts) {
|
||||
await fn(account, updateTemp, all);
|
||||
}
|
||||
};
|
||||
const forEachAccount = processingAccounts(updateTemp, all);
|
||||
|
||||
const pullMetadata = async (creators: AccountAndPubkey[]) => {
|
||||
await forEach(processMetaplexAccounts)(creators);
|
||||
await forEachAccount(processMetaplexAccounts)(creators);
|
||||
};
|
||||
|
||||
const basePromises = [
|
||||
getProgramAccounts(connection, VAULT_ID).then(forEach(processVaultData)),
|
||||
getProgramAccounts(connection, AUCTION_ID).then(forEach(processAuctions)),
|
||||
getProgramAccounts(connection, METAPLEX_ID).then(
|
||||
forEach(processMetaplexAccounts),
|
||||
getProgramAccounts(connection, VAULT_ID).then(
|
||||
forEachAccount(processVaultData),
|
||||
),
|
||||
getProgramAccounts(connection, AUCTION_ID).then(
|
||||
forEachAccount(processAuctions),
|
||||
),
|
||||
getProgramAccounts(connection, METAPLEX_ID).then(
|
||||
forEachAccount(processMetaplexAccounts),
|
||||
), // ???
|
||||
getProgramAccounts(connection, METAPLEX_ID, {
|
||||
filters: [
|
||||
{
|
||||
dataSize: MAX_WHITELISTED_CREATOR_SIZE,
|
||||
},
|
||||
],
|
||||
}).then(pullMetadata),
|
||||
}).then(pullMetadata), // ???
|
||||
];
|
||||
|
||||
await Promise.all(basePromises);
|
||||
const additionalPromises: Promise<void>[] = getAdditionalPromises(
|
||||
connection,
|
||||
tempCache,
|
||||
forEach,
|
||||
Object.values(tempCache.whitelistedCreatorsByCreator),
|
||||
forEachAccount,
|
||||
);
|
||||
|
||||
await Promise.all(additionalPromises);
|
||||
|
@ -375,6 +322,7 @@ const pullEditions = async (
|
|||
all: boolean,
|
||||
) => {
|
||||
console.log('Pulling editions for optimized metadata');
|
||||
|
||||
let setOf100MetadataEditionKeys: string[] = [];
|
||||
const editionPromises: Promise<{
|
||||
keys: string[];
|
||||
|
@ -436,43 +384,41 @@ const pullEditions = async (
|
|||
Object.keys(tempCache.masterEditions).length,
|
||||
);
|
||||
};
|
||||
|
||||
const getAdditionalPromises = (
|
||||
connection: Connection,
|
||||
tempCache: MetaState,
|
||||
forEach: any,
|
||||
whitelistedCreators: ParsedAccount<WhitelistedCreator>[],
|
||||
forEach: ReturnType<typeof processingAccounts>,
|
||||
): Promise<void>[] => {
|
||||
console.log('pulling optimized nfts');
|
||||
const whitelistedCreators = Object.values(
|
||||
tempCache.whitelistedCreatorsByCreator,
|
||||
);
|
||||
|
||||
const additionalPromises: Promise<void>[] = [];
|
||||
for (let i = 0; i < MAX_CREATOR_LIMIT; i++) {
|
||||
for (let j = 0; j < whitelistedCreators.length; j++) {
|
||||
additionalPromises.push(
|
||||
getProgramAccounts(connection, METADATA_PROGRAM_ID, {
|
||||
filters: [
|
||||
{
|
||||
memcmp: {
|
||||
offset:
|
||||
1 + // key
|
||||
32 + // update auth
|
||||
32 + // mint
|
||||
4 + // name string length
|
||||
MAX_NAME_LENGTH + // name
|
||||
4 + // uri string length
|
||||
MAX_URI_LENGTH + // uri
|
||||
4 + // symbol string length
|
||||
MAX_SYMBOL_LENGTH + // symbol
|
||||
2 + // seller fee basis points
|
||||
1 + // whether or not there is a creators vec
|
||||
4 + // creators vec length
|
||||
i * MAX_CREATOR_LEN,
|
||||
bytes: whitelistedCreators[j].info.address,
|
||||
},
|
||||
for (const creator of whitelistedCreators) {
|
||||
for (let i = 0; i < MAX_CREATOR_LIMIT; i++) {
|
||||
const promise = getProgramAccounts(connection, METADATA_PROGRAM_ID, {
|
||||
filters: [
|
||||
{
|
||||
memcmp: {
|
||||
offset:
|
||||
1 + // key
|
||||
32 + // update auth
|
||||
32 + // mint
|
||||
4 + // name string length
|
||||
MAX_NAME_LENGTH + // name
|
||||
4 + // uri string length
|
||||
MAX_URI_LENGTH + // uri
|
||||
4 + // symbol string length
|
||||
MAX_SYMBOL_LENGTH + // symbol
|
||||
2 + // seller fee basis points
|
||||
1 + // whether or not there is a creators vec
|
||||
4 + // creators vec length
|
||||
i * MAX_CREATOR_LEN,
|
||||
bytes: creator.info.address,
|
||||
},
|
||||
],
|
||||
}).then(forEach(processMetaData)),
|
||||
);
|
||||
},
|
||||
],
|
||||
}).then(forEach(processMetaData));
|
||||
additionalPromises.push(promise);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -490,7 +436,21 @@ export const makeSetter =
|
|||
return state;
|
||||
};
|
||||
|
||||
const postProcessMetadata = async (tempCache: MetaState, all: boolean) => {
|
||||
export const processingAccounts =
|
||||
(updater: ReturnType<typeof makeSetter>, all = false) =>
|
||||
(fn: ProcessAccountsFunc) =>
|
||||
async (accounts: AccountAndPubkey[]) => {
|
||||
await createPipelineExecutor(
|
||||
accounts.values(),
|
||||
account => fn(account, updater, all),
|
||||
{
|
||||
sequence: 20,
|
||||
delay: 1,
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
const postProcessMetadata = async (tempCache: MetaState, all = false) => {
|
||||
const values = Object.values(tempCache.metadataByMint);
|
||||
|
||||
for (const metadata of values) {
|
||||
|
|
|
@ -11,7 +11,7 @@ import {
|
|||
BIDDER_POT_LEN,
|
||||
MAX_AUCTION_DATA_EXTENDED_SIZE,
|
||||
} from '../../actions';
|
||||
import { AUCTION_ID } from '../../utils';
|
||||
import { AUCTION_ID, pubkeyToString } from '../../utils';
|
||||
import { ParsedAccount } from '../accounts';
|
||||
import { cache } from '../accounts';
|
||||
import { CheckAccountFunc, ProcessAccountsFunc } from './types';
|
||||
|
@ -92,7 +92,7 @@ export const processAuctions: ProcessAccountsFunc = (
|
|||
};
|
||||
|
||||
const isAuctionAccount: CheckAccountFunc = account =>
|
||||
(account.owner as unknown as any) === AUCTION_ID;
|
||||
pubkeyToString(account.owner) === AUCTION_ID;
|
||||
|
||||
const isExtendedAuctionAccount: CheckAccountFunc = account =>
|
||||
account.data.length === MAX_AUCTION_DATA_EXTENDED_SIZE;
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
MetadataKey,
|
||||
} from '../../actions';
|
||||
import { ParsedAccount } from '../accounts/types';
|
||||
import { METADATA_PROGRAM_ID } from '../../utils';
|
||||
import { METADATA_PROGRAM_ID, pubkeyToString } from '../../utils';
|
||||
|
||||
export const processMetaData: ProcessAccountsFunc = (
|
||||
{ account, pubkey },
|
||||
|
@ -83,9 +83,8 @@ export const processMetaData: ProcessAccountsFunc = (
|
|||
}
|
||||
};
|
||||
|
||||
const isMetadataAccount = (account: AccountInfo<Buffer>) => {
|
||||
return (account.owner as unknown as any) === METADATA_PROGRAM_ID;
|
||||
};
|
||||
const isMetadataAccount = (account: AccountInfo<Buffer>) =>
|
||||
account && pubkeyToString(account.owner) === METADATA_PROGRAM_ID;
|
||||
|
||||
const isMetadataV1Account = (account: AccountInfo<Buffer>) =>
|
||||
account.data[0] === MetadataKey.MetadataV1;
|
||||
|
|
|
@ -20,7 +20,7 @@ import {
|
|||
SafetyDepositConfig,
|
||||
} from '../../models';
|
||||
import { ProcessAccountsFunc } from './types';
|
||||
import { METAPLEX_ID, programIds } from '../../utils';
|
||||
import { METAPLEX_ID, programIds, pubkeyToString } from '../../utils';
|
||||
import { ParsedAccount } from '../accounts';
|
||||
import { cache } from '../accounts';
|
||||
|
||||
|
@ -112,7 +112,6 @@ export const processMetaplexAccounts: ProcessAccountsFunc = async (
|
|||
if (STORE_ID && pubkey === STORE_ID.toBase58()) {
|
||||
setter('store', pubkey, parsedAccount);
|
||||
}
|
||||
setter('stores', pubkey, parsedAccount);
|
||||
}
|
||||
|
||||
if (isSafetyDepositConfigV1Account(account)) {
|
||||
|
@ -152,14 +151,6 @@ export const processMetaplexAccounts: ProcessAccountsFunc = async (
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (useAll) {
|
||||
setter(
|
||||
'creators',
|
||||
parsedAccount.info.address + '-' + pubkey,
|
||||
parsedAccount,
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// ignore errors
|
||||
|
@ -168,7 +159,7 @@ export const processMetaplexAccounts: ProcessAccountsFunc = async (
|
|||
};
|
||||
|
||||
const isMetaplexAccount = (account: AccountInfo<Buffer>) =>
|
||||
(account.owner as unknown as any) === METAPLEX_ID;
|
||||
pubkeyToString(account.owner) === METAPLEX_ID;
|
||||
|
||||
const isAuctionManagerV1Account = (account: AccountInfo<Buffer>) =>
|
||||
account.data[0] === MetaplexKey.AuctionManagerV1;
|
||||
|
|
|
@ -6,7 +6,7 @@ import {
|
|||
Vault,
|
||||
VaultKey,
|
||||
} from '../../actions';
|
||||
import { VAULT_ID } from '../../utils';
|
||||
import { VAULT_ID, pubkeyToString } from '../../utils';
|
||||
import { ParsedAccount } from '../accounts/types';
|
||||
import { ProcessAccountsFunc } from './types';
|
||||
|
||||
|
@ -47,7 +47,7 @@ export const processVaultData: ProcessAccountsFunc = (
|
|||
};
|
||||
|
||||
const isVaultAccount = (account: AccountInfo<Buffer>) =>
|
||||
(account.owner as unknown as any) === VAULT_ID;
|
||||
pubkeyToString(account.owner) === VAULT_ID;
|
||||
|
||||
const isSafetyDepositBoxV1Account = (account: AccountInfo<Buffer>) =>
|
||||
account.data[0] === VaultKey.SafetyDepositBoxV1;
|
||||
|
|
|
@ -71,8 +71,6 @@ export interface MetaState {
|
|||
ParsedAccount<WhitelistedCreator>
|
||||
>;
|
||||
payoutTickets: Record<string, ParsedAccount<PayoutTicket>>;
|
||||
stores: Record<string, ParsedAccount<Store>>;
|
||||
creators: Record<string, ParsedAccount<WhitelistedCreator>>;
|
||||
}
|
||||
|
||||
export interface MetaContextState extends MetaState {
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
import { AccountInfo, Connection } from '@solana/web3.js';
|
||||
import { StringPublicKey } from '../../utils/ids';
|
||||
import { AccountAndPubkey } from './types';
|
||||
|
||||
export async function getProgramAccounts(
|
||||
connection: Connection,
|
||||
programId: StringPublicKey,
|
||||
configOrCommitment?: any,
|
||||
): Promise<Array<AccountAndPubkey>> {
|
||||
const extra: any = {};
|
||||
let commitment;
|
||||
//let encoding;
|
||||
|
||||
if (configOrCommitment) {
|
||||
if (typeof configOrCommitment === 'string') {
|
||||
commitment = configOrCommitment;
|
||||
} else {
|
||||
commitment = configOrCommitment.commitment;
|
||||
//encoding = configOrCommitment.encoding;
|
||||
|
||||
if (configOrCommitment.dataSlice) {
|
||||
extra.dataSlice = configOrCommitment.dataSlice;
|
||||
}
|
||||
|
||||
if (configOrCommitment.filters) {
|
||||
extra.filters = configOrCommitment.filters;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const args = connection._buildArgs([programId], commitment, 'base64', extra);
|
||||
const unsafeRes = await (connection as any)._rpcRequest(
|
||||
'getProgramAccounts',
|
||||
args,
|
||||
);
|
||||
|
||||
return unsafeResAccounts(unsafeRes.result);
|
||||
}
|
||||
|
||||
export function unsafeAccount(account: AccountInfo<[string, string]>) {
|
||||
return {
|
||||
// TODO: possible delay parsing could be added here
|
||||
data: Buffer.from(account.data[0], 'base64'),
|
||||
executable: account.executable,
|
||||
lamports: account.lamports,
|
||||
// TODO: maybe we can do it in lazy way? or just use string
|
||||
owner: account.owner,
|
||||
} as AccountInfo<Buffer>;
|
||||
}
|
||||
|
||||
export function unsafeResAccounts(
|
||||
data: Array<{
|
||||
account: AccountInfo<[string, string]>;
|
||||
pubkey: string;
|
||||
}>,
|
||||
) {
|
||||
return data.map(item => ({
|
||||
account: unsafeAccount(item.account),
|
||||
pubkey: item.pubkey,
|
||||
}));
|
||||
}
|
|
@ -14,7 +14,12 @@ import {
|
|||
SCHEMA,
|
||||
getSafetyDepositConfig,
|
||||
} from '.';
|
||||
import { getEdition, getEditionMarkPda, getMetadata, getAuctionExtended } from '../../actions';
|
||||
import {
|
||||
getEdition,
|
||||
getEditionMarkPda,
|
||||
getMetadata,
|
||||
getAuctionExtended,
|
||||
} from '../../actions';
|
||||
import { programIds, StringPublicKey, toPublicKey } from '../../utils';
|
||||
|
||||
export async function redeemPrintingV2Bid(
|
||||
|
|
|
@ -434,15 +434,25 @@ const Home = (props: HomeProps) => {
|
|||
|
||||
console.log('deposit');
|
||||
setIsMinting(true);
|
||||
await purchaseTicket(contributed, anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: `Congratulations! Bid ${
|
||||
fairLaunch?.ticket.data ? 'updated' : 'inserted'
|
||||
}!`,
|
||||
severity: 'success',
|
||||
});
|
||||
try {
|
||||
await purchaseTicket(contributed, anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: `Congratulations! Bid ${
|
||||
fairLaunch?.ticket.data ? 'updated' : 'inserted'
|
||||
}!`,
|
||||
severity: 'success',
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: 'Something went wrong.',
|
||||
severity: 'error',
|
||||
});
|
||||
}
|
||||
};
|
||||
const onRugRefund = async () => {
|
||||
if (!anchorWallet) {
|
||||
|
@ -450,15 +460,25 @@ const Home = (props: HomeProps) => {
|
|||
}
|
||||
|
||||
console.log('refund');
|
||||
setIsMinting(true);
|
||||
await receiveRefund(anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message:
|
||||
'Congratulations! You have received a refund. This is an irreversible action.',
|
||||
severity: 'success',
|
||||
});
|
||||
try {
|
||||
setIsMinting(true);
|
||||
await receiveRefund(anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message:
|
||||
'Congratulations! You have received a refund. This is an irreversible action.',
|
||||
severity: 'success',
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: 'Something went wrong.',
|
||||
severity: 'error',
|
||||
});
|
||||
}
|
||||
};
|
||||
const onRefundTicket = async () => {
|
||||
if (!anchorWallet) {
|
||||
|
@ -466,15 +486,25 @@ const Home = (props: HomeProps) => {
|
|||
}
|
||||
|
||||
console.log('refund');
|
||||
setIsMinting(true);
|
||||
await purchaseTicket(0, anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message:
|
||||
'Congratulations! Funds withdrawn. This is an irreversible action.',
|
||||
severity: 'success',
|
||||
});
|
||||
try {
|
||||
setIsMinting(true);
|
||||
await purchaseTicket(0, anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message:
|
||||
'Congratulations! Funds withdrawn. This is an irreversible action.',
|
||||
severity: 'success',
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: 'Something went wrong.',
|
||||
severity: 'error',
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const onPunchTicket = async () => {
|
||||
|
@ -484,13 +514,23 @@ const Home = (props: HomeProps) => {
|
|||
|
||||
console.log('punch');
|
||||
setIsMinting(true);
|
||||
await punchTicket(anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: 'Congratulations! Ticket punched!',
|
||||
severity: 'success',
|
||||
});
|
||||
try {
|
||||
await punchTicket(anchorWallet, fairLaunch);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: 'Congratulations! Ticket punched!',
|
||||
severity: 'success',
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
setIsMinting(false);
|
||||
setAlertState({
|
||||
open: true,
|
||||
message: 'Something went wrong.',
|
||||
severity: 'error',
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const phase = getPhase(fairLaunch, candyMachine);
|
||||
|
@ -948,46 +988,45 @@ const Home = (props: HomeProps) => {
|
|||
{fairLaunch.state.data.antiRugSetting.reserveBp / 100}%
|
||||
of the cost of your token.
|
||||
</p>
|
||||
<MintButton
|
||||
onClick={onRugRefund}
|
||||
variant="contained"
|
||||
disabled={
|
||||
!!!fairLaunch.ticket.data ||
|
||||
!fairLaunch.ticket.data.state.punched ||
|
||||
Date.now() / 1000 <
|
||||
fairLaunch.state.data.antiRugSetting.selfDestructDate.toNumber()
|
||||
}
|
||||
>
|
||||
{isMinting ? (
|
||||
<CircularProgress />
|
||||
) : Date.now() / 1000 <
|
||||
fairLaunch.state.data.antiRugSetting.selfDestructDate.toNumber() ? (
|
||||
<span>
|
||||
Refund in...
|
||||
<Countdown
|
||||
date={toDate(
|
||||
fairLaunch.state.data.antiRugSetting
|
||||
.selfDestructDate,
|
||||
)}
|
||||
/>
|
||||
</span>
|
||||
) : (
|
||||
'Refund'
|
||||
{fairLaunch?.ticket?.data &&
|
||||
!fairLaunch?.ticket?.data.state.withdrawn && (
|
||||
<MintButton
|
||||
onClick={onRugRefund}
|
||||
variant="contained"
|
||||
disabled={
|
||||
!!!fairLaunch.ticket.data ||
|
||||
!fairLaunch.ticket.data.state.punched ||
|
||||
Date.now() / 1000 <
|
||||
fairLaunch.state.data.antiRugSetting.selfDestructDate.toNumber()
|
||||
}
|
||||
>
|
||||
{isMinting ? (
|
||||
<CircularProgress />
|
||||
) : Date.now() / 1000 <
|
||||
fairLaunch.state.data.antiRugSetting.selfDestructDate.toNumber() ? (
|
||||
<span>
|
||||
Refund in...
|
||||
<Countdown
|
||||
date={toDate(
|
||||
fairLaunch.state.data.antiRugSetting
|
||||
.selfDestructDate,
|
||||
)}
|
||||
/>
|
||||
</span>
|
||||
) : (
|
||||
'Refund'
|
||||
)}
|
||||
{}
|
||||
</MintButton>
|
||||
)}
|
||||
{}
|
||||
</MintButton>
|
||||
<div style={{ textAlign: 'center', marginTop: '-5px' }}>
|
||||
{!!!fairLaunch.ticket.data && (
|
||||
<small>
|
||||
You currently have no Fair Launch ticket.
|
||||
</small>
|
||||
)}
|
||||
{!fairLaunch?.ticket?.data?.state.punched && (
|
||||
<small>
|
||||
You currently have a ticket but it has not been
|
||||
punched yet, so cannot be refunded.
|
||||
</small>
|
||||
)}
|
||||
{fairLaunch?.ticket?.data &&
|
||||
!fairLaunch?.ticket?.data?.state.punched && (
|
||||
<small>
|
||||
You currently have a ticket but it has not been
|
||||
punched yet, so cannot be refunded.
|
||||
</small>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
|
|
@ -188,9 +188,8 @@ export const punchTicket = async (
|
|||
|
||||
const ticket = fairLaunch.ticket.data;
|
||||
|
||||
const fairLaunchLotteryBitmap = ( //@ts-ignore
|
||||
await getFairLaunchLotteryBitmap(fairLaunch.state.tokenMint)
|
||||
)[0];
|
||||
const fairLaunchLotteryBitmap = //@ts-ignore
|
||||
(await getFairLaunchLotteryBitmap(fairLaunch.state.tokenMint))[0];
|
||||
|
||||
const buyerTokenAccount = (
|
||||
await getAtaForMint(
|
||||
|
@ -520,8 +519,9 @@ export const purchaseTicket = async (
|
|||
);
|
||||
|
||||
if (ticket) {
|
||||
const fairLaunchLotteryBitmap = //@ts-ignore
|
||||
(await getFairLaunchLotteryBitmap(fairLaunch.state.tokenMint))[0];
|
||||
const fairLaunchLotteryBitmap = ( //@ts-ignore
|
||||
await getFairLaunchLotteryBitmap(fairLaunch.state.tokenMint)
|
||||
)[0];
|
||||
console.log(
|
||||
'Anchor wallet',
|
||||
anchorWallet.publicKey.toBase58(),
|
||||
|
|
|
@ -197,19 +197,26 @@ export const mintNFT = async (
|
|||
realFiles.map(f => data.append('file[]', f));
|
||||
|
||||
// TODO: convert to absolute file name for image
|
||||
const uploadArweaveResponse = await fetch(
|
||||
// TODO: add CNAME
|
||||
env.startsWith('mainnet-beta')
|
||||
? 'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFileProd2'
|
||||
: 'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFile2',
|
||||
{
|
||||
method: 'POST',
|
||||
body: data,
|
||||
},
|
||||
)
|
||||
|
||||
const result: IArweaveResult = await (
|
||||
await fetch(
|
||||
// TODO: add CNAME
|
||||
env.startsWith('mainnet-beta')
|
||||
? 'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFileProd2'
|
||||
: 'https://us-central1-principal-lane-200702.cloudfunctions.net/uploadFile2',
|
||||
{
|
||||
method: 'POST',
|
||||
body: data,
|
||||
},
|
||||
)
|
||||
).json();
|
||||
if (!uploadArweaveResponse.ok) {
|
||||
return Promise.reject(new Error("Unable to upload the artwork to Arweave. Please wait and then try again."))
|
||||
}
|
||||
|
||||
const result: IArweaveResult = await uploadArweaveResponse.json();
|
||||
|
||||
if (result.error) {
|
||||
return Promise.reject(new Error(result.error))
|
||||
}
|
||||
|
||||
const metadataFile = result.messages?.find(
|
||||
m => m.filename === RESERVED_TXN_MANIFEST,
|
||||
|
|
|
@ -162,31 +162,31 @@ const HTMLContent = ({
|
|||
uri,
|
||||
animationUrl,
|
||||
className,
|
||||
preview,
|
||||
style,
|
||||
files,
|
||||
artView,
|
||||
}: {
|
||||
uri?: string;
|
||||
animationUrl?: string;
|
||||
className?: string;
|
||||
preview?: boolean;
|
||||
style?: React.CSSProperties;
|
||||
files?: (MetadataFile | string)[];
|
||||
artView?: boolean;
|
||||
}) => {
|
||||
if (!artView){
|
||||
return <CachedImageContent
|
||||
uri={uri}
|
||||
className={className}
|
||||
preview={preview}
|
||||
style={style}
|
||||
/>
|
||||
}
|
||||
const htmlURL =
|
||||
files && files.length > 0 && typeof files[0] === 'string'
|
||||
? files[0]
|
||||
: animationUrl;
|
||||
const { isLoading } = useCachedImage(htmlURL || '', true);
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<CachedImageContent
|
||||
uri={uri}
|
||||
className={className}
|
||||
preview={false}
|
||||
style={{ width: 300, ...style }}
|
||||
/>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
||||
sandbox="allow-scripts"
|
||||
|
@ -205,10 +205,10 @@ export const ArtContent = ({
|
|||
active,
|
||||
allowMeshRender,
|
||||
pubkey,
|
||||
|
||||
uri,
|
||||
animationURL,
|
||||
files,
|
||||
artView,
|
||||
}: {
|
||||
category?: MetadataCategory;
|
||||
className?: string;
|
||||
|
@ -223,6 +223,7 @@ export const ArtContent = ({
|
|||
uri?: string;
|
||||
animationURL?: string;
|
||||
files?: (MetadataFile | string)[];
|
||||
artView?: boolean;
|
||||
}) => {
|
||||
const id = pubkeyToString(pubkey);
|
||||
|
||||
|
@ -276,8 +277,10 @@ export const ArtContent = ({
|
|||
uri={uri}
|
||||
animationUrl={animationURL}
|
||||
className={className}
|
||||
preview={preview}
|
||||
style={style}
|
||||
files={files}
|
||||
artView={artView}
|
||||
/>
|
||||
) : (
|
||||
<CachedImageContent
|
||||
|
|
|
@ -311,14 +311,14 @@ function InnerAnalytics({ mint }: { mint: MintInfo }) {
|
|||
const [sortedSales, setSortedSales] = useState<number[]>([]);
|
||||
const {
|
||||
metadata,
|
||||
stores,
|
||||
// stores,
|
||||
auctionManagersByAuction,
|
||||
bidderPotsByAuctionAndBidder,
|
||||
auctionDataExtended,
|
||||
} = useMeta();
|
||||
|
||||
const totalNFTs = metadata.length;
|
||||
const totalMarketplaces = Object.values(stores).length;
|
||||
// const totalMarketplaces = Object.values(stores).length;
|
||||
|
||||
const auctionViews = useAuctions();
|
||||
|
||||
|
@ -353,7 +353,8 @@ function InnerAnalytics({ mint }: { mint: MintInfo }) {
|
|||
</Button>
|
||||
<h1>Overview</h1>
|
||||
<h3>
|
||||
Total NFTs: {totalNFTs} Total Marketplaces: {totalMarketplaces}
|
||||
Total NFTs: {totalNFTs}
|
||||
{/* Total Marketplaces: {totalMarketplaces} */}
|
||||
</h3>
|
||||
<h1>User Breakdown</h1>
|
||||
<h3>Any Engagement: {Object.values(usersEngaged).length}</h3>
|
||||
|
|
|
@ -86,6 +86,7 @@ export const ArtView = () => {
|
|||
pubkey={id}
|
||||
active={true}
|
||||
allowMeshRender={true}
|
||||
artView={true}
|
||||
/>
|
||||
</Col>
|
||||
{/* <Divider /> */}
|
||||
|
@ -210,8 +211,6 @@ export const ArtView = () => {
|
|||
<br />
|
||||
{/*
|
||||
TODO: add info about artist
|
||||
|
||||
|
||||
<div className="info-header">ABOUT THE CREATOR</div>
|
||||
<div className="info-content">{art.about}</div> */}
|
||||
</Col>
|
||||
|
@ -223,7 +222,7 @@ export const ArtView = () => {
|
|||
<div className="info-header">Attributes</div>
|
||||
<List size="large" grid={{ column: 4 }}>
|
||||
{attributes.map(attribute => (
|
||||
<List.Item>
|
||||
<List.Item key={attribute.trait_type}>
|
||||
<Card title={attribute.trait_type}>
|
||||
{attribute.value}
|
||||
</Card>
|
||||
|
|
|
@ -51,13 +51,14 @@ export const ArtCreateView = () => {
|
|||
const connection = useConnection();
|
||||
const { env } = useConnectionConfig();
|
||||
const wallet = useWallet();
|
||||
const [alertMessage, setAlertMessage] = useState<string>()
|
||||
const { step_param }: { step_param: string } = useParams();
|
||||
const history = useHistory();
|
||||
const { width } = useWindowDimensions();
|
||||
|
||||
const [step, setStep] = useState<number>(0);
|
||||
const [stepsVisible, setStepsVisible] = useState<boolean>(true);
|
||||
const [progress, setProgress] = useState<number>(0);
|
||||
const [isMinting, setMinting] = useState<boolean>(false);
|
||||
const [nft, setNft] =
|
||||
useState<{ metadataAccount: StringPublicKey } | undefined>(undefined);
|
||||
const [files, setFiles] = useState<File[]>([]);
|
||||
|
@ -108,21 +109,24 @@ export const ArtCreateView = () => {
|
|||
},
|
||||
};
|
||||
setStepsVisible(false);
|
||||
const inte = setInterval(
|
||||
() => setProgress(prog => Math.min(prog + 1, 99)),
|
||||
600,
|
||||
);
|
||||
// Update progress inside mintNFT
|
||||
const _nft = await mintNFT(
|
||||
connection,
|
||||
wallet,
|
||||
env,
|
||||
files,
|
||||
metadata,
|
||||
attributes.properties?.maxSupply,
|
||||
);
|
||||
if (_nft) setNft(_nft);
|
||||
clearInterval(inte);
|
||||
setMinting(true)
|
||||
|
||||
try {
|
||||
const _nft = await mintNFT(
|
||||
connection,
|
||||
wallet,
|
||||
env,
|
||||
files,
|
||||
metadata,
|
||||
attributes.properties?.maxSupply,
|
||||
);
|
||||
|
||||
if (_nft) setNft(_nft);
|
||||
} catch(e: any) {
|
||||
setAlertMessage(e.message)
|
||||
} finally {
|
||||
setMinting(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
|
@ -200,7 +204,7 @@ export const ArtCreateView = () => {
|
|||
{step === 5 && (
|
||||
<WaitingStep
|
||||
mint={mint}
|
||||
progress={progress}
|
||||
minting={isMinting}
|
||||
confirm={() => gotoStep(6)}
|
||||
/>
|
||||
)}
|
||||
|
@ -212,7 +216,7 @@ export const ArtCreateView = () => {
|
|||
</Col>
|
||||
</Row>
|
||||
<MetaplexOverlay visible={step === 6}>
|
||||
<Congrats nft={nft} />
|
||||
<Congrats nft={nft} alert={alertMessage} />
|
||||
</MetaplexOverlay>
|
||||
</>
|
||||
);
|
||||
|
@ -1111,7 +1115,7 @@ const LaunchStep = (props: {
|
|||
|
||||
const WaitingStep = (props: {
|
||||
mint: Function;
|
||||
progress: number;
|
||||
minting: boolean;
|
||||
confirm: Function;
|
||||
}) => {
|
||||
useEffect(() => {
|
||||
|
@ -1131,7 +1135,7 @@ const WaitingStep = (props: {
|
|||
alignItems: 'center',
|
||||
}}
|
||||
>
|
||||
<Progress type="circle" percent={props.progress} />
|
||||
<Spin size="large" />
|
||||
<div className="waiting-title">
|
||||
Your creation is being uploaded to the decentralized web...
|
||||
</div>
|
||||
|
@ -1143,7 +1147,8 @@ const WaitingStep = (props: {
|
|||
const Congrats = (props: {
|
||||
nft?: {
|
||||
metadataAccount: StringPublicKey;
|
||||
};
|
||||
},
|
||||
alert?: string;
|
||||
}) => {
|
||||
const history = useHistory();
|
||||
|
||||
|
@ -1161,6 +1166,16 @@ const Congrats = (props: {
|
|||
return `https://twitter.com/intent/tweet?${queryParams}`;
|
||||
};
|
||||
|
||||
if (props.alert) {
|
||||
return (
|
||||
<>
|
||||
<div className="waiting-title">Sorry, there was an error!</div>
|
||||
<p>{props.alert}</p>
|
||||
<Button onClick={_ => history.push("/art/create")}>Back to Create NFT</Button>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="waiting-title">Congratulations, you created an NFT!</div>
|
||||
|
|
|
@ -241,6 +241,7 @@
|
|||
margin: 12px 0px;
|
||||
}
|
||||
|
||||
|
||||
.waiting-title {
|
||||
font-weight: 600;
|
||||
font-size: 2rem;
|
||||
|
|
504
js/yarn.lock
504
js/yarn.lock
|
@ -1903,6 +1903,21 @@
|
|||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
|
||||
integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
|
||||
|
||||
"@ipld/dag-cbor@^6.0.5":
|
||||
version "6.0.10"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-6.0.10.tgz#b757579bd497483932bd291779cea80caa693a5b"
|
||||
integrity sha512-dGinQkyDKQ5vkgX8JxbXBX2fl2GB+cn6u6a6cm/pTub1WeB/PMoDJ9pU7VSBvHUtGO+ZoueeQ06TgEnO+t9esg==
|
||||
dependencies:
|
||||
cborg "^1.2.1"
|
||||
multiformats "^9.0.0"
|
||||
|
||||
"@ipld/dag-pb@^2.1.3":
|
||||
version "2.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.9.tgz#823ca89168fa367e6b2f61255332f4113ad6f8c6"
|
||||
integrity sha512-6p8vgm3jMB7IKO4CAdZV/rbhBo/YvNLmiEot1vjtJalmASM+9DLbFIzHV0CAHkwlSsv3/UTsV7UzfDb6dGTHLQ==
|
||||
dependencies:
|
||||
multiformats "^9.0.0"
|
||||
|
||||
"@istanbuljs/load-nyc-config@^1.0.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
|
||||
|
@ -3316,6 +3331,59 @@
|
|||
bs58 "^4.0.1"
|
||||
eventemitter3 "^4.0.7"
|
||||
|
||||
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
|
||||
integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78=
|
||||
|
||||
"@protobufjs/base64@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
|
||||
integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
|
||||
|
||||
"@protobufjs/codegen@^2.0.4":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
|
||||
integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
|
||||
|
||||
"@protobufjs/eventemitter@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
|
||||
integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A=
|
||||
|
||||
"@protobufjs/fetch@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
|
||||
integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=
|
||||
dependencies:
|
||||
"@protobufjs/aspromise" "^1.1.1"
|
||||
"@protobufjs/inquire" "^1.1.0"
|
||||
|
||||
"@protobufjs/float@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
|
||||
integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=
|
||||
|
||||
"@protobufjs/inquire@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
|
||||
integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=
|
||||
|
||||
"@protobufjs/path@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
|
||||
integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=
|
||||
|
||||
"@protobufjs/pool@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
|
||||
integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=
|
||||
|
||||
"@protobufjs/utf8@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
|
||||
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
|
||||
|
||||
"@rollup/plugin-node-resolve@^7.1.1":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
|
||||
|
@ -4212,11 +4280,21 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.170.tgz#0d67711d4bf7f4ca5147e9091b847479b87925d6"
|
||||
integrity sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==
|
||||
|
||||
"@types/long@^4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"
|
||||
integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==
|
||||
|
||||
"@types/minimatch@*":
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21"
|
||||
integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
|
||||
|
||||
"@types/minimatch@^3.0.4":
|
||||
version "3.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
|
||||
integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
|
||||
|
||||
"@types/minimist@^1.2.0":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256"
|
||||
|
@ -4232,6 +4310,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67"
|
||||
integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
|
||||
|
||||
"@types/node@>=13.7.0":
|
||||
version "16.9.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708"
|
||||
integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==
|
||||
|
||||
"@types/node@^12.0.0":
|
||||
version "12.20.25"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.25.tgz#882bea2ca0d2ec22126b92b4dd2dc24b35a07469"
|
||||
|
@ -4315,16 +4398,7 @@
|
|||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react@*":
|
||||
version "17.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.9.tgz#1147fb520024a62c9b3841f5cb4db89b73ddb87f"
|
||||
integrity sha512-2Cw7FvevpJxQrCb+k5t6GH1KIvmadj5uBbjPaLlJB/nZWUj56e1ZqcD6zsoMFB47MsJUTFl9RJ132A7hb3QFJA==
|
||||
dependencies:
|
||||
"@types/prop-types" "*"
|
||||
"@types/scheduler" "*"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@types/react@^17.0.0", "@types/react@^17.0.16":
|
||||
"@types/react@*", "@types/react@^17.0.0", "@types/react@^17.0.16":
|
||||
version "17.0.21"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.21.tgz#069c43177cd419afaab5ce26bb4e9056549f7ea6"
|
||||
integrity sha512-GzzXCpOthOjXvrAUFQwU/svyxu658cwu00Q9ugujS4qc1zXgLFaO0kS2SLOaMWLt2Jik781yuHCWB7UcYdGAeQ==
|
||||
|
@ -4845,6 +4919,13 @@ abbrev@1:
|
|||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
|
||||
|
||||
abort-controller@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
|
||||
integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
|
||||
dependencies:
|
||||
event-target-shim "^5.0.0"
|
||||
|
||||
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
|
||||
version "1.3.7"
|
||||
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
|
||||
|
@ -5121,6 +5202,14 @@ any-promise@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
|
||||
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
|
||||
|
||||
any-signal@^2.1.0, any-signal@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102"
|
||||
integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
native-abort-controller "^1.0.3"
|
||||
|
||||
anymatch@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
|
||||
|
@ -5854,6 +5943,13 @@ bl@^4.0.3:
|
|||
inherits "^2.0.4"
|
||||
readable-stream "^3.4.0"
|
||||
|
||||
blob-to-it@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.3.tgz#699a05548f4d9a51851e476a5c2de4d11a801fe8"
|
||||
integrity sha512-3bCrqSWG2qWwoIeF6DUJeuW/1isjx7DUhqZn9GpWlK8SVeqcjP+zw4yujdV0bVaqtggk6CUgtu87jfwHi5g7Zg==
|
||||
dependencies:
|
||||
browser-readablestream-to-it "^1.0.2"
|
||||
|
||||
bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5:
|
||||
version "3.7.2"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
||||
|
@ -5953,6 +6049,11 @@ browser-process-hrtime@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
|
||||
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
|
||||
|
||||
browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz#f6b8d18e7a35b0321359261a32aa2c70f46921c4"
|
||||
integrity sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==
|
||||
|
||||
browser-resolve@^1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
|
||||
|
@ -6124,7 +6225,7 @@ buffer@6.0.1:
|
|||
base64-js "^1.3.1"
|
||||
ieee754 "^1.2.1"
|
||||
|
||||
buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3:
|
||||
buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3, buffer@~6.0.3:
|
||||
version "6.0.3"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
|
||||
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
||||
|
@ -6394,6 +6495,11 @@ caseless@~0.12.0:
|
|||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
|
||||
|
||||
cborg@^1.2.1:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.5.0.tgz#3a661fcf759e8deeec3834a144e6d87d82d97787"
|
||||
integrity sha512-3t1+s45x5LiACi39HDiSubPZiKXU2rCreu0oi5A1nccQNDHnprCh9ZQKN1Za3eookOmL03e9oKEZ+LJs0iTE8A==
|
||||
|
||||
chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
|
@ -7915,6 +8021,15 @@ dns-equal@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
|
||||
integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
|
||||
|
||||
dns-over-http-resolver@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9"
|
||||
integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==
|
||||
dependencies:
|
||||
debug "^4.3.1"
|
||||
native-fetch "^3.0.0"
|
||||
receptacle "^1.3.2"
|
||||
|
||||
dns-packet@^1.3.1:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
|
||||
|
@ -8152,6 +8267,13 @@ ejs@^2.6.1:
|
|||
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
|
||||
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
|
||||
|
||||
electron-fetch@^1.7.2:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.4.tgz#af975ab92a14798bfaa025f88dcd2e54a7b0b769"
|
||||
integrity sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==
|
||||
dependencies:
|
||||
encoding "^0.1.13"
|
||||
|
||||
electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.830:
|
||||
version "1.3.843"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.843.tgz#671489bd2f59fd49b76adddc1aa02c88cd38a5c0"
|
||||
|
@ -8215,7 +8337,7 @@ encodeurl@~1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
||||
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
|
||||
|
||||
encoding@0.1.13, encoding@^0.1.11:
|
||||
encoding@0.1.13, encoding@^0.1.11, encoding@^0.1.13:
|
||||
version "0.1.13"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
|
||||
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
|
||||
|
@ -8265,6 +8387,11 @@ err-code@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
|
||||
integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=
|
||||
|
||||
err-code@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920"
|
||||
integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==
|
||||
|
||||
errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
|
||||
|
@ -8708,6 +8835,11 @@ eve-raphael@0.5.0:
|
|||
resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30"
|
||||
integrity sha1-F8dUt5K+7z+maE15z1pHxjxM2jA=
|
||||
|
||||
event-target-shim@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
|
||||
integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
|
||||
|
||||
eventemitter3@^3.1.0:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
|
||||
|
@ -8924,6 +9056,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
|||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
||||
|
||||
fast-fifo@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.0.0.tgz#9bc72e6860347bb045a876d1c5c0af11e9b984e7"
|
||||
integrity sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==
|
||||
|
||||
fast-glob@^2.2.6:
|
||||
version "2.2.7"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
|
||||
|
@ -9411,6 +9548,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
|
|||
has "^1.0.3"
|
||||
has-symbols "^1.0.1"
|
||||
|
||||
get-iterator@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82"
|
||||
integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==
|
||||
|
||||
get-orientation@1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/get-orientation/-/get-orientation-1.1.2.tgz#20507928951814f8a91ded0a0e67b29dfab98947"
|
||||
|
@ -10362,6 +10504,26 @@ inquirer@^6.2.0:
|
|||
strip-ansi "^5.1.0"
|
||||
through "^2.3.6"
|
||||
|
||||
interface-datastore@^5.0.0:
|
||||
version "5.1.3"
|
||||
resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-5.1.3.tgz#8ee310743f26efab1a7c5e7968d2f34c3103e439"
|
||||
integrity sha512-OVJ2wXg4wuR8kGI9r+09UponEQl/oEtiPaMKiS8QnAKSOf/NTOGnnpmtQPy00UOp3vvbFOvocF6G7HnV76Fmpw==
|
||||
dependencies:
|
||||
err-code "^3.0.1"
|
||||
interface-store "^1.0.2"
|
||||
ipfs-utils "^8.1.2"
|
||||
it-all "^1.0.2"
|
||||
it-drain "^1.0.1"
|
||||
it-filter "^1.0.2"
|
||||
it-take "^1.0.1"
|
||||
nanoid "^3.0.2"
|
||||
uint8arrays "^3.0.0"
|
||||
|
||||
interface-store@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-1.0.2.tgz#1ebd6cbbae387039a3a2de0cae665da52474800f"
|
||||
integrity sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==
|
||||
|
||||
internal-ip@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
|
||||
|
@ -10404,6 +10566,11 @@ ip-regex@^2.1.0:
|
|||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
|
||||
integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
|
||||
|
||||
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==
|
||||
|
||||
ip@1.1.5, ip@^1.1.0, ip@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
|
||||
|
@ -10414,6 +10581,94 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
|
|||
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
||||
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
||||
|
||||
ipfs-core-types@^0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.7.1.tgz#08504d3b2b65fb910516f310049a0b022759ad21"
|
||||
integrity sha512-vG3cX+mLjULYAKlGF/3P3uqr6GxhWZRrg+LQrUUZmf9kjBI5ikIuNnhtPqX6sbTNHLQFqTZb7NhCxFFNOud75g==
|
||||
dependencies:
|
||||
interface-datastore "^5.0.0"
|
||||
multiaddr "^10.0.0"
|
||||
multiformats "^9.4.1"
|
||||
|
||||
ipfs-core-utils@^0.10.3:
|
||||
version "0.10.3"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.10.3.tgz#bbc2d19bdb2fd5f1a5b047645923b3436d9e4879"
|
||||
integrity sha512-3LnoycWyJGbdZIDKhzbGmoGnIJWTJznNP3Z7Xvc7n9GyJYeBGqNIVVlnY0EmppiDEg92rAyT7GVF0/G9dKpAlg==
|
||||
dependencies:
|
||||
any-signal "^2.1.2"
|
||||
blob-to-it "^1.0.1"
|
||||
browser-readablestream-to-it "^1.0.1"
|
||||
err-code "^3.0.1"
|
||||
ipfs-core-types "^0.7.1"
|
||||
ipfs-unixfs "^6.0.3"
|
||||
ipfs-utils "^8.1.4"
|
||||
it-all "^1.0.4"
|
||||
it-map "^1.0.4"
|
||||
it-peekable "^1.0.2"
|
||||
multiaddr "^10.0.0"
|
||||
multiaddr-to-uri "^8.0.0"
|
||||
multiformats "^9.4.1"
|
||||
parse-duration "^1.0.0"
|
||||
timeout-abort-controller "^1.1.1"
|
||||
uint8arrays "^3.0.0"
|
||||
|
||||
ipfs-http-client@^52.0.3:
|
||||
version "52.0.3"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-52.0.3.tgz#359ff558adf4d92421cfb0e9e58f3b934ed124f5"
|
||||
integrity sha512-pMLDTz54MIUQk+9N4huSzMBfp+Gg33sk69nm6uaHfyO91InbFSlerwXL31CplpqRXW9vIjk8Jl4X1ZgMLnfs+w==
|
||||
dependencies:
|
||||
"@ipld/dag-cbor" "^6.0.5"
|
||||
"@ipld/dag-pb" "^2.1.3"
|
||||
abort-controller "^3.0.0"
|
||||
any-signal "^2.1.2"
|
||||
debug "^4.1.1"
|
||||
err-code "^3.0.1"
|
||||
form-data "^4.0.0"
|
||||
ipfs-core-types "^0.7.1"
|
||||
ipfs-core-utils "^0.10.3"
|
||||
ipfs-utils "^8.1.4"
|
||||
it-first "^1.0.6"
|
||||
it-last "^1.0.4"
|
||||
it-to-stream "^1.0.0"
|
||||
merge-options "^3.0.4"
|
||||
multiaddr "^10.0.0"
|
||||
multiformats "^9.4.1"
|
||||
nanoid "^3.1.12"
|
||||
native-abort-controller "^1.0.3"
|
||||
parse-duration "^1.0.0"
|
||||
stream-to-it "^0.2.2"
|
||||
uint8arrays "^3.0.0"
|
||||
|
||||
ipfs-unixfs@^6.0.3:
|
||||
version "6.0.6"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.6.tgz#c44881c1bcd6a474c665e67108cbf31e54c63eec"
|
||||
integrity sha512-gTkjYKXuHnqIf6EFfS+ESaYEl3I3aaQQ0UX8MhpNzreMLEuMnuqpoI/uLLllTZa31WRplKixabbpRTSmTYRNwA==
|
||||
dependencies:
|
||||
err-code "^3.0.1"
|
||||
protobufjs "^6.10.2"
|
||||
|
||||
ipfs-utils@^8.1.2, ipfs-utils@^8.1.4:
|
||||
version "8.1.6"
|
||||
resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-8.1.6.tgz#431cb1711e3b666fbc7e4ff830c758e2527da308"
|
||||
integrity sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
any-signal "^2.1.0"
|
||||
buffer "^6.0.1"
|
||||
electron-fetch "^1.7.2"
|
||||
err-code "^3.0.1"
|
||||
is-electron "^2.2.0"
|
||||
iso-url "^1.1.5"
|
||||
it-glob "~0.0.11"
|
||||
it-to-stream "^1.0.0"
|
||||
merge-options "^3.0.4"
|
||||
nanoid "^3.1.20"
|
||||
native-abort-controller "^1.0.3"
|
||||
native-fetch "^3.0.0"
|
||||
node-fetch "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz"
|
||||
react-native-fetch-api "^2.0.0"
|
||||
stream-to-it "^0.2.2"
|
||||
|
||||
is-absolute-url@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
|
||||
|
@ -10586,6 +10841,11 @@ is-docker@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
||||
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
|
||||
|
||||
is-electron@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0"
|
||||
integrity sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==
|
||||
|
||||
is-extendable@^0.1.0, is-extendable@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
|
||||
|
@ -10654,6 +10914,13 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3:
|
|||
resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
|
||||
integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
|
||||
|
||||
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-module@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
|
||||
|
@ -10723,6 +10990,11 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
|
||||
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
|
||||
|
||||
is-plain-obj@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
|
||||
integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
|
||||
|
||||
is-plain-object@^2.0.3, is-plain-object@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
||||
|
@ -10877,6 +11149,11 @@ isexe@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
||||
|
||||
iso-url@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.1.5.tgz#875a0f2bf33fa1fc200f8d89e3f49eee57a8f0d9"
|
||||
integrity sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==
|
||||
|
||||
isobject@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
|
||||
|
@ -10953,6 +11230,66 @@ istanbul-reports@^3.0.2:
|
|||
html-escaper "^2.0.0"
|
||||
istanbul-lib-report "^3.0.0"
|
||||
|
||||
it-all@^1.0.2, it-all@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.5.tgz#e880510d7e73ebb79063a76296a2eb3cb77bbbdb"
|
||||
integrity sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==
|
||||
|
||||
it-drain@^1.0.1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-1.0.4.tgz#15ee0e90fba4b5bc8cff1c61b8c59d4203293baa"
|
||||
integrity sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==
|
||||
|
||||
it-filter@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-1.0.2.tgz#7a89b582d561b1f1ff09417ad86f509dfaab5026"
|
||||
integrity sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==
|
||||
|
||||
it-first@^1.0.6:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.6.tgz#a015ecfc62d2d517382138da4142b35e61f4131e"
|
||||
integrity sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==
|
||||
|
||||
it-glob@~0.0.11:
|
||||
version "0.0.14"
|
||||
resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.14.tgz#24f5e7fa48f9698ce7dd410355f327470c91eb90"
|
||||
integrity sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==
|
||||
dependencies:
|
||||
"@types/minimatch" "^3.0.4"
|
||||
minimatch "^3.0.4"
|
||||
|
||||
it-last@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.5.tgz#5c711c7d58948bcbc8e0cb129af3a039ba2a585b"
|
||||
integrity sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==
|
||||
|
||||
it-map@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.5.tgz#2f6a9b8f0ba1ed1aeadabf86e00b38c73a1dc299"
|
||||
integrity sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==
|
||||
|
||||
it-peekable@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.2.tgz#3b2c7948b765f35b3bb07abbb9b2108c644e73c1"
|
||||
integrity sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==
|
||||
|
||||
it-take@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/it-take/-/it-take-1.0.1.tgz#155b0f8ed4b6ff5eb4e9e7a2f4395f16b137b68a"
|
||||
integrity sha512-6H6JAWYcyumKSpcIPLs6tHN4xnibphmyU79WQaYVCBtaBOzf4fn75wzvSH8fH8fcMlPBTWY1RlmOWleQxBt2Ug==
|
||||
|
||||
it-to-stream@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a"
|
||||
integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==
|
||||
dependencies:
|
||||
buffer "^6.0.3"
|
||||
fast-fifo "^1.0.0"
|
||||
get-iterator "^1.0.2"
|
||||
p-defer "^3.0.0"
|
||||
p-fifo "^1.0.0"
|
||||
readable-stream "^3.6.0"
|
||||
|
||||
jayson@^3.4.4:
|
||||
version "3.6.3"
|
||||
resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.3.tgz#b0bb8d2e37e34e39e68044ab925fd92f103f1bd9"
|
||||
|
@ -12421,6 +12758,11 @@ loglevel@^1.6.8, loglevel@^1.7.1:
|
|||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
|
||||
integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
|
||||
|
||||
long@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
|
||||
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||
|
@ -12665,6 +13007,13 @@ merge-descriptors@1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
||||
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
|
||||
|
||||
merge-options@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7"
|
||||
integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==
|
||||
dependencies:
|
||||
is-plain-obj "^2.1.0"
|
||||
|
||||
merge-stream@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
||||
|
@ -12984,6 +13333,25 @@ ms@^2.0.0, ms@^2.1.1:
|
|||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||
|
||||
multiaddr-to-uri@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz#65efe4b1f9de5f6b681aa42ff36a7c8db7625e58"
|
||||
integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==
|
||||
dependencies:
|
||||
multiaddr "^10.0.0"
|
||||
|
||||
multiaddr@^10.0.0:
|
||||
version "10.0.1"
|
||||
resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef"
|
||||
integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==
|
||||
dependencies:
|
||||
dns-over-http-resolver "^1.2.3"
|
||||
err-code "^3.0.1"
|
||||
is-ip "^3.1.0"
|
||||
multiformats "^9.4.5"
|
||||
uint8arrays "^3.0.0"
|
||||
varint "^6.0.0"
|
||||
|
||||
multicast-dns-service-types@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
|
||||
|
@ -12997,6 +13365,11 @@ multicast-dns@^6.0.1:
|
|||
dns-packet "^1.3.1"
|
||||
thunky "^1.0.2"
|
||||
|
||||
multiformats@^9.0.0, multiformats@^9.4.1, multiformats@^9.4.2, multiformats@^9.4.5:
|
||||
version "9.4.7"
|
||||
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.4.7.tgz#df2caa6ccd975218bbbacd69e45bb76cc2a53654"
|
||||
integrity sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA==
|
||||
|
||||
multimatch@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b"
|
||||
|
@ -13044,16 +13417,16 @@ nan@^2.14.2:
|
|||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
|
||||
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
|
||||
|
||||
nanoid@^3.0.2, nanoid@^3.1.12, nanoid@^3.1.20, nanoid@^3.1.23:
|
||||
version "3.1.25"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
|
||||
integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
|
||||
|
||||
nanoid@^3.1.22:
|
||||
version "3.1.23"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
|
||||
integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
|
||||
|
||||
nanoid@^3.1.23:
|
||||
version "3.1.25"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
|
||||
integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
|
||||
|
||||
nanomatch@^1.2.9:
|
||||
version "1.2.13"
|
||||
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
|
||||
|
@ -13076,6 +13449,16 @@ napi-build-utils@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
|
||||
integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
|
||||
|
||||
native-abort-controller@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.3.tgz#35974a2e189c0d91399c8767a989a5bf058c1435"
|
||||
integrity sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==
|
||||
|
||||
native-fetch@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb"
|
||||
integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==
|
||||
|
||||
native-request@^1.0.5:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb"
|
||||
|
@ -13231,6 +13614,10 @@ node-fetch@2.6.1, node-fetch@^2.5.0, node-fetch@^2.6.1:
|
|||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
||||
|
||||
"node-fetch@https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz":
|
||||
version "2.6.7"
|
||||
resolved "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz#1b5d62978f2ed07b99444f64f0df39f960a6d34d"
|
||||
|
||||
node-forge@^0.10.0:
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
|
||||
|
@ -13765,11 +14152,24 @@ osenv@^0.1.4, osenv@^0.1.5:
|
|||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.0"
|
||||
|
||||
p-defer@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83"
|
||||
integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==
|
||||
|
||||
p-each-series@^2.1.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a"
|
||||
integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==
|
||||
|
||||
p-fifo@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63"
|
||||
integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==
|
||||
dependencies:
|
||||
fast-fifo "^1.0.0"
|
||||
p-defer "^3.0.0"
|
||||
|
||||
p-finally@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
|
||||
|
@ -13934,6 +14334,11 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
|
|||
pbkdf2 "^3.0.3"
|
||||
safe-buffer "^5.1.1"
|
||||
|
||||
parse-duration@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.0.0.tgz#8605651745f61088f6fb14045c887526c291858c"
|
||||
integrity sha512-X4kUkCTHU1N/kEbwK9FpUJ0UZQa90VzeczfS704frR30gljxDG0pSziws06XlK+CGRSo/1wtG1mFIdBFQTMQNw==
|
||||
|
||||
parse-github-repo-url@^1.3.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50"
|
||||
|
@ -15119,6 +15524,25 @@ proto-list@~1.2.1:
|
|||
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
|
||||
integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
|
||||
|
||||
protobufjs@^6.10.2:
|
||||
version "6.11.2"
|
||||
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b"
|
||||
integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==
|
||||
dependencies:
|
||||
"@protobufjs/aspromise" "^1.1.2"
|
||||
"@protobufjs/base64" "^1.1.2"
|
||||
"@protobufjs/codegen" "^2.0.4"
|
||||
"@protobufjs/eventemitter" "^1.1.0"
|
||||
"@protobufjs/fetch" "^1.1.0"
|
||||
"@protobufjs/float" "^1.0.2"
|
||||
"@protobufjs/inquire" "^1.1.0"
|
||||
"@protobufjs/path" "^1.1.2"
|
||||
"@protobufjs/pool" "^1.1.0"
|
||||
"@protobufjs/utf8" "^1.1.0"
|
||||
"@types/long" "^4.0.1"
|
||||
"@types/node" ">=13.7.0"
|
||||
long "^4.0.0"
|
||||
|
||||
protocols@^1.1.0, protocols@^1.4.0:
|
||||
version "1.4.8"
|
||||
resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8"
|
||||
|
@ -15824,6 +16248,13 @@ react-masonry-css@^1.0.16:
|
|||
resolved "https://registry.yarnpkg.com/react-masonry-css/-/react-masonry-css-1.0.16.tgz#72b28b4ae3484e250534700860597553a10f1a2c"
|
||||
integrity sha512-KSW0hR2VQmltt/qAa3eXOctQDyOu7+ZBevtKgpNDSzT7k5LA/0XntNa9z9HKCdz3QlxmJHglTZ18e4sX4V8zZQ==
|
||||
|
||||
react-native-fetch-api@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz#c4af188b4fce3f3eaf1f1ff4e61dae1a00d4ffa0"
|
||||
integrity sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==
|
||||
dependencies:
|
||||
p-defer "^3.0.0"
|
||||
|
||||
react-refresh@0.8.3, react-refresh@^0.8.3:
|
||||
version "0.8.3"
|
||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
|
||||
|
@ -16110,6 +16541,13 @@ realpath-native@^1.1.0:
|
|||
dependencies:
|
||||
util.promisify "^1.0.0"
|
||||
|
||||
receptacle@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2"
|
||||
integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
rechoir@^0.6.2:
|
||||
version "0.6.2"
|
||||
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
|
||||
|
@ -16454,6 +16892,11 @@ ret@~0.1.10:
|
|||
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
|
||||
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
|
||||
|
||||
retimer@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca"
|
||||
integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==
|
||||
|
||||
retry@^0.10.0:
|
||||
version "0.10.1"
|
||||
resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
|
||||
|
@ -17422,6 +17865,13 @@ stream-shift@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
|
||||
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
|
||||
|
||||
stream-to-it@^0.2.2:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0"
|
||||
integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==
|
||||
dependencies:
|
||||
get-iterator "^1.0.2"
|
||||
|
||||
strict-uri-encode@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||
|
@ -18038,6 +18488,14 @@ thunky@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
|
||||
integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
|
||||
|
||||
timeout-abort-controller@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29"
|
||||
integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
retimer "^2.0.0"
|
||||
|
||||
timers-browserify@2.0.12, timers-browserify@^2.0.4:
|
||||
version "2.0.12"
|
||||
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
|
||||
|
@ -18419,6 +18877,13 @@ uid-number@0.0.6:
|
|||
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
|
||||
integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
|
||||
|
||||
uint8arrays@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.0.0.tgz#260869efb8422418b6f04e3fac73a3908175c63b"
|
||||
integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==
|
||||
dependencies:
|
||||
multiformats "^9.4.2"
|
||||
|
||||
umask@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
|
||||
|
@ -18732,6 +19197,11 @@ value-equal@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
|
||||
integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==
|
||||
|
||||
varint@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0"
|
||||
integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==
|
||||
|
||||
vary@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||
|
|
Loading…
Reference in New Issue